diff --git a/.claude/rules/git-conventions.md b/.claude/rules/git-conventions.md new file mode 100644 index 0000000..6375ae9 --- /dev/null +++ b/.claude/rules/git-conventions.md @@ -0,0 +1,67 @@ +# Git 運用ルール (Git Conventions) + +Git 操作(ブランチ作成・コミット・PR)を行うときは常に本ルールに従うこと. +push・PR 作成・マージ・クリーンアップの具体的な手順とトラブルシューティング(コンフリクト解消・誤コミット復旧)は `.claude/skills/commit/reference.md` を参照する. + +## 基本方針 (Basic Policy) + +チーム開発におけるコードの整合性を保ち,手戻りを防ぐために以下の運用フローを徹底する. + +- **メインブランチ (main)**: + - 本番環境または常に動作可能な状態を維持するブランチ. + - 直接のコミット(直プッシュ)は禁止する.必ずプルリクエスト(PR)経由でマージする. +- **作業ブランチ (Feature Branch)**: + - 機能追加やバグ修正ごとに `main` から派生させて作成する. + - 作業完了後,`main` へマージし,原則として削除する. +- **`.gitignore`**: + - リポジトリ作成時に必ず整備する. + - ビルド成果物,依存パッケージ(`node_modules/` 等),環境変数ファイル(`.env` 等)は必ず除外する. + - `git add .` を安全に使うための前提条件であるため,メンバー追加時にも確認する. + +## ブランチ命名規則 (Branch Naming) + +### プレフィックス (Prefix) + +作業の種類を一目で判別するために,以下のプレフィックスを使用する. + +| プレフィックス | 用途 | +| --- | --- | +| `feature/` | 新機能の実装,仕様変更 | +| `fix/` | バグ修正 | +| `refactor/` | コードの整理(挙動は変えない) | +| `docs/` | ドキュメントの追記・修正 | +| `chore/` | ビルド設定やツール導入など,雑多な作業 | + +### 書式 (Format) + +- 書式: `[プレフィックス][概要]` +- 区切り: スラッシュ `/` を使用する.概要内の単語区切りはハイフン `-` を使用する. +- 概要: 作業内容を端的に表す英単語 2〜4 語程度(小文字)とする. +- 例: + - `feature/player-jump` + - `fix/collision-bug` + - `docs/guide-update` + +## コミットメッセージ (Commit Messages) + +### 書式 + +- 書式: `[タグ] 内容` +- 言語: 日本語 +- 句読点: 末尾に句点は不要 + +### タグ一覧 + +| タグ | 用途 | +| --- | --- | +| `[add]` | ファイルや機能の追加 | +| `[update]` | 機能やデータの更新・修正 | +| `[fix]` | バグ修正 | +| `[remove]` | 削除 | +| `[clean]` | 整理,リファクタリング | + +## コミットの粒度 (Commit Granularity) + +- 作業単位(意味のあるまとまり)ごとにコミットする. +- 巨大なコミットは避け,レビューしやすい粒度を心がける. +- PR の `--title` はコミットメッセージと同じ書式(`[タグ] 内容`)とする. diff --git a/.claude/skills/auto-audit/SKILL.md b/.claude/skills/auto-audit/SKILL.md index 7ba7d21..6964142 100644 --- a/.claude/skills/auto-audit/SKILL.md +++ b/.claude/skills/auto-audit/SKILL.md @@ -7,7 +7,7 @@ あなたは**自律バグ/脆弱性 監査ループの制御層(オーケストレータ)**です. ユーザーが席を外している無人時間に,空いた稼働枠を「コードベース全体を巡回してバグ・脆弱性を発見し,安全に直せるものを直す」ことに充てるために起動されました. -GUIDE_04(Git 運用),GUIDE_05(エージェント運用)を読み,書式・規約・パイプラインのルールを理解した上で,以下の不変条件を厳守してループを回してください. +Git 規約(`.claude/rules/git-conventions.md`),GUIDE_05(エージェント運用)を読み,書式・規約・パイプラインのルールを理解した上で,以下の不変条件を厳守してループを回してください. このループが扱う作業は,入口の「発見の観点」が **2 種類**あるだけで,後段の「修正の機械」は共通です. @@ -81,7 +81,7 @@ - 残りのトークンにディレクトリ/モジュールの絞り込みがあればその範囲に限定する.無ければプロジェクト全体を対象候補とする. 2. **ブランチの準備**: - `git status` で作業ツリーがクリーンか確認する.未コミットの変更があれば,無人で巻き込むのは危険なので**停止して報告**する. - - 現在のブランチを確認する.`main` にいる場合は GUIDE_04 のブランチ命名規則に従い `fix/<英単語2〜4語(kebab-case)>` ブランチを作成して移動する(例: `fix/auto-audit`). + - 現在のブランチを確認する.`main` にいる場合は `.claude/rules/git-conventions.md` のブランチ命名規則に従い `fix/<英単語2〜4語(kebab-case)>` ブランチを作成して移動する(例: `fix/auto-audit`). - 既に `fix/` ブランチにいる場合はそれを使う.`feature/`・`refactor/` 等の他作業ブランチにいる場合は,混在を避けるため**停止して確認を求める**. 3. **検証スイートの特定**:構成ファイル(`package.json`,`pubspec.yaml`,`Cargo.toml`,`go.mod`,`pyproject.toml`/`pytest.ini` 等)から,以下を特定する. - **テスト実行コマンドとフレームワーク**(必須). @@ -189,7 +189,7 @@ #### コミット(`fix/` ブランチへ) - `git add` で当該変更をステージングする(`.env`・クレデンシャル・ビルド成果物は含めない). -- GUIDE_04 のコミット書式に従い,タグ **`[fix]`** でコミットする. +- `.claude/rules/git-conventions.md` のコミット書式に従い,タグ **`[fix]`** でコミットする. - バグ例: `[fix] 〇〇の境界値でインデックスが1つずれる不具合を修正` - 脆弱性例: `[fix] 〇〇クエリをパラメタ化して SQL インジェクションを防止` - **push・PR はしない.** diff --git a/.claude/skills/auto-refactor/SKILL.md b/.claude/skills/auto-refactor/SKILL.md index 36fcdb8..330ec39 100644 --- a/.claude/skills/auto-refactor/SKILL.md +++ b/.claude/skills/auto-refactor/SKILL.md @@ -7,7 +7,7 @@ あなたは**自律リファクタリング&ドキュメント同期ループの制御層(オーケストレータ)**です. ユーザーが席を外している無人時間に,空いた稼働枠を「コードの大規模リファクタリング」と「実装とドキュメントのズレ解消」に充てるために起動されました. -GUIDE_04(Git 運用),GUIDE_05(エージェント運用)と,ドキュメント書式・命名のルール(`.claude/rules/markdown-style.md`・`.claude/rules/docs-naming.md`)を読み,書式・規約・パイプラインのルールを理解した上で,以下の不変条件を厳守してループを回してください. +Git 規約(`.claude/rules/git-conventions.md`),GUIDE_05(エージェント運用)と,ドキュメント書式・命名のルール(`.claude/rules/markdown-style.md`・`.claude/rules/docs-naming.md`)を読み,書式・規約・パイプラインのルールを理解した上で,以下の不変条件を厳守してループを回してください. このループが扱う作業は **4 種類**ある.前の3種をすべて拾い尽くした後にだけ,最後の「テストリファクタ系」を行う(最も安全網が特殊で危険なため,最後に回す). @@ -81,7 +81,7 @@ 1. **対象範囲の確認**:`$ARGUMENTS` に絞り込み(ディレクトリ/モジュール)があればその範囲に限定する.無ければプロジェクト全体を対象候補とする. 2. **ブランチの準備**: - `git status` で作業ツリーがクリーンか確認する.未コミットの変更があれば,無人で巻き込むのは危険なので**停止して報告**する. - - 現在のブランチを確認する.`main` にいる場合は GUIDE_04 のブランチ命名規則に従い `refactor/<英単語2〜4語(kebab-case)>` ブランチを作成して移動する(例: `refactor/auto-cleanup`). + - 現在のブランチを確認する.`main` にいる場合は `.claude/rules/git-conventions.md` のブランチ命名規則に従い `refactor/<英単語2〜4語(kebab-case)>` ブランチを作成して移動する(例: `refactor/auto-cleanup`). - 既に `refactor/` ブランチにいる場合はそれを使う.`feature/` 等の他作業ブランチにいる場合は,混在を避けるため**停止して確認を求める**. 3. **検証スイートの特定**:プロジェクトの構成ファイル(`package.json`,`pubspec.yaml`,`Cargo.toml`,`go.mod`,`pyproject.toml`/`pytest.ini` 等)から,以下を特定する. - **テスト実行コマンドとフレームワーク**(必須). @@ -190,7 +190,7 @@ #### ステップ R6: 専用ブランチへコミット - `git add` で当該変更をステージングする(`.env`・クレデンシャル・ビルド成果物は含めない). -- GUIDE_04 のコミット書式に従い,タグ **`[clean]`** でコミットする(例: `[clean] 重複した入力バリデーションを共通関数に集約`). +- `.claude/rules/git-conventions.md` のコミット書式に従い,タグ **`[clean]`** でコミットする(例: `[clean] 重複した入力バリデーションを共通関数に集約`). - **push・PR はしない.** `done` として返す. --- @@ -208,7 +208,7 @@ - 実装を真として,該当ドキュメント(`02_ENV`/`04_SPEC`/`05_TECH` の適切な場所)に**事実を追記・補足**する.書式は `.claude/rules/markdown-style.md`,命名は `.claude/rules/docs-naming.md` に従う. - **既存の意図的な記述は消さない**.追記・補完にとどめ,全面書き換えはしない. -- コミット(GUIDE_04 準拠): +- コミット(`.claude/rules/git-conventions.md` 準拠): - 新規セクション/新規ドキュメントファイルの追加 → タグ **`[add]`**(例: `[add] 04_SPEC に〇〇APIの仕様を追記`). - 既存記述への事実追記・補足 → タグ **`[update]`**(例: `[update] 02_ENV に新規環境変数 FOO を追記`). - `done` として返す. @@ -235,7 +235,7 @@ - 該当ドキュメントを,**意味・決定事項・設計判断・失敗パターン・具体的制約を一切落とさずに**整形・簡潔化する.`.claude/rules/markdown-style.md`(書式)・`.claude/rules/docs-naming.md`(命名)に従う. - 迷ったら削らない(残す側に倒す).少しでも情報が落ちる懸念があれば DR3 に回す. -- GUIDE_04 のコミット書式に従い,タグ **`[clean]`** でコミットする(例: `[clean] 04_SPEC の冗長な説明を簡潔化`).`done` として返す. +- `.claude/rules/git-conventions.md` のコミット書式に従い,タグ **`[clean]`** でコミットする(例: `[clean] 04_SPEC の冗長な説明を簡潔化`).`done` として返す. #### ステップ DR3: 削除・大規模再編は提案のみ(自動で行わない) diff --git a/.claude/skills/commit/SKILL.md b/.claude/skills/commit/SKILL.md index 14e6d41..8c5967a 100644 --- a/.claude/skills/commit/SKILL.md +++ b/.claude/skills/commit/SKILL.md @@ -1,11 +1,12 @@ --- name: commit model: inherit -description: "GUIDE_04 に従い,変更内容の確認 → コミットを行う." +description: "Git 規約(.claude/rules/git-conventions.md)に従い,変更内容の確認 → コミットを行う." argument-hint: "<コミット内容の補足(省略可)>" --- -あなたは Git 運用の担当者です.GUIDE_04 に従い,現在の変更をコミットしてください. +あなたは Git 運用の担当者です.Git 規約 `.claude/rules/git-conventions.md` に従い,現在の変更をコミットしてください. +push・PR・マージの詳細手順とトラブル対応は本スキルの `reference.md`(`.claude/skills/commit/reference.md`)を参照する. 確認は不要.すべてのステップを一気に実行すること. ## ステップ 1: 状態確認 @@ -18,7 +19,7 @@ **main ブランチにいる場合は自動でブランチを作成する:** -1. 変更内容から GUIDE_04 のブランチ命名規則に従い,適切なプレフィックスと英単語 2〜4 語のブランチ名を決定する +1. 変更内容から `.claude/rules/git-conventions.md` のブランチ命名規則に従い,適切なプレフィックスと英単語 2〜4 語のブランチ名を決定する 2. `git checkout -b {ブランチ名}` で作業ブランチを作成する 3. 以降のステップを続行する @@ -38,7 +39,7 @@ ## ステップ 3: コミットメッセージの生成 -変更内容と $ARGUMENTS(指定がある場合)をもとに,GUIDE_04 の「コミットメッセージ」セクションに従ってコミットメッセージを生成する. +変更内容と $ARGUMENTS(指定がある場合)をもとに,`.claude/rules/git-conventions.md` の「コミットメッセージ」セクションに従ってコミットメッセージを生成する. ## ステップ 4: CLAUDE.md / PROGRESS.md 更新漏れチェック @@ -75,12 +76,12 @@ 1. `git push origin {ブランチ名}` でリモートにプッシュする 2. PR の状態を確認する: - **既存の PR がある場合**: PR の URL を表示して完了 - - **PR がない場合**: GUIDE_04 の「プルリクエスト (PR) の作成」に従い PR を作成し,URL を表示する + - **PR がない場合**: `reference.md` の「プルリクエスト (PR) の作成」に従い PR を作成し,URL を表示する ### マージ・プル(`merge` の場合のみ) -1. GUIDE_04 の「マージの実行」に従いマージする -2. GUIDE_04 の「ローカル環境のクリーンアップ」に従いローカルを最新化する +1. `reference.md` の「マージの実行」に従いマージする +2. `reference.md` の「ローカル環境のクリーンアップ」に従いローカルを最新化する ## 注意事項 diff --git a/.claude/skills/commit/reference.md b/.claude/skills/commit/reference.md new file mode 100644 index 0000000..f8fd8ec --- /dev/null +++ b/.claude/skills/commit/reference.md @@ -0,0 +1,99 @@ +# Git 開発フロー・トラブルシューティング (Git Workflow Reference) + +`/commit` の push・PR・マージ処理で参照する詳細手順と,問題発生時の対処手順. +ブランチ命名・コミットメッセージ等の規約は `.claude/rules/git-conventions.md` に従う. + +## 開発フロー (Development Workflow) + +作業ブランチをリモートへ送り,`main` にマージされるまでの手順. + +### リモートへのプッシュ + +作業ブランチをリモートリポジトリへ送信する. + +```bash +git push origin feature/new-function +``` + +### プルリクエスト (PR) の作成 + +GitHub CLI (`gh`) を使用して PR を作成する. + +```bash +gh pr create --title "[add] 新機能を実装" --body "概要" +``` + +- `--title` はコミットメッセージと同じ書式(`[タグ] 内容`)とする. +- 必要に応じて `--reviewer` でレビュワーを指定する. + +### レビューと修正の対応 + +- レビュワーのコメントを確認し,修正が必要な場合はローカルで修正・コミット・プッシュを繰り返す. +- 全ての指摘に対応し,レビュワーから Approve をもらう. + +### マージの実行 + +- マージ方式は「Create a merge commit」を使用する(作業ブランチの全コミット履歴が `main` に残る). + - 「Squash and merge」「Rebase and merge」は使用しない. + +```bash +gh pr merge --merge --delete-branch +``` + +### ローカル環境のクリーンアップ + +マージ完了後はローカル環境も最新状態に戻し,古いブランチを削除する. + +```bash +git checkout main +git pull origin main +git branch -d feature/new-function +``` + +## トラブルシューティング (Troubleshooting) + +### コンフリクトが発生した場合 + +他メンバーの変更と競合した場合の対処手順. + +**main の取り込み** + +作業ブランチに `main` の最新内容をリベースして競合箇所を洗い出す.`merge` ではなく `rebase` を使うことで,履歴が線形に保たれレビューしやすくなる. + +```bash +git checkout main +git pull origin main +git checkout feature/new-function +git rebase main +``` + +**競合の解消** + +エディタ上で `<<<<<<<`,`=======`,`>>>>>>>` で囲まれた箇所を手動で修正する.修正後,以下のコマンドでリベースを続行する. + +```bash +git add [修正したファイル] +git rebase --continue +``` + +全ての競合が解消されたらプッシュする.リベース後は履歴が書き換わるため `-f` オプションが必要になる. + +```bash +git push -f origin feature/new-function +``` + +### 間違えて main にコミットしてしまった場合 + +**まだプッシュしていない場合** + +コミットを取り消し,変更内容を保持したまま新しいブランチへ移動する. + +```bash +git reset --soft HEAD^ +git checkout -b feature/new-function +git commit -m "[add] ..." +``` + +**すでにプッシュしてしまった場合** + +`main` への force push はチーム全員の履歴を壊す危険があるため,自分では対処しない.直ちにチームメンバーに報告し,全員で対応方針を決める. diff --git a/.claude/skills/implement/SKILL.md b/.claude/skills/implement/SKILL.md index 0dd1f3e..1de9bee 100644 --- a/.claude/skills/implement/SKILL.md +++ b/.claude/skills/implement/SKILL.md @@ -11,8 +11,8 @@ ## 前提確認 (Pre-check) 1. 現在のブランチを確認する(`git branch --show-current`) -2. `main` ブランチにいる場合,GUIDE_04 に従い作業ブランチを作成する - - GUIDE_04 のブランチ命名規則に従い,適切なプレフィックスとタスク内容を表す英単語 2〜4 語(kebab-case)でブランチ名を決定する +2. `main` ブランチにいる場合,Git 規約 `.claude/rules/git-conventions.md` に従い作業ブランチを作成する + - 同ルールのブランチ命名規則に従い,適切なプレフィックスとタスク内容を表す英単語 2〜4 語(kebab-case)でブランチ名を決定する 3. 実装対象のタスクを確認する: $ARGUMENTS ## Phase 1: コーディング (Coder) diff --git a/.claude/skills/task-start/SKILL.md b/.claude/skills/task-start/SKILL.md index 99a21b3..17e6c56 100644 --- a/.claude/skills/task-start/SKILL.md +++ b/.claude/skills/task-start/SKILL.md @@ -39,10 +39,10 @@ ## ステップ 4: 作業ブランチ作成 (Branch) -GUIDE_04 に従う. +Git 規約 `.claude/rules/git-conventions.md` に従う. 1. `git checkout main && git pull origin main` で `main` を最新化する. -2. GUIDE_04 の基本形式(`[プレフィックス][概要]`)でブランチ名を決める.プレフィックスはタスク種別(`feature` / `fix` / `refactor` / `docs` / `chore`),概要は内容を表す英単語 2〜4 語(kebab-case)とする.ブランチ名に Issue 番号は含めない(GUIDE_06). +2. git-conventions ルールの基本形式(`[プレフィックス][概要]`)でブランチ名を決める.プレフィックスはタスク種別(`feature` / `fix` / `refactor` / `docs` / `chore`),概要は内容を表す英単語 2〜4 語(kebab-case)とする.ブランチ名に Issue 番号は含めない(GUIDE_06). 3. `git checkout -b <ブランチ名>` で作業ブランチを作成する. ## ステップ 5: 完了サマリー (Summary) diff --git a/.gitignore b/.gitignore index f5b74c9..4ca9a56 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ .claude/auto-audit-fixed.md .claude/auto-audit-skip.md -# -- プロジェクト立ち上げ時に有効化する(GUIDE_04 参照) -- +# -- プロジェクト立ち上げ時に有効化する(.claude/rules/git-conventions.md 参照) -- # .env # .env.* # node_modules/ diff --git a/CLAUDE.md b/CLAUDE.md index d427f49..3e2af70 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,9 +11,9 @@ -### Git 運用(GUIDE_04 準拠) +### Git 運用 -- ブランチ名・コミットメッセージの書式は GUIDE_04 に従う +- ブランチ名・コミットメッセージの書式は `.claude/rules/git-conventions.md` に従う(常時ロードされる) - コミットは `/commit` を使用する(push・PR 作成は `/commit push`) - **`/commit` はユーザーが明示的に指示した時のみ実行する.Claude が自発的に `/commit` や `git commit` を呼んではならない**(`/implement` 完了後も,案内するだけで自分ではコミットしない) - **例外**: 以下の無人運転ループはユーザー承認済みの例外として専用ブランチに自律コミットする.いずれも push・PR・マージ・`main` への操作はしない(取り込みは人間が `/commit push` 等で行う) @@ -43,9 +43,8 @@ ### 01_GUIDE(規約・ルール) - プロジェクト立ち上げフロー: docs/01_GUIDE/GUIDE_01_プロジェクト立ち上げフロー.md -- Git 運用ルール: docs/01_GUIDE/GUIDE_04_Git運用ルール.md - エージェント運用ルール: docs/01_GUIDE/GUIDE_05_エージェント運用ルール.md -- ※ ドキュメント書式・命名規則・進捗記録は `.claude/rules/`(markdown-style / docs-naming / progress-log)に定義されており,該当ファイルの編集時に自動ロードされる +- ※ Git 規約・ドキュメント書式・命名規則・進捗記録は `.claude/rules/`(git-conventions / markdown-style / docs-naming / progress-log)に定義されている(git-conventions は常時,他は該当ファイル編集時に自動ロード) - ※ コーディング規約,テスト方針等はプロジェクト立ち上げ時に作成する(GUIDE_01 参照) ### 02_ENV(環境) diff --git a/README.md b/README.md index 6dec367..9ebde2a 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,8 @@ `docs/01_GUIDE/` にプロジェクト運用の規約・ルールが置かれている.`/setup` を実行すれば AI がこれらを順次参照しながら立ち上げを進める. - `GUIDE_01_プロジェクト立ち上げフロー.md` — 立ち上げの 7 フェーズ(方針決定 → 実装開始) -- `GUIDE_04_Git運用ルール.md` — ブランチ・コミット・PR の運用 - `GUIDE_05_エージェント運用ルール.md` — `/implement` のエージェントチーム運用 - `GUIDE_06_チーム開発ルール.md` — **team モードのみ**.直列運用・条件付きセルフマージ・共有設定の扱い - `GUIDE_07_Issues・Projects運用ガイド.md` — **team モードのみ**.`gh` による Issue/Project 操作手順 -ドキュメントの書式・ファイル命名・進捗記録のルールは `.claude/rules/`(`markdown-style` / `docs-naming` / `progress-log`)にあり,該当ファイルの編集時に Claude へ自動ロードされる. +Git 規約(ブランチ命名・コミット書式)・ドキュメントの書式・ファイル命名・進捗記録のルールは `.claude/rules/`(`git-conventions` / `markdown-style` / `docs-naming` / `progress-log`)にあり,Claude へ自動ロードされる(git-conventions は常時,他は該当ファイル編集時).push・PR・マージの詳細手順は `.claude/skills/commit/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 9e7e35b..4490f8e 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" @@ -38,7 +38,7 @@ 開発環境を構築し,手順をドキュメント化する.初回のみの管理者作業と,メンバーが繰り返し行う構築手順を分けて整備する. - **前提条件**: 以下のツールは全プロジェクト共通で導入する. - - `git` — バージョン管理([GUIDE_04](GUIDE_04_Git運用ルール.md) で運用ルールを定義) + - `git` — バージョン管理(運用ルールは `.claude/rules/git-conventions.md` で定義) - `gh` — GitHub CLI(PR 作成・マージ等に使用) - **基本方針**: 環境の再現性を重視し,手順書だけに頼らず構築を自動化・コード化できる方法を優先する(例: Docker,Dev Containers,Windows Sandbox,IaC ツール等). - **人間が決めること**: 開発マシンの選定,クラウドサービスのアカウント作成,環境構築方法の選択 @@ -83,7 +83,7 @@ 開発計画に沿って AI と協働で実装を進める. -- 各ステップの完了時に [GUIDE_04_Git運用ルール](GUIDE_04_Git運用ルール.md) に従ってコミット・PR を作成する(ドキュメント書式は `.claude/rules/markdown-style.md` が自動適用される). +- 各ステップの完了時に Git 規約(`.claude/rules/git-conventions.md`)に従ってコミット・PR を作成する(ドキュメント書式は `.claude/rules/markdown-style.md` が自動適用される). - 仕様変更が発生した場合は,先にドキュメントを更新してから実装に反映する. ## CLAUDE.md の管理 (CLAUDE.md Management) diff --git "a/docs/01_GUIDE/GUIDE_04_Git\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" "b/docs/01_GUIDE/GUIDE_04_Git\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" deleted file mode 100644 index 3b79351..0000000 --- "a/docs/01_GUIDE/GUIDE_04_Git\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" +++ /dev/null @@ -1,181 +0,0 @@ -# Git 運用ルール (Git Operation Rules) - -## 基本方針 (Basic Policy) - -チーム開発におけるコードの整合性を保ち,手戻りを防ぐために以下の運用フローを徹底する. - -- **メインブランチ (main)**: - - 本番環境または常に動作可能な状態を維持するブランチ. - - 直接のコミット(直プッシュ)は禁止する.必ずプルリクエスト(PR)経由でマージする. -- **作業ブランチ (Feature Branch)**: - - 機能追加やバグ修正ごとに `main` から派生させて作成する. - - 作業完了後,`main` へマージし,原則として削除する. -- **`.gitignore`**: - - リポジトリ作成時に必ず整備する. - - ビルド成果物,依存パッケージ(`node_modules/` 等),環境変数ファイル(`.env` 等)は必ず除外する. - - `git add .` を安全に使うための前提条件であるため,メンバー追加時にも確認する. - -## ブランチ命名規則 (Branch Naming) - -### プレフィックス (Prefix) - -作業の種類を一目で判別するために,以下のプレフィックスを使用する. - -| プレフィックス | 用途 | -| --- | --- | -| `feature/` | 新機能の実装,仕様変更 | -| `fix/` | バグ修正 | -| `refactor/` | コードの整理(挙動は変えない) | -| `docs/` | ドキュメントの追記・修正 | -| `chore/` | ビルド設定やツール導入など,雑多な作業 | - -### 書式 (Format) - -- 書式: `[プレフィックス][概要]` -- 区切り: スラッシュ `/` を使用する.概要内の単語区切りはハイフン `-` を使用する. -- 概要: 作業内容を端的に表す英単語 2〜4 語程度(小文字)とする. -- 例: - - `feature/player-jump` - - `fix/collision-bug` - - `docs/guide-update` - -## 開発フロー (Development Workflow) - -作業を開始してからマージされるまでの手順. - -### ローカルの最新化 - -作業開始前は必ず `main` ブランチに切り替え,リモートの最新状態を取り込む. - -```bash -git checkout main -git pull origin main -``` - -### 作業ブランチの作成 - -最新の `main` から新しいブランチを作成して移動する. - -```bash -git checkout -b feature/new-function -``` - -### 実装とコミット - -- 作業単位(意味のあるまとまり)ごとにコミットする. -- 巨大なコミットは避け,レビューしやすい粒度を心がける. -- AI によるコミットメッセージの生成機能を利用してもよい.ただし,生成されたメッセージは必ず「コミットメッセージ」セクションの書式ルールに合わせて修正すること. - -```bash -git add . -git commit -m "[add] 新機能を実装" -``` - -### リモートへのプッシュ - -作業ブランチをリモートリポジトリへ送信する. - -```bash -git push origin feature/new-function -``` - -### プルリクエスト (PR) の作成 - -GitHub CLI (`gh`) を使用して PR を作成する. - -```bash -gh pr create --title "[add] 新機能を実装" --body "概要" -``` - -- `--title` はコミットメッセージと同じ書式(`[タグ] 内容`)とする. -- 必要に応じて `--reviewer` でレビュワーを指定する. - -### レビューと修正の対応 - -- レビュワーのコメントを確認し,修正が必要な場合はローカルで修正・コミット・プッシュを繰り返す. -- 全ての指摘に対応し,レビュワーから Approve をもらう. - -### マージの実行 - -- マージ方式は「Create a merge commit」を使用する(作業ブランチの全コミット履歴が `main` に残る). - - 「Squash and merge」「Rebase and merge」は使用しない. - -```bash -gh pr merge --merge --delete-branch -``` - -### ローカル環境のクリーンアップ - -マージ完了後はローカル環境も最新状態に戻し,古いブランチを削除する. - -```bash -git checkout main -git pull origin main -git branch -d feature/new-function -``` - -## コミットメッセージ (Commit Messages) - -### 書式 - -- 書式: `[タグ] 内容` -- 言語: 日本語 -- 句読点: 末尾に句点は不要 - -### タグ一覧 - -| タグ | 用途 | -| --- | --- | -| `[add]` | ファイルや機能の追加 | -| `[update]` | 機能やデータの更新・修正 | -| `[fix]` | バグ修正 | -| `[remove]` | 削除 | -| `[clean]` | 整理,リファクタリング | - -## トラブルシューティング (Troubleshooting) - -### コンフリクトが発生した場合 - -他メンバーの変更と競合した場合の対処手順. - -**main の取り込み** - -作業ブランチに `main` の最新内容をリベースして競合箇所を洗い出す.`merge` ではなく `rebase` を使うことで,履歴が線形に保たれレビューしやすくなる. - -```bash -git checkout main -git pull origin main -git checkout feature/new-function -git rebase main -``` - -**競合の解消** - -エディタ上で `<<<<<<<`,`=======`,`>>>>>>>` で囲まれた箇所を手動で修正する.修正後,以下のコマンドでリベースを続行する. - -```bash -git add [修正したファイル] -git rebase --continue -``` - -全ての競合が解消されたらプッシュする.リベース後は履歴が書き換わるため `-f` オプションが必要になる. - -```bash -git push -f origin feature/new-function -``` - -### 間違えて main にコミットしてしまった場合 - -**まだプッシュしていない場合** - -コミットを取り消し,変更内容を保持したまま新しいブランチへ移動する. - -```bash -git reset --soft HEAD^ -git checkout -b feature/new-function -git commit -m "[add] ..." -``` - -**すでにプッシュしてしまった場合** - -`main` への force push はチーム全員の履歴を壊す危険があるため,自分では対処しない.直ちにチームメンバーに報告し,全員で対応方針を決める. diff --git "a/docs/01_GUIDE/GUIDE_05_\343\202\250\343\203\274\343\202\270\343\202\247\343\203\263\343\203\210\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" "b/docs/01_GUIDE/GUIDE_05_\343\202\250\343\203\274\343\202\270\343\202\247\343\203\263\343\203\210\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" index 975f478..28c7d42 100644 --- "a/docs/01_GUIDE/GUIDE_05_\343\202\250\343\203\274\343\202\270\343\202\247\343\203\263\343\203\210\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" +++ "b/docs/01_GUIDE/GUIDE_05_\343\202\250\343\203\274\343\202\270\343\202\247\343\203\263\343\203\210\351\201\213\347\224\250\343\203\253\343\203\274\343\203\253.md" @@ -30,7 +30,7 @@ ``` 人間: /implement <タスク内容> │ - ├─ ブランチ作成(GUIDE_04 準拠) + ├─ ブランチ作成(git-conventions ルール準拠) │ ├─ Phase 1 ──▶ [Coder] │ 実装に集中.テスト・リファクタは行わない @@ -132,7 +132,7 @@ ## コミットルール (Commit Rules) -パイプライン完了後は `/commit` でコミットする.コミットメッセージのタグ等は [GUIDE_04](GUIDE_04_Git運用ルール.md) に従う. +パイプライン完了後は `/commit` でコミットする.コミットメッセージのタグ等は `.claude/rules/git-conventions.md` に従う. ※ リファクタリングとテストは実装と一体の成果物として,まとめてコミットする.必要に応じて分割コミットも可. diff --git "a/docs/01_GUIDE/GUIDE_06_\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_06_\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 ced842f..48f78eb 100644 --- "a/docs/01_GUIDE/GUIDE_06_\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_06_\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" @@ -4,7 +4,7 @@ > 本ガイドは**チーム開発モード**(`/setup` で team を選択したプロジェクト)でのみ有効.個人開発モード(solo)のプロジェクトには本ファイル・GUIDE_07・`task-*` コマンドは配置されない. -Git の手順は [GUIDE_04](GUIDE_04_Git運用ルール.md),1 タスクの実装パイプラインは [GUIDE_05](GUIDE_05_エージェント運用ルール.md) に従う.本ガイドはそれらの上に立つ「複数人が同時に動くときの調整」を扱う. +Git の規約は `.claude/rules/git-conventions.md`(push・PR・マージ手順は `.claude/skills/commit/reference.md`),1 タスクの実装パイプラインは [GUIDE_05](GUIDE_05_エージェント運用ルール.md) に従う.本ガイドはそれらの上に立つ「複数人が同時に動くときの調整」を扱う. ## 基本方針 (Basic Policy) @@ -12,7 +12,7 @@ - 原則として並行作業を行わず,1 人ずつ直列で開発する.急ぎではないため,スループットより単純さと `main` の整合性を優先する.これは禁止ではなく既定のスタンスであり,状況に応じた判断は妨げない(詳細は「作業の直列化」). - 人間の本質的な役割は「AI にできない判断と確認」(GUIDE_05 と同じ).加えて「共有設定の番人」を担う. - 進捗・タスクは GitHub Issues と git 履歴で追う.`CLAUDE.md` には進捗を書かない(この点は solo 既定の進捗記録ルール `.claude/rules/progress-log.md` を**上書き**する). -- `main` は常に動作可能な状態を保つ(GUIDE_04).壊れたら他の作業より優先して直す. +- `main` は常に動作可能な状態を保つ(`.claude/rules/git-conventions.md`).壊れたら他の作業より優先して直す. ## タスク管理 (Task Management) @@ -45,7 +45,7 @@ ```text 1. Issue 起票(完了条件を明記) 2. 自分にアサイン(ボード未使用のためアサインのみ.ボード運用復活時は In Progress へ移動) -3. main から作業ブランチ作成(GUIDE_04) +3. main から作業ブランチ作成(git-conventions ルール) 4. /implement に Issue の内容を渡して実装(GUIDE_05) 5. PR 作成,本文に "Closes #<番号>" 6. セルフマージ条件を確認 → マージ @@ -57,11 +57,11 @@ ## ブランチと PR (Branch & PR) -[GUIDE_04](GUIDE_04_Git運用ルール.md) に従う.チーム運用上の追加事項のみ以下に定める. +`.claude/rules/git-conventions.md` に従う.チーム運用上の追加事項のみ以下に定める. -- ブランチ命名は GUIDE_04 の基本形式(`[プレフィックス][概要]`)に従う.ブランチ名に Issue 番号は含めなくてよい. +- ブランチ命名は git-conventions ルールの基本形式(`[プレフィックス][概要]`)に従う.ブランチ名に Issue 番号は含めなくてよい. - branch↔Issue の紐付けは PR 本文の `Closes #<番号>` で行う.マージ時に Issue が自動クローズされる.既存 Issue からブランチを作る場合は `gh issue develop` でネイティブにリンクできる(GUIDE_07). -- PR の `--title` はコミットメッセージと同じ書式(`[タグ] 内容`,GUIDE_04). +- PR の `--title` はコミットメッセージと同じ書式(`[タグ] 内容`,`.claude/rules/git-conventions.md`). ## レビューとマージ (Review & Merge) @@ -113,8 +113,8 @@ - 原則として,同時に進行中のコード作業は 1 件とする(進行中の Issue は原則 1 件.Project ボード運用復活時は `In Progress` 列も同様). - 次の作業に着手してよいのは,前の作業の PR が `main` にマージされた後とする(マージ条件は「レビューとマージ」参照). - タスクは小さく保つ.直列運用では,1 単位が小さいほど次の人の待ち時間が短くなる. -- 直列運用により並行コンフリクトと共有設定のドリフトは原理的にほぼ発生しない.例外的に並行が生じてコンフリクトした場合は GUIDE_04 の rebase 手順をフォールバックとして用いる. -- `main` を壊した場合は他作業より優先して復旧する.自分で対処できない場合は直ちにチームへ報告する(GUIDE_04). +- 直列運用により並行コンフリクトと共有設定のドリフトは原理的にほぼ発生しない.例外的に並行が生じてコンフリクトした場合は `.claude/skills/commit/reference.md` の rebase 手順をフォールバックとして用いる. +- `main` を壊した場合は他作業より優先して復旧する.自分で対処できない場合は直ちにチームへ報告する(`.claude/skills/commit/reference.md`「間違えて main にコミットしてしまった場合」). ## メンバーのオンボーディング (Onboarding) @@ -125,8 +125,8 @@ 3. `ENV_02_環境構築手順.md`(GUIDE_01 参照,立ち上げ時に作成)に従い開発環境を構築する. 4. `gh auth login` で GitHub CLI を認証する.Projects も操作する場合は `project` スコープを含める(GUIDE_07「必要なスコープ」). 5. 必要なら `.claude/settings.local.json` を用意する(個人設定.git 追跡されない). -6. 最初に `CLAUDE.md` と `docs/01_GUIDE/` を読む(特に本ガイド・GUIDE_04・GUIDE_05・GUIDE_07). -7. `.gitignore` が整備されていることを確認する(GUIDE_04). +6. 最初に `CLAUDE.md` と `docs/01_GUIDE/` を読む(特に本ガイド・GUIDE_05・GUIDE_07).Git 規約は `.claude/rules/git-conventions.md` にある. +7. `.gitignore` が整備されていることを確認する(`.claude/rules/git-conventions.md`). ## 管理者の初期設定 (Admin Setup) diff --git "a/docs/01_GUIDE/GUIDE_07_Issues\343\203\273Projects\351\201\213\347\224\250\343\202\254\343\202\244\343\203\211.md" "b/docs/01_GUIDE/GUIDE_07_Issues\343\203\273Projects\351\201\213\347\224\250\343\202\254\343\202\244\343\203\211.md" index 629ee09..c86a0a1 100644 --- "a/docs/01_GUIDE/GUIDE_07_Issues\343\203\273Projects\351\201\213\347\224\250\343\202\254\343\202\244\343\203\211.md" +++ "b/docs/01_GUIDE/GUIDE_07_Issues\343\203\273Projects\351\201\213\347\224\250\343\202\254\343\202\244\343\203\211.md" @@ -113,7 +113,7 @@ ボードの `Status` を `In Progress` に移す(`item-edit` または Web UI). -3. **作業ブランチ作成**(GUIDE_04 の基本形式) +3. **作業ブランチ作成**(`.claude/rules/git-conventions.md` の基本形式) ```bash git checkout main && git pull origin main @@ -124,7 +124,7 @@ 4. **実装**: `gh issue view ` で本文を取得し,`/implement` に渡す(GUIDE_05). -5. **PR 作成**: 本文に `Closes #` を記載する(GUIDE_04). +5. **PR 作成**: 本文に `Closes #` を記載する(PR 作成手順は `.claude/skills/commit/reference.md`). 6. **マージ**: マージで Issue は自動クローズされ,連動設定があればカードも `Done` へ移る(自動化設定は管理者作業.GUIDE_06「管理者の初期設定」).