AIコーディング: 「指示を書く」は最終手段。lint・ビルドエラー・hook・skillで機械的に縛る
エージェントのミスを見たら「どう指示するか」ではなく「どうすればこのミスを不可能にできるか」を考え、決定的(deterministic)な仕組みに置き換える。
置き換え表
| やりたいこと | 指示の代わりに使うもの |
|---|---|
| コーディング規約を守らせたい | ESLint/Biome等のlintルールを設定・自作する |
| 既存のアンチパターンを真似させたくない | そのパターンをリファクタし、再発したらビルドエラーにする |
| 分かりにくい設計を説明したい | 設計自体を直して一貫させる(AIで直すのは安い) |
| ファイル編集後・停止時に処理を走らせたい | hook(Claude Code の PostToolUse / Stop hook 等) |
| PR作成やコードレビューの手順を伝えたい | skill を作る |
なぜ?
- 指示は「ソフト」: コンテキストを膨らませ、しばしば無視され、根本原因を覆い隠す
- 上の手段は「確実性」を生む
注意点
- すべてを機械化する必要はない。プロダクトの意図や背景など、ツールで表現できない情報は簡潔に AGENTS.md / CLAUDE.md に残す。
- lintやhookはエージェントにも人間にも効くので、チーム全体の品質向上になる。