バックエンド実装時に使用。DRY原則遵守。コーディング規約準拠。
中文简介正在准备中。当前显示原文说明。
作業開始時に使用。mainブランチでの作業禁止。Issue先行作成必須。
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
以下は絶対に禁止。違反は許容されない。
git branch --show-current
main と表示された場合 → 作業禁止! Step 2へmain 以外の場合 → 作業内容とブランチ名が一致しているか確認gh issue create --title "機能名" --body "詳細説明"
git checkout -b [タイプ]/[作業内容]-[Issue番号]
| タイプ | 用途 | 例 |
|---|---|---|
feature/ | 新機能開発 | feature/add-login-123 |
fix/ | バグ修正 | fix/auth-bug-456 |
docs/ | ドキュメント更新 | docs/update-readme-789 |
refactor/ | リファクタリング | refactor/user-service-101 |
test/ | テスト追加・修正 | test/add-api-tests-102 |
main への取り込みは quality-check を完走してから行う。quality-gate の hook は、フラグ(.quality-check-passed)が取り込む commit を指しているかを確かめる(前回のフラグが残っていても、チェックしていないブランチは取り込めない)。
| 状況 | 手順 |
|---|---|
リモートがある(PR を作る remote(通常は origin)の trunk の remote-tracking ref、例: origin/main がある) | feature ブランチを push して PR を作る(git push -u origin HEAD → gh pr create)。merge は PR で行う |
| リモートが無く、1 つのチェックアウトで作業している | feature 上で quality-check を完走する → git switch main → git merge <feature>(--no-ff 可。main が feature に無いコミットを持っていれば拒否されるので、main を feature に取り込んで quality-check をやり直す)→ .quality-check-passed を削除する(公開用・デプロイ先・バックアップへの送り出しは、下の「公開用・デプロイ先・バックアップの remote への main の送り出し」) |
| リモートが無く、main を別の worktree で開いている | 下の「リモートの無いプロジェクトの取り込み」 |
ここで「リモートが無い」は、PR を作る remote(通常は origin)の trunk の remote-tracking ref(例: origin/main)が無いことを言う。<remote>/main があっても、PR を受けない remote(公開用・デプロイ先・バックアップ。push 専用の remote は一度 push すると <remote>/main ができる)しか無ければ、リモートの無い取り込みを使う。そのような remote に feature ブランチを push しない(PR の道は無い)。hook の案内は origin の trunk の追跡 ref(origin/main / origin/master)だけを見る。PR を受ける remote が origin 以外の名前なら、hook の案内ではなく、この表で判断する。
npx --no ai-dev-helm integrate-check --main <main のチェックアウト>(CLI が手元に無ければ npx -y @crearize/ai-dev-helm@<.ai-dev-helm.json の version> integrate-check --main <main のチェックアウト>。trunk が main 以外なら --trunk <名前>)
git status に出ない手元の変更)。大文字小文字の違いはファイルシステムの実際の挙動で判定するintegrate-check: OK(終了コード 0): 次へ進むintegrate-check: NG (<trunk> is not an ancestor only): main を feature に取り込み、quality-check をやり直してから、手順 1 からやり直す(integrate-check も再実行する。main のチェックアウトには触れないので止まらない)integrate-check: NG - change nothing …(終了コード 1): 何も変えずに統合を止め、出力を最後の 1 通で知らせる(例外 X3。オーナーの返答の後に進める)integrate-check: で始まらなければ、判定ではない(使い方の誤りは終了コード 2。CLI が手元に無い・古い devDependency の Unknown argument なども判定ではない)。--main の場所などを直すか、npx -y @crearize/ai-dev-helm@<.ai-dev-helm.json の version> integrate-check … で実行し直すgit push . HEAD:main が使えるかを確かめる(エージェントの設定の deny 規則(Bash(git push:*) 等)・プロジェクトの規則)。使えなければ、下の「git push が使えない場合」の手順に替えるgit switch --detach を実行する(チェックアウト中のブランチは更新できないため)git push . HEAD:main を実行する(fast-forward 以外は git が拒否する。hook はフラグ = HEAD で通す)。deny 規則で止められたら、detach したまま下の「git push が使えない場合」の 2 に進むgit switch main を実行する(失敗したときは下の「最後の git switch main が失敗したとき」).quality-check-passed を削除する公開用・デプロイ先・バックアップの remote への main の送り出し: プロジェクトの規則に従う。
git switch main の前)に最後の 1 通で OK を受け、OK の後に統合と送り出しを続けて行う(途中で止まらない。detached のまま待たない)。OK を受けた後、detach(1 つのチェックアウトでは git switch main)の前に integrate-check をもう一度実行する(待つ間に main のチェックアウトが変わっていないか確かめる)git push . HEAD:main の後。「git push が使えない場合」では手順 2 の git merge --no-ff の後、git switch <feature> の前。1 つのチェックアウトでは git merge の後)で、.quality-check-passed を消す前。フラグのある作業ツリーから送る: feature の worktree が feature にいるなら git push <remote> HEAD:<trunk>、trunk にいるなら git push <remote> <trunk>。main のチェックアウトにはフラグが無く、フラグを消した後は、hook に止められる。送り出しが拒否・失敗したら(デプロイ先の拒否、ネットワーク・認証の失敗等)、.quality-check-passed を消さずに残し、git の出力を最後の 1 通で知らせる(例外 X3)。再送はフラグのある作業ツリーから行う--base <trunk> を付ける実際の detach・push・merge・switch は、上のとおり手順に書いた git コマンドで行う(quality-gate の hook に見える形を保つ。integrate-check の中では行わない)。
最後の git switch main が失敗したとき: integrate-check を通っても、その後に main のチェックアウトにファイルが置かれた等で失敗することがある。ファイルの移動・削除や git switch -f はしない。main のチェックアウトは統合前の commit で detached のまま残し(この場合だけ)、git の出力(妨げているファイルの名前)と状態を最後の 1 通で知らせる(例外 X3)。
git push が使えない場合: 上の表の「1 つのチェックアウト」と同じローカルのマージ(git merge --no-ff <feature>)を、フラグのある feature の worktree で行う。hook はコマンドを実行したチェックアウトのフラグを読むので、フラグの無い main のチェックアウトでの git merge は止まる。
git switch --detach を実行する(detach 済みならそのまま)git switch main → git merge --no-ff <feature> → git switch <feature> を実行するgit switch main を実行する(失敗したときは上と同じ).quality-check-passed を削除するdeny 以外の理由(quality gate、git の non-fast-forward 拒否 等)で push / merge が拒否されたら、両方を元に戻し(feature の worktree が main にいれば git switch <feature>、main のチェックアウトは git switch main)、quality-check をやり直す(main が先に進んでいれば、main を取り込んでから)。main のチェックアウトを detached のまま残さない(例外は上の「最後の git switch main が失敗したとき」だけ)。
git branch -f main <feature>・git fetch . <feature>:main も、フラグが <feature> の先端を指していれば通るが、手順は上の 2 つにそろえる。
git commit -m "feat: [機能名]の実装 (closes #[Issue番号])"
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
バックエンド実装時に使用。DRY原則遵守。コーディング規約準拠。
中文简介正在准备中。当前显示原文说明。
Use before implementing any feature, behavior change, or refactor - settles requirements and design, then gets the design independently reviewed and approved by the user before code is written
中文简介正在准备中。当前显示原文说明。
UI実装後の検証時に使用。agent-browser CLIでブラウザ上の動作を手動検証する。「UIを確認」「画面テスト」と言われたら使用(プロジェクトの E2E スイート実行は quality-check Step 5(推奨度・範囲で自動実施または確認)/ server-startup が担当)。
中文简介正在准备中。当前显示原文说明。
DBマイグレーション作成時に使用。バージョン番号競合防止。mainブランチ確認必須。
中文简介正在准备中。当前显示原文说明。
Use when independent tasks benefit from parallel work without shared state or sequential dependencies
中文简介正在准备中。当前显示原文说明。
Use when continuing implementation from an existing plan
中文简介正在准备中。当前显示原文说明。