実運用 — 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 点)は下の「新機能開発フロー」。
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 本文にも同じ理由を書く
- CI の required checks(workflow-gate・Build・Branch Guard など)が全部 green
- workflow-gate は PR 本文の
Workflow exempt: <理由>でだけ見送れる。ローカルを抜けてもここで止まる - green になったら本人がマージする(レビュー待ちなし)
事前準備
初回だけ · 15 分 · 上から順にコマンドを叩く
上の図の「ローカル hook」レーンを手元で動かす。済ませると spec・verify-report の不足を PR を出す前に検知でき、
CI で落ちてから直す往復が減る。<org> / <repo> は自分の環境に読み替える。
curl -fsSL https://claude.ai/install.sh | bash
claude # 初回はブラウザでログインclaude --version が出る。既に使っている人は飛ばす。brew install gh jq node pnpm # npm だけの repo なら pnpm は不要
gh auth login # <org> に書けるアカウントで.node-version / engines)それに合わせる。gh repo clone <org>/claude-config ~/claude-config
bash ~/claude-config/scripts/install.sh
bash ~/claude-config/scripts/install-hooks.shc='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.jsongh 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 可。
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.shdocs/features/<slug>/{requirements,design}.md
未整備状態の Write/Edit をブロック。Bash の commit も止め、spec が揃った後は Human Gate 1 の承認(合言葉)を求める。
workflow-gate.ymlGetting Started — 未経験の人はここから
-
まず読む:
グローバル
~/.claude/CLAUDE.mdと、作業する project の<project>/CLAUDE.md。全会話に自動で注入される個人・プロジェクト規約が書いてある。 - タブで俯瞰: 📚 リファレンス で工作流構造・Harness 分類・設定の中身・MCP サーバーのカタログ。
-
手を動かす:
新規プロジェクトなら
/initで project CLAUDE.md 生成、既存 PR に/code-review、実装前に/grillでプラン stress-test。