diff --git a/.claude/skills/setup/SKILL.md b/.claude/skills/setup/SKILL.md index b5d2dd0..c0b9d7f 100644 --- a/.claude/skills/setup/SKILL.md +++ b/.claude/skills/setup/SKILL.md @@ -7,6 +7,7 @@ あなたはプロジェクト立ち上げのファシリテーターです. GUIDE_01(プロジェクト立ち上げフロー)を読み,各フェーズのルールを理解した上で以下の手順を実行してください. +`gh` CLI で行う GitHub リポジトリ設定のコマンドと手順は本スキルの `reference.md`(`.claude/skills/setup/reference.md`)を参照する. ## 基本ルール @@ -92,6 +93,14 @@ ### フェーズ 3(環境構築)の注意 外部サービスの設定(アカウント作成,コンソール操作等)はユーザー自身が行う.手順書に記載するが,AI が実行しないこと. +**例外**として,`gh` CLI で操作できる GitHub リポジトリ設定は AI が実行する. + +### GitHub リポジトリのセキュリティ設定 (GitHub Repository Security Settings) + +Dependabot alerts("Vulnerabilities")と Dependabot security updates はリポジトリごとに既定で OFF のため,モード(solo / team)に関わらず AI が `gh api` で有効化する.コマンド・検証・トラブル対応は本スキルの `reference.md`(`.claude/skills/setup/reference.md`)「GitHub リポジトリのセキュリティ設定」に従う. + +- `ENV_03_管理者用環境構築手順.md` のドラフトには,GitHub リポジトリ作成の直後の手順として `reference.md` の有効化・検証コマンドを必ず転記する(`/setup` 後にリポジトリを作った場合に管理者が単体で実行できるようにするため) +- ENV_03 を書き出したら,その場で `reference.md` の手順を 1 度実行する.リモート未作成で実行できなければ Phase 7 で再試行する ## フェーズ 7: 実装開始 @@ -104,11 +113,12 @@ - **solo モードの場合**は従来どおり(進捗欄+ PROGRESS.md 運用). 2. 作成した全ドキュメントの一覧を表示する 3. 最初の実装ステップを確認する -4. **team モードの場合**は,AI に実施できない「管理者の初期設定」(GUIDE_03「管理者の初期設定」)をユーザーに案内する: +4. **モードに関わらず**,「GitHub リポジトリのセキュリティ設定」(前述)を実行する(Phase 3 で有効化済みなら検証コマンドだけで確認する.リモートがまだ無ければ,リポジトリ作成後に ENV_03 のコマンドを実行するようユーザーに案内する) +5. **team モードの場合**は,AI に実施できない「管理者の初期設定」(GUIDE_03「管理者の初期設定」)をユーザーに案内する: - GitHub リポジトリ作成・メンバー招待 - Issue テンプレートの用意 - CI 構築(未構築の間は GUIDE_03「CI 構築までの暫定ゲート」を適用) - - 依存脆弱性対策が必要ならスタックに応じた `.github/dependabot.yml` を追加(エコシステムはプロジェクト固有のため setup では作らない) + - 依存バージョンの定期更新も行うならスタックに応じた `.github/dependabot.yml` を追加(エコシステムはプロジェクト固有のため setup では作らない.脆弱性検出(Dependabot alerts)は上記 4 で AI が有効化済み) 「**全フェーズが完了しました.** @@ -117,6 +127,7 @@ 開発モード: {solo / team} CLAUDE.md を更新しました. +GitHub リポジトリのセキュリティ設定(Dependabot alerts / security updates): {有効化済み / リポジトリ未作成のため未実施(ENV_03 のコマンドで有効化してください)} 最初の実装ステップは `{ステップ名}` です.`/implement {タスク}` で開始できます. {team の場合: 「チーム運用の管理者初期設定(GitHub repo・CI 等)は GUIDE_03 を参照してユーザー側で実施してください.」}」 diff --git a/.claude/skills/setup/reference.md b/.claude/skills/setup/reference.md new file mode 100644 index 0000000..39f65ed --- /dev/null +++ b/.claude/skills/setup/reference.md @@ -0,0 +1,51 @@ +# setup リファレンス (Setup Reference) + +`/setup`(`SKILL.md`)から参照される,`gh` CLI で実行する GitHub リポジトリ設定の手順集.`/setup` の途中で AI が実行するほか,`/setup` 完了後にリポジトリを作成した場合などに管理者(人間)が単体で実行する runbook としても使う. + +## GitHub リポジトリのセキュリティ設定 (GitHub Repository Security Settings) + +GitHub の Settings → Code security にある **Dependabot alerts**(既知脆弱性の検出.UI では "Vulnerabilities" として表示される)と **Dependabot security updates**(脆弱性を直す PR の自動作成)は**リポジトリごとに既定で OFF** であり,有効化しないと依存パッケージの脆弱性が一切通知されない.モード(solo / team)に関わらず,プロジェクトの GitHub リポジトリが存在する時点で有効化する. + +### 前提 (Prerequisites) + +- `gh auth login` 済みであること(既定スコープ `repo` で足りる) +- 実行者がリポジトリの **admin 権限**を持つこと(無いと 403) +- カレントディレクトリがそのリポジトリの clone であること(`{owner}/{repo}` は `gh` がリモートから自動補完する) + +### 手順 (Procedure) + +1. リモートの有無を確認する: + + ```bash + gh repo view --json nameWithOwner -q .nameWithOwner + ``` + + - 失敗する(リモート未設定・リポジトリ未作成・`gh` 未認証)場合はこの手順をスキップする.`/setup` 中であれば「GitHub リポジトリ作成後に `/setup` を再実行するか,ENV_03 に記載したコマンドを実行してください」とユーザーに伝え,Phase 7 でもう一度試す +2. 有効化する(冪等なので再実行してよい): + + ```bash + gh api -X PUT repos/{owner}/{repo}/vulnerability-alerts # Dependabot alerts(依存グラフも同時に有効化される) + gh api -X PUT repos/{owner}/{repo}/automated-security-fixes # Dependabot security updates + ``` + +3. 有効化を検証する: + + ```bash + gh api repos/{owner}/{repo}/vulnerability-alerts # 成功(204)なら有効.404 なら無効 + gh api repos/{owner}/{repo}/automated-security-fixes # {"enabled":true,...} なら有効 + ``` + +4. 結果をユーザーに報告する + +### トラブルシューティング (Troubleshooting) + +| 症状 | 原因 | 対処 | +| --- | --- | --- | +| `gh repo view` が失敗 | リモート未設定・リポジトリ未作成・`gh` 未認証 | リポジトリ作成と `git remote add origin ...` 後に再実行.`gh auth status` で認証を確認 | +| `PUT` が 403 | リポジトリの admin 権限が無い,またはトークンのスコープ不足 | 管理者に依頼するか,GitHub の Settings → Code security → Dependabot から手動で ON にする | +| `PUT` が 404 | `{owner}/{repo}` の補完に失敗(リモート URL が GitHub でない等) | `gh api -X PUT repos///vulnerability-alerts` のように明示する | + +### 補足 (Notes) + +- `.github/dependabot.yml` は「依存バージョンの定期更新 PR」の設定であり,上記の脆弱性検出とは別物.エコシステム(npm / pub / pip / cargo 等)がプロジェクト固有のため `/setup` では作らず,必要ならユーザーの指示で追加する +- アカウント設定(Settings → Code security → "Automatically enable for new repositories")を ON にしておけば以後の新規リポジトリは自動で有効になるが,テンプレートとしてはリポジトリ単位で確実に有効化する前提で運用する diff --git a/CLAUDE.md b/CLAUDE.md index 539c0be..5c5aef5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,6 +48,7 @@ 以下は実装完了後にユーザーへ報告し,確認・実施を依頼すること. - 外部サービスの設定(コンソール操作,セキュリティルール変更等) + - 例外: `gh` CLI で操作できる GitHub リポジトリ設定(Dependabot alerts / security updates の有効化)は Claude が `gh api` で行う(手順は `.claude/skills/setup/reference.md`,背景は GUIDE_01「環境構築」) - 実機・ブラウザでの動作確認 - ストアへのアップロード・リリース作業 diff --git a/README.md b/README.md index 94f3faa..336e203 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ ## 主なスラッシュコマンド -- `/setup ` — GUIDE_01 に従いプロジェクト立ち上げを対話的に進行(solo/team を選択) +- `/setup ` — GUIDE_01 に従いプロジェクト立ち上げを対話的に進行(solo/team を選択.GitHub リポジトリの Dependabot alerts / security updates も `gh api` で有効化) - `/implement <タスク>` — 実装パイプライン(コーディング → テスト → リファクタリング) - `/commit` / `/commit push` / `/commit merge` — コミット作成(`push` でプッシュと PR 作成まで,`merge` でマージ・プルまで) - `/auto-refactor` / `/auto-audit` — 無人運転ループ(リファクタ/ドキュメント整理,バグ/脆弱性の巡回監査).専用ブランチへ自律コミットし,push・PR・マージはしない 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 904294b..95e5765 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,7 +23,7 @@ | レイヤ | 対象 | 存在するモード | | --- | --- | --- | -| 共通層 | `GUIDE_01`・`GUIDE_02`,`.claude/rules/` のすべて,`.claude/agents/`,`.claude/template-overrides.md`(雛形),skills(`commit`(+ `reference.md`)・`implement`・`setup`・`sync-template`(+ `reference.md`)・`set-mode`・`auto-refactor`・`auto-audit`・`task-create`・`task-start`(+ `reference.md`)・`task-handoff`) | solo・team 両方 | +| 共通層 | `GUIDE_01`・`GUIDE_02`,`.claude/rules/` のすべて,`.claude/agents/`,`.claude/template-overrides.md`(雛形),skills(`commit`(+ `reference.md`)・`implement`・`setup`(+ `reference.md`)・`sync-template`(+ `reference.md`)・`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). @@ -55,10 +55,11 @@ - `gh` — GitHub CLI(PR 作成・マージ等に使用) - **基本方針**: 環境の再現性を重視し,手順書だけに頼らず構築を自動化・コード化できる方法を優先する(例: Docker,Dev Containers,Windows Sandbox,IaC ツール等). - **人間が決めること**: 開発マシンの選定,クラウドサービスのアカウント作成,環境構築方法の選択 -- **AI に依頼できること**: 環境構築手順書の作成,設定ファイルの生成,`.gitignore` の作成,Dockerfile や devcontainer.json 等の構築用ファイルの作成 +- **AI に依頼できること**: 環境構築手順書の作成,設定ファイルの生成,`.gitignore` の作成,Dockerfile や devcontainer.json 等の構築用ファイルの作成,GitHub リポジトリのセキュリティ設定(後述) +- **GitHub リポジトリのセキュリティ設定**: GitHub の Settings → Code security にある **Dependabot alerts**(既知脆弱性の検出."Vulnerabilities" として表示される)と **Dependabot security updates** はリポジトリごとに既定で OFF のため,リポジトリを作成したら必ず有効化する.モードに関わらず `/setup` が `gh api` で有効化・検証する(コマンド・検証・トラブル対応は `.claude/skills/setup/reference.md`「GitHub リポジトリのセキュリティ設定」).`/setup` 時点でリポジトリが無い場合は,`ENV_03_管理者用環境構築手順.md` に転記した同じコマンドをリポジトリ作成後に実行する. - **成果物**: - `ENV_02_環境構築手順.md` — メンバーの参加時や環境の再構築時に使う手順 - - `ENV_03_管理者用環境構築手順.md` — プロジェクト作成時に一度だけ行う初期設定(リポジトリ作成,外部サービスの設定等) + - `ENV_03_管理者用環境構築手順.md` — プロジェクト作成時に一度だけ行う初期設定(リポジトリ作成,GitHub リポジトリのセキュリティ設定,外部サービスの設定等) - `ENV_04_開発コマンド.md`(任意)— アプリの起動・テスト・lint・ビルド等,日常の開発で使うコマンド一覧.人間とエージェント(tester・coder,`/auto-refactor`・`/auto-audit`)がコマンドを推測せずに済むようにするための唯一の参照先とする - 立ち上げ時点で確定しているコマンドが無ければ**作成を後回しにしてよい**.実装中にコマンドが確定・変更された時点で作成・追記する(`/implement` の Phase 4 で自動的に見直される) - コマンドが増えてきたら,タスクランナー(npm scripts・Makefile 等)への集約を優先し,本ファイルは薄い一覧に保つ(「手順書より自動化・コード化」の基本方針と同じ) 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 ffab9ca..c26cdb0 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" @@ -130,9 +130,10 @@ ## 管理者の初期設定 (Admin Setup) -以下は外部サービス操作を含み,AI には実施できない.ルール確定後に管理者(人間)が一度だけ行う. +以下は外部サービス操作を含み,原則として AI には実施できない(`gh` で操作できる設定のみ例外として注記する).ルール確定後に管理者(人間)が一度だけ行う. - GitHub リポジトリの作成,メンバー招待. + - リポジトリ作成後,**GitHub リポジトリのセキュリティ設定**(Dependabot alerts / security updates の有効化)は AI が `gh api` で行う(`/setup` の Phase 3・7 で実行.コマンド・検証・トラブル対応は `.claude/skills/setup/reference.md`「GitHub リポジトリのセキュリティ設定」,背景は GUIDE_01「環境構築」).`/setup` 完了後にリポジトリを作成した場合は,同 `reference.md` または `ENV_03_管理者用環境構築手順.md` に転記したコマンドを実行する(管理者が直接実行してもよい). - (既定では未使用)GitHub Project の作成,列(`Todo` / `In Progress` / `In Review` / `Done`)の定義. - (既定では未使用)マージ連動の自動化設定(PR マージ時に Issue クローズ・カードを `Done` へ移動). - Issue テンプレートの用意(「やること」「完了条件」欄).