ハーネスエンジニアリングは、モデルそのものではなく、モデルが安定・安全・再現可能に働くための周辺環境を設計する考え方です。
このリポジトリでは、AGENTS.md や CLAUDE.md を単なるメモではなく、エージェントの実行基盤を整えるための入口として扱います。重要なのは文書を増やすことではなく、何を読ませ、何を触らせ、どう検証し、失敗からどう改善するかを一体で設計することです。
AGENTS.md と CLAUDE.md は短く保ちます。最初に必要な事実だけを書き、詳細は個別文書へ逃がします。
設計、判断理由、進行中の計画、運用方針は docs/ 配下に置きます。入口文書に長文を集約しません。
ハーネスには次の要素を含めます。
- どの文書を先に読むか
- いつ計画を作るか
- どのコマンドで検証するか
- 何を完了条件とみなすか
- どの操作を禁止または要承認にするか
失敗時に長文ルールを追加するのではなく、原因が入口不足なのか、文書配置なのか、検証不足なのか、権限設計なのかを見直します。
全エージェント共通の最小契約を置きます。
- リポジトリの目的
- ディレクトリの地図
- build / test / lint / format
- 共通の作業ルール
- 完了条件
- 深い文書へのリンク
Claude Code 向けの追加ガイドを置きます。
- 起動時に読む順番
- 変更前の探索手順
- どの変更でプランを必須にするか
- 既存パターンやテストを先に確認する方針
- 将来的に
.claude/配下へ分割する前提
深い知識を配置します。
docs/architecture.md: アーキテクチャ全体像docs/overview.md: 全体像、現在地、次の順番docs/decisions.md: 設計判断の記録docs/coding-rules.md: 実装・レビューの詳細ルールdocs/plans/: 実装計画docs/harness-engineering.md: エージェント運用の設計原則
AGENTS.md- 変更対象に近い
docs/文書 - 対象 crate / テスト / 既存実装
AGENTS.mdCLAUDE.md- 関連する
docs/文書 - 対象コードとテスト
このリポジトリでは、実装前にプランを提示して合意を取る運用を共通ルールにします。
次のいずれかに該当する変更は、短くてもプランを明示します。
- 振る舞いが変わる変更
- 複数ファイルにまたがる変更
- テスト戦略の変更
- ドキュメント構造の変更
エージェントは編集後に、影響範囲に応じて検証方法を選びます。
- フォーマット:
cargo fmt - Lint:
cargo clippy --workspace - 全体テスト:
cargo test --workspace - 部分テスト: 対象 crate の
cargo test -p <crate>
変更に応じて必要な検証を明示し、未実行の検証があれば完了扱いにしません。
作業完了とみなす最低条件は次です。
- 変更意図がコードまたは文書から追える
- 必要なテスト、lint、format の実行状況が明確
- 振る舞い変更があれば関連文書が更新されている
- 次に見るべき文書や残課題があれば明示されている
危険操作は明示的な依頼なしに行いません。
- 破壊的な git 操作をしない
- secrets や認証情報を変更しない
- 実行意図が不明なコマンドを走らせない
- 必要最小限の差分で進める
同じ種類の失敗やレビュー指摘が繰り返されたら、次の順で見直します。
- 入口文書が長すぎないか
- 詳細知識の配置先が曖昧でないか
- 検証手順が不足していないか
- 完了条件が弱くないか
- 権限や禁止事項が曖昧でないか
ルールの追加は、その失敗を次回防げる最小限の粒度で行います。