LLM にコードを書かせて「これで完成?」と訊くと、多くの場合“甘い”自己採点が返ってきます。通したい一心で基準のほうを下げてしまう。いわゆる Goodhart の法則です。
本稿は、その自己採点を 外部検証に接地 して縛る「自己検証ループ」を、Claude Code の標準部品(plugins / subagents / skills)で素直に組む方法を、公式ドキュメントを引きながら整理します。具体的な OSS 実装として loop-kit(MIT)にも触れます。
なぜ自己採点は当てにならないか
LLM は「合格させたい」方向に評価を歪めます。対策は、モデルが言い逃れできない 決定的なゲート をループに置くこと。コードなら node --test / pytest / tsc --noEmit / ruff のような、人の主観が入らない自動判定です。本稿ではこれを L0(決定的ゲート)=砦 と呼びます。
ループの骨格
実装 → L0(決定的ゲート)→ 敵対的 validator(builder ≠ checker)→ 修正 → 反復(有界)
合格基準は 先に凍結 し、通すために緩めない。反復は 有界(〜3 回)で空回りを防ぐ。鍵は「品質をモデル自身の甘い自己採点に依存させない」ことです。
Claude Code の部品で組む
1) パッケージング(plugin)
ループの“段取り”(手順・検品役)をひとまとめにして配布できます。
Plugins let you extend Claude Code with custom functionality that can be shared across projects and teams
(出典 [1])
プラグインは単一機能に限りません。検品役のエージェントやフックなどを同梱できます。
custom agents, hooks, MCP servers, LSP servers, and background monitors
(出典 [1])
2) 検品役は subagent(builder ≠ checker の肝)
検品を「作った本人」とは別の役に分けるのが核です。Claude Code の subagent は独立したコンテキストで動きます。
Subagents are specialized AI assistants that handle specific types of tasks
(出典 [2])
Each subagent runs in its own context window with a custom system prompt, specific tool access, and independent permissions
(出典 [2])
さらに、検品のような軽い役は安価なモデルへ振り分けられます。
routing tasks to faster, cheaper models like Haiku
(出典 [2])
つまり「重い実装は上位モデル、粗探し(検品)は Haiku のような軽量モデル」と非対称に割り当てられます。検品役の仕事は“承認”ではなく“欠陥を見つけること”です。
3) 手順の常駐(skill)
ループ手順は skill にして、必要なときに自動で surface させます。skill は「同じ指示を毎回貼る」場面の置き換えに向きます。
Create a skill when you keep pasting the same instructions, checklist, or multi-step procedure into chat
(出典 [3])
builder ≠ checker をどう担保するか
同一モデルが「作って・自分で検品」すると、自分の盲点には気づけません。役を subagent で分けると、単一モデルの系統的な見落としが通りにくくなります。合格基準を先に凍結しておくことで、「通すために基準を後から緩める」逃げ道も塞げます。
正直な限界
- 完全に独立した検証ではない。 生成も検品も同じ Claude 族なので、系統的に誤る欠陥は両者が共に見逃しえます。validator は盲点を減らしますが、消しはしません。
- 本当の砦は L0(決定的ゲート)。 validator は二次パス。ロジックを純関数に切り出してテスト可能にするほど、ループは強くなります。
- 事実検証では自己検品は砦にならない。 ソース接地+人間承認が砦です。
- 全タスクには被せない。 1 行修正・調査・質問にループは過剰(トークン浪費)。反復は〜3 で頭打ちです。
まとめ
凍結した YES/NO 基準 + 決定的ゲート(L0)+ 別役の検品(builder ≠ checker)+ 有界反復。これらは Claude Code の plugin / subagent / skill で素直に組めます。OSS の参考実装として loop-kit(MIT・https://github.com/akihidem/loop-kit )が /loopify・loop-protocol(skill)・validator(subagent)を同梱しています。
出典
本稿の引用はすべて一次資料と逐語照合(verify_article 通過)のうえ掲載しています(2026-07-13 検証)。
[1] https://code.claude.com/docs/en/plugins
[2] https://code.claude.com/docs/en/sub-agents
[3] https://code.claude.com/docs/en/skills


