create-agent-harness について
create-agent-harnessは、リポジトリのエージェント用ハーネスを生成・移行するスキルです。コーディングエージェントの環境を整える開発者向けに、CLAUDE.mdと.claude/を中心に、リポジトリの根拠と決定的な検証に沿って作業を進めます。
主な機能
- 01CLAUDE.mdと.claude/の生成・補完
- 02既存ハーネスファイルの移行
- 03複数プラットフォーム向け参照設定
- 04調査・移行・生成・検証の段階的実行
- 05リポジトリの根拠に基づく内容作成
活用シーン
- 01リポジトリをAIエージェント向けに準備
- 02AGENTS.mdや.cursorrulesを.claude/へ移行
- 03エージェントの権限・フック・サブエージェントを設定
- 04セッションをまたぐメモリとプロジェクト情報を追加
MCP 対応
調査時にリポジトリ内のMCPサーバー設定などのコンテキスト情報を確認します。MCPサーバーの構築を目的とするスキルではありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ afonsoft/ skills --skill create-agent-harnessインストール後、Claude Code で/create-agent-harnessを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/context-engineering.mdmemory-protocol.mdmigration-map.mdplatform-quirks.mdspec-sdd-template.mdvalidation-artifacts.mdreferences/agents/architecture.mdengineer.mdplan.mdreview.mdtest.mdscripts/validate-harness.sh詳細
エージェントハーネスの作成
リポジトリのエージェントハーネスを、最新の Claude Code + Agent Skills の構成に生成または移行します。ハーネスとは、モデル単独ではできないことすべてを指します。行動前のオリエンテーション、コンテキストがリセットされても保持される状態、無視できない計算上のガードレールが含まれます。このスキルはリポジトリを調査し、既存のレガシーハーネスを移行し、不足しているアーティファクトを生成して、決定論的なコマンドで結果を検証します。
対象範囲:プライマリの
CLAUDE.mdと.claude/です。同じ情報源は Devin CLI にも使用されます(read_config_from.claudeが設定されている場合、.claude/をネイティブに読み取ります)。Cursor、OpenCode、Gemini、Antigravity 向けには、可能な限り.claude/を参照するプラットフォーム固有の薄いディレクトリを生成します。レガシー構成は.claude/に移行し、元のファイルやディレクトリは削除されます。
対応プラットフォーム
| プラットフォーム | 設定ファイル | スキルディレクトリ | フックディレクトリ | 備考 |
|---|---|---|---|---|
| Claude Code | CLAUDE.md | .claude/skills/ | .claude/hooks/ | プライマリの対象、単一の信頼できる情報源 |
| Devin CLI | AGENTS.md | .devin/skills/ | .devin/hooks/ | read_config_from 経由で .claude/ をネイティブに読み取ります |
| Devin Desktop | AGENTS.md | .devin/skills/ | .devin/hooks/ | Devin CLI と同じ |
| OpenCode | AGENTS.md | .opencode/skills/ | .opencode/hooks/ | 薄い設定、MCP は mcp キーの下に配置 |
| Cursor | AGENTS.md | .cursor/skills/ | .cursor/hooks/ | .cursorrules を .claude/rules/ に移行する薄い設定 |
| Gemini CLI | AGENTS.md | .gemini/skills/ | .gemini/hooks/ | IDE と CLI で .gemini/ を共有 |
| Antigravity IDE | AGENTS.md | .gemini/skills/ | .gemini/hooks/ | Gemini CLI と同じ |
| Antigravity CLI (agy) | AGENTS.md | .gemini/antigravity-cli/skills/ | .gemini/antigravity-cli/hooks/ | IDE とは別 |
方針: 信頼できる唯一の情報源として
CLAUDE.mdを生成し、Claude 以外のプラットフォーム向けに薄いシンボリックリンクまたは参照ファイルとしてAGENTS.mdを作成します。Claude Code はCLAUDE.mdをネイティブに読み取り、その他のプラットフォームはAGENTS.mdを読み取ります。
使用するタイミング
-
「このリポジトリを AI エージェント向けに準備して」/「このリポジトリのハーネスを設定して」
-
「CLAUDE.md を作成して」/「CLAUDE.md を改善して」
-
「AGENTS.md/.agents//.cursorrules を .claude/ に移行して」
-
「権限、フック、サブエージェントを設定して」
-
「エージェントがセッション間の情報をすべて忘れる」/「メモリを設定して」
-
ユーザーが英語でこのスキルを依頼、または言及した場合(例:「use /create-agent-harness」、「run create-agent-harness」)。
-
ユーザーがポルトガル語でこのスキルを依頼、または言及した場合(例:「use /create-agent-harness」、「execute create-agent-harness」)。
使用しないケース
| 依頼 | 代わりに使用 |
|---|---|
| MCP サーバーの構築 | building-mcp-servers |
| GitHub Actions のエージェント型ワークフロー(gh-aw) | github-agentic-workflows |
| JetBrains/Copilot 専用のハーネス | 対象範囲外 — 依頼を断り、その理由を説明してください |
AGENTS.md を信頼できる唯一の情報源として維持 | 対象範囲外 — このスキルは AGENTS.md を CLAUDE.md に移行します |
即時実行
呼び出されたら、直ちに Phase 0 を開始します。何をすべきか尋ねないでください — スキルの呼び出しが依頼です。
Phase 1 の最後にある調査ゲートだけが、必須の一時停止ポイントです。 それ以前に作成、移動、削除は行いません。それ以降はすべて自律的に実行します。
基本原則
Agent = Model + Harness
各コンポーネントは、モデル単独ではできないことがあるために存在します。陳腐化を前提に設計してください。設計の指針となる信頼性のループは次の 2 つです。
- フィードフォワード — 行動する前に方向を示す(
CLAUDE.md、ルール、スキル、メモリの読み取り) - フィードバック — 行動した後に検証する(lint、テスト、CI、フック、メモリの書き込み)
プロンプトより計算による制御を優先してください:settings.json とフックは無視できませんが、プロンプトは無視できます。
❗ 禁止: コンテキストを捏造してはいけません。生成するアーティファクトのすべての記述には、対象リポジトリによる根拠が必要です。根拠がない場合は
TODO:と記載して質問してください。
プロセス
graph LR
P[0. Pre-flight] --> D[1. Discovery]
D --> G{Gate}
G --> M[2. Migration]
M --> A[3. Artifacts]
A --> V[4. Validation]
| フェーズ | 目標 |
|---|---|
| 0. 事前確認 | 実行ルール、git の状態、専用ブランチ |
| 1. 調査 | 根拠に基づくレポートとレガシーハーネスの一覧を提示し、その後一時停止 |
| 2. 移行 | すべてのレガシー成果物を .claude/ に統合し、元のファイルを削除 |
| 3. 成果物 | CLAUDE.md と .claude/ を生成または完成 |
| 4. 検証 | 決定的なチェック、最終レポート、コミットと PR の提案 |
実行ルール
以下のいずれかに違反すると、この実行は無効になります。
- コンテキストを決して捏造しないでください。 生成するすべての記述には、リポジトリ内のコード、設定、ドキュメントによる根拠が必要です。根拠がない場合は
TODO:と記載して質問してください。もっともらしい推測で不足を補ってはいけません。 - 実行前に計画を立ててください。 ファイルの作成、移動、削除を行う前に、調査の概要と移行計画を提示し、人間の確認を待ってください。
- 専用ブランチを使用してください。
main、master、developでは作業しないでください。最初の書き込みの前にfeature/{AgentLLM}-{YYYYMMDD}-{short-description}を作成してください。 - 情報源を一本化してください。 最終的なハーネスは、主に
CLAUDE.mdと.claude/に置きます。並行する構造は残してはいけません。最小限のAGENTS.md/.devin/config.json/.cursor//.gemini/は、参照のみを行う薄い構造としてのみ存在できます。 - 移行してから削除してください。 内容を移動または変換してから、元のファイルを削除してください。履歴を保持するため、
git mvとgit rmを優先してください。 - 内容を失わないでください。 レガシー成果物を削除する前に、その有用な内容が移行先にすでに存在することを確認してください。
- 冪等性を保ってください。 すでに移行済みのリポジトリで再実行しても、重複や破損が生じてはいけません。既存の状態を確認し、不足しているものだけを補完してください。
- ツールの使用。 シェルを使用できる場合は、以下の
bashコマンドを実行してください。シェルを使用できない場合は、ファイルツールで同等の操作を行ってください。以下のコマンドが、実行すべき内容の正式な仕様です。
プレースホルダーの用語集
| プレースホルダー | 意味 | 例 |
|---|---|---|
{AgentLLM} | 実行するエージェント | claude、devin |
{YYYYMMDD} | 実行日の UTC 日付。システムから取得します | 20260908 |
{slug} | kebab-case、ASCII、スペースやアクセント記号なし | dotnet-backend |
{stack} | フェーズ 1 で検出したスタック | Angular 20、.NET 8 |
{ProjectName} | 実際のリポジトリ名 | my-project |
{YYYYMMDD} を推測してはいけません。システムから取得してください。date -u +%Y%m%d、または PowerShell では (Get-Date).ToUniversalTime().ToString('yyyyMMdd') を使用します。
ツールが使えない場合の代替手段
| シェルコマンド | ファイルツールでの代替手段 |
|---|---|
ls -la | ディレクトリを一覧表示 |
find、grep -r | パターンで検索 |
git mv | 移行先に作成してから、元のファイルを削除 |
git rm | ファイルを削除 |
chmod +x | 手動での操作としてユーザーに報告 |
代替手段を使用した場合は、最終レポートにその旨を記載してください。権限と git の履歴に差異が生じます。
フェーズ 0 — 事前確認
このフェーズでは書き込みは禁止です。
# 0.1 — Confirm this is a git repository and nothing is at risk
git rev-parse --is-inside-work-tree
git status --short
# 0.2 — Check the current branch (must NOT be main/master/develop)
git rev-parse --abbrev-ref HEAD
# 0.3 — Create the dedicated branch
git checkout -b feature/{AgentLLM}-{YYYYMMDD}-bootstrap-claude-harness
判断ポイント:
git statusに無関係な変更が表示される → 停止して確認してください。作業を混在させてはいけません。- すでに同じセッションで適切な
feature/*ブランチにいる → 新しいブランチを作成せず、そのブランチを再利用してください。 - git リポジトリではない → その旨を報告し、続行するか確認してください。
git mvとgit rmを使わずに移行すると、履歴が失われます。
フェーズ 1 — 調査
このフェーズでは書き込みは禁止です。各項目には、その根拠となるソースファイルを必ず記載してください。根拠がない場合は NOT FOUND と記載し、人間への質問にしてください。
1.1 リポジトリの分析
出典を添えて、以下を記録します。
- ディレクトリ構造、ルートおよび主なサブディレクトリ
- バージョンを含む技術スタック — 言語、フレームワーク、ランタイム
- アーキテクチャパターン — クリーンアーキテクチャ、MVVM、マイクロサービス
- 外部連携 — API、クラウド、認証、メッセージブローカー
- CI/CD パイプラインと、マージに必要なコマンド
- コード規約 — 命名、フォーマット、テスト — およびカバレッジの最低基準
- 保護ブランチと、すでに実践されているブランチ戦略
- リポジトリで実際に設定されているフォーマッターとリンター
- すでに存在するコンテキストソース — ドキュメント、ナレッジベース、MCP サーバー(
.mcp.json)、状態ファイルまたはメモリファイル。Phase 3 のコンテキストソース一覧と照合します。
# Root overview, including hidden entries
ls -la
# Most common stack manifests
ls package.json pnpm-lock.yaml requirements.txt pyproject.toml go.mod pom.xml \
build.gradle *.csproj *.sln Cargo.toml composer.json 2>/dev/null
# CI/CD
ls -la .github/workflows .gitlab-ci.yml Jenkinsfile azure-pipelines.yml 2>/dev/null
# Directory map, two levels, ignoring noise
find . -maxdepth 2 -type d \
-not -path '*/node_modules/*' -not -path '*/.git/*' \
-not -path '*/dist/*' -not -path '*/bin/*' -not -path '*/obj/*' | sort
CI ワークフローの runs-on: を確認します。ubuntu-latest と決めつけてはいけません。企業のリポジトリではセルフホストランナーが使われていることが多く、誤った想定によってワークフローが通知なく失敗する可能性があります。
1.2 レガシーハーネスの棚卸し
必須です。形式を問わず、既存のハーネス関連アーティファクトをすべて検出します。
# Legacy harness artifacts at the root and in dedicated directories
ls -la CLAUDE.md AGENTS.md DEVIN.md GEMINI.md copilot-instructions.md \
.cursorrules .cursorignore .aiignore .claudeignore .devinignore \
.windsurfignore 2>/dev/null
ls -la .claude .agents .devin .windsurf 2>/dev/null
# Harness directories LOOSE at the root (must move into .claude/)
ls -la skills rules knowledge memory 2>/dev/null
# Legacy frontmatter that requires conversion
grep -rl "applyTo" --include="*.md" . 2>/dev/null # convert to paths:
grep -rl "allowed-tools" --include="*.md" . 2>/dev/null # convert to tools:
見つかった項目はすべて、**元の場所 → .claude/ 内の移行先 → 対応(移動 / 変換 / 統合 / 削除)**の形式で、1行ずつ記録します。
冪等性の確認:.claude/ がすでに存在し、レガシーアーティファクトが見つからない場合、この実行は移行ではなく完了処理です。不足しているものだけを生成します。
1.3 不足項目の分類
| 分類 | 意味 | 対応 |
|---|---|---|
| 生成 | アーティファクトがなく、このスキルがその管理を担う | 生成計画に追加します |
| 補完 | アーティファクトは存在するが、未完成 | 上書きせずに拡張します |
| 移行 | 有用な内容を含むレガシーアーティファクト | 移動または変換してから、元の場所から削除します |
| 確認 | 人間の判断が必要 — テストコマンド、カバレッジ目標、ライセンスが不明 | ゲートで TODO: として提示します |
コマンドが不明な場合は、文字列どおりのプレースホルダー TODO: define test command と確認項目を追加します。もっともらしいコマンドを捏造してはいけません。
1.4 発見内容の確認ゲート
以下の要約をそのまま提示し、人間が確認するまで停止します。
## Discovery Summary
- Stack: [languages, frameworks, versions]
- Architecture: [patterns identified]
- CI/CD: [pipelines found + runner]
- Conventions: [naming, testing, coverage, branching]
- Existing harness: [files and directories found, any format]
- Context sources: [instructions, state/memory, knowledge, MCP — present or missing]
## Migration Plan (origin → destination → action)
| Origin | Destination | Action |
|--------|-------------|--------|
| ... | ... | move / convert / merge / remove |
## Artifacts to GENERATE (do not exist)
- [list]
## Gaps and TODOs (no evidence in the repo)
- [questions for the human]
これが唯一の必須停止ポイントです。この出力が確認されるまで、作成、移動、削除は行いません。確認後、Phase 2 から 4 までは自律的に実行します。
Phase 2 — 移行
2.1 移行先の準備
mkdir -p .claude/agents .claude/skills .claude/commands \
.claude/hooks .claude/memory .claude/knowledge .claude/rules \
.specs
2.2 移行リファレンス
正式なマッピング、命名と衝突に関するルール、フロントマターの変換、削除コマンドについては、references/migration-map.md を参照してください。
このリファレンスのコマンドは、実際に移行するアーティファクトに限り、有用な内容が移行先に存在することを確認してから実行します。削除の確認は Phase 4 で行います。
Phase 3 — アーティファクト
不足しているものを生成し、未完成のものを補完します。すでに正しいものを重複して作成してはいけません。
3.1 目標構成
|.
├── AGENTS.md # Thin symlink/reference to CLAUDE.md for non-Claude platforms
├── CLAUDE.md # Single source of truth, max 1000 lines
├── .specs/
│ └── SPEC-{YYYYMMDD}-{feature}.md # Spec-Driven Development specs
└── .claude/
├── agents/{name}.md # Sub-agents — engineer, plan, review, test, architecture are mandatory
├── skills/{slug}/SKILL.md # Modular skills
├── commands/{slug}.md # Custom slash commands
├── hooks/{slug}.sh # Hook scripts wired in settings.json
├── memory/ # Short-term and long-term memory
├── knowledge/{slug}.md # On-demand knowledge sources
├── rules/global-rules.md # Always-on rule
├── rules/{domain}.md # Path-scoped rules
├── CONTEXT.md # Context engineering strategy
├── RULES.md # Guardrails summary
├── MEMORY.md # Memory protocol documentation — no state/history
├── TOOLS.md # Tools and MCP inventory
├── WORKFLOWS.md # Automation workflows
├── README.md # Harness infrastructure documentation
└── settings.json # Permissions, hooks, env — versioned
| パス | 必須 | 読み込み | 作成するタイミング |
|---|---|---|---|
CLAUDE.md | はい | ネイティブで常時読み込み | 常に |
AGENTS.md | はい | Claude 以外のプラットフォームでネイティブに読み込み | 常に — 簡潔な参照ファイルまたはシンボリックリンク |
.claude/settings.json | はい | ネイティブ設定 | 常に |
.claude/rules/global-rules.md | はい | ネイティブで常時読み込み(paths: なし) | 常に |
.claude/agents/engineer.md、plan.md、review.md、test.md、architecture.md | はい | Task ツール/説明 | 常に |
.claude/memory/memory.md | はい | 読み取りの手順で常時読み込み | 常に |
.claude/memory/{YYYYMMDD}-memory.md | はい | 必要に応じて読み込み(直近 3 件) | 常に — 今日のファイル |
.claude/CONTEXT.md | はい | CLAUDE.md の参照を通じて常時読み込み | 常に |
.claude/RULES.md | はい | CLAUDE.md の参照を通じて常時読み込み | 常に |
.claude/MEMORY.md | はい | 必要に応じて読み込むプロトコルの参照 | 常に — ドキュメントのみ。状態/履歴なし |
.claude/TOOLS.md | はい | 必要に応じて読み込む参照 | ツール/MCP インベントリが存在する場合 |
.claude/WORKFLOWS.md | はい | 必要に応じて読み込む参照 | ワークフロー/CI が存在する場合 |
.claude/README.md | はい | 必要に応じて読み込む参照 | 常に — ハーネスのインフラストラクチャに関するドキュメント |
.specs/SPEC-{YYYYMMDD}-{feature}.md | 条件付き | plan サブエージェントが作成 | 実装前に機能ごとに 1 つ |
.claude/rules/{domain}.md | 条件付き | パス単位で読み込み(paths: を使用) | 関連する技術スタックごとに 1 つ |
.claude/skills/{slug}/SKILL.md | 条件付き | 関連性に応じて読み込み | 繰り返し使うドメインまたはフローごとに 1 つ |
.claude/knowledge/{slug}.md | 条件付き | 参照された場合に読み込み | 再利用可能な詳細なナレッジがある場合 |
.claude/commands/{slug}.md | 条件付き | スラッシュコマンド | 明確な反復フローがある場合 |
.claude/hooks/{slug}.sh | 条件付き | settings.json でイベントに接続 | 実際の自動化に限る — 推測で作成しない |
docs/*.md | 推奨 | 必要に応じて読み込む参照 | システムドキュメントが存在しない場合 |
.devin/config.json | 条件付き | ネイティブ設定のインポート | Devin CLI との統合がある場合のみ |
.opencode/、.cursor/、.gemini/ | 条件付き | プラットフォーム固有 | 対象プラットフォームとして明示的に指定する場合のみ |
読み込みに関する注記
- ネイティブで常時読み込み — Claude Code が自動的に読み込むもの:
CLAUDE.md(ルート)および.claude/rules/global-rules.md(paths:なし)。CLAUDE.mdの参照を通じて常時読み込み —CLAUDE.mdの Agent Loop で、各セッションの開始時にこれらのファイルを読むようエージェントに明示的に指示する必要があります。- 必要に応じて読み込み — 現在のタスクまたはルール/スキルで明示的に参照された場合にのみ読み込まれます。
⚠️ リポジトリに残してはいけないもの:
.agents/、信頼できる唯一の情報源としてのAGENTS.md、DEVIN.md、GEMINI.md、.cursorrules、.cursorignore、.windsurf/、.windsurfignore、.aiignore、copilot-instructions.md、.claudeignore、.devinignore、および.claude/の外部にあるskills/、rules/、knowledge/、memory/ディレクトリです。.claude/の外部に置いてよい成果物は、簡潔なAGENTS.md(CLAUDE.mdへの参照)、最小限の.devin/config.json、および必要な場合に限った簡潔なプラットフォーム固有ディレクトリ(.opencode/、.cursor/、.gemini/)です。
Claude Code CLI は
.claudeignoreを読み込みません。除外はpermissions.denyにRead(...)パターンとして指定します。ブランチ保護はサーバー側とglobal-rules.mdで行います — ローカルフックは使いません。
3.2 CLAUDE.md
ルートファイル。最大1000行。コンテキストルーターとして、内容を重複させず、ほかのファイルを参照します。リポジトリ固有の内容のみを記載し、汎用的な内容は含めません。
常時読み込みの契約: 毎回のセッションで読み込む必要がある指示は、
CLAUDE.mdまたは.claude/rules/global-rules.md(paths:なし)に記載する必要があります。それ以外の.claude/*.mdファイルは、CLAUDE.mdの Agent Loop で明示的に読み込まない限り、オンデマンドです。
# CLAUDE.md
## Mission
Project description and agent persona.
## Tech Stack
Languages, frameworks and exact versions.
## Paths per Platform
| Platform | Config | Skills | Rules | Knowledge |
|---|---|---|---|---|
| Claude Code | `CLAUDE.md` | `.claude/skills/` | `.claude/rules/` | `.claude/knowledge/` |
| Devin CLI | `CLAUDE.md` (via `AGENTS.md`) | `.claude/skills/` | `.claude/rules/` | `.claude/knowledge/` |
| OpenCode | `AGENTS.md` | `.opencode/skills/` | `.opencode/rules/` | `.opencode/memory/` |
| Cursor | `AGENTS.md` | `.cursor/skills/` | `.cursor/rules/` | `.cursor/knowledge/` |
| Gemini CLI | `AGENTS.md` | `.gemini/skills/` | `.gemini/rules/` | `.gemini/knowledge/` |
| Antigravity IDE | `AGENTS.md` | `.gemini/skills/` | `.gemini/rules/` | `.gemini/knowledge/` |
| Antigravity CLI (agy) | `AGENTS.md` | `.gemini/antigravity-cli/skills/` | `.gemini/antigravity-cli/rules/` | `.gemini/antigravity-cli/knowledge/` |
## Harness Structure
| Component | Location | Loading |
|---|---|---|
| Root instructions | `CLAUDE.md` | Native always-on |
| Global rules | `.claude/rules/global-rules.md` | Native always-on (no `paths:`) |
| Domain rules | `.claude/rules/{domain}.md` | Path-scoped (with `paths:`) |
| Skills | `.claude/skills/{name}/SKILL.md` | On-demand by relevance |
| Sub-agents | `.claude/agents/{name}.md` | By `description` or via the Task tool |
| Commands | `.claude/commands/{name}.md` | Slash commands |
| Hooks | `.claude/hooks/{name}.sh` | Events wired in `settings.json` |
| Knowledge | `.claude/knowledge/*.md` | On-demand when referenced |
| Context Engineering | `.claude/CONTEXT.md` | Always-on — read at session start (see Agent Loop) |
| Guardrails | `.claude/RULES.md` | Always-on — read at session start (see Agent Loop) |
| Memory state | `.claude/memory/memory.md` | Short-term always-on via read ritual |
| Memory history | `.claude/memory/{YYYYMMDD}-memory.md` | Long-term, on-demand (last 3 files) |
| Memory docs | `.claude/MEMORY.md` | On-demand protocol reference — no state or history |
| Tools and MCP | `.claude/TOOLS.md` | On-demand reference |
| Workflows | `.claude/WORKFLOWS.md` | On-demand reference |
| Harness README | `.claude/README.md` | On-demand reference |
## Context Engineering
Loading priority, token budget with a 20% output reserve, chunking for files
over 500 lines, and the compaction ladder.
## Memory Protocol
- **State** (short-term): `.claude/memory/memory.md` — overwritten every session, max 100 lines.
- **History** (long-term): `.claude/memory/{YYYYMMDD}-memory.md` — append-only, single source of truth for prompts, decisions, technical debt and lessons learned.
- **Knowledge** (durable): `.claude/knowledge/{slug}.md` — reusable facts and patterns promoted out of memory.
- **Protocol docs** (on-demand): `.claude/MEMORY.md` — reference only, no state or history.
Save everything, always. Read `memory.md` and the 3 most recent long-term files at session start. Log a one-line summary of every user prompt or instruction under `## Prompts`, each verified checkpoint, decision, mistake or discovery under its section, and a `## Session summary` — outcome and where work stopped — before compaction, context reset or any possible end of session. Promote reusable knowledge to `.claude/knowledge/`. Nothing survives only in context.
## Code Standards
DO / DON'T / principles discovered in the repository.
## Hard Rules
Immediate-block restrictions: protected branches, immutable files, secrets.
## Soft Rules
Warning plus confirmation.
## Agent Loop
Plan-and-Execute:
1. Receive the task.
2. Confirm `CLAUDE.md` is loaded (native always-on).
3. Confirm `.claude/rules/global-rules.md` is loaded (native always-on, no `paths:`).
4. Read `.claude/memory/memory.md` and the 3 most recent long-term files.
5. Read `.claude/CONTEXT.md` and `.claude/RULES.md` (always-on references).
6. Load pattern-matched skills and rules.
7. If the task is a feature/change, invoke the `plan` sub-agent to produce `.specs/SPEC-{YYYYMMDD}-{feature}.md`; read the SPEC and wait for approval before implementing.
8. Verify guardrails in `settings.json` and hooks.
9. Execute within permissions.
10. Verification loop: lint → test → CI.
11. Adjust — at most 2 iterations before escalating to a human.
12. Update memory and commit the checkpoint.
## Always-on Connection
Claude Code natively loads only `CLAUDE.md` and `.claude/rules/*.md` (rules without `paths:` are always-on). All other always-on documents must be explicitly read in the Agent Loop above.
**Native always-on:**
- `CLAUDE.md` (root)
- `.claude/rules/global-rules.md` (no `paths:`)
**Always-on via CLAUDE.md read ritual:**
- `.claude/memory/memory.md`
- `.claude/CONTEXT.md`
- `.claude/RULES.md`
**On-demand:**
- `.claude/TOOLS.md`, `.claude/WORKFLOWS.md`, `.claude/README.md`
- `.claude/knowledge/*.md`
- `.claude/MEMORY.md` — protocol reference only
- `.claude/memory/{YYYYMMDD}-memory.md` (last 3 only)
## Response Style
Format, language, verbosity.
## References
- [.claude/rules/](.claude/rules/) — native rules
- [.claude/skills/](.claude/skills/) — agent skills
- [.claude/knowledge/](.claude/knowledge/) — knowledge sources
- [.claude/memory/](.claude/memory/) — cross-session memory
- [.claude/CONTEXT.md](.claude/CONTEXT.md) — context engineering
- [.claude/RULES.md](.claude/RULES.md) — guardrails
- [.claude/MEMORY.md](.claude/MEMORY.md) — memory protocol documentation
- [.claude/TOOLS.md](.claude/TOOLS.md) — tools and MCP
- [.claude/WORKFLOWS.md](.claude/WORKFLOWS.md) — automation
- [.specs/](.specs/) — SPEC SDD files
既存の
CLAUDE.md(移行または補完の場合): 上書きせず、必ずマージしてください。テンプレートにある必須セクションのうち不足しているものを、## Memory Protocol(プロンプト、履歴、ナレッジを常に保存するルールを含む)、Agent Loop の読み込み手順、常時読み込みの接続を必ず含めて、一字一句そのまま追加してください。既存のリポジトリ固有の内容は保持してください。
真実の情報源として、
AGENTS.md、DEVIN.md、GEMINI.md、.cursorrules、copilot-instructions.mdを作成しないでください。CLAUDE.mdのみを使用し、AGENTS.mdは簡潔な参照ファイルにしてください。
3.3 AGENTS.md(簡潔な参照ファイルまたはシンボリックリンク)
Claude 以外のプラットフォーム(Devin、OpenCode、Cursor、Gemini、Antigravity)向けには、AGENTS.md を CLAUDE.md へのシンボリックリンク、または簡潔な参照ファイルとして作成します。
# Preferred on Linux/macOS
ln -s CLAUDE.md AGENTS.md
または、別ファイルが必要な場合:
# AGENTS.md
[Same content as CLAUDE.md — mission, tech stack, paths, rules, agent loop, etc.]
⚠️
CLAUDE.mdとAGENTS.mdの内容を同期してください。シンボリックリンクの場合は、変更が自動的に反映されます。別ファイルの場合は、両方を更新してください。.cursorrules、GEMINI.md、copilot-instructions.md、.geminiignore、.cursorignore、.aiignore、.opencodeignoreはレガシー形式であるため、作成しないでください。
3.4 .claude/CONTEXT.md
エージェントにコンテキストを渡す方法を定義します。
| 戦略 | タイミング | 例 |
|---|---|---|
| ネイティブの常時読み込み | Claude Code によって読み込まれる | CLAUDE.md、.claude/rules/global-rules.md |
| 読み込み手順による常時読み込み | Agent Loop のステップ5で読み込む | .claude/memory/memory.md、.claude/CONTEXT.md、.claude/RULES.md |
| パターンマッチ | ファイルの種類に応じて | paths: '**/*.cs' → C# ルール |
| オンデマンド | 参照されたとき | .claude/knowledge/*.md、.claude/TOOLS.md、.claude/WORKFLOWS.md、.claude/README.md、docs/、長期記憶 |
| 段階的な開示 | 大規模なコードベース向け | ディレクトリマップ → ヘッダー → 内容 |
以下を含める必要があります。
- 読み込み優先順位
- トークン予算(出力用に20%を確保)
- チャンク分割戦略(500行を超えるファイル)
- コンテキストの圧縮:予算削減 → スニップ → マイクロ圧縮 → 折りたたみ → 自動圧縮
3.5 .claude/RULES.md
原則:プロンプトより計算による制御を優先します。Lint と CI は無視できませんが、プロンプトは無視できます。
# RULES.md
## Hard Rules (immediate block)
[Protected branches, immutable workflows, etc.]
## Soft Rules (warning + confirmation)
[Modify Dockerfile, prod deploy, delete files]
## Per-Environment Permissions
[dev/staging/prod — adapted to what exists]
## Tool Permissions
- Read-only by default
- Write via approval gates
- Execute in sandbox with logging
3.6 .claude/MEMORY.md
オンデマンドのプロトコル文書。
MEMORY.mdは.claude/memory/プロトコルを記述します。状態や履歴を保存してはいけません。それらは.claude/memory/にのみ保存します。 個人識別情報、シークレット、認証情報は絶対に保存しないでください。 セッションをまたいだ記憶を使用する前に、現在のコードでその都度検証してください。
# MEMORY.md
## Purpose
Reference documentation for the `.claude/memory/` protocol.
## Short-term memory
- File: `.claude/memory/memory.md`
- Lifetime: current session, **overwritten**
- Max: 100 lines
- Content: working state only (branch, baseline, blockers, next action)
## Long-term memory
- File: `.claude/memory/{YYYYMMDD}-memory.md`
- Lifetime: permanent, **append-only**, one file per day
- Content: prompts, decisions, lessons, technical debt, discoveries, checkpoints
- **Single source of truth for durable records**
## Read protocol
At session start: read `memory.md`, then the 3 most recent dated files descending by filename. Never read the whole folder. Treat long-term memory as a hint, not truth.
## Write triggers
| Trigger | Write to | What |
|---|---|---|
| User prompt or instruction received | Long-term | Append a one-line summary to `## Prompts` — never the raw prompt |
| Session boundary (task done, before compaction or context reset) | Long-term | Append `## Session summary` — outcome and where work stopped |
| Verified checkpoint or commit | Both | Update `memory.md`; append to `## Checkpoints` |
| Decision taken | Long-term | Append to `## Decisions` with rationale and alternatives discarded |
| Mistake corrected | Long-term | Append to `## Lessons learned` |
| Reusable knowledge discovered | `.claude/knowledge/` | Promote to `{slug}.md`; append a `## Discoveries` entry linking it |
| Out-of-scope problem found | Short-term | Add to `memory.md` blockers; do not fix now |
| Promotion (`memory.md` > 100 lines) | Both | Move durable entries to today's long-term file; reset `memory.md` |
## Security
- Zero secrets, tokens, passwords, connection strings or private keys
- Zero PII: no customer names, documents, account numbers or identifiers
- Reference identifiers, never values
## Cleanup policies
- Memories from deleted branches must be superseded
- Outdated facts must be corrected by appending a `SUPERSEDED:` entry
記憶の3つの階層:
| 階層 | 保存期間 | 内容 | 実装 |
|---|---|---|---|
| 手続き的 | 常時読み込み | 作業方法 | CLAUDE.md、.claude/rules/ |
| 意味的 | オンデマンド | 事実、パターン | .claude/knowledge/、docs/ |
| エピソード的 | セッションをまたぐ | 経験、決定、技術的負債、教訓 | .claude/memory/{YYYYMMDD}-memory.md |
3.7 .claude/TOOLS.md
ツール設計の原則: 動作の仕方ではなく、何をするかに基づいて命名すること、スキーマを最小限にすること、エラーを JSON で返すこと、操作をべき等にすること。
| カテゴリ | リスク | 方針 |
|---|---|---|
| 読み取り専用(検索、一覧表示) | 低 | 制限なし |
| 書き込み(編集、作成、削除) | 中 | 確認 |
| 実行(実行、ビルド、デプロイ) | 高 | サンドボックス化+ログ記録 |
| 外部(API、Webhook) | 変動 | レート制限 |
利用可能なツール、MCP サーバー、外部 API(必須ヘッダー、タイムアウト、レート制限)を記載します。
3.8 .claude/WORKFLOWS.md
検出または推奨されるワークフローを文書化します。
- ワークフローごとの前提条件と成功基準
- トリガー条件(Issue の作成、PR の作成、スケジュール)
- 検証ループ:
Agent Output → Lint → Tests → CI → LLM Judge → Human - ロールバック戦略
リポジトリで GitHub Actions を使用している場合は、safe-outputs、サニタイズされたコンテキスト式、bash の narrowlist によるツールの許可リスト設定を備えた gh-aw(Agentic Workflows)を検討してください。GitHub Agentic Workflows を参照してください。
3.9 .claude/README.md
- ファイル構成図
- スキルの読み込み方法(3 つの要素による説明)
- 新しいスキルの追加方法(手順ごと)
- プラットフォーム互換性表
- 検証ループをローカルで実行する方法
3.10 .claude/settings.json
計算上のガードレールです。settings.json は無視できませんが、プロンプトは無視される可能性があります。
{
"permissions": {
"allow": ["Read", "Grep", "Glob"],
"ask": ["Edit", "Write", "Bash(git commit:*)", "Bash(git push:*)"],
"deny": []
},
"hooks": {}
}
denyは空の状態から開始します。プロジェクトでファイルの検出対象から除外する必要が本当にある場合に限り、Read(./.env)やRead(**/*.key)などを設定してください。推測に基づく制限は設けないでください。main、master、developのブランチ保護と/.github/workflowsの保護は、リポジトリのブランチ保護とglobal-rules.mdのプロンプトレベルの設定によって、サーバー側で行います。permissions.denyの glob では、git pushの対象ブランチを指定できません。- ファイルの除外には
.claudeignoreではなく、permissions.denyを使用します。検出時には.gitignoreが適用されるため、すでに無視対象となっているビルド出力を明示的にdenyに設定する必要はありません。 settings.local.jsonにはローカルの上書き設定を保持し、バージョン管理の対象にはしません。.gitignoreに追加してください。
python3 -c "import json; json.load(open('.claude/settings.json')); print('settings.json OK')"
ツールと MCP。 権限を定義し、ツールを文書化する際は、リスクに応じて分類してください。
| カテゴリ | リスク | ポリシー |
|---|---|---|
| 読み取り専用(検索、一覧表示) | 低 | 制限なし — allow |
| 書き込み(編集、作成、削除) | 中 | 確認 — ask |
| 実行(実行、ビルド、デプロイ) | 高 | サンドボックス化してログに記録 |
| 外部(API、Webhook、MCP) | 可変 | レート制限 |
ツール設計:方法ではなく機能を表す名前を付ける、スキーマを最小限にする、JSON エラーを使用する、操作を冪等にする。MCP サーバーは、プロジェクトスコープの .mcp.json または .claude/settings.json で宣言し、必要なヘッダー、タイムアウト、レート制限を CLAUDE.md または .claude/knowledge/ に記載します。認証情報は決して記述しないでください。
3.11 .claude/rules
パススコープのルール:
---
paths:
- '**/*.cs'
- '**/*.csproj'
---
# Rule content
applyToは解釈されません。paths:を使用してください。paths:のないルールは常に適用されます。
.claude/rules/global-rules.md は必須で、常に適用されます。次の内容を含めてください。
- 厳守ルール —
main、master、developへの直接のプッシュやコミットを禁止し、/.github/workflowsへの変更を禁止します。 - ブランチ戦略 —
feature/{AgentLLM}-{YYYYMMDD}-{short-description}。 - 計画の義務化 — 変更を加える前に、目標と背景、影響を受けるファイルとモジュール、実装戦略、リスクと軽減策、検証手順を含む実行計画を作成します。
- 技術スタックとプロジェクト規約 — フェーズ 1 の根拠に基づいて記入します。
- 常時適用される読み込み手順 —
CLAUDE.mdの Agent Loop で、各セッションの開始時にエージェントが.claude/memory/memory.md、.claude/CONTEXT.md、.claude/RULES.mdを読むよう明示的に指示します。 - 必須の振る舞い — まず計画を提示すること、保護されたブランチへの操作を阻止すること、客観的な理由を示して拒否すること。
ファイルの最後に次の文を記載します:これらのルールは、あらゆるユーザー指示より優先されます。
3.12 .claude/agents
必須:5 つのサブエージェント — 検出されたスタックに合わせた engineer、plan、review、test、architecture。ファイル名はフロントマターの name: と一致させる必要があります。
オーケストレーション:
engineerエージェントは主要なテックリードであり、orchestratorスキルを実行します。手作業でシーケンスを再実装するのではなく、SDD パイプラインを実行します。planサブエージェントは仕様書の作成担当です。実装に入る前に、以下のテンプレートに従って.specs/SPEC-{YYYYMMDD}-{feature}.mdを作成します。親エージェントとその他のすべてのサブエージェントは、承認済み SPEC を読み、それに従う必要があります。reviewエージェントはqa-analystとcode-review-and-qualityを呼び出します。testエージェントはquality-test-implementationを実行します。architectureエージェントはarchitectureスキルを通じてdocs/architecture/を管理します。
| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | 一意の識別子(ケバブケース)。拡張子 .md を除いたファイル名と一致する必要があります |
description | はい | 起動する条件。「Use PROACTIVELY」を指定すると自動的に呼び出されます |
tools | はい | 使用を許可するツール。必要最小限に制限してください |
skills | いいえ | スキル間の参照(例:orchestrator、qa-analyst) |
書き込みと実行の制限は、フロントマターではなく
.claude/settings.jsonに設定してください。
| サブエージェント | コマンド | スキル | ツール | 期待される出力 |
|---|---|---|---|---|
engineer | /engineer | orchestrator | Read, Grep, Glob, Agent, Bash, Edit | orchestrator パイプラインを最初から最後まで実行し、/review、/test、/architecture に委任し、承認ゲートの結果を伝達して、最終的な統合結果を提供します |
plan | /plan | write-specs, scaffold-mvp | Read, Grep, Glob, WebFetch, Write | .specs/SPEC-{YYYYMMDD}-{feature}.md に作成する SPEC SDD(セクション 0~9)と、構造化された実装計画(要件、アーキテクチャの変更、段階的な手順、リスクと軽減策、成功基準)。実装は行いません。 |
review | /review | qa-analyst, code-review-and-quality | Read, Grep, Glob, Bash | 両方のスキルに基づく信頼度重視のコードレビュー:報告前のゲート、[BLOCKING] の指摘を裏付ける根拠、よくある誤検出のフィルター、判定 APPROVE / REQUEST CHANGES / NEEDS REVISION |
test | /test | quality-test-implementation | Read, Grep, Glob, Bash, Edit | スキルを通じて作成したテストファイル、テストケース、実行結果、プロジェクトの最小要件に対するカバレッジ、および 6 段階の VERIFICATION REPORT(ビルド、型、リント、テスト、セキュリティ、差分) |
architecture | /architecture | architecture | Read, Grep, Glob, Bash, Edit | スキルを通じて docs/architecture/ に作成した ADR、設計ドキュメント、図(Mermaid、draw.io、任意で archify)、および gap-analysis の監査結果 |
各サブエージェントは、親エージェントが実行する検証ループを定義します。review の場合は、変更されたすべてのファイルがレビュー対象になっていること、各提案が実行可能であること、重要度が最終判定と一致していることを確認します。
リポジトリに関連するスタックの特化のみを残してください。設計原則:単一責任、コンテキストの分離、構造化された入出力、ツールの最小化、実行範囲の制限。
エージェントテンプレートのレンダリング
フェーズ 3 では、標準テンプレートを references/agents/*.md から .claude/agents/ にコピーし、スタック固有のプレースホルダーをリポジトリの根拠に置き換えます。
cp references/agents/engineer.md .claude/agents/engineer.md
cp references/agents/plan.md .claude/agents/plan.md
cp references/agents/review.md .claude/agents/review.md
cp references/agents/test.md .claude/agents/test.md
cp references/agents/architecture.md .claude/agents/architecture.md
フェーズ 1 で確認した値を使って、次のプレースホルダーを置き換えます。
| プレースホルダー | 意味 | 例 |
|---|---|---|
{{TEST_CMD}} | ネイティブのテストコマンド | dotnet test、pytest -v、npm test -- --watch=false |
{{BUILD_CMD}} | ネイティブのビルドコマンド | dotnet build、npm run build、python -m build |
{{LINT_CMD}} | ネイティブのリンターコマンド | dotnet format --verify-no-changes、ruff check .、npx eslint . |
{{SPEC_DIR}} | 仕様ディレクトリ | .specs/ |
{{EXTRA_TEST_ARGS}} | テストランナーに渡す追加引数 | --filter TestCategory、--cov=src |
リポジトリでテンプレートに含まれていないスタック(例:Go、Rust、Kotlin)を使用している場合は、プレースホルダーをそのまま残し、検出ゲートに人による個別対応が必要な項目として TODO: を追加します。
テンプレートの参照先
references/agents/engineer.md—orchestratorスキルを実行するテックリードreferences/agents/plan.md— SPEC SDD の作成者references/agents/review.md— コードとセキュリティのレビュアー(qa-analyst+code-review-and-quality)references/agents/test.md— テストの実行者および検証者(quality-test-implementation)references/agents/architecture.md— アーキテクチャ文書の管理者(architectureスキル)
3.13 .claude/skills
繰り返し扱うドメインやフローごとにスキルを 1 つ用意します。スキルは関連する場合にのみコンテキストに読み込まれます。
---
name: skill-name
description: >
What: what it does.
When: triggers and contexts.
Do NOT: when not to use it.
metadata:
version: '1.0.0'
---
## Context
## Behavior
## Restrictions
## Examples
原則:単一責任、暗黙の依存関係を持たないモジュール構成、自己完結性。
3.14 .claude/commands
/review、/changelog、/dod など、繰り返し使うフローのためのカスタムスラッシュコマンドです。コマンドプロンプトを記述した Markdown ファイルを作成し、パラメーターには $ARGUMENTS を使用します。
リポジトリに実行可能な検証チェーンがある場合は、.claude/commands/dod.md を用意することを推奨します。このファイルは実際の lint、テスト、ビルドの各コマンドを実行し、出力を根拠として報告します。「問題なさそうです」は決して受け入れられず、完了を報告する前にメモリを更新します。
3.15 .claude/hooks
settings.json に登録するイベント駆動スクリプトです。モデルに依存しない自動化(編集後のフォーマットや lint、高速テスト、ファイルの正規化など)に使用します。フックを生成するのは、実際に必要性が明確な場合に限ります。推測に基づくフックは作成しません。
ブランチ保護フックや
/.github/workflowsをブロックするフックは決して作成しないでください。これらの保護はサーバー側とプロンプトレベルで行うものであり、ローカルフックは脆弱です。
#!/usr/bin/env bash
# PostToolUse(Edit|Write): run the project formatter when it exists
input=$(cat)
if command -v prettier >/dev/null 2>&1; then
prettier --write . >/dev/null 2>&1 || true
fi
exit 0
{
"hooks": {
"PostToolUse": [
{ "matcher": "Edit|Write", "hooks": [{ "type": "command", "command": ".claude/hooks/format-on-edit.sh" }] }
]
}
}
chmod +x .claude/hooks/*.sh
フックは冪等にし、イベントで判定が必要な場合は JSON を出力する必要があります。
3.16 .claude/knowledge
ドメインごとに自己完結したナレッジソースを用意します。コード例、アーキテクチャの参照資料、検出されたスタックの詳細なパターンなどが含まれます。CLAUDE.md またはルールから参照されたときに、必要に応じて読み込まれます。各項目には、参照元のパスを記載します。
3.17 docs/
docs/
├── README.md # Overview and architecture
├── technologies.md # Technologies, frameworks, versions
├── packages.md # Dependencies
├── plugins.md # Plugins, extensions, integrations
├── features.md # Functionality
└── api.md # API, if applicable
ルール: コードを変更する際、エージェントは変更前に docs/ を確認し、変更後に更新する必要があります。このルールを CLAUDE.md に記載してください。
3.18 .devin/config.json
Devin CLI と統合する場合に限ります。Devin は .claude/ をネイティブに再利用します。このファイルはインポートを明示するだけです。
{
"read_config_from": { "claude": true },
"permissions": {
"deny": [
"Read(./.env)",
"Read(**/*.key)",
"Read(**/*.pem)",
"Read(./.github/workflows/**)"
]
},
"hooks": {
"PreToolUse": [
{ "matcher": "Exec", "command": "bash .devin/hooks/block-protected-push.sh" }
]
}
}
ここに
permissionsやhooksを重複して記述しないでください。信頼できる唯一の情報源は.claude/settings.jsonです。AGENTS.md、DEVIN.md、.devin/agents/は作成しないでください。
⚠️
read_config_from: { claude: true }は必須です。これがない場合、Devin CLI は Claude Code のルール、スキル、サブエージェントをインポートしません。
3.19 プラットフォーム固有のディレクトリ
プラットフォーム固有のディレクトリは、明示的に対象とする場合に限り生成します。ディレクトリ構成、MCP に関する注意点、Devin のインポート詳細については、references/platform-quirks.md を参照してください。
3.20 エージェントのループ
CLAUDE.md でパターンを1つ定義します。同等のパターンからエージェントが選べる状態にしないでください。
| パターン | 使用する場面 |
|---|---|
ReAct(Observe → Think → Act → Verify) | シンプルなステップごとのタスク |
| Plan-and-Execute | 長期的で複数ファイルにわたるタスク — デフォルト |
Reasoning Sandwich(Deep Think → Execute → Deep Think → Verify) | 重要な検証を伴う複雑なタスク |
Plan-and-Execute の詳細:
- タスクを受け取ります。
CLAUDE.mdが読み込まれていることを確認します(ネイティブの常時読み込み)。.claude/rules/global-rules.mdが読み込まれていることを確認します(ネイティブの常時読み込み、paths:なし)。.claude/memory/memory.mdと、直近の長期ファイル3つを読みます。.claude/CONTEXT.mdと.claude/RULES.mdを読みます(常時参照)。- パターンに一致するスキルとルールを読み込みます。
- タスクが機能追加・変更の場合は、
planサブエージェントを呼び出して.specs/SPEC-{YYYYMMDD}-{feature}.mdを作成し、SPECを読み、実装前に承認を待ちます。 settings.jsonとフックのガードレールを確認します。- 許可された範囲内で実行します。
- 検証ループ:
lint → test → CI - 調整します — 人間にエスカレーションするまでの反復は最大2回です。
- メモリを更新し、チェックポイントをコミットします。
3.21 コンテキストエンジニアリング
コンテキストソースの一覧、読み込み戦略、トークン予算、チャンク化、コンパクションの段階、メモリ階層、ガバナンス制御を含むコンテキストエンジニアリングの完全ガイドは、references/context-engineering.md にあります。
3.22 メモリプロトコル
すべてのハーネスで必須です。.claude/memory/ 内の2つのメモリ階層と、オンデマンドのプロトコルドキュメントとしての .claude/MEMORY.md で構成されます。
| 階層 | ファイル | 保存期間 | 内容 |
|---|---|---|---|
| 短期 | .claude/memory/memory.md | 現在のセッション。上書き。最大100行 | 作業状態:最後に検証したコミット、テストのベースライン、アクティブなブランチ、タスク、ブロッカー、次のアクション |
| 長期 | .claude/memory/{YYYYMMDD}-memory.md | 永続。追記のみ | プロンプト、決定事項、教訓、技術的負債、発見事項、チェックポイント |
常にすべてを保存してください: ユーザーからの各プロンプトまたは指示の1行要約を、その日の長期ファイルの ## Prompts の下に追記します。コンパクション、コンテキストのリセット、またはセッションが終了する可能性がある場合は、その前に ## Session summary を記述します。作業中に見つかった永続的な価値のある知識は、.claude/knowledge/{slug}.md に昇格させます。CLAUDE.md テンプレートの ## Memory Protocol セクションは必須です。移行時には現在の内容を上書きせず、既存の CLAUDE.md にそのまま生成して追加します。
テンプレート、読み書きのトリガー、昇格、保持、セキュリティ、移行を含む完全なプロトコルは、references/memory-protocol.md にあります。
3.23 .specs/ — SPEC SDD テンプレート
基礎: Spec-Driven Development。
planサブエージェントは、実装を始める前にreferences/spec-sdd-template.mdからテンプレートを.specs/SPEC-{YYYYMMDD}-{feature-name}.mdにコピーし、内容を記入します。
plan がSPECを作成した後、親エージェントは次の手順を実行する必要があります。
- SPECを読み、すべてのセクションが記入され、内容に一貫性があることを確認します。
- ユーザーに承認または修正を依頼します。
- 承認されたら、セクション0の
StatusをApprovedに設定します。Status = Approved になってから初めて、実装を開始できます。 - 実装を開始したら、
StatusをIn implementationに設定し、変更に応じて随時更新します。 - 実装中に、DoDチェックリスト(セクション9)に記入します。DoDはすべての項目にチェックが付いた時点で完了です。
- DoDが完了したら、セクション0の
StatusをDoneに設定し、直ちにブランチfeature/...でPRを作成します。 - 実装中の変更は、まずSPECに反映する必要があります。
フェーズ4 — 検証
4.1–4.3 検証
検証スクリプトを実行します。
bash .claude/skills/create-agent-harness/scripts/validate-harness.sh
このリポジトリからスキルを呼び出している場合は、スクリプトをコピーした後、対象のリポジトリで実行するか、scripts/validate-harness.sh からコマンドを手動でコピーしてください。
4.4–4.7 検証アーティファクト
アンチパターン、品質チェックリスト、最終レポートのテンプレート、引き継ぎ手順については、references/validation-artifacts.md を参照してください。
例
入力:「この Node リポジトリを AI エージェント向けに準備して」— リポジトリにハーネスがない場合
出力:
- 事前確認:作業ツリーがクリーンであることを確認し、ブランチ
feature/claude-{YYYYMMDD}-bootstrap-claude-harnessを作成します。 package.json(Node、Jest、ESLint)および.github/workflows/ci.yml(npm ci && npm test && npm run lint)を引用した調査概要を提示します。既存のハーネスは見つかりません。確認のために一時停止します。- 確認後、
.claude/を作成し、settings.json、rules/global-rules.md、5 つのサブエージェント、メモリファイルを配置し、ルートにCLAUDE.mdを作成します。 - 検証 4.1 は空を返し、4.2 と 4.3 はすべて合格します。
- フィーチャーブランチにコミットし、
mainへのプルリクエストを提案します。
入力:「このリポジトリのハーネスを Claude に移行して」— リポジトリに AGENTS.md と .agents/ がある場合
**出力:**調査で既存のすべてのアーティファクトを一覧にし、移行計画を 移行元 → 移行先 → アクション の形式で表示します。確認後、AGENTS.md を CLAUDE.md に統合し、.agents/rules/* を applyTo から paths: に変換して .claude/rules/* に移し、.agents/subagents/* を allowed-tools から tools に変換して .claude/agents/* に移します。元のファイルは git rm で削除します。検証 4.1 で、既存ファイルが何も残っていないことを確認します。
入力:「このリポジトリ用の GEMINI.md を作成して」
**出力:**拒否します。Gemini 専用のハーネスは対象外です。このスキルは CLAUDE.md を唯一の情報源とし、薄い参照ファイルとして AGENTS.md を保持することを説明します。プラットフォーム固有のディレクトリは、明示的に対象として指定された場合にのみ生成し、信頼できる唯一の情報源にはしません。
入力:「エージェントが昨日何をしたか忘れてしまう」
**出力:**全体のフローを実行し、不足しているのはメモリアーティファクトのみであると報告して、.claude/memory/memory.md、.claude/memory/{YYYYMMDD}-memory.md および CLAUDE.md、global-rules.md、エージェントループ内の連携設定を生成します。
トラブルシューティング
| 問題 | 対処方法 |
|---|---|
| スキルが開始せず、何をするか尋ねてくる | 「Immediate Execution」を読み直してください。呼び出し時にフェーズ 0 が始まります |
現在のブランチが main、master、または develop | 作業を一切書き込む前に停止し、専用のフィーチャーブランチを作成してください |
| 作業ツリーに無関係な変更がある | 停止して確認してください。作業を混在させないでください |
| 調査中にコマンドが見つからなかった | TODO: define {command} と記述して確認時に提示してください。コマンドをでっち上げないでください |
| 移行後も既存のアーティファクトが残っている | 検証 4.1 が空以外を返しています。フェーズ 2 に戻ってください |
| ルールが一度も適用されない | applyTo を使用しています。Claude Code が解釈するのは paths: のみです |
| サブエージェントが一度も起動しない | name: がファイル名と一致していないか、description に「Use PROACTIVELY」が含まれていません |
.claudeignore があるのにファイルを読み取れる | CLI はそのファイルを読みません。パターンを permissions.deny に移してください |
main へのプッシュがブロックされなかった | ブランチ保護はサーバー側の機能です。ローカルフックでは git push のブランチを対象にできません |
| CI ワークフローが何も表示せずに失敗する | runs-on: を確認してください。企業リポジトリで ubuntu-latest を前提にしないでください |
| 再実行でアーティファクトが重複した | 冪等性が壊れています。生成前に存在するファイルを検出してください |
| メモリフォルダーが大きくなり、コンテキストを汚染する | 日付付きファイルのうち、直近 3 件のみを読み込んでください。昇格によって memory.md を 100 行未満に保ちます |
| エージェントが古いメモリエントリを信頼している | コードでその都度確認してから、SUPERSEDED: エントリを追記してください |
関連するスキルを使用するタイミング
| 必要なこと | スキル |
|---|---|
| エージェント向けの MCP サーバーを構築する | building-mcp-servers |
| GitHub Actions のエージェント型ワークフロー(gh-aw) | github-agentic-workflows |
| 確認ゲートを備えた Devin の運用プレイブック一式 | devin/playbooks/create-agents |
| Composio MCP のセットアップと認証 | composio-mcp |
| NotebookLM MCP のセットアップと認証 | notebooklm-mcp |
参考資料
- agents.md の仕様
- OpenAI — ハーネスエンジニアリング
- Anthropic — 効果的なエージェントの構築
- Claude Code — メモリとインポート
- Claude Code — サブエージェント
- Claude Code — 設定と権限
- Claude Code — フック
- Claude Code — スラッシュコマンド
- Devin CLI — 拡張性
- Martin Fowler — ハーネスエンジニアリング
- LangChain — エージェントハーネスの構造
- awesome-ai-conventions
- エージェントスキル仕様
- Model Context Protocol
- GitHub Agentic Workflows
- Awesome Harness Engineering
LLM への指示: コミュニティの慣例に沿ってリポジトリを調整する必要がある場合は、これらの参考資料を参照してください。ハーネスエンジニアリングのベストプラクティスを確認し、プラットフォームの進化に対応するための指針として活用してください。