Skip to content

docs(design): Phase 2 evidence-plane ADRs (proposed) - #52

Merged
shreyanshjain7174 merged 3 commits into
mainfrom
docs/phase2-adrs
Oct 18, 2026
Merged

shreyanshjain7174 merged 3 commits into
mainfrom
docs/phase2-adrs

Conversation

@shreyanshjain7174

Copy link
Copy Markdown
Contributor

Plan

Phase 2 of the AgentGate scale-out prompt, this pass: ADRs only, no code. Each ADR is Proposed and needs owner approval before any implementation starts.

Files

  • docs/design/README.md: index plus an Open decisions table with recommended defaults.
  • docs/design/0000-phase2-sequencing.md: dependency order and what can proceed independently.
  • 0001-per-replica-chains.md:
    • chain_id = <replica-id>:<epoch> as a v2 field;
    • fencing via an external lease and token, with a cached self-fence deadline;
    • an append-only replica registry, so a missing chain is reported lost;
    • migration descriptors co-signed by root and the final v1 key.
  • 0002-two-phase-receipts.md:
    • intent before dispatch, outcome after;
    • outcome_unknown on crash recovery, not_dispatched only when certain at runtime;
    • upstream attempt count recorded;
    • retry dedup deferred.
  • 0003-durable-shipping.md: Postgres stays parked.
    • Signed sealed SQLite segments go to S3, MinIO or a filesystem export, written with conditional puts or O_EXCL.
    • A named signer for every artifact.
    • An epoch key is destroyed only after its final descriptor is durable.
  • 0004-merkle-checkpoints.md: signed head vectors and inventories first, Tessera and C2SP tlog later. A singleton fenced publisher with defined key custody.
  • 0005-root-certified-keys.md:
    • an offline root with a scoped in-cluster intermediate;
    • per-epoch certs with sequence-bounded validity, where time windows are only hygiene;
    • a trust_status cutoff on chain loss or takeover;
    • rotation at a batch boundary without draining;
    • v1-style binary preimages.
  • 0006-receipt-failure-modes.md: fail_closed (503 plus control receipts) ships. fail_open_spool is deferred until a concrete failure class justifies it. The deferred design keeps evidence-hiding defenses.
  • 0007-kubernetes-lifecycle.md:
    • StatefulSet with one PVC per replica;
    • an empty PVC must be explicitly enrolled;
    • storage fencing is proven before takeover, with force-detach tests;
    • single replica until per-replica auth and vault state is solved;
    • a 40s drain.
  • docs/spec/RECEIPT-v2.md: a proposal outline, marked "Proposed. Not implemented." v1 verification is unchanged.

Decisions for the owner

See docs/design/README.md#open-decisions. The main ones:

Validation

  • go build ./...: passed (docs only)
  • 125 relative links and anchors resolve
  • No em dashes, whitespace clean

Review

Two rounds by a second model (Claude Opus 5.5). Round 1 had blocking issues:

  • 0001, 0007: fencing and lost-chain detection;
  • 0005: an air-gap-unusable root ceremony and time-based validity;
  • 0003: undefined signers;
  • 0006: a spool with little real coverage.

All are resolved. Round 2: acceptable as proposed. Its 4 non-blocking refinements are applied.

shreyanshjain7174 and others added 3 commits October 18, 2026 06:47
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bind proposed chains to fenced ownership and signed registry history.
Defer spooling until a covered failure class is approved.

Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Constrain takeover evidence to covered heads.
Keep lease checks local and leave latency gate selection to the owner.

Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@shreyanshjain7174
shreyanshjain7174 merged commit 494e81b into main Oct 18, 2026
1 check passed
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