Skip to main content

Skip docs navigation
manual page/ Start here

Review

sourceSource: suspec/docs/08-reviewing-output.mdModified: 2026-07-14

Finished work goes on trial against the ready spec. sus-review reconciles it independently, requirement by requirement. A task narrows scope and indexes evidence; it cannot replace the spec. The implementer cannot review their own work.

Shape

example.md

file
---
type: review
id: REVIEW-checkout-expiry
spec: SPEC-checkout-expiry
task: TASK-checkout-expiry
reviewer: session-or-name
decision: pending
---

# Checkout expiry review

## Requirement coverage

| ID     | Assessment | Evidence                                  |
| ------ | ---------- | ----------------------------------------- |
| AC-001 | Supported  | `3 passed` — [E-001](./evidence-checkout.md#E-001) |
| AC-002 | Unverified | CI run is unavailable.                    |

The review ID and non-empty Requirement coverage table are required. Add changed files, findings, open decisions, or change-plan coverage only when they carry information.

AssessmentMeaning
Supportedevidence demonstrates the requirement
Unsupportedevidence demonstrates failure
Unverifiedevidence is missing or insufficient
Blockeda dependency prevents assessment

The agent leaves decision: pending. Valid decisions are pending, accepted, changes-requested, and deferred.

When a task executes a change-plan wave, Change-plan coverage uses the same columns and assessments. C016 and the accepted-review Blocked rule apply to both coverage tables. C012, C013, and waivers apply only to Requirement coverage.

Evidence

Rerun every applicable Verify with: command against the judged state. Worker output remains a claim. Keep short decisive output once. Move dominating raw output into an adjacent evidence receipt and link its stable anchor beside a verbatim excerpt.

A structured record may bind the command:

example.md

file
```verify id=AC-001 cmd="npm test -- expired-session" result=pass
3 passed
Full output: [E-001](./evidence-checkout.md#E-001)
```

Its info string records consistency; it does not prove the body or issue a verdict.

Check

command
suspec check <review-path> --spec <spec-path>
suspec check <review-path> --spec <spec-path> --task <task-path>

The checker reports coverage, command binding, evidence presence, references, and severity. C016 blocks Supported with empty evidence. The checker never accepts work. It has no such authority.

Human decision

After assessment, recommend:

  • Accept: every row is supported and no blocker remains.
  • Request changes: unsupported rows or material findings remain.
  • Defer: blocked rows or unresolved material decisions remain.
  • Accept with waivers: the owner deliberately accepts unsupported or unverified requirements.
  • Accept with named risk: requirements are supported, but the owner deliberately accepts a remaining material finding.

Write the human selection to decision. For accepted work, waivers is absent unless Requirement coverage contains Unsupported or Unverified. Then list every such ID exactly once, no others, and record owner, reason, and follow-up in the project's decision channel.

Never offer plain Accept while a material finding remains. Before acceptance, fix and verify it or record its named owner, explicit accepted-risk decision, reason, and follow-up in the project's decision channel. Until then, repeat it under Open decisions; accepted reviews reject that section. Non-material notes may expire with the review.

Accepted reviews contain no Blocked assessment or non-empty Open decisions. Blocked work cannot be waived.

The review remains live through findings and requested fixes. Close its complete transient set only after no downstream step needs it; see artifact close.

Use Revolver for broad risk and Triple-check for narrow depth. Neither creates an artifact.

Exact review contract: artifact formats.

Next: findings and memory. Previous: execution.

Need a starting point? Install the skills