원클릭으로
finishing-a-development-branch
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use before any creative work - creating features, building components, adding functionality, or modifying behavior.
Use when implementing new features or applications, or starting complex multi-step tasks that may benefit from structured workflows like brainstorming, TDD, or debugging. NOT for simple questions or straightforward operations.
Use when you have a spec or requirements for a multi-step task, before touching code
Use when executing implementation plans with independent tasks in the current session
Use when completing tasks, implementing major features, or before merging to verify work meets requirements
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees in <project_root>/.worktrees
| name | finishing-a-development-branch |
| description | Use when implementation is complete, all tests pass, and you need to decide how to integrate the work |
Guide completion of development work by presenting clear options and handling chosen workflow.
Core principle: Verify tests → Present options → Execute choice → Sync living specs → Clean up.
Announce at start: "I'm using the finishing-a-development-branch skill to complete this work."
Before presenting options, verify tests pass:
# Run project's test suite
npm test / cargo test / pytest / go test ./...
If tests fail:
Tests failing (<N> failures). Must fix before completing:
[Show failures]
Cannot proceed with merge/PR until tests pass.
Stop. Don't proceed to Step 2.
If tests pass: Continue to Step 2.
# Try common base branches
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
Or ask: "This branch split from main - is that correct?"
Present exactly these 4 options:
Implementation complete. What would you like to do?
1. Merge back to <base-branch> locally
2. Push and create a Pull Request
3. Keep the branch as-is (I'll handle it later)
4. Discard this work
Which option?
Don't add explanation - keep options concise.
# Switch to base branch
git checkout <base-branch>
# Pull latest
git pull
# Merge feature branch
git merge <feature-branch>
# Verify tests on merged result
<test command>
# If tests pass
git branch -d <feature-branch>
Then: Sync living specs (Step 4.5), then Cleanup worktree (Step 5)
# Push branch
git push -u origin <feature-branch>
# Create PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>
## Test Plan
- [ ] <verification steps>
EOF
)"
Then: Sync living specs (Step 4.5), then Cleanup worktree (Step 5)
Sync living specs (Step 4.5).
Then report: "Keeping branch . Worktree preserved at ."
Don't cleanup worktree.
Confirm first:
This will permanently delete:
- Branch <name>
- All commits: <commit-list>
- Worktree at <path>
Type 'discard' to confirm.
Wait for exact confirmation.
If confirmed:
git checkout <base-branch>
git branch -D <feature-branch>
Do NOT sync living specs — the work is being discarded.
Then: Cleanup worktree (Step 5)
For Options 1, 2, 3 only. (Skip for Option 4 — discard.)
Read the delta spec from docs/design/<date>-<topic>-delta.md and merge it into the living specs in docs/specs/.
The delta spec was derived during planning by comparing the feature spec (proposed behavior) against the living spec (current behavior). The sync step merges the approved changes back into the living spec, completing the cycle.
Skip the sync entirely. Commit a note if appropriate: note: <topic> had no behavioral changes.
For each ## Domain: <name> section in the delta:
Read docs/specs/<name>.md (may not exist yet)
Read the delta's domain section
Apply changes:
ADDED Requirements:
## Requirements# <Domain>, a ## Purpose section (brief), and a ## Requirements section with the ADDED requirementsMODIFIED Requirements:
REMOVED Requirements:
Show summary of what changed and get user confirmation before committing:
## Living Spec Sync Summary
Updated: docs/specs/notifications.md
+ Added requirement: push-delivery
~ Modified requirement: email-delivery (added 1 scenario)
Confirm sync? (y/n)
sync: update <domain> spec(s)docs/specs/<domain>.mdFor Options 1, 2, 4:
Check if in worktree:
git worktree list | grep $(git branch --show-current)
If yes:
git worktree remove <worktree-path>
For Option 3: Keep worktree.
| Option | Merge | Push | Keep Worktree | Sync Specs | Cleanup Branch |
|---|---|---|---|---|---|
| 1. Merge locally | ✓ | - | - | ✓ | ✓ |
| 2. Create PR | - | ✓ | ✓ | ✓ | - |
| 3. Keep as-is | - | - | ✓ | ✓ | - |
| 4. Discard | - | - | - | ✗ | ✓ (force) |
Skipping test verification
Open-ended questions
Automatic worktree cleanup
No confirmation for discard
Syncing living specs for discarded work
Syncing before user confirmation
Never:
Always:
Called by:
Pairs with: