plan-fast について
plan-fast は、コードベースの作業向けの計画スキルです。既存コードを調べてから段階的な実装計画を作成し、複雑度評価、テスト仕様、レビューを求めます。コードの実装は行いません。
主な機能
- 01コードを読み類似パターンを検索
- 02計画とフェーズファイルを作成
- 03複雑度を評価して段階に分割
- 04各フェーズのテスト仕様を定義
- 05計画レビューとユーザー確認を要求
活用シーン
- 01既存コードベースの機能変更を計画
- 02複数ファイルの作業を段階に分割
- 03計画前にデータフローと依存関係を追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ duc01226/ easyplatform --skill plan-fastインストール後、Claude Code で/plan-fastを入力して読み込まれたか確認します。
詳細
[IMPORTANT] 作業を開始する前に、各ファイルの読み込みタスクも含め、すべての作業を小さなタスクに分割するために
TaskCreateを使用してください。長いファイルによるコンテキストの喪失を防ぐためです。簡単な作業の場合、AI は注意を促してスキップするかどうかユーザーに尋ねる必要があります。
まずコードを理解する — 厳格なゲート:既存のコードを読むまで、記述、計画、修正を行わないでください。
- 類似するパターンを3つ以上検索し(
grep/glob)、file:line形式で根拠を示します- 対象領域の既存ファイルを読み、構造、基底クラス、規約を把握します
.code-graph/graph.dbが存在する場合は、python .claude/scripts/code_graph trace <file> --direction both --jsonを実行しますconnectionsまたはcallers_ofで依存関係をマッピングし、対象に依存するものを把握します- 複雑な作業(3ファイル以上)では、調査内容を
.ai/workspace/analysis/に記録します- 実装前に分析ファイルを再読します。記憶だけを頼りに作業してはいけません
- 既存のパターンが機能する場合、新しいパターンを決して考案しないでください。完全に合わせるか、逸脱の理由を記録します
以下が完了するまで作業は禁止:
- [ ]対象ファイルを読む- [ ]3つ以上のパターンを grep する- [ ]グラフをトレースする(graph.db が存在する場合)- [ ]根拠をもとに前提を検証する
見積もり — 修正フィボナッチ数列:1(ごく簡単)→ 2(小規模)→ 3(中規模)→ 5(大規模)→ 8(非常に大規模)→ 13(エピック、分割することを推奨)→ 21(必ず分割)。計画のフロントマターに
story_pointsとcomplexityを出力します。複雑度は自動導出されます:1~2=低、3~5=中、8=高、13以上=クリティカル。
docs/project-reference/domain-entities-reference.md— ドメインエンティティのカタログ、関係、サービス間同期(作業にビジネスエンティティ/モデルが関係する場合に読みます)(コンテンツはフックによって自動挿入されます。読む前に[Injected: ...]ヘッダーを確認してください)docs/test-specs/— モジュール別のテスト仕様(計画にテスト戦略を含めるため、既存の TC を読みます)
計画の品質 — すべての計画フェーズに、必ずテスト仕様を含めてください。
- 各フェーズのファイルに
## Test Specificationsセクションを追加し、TC-{FEAT}-{NNN} ID を記載します- 各機能要件を1つ以上の TC に対応付けます(または、理由を添えて明示的に
TBDとします)- TC ID は
TC-{FEATURE}-{NNN}形式に従います。内容全体を埋め込まず、ID を参照してください- 新しいワークフローステップに進む前に、
TaskListを呼び出してフェーズファイルを再読します- コンテキストが圧縮された場合は、まず
TaskListを呼び出してください。タスクを重複して作成してはいけません- 完了とする前に、フェーズごとに TC の充足を検証します(根拠は
TBDではなくfile:line形式で示す必要があります)モード: TDD 優先 → 既存の TC を
Evidence: TBDで参照します。実装優先 →TBDを使用し、後から/tdd-specで補完します。
反復的なフェーズの品質 — 計画を立てる前に複雑度を評価します。
複雑度の指標: 5ファイル超 +2、サービス間の変更 +3、新しいパターン +2、DB マイグレーション +2 スコアが6以上の場合 → 必ずフェーズに分解します。各フェーズの条件:
- 変更するファイルは5つ以下
- 作業時間は3時間以下
- サイクルに従う:計画 → 実装 → レビュー → 修正 → 検証
- フェーズ N が検証に合格するまで、フェーズ N+1 を開始してはいけません
フェーズの成功条件=すべての TC に合格し、code-reviewer エージェントが承認し、CRITICAL の指摘がないこと。 修正レイヤーの責任 — クラッシュした場所では絶対に修正しないでください。処理の流れ全体をたどり、責任を持つレイヤーで修正します。
AI のデフォルトの動作:場所 A でエラーを確認 → 場所 A を修正。これは間違いです。クラッシュした場所は症状であり、原因ではありません。
修正を行う前に必ず実施すること:
- データフロー全体をたどる — データの発生元からクラッシュした場所まで、すべてのレイヤー(ストレージ → バックエンド → API → フロントエンド → UI)を通る完全な経路をマッピングします。不正な状態がどこで発生するかを特定します。クラッシュした場所ではありません。
- 不変条件の責任者を特定する — どのレイヤーの契約が、この値の有効性を保証していますか?そのレイヤーが責任を負います。不変条件を所有する最も低いレイヤーで修正します。その値を使用する最も高いレイヤーではありません。
- 1 つの修正で最大限の保護を実現する — 「ここで修正すれば、1 回の変更ですべての下流の利用者を保護できるか?」と考えます。防御チェックを加えるために 3 つ以上のファイルを変更する必要があるなら、修正するレイヤーが間違っています。より低いレイヤーで修正してください。
- 迂回経路がないことを確認する — すべてのデータフローが修正箇所を通ることを確認します。次の点をチェックします:ファクトリーを介さない直接の構築、再検証を伴わない複製/スプレッド、ドメインモデルでラップされていない生データ、モデルレイヤー外での変更。
以下を完了するまで作業は禁止:
- [ ]データフロー全体を追跡済み(発生元 → クラッシュ箇所)- [ ]不変条件の責任者をfile:lineの根拠とともに特定済み- [ ]すべてのアクセス箇所を監査済み(grep の件数)- [ ]修正レイヤーの妥当性を確認済み(最も多くの利用者を保護する最も低いレイヤー)アンチパターン(却下すること):
- 「クラッシュした場所で修正する」 — クラッシュ箇所 ≠ 原因箇所です。上流をたどってください。
- 「すべての利用箇所に防御チェックを追加する」 — 防御を分散させるのは、レイヤーの選択が間違っています。あちこちにガードを追加するより、権威ある 1 か所で修正してください。
- 「両方で修正するほうが安全」 — 権威あるレイヤーを 1 つ選んでください。複数のレイヤーに重複するチェックを置くと、不変条件を誰が所有するのかについて矛盾したメッセージが伝わります。
短期間の計画でも、複雑度スコアを評価してください。スコアが 3 以上の場合は、フェーズごとに品質サイクルを設けた複数フェーズの計画を必ず作成してください。
クイックサマリー
目標: コードベースを分析し、コードを一切書かずに、構造化された実装計画を作成します。
ワークフロー:
- 計画のコンテキストを確認する — 進行中の計画を再利用するか、命名規則に従って新しいディレクトリを作成します
- コードベースを分析する —
backend-patterns-reference.md、frontend-patterns-reference.md、project-structure-reference.mdを読みます - 計画を作成する — YAML フロントマターを含む
plan.mdとphase-XX-*.mdファイルを生成します - 検証する —
/plan-reviewを実行し、実装を開始する前にユーザーに確認を求めます
主なルール:
EnterPlanModeツールは使用しないでください。コードの実装も行わないでください- ユーザーと協力してください:判断が必要な質問をし、推奨案とともに選択肢を提示します
- 計画の作成後は、必ず
/plan-reviewで検証します
グリーンフィールドモード
自動検出: 既存のコードベースが見つからない場合(
src/、app/、lib/、server/、packages/などのコードディレクトリがない、package.json/*.sln/go.modなどのマニフェストファイルがない、入力済みのproject-config.jsonがない)、このスキルは/plan-hardに切り替えます。計画用の成果物(docs/、plans/、.claude/)は対象外です。プロジェクトには、実際のコードを含むディレクトリが必要です。
グリーンフィールドが検出された場合:
/plan-hardに切り替える — グリーンフィールドのプロジェクト立ち上げには、迅速な計画ではなく、詳細な調査が必要です- ユーザーに次のように伝えます:「グリーンフィールドのプロジェクトが検出されました。徹底的な調査と計画を行うため、/plan-hard に切り替えます。」
- 理由:迅速な計画では調査が省略されますが、グリーンフィールドのプロジェクトには市場調査、技術評価、ドメインモデリングが必要です。これらはすべて、詳細な分析なしには不可能です
懐疑的な姿勢を保ってください。批判的思考と順を追った思考を適用してください。すべての主張には、追跡可能な根拠と信頼度のパーセンテージが必要です(アイデアは 80% を超える必要があります)。
planning スキルを有効にします。
計画のみ — 共同作業が必要です
EnterPlanModeツールは使用しないでください。すでに計画ワークフローに入っています。 コードの変更を実装または実行しないでください。 ユーザーと共同で作業してください。判断が必要な質問をし、推奨案とともに選択肢を提示してください。 計画の作成後は、必ず/plan-reviewを実行して計画を検証してください。 次のステップに進む前に、ユーザーに計画の確認を求めてください。
ミッション
$ARGUMENTS作成前チェック(有効な計画か、提案された計画か)
注入されたコンテキストの ## Plan Context セクションを確認してください。
- 「Plan:」にパスが示されている場合 → 有効な計画が存在します。ユーザーに「これを続けますか? [Y/n]」と尋ねてください。
- 「Suggested:」にパスが示されている場合 → ブランチに一致するヒントのみです。有効化するか新規作成するかを尋ねてください。
- 「Plan: none」の場合 →
## Namingセクションの命名規則に従って新しい計画を作成してください。
ワークフロー
planner サブエージェントを使用して、次の作業を行ってください。
- 新規作成する場合:
## NamingセクションのPlan dir:を使用してディレクトリを作成し、node .claude/scripts/set-active-plan.cjs {plan-dir}を実行します。 既存の計画を再利用する場合:Plan Context にある有効な計画のパスを使用します。 作業中は、すべてのサブエージェントに必ずディレクトリパスを渡してください。 planningスキルの「Plan Creation & Organization」ルールを厳守してください。backend-patterns-reference.md、frontend-patterns-reference.md、project-structure-reference.mdを読み、コードベースを分析してください。 3.5. 外部メモリ:分析結果を.ai/workspace/analysis/{task-name}.analysis.mdに書き込んでください。計画を作成する前に、このファイルを読み直してください。- 必要な情報をすべて集め、このタスクの実装計画を作成してください。
- ユーザーに計画の確認を求めてください。
出力要件
計画ディレクトリの構成(## Naming セクションの Plan dir: を使用してください)
{plan-dir}/
├── reports/
│ ├── XX-report.md
│ └── ...
├── plan.md
├── phase-XX-phase-name-here.md
└── ...
計画ファイルの仕様
-
すべての
plan.mdは、必ず次の YAML フロントマターから始めてください。--- title: '{Brief title}' description: '{One sentence for card preview}' status: pending priority: P2 effort: { sum of phases, e.g., 4h } story_points: { sum of phase SPs, e.g., 8 } branch: { current git branch } tags: [relevant, tags] created: { YYYY-MM-DD } --- -
概要のエントリーポイントを
{plan-dir}/plan.mdに保存してください。汎用的な内容とし、80行以内にまとめて、実装フェーズごとにステータスと進捗を記載し、各フェーズのファイルへのリンクを含めてください。 -
各フェーズについて、次のセクションをこの順序で含む
{plan-dir}/phase-XX-phase-name-here.mdを作成してください。Context links(親計画、依存関係、ドキュメントへの参照)、Overview(日付、説明、優先度、実装ステータス、レビュー状況)、Key Insights、Requirements、Architecture、UI Layout(下記参照)、Related code files、Implementation Steps、Todo list、Success Criteria、Risk Assessment、Security Considerations、Next steps。 -
UI Layout:フロントエンドに関わるフェーズでは、ASCII ワイヤーフレームを含めてください。コンポーネントを tier(common/domain-shared/page-app)ごとに分類してください。バックエンドのみのフェーズでは、
## UI Layout→N/A — Backend-only change.としてください。
重要:タスク計画に関する注意事項(必ず遵守してください)
- 必ず
TaskCreateを使用して、作業を多数の小さな todo タスクに分割してください。 - 作業品質を検証し、修正や改善点を特定する最終レビュー用の todo タスクを必ず追加してください。
- 必須の最終タスク: すべての計画用 todo タスクを作成した後、必ず次の3つの最終タスクを追加してください。
- タスク:「各フェーズのテスト仕様を作成する」 — 各フェーズのファイルに TC-{FEAT}-{NNN} ID を付けた
## Test Specificationsを追加します。機能ドキュメントがある場合は/tdd-specを使用してください。TDD ファーストモードではEvidence: TBDを使用してください。 - タスク:「/plan-validate を実行する」 —
/plan-validateスキルを起動し、重要な質問でユーザーに確認しながら計画の前提を検証してください。 - タスク:「/plan-review を実行する」 —
/plan-reviewスキルを起動し、計画の妥当性、正確性、ベストプラクティスへの準拠を自動レビューしてください。
- タスク:「各フェーズのテスト仕様を作成する」 — 各フェーズのファイルに TC-{FEAT}-{NNN} ID を付けた
計画後の検証
計画を作成した後、AskUserQuestion ツールを使用して、「/plan-review を実行して検証しますか、それとも実装に進みますか?」と質問します。選択肢は次のとおりです。
- 「
/plan-reviewを実行(推奨)」 —/plan-reviewを実行して計画を検証します - 「実装に進む」 — 検証をスキップして実装を開始します
重要な注意事項
- 重要: 高品質を維持しながら、トークン消費を効率化してください。
- 重要: スキルカタログを分析し、作業中に必要なスキルを有効化してください。
- 重要: レポートを作成する際は、簡潔さを優先して文法を犠牲にしてください。
- 重要: レポートでは、未解決の質問があれば末尾に列挙してください。
リマインダー — 計画専用コマンド
使用しないでください:
EnterPlanModeツール。 開始しないでください:実装。 必ず実行してください:計画作成後に/plan-reviewで検証します。 必ず確認してください:実装を開始する前に、ユーザーに計画の確認を求めます。 複数のアプローチがある場合:推奨案を添えて、ユーザーに判断を求めます。
計画の粒度に関する自己チェック(必須)
計画の粒度 — 実装前に、すべてのフェーズが次の5項目を満たす必要があります。
- 変更するファイルの正確なパスを列挙している(「Xを実装する」のような一般的な記述ではない)
- 計画を立てる動詞を含まない(調査する、調べる、分析する、判断する、把握する)
- 各ステップが30分以内、フェーズ全体が3時間以内
- フェーズあたり5ファイル以下
- アプローチに未決定事項やTBDがない
不合格のフェーズ → サブ計画を作成します。すべてのリーフフェーズが合格するまで繰り返してください(最大深度:3)。 自問してください:「今すぐコーディングを始められるか? どのステップでも『把握する』必要があるなら、サブ計画に分解する。」
すべてのフェーズファイルを作成した後、再帰的な分解ループを実行します。
- 各フェーズを5つの基準(ファイルパス、計画を立てる動詞がないこと、各ステップが30分以内、5ファイル以下、未決定事項がないこと)に照らして評価します。
- 不合格のフェーズごとに、サブ計画へ分解するタスクを作成します(独自の
/plan→/plan-review→/plan-validate→ 修正サイクルを含む)。 - 新しいフェーズを再評価します。すべてのリーフフェーズが合格するまで繰り返してください(最大深度:3)。
- 自問してください:「各フェーズについて、今すぐコーディングを始められるか? 『把握する』必要があるものがあれば、サブ計画に分解する。」
次のステップ(単独実行:AskUserQuestion でユーザーに必ず質問してください。ワークフロー内の場合はスキップしてください。)
必須・重要・要対応 — 例外なし: このスキルがワークフロー外で呼び出された場合、必ず
AskUserQuestionを使用して次の選択肢を提示してください。タスクが「簡単」または「明白」に思えても省略しないでください。判断するのはユーザーです。
- 「フルワークフローに進む(推奨)」 — 最適なワークフローを自動的に検出し、ここから続行します(計画は作成済みです)。これにより、レビュー、検証、実装、テストのステップが省略されないようにします。
- 「
/plan-review」 — 計画の妥当性とベストプラクティスを自動レビューします - 「
/plan-validate」 — ユーザーに質問し、計画の決定事項を確認します - 「スキップして手動で続行」 — ユーザーが判断します
すでにワークフロー内にいる場合はスキップしてください。実行順序はワークフローが管理します。
完了時のリマインダー
-
IMPORTANT MUST ATTENTION 作業を始める前に、
TaskCreateを使って作業を小さな ToDo タスクに分割してください -
IMPORTANT MUST ATTENTION 新しいコードを作成する前に、コードベースで類似パターンを 3 件以上検索してください
-
IMPORTANT MUST ATTENTION すべての主張について
file:lineの根拠を示してください(確信度が 80%を超える場合に対応すること) -
IMPORTANT MUST ATTENTION 作業品質を検証するための最終レビュー ToDo タスクを追加してください
-
IMPORTANT MUST ATTENTION 計画のフロントマターに「テスト仕様」セクションと
story_pointsを含めてください -
IMPORTANT MUST ATTENTION すべてのフェーズが 5 ポイント粒度チェックに合格することを確認してください。不合格のフェーズはサブプランに分割してください。「今すぐコーディングを始められますか?」
-
IMPORTANT MUST ATTENTION 変更を加える前に、既存パターンを 3 件以上検索し、コードを読んでください。
graph.dbが存在する場合はグラフトレースを実行してください。 -
IMPORTANT MUST ATTENTION 計画のフロントマターに
story_pointsとcomplexityを含めてください。SP が 8 を超える場合は分割してください。 -
IMPORTANT MUST ATTENTION
## Test Specificationsにフェーズごとの TC ID を含めてください。新しいタスクを作成する前にTaskListを呼び出してください。 -
IMPORTANT MUST ATTENTION まず複雑さを採点してください。スコアが 6 以上の場合は分解してください。各フェーズでは、計画 → 実装 → レビュー → 修正 → 検証の順に進めてください。省略しないでください。
-
IMPORTANT MUST ATTENTION データフロー全体を追跡し、クラッシュが発生した箇所ではなく、所有するレイヤーで修正してください。
?.を追加する前に、すべてのアクセス箇所を監査してください。