finishlisted
Install: claude install-skill fakoli/fakoli-plugins
# Finish (`/flow:finish`)
## Overview
Ship work only after fresh verification. Present options. Execute the chosen one. Never act without an explicit choice.
**Core principle:** Verify first, present exactly 4 options, wait for a decision, then execute.
**This skill is invoked:**
- After `/flow:verify` reports all criteria PASS
- Manually when the user runs `/flow:finish`
**Never auto-merge or auto-push.** The skill presents options and waits. The user decides.
---
## Step 1: Re-Run Tests (Fresh Evidence)
Do not rely on the verify step's results. Re-run now, in this message.
Detect the project language first:
```bash
[ -f tsconfig.json ] && echo "TypeScript"
[ -f Cargo.toml ] && echo "Rust"
{ [ -f pyproject.toml ] || [ -f setup.py ]; } && echo "Python"
```
Then run the appropriate test command:
**TypeScript:**
```bash
npx tsc --noEmit && bun test
```
**Python:**
```bash
ruff check . && mypy . && pytest
```
**Rust:**
```bash
cargo check && cargo test
```
**If tests fail — STOP.**
Report the failures with their full output:
```
Tests failing (N failures). Cannot proceed to ship.
[show exact failure output]
Fix the failures and re-run `/flow:finish`.
```
Do not proceed to Step 2. Return control to the user.
**If tests pass:** Continue.
---
## Step 2: Determine Base Branch
```bash
git branch --show-current
git branch --list main master
```
If `main` exists, use `main` as the base branch. If only `master` exists, use `master`. If neither `main` nor `master