運用・品質
会話の切り方・調査の任せ方・検証。
会話の切り方・調査の任せ方・検証してから完了。
やること
- 6つの基本ルールを試す
- 広い調査は Task に任せる
- 指摘を
tasks/lessons.mdに残す
完了: 小タスク1件を Plan→実装→検証まで完了
会話の切り方・調査の任せ方・検証してから完了。
やること
- 6つの基本ルールを試す
- 広い調査は Task に任せる
- 指摘を
tasks/lessons.mdに残す
完了: 小タスク1件を Plan→実装→検証まで完了
エージェント運用 — 6つの基本ルール
Plan 先・調査委譲・lessons・検証・簡潔さ・自律修正。詳細は下の折りたたみと agent-workflow-orchestration.mdc。
| # | ルール | 参照 |
|---|---|---|
| 1 | Plan で始める | Phase 2 Plan |
| 2 | 調査は別 AI に任せる | マルチエージェント |
| 3 | lessons に残す | lessons · tasks/lessons.md |
| 4 | 完了前に検証 | 検証 |
| 5 | 簡潔さ | 単純修正に過剰設計しない |
| 6 | 自律的バグ修正 | バグ修正(git は許可後) |
6つの基本ルール・タスク管理(詳細)
- Plan で始める — 完了条件・検証ステップまで書く(Plan 成果物)
- 調査は別 AI に任せる — 1担当=1タスク。メイン会話を散らかさない
- lessons に残す — 指摘パターンを
tasks/lessons.md→ 再発時に rules へ - 完了前に検証 — テスト・curl 等で動いたことを示す
- 簡潔さ — 単純な修正に過剰設計しない
- 自律的バグ修正 — git push 等はユーザー許可を待つ
Plan 置き場パターン・適用シナリオの詳細は ルールサンプル と上記 .mdc を参照。
会話の文脈管理(2026)
AI の回答の質は、渡す情報の量より、余計な情報が少ないかで決まる。下表は状況別の推奨。
| 状況 | 推奨 |
|---|---|
| コードベースの調査・「どこにある?」 | ファイルを総 @ しない。自然言語で領域を指定。必要なら 1 ファイルだけ @ |
| ブランチ上の作業・レビュー | @Branch で差分コンテキストを渡す |
| 前セッションの続き | 会話全文のコピペではなく @Past Chats で選択的に参照(手順: ルール/プラン — @Past Chats) |
| 別タスク・別機能に着手 | 新規チャット。Plan(チャット or ファイル)/ ADR / 必要なら tasks/todo.md を正式な記録に |
| 同じ機能の反復・デバッグ | 同一会話を継続(直前の実装文脈が必要) |
| エージェントが同じミスを繰り返す | 会話を切り、ルールを 1 条追加してから再開 |
| 広い調査・並列分析 | 別の AI 担当(Task)に委譲し、結果だけメインへ(調査の任せ方) |
ツール横断の整理・公式 BP 対応表: ルール/プラン — 3ツール横断 · 公式ドキュメント。プロンプト: プロンプト設計。
Plan の置き場所(チャット / ファイル)
3 ステップ以上は Plan をファイル化。tasks/todo.md がチーム正本。Cursor は .cursor/plans/ が下書き。
Plan — ズレたら follow-up ではなく計画からやり直す
公式 BP: 意図と違う出力が出たら、追加入力で直すより変更を revert → Plan を具体化 → 再 Buildの方が速くきれいなことが多い。
- Checkpoint / git で安全な地点に戻す
- Plan(チャット or
.cursor/plans/)に不足コンテキスト・完了条件を追記 - ユーザー承認後に Agent で再実行
- 検証コマンド(完了前検証)を Plan に含める
マルチエージェント協調
開発セッションでは、1つの会話にすべてを詰め込まず、別の AI 担当(Task / Subagent)に調査・分析を委譲し、メインは実装と判断に集中する。プロダクト実装(LangGraph・SDK)の詳細は Tool Use 参考 — マルチエージェント、RAG 統合は RAG 参考 — Agentic RAG。
基本 — 開発文脈でのマルチエージェント
マルチエージェントとは、役割とコンテキストを分けた複数の AI 実行単位が協調すること。Cursor では Task ツール、Claude Code では Subagents が相当する。
- Plan — メインがゴール・サブタスク・並列可否を書く(Plan の置き場所)
- 調査委譲 — 広い grep・複数ディレクトリ探索は Subagent に任せ、結果だけ戻す(調査の任せ方)
- 執筆・実装 — メインが構造化された調査結果をもとにコード・ドキュメントを書く
- 検証 — テスト・curl・本番 HEAD など完了条件を満たす(完了前の検証)
Cursor Task — subagent_type の使い分け
| subagent_type | 向く場面 | 避けること |
|---|---|---|
explore | コードベース探索・「どこにある?」・パス一覧 | 同一機能の反復デバッグ(メインで続ける) |
generalPurpose | 複数ステップの調査・分析・執筆前の下準備 | 出力形式を指定しない長文ダンプ |
shell | git status / ビルド / テスト実行 | 破壊的操作(ユーザー許可ルールに従う) |
並列: 独立タスクは複数 Task を同時起動(ファンアウト)。集約ロジックを Plan に先に書く。
worktree 並列 · 複数モデル比較(Cursor 2026)
出典: 公式 BP。
- Git worktree — Agent ドロップダウンから worktree を選ぶと、ファイル変更が分離された作業ツリーで実行。完了後 Apply で現在ブランチへマージ
- 複数モデル — 同一プロンプトを複数モデルに送り、結果を横並び比較。難問・エッジケースの探索向け
- 通知 — 並列実行時は完了通知を有効化(長時間タスク)
調査だけ委譲する場合は Task / Subagent。実装の並列は worktree + Plan で衝突を防ぐ。
受け渡しスキーマ(データ契約)
Subagent からメインへ戻すのは構造化結果だけ。全文ダンプ・長い grep 出力は避ける。
{
"paths": ["src/domain/order.ts", "src/api/routes/order.ts"],
"summary": "OrderService.create が POST /orders から呼ばれる。認可は middleware/auth.ts。"
}
- paths — 触るべきファイル(最大10件程度)
- summary — 3〜5文の要点(メインが次のアクションを決めるのに足る量)
- 必要なら blockers — 調査だけでは解決できない不明点
協調パターン
下表はパターンごとの向き不向き。
| パターン | 向く場面 | 注意点 |
|---|---|---|
| パイプライン | 段階依存が明確 | 受け渡しスキーマを固定 |
| ファンアウト | 独立アイテムの並列処理 | 集約ロジックを先に定義 |
| スペシャリスト | 多ドメイン統合 | 出力形式を標準化 |
チェックリスト
- ゴール・サブタスク・並列可否を書く
- 各エージェントに役割・ツール・構造化出力(データ契約)を割り当てる
- 並列/直列の境界と受け渡しを固定する
- 失敗時フォールバックを文章化する
- まず 2 体パイプラインで固めてから段階的に増やす
- ハンドオフ失敗・重複作業・品質低下・トークン肥大を監視する
よくある失敗
- 汎用エージェントだらけで特化のメリットが消える
- 出力形式未標準化で次段がパースできない
- 並列を早まりで増やし観測不能になる
- 段間エラー処理がなく連鎖失敗する
- トークンコストを軽視する
履歴・記録の残し方
「誰が・何を・どの粒度で読むか」を決めると、履歴の残し方がブレない。正本の置き場所は リポジトリ — docs / 作業履歴 を参照。
下表は記録の置き場所と粒度の早見。
| 記録の種類 | 粒度 | 誰が読むか | 正式な記録性 |
|---|---|---|---|
| Git log | コミット単位 | レビュアー・将来の自分 | 高 |
| docs/ | 機能単位 | チーム全体 | 最高(公式) |
| docs/adr/ | 意思決定単位 | 設計レビュアー | 高 |
| z_docs/history/ | セッション単位 | 本人 | 任意 |
| チャット | 1 チャット = 1 タスク | 引き継ぎ先 | 補助 |
Git log
TDD 採用チームは [RED] / [GREEN] / [REFACTOR] プレフィックスを使うと読みやすい。
* [REVIEW] address review comment: handle null in <field>
* [REFACTOR] extract _<helper> to private method
* [GREEN] implement <usecase>
* [RED] add failing tests for <usecase>
* docs: add docs/<feature>/ design docs + ADR-NNNN
* [PLAN] refine task breakdown before implementation
* feat: <user-visible summary> (merge commit)
docs/ (公式)
- 要件・設計・DB・技術選定・テスト計画・ログ・デプロイが揃う
- 重要な意思決定は docs/adr/ に切り出す
- 共有したい知見は z_docs から docs/ へ昇格させる
作業履歴(Obsidian 正本 · z_docs 任意)
詳細・判断フロー: リポジトリ — docs / 作業履歴
- 必要なときだけ、フェーズ別意思決定を時系列で残す
- 後から自分で振り返りたいときの補助
- 共有したい知見だけ docs/ や PR に昇格すればよい
チャット履歴
- 各フェーズの冒頭で「フェーズN: 目的」を宣言
- 長くなったら新規チャット。
@Past Chatsで必要分だけ引き継ぐ(4章 会話の文脈管理) - 引き継ぎ時、後任者が PR と履歴を読めば理解できる状態にする
AIのよくある誤り
プロジェクト固有のルールとは別に、AI がよく間違える論点の早見表。該当行があればテスト・docs・rules で先回りする。
下表は論点ごとの典型ミスと対策。プロジェクト docs に境界表・丸めポリシー等を書いておくと効く。
| 論点 | 典型ミス | 対策 |
|---|---|---|
| 金額/数量 | float 使用 | Decimal 必須。丸めポリシーを docs に明示 |
| 時刻/TZ | ローカル保存 | UTC 保存。境界値テスト |
| 境界条件 | 0/null/上限未テスト | 境界表をテストケース化 |
| 並行更新 | ロック未考慮 | 楽観/悲観ロック方針を docs 化 |
| 冪等性 | リトライで二重実行 | idempotency key / 一意制約 |
| エラーパス | ハッピーパスのみ | 異常系チェックリスト |
| 既存整合 | 「最善実装」提案 | 既存パスをコンテキストに必須 |
| 国際化 | 単一言語前提 | 通貨・単位・エンコーディング |
| 権限 | 認証=認可 | 行レベル権限を設計 docs に |
| 性能 | N+1 | クエリ数をテスト/ログで確認 |
| データ移行 | 後方互換なし | 移行手順 + rollback |
NOTE: 言語・FW・ライブラリの最新仕様は AI の学習データより古いことが多い。公式ドキュメント・チェンジログと突き合わせる習慣をつける。
ルールは古くなります。四半期見直し・チーム導入・コスト管理をセットで運用してください。
運用の注意
運用の注意(6項目・クリックで展開)
ルールの陳腐化対策
- スプリント終了時や四半期ごとに利用中ラインのルール (
.cursor/rules//AGENTS.md/CLAUDE.md/.claude/skills//.agents/skills/) を見直す - ルール改訂時は docs/adr/ に意思決定を残す(例: ADR-NNNN: Update testing rule)
- 新規メンバーのオンボーディング時のフィードバックを取り込む
グローバルルールとの境界
- 個人のグローバルルール (
/Users/<user>/.cursor/rules/、~/.claude/CLAUDE.md、~/.codex/AGENTS.md) と重複させない - プロジェクト固有のものだけリポジトリに置く
AIツールのバージョン管理
- モデル変更で挙動が変わることがある
- 重要な意思決定では「どのモデルでいつ生成したか」を履歴に残す
- モデル変更時はチーム内で動作確認を共有
チームへの導入手順
- まず 1〜2 人で試し、ルールの初版を固める
- 設計レビューで Cursor / Claude Code / Codex のルール群の存在を共有
- ペアプロでフロー実演
- 既存リポジトリへは PR 単位で rules を追加
- 1〜2 スプリント後にレトロでフィードバック収集
既存プロジェクトへの段階適用
- 既存コードを一括書き換えしない
- 新規 PR から本フローを適用
- 既存実装と異なる選択は
docs/<feature>/04_tech_decisions.mdまたはdocs/adr/に理由を残す
コスト管理
- 長セッションはコンテキストコスト高 → 1 チャット 1 タスクで分ける
- 単純な補完は Tab 補完 / cmd+K で済ませる
- Plan/設計の議論は Web の Free Tier でも可
1 機能 = 1 チャットに分ける — 1 機能 = 1 チャットに分ける。変数名修正は Tab 補完、Plan 議論だけ別チャットで行い、実装チャットのコンテキストを薄く保つ。