Newer
Older
programming-template / .claude / commands / setup.md

name: setup model: opus description: "GUIDE_01 に従い,プロジェクトの立ち上げを対話的に進める.各フェーズでユーザーの確認を挟む." argument-hint: "<プロジェクト名>"

あなたはプロジェクト立ち上げのファシリテーターです. GUIDE_01(プロジェクト立ち上げフロー)を読み,各フェーズのルールを理解した上で以下の手順を実行してください.

基本ルール

  • 各フェーズの成果物をユーザーが承認してから次のフェーズに進むこと
  • ユーザーが「今日はここまで」と言った場合,CLAUDE.md の進捗(最新 1 行)と docs/PROGRESS.md(追記)を更新して中断する
  • ドキュメントは GUIDE_02(ドキュメント作成ガイド)と GUIDE_03(ファイル命名規則)に従って作成する
  • 成果物のドラフトを提示し,ユーザーの修正指示を反映してからファイルに書き出す
  • フォルダは成果物を実際に書き出すときにのみ作成する.空のカテゴリフォルダを先回りで作らない

前提確認 (Pre-check)

  1. CLAUDE.md がテンプレート初期状態(タイトルが # プロジェクト名 のまま)か確認する
  2. 初期状態の場合(新規プロジェクト立ち上げ):
    • プロジェクト名を確定する(引数 $ARGUMENTS があればそれを使用,なければユーザーに確認)
    • プロジェクト概要(1〜2 行)をユーザーに確認する
    • CLAUDE.md の以下を書き換える:
      • 1 行目の # プロジェクト名# {確定したプロジェクト名}
      • 3 行目の <!-- プロジェクトの概要を 1〜2 行で記述する --> → 概要テキスト
  3. CLAUDE.md の「開発進捗」と docs/PROGRESS.md を確認し,どのフェーズから再開するか判断する
  4. 初回の場合はフェーズ 1 から開始する

開発モードの選択 (Development Mode)

新規立ち上げ時(Pre-check で初期状態だった場合),フェーズ 1 に入る前に開発モードを 1 度だけ確定する.既に .claude/project-mode がある場合(再開時)はこのステップを飛ばす.

ユーザーに次を確認する:

このプロジェクトの開発モードを選んでください.

  • solo(個人開発): 1 人で開発する.進捗は CLAUDE.md の進捗欄+ docs/PROGRESS.md で追う.
  • team(チーム開発): 複数人が Claude Code で開発する.進捗・タスクは GitHub Issues と git 履歴で追い,直列運用・条件付きセルフマージ等のチームルール(GUIDE_06)を適用する.

どちらにしますか?(後から変更もできます)」

確定したら以下を行う:

  1. .claude/project-mode にモード(solo または team のいずれか 1 語)を書き出す.
  2. solo の場合: チーム層ファイルが clone で配置されていれば削除し,solo プロジェクトを clean に保つ:
    • docs/01_GUIDE/GUIDE_06_チーム開発ルール.md
    • docs/01_GUIDE/GUIDE_07_Issues・Projects運用ガイド.md
    • .claude/commands/task-create.md / task-start.md / task-handoff.md
    • .claude/hooks/check_sync.sh
    • .claude/settings.json はそのまま(solo でも restrict_repo_access.py を使う).SessionStart(check_sync) の配線は追加しない.
  3. team の場合: 上記チーム層ファイルを残す.加えて:
    • .claude/settings.json に SessionStart フックを追記して check_sync.sh を配線する(既存の PreToolUse ブロックは保持する):
      "SessionStart": [
        {
          "hooks": [
            { "type": "command", "command": "bash .claude/hooks/check_sync.sh", "timeout": 10 }
          ]
        }
      ]
      
    • .gitignore.claude/settings.local.json が無ければ追記する(個人設定用.GUIDE_06).
    • CLAUDE.md のチーム化は Phase 7 で行う(この時点ではまだ立ち上げ中で Issue/repo が無いため,進捗欄は setup 再開用にそのまま使う).

進捗記録(立ち上げ中)

立ち上げ中は repo/Issue がまだ無いため,モードに関わらず setup 再開のための進捗は CLAUDE.md の進捗欄(最新 1 行)+ docs/PROGRESS.md に記録する.team モードでの「進捗を Issue で追う」への切り替えは Phase 7(実装開始)以降に適用する.

フェーズ 1〜6: 各フェーズの実行

GUIDE_01 に定義された各フェーズを順番に実行する. 各フェーズで以下の手順を繰り返す:

  1. GUIDE_01 の該当フェーズを参照し,目的・成果物・役割分担を確認する
  2. ユーザーとの対話で情報を収集する
  3. 成果物のドラフトを作成し,ユーザーに提示する
  4. 承認を得てから GUIDE_01 に記載された保存先に書き出す

台詞テンプレート

フェーズ {N}({フェーズ名})のドラフトです.

{ドラフト内容}

修正点があれば指示してください.OKであれば {保存先} に保存して次のフェーズに進みます.」

フォルダ作成の注意

成果物を書き出すフォルダのみ作成する.GUIDE_03 のカテゴリ表は「あり得るカテゴリの一覧」であり,立ち上げ時に全カテゴリのフォルダを scaffold するものではない.GUIDE_01 の立ち上げフェーズで成果物が発生するのは 01_GUIDE / 02_ENV / 03_PLAN / 04_SPEC のみ.05_TECH/(技術設計)と 06_TEST/(テスト)は立ち上げ時には成果物が無いため,空フォルダを作らない(実装フェーズで必要になった時点で作成する).

フェーズ 3(環境構築)の注意

外部サービスの設定(アカウント作成,コンソール操作等)はユーザー自身が行う.手順書に記載するが,AI が実行しないこと.

フェーズ 7: 実装開始

  1. GUIDE_01 の「CLAUDE.md の管理」セクションに従い,CLAUDE.md を最終更新する
    • team モードの場合.claude/project-modeteam)は,ここで CLAUDE.md をチーム開発向けに変換する:
      • 「開発進捗」節を,進捗欄(最新 1 行)ではなく Issues ポインタに置き換える(例: 「進捗・タスクは GitHub Issues と git 履歴で追う(GUIDE_06).現在のタスクは gh issue list で確認する.CLAUDE.md には進捗を書かない.」).
      • 「必須ルール(コード実装時)」に 「チーム開発(GUIDE_06 準拠)」小節を追加する(直列運用・Issue ベースのタスク管理・/task-create/task-start/task-handoff の案内・条件付きセルフマージ・共有設定変更は専用 PR+他メンバー 1 名 Approve 必須).
      • 「Git 運用」小節に,セッション開始時の [sync-check] 警告を必ず認識する旨の 1 行を追加する.
      • 「ドキュメント」→「01_GUIDE」一覧に GUIDE_06GUIDE_07 の行を追加する.
    • solo モードの場合は従来どおり(進捗欄+ PROGRESS.md 運用).
  2. 作成した全ドキュメントの一覧を表示する
  3. 最初の実装ステップを確認する
  4. team モードの場合は,AI に実施できない「管理者の初期設定」(GUIDE_06「管理者の初期設定」)をユーザーに案内する:
    • GitHub リポジトリ作成・メンバー招待
    • Issue テンプレートの用意
    • CI 構築(未構築の間は GUIDE_06「CI 構築までの暫定ゲート」を適用)
    • 依存脆弱性対策が必要ならスタックに応じた .github/dependabot.yml を追加(エコシステムはプロジェクト固有のため setup では作らない)

全フェーズが完了しました.

作成したドキュメント: {ドキュメント一覧}

開発モード: {solo / team} CLAUDE.md を更新しました. 最初の実装ステップは {ステップ名} です./implement {タスク} で開始できます. {team の場合: 「チーム運用の管理者初期設定(GitHub repo・CI 等)は GUIDE_06 を参照してユーザー側で実施してください.」}」

中断時の処理

ユーザーが中断を希望した場合:

  1. 現在のフェーズと状態を CLAUDE.md の「開発進捗」(最新 1 行に上書き)と docs/PROGRESS.md(末尾に追記)に記録する
  2. 次回 /setup 実行時に続きから再開できるようにする

進捗を保存しました.

現在の状態: フェーズ {N}({フェーズ名})まで完了 次回 /setup を実行すると,フェーズ {N+1} から再開します.」