packages/forge/src/skills/finishing-a-development-branch/SKILL.md
Use when the user says "finish branch", "merge branch", "ready to merge", "PR ready", "close branch", "submit PR", or wants to finalize a development branch for merge into the base branch.
npx skillsauth add adrozdenko/soleri finishing-a-development-branchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pre-merge checks, PR creation, merge strategy, and branch cleanup.
Announce at start: "I'm using the finishing-a-development-branch skill to prepare this branch for merge."
Run all checks before creating a PR. Stop on any failure.
npm test # all tests pass
npx tsc --noEmit # typecheck clean
npm run lint # no lint errors (if configured)
Verify no uncommitted changes: git status should be clean. Commit or stash before proceeding.
git push -u origin <branch>gh pr create:
feat:, fix:, refactor:)Keep the description focused on why the change exists, not a file-by-file diff recap.
| Signal | Strategy | Rationale | | -------------------------------- | ---------------- | --------------------------------- | | Many WIP/fixup commits | Squash | Clean history, one logical change | | Each commit is a meaningful unit | Merge commit | Preserves granular history | | Single commit on branch | Either | No difference | | Team convention exists | Follow it | Consistency wins |
Default to squash unless the user or repo convention says otherwise.
If the base branch has diverged:
git fetch origin && git rebase origin/<base> — preferred, keeps history lineargit rebase --continue after each resolutiongit merge origin/<base> is acceptable — ask the userNever force-push a rebased branch that others are working on.
After merge is confirmed:
git checkout <base> && git pullgit branch -d <branch> — delete local branchgit push origin --delete <branch>Related skills: executing-plans, verification-before-completion
testing
Triggers: "terse mode", "be brief", "less tokens", "fewer tokens", "compress output", "caveman", or invokes /terse. Token-efficient responses with full technical accuracy.
tools
Triggers: "compress this file", "compress CLAUDE.md", "compress memory", "shrink this", "reduce tokens in file", or invokes /compress. Compresses natural language files to save input tokens.
testing
Triggers: "release", "bump version", "publish packages", "cut a release", "version bump", "npm publish". Bumps monorepo versions, commits, tags, pushes to trigger CI release. Use deliver-and-ship for quality gates.
development
Triggers: "implement X", "build Y", "fix Z", "add feature", or any work task needing planning + execution. Full orchestration loop: plan, execute, complete with vault context and brain recs.