grill-me の対話や事前調査の結果を Plan ファイルに構造化して書き出し、続けて /check-plan で監査する(新しい技術要素が入るときは、先に /premise-check の実行を提案する)。「to-plan」「plan ファイルにして」と指示されたとき。
Resources
1Install
npx skillscat add kasiopeiya/claude-dev-template/to-plan Install via the SkillsCat registry.
To Plan
/grill-me の対話・Plan モードでの調査結果を、後続の /check-plan → /to-issues に渡せる Plan ファイル に構造化して書き出す。開発フロー(docs/guide/development-flow.md)の「Plan作成+チェック」工程に対応する。
出力先
~/.claude/plans/<slug>.md(Plan モードと同じホームディレクトリの .claude/plans/)。
- ディレクトリが無ければ作成する。
<slug>はトピックを表すケバブケース(例:oauth-session-revocation)。- 起点 Issue(フロー0)が会話に登場している場合は
<issue番号>-<slug>.md(例:42-oauth-session-revocation.md)。
貫く原則:コールドスタート再現性
Plan は 会話履歴を一切持たない別セッション が読む前提で書く。判断基準は一文:
この Plan だけ読んで、別セッションが意図と判断を再構築できるか。ただし陳腐化する実装詳細はコードに委ねる。
「詳細に書く」と「簡潔に保つ」は対立しない。増やすべき詳細と、増やすべきでない詳細を分ける:
- 書く(コールドスタートで再構築できないもの)
- 目的・WHY、判断の根拠
- 却下した代替案とその理由
- 前提・制約・スコープ境界(やらないこと)
- 受け入れ基準・完了の定義
- 書かない(陳腐化する・コードを読めば足りる)
- 具体的なファイルパス・行番号
- コードスニペット(決定を encode する例外を除く)
- レイヤーごとの実装手順の逐次列挙
プロセス
1. コンテキスト収集
会話に既にある情報(/grill-me の対話、Plan モードでの調査結果)を起点にする。引数で Issue 番号・URL・パスが渡された場合は gh issue view 等で本文・コメントを取得して読む。
着手前に必ず docs/design-hub.md・docs/policy-hub.md(CLAUDE.md 「必読ドキュメント」)に加え、要件定義 docs/requirements.md を参照する。設計書ハブが未作成の場合はその旨を Plan に記録する。requirements.md は要件の正典であり、設計判断はこれに照らして下す。ただし長大になるため全文は読まない——grep -n '^## ' docs/requirements.md で見出し位置を取り、「非機能要件」セクション(SLI・SLO を含む)だけを行範囲指定で読む。とくに SLO(レイテンシ・可用性・スループットの目標)は、設計の構造(同期/非同期・ネットワークホップ段数・冗長化)が目標を満たせるかを左右する制約なので必ず確認する。他の節は、Plan を書くのにその内容が要ると判明したときだけ、同じ手順でピンポイントに読む。
続けて、毎回必ず /past-decision-search を Skill ツールで実行し、Plan が触れる仕組み・パス・キーワードについて過去の決定を引く(AI は自分が知らない決定に気づけないので、要りそうかで省かない)。Plan の方針が引いた決定を覆すなら、その決定を出典付きで「grill-me で確定した仕様」の設計判断の根拠に書き、覆す理由を添える。
2. 影響範囲の調査(不足時のみ)
「設計書・要件定義への影響」または「タスク一覧」に、対象ファイルパス・関数名・クラス名などの具体名を1つも書けなければ、コードベースを探索して補う。確定仕様は用語集(docs/project-context/glossary.md)の語彙を使い、該当領域の ADR(docs/adr/)を尊重する。
3. Plan ファイルを書き出す
assets/plan-template.md の構成に従って Plan を書く。省略不可の必須セクション:
- 設計書・要件定義への影響: 更新が必要な設計書を列挙する。あわせて
docs/requirements.md(要件定義)の更新要否も判断する——通常は実装が要件に従うため変更不要だが、設計・実装で要件の誤り・不足・変更が判明した場合のみ更新対象に挙げる。更新不要なら必ず「更新不要・理由:〇〇」と明記する(空欄・省略禁止)。 - タスク一覧: チェックボックス形式。設計書・requirements.md の更新が必要な場合は更新タスクを必ず含める。
- 実装フロー(使用するSkill): 変更種別に対応する開発フローSkillを実行順に明記する。種別→Skillの対応は CLAUDE.md「開発フロー」の一覧が正典なので、そこを読んで決める。
/to-issuesが各Issueへ転記し、issue番号だけで開発フローを再現できるようにするための情報。変更がマクロ構造・境界(UI/DB/外部サービス/言語の差し替え可能性・依存方向・レイヤー構成)に影響する場合は、任意レビュー/arch-reviewを実装フローに加え、AI から実行を推奨する(常設ステップではないが、ここに記載すれば issue 追従で事後レビューが自動で走る)。決定した内容がdocs/policy/adr-policy.mdの判定で ADR 対象になるなら、/create-adrを実装フローに加える。
「grill-me で確定した仕様」には決定事項だけでなく、却下した代替案とその理由も書く(別セッションでの蒸し返し防止 / /to-issues がそのまま転記する)。grill-me 未実施なら「grill-me 未実施」と明記する。
/grill-me の Not-now リストが会話にあれば、スコープの「やらないこと」欄へ全行転記する(「何が起きたら決める必要が出るか」のトリガーも一緒に)。Not-now は却下ではなく先送りなので、転記しないとここで消える。
4. 新しい技術要素を照合し、check-plan を自動実行(シフトレフト)
Plan を書き出したら、/check-plan の前に、Plan の新しい技術要素を照合する。/check-plan は外部の制約を調べないので、公式に無い機能やツール名を前提にしたまま Issue 化へ進むのを、ここで止める。
新しい技術要素:Plan に名前が出た外部の製品・サービス・ツール(その機能名を含む)のうち、docs/adr/・docs/design/・各 package.json・README.md・.claude/ 配下(追跡されたファイル)のどこにも同じ名前が出てこないもの。
Plan から、外部の製品・サービス・ツールの名前を取り出す
名前ごとに、大文字小文字を区別しない文字列検索で照合する。どこにもヒットしなければ新しい
grep -rliF -- "<名前>" docs/adr docs/design $(git ls-files 'package.json' '*/package.json') $(git ls-files README.md .claude)README.md・.claude/はgit ls-filesで追跡されたものだけを渡す。端末ごとに作られる.claude/settings.local.jsonを混ぜると、同じ名前の判定が端末で変わるからである。新しい技術要素が無ければ、聞かずに
/check-plan <Planパス>を実行するあれば
AskUserQuestionで、新しい技術要素の名前を挙げて「外部の制約を調べる/premise-checkを実行するか」を聞く。選択肢は「実行する」「実行しない」の2つ- 「実行しない」:
/check-plan <Planパス>を実行する - 「実行する」:
/check-planを走らせず、/to-issuesへ進む案内も出さず、/premise-check <Planのパス>を打つよう案内して止まる。/premise-checkはモデルから呼べない。見直すなら Plan を直し、続けて/check-plan <Planパス>を打つことも添える
- 「実行しない」:
「実行する」で /check-plan を走らせないのは、/check-plan が合格すると /to-issues へ進む案内を必ず出し、調べる前に進む道が開くからである。
/check-plan は、必須セクションの充足とコードベース・ドキュメントの影響範囲の網羅を Issue 化前に監査し、不足があれば Plan を修正する。判定基準と報告フォーマットは check-plan スキルに委ねる。