Skip to content

docs(adr): ADR-0045 — additive materialization with a visibility gate; drafts narrow to mutations#1767

Merged
os-zhuang merged 1 commit into
mainfrom
docs-adr-0045-additive-materialization
Jun 12, 2026
Merged

docs(adr): ADR-0045 — additive materialization with a visibility gate; drafts narrow to mutations#1767
os-zhuang merged 1 commit into
mainfrom
docs-adr-0045-additive-materialization

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

ADR-0045 (Accepted 2026-06-12): additive AI builds materialize real artifacts immediately (real tables, real seed rows) behind a hidden-app visibility gate; Publish = visibility flip (instant, reversible). The ADR-0027 draft workspace narrows to mutations of published artifacts, where diff review is the right tool.

Why

The draft-overlay "second world" has an unbounded adaptation surface. The 2026-06-12 local E2E audit found five independent defects in one pass, all at second-world seams (REST dropping ?preview=draft, client envelope mismatch, navigation dropping the flag, NavigationSync cross-world diff nearly issuing destructive writes, the magic-moment canvas rendering a false empty state) — plus the standing P3 gap: previews show no row data on the surfaces users actually judge (lists/kanban). Industry survivors (Power Apps/Retool, v0-class) all preview real apps; the gate varies, the half-world doesn't exist.

Key decisions

  • §1 additivity = reachability from the visible surface, not name-newness (closes the implicit <object>.<key> view-tab leak)
  • §3 "complete semantics of invisible": no discovery, API 404, outbound side-effects suppressed; ADR-0039 package-scoped preview tokens later
  • §6 discard = trash-can rename + 7-day GC + lossless restore (v1: typed-confirmation hard delete)
  • ADR-0038 L1 lint moves before materialization (failed lint lands nothing); L2/L3 probes exercise the real hidden app
  • v1 scope = "magic moment on rails": whole-app builds only; incremental edits keep today's draft+diff path

Impact

Framework (materialize/teardown, visibility flip, lint pre-gate) → cloud (apply_blueprint cutover) → objectui (canvas → real URL, unpublished banner). P3 synthetic-data plumbing retires in v2.

🤖 Generated with Claude Code

…; drafts narrow to mutations

Accepted 2026-06-12. Additive builds materialize real artifacts immediately
(hidden app = the gate; publish = visibility flip); the ADR-0027 draft
workspace narrows to mutations of published artifacts. Evidence: the
2026-06-12 preview-chain audit (five second-world adaptation defects) and
the unfinished P3 data plane. Resolves discard (trash-can + 7-day GC),
hidden-app API exposure (fully dark + ADR-0039 preview tokens later), and
the implicit-reachability additivity clause. v1 scope: magic moment on rails.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Building Building Preview, Comment Jun 12, 2026 6:34am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation size/m labels Jun 12, 2026
@os-zhuang
os-zhuang merged commit fa65285 into main Jun 12, 2026
10 of 11 checks passed
@os-zhuang
os-zhuang deleted the docs-adr-0045-additive-materialization branch June 12, 2026 06:34
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