AgentSkillsCN

finish-feature

完成功能工作并合并回主分支。在用户想完成功能、关闭功能或合并功能分支时使用。切换到主分支,拉取最新更改,合并功能分支并推送到远程。

SKILL.md
--- frontmatter
name: finish-feature
description: Complete feature work and merge back to main branch. Use when user wants to finish a feature, close a feature, or merge feature branch. Switches to main, pulls latest changes, merges feature branch, and pushes to remote.
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git diff:*), Bash(git log:*), Bash(git branch:*), Bash(git push:*), Bash(git pull:*), Bash(git merge:*), Bash(git checkout:*), Bash(git stash:*), Bash(git tag:*)

Finish Feature

Process

1. Verify Current Branch

Run git branch --show-current:

  • If main/master: Ask which feature branch to merge
  • If feature branch: Confirm this branch

2. Check Working Directory

Run git status:

  • Uncommitted changes? Ask: commit or stash?
  • Clean? Proceed

3. Store Feature Branch Name

bash
FEATURE_BRANCH=$(git branch --show-current)

4. Switch to Main

Determine main branch (git branch --list main master), then:

bash
git checkout main  # or master

5. Pull Latest

bash
git pull origin main  # or master

6. Merge Feature Branch

bash
git merge $FEATURE_BRANCH

Conflicts? List files via git status, wait for user resolution: git add . + git commit

7. Push

bash
git push origin main  # or master

8. Delete Feature Branch?

Ask user:

Local:

bash
git branch -d $FEATURE_BRANCH

Remote:

bash
git push origin --delete $FEATURE_BRANCH

9. Confirm Completion

Output:

  • Merged branch: <feature-branch-name>
  • Push status
  • Deletion status (if applicable)

Constraints

  • Pull main before merge
  • Verify clean working dir before branch switch
  • Never force push to main
  • User resolves conflicts
  • Always ask before deleting branches

Example

User: "Finish user-auth feature"

  1. On feature/user-auth, git status clean
  2. git checkout main && git pull origin main
  3. git merge feature/user-auth && git push origin main
  4. Ask: Delete branch? → User confirms
  5. Output: "Feature 'user-auth' merged to main, pushed, branch deleted"