Skip to content

docs(adr): ADR-0054 — prove-it-runs gate for the authorable surface#2024

Merged
os-zhuang merged 2 commits into
mainfrom
docs/adr-runtime-authorable-proof
Jun 18, 2026
Merged

docs(adr): ADR-0054 — prove-it-runs gate for the authorable surface#2024
os-zhuang merged 2 commits into
mainfrom
docs/adr-runtime-authorable-proof

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Summary

Extends ADR-0049 (enforce-or-remove) with a third leg: prove-it-runs.

The spec-liveness ledger (#1919) classifies every authorable property live / experimental / dead with evidence — and kills silent dead surface. But "live" today means only a static file:line consumer pointer: proof that something reads the property, not that authoring it produces correct runtime behavior. That gap — call it unproven liveness — is where the recent regressions fell:

  • #2018 (tz bucketing) was live at every layer and green on every static gate (~900 unit tests, spec-liveness, CodeQL) — broken only in the integration of engine ↔ strategy ↔ settings ↔ REST context.
  • #2022 (field-zoo matrix) found rating/slider/toggle reading back wrong-typed on its first run.

Why it matters for this platform

ObjectStack's authors are AI emitting arbitrary metadata across a combinatorial space the curated examples never cover. When a human authors something broken they notice; when an AI is told a property is "live" and it silently misbehaves, it ships into a third-party app. So "live" must carry a stronger guarantee for the primitives most likely to break in integration.

The decision

A live classification may be backed by a proof — a @objectstack/dogfood test that authors the property against the real in-process stack and asserts the runtime outcome. Enforced as a ratchet, not a retrofit:

  • required for a defined high-risk authorable class (field types, analytics dims/measures, RLS/sharing, flow nodes, form widgets) on add/change;
  • required for any property implicated in a shipped regression (the fix carries its proof — as fix(analytics): make organization timezone drive date-dimension bucketing (#1982) #2018 did, and as the rating/slider/toggle fix must lift the field-zoo it.fails quarantine);
  • not demanded of all ~200 live properties (trivial/presentation props keep a static pointer).

Composes the three gates into one honest chain: valid (build-time guardrails) → has a consumer (liveness) → runs correctly (dogfood).

Generative property testing is explicitly deferred (Phase 3, evidence-gated) — high-ceiling, high-maintenance, doesn't lead.

Status

Proposed — for Protocol Architect review. Doc-only (docs/adr/0054-...md); no code change.

Extends ADR-0049 (enforce-or-remove) with a third leg. The liveness ledger
(#1919) classifies every authorable property live/experimental/dead, but "live"
means only a static file:line consumer pointer — proof that something reads the
property, not that authoring it produces correct runtime behavior. #2018 (tz
bucketing: live at every layer, broken in integration) and the field-type
fidelity gaps (#2022: rating/slider/toggle read back wrong-typed) fell through
that gap — call it "unproven liveness".

For a platform whose authors are AI emitting metadata across a combinatorial
space the examples never cover, unproven liveness ships silently into
third-party apps. ADR-0054 upgrades a `live` classification to optionally carry a
`proof` — a @objectstack/dogfood test that authors the property against the real
in-process stack and asserts the runtime outcome. Required as a ratchet (not a
retrofit) for a high-risk authorable class on change, and for any property
implicated in a shipped regression (the fix carries its proof). Generative
testing is explicitly deferred (Phase 3, evidence-gated).

Proposed — for architect review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 18, 2026 1:04pm

Request Review

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit e3f4342 into main Jun 18, 2026
13 of 14 checks passed
@os-zhuang
os-zhuang deleted the docs/adr-runtime-authorable-proof branch June 18, 2026 13:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant