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.
Pi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff.
$ npx skills add umputun/revdiff --skill revdiff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install umputun/revdiff revdiff --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/umputun/revdiff.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/pi/skills/revdiff .claude/skills/revdiff && 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 "revdiff" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/pi/skills/revdiff into .claude/skills/revdiff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff", 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/umputun/revdiff/tree/master/plugins/pi/skills/revdiffType 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 umputun/revdiff --skill revdiff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install umputun/revdiff revdiff --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/umputun/revdiff.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/pi/skills/revdiff .agents/skills/revdiff && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "revdiff" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/pi/skills/revdiff into .agents/skills/revdiff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff", 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 umputun/revdiff --skill revdiff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install umputun/revdiff revdiff --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/umputun/revdiff.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/pi/skills/revdiff .cursor/skills/revdiff && 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 "revdiff" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/pi/skills/revdiff into .cursor/skills/revdiff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff", 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/umputun/revdiff.git --path plugins/pi/skills/revdiff--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 umputun/revdiff --skill revdiff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install umputun/revdiff revdiff --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/umputun/revdiff.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/pi/skills/revdiff .gemini/skills/revdiff && 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 "revdiff" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/pi/skills/revdiff into .gemini/skills/revdiff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff", 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 umputun/revdiff revdiffInstalls 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 umputun/revdiff --skill revdiff -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/umputun/revdiff.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/pi/skills/revdiff .github/skills/revdiff && 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 "revdiff" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/pi/skills/revdiff into .github/skills/revdiff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff", 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 umputun/revdiff --skill revdiff -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install umputun/revdiff revdiff --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/umputun/revdiff.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/pi/skills/revdiff .opencode/skills/revdiff && 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 "revdiff" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/pi/skills/revdiff into .opencode/skills/revdiff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff", 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.
revdiffPi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff.
Revdiff is an agent skill from umputun/revdiff. Pi-only interactive diff and file review with revdiff. Use when the user explicitly asks for revdiff, interactive annotations, or captured revdiff comments inside pi.
Its SKILL.md is about 2.5k 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: TUI for reviewing diffs, files, and documents with inline annotations. The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5200a9f. 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:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, 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.
Revdiff loads about 2.5k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 1,282 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 umputun/revdiff at commit 5200a9f, republished under its MIT licence (© umputun). 1,282 words, ~2,526 tokens.
.claude/skills/revdiff/SKILL.md (or your agent's skills folder).This skill is specific to the pi harness. Use the revdiff pi extension for interactive review sessions.
Call the revdiff_review tool only when the user explicitly asks for revdiff, an interactive annotation pass, or captured revdiff annotations. Do not call it for ordinary autonomous requests like "review the code", "review my changes", or "review the diff"; handle those by inspecting the code directly. Do not tell the user to run /revdiff; slash commands are user-invoked only.
When the user invokes /skill:revdiff <input>, treat <input> as a request to launch revdiff unless it is clearly a usage/configuration question or an existing-history request. First figure out the concrete reference point(s) or file target the user asked for, then call revdiff_review. Do not stop after printing the resolved ref.
Reference resolution rules:
in ~/source/repo), use that directory for any git/ref/path resolution, omit that directory phrase from the revdiff args, and pass the directory as the revdiff_review tool's cwd parameter.prev commit, previous commit, last commit → HEAD~1 HEAD; head-3, head 3, previous 3 commits, last 3 commits → HEAD~3 HEAD.last tag or latest tag → run git describe --tags --abbrev=0, then pass that tag as args.2 weeks ago, yesterday, last Friday → run git rev-list -1 --before=<phrase> HEAD, then pass the resulting commit hash as args.args: "--only <path>".all files exclude vendor and dist → args: "--all-files --exclude=vendor --exclude=dist".Tool examples:
/revdiffargs: "main": review the current branch against mainargs: "--staged": review staged changesargs: "--untracked": review untracked files with working-tree changesargs: "--only README.md": review one standalone fileargs: "--all-files --exclude vendor": review all tracked files except vendorargs: "--no-tree": review with the file tree pane hiddenargs: "--filter-unreviewed": show only files not marked reviewedargs: "--page-overlap=2": keep 2 lines from the previous screen when pagingargs: "--start-at-change": position the cursor on the first changed lineargs: "--cross-file-motion": let cursor motion continue into adjacent filesargs: "--description='why this refactor matters' main": include review context in the info popupargs: "--description-file=/tmp/revdiff-desc.md main": include longer markdown review contextargs: "--annotations=/tmp/revdiff-review.md main": preload in-session review notesargs: "main", cwd: "~/source/repo": run revdiff from a specific working directory when the session was started elsewhere.args: "--stdin" with a unified diff piped to stdin (e.g. gh pr diff 123, git format-patch -1 --stdout, a .patch file): review a multi-file diff that lives outside the working tree — revdiff parses it as a real diff (one tree entry per file, hunk navigation, per-file annotations) instead of a context-only bufferAfter revdiff_review returns annotations, address them directly from the tool result content. Do not read revdiff history after a successful captured-annotation result. Exit code 10 is success-with-annotations and is handled by the extension; do not report it as a failure. If it returns no annotations, report that no annotations were captured and stop. Do not relaunch revdiff after any no-annotation result unless the user explicitly asks for another review.
When annotations arrive from /revdiff or revdiff_review:
revdiff_review call returns no annotations, stop. Do not relaunch revdiff after a no-annotation result unless the user explicitly asks for another review.Continue review — rerun the original revdiff_review targetDone with review — stoprevdiff_review target only after repository files changed or when the user chooses to continue reviewing; preserve the original cwd parameter when one was used.--untracked on reruns when agent-created files should be included./revdiff [args] — alias for /skill:revdiff [args]; the skill resolves the request and calls revdiff_review./skill:revdiff <request> — explicit skill command; same behavior as /revdiff <request>./revdiff
/revdiff HEAD~1
/revdiff HEAD~1 HEAD
/revdiff main
/revdiff --staged
/revdiff --untracked
/revdiff --all-files --include src
/revdiff --all-files --exclude vendor
/revdiff --only README.md
/revdiff --no-tree
/revdiff --page-overlap=2
/revdiff --start-at-change
/revdiff --cross-file-motion
/revdiff HEAD~3 --description="why this refactor matters"
/revdiff HEAD~3 --description-file=/tmp/revdiff-desc.md
/revdiff main --annotations=/tmp/revdiff-review.md
gh pr diff 123 | revdiff --stdin
git format-patch -1 --stdout | revdiff --stdin/revdiff prev commit
/revdiff last tag
/revdiff 2 weeks ago
/revdiff all files exclude vendor and dist
/revdiff README.mdBehavior:
--stagedHEAD~1--stagedrevdiff_review returns them in the tool result; the agent processes that result directly.--untracked so those files appear in the review tree.--filter-unreviewed only when the user asks for the tree limited to files not marked reviewed; F toggles the same filter during the review.--cross-file-motion only when the user asks for cursor motion to continue into adjacent files.--description or --description-file so the info popup explains the review context.If the user says "use my latest revdiff annotations", "pull up my last revdiff review", or similar, do not launch revdiff again. Read the newest markdown file from the revdiff history directory and process its annotations through the same annotation handling loop. Also use history as a fallback only when a revdiff launch reports annotations but the tool did not return annotation text, or when the review did not complete and recent history may contain the saved annotations.
revdiff also writes to history when the process is terminated by a signal (a SIGHUP from a lost connection, or a SIGTERM), saving the current annotations there — never the -o output — so a review cut short mid-session is still recoverable from history.
$REVDIFF_HISTORY_DIR when set; otherwise use ~/.config/revdiff/history/.## file:line (type) format, usually followed by captured diff context.When the user wants to review comments already present in the current conversation, write those comments to a temporary markdown file using revdiff's annotation output format, then run revdiff_review with --annotations=<tempfile> plus the normal review target args. This preloads the notes into the review session so the user can accept, edit, or add annotations in context.
revdiff binary in the current terminal session, temporarily suspending pi while revdiff is running.revdiff is not on PATH, set REVDIFF_BIN to its absolute path.REVDIFF_EXIT_CODE_ON_ANNOTATIONS; 10 means annotations were captured, not failure.O to export annotations to --output, --post-flush-command, or both. The pi flow does not need it: pi is suspended until revdiff exits and returns the captured annotations on quit. The keep-open flush loop matters only for standalone use outside pi; a standalone clipboard-only setup can configure post-flush-command = pbcopy without an output file.© umputun, 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 plugins/pi/skills/revdiff of umputun/revdiff.
Open the folder on GitHubat commit 5200a9f
Revdiff 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 |
|---|---|---|---|---|---|---|
| Revdiff this skillumputun/revdiff | 918 | — | ~2.5k | Automated safety check: Pass | MIT | |
| 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.
umputun/revdiff
Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings.
umputun/revdiff
Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings.
umputun/revdiff
Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay.
Works with
Categories
Pi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff. Revdiff is an agent skill from umputun/revdiff. Pi-only interactive diff and file review with revdiff.
Revdiff fits situations like: the user explicitly asks for revdiff; interactive annotations; captured revdiff comments inside pi.
Run `npx skills add umputun/revdiff --skill revdiff -a claude-code`. Or copy the skill folder (plugins/pi/skills/revdiff in umputun/revdiff) into .claude/skills/revdiff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add umputun/revdiff --skill revdiff -a codex`. Or copy the skill folder (plugins/pi/skills/revdiff in umputun/revdiff) into .agents/skills/revdiff 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 umputun/revdiff --skill revdiff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/revdiff, .gemini/skills/revdiff, .github/skills/revdiff and .opencode/skills/revdiff in your project.
Going by SKILL.md and its folder, Revdiff needs the command-line tools its instructions call (git and gh).
SKILL.md contains no URLs. Its commands use git and gh, 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.
Revdiff 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.5k tokens (SKILL.md is roughly 10k 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 Revdiff: 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.
umputun (a GitHub user) maintains it in umputun/revdiff, which has 918 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.
Source: umputun/revdiff on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.