review-protocol
Skill0 starsChanged 3 months agoMITView on GitHub
Shared review behavior for auto-review and auto-review-integration. Load when reviewing code completion, quality, or plan-vs-implementation compliance. Provides the evidence standard, review range, severity model, and return format; routes to specialized references for security, thermo-nuclear, or simplify passes.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- edgarcosta/skillztheir own version, first seen Nov 1, 2026
- KalastajaM/Cluidetheir own version, first seen Aug 4, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- edgarcosta/skillz★ 2same name
- KalastajaM/Cluide★ 2same 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.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- data-workSkill
- frontend-designSkill
- geospatialSkill
- git-workflowSkill
- project-contractSkill
- python-devops-stackSkill
- research-protocolSkill
- setupSkill
- test-qualitySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. About 0 are common, 18 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈18
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Every finding gets proof. Be pragmatic, not pedantic.
- Distinctive: line 16
Follow the project brief, planner output, success criteria, and repository AGENTS.md standards
- Distinctive: line 17
Do not flag issues that ruff, pyright, or ordinary static checks already cover
- Distinctive: line 21
False-positive blacklist: Do not flag generic "add error handling" without caller tracing.
- Distinctive: line 33
If no Review Base is provided, fall back to git diff HEAD (uncommitted) or git diff main..HEAD (full branch).
- Distinctive: line 43
Do not re-run the full completion, plan-coverage, or code-quality pass.
- Distinctive: line 50
Do the changed files match what the plan said would change?
- Distinctive: line 64
If missing or stub: flag as INCOMPLETE.
- Distinctive: line 79
If missing or broken: flag as INCOMPLETE.
- Distinctive: line 83
Check the changed code for:
- Distinctive: line 98
Check for AI-specific issues that static analyzers miss:
- Very specific: line 108
When the task prompt contains a Review Guard block, verify:
- Distinctive: line 113
When no Review Guard is provided, skip this section silently.
- Distinctive: line 128
Always active. Inspect the diff for source-level suppressions and quality-gate changes:
- Distinctive: line 136
If the Review Guard names this exact suppression with compensating evidence: Positive — plan-approved.
- Distinctive: line 137
If no plan approval: Major — unapproved suppression.
- Distinctive: line 149
Check for swallowed errors when the diff touches error handling, file ops, subprocess, network, or database:
- Distinctive: line 159
Do not flag: debug code, test files, or intentional no-ops with explicit inline comments.
- Very specific: line 175
Use the plan provided in the task prompt and verify the implementation against it.
- Very specific: line 268
If Completion Status is incomplete or Required Next Actions is non-empty: the calling agent should not call the work done.
- Very specific: line 270
If Completion Status is complete with no findings: the calling agent can proceed to docs and git finalization.
- Distinctive: line 276
Do not make code changes. Do not produce vague or purely stylistic criticism.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Review Protocol
Shared review behavior for auto-review and auto-review-integration.
Every finding gets proof. Be pragmatic, not pedantic. Do not duplicate what static analyzers already cover.
Core Rules
- Focus on bugs, completion gaps, regressions, and real maintainability issues before style
- Be pragmatic, not pedantic
- Follow the project brief, planner output, success criteria, and repository AGENTS.md standards
- Do not flag issues that ruff, pyright, or ordinary static checks already cover
- Be specific:
file_path:line_number, problem, concrete fix suggestion - Report findings only when >80% confident it is a real problem. Zero findings is a valid result.
- Proof gate for Critical/High findings: Confirm you can cite the exact line, describe the concrete failure mode, and have read the surrounding context before flagging. If you cannot satisfy all three, downgrade or drop.
- False-positive blacklist: Do not flag generic "add error handling" without caller tracing. Do not flag magic-number false alarms where the number has domain meaning. Do not flag missing docstrings on self-documenting code. Do not flag intended fire-and-forget patterns with explicit inline comments.
Review Scope and Range
The task prompt declares a Review Scope: full or fix-delta. The scope determines what the review examines and how the report is structured.
Full scope (default)
The first review of any planned work runs at full scope. The task prompt includes a Review Base SHA. Examine:
git diff <review-base>...HEAD— all committed changes since plan startgit diff HEAD— any uncommitted changes
If no Review Base is provided, fall back to git diff HEAD (uncommitted) or git diff main..HEAD (full branch).
Fix-delta scope (follow-up after review fixes)
A follow-up review after review fixes runs at fix-delta scope. The task prompt includes Prior Findings, the Snapshot SHA the previous review examined, and the Fix Diff (git diff <snapshot>...HEAD plus uncommitted changes). Examine only:
- Each carried finding against the current code — report
resolved,unresolved, orregressedwith file:line proof - The changed files since the snapshot — regressions the fixes may have introduced
- Validation evidence the caller ran after the fixes
Do not re-run the full completion, plan-coverage, or code-quality pass. Do not hunt for new findings outside the supplied findings and the changed files. New Critical/Major regressions in the fix delta are still reported at full severity.
Always: Completion Check
- Is every item in the approved plan actually implemented?
- Are the success criteria from the brief genuinely met — not just superficially?
- Is there any missing follow-through work required to call the task complete?
- Do the changed files match what the plan said would change?
Always: Key Files Verification
The plan lists Key Files that must be created or modified. For each one:
- Existence: Does the file exist?
- Substantive: Is it real implementation, not a stub? Check for:
- Returns
<div>Placeholder</div>orResponse.json({ message: "Not implemented" }) - Contains only
TODO,FIXME, or placeholder comments - Python: function/method with only
passor a docstring with no real body - Any language: primary path returns
None/null, throws "Not implemented", or is intentionally empty - New file where every top-level declaration is a stub
- Returns
If missing or stub: flag as INCOMPLETE.
Always: Key Connections Verification
The plan lists Key Connections — how components must be wired together. For each:
- Import exists: The consumer imports the provider
- Usage exists: The consumer actually calls what it imports
- Data flows: Output from one flows into the other (not just static returns)
Common stub patterns:
- Fetch called but response ignored (
fetch(...)with no.then,await, or assignment) - Query runs but static response returned (
await x.findMany()thenreturn Response.json({ ok: true })) - Handler only prevents default (
onSubmit={(e) => e.preventDefault()})
If missing or broken: flag as INCOMPLETE.
Always: Code Quality
Check the changed code for:
- Bugs — wrong conditionals, off-by-one, incorrect operators, null/None handling
- Missing error handling — uncaught exceptions on external calls, missing input validation, no fallback for failure paths. Only flag when there is a concrete caller-visible failure mode.
- Logic correctness — does the implementation do what was asked?
- Over-engineering — unnecessary abstractions, classes that should be functions, layers that add no value
- File size — did the diff push a file past ~1000 lines? Flag as Major and ask whether decomposition is warranted.
- Branching complexity — ad-hoc conditionals or special cases inserted into busy code paths belong behind their own abstraction
- AGENTS.md compliance — does the code follow the project's stated patterns and conventions?
- Regressions — does anything that was working before now break?
- Defensive noise — validation, null checks, error handling, wrappers, or fallbacks added without a concrete failure path. Flag as Major.
- Adjacent refactors — changes outside the task scope. Flag as Major.
- Hypothetical abstractions — abstractions added for future use cases that don't exist yet. Flag as Major.
Always: AI Code Quality
Check for AI-specific issues that static analyzers miss:
- Dead code — new functions/classes/exports never called outside the diff itself
- Hallucinated API — calls to methods or imports that do not exist in the installed library. Critical — code will not compile or run.
- Reinventing stdlib / project helpers — custom utilities where a built-in or existing helper already fits
- Reinventing third-party library — custom utilities where an existing PyPI/npm package covers the case. Verify the library exists via Context7/PyPI/webfetch before flagging; do not invent libraries.
- Comment quality — comments that merely paraphrase code (
# increment counterabovei += 1). Flag as Minor. - Style drift — mixed conventions introduced mid-file without reason
Always: Review Guard Check
When the task prompt contains a Review Guard block, verify:
- Invariants satisfied — each named invariant holds in the delivered code. Cite file/line. Severity: Critical if broken.
- Forbidden bypasses absent — the diff contains none of the named forbidden bypasses, unless the plan approved the exact exception with compensating evidence. Unapproved bypass: Major.
- Evidence produced — the named evidence artifacts, counters, or commands exist or pass. Missing evidence: Major.
When no Review Guard is provided, skip this section silently.
Conditional: Project Contract Check
Trigger only when the project AGENTS.md declares a ## Project Contract marker with Status: active or draft, or the plan carries a Contract Context block. Load the project-contract skill and:
- Checker evidence — run the structural checker and confirm the status is valid
active,opted-out, ornot-required. Missing/draft/invalid: Critical. - Clause and decision coverage — confirm the plan builds on the relevant contract sections and decision IDs named in its
Contract Context. - Amendment coverage — if the diff changes contract files, confirm the approved plan declared
Contract impact: amendand the user approved it. Unplanned material boundary changes: Major, return to plan. - No laundering — confirm no contract file was rewritten to match the implementation it enabled. Contract edits that justify changed code without a plan amendment: Critical.
Populate Project Contract Check in the return format. When no contract marker is present and the plan carries no Contract Context, omit this section silently.
Always: Quality-Gate / Suppression Check
Always active. Inspect the diff for source-level suppressions and quality-gate changes:
# noqa,# type: ignore,# nosecon new or changed linesfilterwarnings,warnings.filterwarnings,ignore_warningsparameter changes--ignore,--disableflags on linters, type checkers, or validators- Changes to lint/typecheck configuration (
.ruff.toml,pyproject.tomltool sections,noxfile.pysessions) - Removal, weakening, or conditional bypass of a previously enforced validation command
For each finding:
- If the Review Guard names this exact suppression with compensating evidence: Positive — plan-approved.
- If no plan approval: Major — unapproved suppression.
Severity Model
- Critical — broken requested behavior, serious regression, security issue, missing core scope
- Major — logic error, missing validation on external input, meaningful maintainability problem, incomplete implementation
- Minor — limited high-value cleanup, max 3 per review
- Advisory — structural simplification worth considering; not a blocker
- Positive — good patterns worth preserving
Conditional: Silent Failures
Check for swallowed errors when the diff touches error handling, file ops, subprocess, network, or database:
- No bare
except:orexcept Exception: passthat silently consumes errors without logging or re-raising - No
try/exceptthat only logs without recovery or re-raise — logging without action is still silent failure - No
subprocess.run()withcheck=Falsethat ignores non-zero exit codes - No file operations without error handling (
open(),read(),write(),unlink(),os.remove()) outside a try block unless known-safe - No None/null propagation — functions that can return
None/nullare checked before use downstream - No
requests.get()/post()without explicittimeoutand status code verification - For Node/TS: Promise chains or
asynccalls without.catch()or try/catch
Do not flag: debug code, test files, or intentional no-ops with explicit inline comments.
Conditional: Security
Load references/security.md from this skill when the changed code touches any of:
- user input, form data, or external API responses
- authentication, authorization, or session management logic
- database queries or resource access where object ownership matters
- file system operations (reads, writes, uploads)
- API endpoints exposed to the internet (especially auth, signup, upload, or high-cost)
- sensitive or personal data
Skip for internal utility functions, config changes, test-only changes, or documentation.
Conditional: Plan-vs-Implementation
Use the plan provided in the task prompt and verify the implementation against it. Trigger when the prompt contains a plan and mode is plan. Skip silently if no plan is provided.
For each plan item:
- Task coverage — every numbered Task is
done,partial, ormissing. Cite file/line. A task isdoneonly when its success criterion is verifiably met. - Build deviations — for each
# decision:annotation in the diff, evaluate whether the choice was justified by a genuine plan gap. Flag silent deviation from plan-specified values, names, or contracts. Severity: Major if it changes observable behavior; Minor if cosmetic. - Plan gaps — tasks too underspecified for faithful implementation (pseudocode referencing unverified APIs, config values without defaults, ambiguous contracts). These are plan-quality findings, not build findings.
- File-size and structural — if the diff pushed any file past 800 lines, flag as Major regardless of plan mention.
- Plan file freshness — if the plan header timestamp is >24h old relative to the diff, warn it may not be current.
Conditional: Thermo-Nuclear
Load references/thermo-nuclear.md from this skill when the task prompt contains --thermo. This is an exceptionally harsh maintainability pass. Do not load automatically.
Conditional: Simplify
Load references/simplify.md from this skill when the task prompt contains --simplify. This produces a tagged delete-list of over-engineered code. Do not load automatically.
Reference Routing
| Signal | Reference | When |
| Security surfaces in diff | references/security.md | auto-review detects auth, input, file, DB, or internet-exposed code |
--thermo in task prompt | references/thermo-nuclear.md | exceptionally harsh maintainability review |
--simplify in task prompt | references/simplify.md | tagged delete-list for over-engineering |
Each reference is loaded on demand. Do not load references proactively.
Return Format
Review Scope
- full | fix-delta
Review Range
- base: <SHA or "uncommitted"> → HEAD (<N> files changed)
Completion Status
- complete | incomplete — summary
Findings Resolution (fix-delta scope only)
- [Resolved/Unresolved/Regressed] <finding> file:line — proof
Plan Coverage
- task 1: done / missing / partial
Success Criteria Check
- criterion: met / not met — reason
Key Files Check
- path: exists + substantive | stub | missing
Key Connections Check
- consumer → provider: wired | partial | not wired
Findings
- [Critical/Major/Minor] file:line — description → fix
Security Notes (omit if not triggered)
- [Severity][Category] file:line — description → fix
Silent Failures Notes (omit if none)
- [Severity][Pattern] file:line — description → fix
Test Quality Notes (omit if test-quality skill not loaded)
- [Severity][Anti-Pattern] file:line — description → fix
Build Deviations (omit if plan-vs-impl not triggered)
- [Severity] file:line — what deviated → fix
Plan Gaps (omit if plan-vs-impl not triggered)
- task — what was underspecified → plan amendment
Review Guard Check (omit if no Review Guard provided)
- [Critical/Major/Positive] invariant/bypass/evidence — status → fix
Project Contract Check (omit if no contract marker and no Contract Context)
- [Critical/Major/Positive] checker/coverage/amendment/laundering — status → fix
Quality-Gate / Suppression Check (always present)
- [Major/Positive] file:line — suppression type → plan-approved / unapproved
Positive
- patterns worth preserving
Required Next Actions
- (empty if complete)
Plan Decision Required (omit if none)
- file:line — finding → why scope or contract is affectedIteration Guidance
If Completion Status is incomplete or Required Next Actions is non-empty: the calling agent should not call the work done. Hand specific next actions back for fixes and re-run review after.
If Completion Status is complete with no findings: the calling agent can proceed to docs and git finalization.
If findings exist: the calling agent fixes all safe findings (clear, single-location fixes within plan scope), re-runs validation, then re-runs review at fix-delta scope — carrying the prior findings, the snapshot SHA, and the fix diff. The follow-up verifies resolution of the carried findings and regressions from the fixes; it is not a full re-review. Only findings requiring architectural or scope decisions are escalated as ⚠ Plan Decision Required.
Fix-delta loops terminate: any third or later pass also runs at fix-delta scope for unresolved carried findings only; if findings remain unresolved after that pass, stop and report — do not loop. If a fix-delta review surfaces a new Critical/Major regression or the fixes expand into a new integration boundary, the calling agent applies the full-review escalation rules (a new full review instead of looping).
Do not make code changes. Do not produce vague or purely stylistic criticism. Do not repeat findings ruff or pyright already surface.
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.

