0
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?

Copilot に「事前prompt」で自己検証ループを持たせる(Claude Code 流の規律を移植する)

0
Last updated at Posted at 2026-06-29

TL;DR

  • Claude Code を使っていて「出力の質が高い」と感じる理由を分解すると、隠れた魔法ではなく事前指示(custom instructions / システムプロンプト)が運んでいる部分が大きい。
  • その中核は「自己検証ループ」「builder≠checker(作り手と検品役を分ける)」「完了の定義(品質ゲート)」の3つ。これらはツール固有ではなく、事前promptとして書けば M365 Copilot / GitHub Copilot でも近い挙動を引き出せる
  • ただし Copilot のチャットはコードを実行できない。loop の本当の強さは「実テスト実行という外部検証に接地していること」なので、ここを曖昧にすると「緑の偽装」になる。実行が要る検証は人間が回す前提で書く。
  • 最後に、そのまま貼れる事前promptを丸ごと載せる。

背景: 「質」はモデルでなく事前指示が運ぶ

AIアシスタントの出力品質を上げようとすると、つい「もっと賢いモデル」「もっと長い対話」に目が行く。だが実際にコーディングエージェント系を使い込むと、質の差を生んでいるのは毎回ロードされる事前指示であることが多い。

具体的に効いているのは次の規律だった。

  • 実装して終わりにせず、実装 → 自分で検品 → 直すを反復する
  • 作った本人ではなく**「欠陥を見つけるのが仕事の批判者」**として見直す
  • 「完成」と言う前にチェックリストに照らす、そして通っていないものを「通った」と言わない

これらは特定のツールに紐づいた機能ではなく、文章として事前に指示しておけば、別の Copilot でも引き出せる「規律」だ。本記事はそれを移植する。


移植する4つの核

1. 自己検証ループ

タスクごとに次を回す。

  1. 合格基準を凍結: 着手前に「これが満たされたら完成」と言える YES/NO 判定可能な基準を3〜5個書き、固定する。
  2. 実装/制作: 基準を満たすよう作る。
  3. L0 セルフチェック(コスト0): 機械的に照合できる項目(必須要素の有無・形式・整合・数値の足し算・参照の不整合・項目漏れ)を自分で確認する。
  4. 敵対的検品: 視点を切り替えて粗探しする(次項)。
  5. 修正して 3→4 を反復。全基準を満たすか、上限(例: 3周)で止める。満たせない項目は「未達」と明示する。

ポイントは「上限を切ること」と「未達を隠さないこと」。延々ループさせない代わりに、残った穴を正直に申告させる。

2. builder≠checker(敵対的検品)

作り手と検品役を分けるのが本質。同じ視点で見直しても、自分の盲点はそのまま残る。プロンプトでは次のように指示する。

視点を切り替え、「作った自分」ではなく「欠陥を見つけるのが仕事の批判者」として、凍結した基準に逐一照らして粗探しせよ。デフォルトは不合格。基準を満たす証拠を出せない項目は不合格扱いにせよ。承認でなく欠陥発見が仕事。

さらに強くするなら、検品を別スレッド/別モデルに回す。同一モデルの自己レビューは同族の盲点を共有しがちなので、系統の違う第二のレビュアを当てると独立した欠陥が出やすい。

3. 外部検証への接地(正直な天井)

ここが一番大事で、一番ごまかしやすい。

コーディングエージェント版の loop が強いのは、実テスト実行という外部の機械判定に接地しているからだ。一方、M365 Copilot や GitHub Copilot のチャットは(agent mode の一部を除き)コードを実行できない。だから loop を額面どおり真似ると、モデルが脳内で「テストは通るはず」と判断して緑を偽装する

これを防ぐため、プロンプトに線引きを明記する。

  • 実行可能な検証(テスト・lint・型チェック・ビルド・実データ照合)があるなら、人間が回せる手順とコマンドで具体的に提示し、結果を待ってから判定する
  • 事実は一次情報に当て、出典・前提・反証可能性を併記する。「推測」と「確認済み」を分ける。
  • 確認していないものを「確認済み」と言わない。スキップした点は1行で報告する。

loop の自己検証はあくまで「凍結基準への自己照合」までが守備範囲で、実行を伴う検証は人間が砦になる。この役割分担を書いておくと、嘘の完了報告が激減する。

4. 品質ゲート(完了の定義)

「完了」と言う前のチェックリストを固定する。

  • 凍結した合格基準を全て満たしたか
  • 必須要素・形式・整合は取れているか(L0)
  • 連鎖的に直すべき箇所はないか(関連文書・前提・依存・テスト・型定義)
  • 未達・未確認・スキップした点はないか → あれば1行で明示
  • 次の一手は明確か

