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
@@ -0,0 +1,31 @@
# Phase 0 directory fallback observation
**Result:** Passed for directory import fallback: cancellation and denial error handled gracefully without crashing or losing session state.
**Evidence:** [User-supplied JSON](2026-09-05-user-directory-fallback.json)
**Page started:** `2026-09-05T18:04:08.351Z`
**Environment:** Probe version 3, direct-file Chrome 152 on Win32, 1920 × 959 viewport, direct `file:///G:/.vibe/XZBT/prototypes/phase0/XZBT-phase0-probe.html` launch.
## Procedure and Observation
1. The probe was loaded directly from disk in regular desktop Chrome.
2. Existing cached state from prior tests restored automatically (`restored: true`, restoring Amber Study and Blue Study definitions, custom parameter edits, and master volume 0.19).
3. The user invoked the "Import directory" action (`window.showDirectoryPicker`).
4. The user cancelled the directory picker prompt.
5. Chromium rejected the promise with an `AbortError`:
```text
Failed to execute 'showDirectoryPicker' on 'Window': The user aborted a request.
```
6. The probe caught the rejection cleanly via `try ... catch`:
- It recorded `directoryImport: "cancelled"`.
- It logged the `AbortError` under `errors` array.
- It presented a non-fatal polite status message to the user interface.
- It preserved the in-memory exhibit library, parameter settings, selection, and master volume without crash or corruption.
## Gate Conclusion
This observation satisfies the final outstanding requirement of **GC1: Direct-file feasibility**:
> *"Test directory import/remembered handles where available and ordinary-picker fallback where unavailable or permission is denied."*
All 10 checks of GC1 are now verified with linked empirical evidence. GC1 is marked **Passed**.
Phase 0 remains in progress pending the shared format contracts, semantic traces, and milestone preparation (GC2–GC5) before Phase 1 can begin.