はじめに:Vibe Codingから自律Loopへ──しかし、その前に「ハーネス」はあるか?

Claude Code や Cursor といった AI コーディングエージェントの発展により、開発スタイルは劇的な変化を遂げています。単発のプロンプトでコードを生成させる 「Vibe Coding(雰囲気による自然言語指示)」 から、エージェントに長時間のタスクを自律実行させる 「Loop(ループ)」 の活用へとシフトしつつあります。

Claude Code の開発者である Boris Cherny 氏は「もう Claude に直接プロンプトを打つことはない。プロンプトを打つループを回している。私の仕事はループを書くことだ」と語り、エージェントを自律走行させる開発モデルの到来を裏付けています1

しかし、意気込んで自律ループを回し始めたものの、以下のような壁に突き当たった経験はないでしょうか。

  • エージェントが何度繰り返しても同じテストで失敗し、無限ループに陥る
  • プロジェクト固有の命名規約や構造を無視し、非推奨のライブラリを使ってコードを書き換えてしまう
  • ローカル環境と AI の実行環境でコマンドやバージョンが異なり、セルフチェックが正常に機能しない

こうした失敗の根本原因は、AI モデル自体の知能不足ではありません。 「エージェントを安全かつ正確に走らせるためのハーネス(Harness:制約・文脈・検証基盤)」 が欠如していることにあります。

いくら高性能なレーシングカー(AI モデル)と自動運転システム(Loop)を用意しても、ガードレール(文脈・制約)がなく、整備されたサーキット(検証環境)がなければ、車はすぐにコースアウトしてしまいます。本記事では、自律ループを回す前段階として不可欠な 「ハーネスエンジニアリング(Harness Engineering)」 の全体像と具体的な構築手法を解説します。


課題分析:巨大単一 AGENTS.md が招く Context Rot と検証の破綻

エージェントの行動を制御するために、リポジトリルートに AGENTS.md.cursorrules を配置する設計は一般的になりました。しかし、すべての規約・ガイドライン・コマンドを 1 つのファイルに詰め込もうとすると、すぐに強烈な副作用に見舞われます。

それが、学術的にも実証されている 「Lost in the Middle(中央埋没)現象」 と、コンテキストの形骸化である 「Context Rot(文脈の劣化)」 です。

1. 科学的に証明された Lost in the Middle 現象

Liu らの研究論文『Lost in the Middle: How Language Models Use Long Contexts』では、LLM は長大な入力コンテキストの冒頭(Primacy)と末尾(Recency)の情報を最も正確に認識する一方で、 中央部に配置されたキー情報の参照精度が 20〜30 パーセントポイント以上低下する(U字型精度曲線) ことが実証されています2

最悪の場合、コンテキストの中に解や指示が含まれていても、情報量が多すぎることで事前学習のみ(Closed-book)の精度を下回る現象すら確認されています。

入力コンテキスト位置と情報参照精度(Lost in the Middle現象)

プロジェクトルートの AGENTS.md に数百行以上のルールを書き連ねると、中央付近に埋もれた重要ルールが「Lost in the Middle」によって完全にスルーされてしまいます。AI が指示を無視するのは反抗期だからではなく、 コンテキスト長増加に伴う科学的な現象 なのです。

2. Context Rot と 1 ファイル 300 行の限界

Varun Mathur 氏が指摘するように、コンテキスト空間へ無秩序に情報を流し込むと、過去のメッセージや過剰な設定の中に本当に必要な制約が没没し、回答品質が著しく劣化する Context Rot が発生します3

Agentic AI Foundation が策定する AGENTS.md オープン標準仕様においても、1 つのコンテキストファイルに含める指示は 150〜200 指示以内(約 300 行以内) に抑えることが推奨されています4

さらに、ローカル開発環境と AI エージェントの実行コマンドが統一されていない場合、エージェントは自身が生成したコードの合否判定(Self-Verification)に失敗し、誤った確信を持ったまま作業を完了としてしまいます。


Context設計:オブジェクト指向クラス設計に学ぶ AGENTS.md の階層分割

巨大単一ファイルの限界を打破する鍵が、 「階層的コンテキスト管理(Hierarchical Context Architecture)」 です。

プログラミングにおける オブジェクト指向のクラス設計(カプセル化・継承) を思い出してください。システム全体の共通ルールを抽象親クラスに定義し、モジュール固有の具体的な振る舞いは具象派生クラスに閉じ込めるのが鉄則です。コンテキスト設計もまったく同じ考え方が適用できます。

/ (Repository Root)
├── AGENTS.md                  ← [基底クラス] プロジェクト全域の共通原則・絶対禁止事項
└── src/
    └── features/
        └── auth/
            └── AGENTS.md      ← [派生クラス] 認証モジュール専用の命名規約・局所ルール

階層分割における各ツールの動作仕様とマージ挙動

エージェントがサブディレクトリ配下のファイルを操作する際、上位ディレクトリからルールを自動的に継承・マージする仕組みが整っています。

  1. AGENTS.md オープン標準(Agentic AI Foundation): 作業対象のサブディレクトリからルート方向へ上位探索(Hierarchical Traversal)を行い、カレントディレクトリに最も近い AGENTS.md の記述が最優先(Precedence)されます4。広域ルールを局所ルールが上書き・拡張する設計です。
  2. Claude Code: ネイティブの設定ファイル(CLAUDE.md.clauderules)は Ancestor Traversal によって祖先ディレクトリのファイルを自動探索・統合します。標準の AGENTS.md を利用する場合は、ルートの CLAUDE.md 内で @AGENTS.md@src/features/auth/AGENTS.md と記述して明示的にインポート・参照させる手法が推奨されます5
  3. Cursor: .cursor/rules/*.mdc 内の YAML Frontmatter にて globs: "src/features/auth/**/*.ts" のように対象パスを指定することで、該当モジュールの編集時にのみ該当ルールを動的注入できます5

