generated from Labyricorn/labyricorn-project-template
docs: finalize XZBT-NGN project records
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user