Messages Ops
affaan-m/ECC
Evidence-first live messaging workflow for ECC. An agent skill from affaan-m/ECC.
Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay.
$ npx skills add umputun/revdiff --skill revdiff-plan -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install umputun/revdiff revdiff-plan --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/codex/skills/revdiff-plan .claude/skills/revdiff-plan && 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-plan" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/codex/skills/revdiff-plan into .claude/skills/revdiff-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff-plan", 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/codex/skills/revdiff-planType 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-plan -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install umputun/revdiff revdiff-plan --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/codex/skills/revdiff-plan .agents/skills/revdiff-plan && 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-plan" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/codex/skills/revdiff-plan into .agents/skills/revdiff-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff-plan", 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-plan -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install umputun/revdiff revdiff-plan --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/codex/skills/revdiff-plan .cursor/skills/revdiff-plan && 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-plan" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/codex/skills/revdiff-plan into .cursor/skills/revdiff-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff-plan", 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/codex/skills/revdiff-plan--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-plan -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install umputun/revdiff revdiff-plan --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/codex/skills/revdiff-plan .gemini/skills/revdiff-plan && 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-plan" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/codex/skills/revdiff-plan into .gemini/skills/revdiff-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff-plan", 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 revdiff-planInstalls 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-plan -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/codex/skills/revdiff-plan .github/skills/revdiff-plan && 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-plan" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/codex/skills/revdiff-plan into .github/skills/revdiff-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff-plan", 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-plan -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-plan --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/codex/skills/revdiff-plan .opencode/skills/revdiff-plan && 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-plan" agent skill from https://github.com/umputun/revdiff/tree/master/plugins/codex/skills/revdiff-plan into .opencode/skills/revdiff-plan/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revdiff-plan", 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.
revdiff-planReview the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay.
Revdiff Plan is an agent skill from umputun/revdiff. Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay. Extracts the most recent response from Codex rollout files and opens it in revdiff for review and annotation. Activates on "revdiff-plan", "review plan with revdiff", "annotate plan", "review last response", "annotate codex output".
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/extract-last-message.sh`).
The repository describes itself as: TUI for reviewing diffs, files, and documents with inline annotations. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d2e4a78. 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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 Plan loads about 1.6k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 735 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); the scripts in this folder are not scanned.
The full file from umputun/revdiff at commit d2e4a78, republished under its MIT licence (© umputun). 735 words, ~1,589 tokens.
.claude/skills/revdiff-plan/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Review the last Codex assistant message with inline annotations using revdiff TUI in a terminal overlay.
Resolve <plugin-root> from this skill's absolute path in the available-skills catalogue. It is the directory containing this plugin's .codex-plugin/plugin.json. Then set:
SCRIPT_DIR="<plugin-root>/skills/revdiff-plan/scripts"Also resolve the launcher script from the revdiff skill:
LAUNCHER_DIR="<plugin-root>/skills/revdiff/scripts"Replace <plugin-root> with the resolved absolute path before running either command. Use $SCRIPT_DIR and $LAUNCHER_DIR in place of script paths throughout this skill.
--only=<tempfile> in a terminal overlayRun the extraction script with --skip-current to avoid picking up this session's own output:
$SCRIPT_DIR/extract-last-message.sh --skip-currentThe script:
~/.codex/sessions/If the script fails (no sessions, no messages), inform the user and stop.
If the user reports that the wrong content was extracted, ask them to provide the rollout file path
explicitly: $SCRIPT_DIR/extract-last-message.sh /path/to/rollout.jsonl
Capture the output and write it to a temp file:
TMPBASE="${TMPDIR:-/tmp}"
PLAN_FILE=$(mktemp "$TMPBASE/revdiff-plan-XXXXXX")
mv "$PLAN_FILE" "${PLAN_FILE}.md"
PLAN_FILE="${PLAN_FILE}.md"
$SCRIPT_DIR/extract-last-message.sh --skip-current > "$PLAN_FILE"Run the launcher script with --only=<tempfile>:
$LAUNCHER_DIR/launch-revdiff.sh --only="$PLAN_FILE"The launcher sets REVDIFF_EXIT_CODE_ON_ANNOTATIONS; exit 10 means annotations were captured and is not a launcher failure. Treat other nonzero statuses as failures.
IMPORTANT -- long-running command: The launcher blocks until the user finishes reviewing in the TUI overlay. Set the bash timeout parameter to the maximum your harness allows (e.g. 1800000 or higher). Do NOT use run_in_background.
If the bash tool reports a timeout, use the same fallback as the revdiff skill:
output_file="$(ls -t "${TMPDIR:-/tmp}"/revdiff-output-* 2>/dev/null | head -1)"
if [ -n "$output_file" ] && [ -f "$output_file" ]; then
cat "$output_file"
fiIf the bash tool reports exit 10, read stdout and process it as annotations; do not call it a failure. If the launcher produces output, the user made annotations. The output format is:
## plan-XXXXXX.md:12 ( )
this section needs more detail about error handling
## plan-XXXXXX.md:25 ( )
explain why we chose this approach over alternativesEach annotation block has:
## filename:line (type) -- which file and lineSplit annotations into two categories:
Explanation requests -- annotation matches either rule (case-insensitive):
??, ???, etc.) -- a language-neutral shortcut for "please explain"explain, remind, describe, what is, what are, how does, how do, clarifyThese are questions the user wants answered, not plan changes.
Plan-change directives -- everything else. These are instructions to modify the plan content.
If explanation requests are found:
Answer each explanation request directly
If there are also plan-change directives, note them as pending
Enter the explanation loop:
a. Write the explanation to a temp markdown file
b. Launch revdiff with --only=<explanation-file> via the launcher script
c. If user quits without annotations -- explanation accepted, proceed to pending directives or Step 5
d. If user annotates -- refine explanation, loop back to (b)
If no explanation requests -- proceed directly to Step 4.
For plan-change directives:
$PLAN_FILE with the updated contentAfter addressing annotations, re-launch revdiff with the updated plan:
$LAUNCHER_DIR/launch-revdiff.sh --only="$PLAN_FILE"The user can:
When the launcher produces no output, the review is complete.
Clean up the temp file:
rm -f "$PLAN_FILE"Inform the user that the plan review is complete. If the plan was modified during the review, present the final version.
© umputun, 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 (scripts) in plugins/codex/skills/revdiff-plan of umputun/revdiff.
Open the folder on GitHubat commit d2e4a78
Revdiff Plan 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 Plan this skillumputun/revdiff | 916 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Messages Opsaffaan-m/ECC | 274k | 1 repos | ~724 | Automated safety check: Pass | MIT | |
| Commit Message Storytellergithub/awesome-copilot | 40k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Agent Messagingdavila7/claude-code-templates | 32k | — | ~807 | Automated safety check: Pass | MIT | |
| Plannotator Last Messagebacknotprop/plannotator | 9.2k | — | ~279 | Automated safety check: Pass | Apache-2.0 | |
| Messagesgithub/gh-aw | 5.3k | — | ~1.7k | Automated safety check: Pass | MIT |
affaan-m/ECC
Evidence-first live messaging workflow for ECC. An agent skill from affaan-m/ECC.
github/awesome-copilot
Analyzes git diffs or staged changes and generates narrative commit messages that explain WHY a change was made, not just what changed — following Conventional Commits format.
davila7/claude-code-templates
Send and receive cryptographically signed messages between AI agents using the Agent Messaging Protocol (AMP).
backnotprop/plannotator
Opens Plannotator on the agent's latest rendered reply so you can annotate it, then folds the returned feedback into a revision or the next step.
github/gh-aw
Add new safe-output message types and wire validation/rendering.
affaan-m/ECC
面向ECC的以证据为先的实时消息工作流。当用户想要阅读短信或私信、恢复最近的一次性验证码、在回复前检查对话线程,或证明实际检查了哪个消息来源时使用。
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
Pi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff.
Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay. Revdiff Plan is an agent skill from umputun/revdiff. Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay.
Run `npx skills add umputun/revdiff --skill revdiff-plan -a claude-code`. Or copy the skill folder (plugins/codex/skills/revdiff-plan in umputun/revdiff) into .claude/skills/revdiff-plan in your project. Claude Code loads it when a task matches its description.
Run `npx skills add umputun/revdiff --skill revdiff-plan -a codex`. Or copy the skill folder (plugins/codex/skills/revdiff-plan in umputun/revdiff) into .agents/skills/revdiff-plan 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-plan -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-plan, .gemini/skills/revdiff-plan, .github/skills/revdiff-plan and .opencode/skills/revdiff-plan in your project.
Going by SKILL.md and its folder, Revdiff Plan needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Revdiff Plan 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.6k tokens (SKILL.md is roughly 6.4k 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 Plan: Messages Ops (affaan-m/ECC, 274k stars), Commit Message Storyteller (github/awesome-copilot, 40k stars), Agent Messaging (davila7/claude-code-templates, 32k stars) and Plannotator Last Message (backnotprop/plannotator, 9.2k 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 916 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 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.