ディレクトリ階層別 AGENTS.md の具体的な記述例

ルート /AGENTS.md(全域適用ルール)

# Project Core Principles

## Global Rules
- Always use Clean Architecture patterns.
- Do not add new npm dependencies without explicit permission.
- All code changes MUST be verified using the standard check command.

## Universal Verification
Before completing any task, execute:
```bash
mise run check
```

サブディレクトリ /src/features/auth/AGENTS.md(認証モジュール専用ルール)

# Auth Module Local Guidelines

## Component & Logic Rules
- Use Zod schemas for all request validation.
- Authentication tokens MUST be handled via HTTP-only cookies.
- Do not modify legacy session handlers in `utils/legacy-session.ts`.

## Local Testing
To run tests specifically for this module:
```bash
mise run test -- src/features/auth
```

必要な領域のコンテキストのみを絞り込んで AI に手渡すことで、「Lost in the Middle」によるルール無視を物理的に防ぎ、1 ファイルあたりの行数も健全に保つことが可能になります。


環境ハーネスの標準化:mise による決定論的検証環境の構築

文脈(Context)を整えたら、次はエージェントが安全に走れる 「実行環境ハーネス」 の標準化です。

エージェントに自律検証(Self-Verification)を行わせる際、最大の障害となるのが 環境依存とコマンドの分散 です。言語ごとに npm test / pnpm test / pytest / go test / cargo test とコマンドが乱立していたり、ローカル環境と CI 環境で Node.js やツールチェーンのバージョンがズレていると、AI の実行ループは簡単に崩壊します。

ここで強力な武器となるのが、開発環境ミドルウェア・タスクランナーである mise(mise-en-place) です6

1. mise による環境・タスクの一括抽象化

mise を導入することで、ツールバージョンの固定(Node.js, pnpm, Python 等)と、タスク実行パイプラインの標準化を mise.toml 単一ファイルで決定論的に管理できます。

リポジトリルートの mise.toml 設定例

[tools]
node = "22.12.0"
pnpm = "9.15.0"

[env]
NODE_ENV = "test"

[tasks.lint]
description = "Run ESLint and Prettier"
run = "pnpm lint"

[tasks.typecheck]
description = "Run TypeScript type checks"
run = "pnpm tsc --noEmit"

[tasks.test]
description = "Run Vitest suite"
run = "pnpm test"

[tasks.check]
description = "AI Agent Self-Verification: Complete validation pipeline"
depends = ["lint", "typecheck", "test"]

2. AGENTS.mdmise の決定論的統合

mise.toml で全自動検証タスク [tasks.check] を用意したら、AGENTS.md の検証コマンドセクションには以下のように指定するだけです。

## Verification Commands
Before marking a task as done, you MUST execute the following command and confirm all checks pass:

```bash
mise run check
```

言語やプロジェクトの技術スタックが変わっても、AI エージェントに対する指示は 「作業終了前に必ず mise run check を実行せよ」 という 1 行で完結します。

mise run check はリント、型チェック、単体テストを依存関係順に一括実行するため、AI エージェントはツールバージョンや環境差異に悩まされることなく、完全に一貫したセルフチェックを回すことができます。


まとめ:ハーネスエンジニアリングがひらく「安心できるAI協働開発」

AI エージェントを活用した開発において、モデルの選択や単発プロンプトの調整(Prompt Engineering)に費やす時間はすでに過去のものです。また、単に自動ループ(Loop)を回すだけでも不十分です。

真に求められているのは、エージェントの走行路を整える 「ハーネスエンジニアリング(Harness Engineering)」 です。

  • 文脈のハーネス: クラス設計に学んだ AGENTS.md の階層分割により、Lost in the Middle や Context Rot を科学的に回避する。
  • 環境のハーネス: mise などのタスクランナーで統一インターフェースを構築し、AI による決定論的な自律検証(Self-Verification)を可能にする。

制約と検証基盤というガードレールが強固に整って初めて、AI エージェントは開発者の信頼に応える本当の自律性を発揮できます。まずは手元のプロジェクトで、肥大化した AGENTS.md の分割と mise.toml による検証コマンドの統一から始めてみてください。

AI エージェントのコンテキスト設計や開発プロセスの標準化・導入支援についてご相談がある方は、ぜひ コンタクトフォーム よりお気軽にお問い合わせください。


参考文献

Footnotes

  1. Towards Dev. “Vibe Coding to Loop Engineering: The Next Evolution of AI Coding.” 2026.

  2. Liu, Nelson, et al. “Lost in the Middle: How Language Models Use Long Contexts.” Transactions of the Association for Computational Linguistics (TACL), 2024. https://arxiv.org/abs/2307.03172 (2026-07-23参照).

  3. Mathur, Varun. “Your AI is a genius locked in a room — here’s how context engineering sets it free.” Medium, 2026. https://medium.com/@mathurvarun84/your-ai-is-a-genius-locked-in-a-room-heres-how-context-engineering-sets-it-free-d9cee74b5cef (2026-07-23参照).

  4. Agentic AI Foundation. “AGENTS.md Specification.” https://github.com/agents-md/spec (2026-07-23参照). 2

  5. Harsh. “Context Engineering: Why Your AGENTS.md File Is Quietly Running Your AI Coding Sessions.” Medium, 2026. https://simplifiedbyharsh.medium.com/context-engineering-why-your-agents-md-file-is-quietly-running-your-ai-coding-sessions-4caedc0aa93d (2026-07-23参照). 2

  6. jdx. “mise-en-place Documentation.” https://mise.jdx.dev/ (2026-07-23参照).