Skip to content

docs: rebuild the decision surface; the spec follows the ADRs - #65

Open
ExtraToast wants to merge 4 commits into
v1-pre-releasefrom
rebuild/v1-decision-surface
Open

ExtraToast wants to merge 4 commits into
v1-pre-releasefrom
rebuild/v1-decision-surface

Conversation

@ExtraToast

Copy link
Copy Markdown
Contributor

Replaces the 19-ADR set with a tiered rebuild and rewrites spec/v1 to follow it.

What

  • docs/adr/ — 8 premises carrying falsifiable claims (claim: open names its owner and settling test) + 39 decisions at one-reversible-decision grain; README.md is the machine-checked register. Old set recoverable: last carried at 7ea3c4f, git log --diff-filter=D -- docs/adr.
  • Delivery and co-testing defined separately (owner decision, 2026-09-07): 13 ADRs (0008, 0041–0051, 0058) parked in docs/adr/deferred/ with their examples. The model's complete interface to future delivery: Release Unit atomicity (0060), Durability Class gating (0015), pinned inputs only (0006/0034).
  • New model concept 0060-release-unit — several Services switch as one task; no member's new version receives traffic until every member is healthy; one failing member holds the unit on old versions.
  • spec/v1 chapters 00–60 rewritten: normative anchors for every ADR pointer, the authority table once (ch20), purity over pinned ClusterState, per-Workload env files and identity, path-unit grants, pod hardening + size classes, registry-derived coverage table.
  • Examples model-only: split secret subtree per reader set, byte-matched placeholders, releaseUnit on the auth pair, error-code-asserting negative fixture.
  • scripts/lint-adrs.mjs + blocking adr-lint CI job: frontmatter schema, register integrity, citation + anchor resolution, content shape. Clean across all 47 model ADRs.
  • review/ — the six-lens adversarial review, consolidation, spine and rebuild manifest that produced this set (audit trail).

Provenance

103-finding adversarial review (review/CONSOLIDATED.md) → approved spine (review/SPINE.md) → authored per review/REBUILD-MANIFEST.md → per-domain adversarial verification (quotes checked against sources) → cross-set seam verification (16 fixes in the final commit).

…ed set

scripts/lint-adrs.mjs enforces the docs/adr contract: frontmatter schema,
required sections, register integrity against docs/adr/README.md, qualified
citations (no bare ADR tokens), normative anchors resolving into spec/v1,
content shape (no >10-line fences, costed alternatives), and Open-items
entries carrying Owner / Settled by / Blocks. Wired as a blocking adr-lint
job in ci.yml via pipeline-complete.

The six delivery examples (aggregator*, deployer-rbac, reapply-cronjob,
renovate.json) move from spec/v1/examples to docs/adr/deferred/examples:
delivery is defined separately from the model as of 2026-09-07.
Replaces the 19-ADR set (last carried at 7ea3c4f) with a tiered rebuild:

- docs/adr: 8 premises with falsifiable claims + 39 decisions, one
  separately-reversible decision each, rests-on naming premises only;
  README.md is the machine-checked register.
- Delivery and co-testing are defined separately from the model (owner
  decision, 2026-09-07): 13 ADRs (0008, 0041-0051, 0058) parked in
  docs/adr/deferred with their examples. The model's complete interface to
  future delivery: Release Unit atomicity (0060), Durability Class gating
  (0015), pinned inputs only (0006/0034).
- New: 0060-release-unit — several Services switch as one task; no member's
  new version receives traffic until every member is healthy.
- spec/v1 chapters 00-60 rewritten to carry the normative anchors, the
  authority table (once, in ch20), pinned ClusterState purity, per-Workload
  env files, path-unit grants, per-Workload identity, pod hardening and
  size classes, and the registry-derived coverage table. Examples are
  model-only: split secret paths per reader set, byte-matched placeholders,
  releaseUnit on the auth pair, error-code-asserting negative fixture.
- review/: the adversarial review, consolidation, spine and rebuild
  manifest that produced this set (audit trail).

scripts/lint-adrs.mjs passes clean across all 47 model ADRs.
Sixteen fixes from a read of all eight chapters against the ADR set and the
example files: E_UNBOUND_SECRET_GRANT scoped to delivery:env only; one error
code per condition (E_LEDGER_ENTRY_STALE / E_LEDGER_REVIEW_OVERDUE replace the
double-booked E_STALE_EXEMPTION; E_SUBTREE_PREFIX_COLLISION replaces the reused
E_PATH_COLLISION, which is render-phase and leaves the composition table);
E_RELEASE_UNIT_NO_READINESS added and cited from chapter 50; chapter 16's trace
and chapter 20's projection now grant the same split path the examples grant
(.../postgres/kb); knowledge's healthTimeoutClass corrected to stateful per its
own derivation rule; the seven-node estate fact restored in chapter 60 and ADR
0036; two open items repointed at consumers that exist; 'aggregator' removed
from chapter 30's render placement; the alias/applier clause reduced to the
negation and pointer the delivery split requires.
@ExtraToast ExtraToast added type: docs Documentation-only change. area: platform Platform, deployment, cluster, or runtime concern. labels Sep 7, 2026
Lint carried an unused statusOk binding and two useless regex escapes, and
its README link check did not resolve links into deferred/.

.gitignore did not cover .idea/, which showed untracked on every status. Add
editor, env, and cache patterns.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: platform Platform, deployment, cluster, or runtime concern. type: docs Documentation-only change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant