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

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

## 基本ルール

- 各フェーズの成果物をユーザーが承認してから次のフェーズに進むこと
- ユーザーが「今日はここまで」と言った場合，CLAUDE.md の進捗（最新 1 行）と `docs/PROGRESS.md`（追記）を更新して中断する
- ドキュメントの書式・命名は `.claude/rules/markdown-style.md`・`.claude/rules/docs-naming.md` に従って作成する（該当ファイル編集時に自動ロードされる）
- 成果物のドラフトを提示し，ユーザーの修正指示を反映してからファイルに書き出す
- フォルダは成果物を実際に書き出すときにのみ作成する．空のカテゴリフォルダを先回りで作らない

## 前提確認 (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）を適用する．

どちらにしますか？（後から `/set-mode <solo|team>` で切り替えられます）」

確定したら以下を行う:

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/skills/task-create/` / `task-start/` / `task-handoff/`（各ディレクトリごと削除）
   - `.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 ブロックは保持する）:
     ```json
     "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であれば {保存先} に保存して次のフェーズに進みます．」

### フォルダ作成の注意

成果物を書き出すフォルダのみ作成する．`.claude/rules/docs-naming.md` のカテゴリ表は「あり得るカテゴリの一覧」であり，立ち上げ時に全カテゴリのフォルダを 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-mode` が `team`）は，ここで 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_06`・`GUIDE_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} から再開します．」
