verdict
Skill0 starsChanged 29 days agoMITView on GitHub
Run the workflow's closing review gate — obtain an independent
10 other projects use a version of this.
Adopted by
Most recently taken up by
- ronniepinnell/caspertheir own version, first seen Nov 8, 2026
- rhasselle-oddball/claude-skillstheir own version, first seen Nov 1, 2026
- duthaho/skillhubtheir own version, first seen Oct 31, 2026
- udecode/platetheir own version, first seen Oct 17, 2026
- alexjmiller5/agent-config-publictheir own version, first seen Oct 15, 2026
- jacobgreenwald21/claude-skillstheir own version, first seen Oct 15, 2026
Other versions10 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 10
- udecode/plate★ 17ksame name
- SanketSapkal/founder-skills★ 10same name
- damionrashford/Adversaria★ 9same name
- duthaho/skillhub★ 9same name
- ronniepinnell/casper★ 1same name
- alexjmiller5/agent-config-public★ 0same name
- andrewcovenant/skills★ 0same name
- jacobgreenwald21/claude-skills★ 0same name
- OpentypeAI/opentype-claude-plugin★ 0same name
- rhasselle-oddball/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 93
Never simulate the review from this session — an independent pass is the point.
- Distinctive: line 94
Never manipulate the reviewer's pushback.
- Very specific: line 126
Run python3 "${CLAUDE_PLUGIN_ROOT}/scripts/rot-lint.py" <workflow-file> and show the user anything it flags (advisory — it prints …
- Very specific: line 147
No user to ask: end your output with a machine-parseable final line — VERDICT: APPROVE / VERDICT: APPROVE WITH IMPROVEMENTS / VERDICT: DENY …
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
The Review Gate
Why this gate exists
Empirical finding (9+ dogfood cycles, May 2026): without an explicit gate, the review step gets silently skipped — code ships on passing tests + clean type-checks alone. When an independent reviewer IS engaged, it finds real bugs the other signals miss: concurrency corruption, ADR violations, security gaps, coverage theater.
The gate checks the record, not the producer. What must exist before a
workflow is completed is a verdict block in its # Review section, in the
schema below (canonical copy: docs/RECORDS-CONVENTION.md, also at
references/RECORDS-CONVENTION.md beside this SKILL.md in a skills-CLI install). Any independent
reviewer satisfies the gate — another plugin's review agent, a generic
subagent, a human — as long as its verdict lands in this schema. The reviewer
never writes the record; this skill (the parent session) appends it.
Steps
1. Resolve the review scope — artifact-scoped by default
In priority order:
$1as a path that exists → review that file/directory.$1as a workflow slug →perdure/workflows/<date>-<slug>.md's# Files modifiedsection is the scope.--files a,b,c→ explicit list.- Sole in-progress workflow → its
# Files modified. - Otherwise ask.
Scope to the artifact — the workflow's modified files or the diff — not the
whole repository. Unscoped repo-wide reviews cost several times more for
little added signal on a bounded change; broaden deliberately only when the
change plausibly breaks distant code. Confirm the scope with the user before
dispatch: "Reviewing N files: <list> — proceed?"
2. Depth
--depth quick (bugs/security only) · full (default: correctness,
readability, architecture, security, performance) · security.
3. Obtain the independent review
Resolve the reviewer in this order — first match wins:
- A reviewer the user names (an agent type, another plugin's review skill, or "I'll review it myself") always wins.
- A review-focused agent already installed in this session's Agent tool roster (any plugin's reviewer or code-review agent). Dispatch it with the scope, depth, and the rubric below.
- A generic read-only subagent (the built-in Agent tool, fresh context, no plugin required), carrying the full rubric below as its prompt.
- A human-authored verdict pasted in the schema satisfies the gate with no dispatch at all.
Rubric — include it whatever the producer:
You are reviewing freshly-implemented code at <scope>.
[Context: what the code does, from the workflow file's Goal]
Sycophantic approval is the failure mode we detect for. If the code is good,
say so with evidence; if anything is questionable — security, race conditions,
hidden bugs, coverage gaps, ADR violations — surface it and push back. Do not
over-praise. Quantify concerns.
## Focus areas: [domain-specific, security-critical paths first]
## ADR alignment: [list perdure/decisions/ entries; verify adherence to each]
## Test coverage: adversarial or happy-path? coverage theater vs real validation?
## Output format
# Review summary
[APPROVE / APPROVE WITH IMPROVEMENTS REQUESTED / DENY]
# Critical findings (block ship) — finding + evidence <file>:<line> + fix
# Improvements requested (non-blocking)
# Observations
# What was goodNever simulate the review from this session — an independent pass is the point. Never manipulate the reviewer's pushback.
4. Surface the verdict
Verdict prominently; critical findings as a numbered file:line list;
improvements collapsed if many; "what was good" for calibration.
5. Append the verdict block to the workflow file
# Review
- **Verdict**: APPROVE WITH IMPROVEMENTS REQUESTED
- **Reviewer**: <agent type, tool, or person>
- **Reviewed at**: <ISO 8601>
- **Reviewed SHA**: <git rev-parse HEAD; UNVERSIONED if no repo>
- **Reviewed scope**: <files>
- **Critical findings**: <N, one line each>
- **Improvements requested**: <N, one line each>
- **Disposition**: addressed | deferred to follow-up | accepted as-isRe-reviews APPEND a new block — never overwrite; every review cycle stays in the record.
5b. Rot check before any close
(${CLAUDE_PLUGIN_ROOT} is the plugin directory, set by Claude Code. Without
it, the same scripts sit in the plugin checkout's root scripts/ directory (a
Codex install keeps the whole checkout), in scripts/ beside this SKILL.md (a
skills-CLI install), or in your clone of github.com/arbelh/perdure.)
Run python3 "${CLAUDE_PLUGIN_ROOT}/scripts/rot-lint.py" <workflow-file> and show
the user anything it flags (advisory — it prints contradicting lines side by
side; status-vs-git flags need a human eye since commits by other work on
shared files can trigger them). A workflow must not be marked completed
while its status header contradicts its own body or git. (The close-gate
hook re-runs this lint automatically whenever an edit lands on a
record that already carries a terminal status — treat anything it injects the
same way. This manual step still matters for records with freeform status
lines, which the hook's gate deliberately skips.)
6. Ask what's next
- DENY: fix and re-review / defer blockers to a follow-up workflow / user overrides (mark completed WITH the denial and an explicit override reason in the record — never silently).
- APPROVE WITH IMPROVEMENTS: fix now / defer (create the follow-up) / accept as known follow-ups.
- APPROVE: mark the workflow completed?
7. Headless behavior
No user to ask: end your output with a machine-parseable final line —
VERDICT: APPROVE / VERDICT: APPROVE WITH IMPROVEMENTS / VERDICT: DENY /
VERDICT: ERROR — <reason> — so a calling script can grep it (a skill cannot
set the CLI process's exit code). The verdict block is still appended; on DENY
the workflow stays in-progress for the caller.
Anti-patterns
- Reviewing code you didn't change (scope to the artifact)
- Prompt-manipulating the reviewer into approval
- Marking a workflow completed after DENY without a recorded, explicit override
Cost
Cost depends on the producer. A full artifact-scoped review by a strong-model agent typically runs 30K–100K tokens (~$0.50–$3); the generic-subagent fallback inherits the session model. Either way it is a fraction of an unscoped repo-wide pass — scope to the artifact.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

