feat(ratification): gate ratification record, unified completion authority, ruling trailer validation (#627 Stage 2) - #638
Merged
Conversation
…nd + wiring tests
…behavioural tests
…nding, trim-safe path scan
…e binding, fail-closed working-tree probe
…counter, fail-closed lane binding
…lic refs at read + exact HEAD equality)
…ime artifacts (drop blanket .pi)
…ing tests for ratification
…ec Stage 2a, CHANGELOG
…-runner citation scan
…ontained audit detail
…ce tree (drift parity)
…source-drift tests for consolidation
…NGELOG, discoveries
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#627 Stage 2 — TP-198 + TP-199 (Taskplane batch 20260907T194708)
First batch run on the Stage-1 held-state build (
1bfe3e0c87cb). 2/2 succeeded, 13 reviews (Level 3, plan+code checkpoints), 0 relaunches, 0 holds opened — every finding was resolved in-authority; the spiral signal fired at 3 and 6 on TP-198 step 3 and was adjudicated by steer under a hard cap.TP-198 — Gate ratification record + finalize binding
ratification.ts/ratification-op.ts:GateRatificationbound to task, segment, gate, released ruling, superseded-review sha256, immutable proof oid == HEAD, clean source tree (only STATUS/.DONE/.reviews exempt), staleness (later REVISE or newer review for the gate); unique ids per issuance; structural decoding of persisted records; fail-closed git probes.ratify_gatetool (supervisor stamp) and/orch-ratify(operator stamp — the only path); packet-home routing for cross-repo segments; allocation from the global review counter; audit entrygate_ratified.review_gate_refusal/invalid-ratification. Unlinked APPROVEs unchanged (feat(gate-integrity): task must not finalize succeeded while steps lack an explicit APPROVE in their review files #626 coverage gate is out of scope).TP-199 — One completion predicate + ruling citations
completion-authority.ts:authorizeCompletion()= holds → review gates → ratification, reporting all blockers; used by the live finalize path and resume's.DONEacceptance with the same working-tree drift probe.ruling-trailer.ts:Taskplane-Ruling: <id>trailer parsing + validation against the hold table; unknown id / wrong unit / prose claims → STATUS line + audit entryruling_citation_flagged+ one alert per iteration; never changes task status. Worker template documents the contract.Validation
Both tasks ran the full suite, typecheck, lint (283 baseline held), format and CLI gates in their Step 4; both wave merges ran tests. Review files are in each task's
.reviews/.