Skip to content

refactor(design-ledger-gate): governed-roots list + DECISIONS.md relocation (RIG-2577 T2) - #576

Open
rigel-mintaka wants to merge 2 commits into
mainfrom
compass-repo/rig-2645-gate-cutover
Open

refactor(design-ledger-gate): governed-roots list + DECISIONS.md relocation (RIG-2577 T2)#576
rigel-mintaka wants to merge 2 commits into
mainfrom
compass-repo/rig-2645-gate-cutover

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

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

…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>
@linear-code

linear-code Bot commented Aug 24, 2026

Copy link
Copy Markdown

RIG-2577

RIG-2645

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant