メインコンテンツへスキップ
Kanau Tech™ - かなうテック
← ブログ一覧に戻る
AI開発ツール

Claude Code 条件評価の仕組み深掘り — Haiku評価器とプロンプト型 vs スクリプト型

2026-05-22by DO XUAN HIEN
Claude Code 条件評価の仕組み深掘り — Haiku評価器とプロンプト型 vs スクリプト型

/goal の心臓部は Haiku評価器 だ。毎ターン後に会話ログを読み、完了条件と照合して「達成 / 未達成」を判定する。

この記事では評価器の判定フローと、プロンプト型 vs スクリプト型のトレードオフを掘る。

Haiku評価器とは

Haiku評価器とは、Claude Codeの/goalに内蔵された軽量判定モデルだ。 Anthropic社のClaude Haikuをベースに、完了条件の充足判定タスクに特化している。

なぜHaikuか

観点HaikuSonnetOpus
入力単価$0.25/M$3.00/M$15.00/M
出力単価$1.25/M$15.00/M$75.00/M
速度(rel)1.00.40.2
判定精度(評価タスク)92-95%95-97%96-98%

Sonnetの1/12のコスト、Opusの1/60のコストで、判定精度は実用十分。これが採用理由だ。

評価フロー(判定の中身)

評価器が1ターン後に走る流れ:

1. メインターン終了
   ↓
2. 評価器が会話ログを取得(過去Nターン分)
   ↓
3. 完了条件文を読み込み
   ↓
4. ログ内に「条件達成の証拠」が存在するか判定
   ├─ あり → 「達成」を返す → /goal 停止
   └─ なし → 「未達成」+ 理由 → 次のターンへ
   ↓
5. 判定理由はトランスクリプトと status view に記録

評価器は 「次に何をすべきか」は考えない。あくまで「終わったか / 終わっていないか」の判定に専念する。

プロンプト型 vs スクリプト型

完了条件の評価方式には2系統ある。

プロンプト型(/goalの標準)

/goal リファクタリングが完了し、コードがCLAUDE.mdの規約に従っている
  • 判定主体: Haiku評価器(LLM)
  • 強み: 柔軟、自然言語で書ける、複雑な意味判定可能
  • 弱み: 確定的でない、誤判定リスクあり

スクリプト型(Stop Hooks経由)

~/.claude/settings.json

{
  "hooks": {
    "stopOn": {
      "script": "/Users/me/scripts/check-done.sh"
    }
  }
}

scripts/check-done.sh

#!/bin/bash
cd /path/to/project
[ -f .done.flag ] && exit 0 || exit 1
  • 判定主体: シェルスクリプト
  • 強み: 100%確定的、コスト0、ログ不要
  • 弱み: 自然言語で書けない、複雑な判定は不可

どっちを使うべきか — 早見表

完了条件のタイプ推奨タイプ理由
テスト全件通過スクリプト型npm test の exit code で確定判定
coverage>=80%スクリプト型coverage.json の数値判定
lint エラー0件スクリプト型linter のexit code
ファイル存在確認スクリプト型[ -f file ]
「ドキュメントが分かりやすい」プロンプト型主観評価が必要
「リファクタが規約に従う」プロンプト型規約解釈が必要
「セキュリティ的に安全」プロンプト型文脈判断が必要
「文章のトーンが統一」プロンプト型意味的判断

一般的なソフトウェア開発タスクの8割はスクリプト型で確定的に判定可能。 残り2割(コンテンツ品質、設計判断)はプロンプト型が必要になる。

ハイブリッド戦略

実務では 両方を併用 することが多い。

/goal リファクタが完了し、CLAUDE.mdの規約に従っている状態

done when:
- test/auth/ 全件通過(npm test exit 0)   ← スクリプト型相当
- coverage.json の total>=80               ← スクリプト型相当
- CLAUDE.md の規約と矛盾していない          ← プロンプト型相当
- progress.md に判断理由が3行以上記録      ← プロンプト型相当

確定的な条件はログから機械的に検証され、柔軟な条件はHaikuが意味判定する。両者の強みを活かす設計。

評価器がHallucinationする典型パターン

「達成」と誤判定される典型例を知っておく。

パターン防止策
ログに「達成っぽい文字列」混入プロンプト内に「完了したように見える」と書いた完了条件を具体的な観測値に
過去の達成ログを誤読別タスクの「テスト通過」ログがあるscope を明示(「今ターンの」)
部分達成を全体達成と誤読5/10 件通過を「テスト通過」と判定「全件通過」「100%」「すべて」と明示
同義語で混乱「lint」と「linter」「リンター」の表記揺れ完了条件と本文で表記を統一

「裁判の証拠のように厳密に書く」がこれを防ぐ最強のアプローチだ。

完了条件が評価可能か自己診断(4ステップ)

書いた完了条件をHaiku評価器が判定できるか、4つの問いで自己診断する。

Step 1: ログから検証可能か

会話ログ、ファイル、コマンドの出力から条件達成の証拠を取得できるか?「いい感じ」「きれい」のような主観表現は不可。

Step 2: 30秒で証拠を確認できるか

条件達成の証拠を人間が30秒で確認できるか?できなければ評価器も判定困難。コマンド1つで確認できる形が理想。

Step 3: 数値または真偽値で表現可能か

exit code 0/非0、coverage>=80、ファイル存在の有無等、二値または閾値で判定できるか?

Step 4: サンプル証拠を書き出せるか

「条件達成時に会話ログに現れるであろう具体的な1行」をあなた自身が書けるか?書ければ評価器も検出できる。

4つすべてYesになる条件文は、評価器が高精度で判定できる。

よくある質問

Haikuはなぜ評価器に選ばれていますか?

速度・コスト・判定精度のバランスが最適だからだ。Sonnetより約12倍安く、レスポンスも数倍速い。「会話ログを読んで条件と照合する」タスクは複雑な推論を必要としないため、Haikuで十分な精度が出る。

プロンプト型とスクリプト型のどちらを使うべきですか?

確定的な判定(exit code、ファイル存在、数値閾値)はスクリプト型。柔軟な判定(文章の意味的近さ、複雑な状況判断)はプロンプト型。一般的なテスト / lint / 型エラー系はスクリプト型が安定し、コンテンツ品質チェック系はプロンプト型が柔軟だ。

評価器のトークン消費を確認するには?

/goal 実行中に /goal コマンドを単独で打つと、累積ターン数・累積トークン・評価器の最後の判定理由が表示される。判定理由はトランスクリプトの中にも保存される。

カスタム評価ロジックは書けますか?

Stop Hooks(settings.json)でスクリプト型の評価ロジックを書ける。/goal の内部評価器を完全に置き換えることはできないが、追加の停止条件として併用可能だ。

評価器が Hallucination を起こすことはありますか?

完了条件が曖昧な場合に起こり得る。「ログに『完了』っぽい文字列が混入」「複数解釈可能な条件」等で誤判定が報告されている。複数の独立証拠を要求することで誤判定率は大幅に下がる。

関連記事

参照

御社のDX力、3分でチェックしませんか?

10問の簡単な質問でIT基盤・業務デジタル化・AI活用度を無料診断。改善のヒントもわかります。

無料DX診断を受ける →