rite-seal
Decide GO/NO-GO for an active feature; /rite-ship owns commit, push, tag, and close.
SKILL.mdpack/.claude/skills/rite-seal/SKILL.md
GitHub<!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/verification-methods.md","rite-seal/reference/phase-contract.md","rite-seal/reference/final-evidence.md","rite-seal/reference/go-no-go.md","rite-seal/reference/risk-and-rollback.md","rite-seal/reference/seal-template.md","rite-seal/reference/output.md","rite-seal/reference/anti-patterns.md"],"triggers":{"agents":["devrites-lib/reference/standards/agents.md"],"browser":["devrites-lib/reference/standards/browser-proof-checklist.md"],"code-review":["devrites-lib/reference/standards/code-review.md"],"deprecation":["devrites-lib/reference/standards/deprecation.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"observability":["devrites-lib/reference/standards/observability.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"testing":["devrites-lib/reference/standards/testing.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md","evidence.md","touched-files.md","review.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","devex.md","review.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md","review.md"],"frontend-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"proof-runner":["spec.md","test-plan.md","tasks.md","gates.md","evidence.md","state.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","review.md"],"spec-reviewer":["brief.md","spec.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","state.md","review.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md","evidence.md","review.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md"]} -->
Read-set manifest:
devrites-engine context <slug> --phase sealbundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
/rite-seal: GO / NO-GO
Verify final candidate in seal.md; /rite-ship owns authorized irreversible
actions and close-out.
Authority
Read core.md plus only
final-diff-relevant standards: agents, code-review, testing, browser-proof-checklist,
security, principles, documentation, observability, deprecation,
definition-of-done, and verification-methods.md
for coverage-denominator and evidence-status judgment.
Load final-evidence.md and
go-no-go.md for proof and verdict safety.
Follow the shared
candidate-integrity.md for
the reviewed digest and artifact bindings.
The host runs/reconciles named read-only reviewers; engine checks invariants.
Standard is default; Full broadens conditional axes per
devrites-lib/reference/orchestration-profiles.md.
Gate
| State | Verdict |
|---|---|
Acceptance proven, deterministic checks pass, no unresolved drift or human gate, Critical == 0, Important == 0 |
GO |
Same, but Important > 0 |
Ask Important findings remain. Proceed to seal? [y/N]; default N. Only a human answers y; unattended (AFK/autocomplete) keeps N and stops for a human if Important remains |
Critical > 0 |
NO-GO |
| Any acceptance criterion, resolved prohibition, or declared key link lacks proof | NO-GO |
gates status is not all-met — an unmet, stale, unapproved, or abandoned ledger gate remains |
NO-GO |
| Evidence is stale, or native diff review plus the exact test analyst finds weakened tests | NO-GO: Critical |
| Any exact required reviewer account is missing or silent | NO-GO |
Any deferred finding (touched-files.md ## Review trail, eng-review.md ## Deferred findings) lacks a review.md verdict |
NO-GO |
Any gate: validating question remains open |
NO-GO |
| Material UI acceptance lacks or fails required browser proof | NO-GO |
| Unresolved drift, unsafe migration/removal, or unapproved principle violation remains | NO-GO |
check regression reports an unblessed loss vs the recorded progress baseline |
NO-GO |
check windows reports a deferral marker the change introduced without a windows.md waiver |
NO-GO |
A judgment-only criterion needs the human eye; AFK records a validating question
(slice: seal) and stops. Autocomplete never auto-picks it; only a human answers.
Workflow
Follow reference/phase-contract.md
(risk-and-rollback.md,
seal-template.md,
anti-patterns.md):
- read workspace and final diff;
- recheck the canonical candidate/bindings and approved repository/CI proof;
- admit every valid same-candidate Review account; dispatch remaining required exact roles under
../devrites-lib/reference/parallel-dispatch.mdin one wave, proof-runner included, on the same frozen candidate, code review through its § Engineering lanes; - reconcile their read-only verdicts against source and immutable evidence;
- draft GO/NO-GO
seal.mdwith acceptance, tests, decisions, and seven roster accounts plus proof-runner and doubt-reviewer (each engineering lane its own account); - write exactly one candidate binding, then run
devrites-engine check seal <slug>for structure and identity, never semantics, and, when that check reports a stale readiness-input binding, rundevrites-engine check drift <slug>before returning to Vet so the repair starts at the named changed, missing, or added input, anddevrites-engine check regression <slug>to confirm no recorded progress fact was lost since the last checkpoint —BLOCKEDis NO-GO;unproven(no baseline) does not block — plus two separate runs ofdevrites-engine check windows <slug>, one with--base <release-base>and one with--worktree(the only mode that scans untracked files; never pass both flags in one command, the last one wins) so each deferral marker the feature diff introduced carries awindows.mdwaiver row (windows.md); unwaived hits are NO-GO. The engine already refuses agates.mdledger that is malformed, unmet, stale, unapproved, or abandoned — a seal-sidegates statusreading anything butall-metmeans Prove's evidence is not current; return there, never attest past it. Before the Seal wave, rundevrites-engine gates reverify <slug> --transcriptson the frozen candidate, so every gate has a transcript bound to this digest for the proof runner. It likewise refuses a malformednotes.mdor any anchor graded other thanexact:devrites-engine note check <slug> --repairre-anchorsmovednotes;stale/ambiguous/lostones are corrected or removed before GO. Repeat eachnote: unexecuted driverlinecheck sealprints in the GO/NO-GO reply.
Corrections return through affected Prove/Review before restarting Seal under evidence validity.
Only repository scripts/CI authorize commands; never guess.
On GO
Set state.md Next step: /rite-ship and stop. A GO is a verdict, not
authorization to perform an irreversible action.
Output
Use reference/output.md.