feat(phase0): complete GC1 feasibility and GC2 shared format contracts

- Record user evidence for directory fallback to complete GC1 (10/10 checks passed)

- Expand Format Specification 0.1 to Revision 0.2 with normative shared contracts

- Author JSON Schema Draft-07 at schema/xzbt-0.1.schema.json

- Implement zero-dependency semantic validator at tools/validate-exhibit.mjs

- Create 12-case conformance fixture suite and automated test runner (12/12 passing)

- Update implementation status, verification gates, and gap closure decisions

- Add devlog entry covering stall recovery and Phase 0 current state
This commit is contained in:
2026-09-05 11:38:48 -07:00
parent ca2830174f
commit e02d49a739
25 changed files with 2473 additions and 66 deletions
+6 -6
View File
@@ -1,15 +1,15 @@
# XZBT 0.1 Gap Closure Decisions
**Record version:** 0.1\
**Status:** Incorporated into the planning baseline; implementation verification pending\
**Record version:** 0.2\
**Status:** Incorporated into the planning baseline; GC1 feasibility and GC2 shared contracts verified; remaining subsystem verification pending\
**Related resources:** [PRD](../XZBT_0-1_MVP_Product_Requirements_Document.md), [format specification](XZBT_0-1_Format_Specification.md), [verification gates](XZBT_0-1_Verification_Gates.md)
Numbering preserves the seven gaps discussed during PRD preparation. Recording a decision closes a design question; it does not establish that a browser feature, performance target, or lifecycle guarantee has passed testing.
| Gap | Primary PRD placement | Supporting verification |
| --- | --- | --- |
| 1 | 3.4, 109-111, 122, 132, Phase 0 | GC1 |
| 2 | Resource preface, 113, Phase 0, 145-146 | GC2 |
| 1 | 3.4, 109-111, 122, 132, Phase 0 | GC1 (Passed) |
| 2 | Resource preface, 113, Phase 0, 145-146 | GC2 (Shared contracts verified) |
| 3 | 31-32, 54, 104 | GC3 |
| 4 | 14, 102, 117-118 | GC4 |
| 5 | 91, 94, 99-101 | GC5 |
@@ -26,7 +26,7 @@ Verify file import, audio unlock, cache writes, browser restart, and cache resto
Moving or renaming the HTML is a separate compatibility case. Do not promise that browser storage follows it. When storage is unavailable, retain session playback and explain that exhibits must be imported again on a later launch. This fallback does not waive the ordinary-mode persistence acceptance requirement.
**Gate:** GC1 in the verification checklist. A failure of direct-file persistence in the chosen supported environment reopens the deployment decision; do not silently replace the distribution promise with hosted-only operation.
**Gate:** GC1 in the verification checklist. All 10 direct-file feasibility checks are verified with linked empirical evidence; GC1 is passed.
**Verified packaging refinement:** The [version 3 manual probe](evidence/phase0/2026-09-04-user-run-v3.md) loads and connects the engine-owned worklet from an embedded data URL in direct-file Chrome 152; the earlier Blob URL approach failed in the same user's testing. Use the verified data-URL approach for this packaging path, with an explicit page script-source allowlist and network connections disabled. This does not permit exhibit-authored executable code or declare the remaining GC1 checks complete.
@@ -40,7 +40,7 @@ For each exposed construct, specify JSON shape, required fields, defaults, units
Complete valid exhibits and invalid fixtures are required alongside each contract. Reconcile relevant details from the earlier discussion into the local specification. The current format document is a foundation and completeness register, not a claim that all grammar has been formalized.
**Gate:** GC2. Exact shared contracts precede their implementations; remaining subsystem contracts may be completed in dependency order. Publishing the schema and editor autocomplete remain optional post-MVP work. Maintaining an internal schema is required for 0.1.
**Gate:** GC2. Shared contracts, structural schema, semantic validator, and 12-case test suite are verified; see [GC2 evidence](evidence/phase0/2026-09-05-gc2-format-contracts.md). Subsystem-specific contracts will be completed in dependency order before implementing each subsystem. Publishing the schema and editor autocomplete remain optional post-MVP work. Maintaining an internal schema is required for 0.1.
## 3. Bindings, overrides, and automation