exception SKILL.md skillA
exception from ncaq/konoka is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add ncaq/konoka/exception@git:20260521.6406d80Pins git:20260521.6406d80 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- ncaq/konoka
- Path
plugins/haskell-tasuke/skills/exception/SKILL.md- Versions recorded
- 1
- Latest version
- git:20260521.6406d80, committed May 21, 2026
- Size
- 4,655 bytes
- Repository stars
- 3
- License
- Apache-2.0
Do not throw exceptions from pure code with error or throw, give exceptions structured types, and never silently swallow errors in IO. Use when writing or reviewing Haskell error handling, exceptions, or IO code.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 例外処理の原則 ## `error`関数の禁止 純粋関数空間の中で例外を投げられる`error`関数の使用は原則として禁止です。 [haskell-tasuke:partial-function](../partial-function/SKILL.md) でも触れましたが、 純粋関数空間で例外を投げてしまうと、 呼び出し側で捕捉するのが困難だからです。 また例外に入っているのが`String`という非構造化されたデータであると、 デバッグが難しくなります。 `throw`(導入されている場合は非純粋であることを明示した`impureThrow`)の方が、 例外に型がついているという点ではまだマシですが、 こちらも純粋関数空間で例外を投げているのは同じなのでやはり推奨されません。 呼び出し側に`MonadThrow`や`Either`などを使ってエラー情報を伝播させてください。 ### 例外 論理的にどう考えても発生しないはずの場所なら許容されます。 そんなおかしなことが起きているなら、 アプリケーション自体を終了させるのが適切なレベルの話です。 それでもなるべく型を作って例外を投げるのが望ましいです。 ## `undefined`はPRを出すときにはクリーンアップしましょう Haskell標準で用意されている`undefined`は、 開発中に仮の実装として使うのは便利です。 Rustの`todo!`と同じように使えます。 例えばテストファーストで開発をする時に、 とりあえずコンパイルを通すだけの関数シンボルを`undefined`で埋めて、 テストコードを書いてから実装を進めるといった使い方ができます。 しかし`undefined`は結局は純粋空間でも例外を投げる関数なので、 PRを出すときには`undefined`をクリーンアップしてください。 残っていると警告が出るはずなので見落としはあまりないとは思いますが。 ## 例外は型をつけよう `throwString`のような関数を使うより、 ちゃんと例外に型をつけて`throwM`などで型がついた例外を使いましょう。 例外の状況を伝えるデータ型は、 `Text`などの文字列型を使うのではなく、 なるべく構造的なデータ型をフィールドとして持ってください。 ただしcycle importが発生する場合は、 呼び出し側で`Text`に変換するのもやむを得ないでしょう。 ## エラーを握り潰すのは禁止 `IO`の文脈などで例外が生じた場合に、 単に握りつぶして何もしない行為は禁止です。 `IO`は文脈的に既に例外が発生する可能性があることを示しているので、 例外が上位に伝播することは許容されています。 なので握りつぶすぐらいなら、 …
Read the whole file at its exact version.
How to install
mdr add ncaq/konoka/exception@sha256:0228638f3f9b31abThe line at the top of this page pins the label git:20260521.6406d80, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_ok7sdduzugmggnzv)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 1 version of this file, committed on May 21, 2026.
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (4655 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
ncaq/konoka · 3 stars · license Apache-2.0 · pushed 2026-10-19 · branch master
API
GET https://markdownregistry.com/api/v1/artifacts/art_ok7sdduzugmggnzv GET https://markdownregistry.com/api/v1/resolve?ref=ncaq/konoka/exception GET https://markdownregistry.com/api/v1/blob/0228638f3f9b31ab864f4926993664b6abb41106128a2f54ff34753e50b7ce71
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.