Review Spec

SkillDocs & knowledge

Review technical spec documents from completeness, feasibility, risk, and code consistency perspectives.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Review Spec skill

What this skill tells your AI

The instructions your AI receives, as published by sd0xdev/sd0x-harness in skills/review-spec/SKILL.md and read by ahel’s review.

Trigger

  • Keywords: review spec, spec review, tech spec review, review-spec

When NOT to Use

  • Code review (use /codex-review-fast)
  • General document review (use /codex-review-doc)
  • Writing a new spec (use /tech-spec)

Relationship to /codex-review-doc

Both are doc-plane producers of the same gate, dispatched over the same Codex exec transport (@skills/codex-code-review/references/codex-transport.md) and emitting the same sentinel pair. They differ only in review depth and dimensions: /review-spec is the design-landing depth (completeness, feasibility, risk, code consistency, test strategy), /codex-review-doc is the general document depth. Loop mechanics, severity calibration and [NIT_DEFERRED] handling are shared — see @skills/doc-review/SKILL.md.

Why not an Agent dispatch. The gate verdict is behaviour-layer: it comes from the reviewer's report, and review-state.js note records it (@rules/auto-loop.md § Enforcement — nothing parses reviewer output; hooks are reminders). What makes a verdict usable is that a contract-aware reviewer produced it against this family's template and sentinels. A built-in agent dispatched ad hoc is not that reviewer and its output closes nothing. Dispatching Codex over the shared transport is what makes the verdict this skill's to note. See @rules/auto-loop.md § Review Dispatch.

Codex Dispatch

Bind every placeholder before writing prompt.md. The body below is body-only, so nothing evaluates an expression inside it: ${FILE_PATH} and ${PROJECT_ROOT} must carry real values by the time the file is written, or the cat ${FILE_PATH} instructions reach Codex as literal text and cannot be run.

You are a senior technical spec reviewer. Perform a Document Review of the technical specification below, at design-landing depth.

Document Info

  • Path: ${FILE_PATH}
  • Type: technical specification
  • Project root: ${PROJECT_ROOT}

⚠️ Important: You must independently read and research the project ⚠️

Do NOT expect pre-provided file content. Read the spec and research the project yourself using your sandbox access. The spec makes concrete claims about this repository — verify them against the actual files rather than taking them on trust.

Document Reading (Priority)

  1. Read the full document: cat ${FILE_PATH}
  2. If long: cat ${FILE_PATH} | head -300 then cat ${FILE_PATH} | tail -200

Code-Documentation Consistency Research

  1. Project structure, discovered rather than assumed: ls at the repository root, then the directories it actually shows — do not assume a src/ layout; many repositories, this one included, have none
  2. Search for every file, function, flag and command the spec names: grep -rn "keyword" . -l --include="*.ts" --include="*.js" --include="*.sh" | head -10
  3. Read related files: cat <file-path> | head -100
  4. Verify: do referenced files exist? Are names correct? Do described behaviours match code?

Review Dimensions

#DimensionChecks
1CompletenessAre requirements, scope, risks and work breakdown all present and specific
2FeasibilityCan this be built as described, with the dependencies it names
3Risk AssessmentAre the real failure modes identified, and does each have a bound
4Code ConsistencyDo referenced files/functions exist and behave as described (verify with grep/cat)
5Test StrategyIs every acceptance criterion mapped to evidence; are guards two-directional

Severity Calibration ⚠️

A 🔴 blocks the document and costs a full review round. Reserve it for defects that would mislead a reader into building the wrong thing:

Mark 🔴Do NOT mark 🔴
A described file, function, flag or command that does not existWording that could be clearer
A described behaviour that contradicts what the code actually doesA section you would have structured differently
A security or data-handling design that is wrong or unsafeA missing section that no rule requires
An internal contradiction — two passages that cannot both be trueProse where a table would be tidier
A broken cross-reference, or a step whose stated dependency is not met by its own orderingHypothetical future concerns not present in the change

Do not manufacture findings to fill a section. An empty 🔴 section is a normal outcome.

Output Format

Your report must begin with the literal line ## Document Review. Nothing parses it — the verdict is behaviour-layer and review-state.js records only an explicit note (@rules/auto-loop.md § Enforcement). The header matters for the reader: it is what tells a document review apart from a code or security review in a transcript.

Document Review

Review Summary

DimensionRating (1-5⭐)Notes
Completeness......
Feasibility......
Risk Assessment......
Code Consistency......
Test Strategy......

🔴 Must Fix (blocking — see Severity Calibration)

  • [Section/Line] Issue description -> Fix recommendation

(Write None if there are none.)

🟡 Suggested Changes (non-blocking)

  • [Section/Line] Issue description -> Fix recommendation

⚪ Optional Improvements

  • Suggestion

Deferred Findings

For every 🟡 and ⚪ above, emit one line here, starting at column 0:

[NIT_DEFERRED] <file:line> | <issue> | reason: sub-threshold-doc | <ISO8601 UTC>

Do not reorder the fields and do not use a different tag. Omit this section entirely if there are no 🟡 or ⚪ items.

Gate

End the report with exactly one verdict terminal, alone at column 0 on the final line — the same rule as @skills/doc-review/references/review-loop-doc.md, and what scripts/validate-family-sentinel.js doc accepts. As list items they are not a legal terminal.

  • No 🔴 findings → final line ✅ Mergeable
  • Any 🔴 finding → final line ⛔ Needs revision

Dispatch this body per @skills/codex-code-review/references/codex-transport.md § Start; the transport pins the sandbox and approval policy, so nothing is chosen here. Save the returned threadId — loop re-review continues the same thread per that reference's § Resume; see @skills/doc-review/references/review-loop-doc.md.

Task

Document to Review

$ARGUMENTS

If no path is given, auto-detect: git-modified 2-*.md under docs/features/ → staged .md → newest tech spec. Multiple candidates: list them and ask which to review.

Gate

SentinelMeaning
✅ MergeableNo 🔴 items — the spec may proceed to implementation
⛔ Needs revision🔴 items present — fix, then re-review on the same thread

These are the doc-plane sentinels (@rules/auto-loop.md § Gate Sentinels). No hook parses them — the verdict is behaviour-layer and review-state.js records only an explicit note. One thing does read them mechanically, and it is not a hook: scripts/validate-family-sentinel.js doc validates a fallback carrier's raw report before its verdict may be adopted. That is why the shape is fixed in both directions — a paraphrase reads as no verdict to a human, and fails the validator outright when a fallback produced it. Emit them verbatim.

🔴 only. 🟡 and ⚪ are non-blocking: log them via [NIT_DEFERRED] and proceed (@rules/auto-loop.md § Sub-Threshold Findings). Round cap and its ## Max Rounds override come from the shared contract (@rules/auto-loop.md § Tiers); still failing → report the blocker rather than spending another round.

Verification

  • Dispatched over the Codex exec transport (§ Start), not an Agent
  • The prompt asks for a Document Review, and the report opens with that header
  • Codex verified code-documentation consistency independently
  • Gate is one of ✅ Mergeable / ⛔ Needs revision

References

  • Shared loop mechanics and severity model: @skills/doc-review/SKILL.md
  • Re-review template: @skills/doc-review/references/review-loop-doc.md
  • Dispatch contract: @rules/codex-invocation.md

Signals

GitHub stars
188
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
review-spec-sd0xdev
Source
github.com/sd0xdev/sd0x-harness