Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
A skill your agent uses when verified work needs integration or cleanup of an existing task-created branch/worktree, or the user explicitly requests merge, PR, or branch lifecycle handling.
$ npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GanyuanRan/Aegis finishing-a-development-branch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GanyuanRan/Aegis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/finishing-a-development-branch .claude/skills/finishing-a-development-branch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "finishing-a-development-branch" agent skill from https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branch into .claude/skills/finishing-a-development-branch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "finishing-a-development-branch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GanyuanRan/Aegis finishing-a-development-branch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GanyuanRan/Aegis.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/finishing-a-development-branch .agents/skills/finishing-a-development-branch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "finishing-a-development-branch" agent skill from https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branch into .agents/skills/finishing-a-development-branch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "finishing-a-development-branch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GanyuanRan/Aegis finishing-a-development-branch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GanyuanRan/Aegis.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/finishing-a-development-branch .cursor/skills/finishing-a-development-branch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "finishing-a-development-branch" agent skill from https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branch into .cursor/skills/finishing-a-development-branch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "finishing-a-development-branch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GanyuanRan/Aegis.git --path skills/finishing-a-development-branch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GanyuanRan/Aegis finishing-a-development-branch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GanyuanRan/Aegis.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/finishing-a-development-branch .gemini/skills/finishing-a-development-branch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "finishing-a-development-branch" agent skill from https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branch into .gemini/skills/finishing-a-development-branch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "finishing-a-development-branch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GanyuanRan/Aegis finishing-a-development-branchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GanyuanRan/Aegis.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/finishing-a-development-branch .github/skills/finishing-a-development-branch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "finishing-a-development-branch" agent skill from https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branch into .github/skills/finishing-a-development-branch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "finishing-a-development-branch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GanyuanRan/Aegis finishing-a-development-branch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GanyuanRan/Aegis.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/finishing-a-development-branch .opencode/skills/finishing-a-development-branch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "finishing-a-development-branch" agent skill from https://github.com/GanyuanRan/Aegis/tree/main/skills/finishing-a-development-branch into .opencode/skills/finishing-a-development-branch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "finishing-a-development-branch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
finishing-a-development-branchA skill your agent uses when verified work needs integration or cleanup of an existing task-created branch/worktree, or the user explicitly requests merge, PR, or branch lifecycle handling.
Finishing A Development Branch is an agent skill from GanyuanRan/Aegis. Use when verified work needs integration or cleanup of an existing task-created branch/worktree, or the user explicitly requests merge, PR, or branch lifecycle handling.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git worktrees. It works with Git. The repository describes itself as: Make AI coding agents architecture-aware: baseline-first, evidence-verified, drift-checked, and safe across long tasks. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 61867e9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Finishing A Development Branch loads about 1.4k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 744 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GanyuanRan/Aegis at commit 61867e9, republished under its MIT licence (© GanyuanRan). 744 words, ~1,401 tokens.
.claude/skills/finishing-a-development-branch/SKILL.md (or your agent's skills folder).Integration choice and checkout lifetime are separate. Verify first, mutate only task-owned resources, then prove what was removed or retained.
Core principle: fresh evidence -> authorized integration -> ownership-aware cleanup -> Git/path readback.
Announce at start: explain which branch/worktree lifecycle is being closed.
Read the task's TaskStartSnapshot and current repository state. Record:
HEAD, branch/detached state, upstream divergence, and active Git ops;git worktree list --porcelain;Stop on conflicts, unexplained detached state, failed verification, dirty/untracked state in
a cleanup target, or unknown ownership. Do not infer the base from the names
main or master; use task records, repository authority, or explicit user
direction. Never auto-stash, reset, clean, pull, rebase, amend, force-push, or
bypass hooks.
For a trusted host-managed detached checkout, follow the repository's approved managed-workspace contract: verify host binding, default cwd, root, and HEAD; then use its scoped local-commit and native handoff path. Report detached HEAD in the receipt. This exception does not authorize automatic deletion of the detached checkout or bypass unknown ownership/binding.
If no task-created branch/worktree exists and integration was not requested,
skip this workflow: report the local task commit plus Task clean and
Repository clean; do not invent merge/PR ceremony.
Run the smallest current-authority test set that proves the completed task. If it fails, preserve all work and return to diagnosis. Do not present the branch as ready.
When a task branch actually needs disposition, present only applicable choices:
Push, PR, remote deletion, release, and force operations require explicit user authorization. Discard requires a fresh, exact typed confirmation naming branch, worktree path, and commits/delta to lose. Generic agreement is insufficient.
Verify the target checkout is safe, switch to the recorded base, merge without an implicit pull, and rerun verification on the merged result. If integration or verification fails, preserve both histories and stop.
Push only the authorized task branch and create/update the PR with summary and fresh test evidence. PR creation does not itself prove merge and does not require the temporary worktree to remain.
Retain the branch. Remove a clean task-created temporary worktree by default; retain it only for an explicit ongoing-checkout need and report why.
After exact confirmation, remove only the named clean task-owned worktree, then the named branch. If either differs from the confirmation, stop and ask again.
Use evidence matching the merge strategy:
git cherry for rebased commits; stable patch-id or bounded
changed-path/tree comparison for squashes), not an ancestor-only test;Never delete a branch merely because a PR was opened or a similarly named commit exists.
For a clean task-owned resource:
git worktree remove <exact-path>;git worktree list --porcelain;HEAD, and repository status.Do not use routine --force, global git worktree prune, wildcard deletion, or
cleanup of resources absent from the task ownership record. On Windows, Git may
unregister a worktree while its directory remains locked: re-check registration
and the exact resolved path, remove only a proven task-owned clean residual when
safe, otherwise retain it and report the lock/path. Never widen deletion scope.
Report:
Task clean: yes|no and Repository clean: yes|no independently;Task clean means no uncommitted task-owned delta remains. Repository clean
means no staged, unstaged, or untracked repository state remains.
This is a local Git receipt, not authoritative completion or merge truth beyond the evidence read back.
Called only when branch/worktree integration or explicit lifecycle handling is
in scope. Pairs with using-git-worktrees and
verification-before-completion.
© GanyuanRan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/finishing-a-development-branch of GanyuanRan/Aegis.
Open the folder on GitHubat commit 61867e9
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in GanyuanRan/Aegis, which our catalogue first saw on October 7, 2026.
Finishing A Development Branch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Finishing A Development Branch this skillGanyuanRan/Aegis | 1.3k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Finishing A Development Branchfarm-fe/farm | 5.6k | 35 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Git Worktree Cleanuplobehub/lobehub | 83k | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Ccmanager Configkbwo/ccmanager | 1.3k | — | ~1.5k | Automated safety check: Pass | MIT |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
farm-fe/farm
A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…
lobehub/lobehub
Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
kbwo/ccmanager
Set up, review, or repair a CCManager config — .ccmanager.json at a git repository root, or the global ~/.config/ccmanager/config.json.
CapSoftware/Cap
Builds a Cap feature in an isolated Git worktree with disposable dev resources, verification, a recorded demo and a neutral pull request, started with /building.
GanyuanRan/Aegis
A skill your agent uses when touching retiring old logic, collapsing duplicate owners, removing fallbacks, or schema/persistence/source-of-truth boundaries; identify opportunities automatically…
GanyuanRan/Aegis
A skill your agent uses when executing a written implementation plan across sessions or with review checkpoints.
GanyuanRan/Aegis
A skill your agent uses when asked for first-principles or Occam's-razor review, or when high-risk decisions involve competing constraints, fallback growth, duplicate owners, or architecture…
GanyuanRan/Aegis
A skill your agent uses when the user explicitly sets an Aegis goal with /aegis-goal, Aegis goal:, or asks to define goal, success evidence, stop condition, or task boundaries before work.
GanyuanRan/Aegis
A skill your agent uses when the user asks to establish shared project language, or project work exposes a conflicting, renamed, or deprecated domain term that needs active semantic modeling.
GanyuanRan/Aegis
A skill your agent uses when the user asks to create, write, update, amend, supersede, or evaluate an ADR, architecture decision record, durable architecture decision, decision log, or baseline sync…
Works with
Categories
A skill your agent uses when verified work needs integration or cleanup of an existing task-created branch/worktree, or the user explicitly requests merge, PR, or branch lifecycle handling. Finishing A Development Branch is an agent skill from GanyuanRan/Aegis. Use when verified work needs integration or cleanup of an existing task-created branch/worktree, or the user explicitly requests merge, PR, or branch lifecycle handling.
Finishing A Development Branch fits situations like: verified work needs integration; cleanup of an existing task-created branch/worktree; the user explicitly requests merge; branch lifecycle handling.
Run `npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a claude-code`. Or copy the skill folder (skills/finishing-a-development-branch in GanyuanRan/Aegis) into .claude/skills/finishing-a-development-branch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a codex`. Or copy the skill folder (skills/finishing-a-development-branch in GanyuanRan/Aegis) into .agents/skills/finishing-a-development-branch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GanyuanRan/Aegis --skill finishing-a-development-branch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/finishing-a-development-branch, .gemini/skills/finishing-a-development-branch, .github/skills/finishing-a-development-branch and .opencode/skills/finishing-a-development-branch in your project.
Going by SKILL.md and its folder, Finishing A Development Branch needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Finishing A Development Branch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Finishing A Development Branch: Finishing a Development Branch (obra/superpowers, 297k stars), Finishing A Development Branch (farm-fe/farm, 5.6k stars), Git Worktree Cleanup (lobehub/lobehub, 83k stars) and Pre-Release PR Triage (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GanyuanRan (a GitHub user) maintains it in GanyuanRan/Aegis, which has 1,337 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 10, 2026.
Source: GanyuanRan/Aegis on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.