refactor(design-ledger-gate): governed-roots list + DECISIONS.md relocation (RIG-2577 T2) - #576
Open
rigel-mintaka wants to merge 2 commits into
Open
refactor(design-ledger-gate): governed-roots list + DECISIONS.md relocation (RIG-2577 T2)#576rigel-mintaka wants to merge 2 commits into
rigel-mintaka wants to merge 2 commits into
Conversation
…cation (RIG-2577 T2) Atomic gate cutover — the critical first executable step of the design-docs reorg (RIG-2645 / RIG-2577 frozen record docs/designs/repo/compass-design-docs-reorg/design.md). - index.ts: PRODUCT_DIR -> DESIGNS_ROOT (docs/designs) + GOVERNED_ROOTS [ui, agent, server, meta, infra, repo, product] (product transitional until the RIG-2542-gated native sweep, T10). DECISIONS_PATH -> docs/designs/DECISIONS.md. touchesRecord iterates the roots (byte-identical two-layout test per first matching root); resolveRecordRelative + readRecord + the record glob work in designs-root-relative space; cross-bucket supersession pointers now resolve. - Relocate docs/designs/product/DECISIONS.md -> docs/designs/DECISIONS.md; re-base all 214 Record cells to product/-qualified targets (every cell resolves against the un-moved records). product kept as a transitional governed root so the gate is green on this single snapshot. - Newly-governed repo/ record compass-eng-docs/design.md gains Status: Active. - Link integrity (same-PR invariant, frozen record §Approach 7/9): re-base the two resolving markdown links to the moved ledger — compass-architecture-lineage/design.md (24x ../DECISIONS.md -> ../../DECISIONS.md) and docs/specs/product/compass.md (../../designs/product/DECISIONS.md -> ../../designs/DECISIONS.md). - Re-pin index.test.ts fixtures + add generalization cases; update moon.yml globs/comments and the workspace.yml gate comment. Verified: bun test 79 pass/0 fail; gate self-check OK 214 rows/67 headers; compass-eng-docs:build Complete (133 pages); root:markdownlint 0 errors. Ledger-impact: mechanical re-base, no decision changed Co-authored-by: Matt Wilkinson <matt@rigel.build>
|
Compass engineering docs preview: https://compass-repo-rig-2645-gate-c.compass-eng-docs.pages.dev Deployed from Changed pages: |
…ets (RIG-2645) Review-fix for #576. The cutover made non-product buckets (repo/, infra/, ui/, …) governed — which is why compass-eng-docs/design.md had to gain `Status: Active`. The existing header-presence tests only exercise a product-bucket record, so the governance→header-enforcement coupling for the newly-governed buckets was covered only transitively (via touchesRecord). Adds one `evaluate` case asserting a repo/ record with a null Status line fires the 'missing' violation; a regression that special-cased the product bucket for header presence would pass the product tests yet silently un-enforce every repo/infra/ui/… record, and this case would catch it. Refs RIG-2645 Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
added a commit
that referenced
this pull request
Aug 24, 2026
…RIG-2257) Design record for RIG-2257, the T7 runner/hub durability layer filed by the merged RIG-1509 ask-round-trip record (Decision 3). The RIG-1509 agent half is frozen substrate; this record is only the Go runner/hub + comms owed-delivery layer. ## Problem The comms ask answer-wake is keyed on the session id live at `RespondToAsk` time (`ask_waker.go:34-36` is a silent no-op when no live session), so an answer submitted while the asking agent has no live session — or after a reconnect/resume minted a new session id — is dropped and never redelivered. Re-key owed delivery on the agent account/handle, deliver on the account's next live session, no agent-side boot poll. ## Approach Mirror the shipped SEA-1569 delivery arm: add `AnswerDelivered` beside `Answered` on the durable ask block; the owed set is derived (`Answered && !AnswerDelivered`), not enqueued, so zero extra write on the answer path. Drained by the delivery consumer's existing `OnSessionStarted` sweep (the single `promoteSession` choke-point covers start, resume, and reconnect re-promotion). At-least-once: the marker flips on a send-only dispatch and un-flips on the router's observed refusal (no proto change). ## Review status Drafted by a raised-tier design pass, then red-teamed by an adversarial design-critic that grounded in the codebase. The critic caught a real load-bearing hole — the original at-least-once fallback was falsified by the author-exclusion in the D2 delivery sweep (`delivery_cursors.go:484`) — now folded into the router un-flip mechanism (OQ-2 / T6). ## Open Questions (pre-freeze gate) Three LOAD-BEARING OQs block the freeze and are routed to Matt for a ruling: OQ-1 marker location (block marker A vs owed table B vs delivered-at column C; rec A), OQ-2 delivery certainty (accept-window vs un-flip-on-observed-refusal vs ack frame; rec un-flip), OQ-3 deploy/backfill (recreate-now + seed-forward-later; rec that). Four non-load-bearing OQs are documented deferrals. Ledger-impact: deferred to freeze — the record adds DL-241..244, but the exact rows depend on Matt's OQ-2 ruling (reshapes DL-243) and on PR #576's concurrent relocation of the product DECISIONS.md path; the rows land in the same PR at freeze-time per skill://design. Spec-impact: none. Refs RIG-2257
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.
Atomic gate cutover — the critical first executable step of the design-docs
reorg (RIG-2645 / RIG-2577 frozen record
docs/designs/repo/compass-design-docs-reorg/design.md).
[ui, agent, server, meta, infra, repo, product] (product transitional until
the RIG-2542-gated native sweep, T10). DECISIONS_PATH -> docs/designs/DECISIONS.md.
touchesRecord iterates the roots (byte-identical two-layout test per first
matching root); resolveRecordRelative + readRecord + the record glob work in
designs-root-relative space; cross-bucket supersession pointers now resolve.
all 214 Record cells to product/-qualified targets (every cell resolves against
the un-moved records). product kept as a transitional governed root so the gate
is green on this single snapshot.
resolving markdown links to the moved ledger — compass-architecture-lineage/design.md
(24x ../DECISIONS.md -> ../../DECISIONS.md) and docs/specs/product/compass.md
(../../designs/product/DECISIONS.md -> ../../designs/DECISIONS.md).
globs/comments and the workspace.yml gate comment.
Verified: bun test 79 pass/0 fail; gate self-check OK 214 rows/67 headers;
compass-eng-docs:build Complete (133 pages); root:markdownlint 0 errors.
Ledger-impact: mechanical re-base, no decision changed
Co-authored-by: Matt Wilkinson matt@rigel.build