AgentSkillsCN

use-branch-complete

当实施完成、所有测试通过,且你需要决定如何整合工作时使用。

SKILL.md
--- frontmatter
name: use-branch-complete
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 → Clean up.

Announce at start: "I'm using the use-branch-complete skill to complete this work."

The Process

Step 1: Verify Tests

Run project's test suite before presenting options:

bash
npm test / cargo test / pytest / go test ./...

If tests fail:

code
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.

Step 2: Present Options

code
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?

Step 3: Execute Choice

Option 1: Merge Locally

bash
git checkout <base-branch>
git pull
git merge <feature-branch>
<test command>  # Verify tests on merged result
git branch -d <feature-branch>  # If tests pass

Then: Cleanup worktree (Step 4)

Option 2: Push and Create PR

bash
git push -u origin <feature-branch>
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>

## Test Plan
- [ ] <verification steps>
EOF
)"

Then: Cleanup worktree (Step 4)

Option 3: Keep As-Is

Report: "Keeping branch <name>. Worktree preserved at <path>."

Don't cleanup worktree.

Option 4: Discard

Confirm first:

code
This will permanently delete:
- Branch <name>
- All commits: <commit-list>
- Worktree at <path>

Type 'discard' to confirm.

If confirmed:

bash
git checkout <base-branch>
git branch -D <feature-branch>

Then: Cleanup worktree (Step 4)

Step 4: Cleanup Worktree

For Options 1, 2, 4:

Check if in worktree:

bash
git worktree list | grep $(git branch --show-current)

If yes:

bash
git worktree remove <worktree-path>

For Option 3: Keep worktree.

Red Flags

Never:

  • Proceed with failing tests
  • Merge without verifying tests on result
  • Delete work without confirmation
  • Force-push without explicit request

Always:

  • Verify tests before offering options
  • Present exactly 4 options
  • Get typed confirmation for Option 4
  • Clean up worktree for Options 1 & 4 only