Review is its own run
Four kinds of document carry a review-and-refine loop: the PRD, the RFC, the
Feature Specification and the Feature-Slice Specification. review-prd and
review-rfc are pipeline operations, and the pipeline does not advance past
them. review-feature and review-feature-slice sit beside the pipeline: the
specification is already sealed, so reviewing it advances nothing.
Every review reads the sealed bytes of the one revision it names, on the same
independence terms: a run distinct from the author’s, read-only access to the
subject and no inherited author reasoning. Each review issues one of five
verdicts: PASS, PASS_WITH_ADVISORIES, REVISE, PROVISIONAL or BLOCKED.
A session decides; it never edits
refine-prd, refine-rfc, refine-feature and refine-feature-slice each run
a decision session over a sealed review. The owner decides each finding, and the
decisions are recorded in a separate overlay revision that the next review reads
alongside the document. The subject’s bytes do not change, and a disputed
finding stays standing until the next review adjudicates it.
A session admits a subject on its current state, not its origin. A document authored by Specgent, one imported from elsewhere and one compiled by an earlier session are admitted on the same terms: the bound revision must be the subject’s latest, and a sealed review must be bound to it by content hash with a verdict the policy admits.
The loop
Compiling a session seals the next revision of the same subject, and that revision needs its own sealed review. Each pass adds exactly one revision; nothing earlier is amended, and every revision stays readable.
Nothing decides when the loop is done. There is no convergence threshold and no round limit: the loop runs until the operator stops invoking it. A passing verdict is still not acceptance, and a compiled revision stays unaccepted until someone approves it.
Choosing a lane
Re-running the operation that authored a document fits a change upstream of it, such as a change to the idea, the research or the requirements, because the operation rebuilds the whole document from the corrected inputs. A refine session fits a response to review findings on the document as it stands. A document imported from outside Specgent has no authoring run to re-enter, so for it the session is the only lane.
Approvals
Sealing is not acceptance. An approval is a separate record naming an authority, a revision and an approval identifier, and nothing derives from a sealed revision that has not been approved. Any user may invoke any operation; what is bound to a role is approval.
| Document type | Assurance basis | Approved by |
|---|---|---|
workspace-context |
phase validation and owner approval | product owner |
research-brief |
phase validation and owner approval | product manager |
prd |
independent review | product owner |
rfc |
independent review | technical lead |
epic-portfolio |
phase validation and owner approval | product owner |
feature-backlog |
phase validation and owner approval | product owner and technical lead |
feature-spec |
phase validation and owner approval | technical lead |
feature-slice-set |
phase validation and owner approval | technical lead, or a delegated developer |
feature-slice-spec |
phase validation and owner approval | technical lead, or a delegated developer |
Organization policy may strengthen this floor but not remove the review:
independent review of a PRD or an RFC is mandatory and cannot be skipped. A PRD
or RFC whose review came back REVISE or BLOCKED can still be accepted, but
only by the role the policy names, citing waivers that are issued by roles
owning their category and that together cover every open blocking finding. A
PROVISIONAL verdict is never waived; the review is re-run instead.
For a Feature Specification or a Slice Specification, a review is evidence that an approval may cite, never a gate it has to break. The acceptance records which review round the approver read and what was still open in it.