Agent skill · Audited from source

Revdiff Plan

skill · umputun/revdiffMIT licenceAudited 14 Oct 2026 · source 04a295b4c755

★ 929pushed today
✓SAFEGrade B · 89/100 · 14 Oct 2026 · 04a295b
929repo stars · whole umputun/revdiff

Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 04a295b4c755 and found no filesystem, network or shell access and no hard-coded secrets. What it does: 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…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “Revdiff Plan (umputun/revdiff)”. Retrieved 14 Oct 2026. https://modelsatlas.com/skills/umputun/revdiff-plan

Trust audit

Audit 0.4.1 · source read 14 Oct 2026

Trust score89/100✓SAFE B
0 critical0 high0 medium0 low0 info

SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemNone observedNo reads or writes in the source
  • NetworkNone observedNo outbound calls in the source
  • ShellNone observedNo commands run in the source
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS0
L1 Static sourceSecrets, path traversal, supply chain, hidden codePASS0
L2 InstructionsPrompt injection, authority framing, hidden directivesPASS0
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (0)

No findings at any severity. We re-audit when the source changes.

Audit 0.4.1 · source sha 04a295b4c755 · 14 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publisherumputun GitHub userOwner of the repository this skill is read from
  • Source folderumputun/revdiff/plugins/codex/skills/revdiff-planThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdict04a295b4c755A new audit runs when the source changes
  • Repository statusNot archivedPushed today
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: 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…

---
name: revdiff-plan
description: 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".
---

# revdiff-plan - Review Codex Output

Review the last Codex assistant message with inline annotations using revdiff TUI in a terminal overlay.

## Script Path Resolution

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:

```bash
SCRIPT_DIR="<plugin-root>/skills/revdiff-plan/scripts"
```

Also resolve the launcher script from the revdiff skill:

```bash
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.

## Activation Triggers

- "revdiff-plan", "review plan with revdiff", "annotate plan"
- "review last response", "annotate codex output"

## How It Works

1. Extract the last Codex assistant message from rollout files
2. Write it to a temp markdown file
3. Launch revdiff with `--only=<tempfile>` in a terminal overlay
4. User reads the plan, adds annotations on specific lines
5. On quit, annotations are captured from stdout
6. Codex reads annotations and addresses each one (refine plan, answer questions, fix issues)
7. Loop: re-launch revdiff to verify changes, user can add more annotations
8. Done when user quits without annotations; clean up temp file

## Workflow

### Step 1: Extract Last Assistant Message

Run the extraction script with `--skip-current` to avoid picking up this session's own output:

```bash
$SCRIPT_DIR/extract-last-message.sh --skip-current
```

The script:
- Uses a best-effort heuristic: picks the second most recent rollout JSONL file by modification time from `~/.codex/sessions/`
- This assumes the newest file belongs to the active session; if concurrent Codex sessions exist, the wrong file may be selected
- Falls back to the newest file if only one session exists
- Extracts the last assistant message text using jq
- Outputs raw markdown to stdout
- Accepts an explicit rollout file path as an argument to bypass auto-detection when precision matters

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:

```bash
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"
```

### Step 2: Launch Review

Run the launcher script with `--only=<tempfile>`:

```bash
$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:

1. Tell the user: "The bash tool timed out, but revdiff may still be open. Let me know when you're done reviewing."
2. Wait for the user to reply.
3. Read the most recent output file:
   ```bash
   output_file="$(ls -t "${TMPDIR:-/tmp}"/revdiff-output-* 2>/dev/null | head -1)"
   if [ -n "$output_file" ] && [ -f "$output_file" ]; then
     cat "$output_file"
   fi
   ```

### Step 3: Process Annotations

If 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 alternatives
```

Each annotation block has:
- `## filename:line (type)` -- which file and line
- Comment text below -- what the user wants changed or clarified

### Step 3.5: Classify Annotations

Split annotations into two categories:

**Explanation requests** -- annotation matches either rule (case-insensitive):
- contains two or more consecutive question marks anywhere in the text (`??`, `???`, etc.) -- a language-neutral shortcut for "please explain"
- OR starts with one of: `explain`, `remind`, `describe`, `what is`, `what are`, `how does`, `how do`, `clarify`

These 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:**

1. Answer each explanation request directly
2. If there are also plan-change directives, note them as pending
3. 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.

### Step 4: Address Annotations

For plan-change directives:
- Update the temp plan file with the requested changes
- Rewrite `$PLAN_FILE` with the updated content

### Step 5: Loop

After addressing annotations, re-launch revdiff with the updated plan:

```bash
$LAUNCHER_DIR/launch-revdiff.sh --only="$PLAN_FILE"
```

The user

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit 04a295b

Download folder ↗
git clone https://github.com/umputun/revdiff
git -C revdiff checkout 04a295b4c755

The author documents no install command, so this uses the repository directly. Our verdict covers commit 04a295b4c755 only.

Works in which agents?

What its own text says, not a test

AgentStatusMore
CodexMentioned in its text, not testedSkills for Codex · About Codex
“Mentioned” means the skill’s text names the agent. We have not run it there.

Audit history

Every audit, every source change

  1. ✓SAFE B 89 / 100

    first audit · source 04a295b4c755

README badge

For maintainers · shows the latest audit

ModelsAtlas: SAFE BMODELSATLASSAFE · B
[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/umputun/revdiff-plan/badge.svg)](https://modelsatlas.com/skills/umputun/revdiff-plan/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Revdiff✓SAFE

umputun/revdiff

Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings. Opens revdiff in…

★ 929Grade B
hunk-review✓SAFE

modem-dev/hunk

Interacts with live Hunk diff review sessions via CLI. Inspects review focus, navigates files, hunks, and exact lines, reloads session contents, adds inline review comments, and paints attention marks on character…

★ 9.6kGrade B
frontend-testing!CAUTION

langgenius/dify

Use when writing or changing Vitest or React Testing Library tests under `web/` or `packages/dify-ui/`, or when the user explicitly requests frontend test strategy, including evaluation of an existing strategy. Do not…

★ 159kGrade B
frontend-code-review!CAUTION

langgenius/dify

Use only when the user explicitly requests a review or audit of frontend code under `web/` or `packages/dify-ui/`. Supports pending-change, file-focused, and pasted-diff reviews. Do not use for implementation-only…

★ 159kGrade B
backend-code-review!CAUTION

langgenius/dify

Use only when the user explicitly requests a review or audit of backend code under `api/`. Supports pending-change, file-focused, and pasted-diff reviews. Do not use for implementation-only requests, diagnosis without…

★ 159kGrade B
image-generation✓SAFE

bytedance/deer-flow

Use this skill when the user requests to generate, create, imagine, or visualize images including characters, scenes, products, or any visual content. Supports structured prompts and reference images for guided…

★ 85kGrade B

Add this badge to your README

[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/umputun/revdiff-plan/badge.svg)](https://modelsatlas.com/skills/umputun/revdiff-plan/)

Questions about Revdiff Plan

What does the Revdiff Plan skill do?
TUI for reviewing diffs, files, and documents with inline annotations
Is Revdiff Plan safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Revdiff Plan access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Revdiff Plan work with?
Its documentation mentions codex. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (04a295b4c755), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.