.claude/skills/commit-merge/SKILL.md
Commit, push, merge, and complete task with quality review (タスク完了)
npx skillsauth add AtsushiHashimoto/research-project-template .claude/skills/commit-mergeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
変更をコミット&プッシュ&マージし、タスクを完全に完了する。
重要:
/commit/push を使用/commit/push を使用/commit/merge # 従来通り確認あり
/commit/merge --auto # 品質チェック通過で自動承認
/commit/merge auto # 同上(自然言語)
Auto-Approval の動作:
scripts/quality-check.sh)がパス → 自動で Phase 1 へ進む/issue/auto から呼び出された場合は自動的に auto モードで動作する。
| 特徴 | /commit/merge | /commit/push | |------|--------------|--------------| | 目的 | タスク完了 | 途中保存 | | 品質レビュー | ✅ 実施 | ❌ なし | | PR作成 | ✅ 作成 | ❌ なし | | マージ | ✅ squash merge | ❌ なし | | Issueクローズ | ✅ クローズ | ❌ 開いたまま | | Worktree削除 | ✅ 削除 | ❌ 残す |
目的: AI生成コードの品質を保証し、Issue目的との整合性を確認
タスク完了前に未確認のQA回答がないか確認:
# docs/qa/answers.jsonl をチェック
if [ -f "docs/qa/questions.jsonl" ]; then
echo "QA回答を確認中..."
fi
新しい回答がある場合:
未回答の質問がある場合:
/issue/finish の Step 0 で処理)Auto-Approval モード時: QA回答の確認はスキップする(/issue/auto の Phase 0 で既に処理済み)。
git status
git diff --stat
品質チェックスクリプトを実行
# プロジェクト固有の品質チェックスクリプトを実行
if [ -x "./scripts/quality-check.sh" ]; then
./scripts/quality-check.sh
else
echo "Warning: scripts/quality-check.sh not found or not executable"
echo "Skipping automated quality checks"
fi
スクリプトが失敗した場合は修正を提案し、再実行する。
/review による多角的レビューを実施
★★★ このステップは絶対にスキップしない。Auto-Approval でも例外なし ★★★
/review コマンドを呼び出し、サブエージェントによる多角的レビューを実行する。
セルフチェックリストではなく、専門サブエージェント(アーキテクチャ、リスク、テスト、
Fallbackチェッカー、仕様充足チェッカー等)が並列にレビューを行う。
/review の結果は後続の Phase 2 で PR 本文に記録するため、必ず保持すること。
※ lint, type check, テストは Step 2 の scripts/quality-check.sh で実施済み
レビュー結果の提示
/review で問題が検出された場合は修正してから再レビュー承認判定
Auto-Approval モードの判定:
--auto または auto が含まれる場合 → Auto-Approval/issue/auto から呼び出された場合 → Auto-ApprovalAuto-Approval モード:
通常モード(ユーザー承認待ち):
品質チェックが完了しました。
【レビュー結果】
- Issue目的との整合性: ✅/❌
- プロジェクトルール遵守: ✅/❌
- 既存コードとの一貫性: ✅/❌
- ハードコーディング: ✅ なし / ❌ あり
- ポータビリティ: ✅/❌
- データ保護設計: ✅/❌
- 依存関係の永続化: ✅/❌
- テスト実施: ✅/❌
- コード品質: ✅/❌
- セキュリティ: ✅/❌
この内容で commit&push&merge を実行しますか?
- ✅ はい → Phase 1へ進む
- ❌ いいえ → 修正して再レビュー
ステージング&コミット
git add .
git commit -m "適切なコミットメッセージ
Closes #${ISSUE_ID}
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>"
プッシュ
git push -u origin $(git branch --show-current)
PR作成(/review の結果を必ず記録)
★★★ 絶対ルール: レビュー結果のないPRはマージ禁止 ★★★
PRの本文には Phase 0 Step 3 の /review 結果を記録すること。
「✅ コードレビュー実施済み」のような要約は禁止。各サブエージェントの判定結果を記載する。
ISSUE_TITLE=$(gh issue view "$ISSUE_ID" --json title --jq '.title')
gh pr create \
--title "${ISSUE_TITLE} (#${ISSUE_ID})" \
--body "Closes #${ISSUE_ID}
## 変更概要
[変更内容のサマリー]
## /review 結果
| サブエージェント | 判定 | 詳細 |
|-----------------|------|------|
| アーキテクチャレビュー | ✅/❌ | [具体的な判定内容] |
| リスクレビュー | ✅/❌ | [具体的な判定内容] |
| テストレビュー | ✅/❌ | [具体的な判定内容] |
| Fallbackチェッカー | ✅/❌ | [検出結果] |
| 仕様充足チェッカー | ✅/❌ | [充足/未充足項目] |
| Issue網羅性チェッカー | ✅/❌ | [各要件への対応] |
## テスト結果
[テスト実行結果のサマリー]
"
マージ前のレビュー記録チェック(例外なし)
★★★ このチェックは絶対にスキップしない。Auto-Approval でも例外なし ★★★
PRの本文に「/review 結果」セクションが含まれていることを確認する。 含まれていない場合はマージを中断し、PR本文を修正してから再実行する。
PR_NUMBER=$(gh pr list --head "$(git branch --show-current)" --json number --jq '.[0].number')
PR_BODY=$(gh pr view "$PR_NUMBER" --json body --jq '.body')
if ! echo "$PR_BODY" | grep -q "/review 結果"; then
echo "ERROR: PRにレビュー結果が記録されていません。マージを中断します。"
exit 1
fi
マージ&クリーンアップスクリプトを実行
Worktree内からでも安全にマージ&クリーンアップを行うスクリプトを使用:
# PR番号を取得(直前のgh pr createの出力から、またはgh pr listで確認)
PR_NUMBER=$(gh pr list --head "$(git branch --show-current)" --json number --jq '.[0].number')
# worktreeパスとメインリポジトリパスを取得
WORKTREE_PATH=$(pwd)
MAIN_REPO=$(git worktree list | head -1 | awk '{print $1}')
# メインリポジトリに移動してからスクリプトを実行
# ★ cd を先に行うことで、worktree削除後もClaudeのcwdが有効なまま
cd "$MAIN_REPO"
./scripts/commit-merge.sh "$PR_NUMBER" "$WORKTREE_PATH"
このスクリプトは以下を自動で実行:
ポイント: スクリプト実行前に cd "$MAIN_REPO" することで、worktree削除後もClaudeのcwdが有効なままになります。
Issueに完了報告
gh issue comment ${ISSUE_ID} --body "✅ タスク完了
- ✅ 品質チェック実施
- ✅ コードレビュー完了
- ✅ PR作成&マージ
- ✅ クリーンアップ完了"
Issueクローズ(PRマージで自動クローズされなかった場合)
gh issue close ${ISSUE_ID}
/compact
現在のブランチから Issue 番号を取得:
BRANCH=$(git branch --show-current)
ISSUE_ID=$(echo "$BRANCH" | grep -oE '[0-9]+' | head -1)
# エラーチェック
if [ -z "$ISSUE_ID" ]; then
echo "Error: Could not extract Issue ID from branch name: $BRANCH"
echo "Branch name must contain Issue number (e.g., feature/123-description)"
exit 1
fi
Phase 0-5 を順次実行してください。
重要: Phase 0 のユーザー承認なしでは Phase 1 以降に進まないこと(Auto-Approval モード時は品質チェック通過をもって自動承認とする)。
scripts/commit-merge.sh がworktree検出とクリーンアップを自動処理data-ai
Set up data directories in a new worktree
testing
Safely remove a worktree after checking for important data
data-ai
Initialize worktree data protection configuration (run once in main repository)
research
Sync updates from research-project-template (テンプレート更新の取り込み)