ダッシュボード

feat/* branch 限定の 7 Phase + Human Gate 2 点。強制メカニズムは 2 段構え。

実運用 — Jacky の作業フロー

dev ベースの repo(ここでは <repo>)で、dev から feat/<slug> を切ってから dev へマージするまで。 spec を先に積み、push の手前でローカル判定、PR では CI が見る。CI の Human Gate 2 点は機械判定で、他人のレビュー承認は要らない。Gate 1・2 は本人が Claude の出す合言葉を入力して承認する。 元になる規約(7 Phase + Human Gate 2 点)は下の「新機能開発フロー」。

Jacky の feat/* 作業フロー feat ブランチの機能を作るとき、spec を先に commit し、実装後の push 前にローカル判定を通し、PR で CI の required checks を通って本人が dev へマージする流れ。違反や CI 失敗があれば実装へ戻る。 Jacky DEVELOPER ローカル hook BEFORE PUSH CI GITHUB ACTIONS GIT PUSH 通過 push 不可 ALL GREEN 落ちたら修正して再 push spec 3 点を commit Phase 1-2 · 別 commit 実装・検証 verify-report · ui-* PR を作成 base: dev dev へマージ self-merge · 承認不要 spec-gate Claude · 編集時 NEW push 前の判定 husky pre-push required checks workflow-gate · Build ほか LEGEND 手順 今回追加した判定 編集を止める見張り 進む 差し戻し・見張り 違反で止まる
push 前の判定が見るもの NEW
  • docs/features/<slug>/ に requirements・design・test-plan・verify-report(中身のある file)
  • 実装の開始点すべてで、親 commit に spec 3 点がある
  • UI を変えたら ui-before.md / ui-after.md
  • 違反なら push できない。PR も出せない
  • 見送りは WORKFLOW_EXEMPT="理由" git push。本人の承認(合言葉)が要る。PR 本文にも同じ理由を書く
マージの条件(PR · required)
  • CI の required checks(workflow-gate・Build・Branch Guard など)が全部 green
  • workflow-gate は PR 本文の Workflow exempt: <理由> でだけ見送れる。ローカルを抜けてもここで止まる
  • green になったら本人がマージする(レビュー待ちなし)
Gate は本人が承認する
他人のレビュー承認は要らない。Claude は設計(Gate 1)と検証結果(Gate 2)を要約して止まり、本人が合言葉を入力欄へ送ると先へ進む。CI は機械判定のままで、Gate 1 は「開始点の親に spec 3 点」、Gate 2 は「verify-report の実在」。 dev から staging・main へは別フローで、main だけ CODEOWNERS の承認が要る。

事前準備

初回だけ · 15 分 · 上から順にコマンドを叩く

上の図の「ローカル hook」レーンを手元で動かす。済ませると spec・verify-report の不足を PR を出す前に検知でき、 CI で落ちてから直す往復が減る。<org> / <repo> は自分の環境に読み替える。

STEP 1
Claude Code を入れる
curl -fsSL https://claude.ai/install.sh | bash
claude            # 初回はブラウザでログイン
入っていれば claude --version が出る。既に使っている人は飛ばす。
STEP 2
gh・jq・Node.js を入れる
brew install gh jq node pnpm   # npm だけの repo なら pnpm は不要
gh auth login                  # <org> に書けるアカウントで
gh は PR 作成と見送り label の読み取り、jq は Claude の hook、Node.js は repo の husky が使う。repo が Node のバージョンを指定していれば(.node-version / engines)それに合わせる。
STEP 3
claude-config と Claude の hook を入れる
gh repo clone <org>/claude-config ~/claude-config
bash ~/claude-config/scripts/install.sh
bash ~/claude-config/scripts/install-hooks.sh
spec-gate(編集時)・push 前の判定(Claude 経由の push / PR 作成)・Human Gate の承認(合言葉)が入る。gate の更新を毎回受け取るため、Claude のセッションを閉じた状態で次も必ず実行する(登録済みなら何もしない):
c='bash ~/claude-config/scripts/auto-sync.sh' \
  && tmp=$(mktemp ~/.claude/settings.json.XXXXXX) \
  && jq --arg c "$c" 'if any(.hooks.SessionStart[]?.hooks[]?; .command == $c) then .
       else .hooks.SessionStart += [{"hooks":[{"type":"command","command":$c}]}] end' \
       ~/.claude/settings.json > "$tmp" \
  && mv "$tmp" ~/.claude/settings.json
STEP 4
repo の husky pre-push を入れる
gh repo clone <org>/<repo>   # clone 済みなら飛ばす
(cd <repo> && git checkout dev && git pull && pnpm install && git checkout -b feat/<slug>) \
  && cd <repo>
  • 2 行目は全部 && でつなぐので、途中で落ちたら(移動先が無い・未コミットの変更・通信障害)ブランチは作られず、現在地も変わらない。直してから同じ行を再実行する
  • npm の repo なら pnpm install を npm install に読み替える。install で husky が core.hooksPath=.husky/_ を入れる
  • 手で git push するときにも効く。判定本体は repo の check-workflow-gate.sh(dev にある)
  • 作業ブランチは最新の dev から切る。既存ブランチは dev を取り込むまで判定されない
  • worktree ごとに install する(node_modules が無いと hook は動かない)
最終確認
  • claude --version・gh auth status・jq --version が出る
  • grep -c 'spec-gate\|workflow-gate-push-gate' ~/.claude/settings.json が 2 以上
  • grep -c 'auto-sync.sh\|human-gate' ~/.claude/settings.json が 4 以上
  • Claude のセッション開始時に [auto-sync] ⚠️ の警告が出ていない(出ていたら表示どおりに直す)
  • repo で git config core.hooksPath が .husky/_
  • repo に check-workflow-gate.sh がある(dev 取り込み済み)
  • 試しに feat/try-gate で spec 無しのコードを commit → git push --dry-run origin HEAD が [workflow-gate] ❌ で止まる(確認後ブランチは捨てる)
止まったとき
理由直し方
spec が実装より後spec 3 点を別 commit で先に積む。実装が先なら commit を分け直す
verify-report 無し・空検証結果を書いてから push
UI 変更で ui-* 無しui-before.md / ui-after.md を追加
origin/dev が古いgit fetch して再実行
Human Gate・見送りの承認がまだClaude が要約と合言葉を出す。内容を確かめ、合言葉だけを入力欄へ送る
hook が動かないその worktree で pnpm install(または npm install)
対象外にするなら WORKFLOW_EXEMPT="<理由>" git push(本人の承認が要る)+ PR 本文に Workflow exempt: <理由>。 ローカルを抜けてもマージは CI の workflow-gate が止める。

新機能開発フロー(feat/* branch 限定)

7 Phase + Human Gate 2 点。★ は人間が判断する gate。強制メカニズムは spec-gate.sh (PreToolUse) と workflow-gate.yml (GitHub Actions) の 2 段構え。 fix/chore/hotfix branch は素通り (軽量フロー)、 Workflow exempt: <理由> で緊急 skip 可。

Spec ディレクトリ規約
branch: feat/<slug>
dir:    docs/features/<slug>/
files:
  requirements.md   # Phase 1
  design.md         # Phase 2
  test-plan.md      # Phase 2
  ui-before.md      # Phase 3 (UI 変更時のみ)
  ui-after.md       # Phase 5 (UI 変更時のみ)
  verify-report.md  # Phase 5
エディタ側 spec-gate.sh
PreToolUse フック。feat/* branch で docs/features/<slug>/{requirements,design}.md 未整備状態の Write/Edit をブロック。Bash の commit も止め、spec が揃った後は Human Gate 1 の承認(合言葉)を求める。
SCM 側 workflow-gate.yml
GitHub Actions。PR 発火で spec 実在 + PR body の Gate 1/2 承認行を検査、 自己承認禁止、UI diff 検知で ui-before / ui-after 追加要件。

Getting Started — 未経験の人はここから

  1. まず読む: グローバル ~/.claude/CLAUDE.md と、作業する project の <project>/CLAUDE.md。全会話に自動で注入される個人・プロジェクト規約が書いてある。
  2. タブで俯瞰: 📚 リファレンス で工作流構造・Harness 分類・設定の中身・MCP サーバーのカタログ。
  3. 手を動かす: 新規プロジェクトなら /init で project CLAUDE.md 生成、既存 PR に /code-review、実装前に /grill でプラン stress-test。