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.
Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit…
$ npx skills add spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-git-workflow --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/spec-kitty/spec-kitty.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-git-workflow .claude/skills/spec-kitty-git-workflow && 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 "spec-kitty-git-workflow" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflow into .claude/skills/spec-kitty-git-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-git-workflow", 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/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflowType 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 spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-git-workflow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-git-workflow .agents/skills/spec-kitty-git-workflow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spec-kitty-git-workflow" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflow into .agents/skills/spec-kitty-git-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-git-workflow", 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 spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-git-workflow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-git-workflow .cursor/skills/spec-kitty-git-workflow && 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 "spec-kitty-git-workflow" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflow into .cursor/skills/spec-kitty-git-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-git-workflow", 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/spec-kitty/spec-kitty.git --path src/charter/offering/skills/spec-kitty-git-workflow--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 spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-git-workflow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-git-workflow .gemini/skills/spec-kitty-git-workflow && 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 "spec-kitty-git-workflow" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflow into .gemini/skills/spec-kitty-git-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-git-workflow", 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 spec-kitty/spec-kitty spec-kitty-git-workflowInstalls 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 spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-git-workflow .github/skills/spec-kitty-git-workflow && 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 "spec-kitty-git-workflow" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflow into .github/skills/spec-kitty-git-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-git-workflow", 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 spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install spec-kitty/spec-kitty spec-kitty-git-workflow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/spec-kitty/spec-kitty.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/charter/offering/skills/spec-kitty-git-workflow .opencode/skills/spec-kitty-git-workflow && 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 "spec-kitty-git-workflow" agent skill from https://github.com/spec-kitty/spec-kitty/tree/main/src/charter/offering/skills/spec-kitty-git-workflow into .opencode/skills/spec-kitty-git-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-kitty-git-workflow", 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.
spec-kitty-git-workflowUnderstand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit…
Spec Kitty Git Workflow is an agent skill from spec-kitty/spec-kitty. Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit pattern. Triggers: "how does spec-kitty use git", "worktree management", "auto-commit", "who commits what", "git workflow", "merge workflow", "rebase WPs", "worktree cleanup", "safe commit". Does NOT handle: runtime loop advancement (use runtime-next), setup or repair (use setup-doctor), mission selection (use…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/git-operations-matrix.md`).
It sits in Development, covering Git workflow and Git worktrees. It works with Git and Python. The repository describes itself as: Spec-Driven Development with organizational governance. Specs tell AI agents what to build; Charter governs how they build it. Git-native missions, enforceable workflows, and… The licence is MIT.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2fe1172. 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.
Spec Kitty Git Workflow loads about 2.3k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 138 tokens; SKILL.md has 944 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 spec-kitty/spec-kitty at commit 2fe1172, republished under its MIT licence (© spec-kitty). 944 words, ~2,317 tokens.
.claude/skills/spec-kitty-git-workflow/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Understand the boundary between what spec-kitty's Python code does with git and what LLM agents are expected to do. This boundary is critical — agents that try to create worktrees manually or skip implementation commits will break the workflow.
Python handles infrastructure git — worktrees, lane commits, merges, cleanup. Agents handle content git — implementation commits, rebases, conflict resolution.
| Git Operation | Who Does It | When |
|---|---|---|
git worktree add | Python | spec-kitty implement WP## |
git commit (planning artifacts) | Python | Before worktree creation |
git commit (lane transitions) | Python | WP moves through claimed/in_progress/for_review/in_review |
git commit (implementation code) | Agent | After writing code in worktree |
git merge/auto-rebase (stale lane sync) | Python or Agent | When stale checks classify the lane as recoverable |
git merge (lane → mission → target) | Python | spec-kitty merge |
git push | Python (opt-in) | spec-kitty merge --push only |
git push | Agent | Any other push scenario |
| Conflict resolution | Agent | During rebase or manual merge |
git worktree remove | Python | After successful merge |
git branch -d (cleanup) | Python | After successful merge |
When you run spec-kitty implement WP01, Python:
git worktree add -b kitty/mission-042-mission-lane-a .worktrees/042-mission-lane-a kitty/mission-042-missionIt also records the lane workspace context in
.kittify/workspaces/<feature>-<lane>.json so later commands resolve the same
lane worktree deterministically.
The agent never creates worktrees. Always use spec-kitty implement.
For dependent WPs in the same execution lane:
spec-kitty implement WP02This reuses the lane worktree instead of creating a second workspace:
# WP02 reuses .worktrees/042-mission-lane-aBefore creating a worktree, Python checks if kitty-specs/042-mission/ has
uncommitted changes on the primary branch. If so, it commits through
BookkeepingTransaction and safe_commit:
safe_commit(paths=["kitty-specs/042-mission/"], message="chore: Planning artifacts for 042-mission")Controlled by: auto_commit: true in .kittify/config.yaml (default: true).
Can be disabled per-command with --no-auto-commit.
When a WP moves to doing or for_review, Python uses the safe-commit
pattern to commit only the WP frontmatter file:
"chore: Start WP01 implementation [claude]""chore: Start WP01 review [claude]"The safe-commit pattern prevents accidentally committing agent work-in-progress:
emit_status_transition() appends to status.events.jsonl, updates
status.json, and modifies WP frontmatter — but does NOT auto-commit
these files. They accumulate as uncommitted changes until the next lane
transition auto-commit or the agent commits them.
This is by design — status changes happen frequently and committing each one would create excessive git noise.
Run spec-kitty accept --mission 042-mission before merge once every WP is
approved. Acceptance is a readiness nudge and artifact check; merge still owns
the final mission-close transition.
spec-kitty merge --mission 042-mission runs the full merge sequence:
Python creates a detached merge worktree from the target branch, merges lane branches into the mission branch, merges the mission ref using the selected strategy, advances the target branch ref to the detached result, then removes merged lane worktrees and branches.
Merge order follows the dependency graph (topological sort).
Supports 3 strategies: squash (default), merge (--no-ff), rebase.
--push is opt-in — without it, the merge is local only.
Before merge, Python validates:
git status --porcelain)git rev-list --left-right --count)If any check fails, merge is blocked with specific error messages.
All actual code work must be committed by the agent. Python creates the worktree but never commits code:
cd .worktrees/042-mission-lane-a
# ... write code, run tests ...
git add src/ tests/
git commit -m "feat(WP01): implement auth middleware"Validation: When the agent tries to move WP to for_review, spec-kitty
checks that the worktree has commits ahead of the base branch
(git rev-list --count <base>..HEAD). If zero commits, the transition is
rejected.
If a lane branch has advanced while you were away:
cd .worktrees/042-mission-lane-a
spec-kitty implement WP## --mission 042-missionLet the stale-check and auto-merge classifier decide whether the lane can be refreshed automatically from the mission branch. Only perform a manual rebase when the CLI reports a conflict that requires agent resolution.
Python displays the lane workspace and branch, but the agent resolves conflicts and completes the rebase manually when needed.
Task finalization computes a lane that already contains the required dependency shape. Agents do not choose one dependency as a manual base and do not manually merge sibling lane outputs to reconstruct the lane.
spec-kitty merge only pushes with --push. All other pushing is the
agent's responsibility.
If spec-kitty merge encounters conflicts, the agent must resolve them.
Python does not attempt automatic conflict resolution.
# .kittify/config.yaml
auto_commit: true # defaultWhen true, spec-kitty auto-commits:
When false, agents must commit everything manually.
Per-command override: --no-auto-commit flag on spec-kitty implement.
1. CREATED
spec-kitty implement WP01
→ git worktree add -b kitty/mission-042-mission-lane-a .worktrees/042-mission-lane-a kitty/mission-042-mission
→ .kittify/workspaces/042-mission-lane-a.json created
2. ACTIVE (agent works here)
cd .worktrees/042-mission-lane-a
→ agent writes code, commits, tests
→ WP status: in_progress
3. FOR REVIEW
spec-kitty agent tasks move-task WP01 --to for_review
→ auto-commit: "chore: Start WP01 review"
→ reviewer checks the diff
4. MERGED
spec-kitty accept --mission 042-mission
spec-kitty merge --mission 042-mission
→ detached merge worktree validates and advances target branch
→ git worktree remove .worktrees/042-mission-lane-a --force
→ git branch -d kitty/mission-042-mission-lane-a
→ .kittify/workspaces/042-mission-lane-a.json removed
5. CLEANED UP
Worktree directory gone, branch deleted, workspace context removedSpec Kitty installs a scoped commit-guard hook for managed workflows. Do not
edit .git/hooks/ by hand; use the CLI repair path when hook state is stale.
Agent creates worktree manually — Don't git worktree add yourself.
Use spec-kitty implement. Manual worktrees won't have workspace context,
canonical workspace context, or proper branch naming.
Agent commits in the repository root checkout during implementation — Implementation commits belong in the worktree, not in the repository root checkout. The repository root checkout is for planning artifacts only.
Agent pushes without being asked — Never auto-push. Only push when
the user explicitly requests it or when using spec-kitty merge --push.
Agent modifies other WPs from a worktree — Each worktree is isolated to one WP. Don't modify files belonging to other WPs.
Agent skips commits before for_review — Spec-kitty validates that worktree has commits ahead of base before accepting the transition.
references/git-operations-matrix.md -- Complete matrix of every git command spec-kitty runs© spec-kitty, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in src/charter/offering/skills/spec-kitty-git-workflow of spec-kitty/spec-kitty.
Open the folder on GitHubat commit 2fe1172
Spec Kitty Git Workflow 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 |
|---|---|---|---|---|---|---|
| Spec Kitty Git Workflow this skillspec-kitty/spec-kitty | 1.7k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Git Worktree Cleanuplobehub/lobehub | 83k | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Skyvern Version BumpSkyvern-AI/skyvern | 23k | — | ~1k | Automated safety check: Notes | AGPL-3.0 | |
| Saleor Commit Workflowsaleor/saleor | 23k | — | ~575 | Automated safety check: Pass | BSD-3-Clause | |
| 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.
lobehub/lobehub
Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.
Skyvern-AI/skyvern
Walks through a Skyvern open-source release bump: update the version, rebuild the Python and TypeScript SDKs with Fern, commit, and open a pull request.
saleor/saleor
Commits changes in the Saleor codebase and works through pre-commit hook failures from ruff, mypy, the GraphQL schema check and the migrations check.
kbwo/ccmanager
Set up, review, or repair a CCManager config — .ccmanager.json at a git repository root, or the global ~/.config/ccmanager/config.json.
pybind/pybind11
Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.
spec-kitty/spec-kitty
Install, verify, and recover the modern Spec Kitty 2.0.11+ operating surface.
spec-kitty/spec-kitty
Explain Spec Kitty work with compact, checkable visuals. An agent skill from spec-kitty/spec-kitty.
spec-kitty/spec-kitty
Curate and apply canonical terminology across Spec Kitty missions.
spec-kitty/spec-kitty
Understand how Spec Kitty missions work: the 4 built-in mission types, how they define workflows via step contracts and action indices, how missions and work packages relate, how templates are…
spec-kitty/spec-kitty
Teach agents and external systems how to use spec-kitty orchestrator-api to drive workflows from outside the host CLI.
spec-kitty/spec-kitty
Review runtime-owned outputs using the Spec Kitty review workflow surface, then direct approval or rejection with structured feedback.
Categories
Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit…. Spec Kitty Git Workflow is an agent skill from spec-kitty/spec-kitty. Understand how Spec Kitty manages git: what git operations Python handles automatically, what agents must do manually, worktree lifecycle, auto-commit behavior, merge execution, and the safe-commit pattern.
Spec Kitty Git Workflow fits situations like: tasks that involve Git workflow; tasks that involve Git worktrees.
Run `npx skills add spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a claude-code`. Or copy the skill folder (src/charter/offering/skills/spec-kitty-git-workflow in spec-kitty/spec-kitty) into .claude/skills/spec-kitty-git-workflow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a codex`. Or copy the skill folder (src/charter/offering/skills/spec-kitty-git-workflow in spec-kitty/spec-kitty) into .agents/skills/spec-kitty-git-workflow 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 spec-kitty/spec-kitty --skill spec-kitty-git-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spec-kitty-git-workflow, .gemini/skills/spec-kitty-git-workflow, .github/skills/spec-kitty-git-workflow and .opencode/skills/spec-kitty-git-workflow in your project.
Going by SKILL.md and its folder, Spec Kitty Git Workflow needs the command-line tools its instructions call (git). Our summary lists: Python 3.
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.
Spec Kitty Git Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 967 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Spec Kitty Git Workflow: Finishing a Development Branch (obra/superpowers, 296k stars), Git Worktree Cleanup (lobehub/lobehub, 83k stars), Skyvern Version Bump (Skyvern-AI/skyvern, 23k stars) and Saleor Commit Workflow (saleor/saleor, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
spec-kitty (a GitHub organization) maintains it in spec-kitty/spec-kitty, which has 1,672 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 7, 2026.
Source: spec-kitty/spec-kitty on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.