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 commits on a feature branch are messy, out of logical order, mix unrelated changes, or need restructuring before a PR - also triggered by "clean up history", "reorganize…
$ npx skills add deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install deadlock-mod-manager/deadlock-mod-manager recomposing-commits --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/deadlock-mod-manager/deadlock-mod-manager.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/recomposing-commits .claude/skills/recomposing-commits && 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 "recomposing-commits" agent skill from https://github.com/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commits into .claude/skills/recomposing-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recomposing-commits", 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/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commitsType 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 deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install deadlock-mod-manager/deadlock-mod-manager recomposing-commits --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deadlock-mod-manager/deadlock-mod-manager.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/recomposing-commits .agents/skills/recomposing-commits && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "recomposing-commits" agent skill from https://github.com/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commits into .agents/skills/recomposing-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recomposing-commits", 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 deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install deadlock-mod-manager/deadlock-mod-manager recomposing-commits --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deadlock-mod-manager/deadlock-mod-manager.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/recomposing-commits .cursor/skills/recomposing-commits && 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 "recomposing-commits" agent skill from https://github.com/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commits into .cursor/skills/recomposing-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recomposing-commits", 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/deadlock-mod-manager/deadlock-mod-manager.git --path .agents/skills/recomposing-commits--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 deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install deadlock-mod-manager/deadlock-mod-manager recomposing-commits --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deadlock-mod-manager/deadlock-mod-manager.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/recomposing-commits .gemini/skills/recomposing-commits && 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 "recomposing-commits" agent skill from https://github.com/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commits into .gemini/skills/recomposing-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recomposing-commits", 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 deadlock-mod-manager/deadlock-mod-manager recomposing-commitsInstalls 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 deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/deadlock-mod-manager/deadlock-mod-manager.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/recomposing-commits .github/skills/recomposing-commits && 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 "recomposing-commits" agent skill from https://github.com/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commits into .github/skills/recomposing-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recomposing-commits", 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 deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install deadlock-mod-manager/deadlock-mod-manager recomposing-commits --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deadlock-mod-manager/deadlock-mod-manager.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/recomposing-commits .opencode/skills/recomposing-commits && 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 "recomposing-commits" agent skill from https://github.com/deadlock-mod-manager/deadlock-mod-manager/tree/main/.agents/skills/recomposing-commits into .opencode/skills/recomposing-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recomposing-commits", 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.
recomposing-commitsA skill your agent uses when commits on a feature branch are messy, out of logical order, mix unrelated changes, or need restructuring before a PR - also triggered by "clean up history", "reorganize…
Recomposing Commits is an agent skill from deadlock-mod-manager/deadlock-mod-manager. Use when commits on a feature branch are messy, out of logical order, mix unrelated changes, or need restructuring before a PR - also triggered by "clean up history", "reorganize commits", "recompose branch", "make commits logical", or similar
Its SKILL.md is about 2.8k 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. It works with Git. The repository describes itself as: A mod manager for the Valve game Deadlock. The licence is GPL-3.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 45c273c. 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.
Recomposing Commits loads about 2.8k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 995 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 deadlock-mod-manager/deadlock-mod-manager at commit 45c273c, republished under its GPL-3.0 licence (© deadlock-mod-manager). 995 words, ~2,775 tokens.
.claude/skills/recomposing-commits/SKILL.md (or your agent's skills folder).Analyze messy commits → isolate in a worktree → let user review → apply back.
Core principle: The original branch is NEVER modified until the user explicitly approves the new history. Worktree isolation and the review gate are non-negotiable — even if the user says "just do it" or "I trust you, skip review."
Announce at start: "I'm using the recomposing-commits skill to reorganize your branch history."
git rev-parse --abbrev-ref HEADRefuse immediately if the current branch is any of:
main, master, dev, develop, development, staging, production, release, or matches release/* or hotfix/*.
⛔ Recomposing commits on '<branch>' is not allowed.
This skill only works on feature branches.
Please switch to your feature branch first.Do NOT create a workaround branch. Do NOT proceed. Refuse and stop.
Do NOT use when:
git log --onelineDisplay the output to the user.
Which commit should be the start of the recompose?
Provide the SHA of the first commit you want to reorganize.
(All commits from that SHA through HEAD will be recomposed.)
Enter SHA:Compute the base: BASE=$(git rev-parse <user-sha>^)
git log --oneline $BASE..HEAD
git diff $BASE HEADRead all diffs. Identify logical groups. Flag any files that appear in multiple logical groups (overlapping files — see Step 6).
Always use an absolute path. Relative paths like .git/recompose/feat/HISBA-mastra-ai silently break when branch names contain slashes AND when shell state doesn't persist between tool calls.
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
REPO_ROOT=$(git rev-parse --show-toplevel)
WORKTREE_PATH="$REPO_ROOT/.git/recompose/$BRANCH_NAME"
WORKTREE_BRANCH="recompose/$BRANCH_NAME"
git worktree add "$WORKTREE_PATH" -b "$WORKTREE_BRANCH"All subsequent git operations happen inside $WORKTREE_PATH. The original branch is untouched.
Use git -C with the absolute path — do NOT rely on cd. Each Bash tool invocation starts with a fresh shell; cd from a previous call does not carry over.
git -C "$WORKTREE_PATH" reset --mixed $BASEAll changes are now unstaged in the worktree, ready to be re-staged logically.
Use git -C "$WORKTREE_PATH" for every command. Never assume the shell is cd'd into the worktree.
For files that belong cleanly to ONE logical commit:
git -C "$WORKTREE_PATH" add <file> <file2>
git -C "$WORKTREE_PATH" commit --no-verify -m "type: description"For overlapping files (same file spans multiple logical commits):
# git add -p requires a TTY — run it inside a single shell block
cd "$WORKTREE_PATH" && git add -p <file> # stage hunk by hunk: y/n/s/e
git -C "$WORKTREE_PATH" commit --no-verify -m "type: first concern"
cd "$WORKTREE_PATH" && git add -p <file>
git -C "$WORKTREE_PATH" commit --no-verify -m "type: second concern"NEVER use git add -i or git rebase -i — these require interactive TTY input and will hang or fail in this context.
After all commits are created in the worktree, always present this to the user:
Recomposition complete in isolated worktree.
To review:
cd .git/recompose/<branch-name>
git log --oneline
Original branch is UNCHANGED. Nothing will be applied until you approve.
Does the new history look good?
[yes] → Apply to original branch
[no/edit] → Describe what to change, I'll update the worktree
[cancel] → Discard worktree, original branch stays as-isWait for explicit user response. Do not proceed to Step 8 without it.
If the user previously said "no review, just do it": You must still present this review gate. Explain: "The review step is part of this skill's safety guarantee. I've isolated the changes — reviewing takes 30 seconds and means the original branch is safe. Here's what the new history looks like:"
[yes] — Apply back:
Check for remote upstream first:
git -C "$REPO_ROOT" remote -v
git -C "$REPO_ROOT" branch -vvIf branch tracks a remote:
⚠️ This branch has a remote upstream. Applying recomposed commits will
require a force-push. Do you want to proceed?Wait for confirmation, then:
# DO NOT run `git checkout $BRANCH_NAME` — you are already on it in the main worktree.
# git checkout will fail with "already used by worktree". Skip it entirely.
# Use git -C with the absolute REPO_ROOT to ensure you're resetting the right branch.
git -C "$REPO_ROOT" reset --hard "recompose/$BRANCH_NAME"
# Verify it worked
git -C "$REPO_ROOT" log --oneline -5
# Clean up — worktree FIRST, then branch
git -C "$REPO_ROOT" worktree remove "$WORKTREE_PATH"
git -C "$REPO_ROOT" branch -D "recompose/$BRANCH_NAME"[no/edit] — Iterate: Return to the worktree, adjust commits as described, re-present the review gate.
[cancel] — Discard:
git worktree remove "$WORKTREE_PATH"
git branch -D "recompose/$BRANCH_NAME"Original branch is untouched.
| Situation | Command |
|---|---|
| File changes belong to different sections | git add -p <file> → y/n per hunk |
| Hunk mixes two concerns | s to split, then y/n |
| Concerns are truly interleaved lines | e to edit the hunk diff manually |
| File belongs entirely to one commit | git add <file> (no -p needed) |
# 1. Confirm new clean history
git -C "$WORKTREE_PATH" log --oneline $BASE..HEAD
# 2. Full content diff — stats alone are NOT enough
# Stats can match while content differs. Always do a byte-for-byte comparison.
diff \
<(git -C "$REPO_ROOT" diff $BASE HEAD) \
<(git -C "$WORKTREE_PATH" diff $BASE HEAD) \
&& echo "IDENTICAL — diffs match exactly" || echo "DIFFERENCES FOUND — investigate before proceeding"Stats are not sufficient. 66 files changed, 8393 insertions matching does not prove content matches — only a full diff comparison does. Always use the diff <(...) <(...) form and confirm "IDENTICAL" before presenting the review gate.
| Step | Action |
|---|---|
| 1 | git rev-parse --abbrev-ref HEAD — safety check |
| 2 | git log --oneline → ask for start SHA |
| 3 | git diff $BASE HEAD — analyze |
| 4 | git worktree add — isolate |
| 5 | git reset --mixed $BASE — collapse |
| 6 | Stage + commit per logical group |
| 7 | Present review gate — mandatory |
| 8 | Apply back + cleanup |
| Excuse | Reality |
|---|---|
| "git rebase -i is the standard tool for this" | git rebase -i requires interactive TTY — it HANGS in this context. Use git reset --mixed + selective staging. |
| "User said no review, I'll respect their preference" | The review gate is non-negotiable. It costs 30 seconds and protects the original branch. Present it anyway. |
| "I'll just modify the original branch directly, it's faster" | Non-negotiable: all commits happen in the worktree only. Original branch is untouched until approval. |
| "The cleanup branch workaround achieves the same result" | No workarounds for the protected branch check. If on main/master/dev, refuse and stop. |
| "git add -i is similar to git add -p" | git add -i requires interactive TTY. Use git add -p only. |
| "The worktree cleanup can happen after the user reviews" | Clean up as part of Step 8 — leaving worktrees around pollutes the repo. |
| "I can use a relative WORKTREE_PATH, the path is obvious" | Relative paths break when branch names contain slashes. Always use REPO_ROOT=$(git rev-parse --show-toplevel) and an absolute path. |
"I'll cd into the worktree and run git commands there" | Shell state does NOT persist between Bash tool invocations. Use git -C "$WORKTREE_PATH" for every command. |
"I need to git checkout $BRANCH_NAME before the reset" | That checkout FAILS — the branch is already in use by the main worktree. Skip it. Just run git -C "$REPO_ROOT" reset --hard directly. |
| "The diff stats match, so the content is identical" | Stats (66 files, 8393 insertions) can match while content differs. Always verify with diff <(git diff ...) <(git -C worktree diff ...). |
If you find yourself thinking any of these, stop and follow the skill:
git rebase -i"git add <file> for the overlapping file since it's cleaner"cd into the worktree, it's simpler than git -C"© deadlock-mod-manager, GPL-3.0. 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 .agents/skills/recomposing-commits of deadlock-mod-manager/deadlock-mod-manager.
Open the folder on GitHubat commit 45c273c
Recomposing Commits 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 |
|---|---|---|---|---|---|---|
| Recomposing Commits this skilldeadlock-mod-manager/deadlock-mod-manager | 574 | — | ~2.8k | Automated safety check: Pass | GPL-3.0 | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Codebase Knowledge Graph Q&AEgonex-AI/Understand-Anything | 86k | 1 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 86k | 1 repos | ~1.4k | 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.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
Egonex-AI/Understand-Anything
Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
Egonex-AI/Understand-Anything
Gives an in-depth explanation of one file, function or module by reading the project's knowledge graph and checking that the graph is still fresh.
deadlock-mod-manager/deadlock-mod-manager
Create new agent skills following the Agent Skills specification.
deadlock-mod-manager/deadlock-mod-manager
Scaffold and implement authentication in TypeScript/JavaScript apps using Better Auth.
deadlock-mod-manager/deadlock-mod-manager
Fetch source code for npm, PyPI, or crates.io packages and GitHub/GitLab repos to provide AI agents with implementation context beyond types and docs.
deadlock-mod-manager/deadlock-mod-manager
Security code review for Tauri/Rust/TypeScript desktop apps and Hono/oRPC APIs.
deadlock-mod-manager/deadlock-mod-manager
Stay on one pull request until it is merge-ready, fixing the highest-priority blocker and telling the user when it is green.
deadlock-mod-manager/deadlock-mod-manager
Generate a changeset file describing the current PR's changes.
Works with
Categories
A skill your agent uses when commits on a feature branch are messy, out of logical order, mix unrelated changes, or need restructuring before a PR - also triggered by "clean up history", "reorganize…. Recomposing Commits is an agent skill from deadlock-mod-manager/deadlock-mod-manager.
Recomposing Commits fits situations like: commits on a feature branch are messy; out of logical order; mix unrelated changes; need restructuring before a PR - also triggered by clean up history.
Run `npx skills add deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a claude-code`. Or copy the skill folder (.agents/skills/recomposing-commits in deadlock-mod-manager/deadlock-mod-manager) into .claude/skills/recomposing-commits in your project. Claude Code loads it when a task matches its description.
Run `npx skills add deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a codex`. Or copy the skill folder (.agents/skills/recomposing-commits in deadlock-mod-manager/deadlock-mod-manager) into .agents/skills/recomposing-commits 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 deadlock-mod-manager/deadlock-mod-manager --skill recomposing-commits -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/recomposing-commits, .gemini/skills/recomposing-commits, .github/skills/recomposing-commits and .opencode/skills/recomposing-commits in your project.
Going by SKILL.md and its folder, Recomposing Commits 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.
Recomposing Commits is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k 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 Recomposing Commits: Finishing a Development Branch (obra/superpowers, 296k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Codebase Knowledge Graph Q&A (Egonex-AI/Understand-Anything, 86k stars) and Code Design Rationale Investigator (cursor/plugins, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
deadlock-mod-manager (a GitHub organization) maintains it in deadlock-mod-manager/deadlock-mod-manager, which has 574 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 8, 2026.
Source: deadlock-mod-manager/deadlock-mod-manager on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.