docs: finalize XZBT-NGN project records

This commit is contained in:
2026-09-17 19:46:30 -07:00
parent 835d966e75
commit 5075394f2a
5 changed files with 64 additions and 610 deletions
+54 -9
View File
@@ -2,26 +2,71 @@ _model: project
---
schema_version: 1
---
project_id: labyricorn-project-template
project_id: xzbt-ngn
---
title: Labyricorn Project Template
title: XZBT-NGN Exhibit Engine
---
summary:
Initial template and publishing structure for Labyricorn-compatible projects and development logs.
A generic single-exhibit host for XZBT Exhibit Contract 5.3: session negotiation, descriptor-driven control discovery, presentation-surface rendering, state inspection, and set/invoke operations, with no exhibit-specific vocabulary in the host.
---
status: active
---
started: 2026-08-23
started: 2026-09-13
---
author: Labyricorn
author: cgcha
---
repository_url: https://git.labyricorn.com/Labyricorn/labyricorn-project-template
repository_url: https://git.labyricorn.com/Labyricorn/XZBT-NGN
---
default_branch: main
---
tags: template, lektor, python
tags: xzbt, xzbt-ngn, exhibit-engine, contract-5-3, multi-surface, javascript
---
body:
body: |
XZBT-NGN is the host, orchestration and integration environment for exhibits that
speak the XZBT Exhibit Contract. It does not replace an exhibit; it extends one.
Everything an exhibit offers is discovered through the contract's target surface
and rendered generically, so no exhibit-specific vocabulary is hard-coded
anywhere in the host.
Starter template providing the standard .labyricorn/ publishing records, assistant instructions, devlog structure, and repository tooling for publication on Labyricorn.
## Completed work
The contract-boundary MVP is implemented and verified. A single unmodified host
negotiates a session, requests `describe`, renders discovered capabilities and
targets grouped by the exhibit's own categories, reads authoritative state,
submits set and invoke operations with full descriptor validation, displays
events with source and sequence, tracks registry and state revisions, and
recovers from synchronization loss. That same unmodified host drives five
maintained reference exhibits -- Aquarium, Planetarium, Haunted House, Museum
Gallery and SciFi-XZBT -- with no fixture-specific logic.
Contract 5.3 multi-surface support is complete. The host discovers presentation
surfaces from `describe`, resolves their URLs against the supplying exhibit's
document URL inside a same-origin boundary, and renders each in a local pane
that carries no contract session of its own. Museum Gallery exercises three
surfaces; SciFi-XZBT declares a console surface plus an Observation surface that
attaches to the console's single authority and never creates a second one.
Verification is automated and repeatable: 154 tests pass under `node --test`
with no npm dependencies and no build step, and the loopback server exposes only
`public/`, `src/` and `test-fixtures/` while denying paths that escape them.
## Formal design work
This repository is the canonical home of the XZBT Exhibit Contract Specification
(5.3 current; 5.2 retained as its historical predecessor, additively superseded),
the XZBT Exhibit Authoring Guide, and the NGN Implementation Plan. The
multi-surface architectural model was specified in full before implementation
and fixes the Step 6 / Step 7 boundary at the schema level: a surface descriptor
may name a document the host can load, and may never name a display transport,
casting protocol, network endpoint or device class.
## Future work
Step 7 -- display endpoints, meaning where a surface is physically shown -- is
specified by contrast in the multi-surface model but is not started. Casting and
remote displays, MIDI, MCP, webhooks, scenario authoring, recording, telemetry
connectors, integration adapters, packaging, multi-exhibit orchestration and
persistence all remain unimplemented; the host keeps in-memory state only. Five
non-blocking follow-up items requiring sustained human observation remain open
from the Step 6 closure.