Ephemeral read-model testing checklist

Status: The first experiment is complete and was reviewed on October 18, 2026. Follow-up work below is pending. This checklist records findings and proposed work; it does not approve implementation.

Build a disposable UI over an exported database to discover how easily an outside consumer can use the project's data contract. Preserve useful findings in this repository even when the experimental UI is discarded.

Existing experiment and evidence

Experiment commits: 2de6660, 3c7b2a0, 0a906be, and ae471f2 in the separate v3-test repository, all dated October 10, 2026. These show development over roughly an hour; they do not establish total effort or what assistance was needed. See that repository's README.md, server.py, static/, and tests/test_server.py.

Priority 1 — Clarify identity and approval semantics

The browser infers approval targets by parsing activity.label as Approve-Identity-ID: …. It combines same-username identities connected by approval relationships in either direction, including chains. That is a consumer-defined grouping rule, not evidence by itself of shared ownership or effective authorization.

Completion evidence: an outside consumer can explain which relationships the export proves, which it merely records, and which it cannot establish, without reading PHP implementation source. If the export cannot answer a question, its documentation states that limit.

Priority 2 — Define export compatibility and failure behavior

The browser uses a version-15 dump but does not inspect its schema version. Startup checks only that threads can be queried. Later requests can fail with a generic database error if required tables or columns are absent. The current schema reference includes retraction fields absent from this older dump; that is a compatibility example, not proof that the October 10 documentation was wrong.

Completion evidence: a fresh consumer can identify a compatible dump, explain snapshot limitations, and diagnose an incompatible dump without a source-code tour.

Priority 3 — Preserve findings and improve the next experiment

The experiment has no FINDINGS.md, input manifest, or contemporaneous friction log. Successful output proves practical usability for this snapshot, but does not establish docs-only independence, time to first success, or the amount of intervention.

Completion evidence: the next experiment produces both a working disposable tool and a traceable account of the friction encountered.

Backlog reconciliation