1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「できた?」に甘く答える LLM を外部検証で縛る:Claude Code で組む自己検証ループ

1
Last updated at Posted at 2026-07-13

LLM にコードを書かせて「これで完成?」と訊くと、多くの場合“甘い”自己採点が返ってきます。通したい一心で基準のほうを下げてしまう。いわゆる Goodhart の法則です。

本稿は、その自己採点を 外部検証に接地 して縛る「自己検証ループ」を、Claude Code の標準部品(plugins / subagents / skills)で素直に組む方法を、公式ドキュメントを引きながら整理します。具体的な OSS 実装として loop-kit(MIT)にも触れます。

AI は自分に甘く採点しがち。だから機械が客観的に合否を出す関門(L0=砦)を置く

なぜ自己採点は当てにならないか

LLM は「合格させたい」方向に評価を歪めます。対策は、モデルが言い逃れできない 決定的なゲート をループに置くこと。コードなら node --test / pytest / tsc --noEmit / ruff のような、人の主観が入らない自動判定です。本稿ではこれを L0(決定的ゲート)=砦 と呼びます。

ループの骨格

実装 → L0(決定的ゲート)→ 敵対的 validator(builder ≠ checker)→ 修正 → 反復(有界)

合格基準は 先に凍結 し、通すために緩めない。反復は 有界(〜3 回)で空回りを防ぐ。鍵は「品質をモデル自身の甘い自己採点に依存させない」ことです。

つくる → 機械の関門(L0)→ 別の subagent が検品 → 直す → くり返す(両方 OK で完成、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 が成果物を渡し、別の役の検品 subagent が粗探しする(同系統ゆえ完全独立ではない点に注意)

同一モデルが「作って・自分で検品」すると、自分の盲点には気づけません。役を 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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?