diff --git a/.claude/rules/progress-log.md b/.claude/rules/progress-log.md index cd788a3..4e4fa8d 100644 --- a/.claude/rules/progress-log.md +++ b/.claude/rules/progress-log.md @@ -7,6 +7,7 @@ `CLAUDE.md` の「開発進捗」セクションと `docs/PROGRESS.md` を更新するときは本ルールに従うこと. > ⚠ **チーム開発モード(team)では本ルールは上書きされる**.team プロジェクトでは進捗を `CLAUDE.md`・`docs/PROGRESS.md` に書かず,GitHub Issues と git 履歴で追う([GUIDE_03](../../docs/01_GUIDE/GUIDE_03_チーム開発ルール.md)).以下は個人開発モード(solo)の既定ルールである.team モードでは Phase 4 の進捗更新を Issue コメント(`/task-handoff` 等)に置き換える. +> なお solo モードでも `/task-create` 等で Issue によるタスク管理を併用してよい.その場合も本ルールの進捗記録(`CLAUDE.md` 進捗欄+ `docs/PROGRESS.md`)は従来どおり行い,Issue はタスクの管理・引継ぎの補助として扱う. ## 二段構成 (Two-tier Structure) diff --git a/.claude/skills/set-mode/SKILL.md b/.claude/skills/set-mode/SKILL.md index 8db463a..c5306f0 100644 --- a/.claude/skills/set-mode/SKILL.md +++ b/.claude/skills/set-mode/SKILL.md @@ -20,13 +20,11 @@ ``` docs/01_GUIDE/GUIDE_03_チーム開発ルール.md -.claude/skills/task-create/SKILL.md -.claude/skills/task-start/SKILL.md -.claude/skills/task-start/reference.md -.claude/skills/task-handoff/SKILL.md .claude/hooks/check_sync.sh ``` +※ `task-create`・`task-start`(+ `reference.md`)・`task-handoff` の各 skill は**共通層**(solo でも Issue ベースのタスク管理に使う)であり,モード切替の対象外. + ## ステップ 1: 事前確認 (Pre-check) 1. `git status` でワーキングツリーがクリーンか確認する.未コミットの変更がある場合は「⚠ コミットされていない変更があります.先にコミットまたは stash してから再実行してください.」と伝えて中断する. @@ -62,10 +60,6 @@ # team 層ファイルをコピー(既存があっても最新版で上書き) for f in \ "docs/01_GUIDE/GUIDE_03_チーム開発ルール.md" \ - ".claude/skills/task-create/SKILL.md" \ - ".claude/skills/task-start/SKILL.md" \ - ".claude/skills/task-start/reference.md" \ - ".claude/skills/task-handoff/SKILL.md" \ ".claude/hooks/check_sync.sh" ; do mkdir -p "$(dirname "$f")" cp "$TEMP_DIR/$f" "$f" @@ -114,16 +108,11 @@ ```bash rm -f \ "docs/01_GUIDE/GUIDE_03_チーム開発ルール.md" \ - ".claude/skills/task-create/SKILL.md" \ - ".claude/skills/task-start/SKILL.md" \ - ".claude/skills/task-start/reference.md" \ - ".claude/skills/task-handoff/SKILL.md" \ ".claude/hooks/check_sync.sh" - -# 中身が無くなったスキルディレクトリを取り除く -rmdir ".claude/skills/task-create" ".claude/skills/task-start" ".claude/skills/task-handoff" 2>/dev/null || true ``` +※ `task-*` skill は共通層のため削除しない(solo でも Issue ベースのタスク管理に使用する).共通層化以前に solo 化して `task-*` が消えているプロジェクトには,`/sync-template` の同期で再配置される. + ### 3-B.2 settings.json から SessionStart(check_sync) を除去 `.claude/settings.json` を Read し,`check_sync.sh` を呼ぶ `SessionStart` フックのみを除去する.`PreToolUse`(`restrict_repo_access.py`)は保持する.他に個別追加された `SessionStart` フックがあれば残す(`check_sync.sh` の配線だけを外す).Edit 後に `git diff .claude/settings.json` で確認する. diff --git a/.claude/skills/setup/SKILL.md b/.claude/skills/setup/SKILL.md index 8e64530..b5d2dd0 100644 --- a/.claude/skills/setup/SKILL.md +++ b/.claude/skills/setup/SKILL.md @@ -46,8 +46,8 @@ 1. `.claude/project-mode` にモード(`solo` または `team` のいずれか 1 語)を書き出す. 2. **solo の場合**: チーム層ファイルが clone で配置されていれば削除し,solo プロジェクトを clean に保つ: - `docs/01_GUIDE/GUIDE_03_チーム開発ルール.md` - - `.claude/skills/task-create/` / `task-start/` / `task-handoff/`(各ディレクトリごと削除) - `.claude/hooks/check_sync.sh` + - ※ `task-create` / `task-start` / `task-handoff` の各 skill は共通層(solo でも Issue ベースのタスク管理に使える)のため削除しない. - ※ `.claude/settings.json` はそのまま(solo でも `restrict_repo_access.py` を使う).SessionStart(check_sync) の配線は追加しない. 3. **team の場合**: 上記チーム層ファイルを残す.加えて: - `.claude/settings.json` に SessionStart フックを追記して `check_sync.sh` を配線する(既存の PreToolUse ブロックは保持する): diff --git a/.claude/skills/sync-template/SKILL.md b/.claude/skills/sync-template/SKILL.md index 069f775..dd5fef0 100644 --- a/.claude/skills/sync-template/SKILL.md +++ b/.claude/skills/sync-template/SKILL.md @@ -43,12 +43,10 @@ | ファイル | レイヤ | | --- | --- | | `docs/01_GUIDE/GUIDE_03_チーム開発ルール.md` | team | -| `.claude/skills/task-create/SKILL.md` | team | -| `.claude/skills/task-start/SKILL.md` | team | -| `.claude/skills/task-start/reference.md` | team | -| `.claude/skills/task-handoff/SKILL.md` | team | | `.claude/hooks/check_sync.sh` | team | +※ `task-create`・`task-start`(+ `reference.md`)・`task-handoff` の各 skill は**共通層**(solo でも Issue ベースのタスク管理に使う)であり,モードに関わらず通常どおり同期する. + 判定はプロジェクトの `.claude/project-mode`(`solo` または `team`.`/setup` が作成)で行う: - **`team`**: チーム層ファイルを通常どおり同期(A/M/D すべて反映). @@ -160,10 +158,6 @@ SKIP_FILES=("README.md") TEAM_LAYER_FILES=( "docs/01_GUIDE/GUIDE_03_チーム開発ルール.md" - ".claude/skills/task-create/SKILL.md" - ".claude/skills/task-start/SKILL.md" - ".claude/skills/task-start/reference.md" - ".claude/skills/task-handoff/SKILL.md" ".claude/hooks/check_sync.sh" ) @@ -400,7 +394,7 @@ - コード修正はユーザーの確認なしに実行しない - マージ必須ファイル(`.gitignore`, `CLAUDE.md`, `docs/PROGRESS.md`, `.gitattributes`, `.claude/settings.json`)は必ずステップ 5.4 の手順でマージする.盲目的な `cp` で上書きしない(フレームワーク固有の除外ルールやプロジェクト固有セクションが失われる) - 同期対象外ファイル(`README.md`)はテンプレート紹介用のためプロジェクトには反映しない.テンプレート側で追加・変更・削除があってもプロジェクトの該当ファイルは触らない -- チーム層ファイル(`GUIDE_03`/`task-*`/`check_sync.sh`)は `.claude/project-mode` が `team` のプロジェクトにのみ同期する.`solo`(または未設定)のプロジェクトには配置・更新・削除いずれもしない.`/sync-template` は「版の追従」のみを行い,**モードの切り替えはしない**.solo↔team の切替は `/set-mode ` を使う(team 層ファイルの配置/削除・`settings.json` 配線・`CLAUDE.md` の team 化/solo 化・`project-mode` 更新を一括で行う).`.claude/project-mode` を手で書き換えるだけでは切り替わらない +- チーム層ファイル(`GUIDE_03`/`check_sync.sh`)は `.claude/project-mode` が `team` のプロジェクトにのみ同期する.`task-*` skill は共通層のためモードに関わらず同期する.`solo`(または未設定)のプロジェクトには配置・更新・削除いずれもしない.`/sync-template` は「版の追従」のみを行い,**モードの切り替えはしない**.solo↔team の切替は `/set-mode ` を使う(team 層ファイルの配置/削除・`settings.json` 配線・`CLAUDE.md` の team 化/solo 化・`project-mode` 更新を一括で行う).`.claude/project-mode` を手で書き換えるだけでは切り替わらない - `.claude/settings.json` はマージ必須ファイル.team の SessionStart(check_sync) 配線を保持したままテンプレートの hook 変更を統合する.盲目的な `cp` で上書きしない - 通常コピー対象でもプロジェクト固有の変更が上書きされうる場合は,`git diff` で確認してユーザーに報告する - テンプレートが管理するのは `.claude/` 配下のうち `agents/`,`skills/`,`rules/`,`hooks/`,`settings.json`,`template-sync-sha` のみ.`.claude/plans/` や `.claude/commit-context.md` 等のプロジェクト固有ファイルはテンプレートに含まれないため同期対象外 diff --git a/.claude/skills/task-create/SKILL.md b/.claude/skills/task-create/SKILL.md index 09dafa1..60363a7 100644 --- a/.claude/skills/task-create/SKILL.md +++ b/.claude/skills/task-create/SKILL.md @@ -1,14 +1,16 @@ --- name: task-create model: inherit -description: "GUIDE_03 に従い,Issue を作成しボードに追加する(着手はしない).タスクの事前計画用." +description: "Issue を作成しボードに追加する(着手はしない).タスクの事前計画用.solo / team 両モードで使用できる." argument-hint: "<タスクの説明>" --- あなたはタスク計画担当です. -GUIDE_03(チーム開発ルール)と `.claude/skills/task-start/reference.md`(Issues・Projects の gh 操作リファレンス)に従い,新しいタスクの Issue を作成してボードに並べてください. +`.claude/skills/task-start/reference.md`(Issues・Projects の gh 操作リファレンス)に従い,新しいタスクの Issue を作成してボードに並べてください. -本コマンドは**タスクを事前に定義する**ためのものです.着手は別途 `/task-start ` で行います(または手動で).Issue 無しで進める作業はこのコマンドを使う必要はありません(GUIDE_03). +本スキルは **solo / team 両モードで使用できる**.team モードでは GUIDE_03(チーム開発ルール)のタスク管理方針にも従うこと.solo モードでは GUIDE_03 は存在しないため,本スキルと reference.md の記述を基準とする. + +本コマンドは**タスクを事前に定義する**ためのものです.着手は別途 `/task-start ` で行います(または手動で).Issue はどの段階でも必須ではなく,Issue 無しで進める作業はこのコマンドを使う必要はありません. ## 前提確認 (Pre-check) @@ -17,14 +19,14 @@ ## ステップ 1: Project の特定 (Project Lookup) 1. リポジトリ所有者を取得する(`gh repo view --json owner --jq .owner.login`). -2. Project を特定する(`gh project list --owner `).複数ある場合はユーザーに確認する.見つからない場合はその旨を伝え,ステップ 3(ボード追加)は飛ばして進める(管理者の初期設定が未完了.GUIDE_03). +2. Project を特定する(`gh project list --owner `).複数ある場合はユーザーに確認する.見つからない場合はその旨を伝え,ステップ 3(ボード追加)は飛ばして進める(Project ボードは既定では未使用のため,無くても問題ない). ## ステップ 2: Issue 作成 (Create Issue) $ARGUMENTS の説明から Issue 本文を組み立てる. - **やること**は必ず書く. -- **完了条件(受け入れ基準)**は非自明な場合のみ書く(GUIDE_03). +- **完了条件(受け入れ基準)**は非自明な場合のみ書く. - 担当者は**アサインしない**(誰が拾うかは着手時に決まる). `gh issue create --title "<タイトル>" --body "<本文>"` で作成する. @@ -42,7 +44,7 @@ 以下を提示する: - **Issue**: 番号・タイトル・URL -- **ボード**: Todo +- **ボード**: Todo(Project が無い場合は「未追加(ボード未使用)」と表記する) - **次の手順**: 「このタスクに着手する場合は `/task-start ` を実行してください.」 ## 注意事項 (Notes) diff --git a/.claude/skills/task-handoff/SKILL.md b/.claude/skills/task-handoff/SKILL.md index 31d355a..bd6171a 100644 --- a/.claude/skills/task-handoff/SKILL.md +++ b/.claude/skills/task-handoff/SKILL.md @@ -1,13 +1,16 @@ --- name: task-handoff model: inherit -description: "現在 In Progress の Issue に進捗メモ(完了済み・残タスク・確定事項・git 状態・再開方法)をコメントで投稿する.セッション中断・引継ぎ用." +description: "現在着手中の Issue に進捗メモ(完了済み・残タスク・確定事項・git 状態・再開方法)をコメントで投稿する.セッション中断・引継ぎ用.solo / team 両モードで使用できる." argument-hint: "<追加メモ(省略可)>" --- -あなたは作業引継ぎ担当です.現在 **In Progress** の Issue に,次セッション・次メンバーが再開できるだけの情報を進捗メモとして投稿します. +あなたは作業引継ぎ担当です.現在**着手中**の Issue に,次セッション・次メンバーが再開できるだけの情報を進捗メモとして投稿します. -GUIDE_03(チーム開発ルール)の「進捗は Issues / Projects と git 履歴で追う」方針に沿い,引継ぎ情報を Issue コメントに集約します(`CLAUDE.md` に進捗は書かない). +本スキルは **solo / team 両モードで使用できる**.引継ぎ情報は Issue コメントに集約する. + +- **team モード**: GUIDE_03(チーム開発ルール)の「進捗は Issues / Projects と git 履歴で追う」方針に沿う(`CLAUDE.md` に進捗は書かない). +- **solo モード**: 通常の進捗記録(`.claude/rules/progress-log.md`.`CLAUDE.md` 進捗欄+ `docs/PROGRESS.md`)は従来どおり運用し,本スキルはタスク単位の引継ぎメモを Issue に残す補助として使う. ## 前提確認 (Pre-check) @@ -15,10 +18,12 @@ ## ステップ 1: 対象 Issue の特定 (Identify Issue) -1. Project を特定する(`gh project list --owner `).見つからない場合は「Project 未設定のため進捗メモを投稿できません.管理者の初期設定が必要です(GUIDE_03).」と伝えて終了する. -2. ボードから Status が `In Progress` の Issue を抽出する(`gh project item-list --owner --format json`). +1. Project を特定する(`gh project list --owner `).Project ボードは既定では未使用のため,見つからなくても問題ない. +2. 着手中の Issue を抽出する: + - **Project がある場合**: ボードから Status が `In Progress` の Issue を抽出する(`gh project item-list --owner --format json`). + - **Project が無い場合**: `gh issue list --assignee @me --state open` で自分にアサインされた open Issue を抽出する. 3. 件数で挙動を変える: - - **0 件**: 「In Progress の Issue がありません.まず `/task-start ` で着手してから本コマンドを使ってください.」と伝えて終了. + - **0 件**: 「着手中の Issue がありません.まず `/task-start ` で着手してから本コマンドを使ってください.」と伝えて終了. - **1 件**: そのまま対象とする. - **複数件**: 各 Issue 番号・タイトルを示し,「どれを対象にしますか?」とユーザーに確認する. @@ -103,6 +108,6 @@ ## 注意事項 (Notes) -- 本コマンドは Issue を **Done に動かさない**.In Progress のまま残す(作業継続前提).完了させたい場合は別途 `/commit merge` で PR をマージ → `Closes #<番号>` で自動クローズ. +- 本コマンドは Issue を**クローズしない・Done に動かさない**.着手中のまま残す(作業継続前提).完了させたい場合は別途 `/commit merge` で PR をマージ → `Closes #<番号>` で自動クローズ. - 進捗メモは**コメント**として投稿する.Issue 本文は書き換えない. - Projects 操作には `project` スコープが必要.スコープエラーが出たら `gh auth refresh -s project` を実行する(`.claude/skills/task-start/reference.md`「必要なスコープ」). diff --git a/.claude/skills/task-start/SKILL.md b/.claude/skills/task-start/SKILL.md index 7aa0acd..31f1399 100644 --- a/.claude/skills/task-start/SKILL.md +++ b/.claude/skills/task-start/SKILL.md @@ -1,28 +1,30 @@ --- name: task-start model: inherit -description: "GUIDE_03 に従い,既存 Issue を拾って作業を開始する(アサイン・ボード In Progress・作業ブランチ作成)." +description: "既存 Issue を拾って作業を開始する(アサイン・ボード In Progress・作業ブランチ作成).solo / team 両モードで使用できる." argument-hint: "" --- あなたはタスク着手の準備担当です. -GUIDE_03(チーム開発ルール)と本スキルの `reference.md`(Issues・Projects の gh 操作リファレンス)に従い,**既存 Issue を拾って**作業に取り掛かるための準備を整えてください. +本スキルの `reference.md`(Issues・Projects の gh 操作リファレンス)に従い,**既存 Issue を拾って**作業に取り掛かるための準備を整えてください. -本コマンドは既存 Issue から作業を始めるためのものです.新規 Issue を立てる場合は `/task-create` を使ってください.Issue 無しで小さい変更や試験的作業を進める場合はこのコマンドは不要です(GUIDE_03). +本スキルは **solo / team 両モードで使用できる**.team モードでは GUIDE_03(チーム開発ルール)にも従うこと.solo モードでは GUIDE_03 は存在しないため,本スキルと reference.md の記述を基準とする. + +本コマンドは既存 Issue から作業を始めるためのものです.新規 Issue を立てる場合は `/task-create` を使ってください.Issue 無しで小さい変更や試験的作業を進める場合はこのコマンドは不要です. ## 前提確認 (Pre-check) 1. 作業ツリーの状態を確認する(`git status`).未コミットの変更がある場合は,その旨をユーザーに伝え,先に片付けるか続行するか確認する. -2. 現在のブランチを確認する(`git branch --show-current`).`main` 以外にいる場合は,そのブランチに未マージのコミットが残っていないか確認する(`git log main..HEAD --oneline`).残っていれば「前の作業が未マージです.先にマージしてから着手するのが推奨です.続行しますか?」とユーザーに確認する(直列運用.GUIDE_03). +2. 現在のブランチを確認する(`git branch --show-current`).`main` 以外にいる場合は,そのブランチに未マージのコミットが残っていないか確認する(`git log main..HEAD --oneline`).残っていれば「前の作業が未マージです.先にマージしてから着手するのが推奨です.続行しますか?」とユーザーに確認する(直列運用の原則). 3. $ARGUMENTS を確認する.Issue 番号(数値または `#数値`)が指定されていなければ「対象の Issue 番号を指定してください.新規 Issue を立てる場合は `/task-create` を使います」と伝えて終了する. ## ステップ 1: 直列運用チェック (Serial Check) -GUIDE_03「作業の直列化」より,同時に進行中のコード作業は原則 1 件とする. +同時に進行中のコード作業は原則 1 件とする(team モードの根拠は GUIDE_03「作業の直列化」.solo でも仕掛かりを増やさないため同じ原則を適用する). 1. リポジトリ所有者を取得する(`gh repo view --json owner --jq .owner.login`). -2. Project を特定する(`gh project list --owner `).複数ある場合はユーザーに確認する.見つからない場合はその旨を伝え,ステップ 3(ボード操作)は飛ばして進める(管理者の初期設定が未完了.GUIDE_03). -3. ボードのアイテムで Status が `In Progress` のものを数える(`gh project item-list --owner --format json`).対象 Issue 以外で 1 件以上ある場合は,該当タスクを示し「直列運用では進行中の作業は原則 1 件です.続行しますか?」とユーザーに確認する(禁止ではなく原則.GUIDE_03). +2. Project を特定する(`gh project list --owner `).複数ある場合はユーザーに確認する.見つからない場合はその旨を伝える(Project ボードは既定では未使用のため,無くても問題ない).この場合,進行中チェックはボードの代わりに `gh issue list --assignee @me --state open` で行い,ステップ 3(ボード操作)は飛ばして進める. +3. 進行中の作業を数える(Project がある場合は `gh project item-list --owner --format json` で Status が `In Progress` のもの,無い場合は上記のアサイン済み open Issue).対象 Issue 以外で 1 件以上ある場合は,該当タスクを示し「直列運用では進行中の作業は原則 1 件です.続行しますか?」とユーザーに確認する(禁止ではなく原則). ## ステップ 2: 対象 Issue の確認・アサイン (Verify & Assign) @@ -42,7 +44,7 @@ Git 規約 `.claude/rules/git-conventions.md` に従う. 1. `git checkout main && git pull origin main` で `main` を最新化する. -2. git-conventions ルールの基本形式(`[プレフィックス][概要]`)でブランチ名を決める.プレフィックスはタスク種別(`feature` / `fix` / `refactor` / `docs` / `chore`),概要は内容を表す英単語 2〜4 語(kebab-case)とする.ブランチ名に Issue 番号は含めない(GUIDE_03). +2. git-conventions ルールの基本形式(`[プレフィックス][概要]`)でブランチ名を決める.プレフィックスはタスク種別(`feature` / `fix` / `refactor` / `docs` / `chore`),概要は内容を表す英単語 2〜4 語(kebab-case)とする.ブランチ名に Issue 番号は含めない(紐付けは PR 本文の `Closes #<番号>` で行う). 3. `git checkout -b <ブランチ名>` で作業ブランチを作成する. ## ステップ 5: 完了サマリー (Summary) @@ -50,12 +52,12 @@ 以下を提示する: - **Issue**: 番号・タイトル・URL -- **ボード**: In Progress +- **ボード**: In Progress(Project が無い場合は「アサインのみ(ボード未使用)」と表記する) - **ブランチ**: 作成したブランチ名 - **次の手順**: 「`/implement` に対象 Issue の内容を渡して実装を開始してください(`gh issue view ` で取得できます).」 ## 注意事項 (Notes) -- branch↔Issue の紐付けは,後の PR 本文の `Closes #` で行う(GUIDE_03).ブランチ名には番号を入れない. +- branch↔Issue の紐付けは,後の PR 本文の `Closes #` で行う.ブランチ名には番号を入れない. - Projects 操作には `project` スコープが必要.スコープエラーが出たら `gh auth refresh -s project` を実行する(`reference.md`「必要なスコープ」). - 新規 Issue を立てる場合は `/task-create`,Issue 無しで進める場合は本コマンドを使わず直接 `/implement` 等へ. diff --git a/.claude/skills/task-start/reference.md b/.claude/skills/task-start/reference.md index 895e526..b183991 100644 --- a/.claude/skills/task-start/reference.md +++ b/.claude/skills/task-start/reference.md @@ -1,7 +1,7 @@ # Issues・Projects gh 操作リファレンス (gh Operations Reference) -`/task-create`・`/task-start`・`/task-handoff` の Issue・ボード操作で参照する詳細手順. -運用方針(Issue = 作業単位,直列運用,ボードの列等)は [GUIDE_03_チーム開発ルール](../../../docs/01_GUIDE/GUIDE_03_チーム開発ルール.md) に従う. +`/task-create`・`/task-start`・`/task-handoff` の Issue・ボード操作で参照する詳細手順(solo / team 両モード共通). +team モードでの運用方針(Issue = 作業単位,直列運用,ボードの列等)は [GUIDE_03_チーム開発ルール](../../../docs/01_GUIDE/GUIDE_03_チーム開発ルール.md) に従う.solo モードでは GUIDE_03 は配置されないため,本ファイルと各 skill の記述を基準とする. - 操作は GitHub CLI(`gh`)に統一する.Web UI でも同じことはできるが,再現性とドキュメント化のため `gh` を基準とする. - AI に Issue を読ませる場合は `gh issue view ` を使う(構造化出力は `--json title,body,assignees,labels`). @@ -32,7 +32,7 @@ ## Projects の操作 (Projects) -> ⚠ **Projects(ボード)は既定では未使用**(GUIDE_03).以下は将来導入時の参考として残す. +> ⚠ **Projects(ボード)は既定では未使用**.以下は将来導入時の参考として残す. ※ `gh project` 系は `project` スコープが必要(「必要なスコープ」参照).`` はリポジトリ所有者(個人またはオーガニゼーション). diff --git a/CLAUDE.md b/CLAUDE.md index 37ab4a0..2712a7a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,6 +20,12 @@ - `/auto-refactor`(リファクタ/ドキュメント整理ループ)→ `refactor/` 専用ブランチ - `/auto-audit`(バグ/脆弱性の巡回監査ループ)→ `fix/` 専用ブランチ +### タスク管理(任意) + +- やるべきことを GitHub Issues で管理してよい(solo / team 共通).`/task-create`(起票・事前計画)→ `/task-start `(着手準備)→ `/task-handoff`(中断時の引継ぎメモ投稿)を使う +- Issue は必須ではない.小さい変更や試験的作業は Issue 無しで進めてよい +- solo モードでは進捗記録(`.claude/rules/progress-log.md`)は従来どおり運用し,Issue はタスクの管理・引継ぎの補助として使う + ### エージェントチーム(GUIDE_02 準拠) - 実装は `/implement <タスク>` で開始する(コーディング → テスト → リファクタリング → ドキュメント更新) diff --git a/README.md b/README.md index 214daf9..e2ff081 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,10 @@ **個人開発(solo)とチーム開発(team)の 2 モード**を 1 つのテンプレートで提供する.`/setup` の冒頭でモードを選ぶだけで,チーム開発向けのルール・コマンドが有効化される. -- **solo**: 1 人で開発.進捗は `CLAUDE.md` の進捗欄+ `docs/PROGRESS.md` で追う.チーム層ファイルは配置されない. -- **team**: 複数人が Claude Code で開発.進捗・タスクは GitHub Issues と git 履歴で追い,直列運用・条件付きセルフマージ等のチームルール(GUIDE_03)と `/task-create`・`/task-start`・`/task-handoff` コマンド,SessionStart の同期チェック(`check_sync.sh`)が有効になる. +- **solo**: 1 人で開発.進捗は `CLAUDE.md` の進捗欄+ `docs/PROGRESS.md` で追う.チーム層ファイル(GUIDE_03・`check_sync.sh`)は配置されない. +- **team**: 複数人が Claude Code で開発.進捗・タスクは GitHub Issues と git 履歴で追い,直列運用・条件付きセルフマージ等のチームルール(GUIDE_03)と SessionStart の同期チェック(`check_sync.sh`)が有効になる. + +※ Issue ベースのタスク管理コマンド(`/task-create`・`/task-start`・`/task-handoff`)は**両モード共通**で使用できる. ## Quick Start @@ -32,7 +34,7 @@ その後 Claude Code を起動し,`/setup ` でプロジェクト立ち上げを開始する.`/setup` の冒頭で **solo / team のモードを選択**する(選択結果は `.claude/project-mode` に記録され,以降の `/sync-template` がモードに応じてチーム層ファイルを出し分ける).以降,テンプレートの更新を取り込むときは `/sync-template` を実行する. -> 途中でモードを切り替える場合は **`/set-mode `** を実行する.team 層ファイル(GUIDE_03・`task-*`・`check_sync.sh`)の配置/削除,`settings.json` の hook 配線,`CLAUDE.md` の team 化/solo 化,`.claude/project-mode` の更新を一括で整合させる(`.claude/project-mode` を手で書き換えるだけでは切り替わらない). +> 途中でモードを切り替える場合は **`/set-mode `** を実行する.team 層ファイル(GUIDE_03・`check_sync.sh`)の配置/削除,`settings.json` の hook 配線,`CLAUDE.md` の team 化/solo 化,`.claude/project-mode` の更新を一括で整合させる(`.claude/project-mode` を手で書き換えるだけでは切り替わらない). ## 主なスラッシュコマンド @@ -41,7 +43,7 @@ - `/commit` / `/commit push` — コミット作成(`push` でプッシュと PR 作成まで) - `/sync-template` — テンプレートの最新変更を取り込む - `/set-mode ` — 開発モードを切り替える(team 層ファイル・settings.json・CLAUDE.md・project-mode を一括整合) -- `/task-create` / `/task-start` / `/task-handoff` — **team モードのみ**.Issue ベースのタスク作成・着手・引継ぎ +- `/task-create` / `/task-start` / `/task-handoff` — Issue ベースのタスク作成・着手・引継ぎ(solo / team 両モード共通) ## ドキュメント @@ -51,4 +53,4 @@ - `GUIDE_02_エージェント運用ルール.md` — `/implement` のエージェントチーム運用 - `GUIDE_03_チーム開発ルール.md` — **team モードのみ**.直列運用・条件付きセルフマージ・共有設定の扱い -Git 規約(ブランチ命名・コミット書式)・ドキュメントの書式・ファイル命名・進捗記録のルールは `.claude/rules/`(`git-conventions` / `markdown-style` / `docs-naming` / `progress-log`)にあり,Claude へ自動ロードされる(git-conventions は常時,他は該当ファイル編集時).push・PR・マージの詳細手順は `.claude/skills/commit/reference.md`,Issues・Projects の `gh` 操作リファレンスは `.claude/skills/task-start/reference.md`(**team モードのみ**)にある. +Git 規約(ブランチ命名・コミット書式)・ドキュメントの書式・ファイル命名・進捗記録のルールは `.claude/rules/`(`git-conventions` / `markdown-style` / `docs-naming` / `progress-log`)にあり,Claude へ自動ロードされる(git-conventions は常時,他は該当ファイル編集時).push・PR・マージの詳細手順は `.claude/skills/commit/reference.md`,Issues・Projects の `gh` 操作リファレンスは `.claude/skills/task-start/reference.md` にある. diff --git "a/docs/01_GUIDE/GUIDE_01_\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\347\253\213\343\201\241\344\270\212\343\201\222\343\203\225\343\203\255\343\203\274.md" "b/docs/01_GUIDE/GUIDE_01_\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\347\253\213\343\201\241\344\270\212\343\201\222\343\203\225\343\203\255\343\203\274.md" index f277852..c145339 100644 --- "a/docs/01_GUIDE/GUIDE_01_\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\347\253\213\343\201\241\344\270\212\343\201\222\343\203\225\343\203\255\343\203\274.md" +++ "b/docs/01_GUIDE/GUIDE_01_\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\347\253\213\343\201\241\344\270\212\343\201\222\343\203\225\343\203\255\343\203\274.md" @@ -23,8 +23,8 @@ | レイヤ | 対象 | 存在するモード | | --- | --- | --- | -| 共通層 | `GUIDE_01`・`GUIDE_02`,`.claude/rules/` のすべて,`.claude/agents/`,skills(`commit`・`implement`・`setup`・`sync-template`・`set-mode`・`auto-refactor`・`auto-audit`) | solo・team 両方 | -| team 層 | `GUIDE_03`,skills(`task-create`・`task-start`(+ `reference.md`)・`task-handoff`),`.claude/hooks/check_sync.sh`,`settings.json` の SessionStart 配線 | team のみ | +| 共通層 | `GUIDE_01`・`GUIDE_02`,`.claude/rules/` のすべて,`.claude/agents/`,skills(`commit`・`implement`・`setup`・`sync-template`・`set-mode`・`auto-refactor`・`auto-audit`・`task-create`・`task-start`(+ `reference.md`)・`task-handoff`) | solo・team 両方 | +| team 層 | `GUIDE_03`,`.claude/hooks/check_sync.sh`,`settings.json` の SessionStart 配線 | team のみ | - `.claude/rules/` はすべて共通層だが,進捗記録ルール(`progress-log`)だけは team モードで運用上**上書き**される(進捗は `CLAUDE.md`/`docs/PROGRESS.md` ではなく GitHub Issues と git 履歴で追う.GUIDE_03). - team 層ファイルの配置・削除は `/set-mode` が一括で行い,`/sync-template` は `.claude/project-mode` を見て team 層の同期可否を判定する.team 層ファイルの正確なリストは `/set-mode`・`/sync-template` の定義に持たせており,増減時は両者を一致させること. diff --git "a/docs/01_GUIDE/GUIDE_03_\343\203\201\343\203\274\343\203\240\351\226\213\347\231\272\343\203\253\343\203\274\343\203\253.md" "b/docs/01_GUIDE/GUIDE_03_\343\203\201\343\203\274\343\203\240\351\226\213\347\231\272\343\203\253\343\203\274\343\203\253.md" index 186413f..e569e72 100644 --- "a/docs/01_GUIDE/GUIDE_03_\343\203\201\343\203\274\343\203\240\351\226\213\347\231\272\343\203\253\343\203\274\343\203\253.md" +++ "b/docs/01_GUIDE/GUIDE_03_\343\203\201\343\203\274\343\203\240\351\226\213\347\231\272\343\203\253\343\203\274\343\203\253.md" @@ -2,7 +2,7 @@ チーム全員が Claude Code を用い,人間が直接コードを書くことはほぼない前提で,並行開発を破綻させずに進めるための協調ルールを定義する. -> 本ガイドは**チーム開発モード**(`/setup` で team を選択したプロジェクト)でのみ有効.個人開発モード(solo)のプロジェクトには本ファイル・`task-*` コマンドは配置されない. +> 本ガイドは**チーム開発モード**(`/setup` で team を選択したプロジェクト)でのみ有効.個人開発モード(solo)のプロジェクトには本ファイルは配置されない.なお `/task-create`・`/task-start`・`/task-handoff` は共通層の skill であり,solo でも Issue ベースのタスク管理に使用できる(その場合,本ガイドのチーム協調ルールは適用されない). Git の規約は `.claude/rules/git-conventions.md`(push・PR・マージ手順は `.claude/skills/commit/reference.md`),1 タスクの実装パイプラインは [GUIDE_02](GUIDE_02_エージェント運用ルール.md) に従う.本ガイドはそれらの上に立つ「複数人が同時に動くときの調整」を扱う.