review-doc
Skill1 starsChanged 4 months agoMITView on GitHub
Review a ProductOS document (Job Spec, RFC, Product Spec, Strategy, decision record) as the SEPARATE, fresh-process reviewer the operating contract demands: never the author. Returns APPROVE / REQUEST_CHANGES / BLOCK with a file:line citation for every finding. Checks template fidelity, altitude, groundedness (every claim traces to evidence or is labelled), and up-anchor integrity (serves:/backs: slugs resolve). Use after ANY document is drafted or changed, before it is treated as ratified. Triggers on natural phrasings including: "review this spec", "review this RFC", "is this job spec ready", "check this doc against the template", "does this strategy hold up", "gate this document", "run the reviewer", "can this be ratified". Part of ProductOS; the document counterpart to the code-review gate in the operating contract. Every create-* skill hands its output to this skill.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- angadhn/botferencetheir own version, first seen Oct 30, 2026
- koruworks/skillstheir own version, first seen Oct 15, 2026
- Endava/BEEQtheir own version, first seen Oct 8, 2026
- kohj1018/agentic-dev-harnesstheir own version, first seen Sep 29, 2026
- tomharris/engineer-agenttheir own version, first seen Jul 22, 2026
- DGouron/review-flowtheir own version, first seen May 14, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- Endava/BEEQ★ 162same name
- DGouron/review-flow★ 42same name
- angadhn/botference★ 20same name
- kohj1018/agentic-dev-harness★ 2same name
- junhjang/claude-harness★ 0same name
- koruworks/skills★ 0same name
- tomharris/engineer-agent★ 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.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- amend-durable-docSkill
- create-job-specSkill
- create-product-specSkill
- create-rfcSkill
- create-strategySkill
- feedback-to-jobsSkill
- uat-ux-debugSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
Read the frontmatter key first.
- Distinctive: line 65
Every section of the class template is present, in order, and answered, not occupied.
- Distinctive: line 78
Job Spec: no feature names, flags, files, vendors, or technology nouns.
“Common” is measured: kept by at least 6 in 10 of the 6 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
review-doc: the fresh-process document reviewer
The operating contract is blunt: dispatch a separate fresh-process reviewer, never the author; it rubber-stamps. This skill is that reviewer, for documents. It exists because the failure mode of agent-written docs is not absence, it is plausible slop: a spec with every heading present and every section quietly fabricated. A reviewer that only checks shape approves slop. This one checks shape, altitude, and truth.
[!IMPORTANT]
Never review a document you authored in this same process. If you drafted it (or a skill you ran drafted it), hand this SKILL.md and the document to a fresh process with no conversational context beyond the pointers in Step 0. An author reviewing its own work confirms its own assumptions; that is the rubber stamp this skill exists to prevent.
Step 0: Identify the doc class, then ground yourself
Read the frontmatter key first; it tells you what you are reviewing and which checklist applies:
| Frontmatter key | Doc class | Template to check against |
job: | Job Spec (durable) | templates/job-spec.md |
serves: (on an RFC shape) | Ship-coupled RFC | templates/rfc.md |
backs: | Design record backing an invariant | templates/rfc.md |
| North Star / outcomes / job index | Product Spec | templates/product-spec.md |
| Situation / Pillars / Deferrals | Strategy | templates/strategy.md |
date: + commit: | Decision record | templates/decision-record.md |
Then load the grounding set: the template for the class, the anchors
(vision, principles, invariants), the product spec (for outcome slugs and
the job index), and any document this one points at (serves:, backs:, a
cited Job Spec or decision record). You cannot judge an up-anchor you have
not read.
Step 1: Run the four checks
Work through all four for every document. Record each finding as it surfaces,
with file:line.
1. Template fidelity
Every section of the class template is present, in order, and answered, not
occupied. A heading with placeholder prose under it is a finding. Depth must
match the stakes (a Quick Win answers in a line; a high-stakes doc expands),
but the gates never disappear: a Job Spec with an empty ## Prove it, a
missing silent failure in Good / bad, or no Abandon signal fails regardless
of stakes. An RFC with fewer than two evidenced struggling moments, or fewer
than the four named user-failure modes, fails. A strategy with untagged
Situation claims or an empty Deferrals table fails.
2. Altitude
Each layer has a working altitude, and leakage is the most common defect:
- Job Spec: no feature names, flags, files, vendors, or technology nouns; no numbers, dates, account names, or ARR (those live in Job Links and the RFC). If any line would not survive a full rewrite of the feature, it is implementation and it leaks.
- RFC: the Solution Space describes an envelope (MUST / MUST NOT / free to vary), never a blueprint. Prescribed components, layouts, or data models are findings.
- Product Spec: outcome altitude; runtime and architecture belong in docs/.
- Strategy: funds jobs, does not restate them; pillars link to Job Specs rather than re-describing them.
3. Groundedness
The anti-slop check. For every number, quote, evidence link, and named source in the document, ask: where did this come from?
- Evidence links must resolve to something real. A link you cannot verify is
flagged
unverifiable, not assumed fine. - Claims must carry their honest label: a Strategy claim is evidenced, hypothesis, or to-validate, and a stated Confidence score must match the evidence actually cited (Confidence 3 with one anecdote is a finding).
- A specific number with no source is presumed fabricated until traced. Fabrication is a BLOCK, not a REQUEST_CHANGES: a wrong document that reads as authoritative is worse than no document, because the whole fleet anchors to it.
- Honest gaps pass.
*(coverage gap: no runnable scenario yet)*or a to-validate tag is the system working. The defect is confident invention, never admitted uncertainty.
4. Up-anchor integrity
The hierarchy only works if the pointers hold:
serves:on a Job Spec names an outcome slug that exists in the Product Spec;serves:on an RFC names a real Job Spec;backs:names a real invariant.- Named invariants exist in the invariants anchor, verbatim.
- The job index and the Job Specs agree (every indexed job exists; every job ladders to exactly one outcome).
- A change to a Job Spec's
job/outcome/stakeslines, or a material STRATEGY.md change, cites its decision record. Those lines are diff-protected by the operating contract; a silent rewrite is a BLOCK. (Authoring-time review of a new doc skips this; it applies to changes. See amend-durable-doc.)
Step 2: Return the verdict
One of three, using the operating contract's vocabulary:
- APPROVE -- every check passes. Say so plainly; do not invent findings to look thorough. A reviewer that always requests changes is as useless as one that always approves.
- REQUEST_CHANGES -- fixable defects. Every finding cites
file:line, names which of the four checks it fails, and says what passing looks like. - BLOCK -- fabricated evidence, a crossed invariant, a silent rewrite of diff-protected lines, or a doc pointing at anchors that do not exist. These are not polish items; the document must not be treated as ratified in any form until resolved.
Order findings most-severe first. Iterate with the author to APPROVE; do not let anything downstream (an RFC citing the spec, a build citing the RFC) proceed on an unratified document.
Output
Verdict: APPROVE | REQUEST_CHANGES | BLOCK
Findings (most severe first):
1. [BLOCK] <file>:<line> -- <check failed> -- <what is wrong> -- <what passing looks like>
2. [CHANGE] <file>:<line> -- ...
Checked: template fidelity ✓/✗ · altitude ✓/✗ · groundedness ✓/✗ · up-anchor ✓/✗
Grounding set read: <the template, anchors, and pointed-at docs you actually read>The Grounding set read line is not decoration: a reviewer that did not read
the up-anchors could not have checked them, and saying what you read keeps
you honest about what you verified versus assumed.
The self-teaching check (dogfood this skill)
Seed a known-good document with five defects (a fabricated evidence link, a
missing silent failure, an implementation noun in a Job Spec, a serves:
slug that resolves nowhere, an untagged strategy claim) and hand a fresh agent
only this skill and the grounding set. It passes if it finds all five with
citations, and separately APPROVES the unseeded original without inventing
false blockers. Both halves matter: recall without precision is noise.
Related
- AGENTS.md -- the operating contract and reviewer checklist this skill implements for documents
- create-job-spec -- authors the Job Specs this skill gates
- create-rfc -- authors the RFCs this skill gates
- amend-durable-doc -- the edit-time guard for diff-protected lines
- uat-ux-debug -- reviews shipped behaviour against the docs; this skill reviews the docs themselves
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.

