Skip to content
Back to skills

Branch Finish

ASecurity

Use when a development task is complete and ready to merge or close — before running git merge, git push, or closing a branch. Triggers on: 'I'm done', 'ready to merge', 'merge this', 'finish the branch', 'close the task'.

  • 10 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
ai-agentsbashnodegit

Works with

  • cli

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add yanacuti1121/Yana-AI --skill branch-finish --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Branch Finish?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Branch Finish
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yanacuti1121-branch-finish/badge)](https://www.skillsdirectory.com/skills/yanacuti1121-branch-finish)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: branch-finish
description: "Use when a development task is complete and ready to merge or close — before running git merge, git push, or closing a branch. Triggers on: 'I'm done', 'ready to merge', 'merge this', 'finish the branch', 'close the task'."
---

# Branch Finish Checklist Skill

Before merging or closing a branch, verify the work is actually done and the branch
is clean. This prevents partial merges and repo pollution.

## When to use this skill

- About to run `git merge`, `git push`, or close a worktree
- User says "merge this", "I'm done", "wrap it up"
- Task is marked complete in TODO.md

## The Checklist

Run each step and show output. Do not skip.

### 1 — Tests pass

```bash
bash core/tests/hooks/run-hook-tests.sh 2>&1 | tail -5
```

Required: `0 failed`. If tests fail → stop. Do not merge.

### 2 — No rogue files

```bash
git status --short
```

Check for:
- Untracked files that should not exist (`.env*`, `*.log`, `node_modules/`)
- Modified files outside the task scope

If anything unexpected appears → investigate before merging.

### 3 — Diff is clean

```bash
git diff main...HEAD --stat
```

Show the list of changed files. Confirm with user: "These N files will be merged. Correct?"

### 4 — No debug artifacts

```bash
git diff main...HEAD | grep -n "console\.log\|debugger\|TODO REMOVE\|HACK\|XXX" || echo "none found"
```

If anything found: list it. User decides whether to clean up.

### 5 — Commit messages are conventional

```bash
git log main..HEAD --oneline
```

Each commit message should follow `type: subject` (feat, fix, chore, docs, refactor).
If not: warn but do not block.

### 6 — Present options

After checklist passes:

```
Branch finish checklist: PASS

What next?
1. Merge locally (git merge into main)
2. Push and open PR
3. Keep branch open (not done yet)
4. Discard branch (confirm required)

Choose 1-4:
```

Wait for user choice before doing anything.

### Option 1: Merge locally
```bash
git checkout main
git merge <branch-name>
git branch -d <branch-name>
```

### Option 2: Push + PR
```bash
git push -u origin <branch-name>
# Then create PR via gh or GitLab CLI if available
```

### Option 3: Keep open
Report: "Branch kept open. Resume with /resume when ready."

### Option 4: Discard
Require typed "discard" confirmation before running:
```bash
git checkout main
git branch -D <branch-name>
```

## Constraints

- Never merge with failing tests.
- Never force-push without explicit user request.
- Always show the file list before merging — no silent merges.
- For Option 4, require typed confirmation. No "yes/y" shortcuts.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.