CLAUDE.md に「判断は jev に任せる」と書き、Claude Code が案を選ぶ・段階のどこかを判定する・はいの確率を測るときに jev に判断させたら、成果物の品質が上がりました。その変化の話です。
この記事は、判定モデル jev の環境構築が済んでいて Claude Code と組み合わせたい方向けの実践記録です。導入の手順ではなく、CLAUDE.md への書き方とその効果をまとめました。jev をご存知でない方は、次節の概要を先に読んでいただけると入りやすいと思います。
jev とは
jev は TypeSafe の判定モデルです。~/.claude/bin/jev に JSON を渡すと、質問の型に応じた判定値を返してくれます。
使い方は「評価の対象」(state) と「質問」(questions) を JSON で渡すだけです。state には判断に効く観測値 (実測した数値・公式の記述・制約) を名前付きのフィールドで、questions には質問の文言 (instructions) と、必要に応じて選び方や段階 (criteria) を書きます。返ってくるのは質問の型に応じた判定値と、その判定の確からしさ (確率または確信度) です。
質問の型は 3 つです。
- noul: 「はい」の確率 (0〜1)
- choice: 選択肢から 1 つ。確信度 (確率が 1 つに集中している度合い) 付き
- score: 段階のどこか (0〜段階数-1)
理由を返さないので、候補を並べて数値で採否を決める使い方に合います。
Noul を使う場合
案が要件を満たすか・完了か・誤りかなど、yes/no で答えられるとき。
Choice を使う場合
答えが複数の選択肢の中にあるとき。選択肢は排他にします。
Score を使う場合
強さや深刻度を段階で測るとき。段階は等間隔にします。
なぜ品質が上がるのか
Claude Code は判断を自然文で行います。流れに沿って進みすぎることがあり、根拠のないまま案を決めて報告する「推測で決め切る」場面が出てきます。
jev は数値だけを返すので、この流れが強制的に止まります。返ってくるのは理由ではなく数値なので、数値の低いまま納得するのは難しく、自然に次のループを回すことになります。
- 判断に効く状態を実測して渡す
- 確率・確信度を見る
- 低ければ、足りない状態を探して聞き直す
- 低い値がなくなるところまで繰り返す
推測のまま進むと数値に出てしまうため、状態の欠落がひとつずつ見えてきます。
これが「判断に効く状態は実測して全部渡す」という規律を、自然に守れる仕組みになります。
判断が裏付けられると、成果物にもそのまま響いてきます。案の選択・完了の判定・意見の変更が根拠付きで決まるため、手戻りと、正しくない決定のまま生成物が積み上がる、という 2 つの損失が減ります。成果物の品質の向上は、この 2 つの減少の結果です。
この因果は、使ってみた体感にもはっきり出ました。次節で具体的に書きます。
体感で変わったこと
導入前の悩みは 2 つありました。どちらも振り返ると「判断を検証しないまま進む」ことに原因があったように思います。
- 出力をレビューさせても、「直しました」と返事が来るだけで直っていないことが続きました。何度レビューさせても、次はまた「直しました」と返事が来るだけでした
- チェックのフックを設定しても、全項目で引っかかるか全項目で素通りするかの 2 極で、ちょうど良い検知がどうしてもできませんでした
jev を導入してからは、「直しました」と言われるだけでなく、実際に直ったものが上がってくる状態に変わりました。
- お願いしていないのに、数値の低い項目を自主的に直し、全項目が支持されてから報告してくれるようになりました
- 検知も 2 極ではなく項目ごとの確率に出るので、不足がひとつずつ見え、直す順番も決められるようになりました
根拠のない自己決定と 2 極の検知を消せたことで、会話の技術が上がったというより、成果物の品質の確認がずいぶん楽になったと感じています。
jev に判断させて良くなったこと
設計の相談に jev 判断をはさむようにした例を、いくつか挙げます。数値は jev の返り値です。
| 場面 | jev に判断させる前 | jev に判断させた後 |
|---|---|---|
| 設計を決める | 案を 1 段ずつ積み上げ、仕組みが複雑になっていました | 規模の状態を渡して聞いたところ、簡単な設計を 1.0 で選べました |
| 決め切れない判断 | 確信度 0.39・0.54・0.68 で答えが定まりませんでした | 判断に効く状態を 1 つ足して聞き直したところ 0.95・0.93・0.98 になりました |
| 2 案の比較 | 言葉だけではどちらが良いか決められませんでした | 同じ状態を渡して測ると 0.32 と 0.80 で、良い案がはっきりしました |
| 完了の判断 | 書き終えた成果物を完了と見ていました | 要件ごとに聞くと 0.47 の項目が見つかり、直して 0.96 にしてから完了とできました |
CLAUDE.md に書くセクション
## 判断は Jev に投げる
判断は必ず `~/.claude/bin/jev` に JSON を渡して判断する。意見を変えるにも Jev の判断が必要。Jev の判断なしに意見を変えない。
Jev は以下の3種類で判断する
- Choice:選択肢から 1 つ選ぶ (数値でなく選択肢名、確信度付き)
- Score:段階のどこか (0〜段階数-1、小数あり)
- Noul:はいの確率 (0〜1)
- state の先頭の文には、ユーザーが指示した依頼・観点を含める
- state は判断の対象についての状態だけを名前付き JSON で渡し、instructions でバッククォート参照し、好み・意向は含めない
- Jev は渡した state しか知らない。判断に効く公式の記述は、要約せず原文を引用して state に含めよ
- 返り値は answers の、送った質問のキーごとに型付きで入る
- 質問は平易に。判断は 1 回に 1 つ
- 報告には、実際に送った質問と返った値を書く
- 支持の基準は noul >= 0.7 とする
- Jev に否定されたら原因を特定し修正して聞き直す。支持 (noul >= 0.7) されるまで繰り返す。同じ問いで否定が 3 回続いたらループを止め、実施した質問と返った値と残る問題の説明を添えてユーザーへ報告する
- state を細かく分けてどの部分に問題が含まれるか noul で 1 か所ずつ聞く
- 原因を 5種類 + その他 で 1 か所ずつ聞く
- 随時成果物レビューを Jev に依頼
- ユーザーには Jevレビュー済みのものしか見せられない
### Noul を使う場合
yes/no で答えられる判断 (誤りか・要件を満たすか・完了か)。
- 誤りや原因を探すときは、対象を細かく区切り、1 か所ずつ「この部分は誤りか」を noul で聞く
- 成果物を作ったら、要件ごとに noul で満たすかを聞き、全項目が支持されてから完了とする
- 自分の案は、公式で裏付けてから「この案より良い方法はあるか」を noul で聞く。あれば choice で選ばせる
```
~/.claude/bin/jev <<'EOF'
{"state":{"finding":"仕様の該当箇所の記述..."},"questions":{"ok":{"type":"noul","instructions":"Does `finding` violate the spec?"}}}
EOF
```
### Choice を使う場合
答えが選択肢の中に 1 つだけある判断。
- 当てはまるものが複数ありうる問いに choice を使わない
- criteria が必須。選択肢は `{選択肢: 説明}` で排他にする
- 決戦投票は state と説明を変えず上位だけ残す
```
~/.claude/bin/jev <<'EOF'
{"state":{"situation":"状態と各案の現状..."},"questions":{"pick":{"type":"choice","instructions":"Which option fits `situation`?","criteria":{"a":"案Aの説明...","b":"案Bの説明..."}}}}
EOF
```
### Score を使う場合
強さ・深刻度を段階で測る判断。
- criteria が必須。段階は弱い順の配列で、等間隔の具体値にする。段階は 10 個まで、1 回目は取りうる全域を覆う
- 上位に集まった範囲を細かく聞き直す。確信度が下がったら前の刻みの最多値を採る
```
~/.claude/bin/jev <<'EOF'
{"state":{"finding":"状態..."},"questions":{"sev":{"type":"score","instructions":"How severe is `finding`?","criteria":["Minor: ...","Major: ...","Critical: ..."]}}}
EOF
```
普遍的な教訓
この実践は jev に限らず応用できると思います。ポイントは 3 つにまとめられます。
- 判断の根拠を自然文でなく数値に落とすと、推測で決め切ることが無くなります
- 数値の裏付けを測るには、判断に効く状態を渡すことになります。状態は実測か公式の記述だけにすると安心です
- 測り方は 1 回に 1 つの判断にすると、数値が素直に読めます。複数の判断を混ぜた数値は、判断の裏付けになりません
jev を使わなくても、判断を数値にして繰り返し測る仕組みが CLAUDE.md にあれば、同じ効果は見込めると思います。
出典
- TypeSafe AI「Introducing System One Models & Jev」(2026-09-15) — https://typesafe.ai/blog/introducing-system-one-models-and-jev
- TypeSafe AI 公式ドキュメント — https://docs.typesafe.ai/