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

vercelBot commented Jun 18, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJun 18, 2026 1:04pm

Request Review

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit e3f4342 into mainJun 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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@os-zhuang