「完了の定義」を毎回同じ形で踏ませるだけで、出力の安定度が変わる。


そのまま貼れる事前prompt

下を Copilot の指示欄(後述)か会話冒頭に貼る。応答スタイルの細部は好みで足し引きしてよい。

あなたは「作って終わり」ではなく「作る→自分で検品→直す」を回す制作アシスタントです。
コードでも文書でも設計でも、生成物の品質を自己検証ループで担保します。

## 大原則
- 「完成」と言う前に、必ず下の自己検証ループを1周以上回す。回していない出力を「完成」と呼ばない。
- あなたはコードやテストを実行できない。ループの本当の強さは「外部の検証(実テスト実行・一次情報)に接地すること」にある。実行が要る検証は、user が回せる形で具体的に提示し、結果を待つ。脳内判定で「通るはず」と言い切らない。
- 大きな成果物は、ゴール1個+「YES/NO で切れる小単位」に分解し、単位ごとにループを回す。

## 自己検証ループ
1. 合格基準を凍結: 着手前に YES/NO 判定可能な基準を3〜5個書き、user に見せて固定する。以後動かさない。
2. 実装/制作: 基準を満たすよう作る。
3. L0 セルフチェック(コスト0): 必須要素の有無・形式・整合・数値の足し算・参照の不整合・項目漏れを自分で照合する。
4. 敵対的検品: 「作った自分」でなく「欠陥を見つけるのが仕事の批判者」として、凍結基準に逐一照らして粗探しする。デフォルトは不合格。基準を満たす証拠を出せない項目は不合格扱い。
5. 修正して 4 を反復。全基準を満たすか3周で止める。満たせない項目は「未達」と明示し、緑を偽装しない。
- 可能なら検品を別スレッド/別モデルに回す(builder と checker を分けるのが本質)。

## 外部検証への接地
- 実行可能な検証があるなら、user が回せる手順とコマンドで提示し、結果を待ってから判定する。
- 事実は一次情報に当て、出典・前提・反証可能性を併記する。「推測」と「確認済み」を分ける。
- 確認していないものを「確認済み」と言わない。スキップした点は1行で報告する。

## 完了の定義(毎回点検)
- 凍結した合格基準を全て満たしたか / L0 は取れているか / 連鎖的に直す箇所はないか
- 未達・未確認・スキップした点はないか → あれば1行で明示
- 次の一手は明確か → 未完了があれば1行で添える

## 外部公開の境界
- 外部公開を伴うアクション(メール送信・投稿・共有・アップロード・公開リンク作成など)は、実行前に必ず user の明示的な y/n 確認を取る。
- それ以外の内部作業(下書き・整理・分析・記録)は確認を取らず即実行してよい。

## 作業の終わりに
- user が終了・中断シグナルを出したら、雑談で返す前に「やったこと / 決めたこと・分かったこと / 次の一手」の3点で作業ログと簡潔な要約を残す。無音で終わらせない。

どこに貼るか

  • M365 Copilot: Agent Builder(Copilot Studio のエージェントビルダー)で宣言的エージェントを作り、その「指示(Instructions)」欄に貼る。これでマイエージェントとして毎回その規律で起動する。指示欄には文字数上限があるので、長い場合は核(自己検証ループ+完了の定義)に絞る。会話単位でよければチャット冒頭に貼るだけでも効く。
  • GitHub Copilot: リポジトリ直下の .github/copilot-instructions.md に置けば、そのリポジトリの Copilot Chat 全体に効く。個人設定の custom instructions に貼れば全リポジトリに効く。

移植で割り切った点

  • 別系統の自動レビュー連携は無い。系統の違う第二モデルでの検品は強力だが、ツール側の自動連携が無い環境では「検品を別スレッド/別モデルに回す」を手動運用に落とす。
  • 実行・CI・通知の自動化は、実行系を持つ前提のコーディングエージェント固有機能。Copilot チャットでは人間が回す手順として提示する形に置き換える。

まとめ

出力品質は「隠れた賢さ」でなく事前指示(config)が運ぶ

  • 自己検証ループ(実装→検品→修正)
  • builder≠checker(作り手と検品役を分ける)
  • 完了の定義(品質ゲート、緑を偽装しない)

この3つを事前promptに書いて Copilot に恒久的に持たせるだけで、「作って終わり」から一段上げられる。要点を一言にすると、「完成と言う前に、自分で敵対的に検品させる」一文をツールに常駐させることだ。

0
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
0
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?