Skip to content
Back to skills

Finish

ASecurity

Complete a feature — merge the approved PR, record plan completion, route the homolog→main decision. Use on `/finish` or "finish the feature".

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
ai-agentsshellbashgitapi

Works with

  • terminal
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add bravros/bravros --skill finish --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Finish?

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

Security grade badge for Finish
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bravros-finish/badge)](https://www.skillsdirectory.com/skills/bravros-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: finish
core: true
description: Complete a feature — merge the approved PR, record plan completion, route the homolog→main decision. Use on `/finish` or "finish the feature".
---

# finish

Read [briefing.md](references/briefing.md) on demand for detailed context and instructions.

INTENT: land this feature — merge the PR into its base, record completion in `.planning/events.jsonl`, route the homolog→main decision. Git/project operation only; never touches application code.

## Quick Summary

1. **Resolve PR & Base**: Determine PR and target base (`homolog` or `main`), then drop a **stale review stamp** (Step 1b) — after a multi-round `/address-pr` it still names round 1's commit.
2. **Close Plan**: Record `completed` event in `.planning/events.jsonl`.
3. **CI Check**: `gh pr checks --watch --fail-fast` **redirected to a file**, then `RC=$?` — never piped. Then the readiness gate: merge only at `mergeStateStatus: CLEAN`.
4. **Merge & Verify**: Execute merge gate and post-merge blob verification.
5. **Sync & Clean**: Fast-forward local branches and sweep review stamps.
6. **Main Route**: Route the homolog→main decision with operator confirmation — the main PR repeats step 3 in full. Ask it under a **`Main merge`** header with all three options, and **never use the word "promote" toward the operator here**: this path merges through its own PR gate and needs no token — the police **staging lane** lets a `CLEAN` homolog→main PR merge — but the word sends them off to mint one (afterpay #395/#396 — minted mid-merge, expired unused). `/promote` belongs only in the *defer* option, where it is the real next path. A `✋🏽 Police Block` names its reason: relay it in one line and follow the table in `references/flow.md` Step 7 (UNKNOWN → wait, then retry the same command) — never `gh api`/raw HTTP (B-0036), never `/promote`.
7. **Merge hygiene**: the merge line carries the **literal** PR number (`gh pr merge 1234 --merge`) — the police hook reads raw command text, so a `$VAR` or backtick in the PR argument is unreadable → blocked; no `cd … &&` unless it targets the exact session cwd, never `| tail`; redirect to a file, capture `RC`, inspect. Lock-acquire / merge / `RC` / lock-release may share one Bash call.
8. **Main-merge preflight (before ANY `gh pr merge` into `main`)**: run `bravros police status` (read-only; always exits 0 — read the text: `Police token is MISSING or INVALID` = no token) and `gh pr view 1234 --json mergeStateStatus -q .mergeStateStatus` with the literal number. `CLEAN` + head `homolog` ⇒ the staging lane passes without a token. Not CLEAN (e.g. `UNSTABLE`) ⇒ name the failing check and stop — never attempt the merge. Head is not `homolog` (feature → main) and the token is missing ⇒ ONE ask: "run `bravros police unlock` in a separate terminal, then tell me"; wait — never run `merge-lock acquire … ; gh pr merge` hoping it passes.
9. **Last line, always**: `main @ <sha>` or `homolog only — production pending` — the operator asks "merged to main?" after every run.

Refer to [`references/flow.md`](references/flow.md) for full shell script flow details. Its bash
is copy-paste code, not illustration: a shell-trap table, the stamp-freshness block, the CI and
readiness gates, and the blob verification all have to run **verbatim**.

Files in this skill

  • SKILL.md1.8 KB
  • references/briefing.md6.9 KB
  • references/flow.md21.4 KB
  • skill.yaml7.2 KB

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.