コンテンツにスキップ
Zenn Dev Forest Project Articles A7b89cd25b60dc

Claude Codeが廃案を実装し直す「コンテキスト・ドリフト」を止めるドキュメント管理術

  • URL: https://zenn.dev/forest_project/articles/a7b89cd25b60dc
  • 日付: 2026-06-25
  • Tier: Tier 3
  • 要旨: LLMが前回却下した案を数セッション後に無意識に復活させる「コンテキスト・ドリフト」を、フロントマター+Linter+アーカイブ保護+セッション開始時の最小コンテキスト注入の4層で構造的に抑えるブループリント。ETH Zürich の研究(ArXiv:2602.11988)で自動生成コンテキストが成功率を3%低下させる実証実験に基づき、入力の中盤が見落とされる「Lost in the Middle」と、無関係情報が注意ヘッドの配分を奪う性質(Huang et al. ArXiv:2502.01609)を明示。7値のステータス(draft/proposed/current/deprecated/superseded/archived/open)を強制付与、書き込み時の docs-linter.py(stdin JSON経由の自己修復ループ)、PreToolUse Hook による アーカイブ不変化とADR追記型化、CLAUDE.md は薄いルーター化により、廃案の具体的な中身は隠す。スペック駆動開発(Spec-Driven Development)で設計書自体がAI指示として機能する手法。

詳細

コンテキスト・ドリフトの4つの形(廃案の復活・未決の既決化・仕様と実装の取り違え・古い前提の採用)と原因分析:LLMは入力の先頭と末尾の情報には高精度アクセスするが中間情報を見落とす(Liu et al., 2024)。無関係だが一貫した文脈を加えると推論性能が平均45%以上低下する注意機構の偏り(Zhu et al., 2025)。導入の中核は確率的スキル(Skill)と決定論的フック(Hook)の分離、フロントマターメタデータ(id/title/type/status/owner/updated/sources)の7項目必須化、PostToolUse Hook で書込時に Linter 自動実行(エラー検知時も停止せず tool_result としてAIが自律修正)、PreToolUse Hook でアーカイブ・決定済みADRへの編集を物理的に拒否(追記型へ誘導)、SessionStart Hook で廃案の中身は隠し圧縮された事実関係(ラベル・撤回日・非目標・回帰監視リスト)のみ注入。CLAUDE.md は薄いルーター(常時参照: 確定済み事実、非目標、戻してはならない事項;規約: 現行vs歴史的区別、未決の人間帰属)に限定して CLAUDE.md 肥大化を防止。導入時の落とし穴:メタデータ付与漏れによる Linter 過検出、フック実行パスエラー、毎ターン全走査による速度低下(単一ファイル検証に限定)、運用形骸化(更新はAI代行・人間は承認のみ)。4つの仕事は互いに従属せず、プロジェクトごとに構成される設計書として配布される。