Approval gate
A point a spec cannot pass until a named human approves it. The approval is bound to the document version they read — edit the document and the approval dies.
Without the binding, an approval is a timestamp on a document that has since changed, which is worse than no approval because it looks like one.
A gate is not a status field. The difference is whether anything is prevented: if work can proceed while the gate is red, you have a label, not a gate.
The part teams get wrong is version binding. Alice approves v2 on Tuesday. On Wednesday the author rewrites the data model. The document now carries an approval that describes something nobody agreed to — and it looks more trustworthy than an unapproved document, because it has a name on it. Binding the approval to v2 and superseding it on edit is what makes the record honest: the spec drops back to review, and Alice is asked again.
The second thing worth enforcing is who can approve. "Anyone on the team" collapses into whoever is least busy. Named reviewers, or a role, means the person with the context is the person who signs — and a higher risk tier can demand two of them.
What a gate costs you is throughput, deliberately. That trade is worth making where being wrong is expensive and not worth making for a typo fix, which is why bugs and chores should skip the ceremony entirely.
Requirements approved at v3. The author edits the rollout section, which supersedes the approval and returns the spec to review at v4 — with the original approval still visible in the audit trail as having applied to v3.
- Spec
One unit of work, carrying two documents: requirements (what and why) and implementation (how). Everything else — tasks, approvals, code refs, pull requests — hangs off it.
- Audit trail
The append-only record of who moved a spec, who approved which version, and when. The thing that answers “who decided this?” six months later, when nobody remembers the meeting.
- Risk tier
How much scrutiny a spec needs. Low-risk work takes one approver; work that can cost money or break trust takes two distinct ones.