Context
Operator no-go (2026-08-21, in-session, the dock-consolidation arc): "examples/dashboard has an OWN index file, so there is a NESTED example with a different index file. many many no-gos." Verified same hour: examples/dashboard/ carries its own index.html + app.mjs + MainContainer.mjs (a legacy Neo.dashboard.Container color-box demo) AND two nested example apps with their own index files — examples/dashboard/dock/ (the sanctioned dock verification surface, #13247) and examples/dashboard/crossWindowWitness/ (verification-only cross-window safety harness, self-described "not a product demo").
A census of every examples/*/ topic dir (2026-08-21) shows this is the only hybrid in the tree — every other dir is either a leaf app or a pure parent, never both.
The Problem
The hybrid breaks the examples contract three ways:
- Routing ambiguity:
/examples/dashboard/ is simultaneously an app URL and the namespace prefix of two other app URLs.
- Walker special-casing: build/SEO walkers and portal example listings must special-case a dir that is both app and namespace, or silently mis-render one of its two identities.
- A broken foundation about to take load: the dock-demo relocation (
#16322, operator-directed: demos leave the FM app for examples/) lands MORE siblings under examples/dashboard/ — building on the hybrid multiplies the special case exactly when the dir becomes the dock system's demo home.
The Architectural Reality
- The leaf-vs-parent convention is live in the tree, with an exact demotion precedent:
examples/button/base/, examples/container/base/, examples/list/base/.
- Spec consumers of the ROOT example: none found. The e2e/core specs (
RefreshDomCorpseRepro.spec.mjs:21, DragSensorDispatch.spec.mjs:28) and the dashboard unit specs all target examples/dashboard/dock/, whose URL does not change.
- Registry/walker surfaces to verify at move time:
buildScripts/docs/seo/generate.mjs (walks example trees) and the portal examples registry — the #17438 Calendar-identity regression is the precedent for silent registry drift when an example's identity moves.
The Fix
- Move the root example to
examples/dashboard/base/ (index.html, app.mjs, MainContainer.mjs, neo-config.json), following the button/container/list precedent.
examples/dashboard/ becomes a pure parent: base/ + dock/ + crossWindowWitness/ — ready to receive the #16322 arrivals as clean siblings.
- Update registry/walker references; verify SEO output and portal example routing by build receipts, not assertion.
Decision Record impact
none — examples-tree organization; no ADR authority touched. The dock example remains ADR 0029 §2.5's cited verification surface at an unchanged path.
Acceptance Criteria
Out of Scope
- The dockdemo relocation itself (
#16322) — this ticket prepares its destination; sequencing: this PR lands first.
- Dock styling promotion (
#17241) — the reason examples/dashboard/dock renders unstyled today; separately owned.
- Renaming
crossWindowWitness/Harness.mjs — its "harness" is the ordinary QA term, not the Agent-Harness misnomer class (#17503 owns that class).
Related
#16322 (consumes this as its destination shape) · #17241 (engine-paint promotion makes the dock example presentable) · #17503 (docking-authority identity catch-up, same sweep) · #13247 (dock example origin) · #15144 (workstation promotion precedent)
Live latest-open sweep: latest 20 open checked 2026-08-21T20:16Z; no equivalent (#17502 ADR-0040 leaf is extraction-lane, no overlap). A2A claim sweep: recent window scanned; no competing claim on examples structure.
Unclaimed — offered to the peers the operator named with bandwidth (Grace/Ada) alongside #16322; pairs naturally with #16322 under one owner as two sequenced PRs.
Origin Session ID: 55e55313-48fa-4295-83fd-37121a2bf4b6
Retrieval Hint: "examples dashboard hybrid leaf parent base demotion dock demo destination"
Context
Operator no-go (2026-08-21, in-session, the dock-consolidation arc): "examples/dashboard has an OWN index file, so there is a NESTED example with a different index file. many many no-gos." Verified same hour:
examples/dashboard/carries its ownindex.html+app.mjs+MainContainer.mjs(a legacyNeo.dashboard.Containercolor-box demo) AND two nested example apps with their own index files —examples/dashboard/dock/(the sanctioned dock verification surface,#13247) andexamples/dashboard/crossWindowWitness/(verification-only cross-window safety harness, self-described "not a product demo").A census of every
examples/*/topic dir (2026-08-21) shows this is the only hybrid in the tree — every other dir is either a leaf app or a pure parent, never both.The Problem
The hybrid breaks the examples contract three ways:
/examples/dashboard/is simultaneously an app URL and the namespace prefix of two other app URLs.#16322, operator-directed: demos leave the FM app forexamples/) lands MORE siblings underexamples/dashboard/— building on the hybrid multiplies the special case exactly when the dir becomes the dock system's demo home.The Architectural Reality
examples/button/base/,examples/container/base/,examples/list/base/.RefreshDomCorpseRepro.spec.mjs:21,DragSensorDispatch.spec.mjs:28) and the dashboard unit specs all targetexamples/dashboard/dock/, whose URL does not change.buildScripts/docs/seo/generate.mjs(walks example trees) and the portal examples registry — the#17438Calendar-identity regression is the precedent for silent registry drift when an example's identity moves.The Fix
examples/dashboard/base/(index.html,app.mjs,MainContainer.mjs,neo-config.json), following the button/container/list precedent.examples/dashboard/becomes a pure parent:base/+dock/+crossWindowWitness/— ready to receive the#16322arrivals as clean siblings.Decision Record impact
none — examples-tree organization; no ADR authority touched. The dock example remains ADR 0029 §2.5's cited verification surface at an unchanged path.
Acceptance Criteria
examples/dashboard/contains no rootindex.html/app.mjs/MainContainer.mjs; the legacy demo lives atexamples/dashboard/base/and loads at its new URL (dev-mode receipt in the PR).examples/dashboard/dock/andcrossWindowWitness/URLs unchanged; the two e2e/core specs and the dashboard unit specs stay green untouched.examples/.Out of Scope
#16322) — this ticket prepares its destination; sequencing: this PR lands first.#17241) — the reasonexamples/dashboard/dockrenders unstyled today; separately owned.crossWindowWitness/Harness.mjs— its "harness" is the ordinary QA term, not the Agent-Harness misnomer class (#17503owns that class).Related
#16322 (consumes this as its destination shape) · #17241 (engine-paint promotion makes the dock example presentable) · #17503 (docking-authority identity catch-up, same sweep) ·
#13247(dock example origin) ·#15144(workstation promotion precedent)Live latest-open sweep: latest 20 open checked 2026-08-21T20:16Z; no equivalent (
#17502ADR-0040 leaf is extraction-lane, no overlap). A2A claim sweep: recent window scanned; no competing claim on examples structure.Unclaimed — offered to the peers the operator named with bandwidth (Grace/Ada) alongside
#16322; pairs naturally with#16322under one owner as two sequenced PRs.Origin Session ID: 55e55313-48fa-4295-83fd-37121a2bf4b6 Retrieval Hint: "examples dashboard hybrid leaf parent base demotion dock demo destination"