Skip to content

Commit 0a121b1

Browse files
xuyushun441-sysos-zhuangclaude
authored
docs(adr): ADR-0060 P3 — landed-bar in force; status Accepted (P1–P2 done) (#2106)
D5: document the "landed" bar — a declaration surface is landed iff it has a conformance ledger whose checkLedger ratchet is green ("ledger or it isn't landed", ADR-0049's mechanical third leg). Adds an Implementation status section recording the three ledgers now sharing one helper (authz / expression / validation-rule). D6 (CI aggregate) explicitly deferred — each ledger self-gates. Status: Proposed → Accepted. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 8afac0a commit 0a121b1

1 file changed

Lines changed: 28 additions & 3 deletions

File tree

docs/adr/0060-conformance-ledger-platform-pattern.md

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ADR-0060: Conformance Ledger as a Platform Pattern
22

3-
**Status**: Proposed (2026-06-21)
3+
**Status**: Accepted — P1–P2 implemented; D5 landed-bar in force; D6 (CI aggregate) deferred (2026-06-21)
44
**Deciders**: ObjectStack Protocol Architects
55
**Builds on**: ADR-0049 (enforce-or-remove / no unenforced declaration), ADR-0054
66
(runtime proof per enforced high-risk primitive), ADR-0056 D10 (Authorization
@@ -171,8 +171,33 @@ shared invariants, independent ratchets, additive.
171171
authz + expression ledgers onto it (tests stay green; proves reuse).
172172
- **P2** — D3 validation-rule-surface ledger + ratchet; classify every rule type,
173173
pin the ADR-0020 `state_machine` enforcement with a proof.
174-
- **P3** — D5 as the documented "landed" bar; D6 CI aggregate; extend to the next
175-
highest-risk surfaces (flow conditions, UI actions, connectors) as evidence warrants.
174+
- **P3** — D5 as the documented "landed" bar (**done** — see Implementation status);
175+
D6 CI aggregate **deferred** (each ledger self-gates); extend to the next highest-risk
176+
surfaces (flow conditions, UI actions, connectors) as evidence warrants.
177+
178+
## Implementation status (2026-06-21)
179+
180+
P1–P2 landed; the pattern is proven across **three** surfaces sharing one helper:
181+
182+
| Surface | Ledger | Discover / ratchet | Enforcement |
183+
| :-- | :-- | :-- | :-- |
184+
| Authorization (ADR-0056 D10) | `authz-conformance.matrix.ts` | curated primitives | plugin-security / plugin-sharing |
185+
| Expression (ADR-0058 D7) | `expression-conformance.ledger.ts` | every `ExpressionInputSchema` field in spec | `@objectstack/formula` compiler |
186+
| Validation rules (ADR-0020) | `validation-conformance.ledger.ts` | every `validations` union rule type | `objectql` rule-validator |
187+
188+
Helper: `@objectstack/verify``checkLedger(rows, opts)`.
189+
190+
**D5 — the "landed" bar (in force).** A declaration surface is **landed iff it has
191+
a conformance ledger whose `checkLedger` ratchet is green.** Adding a new authorable
192+
surface (a new `ExpressionInputSchema`-style family, a new `validations` rule type,
193+
a new authz primitive) without a ledger row is, by construction, an unclassified-
194+
surface CI failure. This is ADR-0049's "enforce or remove" with a mechanical third
195+
leg: **ledger or it isn't landed.**
196+
197+
**D6 — CI aggregate: deferred.** Each ledger already gates itself in CI, so a single
198+
aggregate meta-test adds little beyond a registry of registries. It is deferred until
199+
the surface count makes a one-call "is the whole conformance surface green?" worth the
200+
indirection.
176201

177202
## References
178203

0 commit comments

Comments
 (0)