Communitygithub.com

計画-文書化-実行-フォロー スキル

Plan → Doc → Do → Follow のフローに従い、意図に基づくルーティングとグローバル不変条件でプロジェクト管理を効率化するAIエージェントスキル。

計画-文書化-実行-フォロー スキル とは?

このスキルは、AIエージェント(特にClaude CodeやCursorなど)がプロジェクト管理を構造的に行うためのフレームワークです。**Plan(計画)**、**Doc(文書化)**、**Do(実行)**、**Follow(追跡)** の4段階から成り、最初にマッチしたルートが採用され、必要なルート、テンプレート、サブエージェントのみを読み込みます。15以上のグローバル不変条件を常に適用し、ステータスモデル(TODO → SPEC → PLAN → DEV → DONE)により単一ファイルを情報源とするため、矛盾や重複が発生しません。また、エコノミーモード(strict/balanced/quality)を備え、トークン消費を最小限に抑えながら、サブエージェントの起動やインライン処理を最適化します。このスキルは、CLAUDE.mdやAGENTS.mdなどのリポジトリ指示ファイルと統合され、人間へのレビューUXも簡潔に提供します。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add codeAvecCyril/ia-skill-plan-doc-do-follow

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Plan-Doc-Do-Follow スキル

計画 → 文書化 → 実行 → 追跡

意図にマッチ → 最初のルートが勝利 → routes/a-b.md(ルート a/b)を読む → それに従う → グローバル不変条件 + ステータスモデルを適用。必要なルート、テンプレート、サブエージェントのみを読み込み、すべてを読み込まない。

ルート

計画

意図ルートパラメータ
プロダクトビジョンからエピックを抽出plan/proj
エピックをステークホルダーと検証plan/proj-review
エピックPRDと追跡を作成plan/epicE{n}
エピック仕様またはアーキテクチャを検証plan/epic-reviewE{n} {prd
エピックアーキテクチャを設計plan/epic-archE{n}
機能PRDを作成plan/featE{n} F{n}
機能仕様またはアーキテクチャを検証plan/feat-reviewE{n} F{n} {prd
機能アーキテクチャ(例外のみ)plan/feat-archE{n} F{n}
機能をタスクに分解plan/tasksE{n} F{n}
スコープ変更 — 機能やエピックを追加/更新(実装済み含む)plan/changedescription
v2プロジェクトドキュメントをv3に移行(一括)plan/migrate

実行

意図ルートパラメータ
トークン節約ツールをセットアップ(LSP、フィルター、エコノミー、ネイティブエージェント)do/init
1つのタスクを実行do/taskE{n} F{n} T{n}
すべての機能タスクを実行し、インラインで検証do/all-tasksE{n} F{n}
完了した作業を検証(タスク単位のパス)do/verifyE{n} F{n}
すべてのステータスを再計算して修復do/sync-status
グッドプラクティスを記憶do/memorize

グローバル不変条件(全ルート)

  1. スピリットチェック: docs/product.mdと整合させる。製品スピリット(docs/project-status.mdの先頭)をすべての計画ルートとレビュアーブリーフにそのまま含める。
  2. ユーザーの意思: docs/decisions.mdを拘束する。逸脱する場合は質問し、黙って適用しない。
  3. ビジネス優先: 仕様レビューは次のフェーズの前に行う。
  4. アーキテクチャチェック: docs/global_architecture.md + docs/technical-stack.mdと整合させる。
  5. 1つの事実、1つのファイル: ステータス/事実は1つの所有ファイルを持つ(ステータスモデル)。他のファイルはリンクし、コピーしない。
  6. オーディエンス言語: 人間/ビジネス向け = 完全な文、説明のない略語は禁止。エージェント向け = ドキュメントスタイル(原人簡潔)。
  7. 空のスキャフォールディング禁止: 未使用のテンプレートセクションは削除する。「N/A」やプレースホルダーは絶対に使用しない。
  8. 推測禁止: ブロックするあいまいさ → 最初に質問する。ブロッキング / 重要 / 軽微にラベル付けする。
  9. トレーサビリティ: 各ドキュメントは親を参照する。ストーリー ↔ 要件 ↔ タスク ↔ テストをリンクする。
  10. 生きたグローバルドキュメント: docs/data-model.md、docs/ui-map.md、docs/decisions.mdは、それらに影響を与える変更と同じ変更で更新する — 「後で」は絶対にしない。
  11. モデル階層化: plan/* + レビュアー = 強力なモデル。すべての plan/tasks タスクは、PRDを開かなくても弱いモデルで実行可能。
  12. ステータス同期: ステータスを変更するすべてのルートは、ステータス同期手順で終了する。
  13. 引き継ぎ形式: 短いサマリー · 現在の進捗 · 正確な次のコマンド · 未解決の質問。
  14. スコープ制限されたサブエージェント: 定義リストでリストされた入力のみ。
  15. ルートごとのマインドセット: ルートのマインドセット行を採用する。
  16. 熟考は内部に留める: 批評家のやり取りはドキュメントや引き継ぎに決して含めない — 人間は最終結果と検証すべきものだけを見る。
  17. どこでもエコノミー: すべてのルートとサブエージェントでワーキングエコノミーを適用する。

ステータスモデル

⚪ TODO · 🟡 SPEC 仕様決定済み · 🟣 PLAN タスク生成済み · 🔵 DEV 開発中 · 🟢 DONE 完了・検証済み

所有権 — 単一情報源

事実所有ファイル(書かれる唯一の場所)
タスクステータスfeat-tasks.md — タスクサマリーテーブル
機能ステータスと進捗epic-status.md — 機能テーブル
エピックステータスと進捗docs/project-status.md — エピックロードマップテーブル
プロジェクト進捗docs/project-status.md — 進捗セクション

feat-status.mdは存在しない。タスクごとのセクション: ステータス行なし。Mermaid = 装飾用、所有テーブルから再生成され、情報源ではない。

導出ルール

  • 機能: feat-prd.mdがない → ⚪ · PRDが存在する → 🟡 · feat-tasks.mdが存在し、TODOを超えるタスクがない → 🟣 · いずれかのタスクがDEV/DONE → 🔵 · 🟢 のみ 検証ゲート(do/verify、または do/all-tasks の最終フェーズ)を介して。🟢 機能にタスクが追加された → 🔵 に戻す。
  • エピック: epic-prd.mdがない → ⚪ · PRDが存在する → 🟡 · すべての機能が ≥ 🟣 → 🟣 · いずれかの機能が 🔵/🟢(すべてが 🟢 ではない) → 🔵 · すべて 🟢 → 🟢
  • プロジェクト: エピックに対する同じ集約。
  • 進捗: 完了タスク数 / 全タスク数(0の場合は0)、エピックおよびプロジェクトレベルで集計。

ステータス同期手順

ステータスを変更するルートの終了時(スタンドアロン: do/sync-status、すべてのエピック):

  1. 影響を受ける機能のタスクサマリーテーブルを読む。
  2. 各機能のステータス + 進捗を再計算し、epic-status.mdの行を更新する。
  3. 影響を受ける各エピックを再計算し、その行、進捗セクション、docs/project-status.mdの円グラフを更新する。ステータス同期は変更ログを決して書き込まない — マイルストーンを生成したルートによって書かれる、変更ログハードルール(ドキュメントスタイル)によって命名されたイベントのみ。
  4. 引き継ぎでずれ(保存されたもの ≠ 導出されたもの)を報告する。

決定論的かつ冪等。

サブエージェント

定義は subagents/ に — エージェントごとに1ファイル(形式: subagents/README.md)。呼び出し: ファイルを読む → 正確にリストされた入力を組み立てる(レビュアーは常に製品スピリットを取得) → ファイル本文をシステムプロンプトとしてエージェントを spawn する。

エコノミープロファイル

リポジトリ指示ファイルの ツーリング セクションから Subagent economy: を読む(do/init が書き込む)。欠落時 → balanced

プロファイル動作
strictインラインファーストを厳守 · スカウトはほとんどの場合インライン · 質問/ツール/リターン上限を強制 · 批評家は依然として spawn する
balanced以下に書かれているようにインラインファースト · 上限を強制 · >5スカウト質問でソフト警告
qualityコストゲートはアドバイスに留める · 上限はスカウトツール使用とリターンサイズに依然適用

spawn 前(インラインファースト)

順に実行 — 最初のマッチが勝利 → spawn しない:

  1. 事実が既にプリンシパルコンテキストにある → インラインで作業
  2. プリンシパルが ≤5回の Grep/Glob/Read(またはLSP)呼び出しで回答可能 → インライン(subagents/repo-scout.md のスカウトライトチェックリストを使用)
  3. ブリーフが期待される回答のサイズに近づく → インライン
  4. 発見事項が小さな範囲に対する表面的/機械的チェックリストである可能性が高い → インライン(今日のコストゲートと同じ)
  5. それ以外は spawn する

repo-scout 追加(strict / balanced 下): spawn するのは、≥3 の反証可能な質問 かつ 検索がプリンシパルが開いていない ≥2 の領域にまたがる場合、または プリンシパルコンテキストが既に大きく、分離が明らかに安い場合のみ。 それ以外はインラインでスカウトライト。

spawn 時:

  • ツール注入: ブリーフには、リポジトリ指示ファイルからの1行ツールブロック(CLIフィルタープレフィックス、LSP設定、エコノミープロファイル)を含める — サブエージェントはそれに従わなければならない。
  • 正確なブリーフ: 正確な質問/チェック · 照らして構築する標準 · スコープ外 · スカウトの場合、エリアが判明している場合は開始パス/glob · スカウトウェーブごとに ≤5 質問(balanced/strict; 残りは分割するかインラインで処理)。
  • ハードルを前もって設定: ドラフト前に、批評家のレビュー質問を読む。最初の試行でパスするようにドラフトする。
  • リターンペイロード上限: スカウト ≤15行 · 批評家 ≤25行 · プリンシパルは必要な事実のみ保持 — スカウトダンプをドキュメントに貼り付けない。

批評家の発見事項: 動作、契約、または人間の決定を変更する場合に適用。無駄/表面的なものは黙って破棄。拒否された判断 → 人間への決定質問。収束: ドキュメントごとに1回の実行。ブロッキング発見事項の実質的な再作業後、最大1回の再実行。再実行はブロッキングのみを受け入れる。3回目の実行は絶対にしない。やり取りを決して報告しない(不変条件16)。

サブエージェント種類呼び出し元いつ
repo-scout調査plan/epic-arch, plan/feat, plan/feat-arch, plan/change計画は既存コードに基づく必要がある
prd-criticレビュアーplan/epic, plan/feat常に
arch-criticレビュアーplan/epic-arch, plan/feat-arch常に
perf-critic-backend / -frontendレビュアーアーキテクチャルート、検証ゲートトリガー基準(ファイル先頭)が発火した場合のみ
task-checkerレビュアーplan/tasksセルフレビュー後、最大2回実行
feature-coder実行者do/all-tasksウェーブごとに並列化可能なタスク1つにつき1回
ui-consistency-reviewerレビュアー検証ゲートUI機能、重要な表面
doc-coherence-reviewerレビュアー検証ゲート · plan/change · plan/migrateエピック完了時 · 変更後 · 移行後

検証ゲート(+ そのサブエージェント)は do/verify で実行されるか、do/all-tasks の最終フェーズとしてインラインで実行される。

人間レビューUX

結論、プロセスではない。機械的チェックは自動検証 → 1行のサマリー。「あなたの検証を必要とする決定」: ≤10の平易な文によるステートメント + ブロッキング/重要/軽微にラベル付けされた未解決質問。検証された決定 → docs/decisions.md。ステークホルダーの回答は そのまま — 言い換えず、再質問しない(あいまいな場合は、明確化のみ質問する)。

ワーキングエコノミー(不変条件17)

入力エコノミー

  • ファイル全体の読み取りよりもLSP/セマンティックナビゲーションを優先。スコープ指定された行範囲を使用。
  • コード検索には Shell よりも Grep/Glob/LSP を優先 — 必要な場合のみ Shell を使用。
  • 長いCLI出力(テスト、ビルド、git、パッケージマネージャー)はリポジトリ宣言されたフィルター(例: rtk, snip)を介して — do/init がセットアップ。アクティブなフックなしで Shell を使用する場合、手動でプレフィックス。
  • コンテキストにあるものを再読み取りしない。'念のため'にドキュメントを読み込まない。
  • エコノミープロファイルと spawn 前のインラインファーストに従う(サブエージェント)

出力スタイル(プリンシパルとサブエージェント)

  • 原人簡潔(エージェント向けドキュメントと同じ基準): 前置きなし、リクエストの再述なし、末尾のサマリーなし、フィラー/ヘッジなし。
  • コード、コマンド、パス、エラー: バイト単位で正確 — 言い換え禁止。
  • コード変更は差分または対象指定された編集として — 要求されない限り、ファイル全体のリストは禁止。
  • 調査回答は ≤10行(深さが要求されない限り)。サブエージェントの戻り値はリターンペイロード上限に従う。
  • 引き継ぎ(不変条件13) = クロージングブロックのみ: ≤5行。

最小実装(do ルートと feature-coder)

完全に理解し、保持する最初の段で停止する:

  1. 存在する必要がない → スキップ(YAGNI)
  2. コードベースに既にある → 再利用
  3. 標準ライブラリが提供する → それを使用
  4. ネイティブプラットフォーム機能 → それを使用
  5. インストール済み依存関係 → それを使用
  6. 1行で十分 → 1行
  7. その場合のみ、動作する最小限を書く

決して削減しない: 信頼境界の検証、データ損失処理、セキュリティ、アクセシビリティ。

ドキュメントスタイル

2つのオーディエンス — ファイルの目的で選択。ルートのムードではない。

人間 / ビジネス(完全な散文) — PRD(epic-prd.md, feat-prd.md)、docs/product.md、製品スピリット、人間レビュー本文(*-review.md 決定セクション)、ユーザー向けドキュメント(developer-setup、オンボーディング、人間向け README)。完全な文。ステークホルダーが読める。説明のない略語は禁止。

エージェント向け(原人簡潔) — スキルプレイブック(SKILL.md, routes/, subagents/, テンプレートコメント)、feat-tasks.md、epic-arch.md / feat-arch.md、ステータステーブル/メモ、生きた技術ドキュメント(data-model.md, ui-map.md, decisions.md)、docs/patterns/*。原人 完全 に触発:

  • 事実と命令のみ — 意味が明確な場合、冠詞/フィラー/ヘッジを削除。断片も可。
  • 短い同義語。パターン [もの] [動作] [理由] · [次のステップ]
  • 発明された略語禁止(cfg/impl/fn)。よく知られた技術頭字語は可(DB/API/HTTP)。
  • パス、シンボル、コード、コマンド、エラー文字列: 正確に。
  • not/never/no/only/except を決して削除しない。
  • 改行前の末尾ピリオドなし(複数句の行内の中間ピリオドは残す)。
  • 決定と事実のみ — プロセスは絶対に含めない('レビュアーが示唆…'、'議論の後…')。
  • 将来のエージェントが理由を必要とする場合のみ正当化(トレードオフ、スコープカット): ≤2行の短い行。
  • 自動明確化: セキュリティ警告、不可逆的なステップ、または順序/否定を誤読するリスクがある断片にはより完全な散文 — その後、簡潔に戻る。

変更ログハードルール: 1行 {日付}: {事実}、≤25語。対象のみ — プロジェクト: エピック完了、主要なスコープ変更、移行。エピック: 機能検証 🟢、スコープ変更。その他すべて(タスク生成、PRD起草/承認、ウェーブ、同期、ずれ修復) = エントリなし。決して: 批評家のやり取り(不変条件16)、タスクリスト、ゲート結果、進捗数値、Next: コマンド。冗長な既存エントリ = レガシー、決して先例にならない — 対象となる行のみを書くか、何も書かない。

ファイル構成

docs/
├── product.md                 (入力: プロダクトビジョン)
├── global_architecture.md     (入力: アーキテクチャ概要)
├── technical-stack.md         (入力: 技術決定)
├── project-status.md          (所有: 製品スピリット、エピックステータス、進捗)
├── project-review.md
├── decisions.md               (生きた: 拘束力のあるユーザー決定、各行1つ)
├── data-model.md              (生きた: グローバルデータスキーマ、存在する場合)
├── ui-map.md                  (生きた: グローバルナビゲーションマップ、UIの場合)
├── design-guidelines.md       (生きた: UIスタイル規約、UIの場合)
├── patterns/{pattern-name}.md (do/memorize から)
└── epics/e{n}-{epic-name}/            (スラッグ例 e2-orm-discovery)
    ├── epic-brief.md                  (plan/proj)
    ├── epic-prd.md                    (plan/epic)
    ├── epic-status.md                 (所有: 機能ステータス)
    ├── epic-arch.md                   (plan/epic-arch)
    ├── epic-review.md                 (plan/epic-review)
    └── f{n}-{feat-name}/              (直接の子 — features/ レベルはなし)
        ├── feat-prd.md                (plan/feat; エントリポイント + アーキテクチャ差分を含む)
        ├── feat-arch.md               (plan/feat-arch — 例外のみ)
        ├── feat-tasks.md              (所有: タスクステータス)
        └── feat-review.md             (plan/feat-review)

プラットフォーム統合

リポジトリ規則、優先順位: CLAUDE.md · AGENTS.md · .github/copilot-instructions.md · .cursor/rules/ · .github/instructions/。do/memorize は実際に存在するファイルに書き戻す。

テンプレート

templates/ にあり — 名前は出力ファイルをミラーする。

関連スキル