You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/planning/M9-polish-e2e/demo-build-spec.md
+11-8Lines changed: 11 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,10 @@
1
1
# Demo Build Spec
2
2
3
3
> [!NOTE]
4
-
> Companion to [demo-plant-design.md](./demo-plant-design.md). **Story doc says WHAT. This doc says HOW.** It is a living checklist — the single source of truth for what is shipped, what is pending, the exact contract of each pending piece, the dry-run observations that define "done", and the time-indexed cuts of the 3-minute video. Use this doc during build, rehearsal, and recording. Written 2026-04-24 (post #105 dry-run).
4
+
> Companion to [demo-plant-design.md](./demo-plant-design.md). **Story doc says WHAT. This doc says HOW.** It is a living checklist — the single source of truth for what is shipped, what is pending, the exact contract of each pending piece, the dry-run observations that define "done", and the time-indexed cuts of the 3-minute video. Use this doc during build, rehearsal, and recording.
5
+
6
+
> [!IMPORTANT]
7
+
> **Schema, migrations, and seed data are user-owned and out of scope for this spec.** The user maintains their own SQL migrations and seed files. The DB can be nuked and reseeded at will — no demo state is precious. This doc covers only the **demo-logic layer**: the endpoints that trigger scenes, the frontend control strip that fires them, and the dry-run / video plan that uses them. When the spec refers to "the plant" it describes what the user's seed is expected to produce (a named cell with a vibration signal, etc.), not something I will generate.
5
8
6
9
---
7
10
@@ -10,11 +13,10 @@
10
13
0.[How to read / use this doc](#0-how-to-read--use-this-doc)
11
14
1.[Capability × trigger × observable × status matrix](#1-capability--trigger--observable--status-matrix)
12
15
2.[Pending work — contracts](#2-pending-work--contracts)
| 1 | Plant reads as a real plant | Land on `/control-room` after stack up | Grid of 5 tiles with human-readable machine names (Source Pump, UV Sterilizer, Bottle Filler, Bottle Capper, Bottle Labeler) + populated KPI bar |`pending` — stack currently shows "P-02" single tile; naming migration (§2.1) + seed (§2.2) required |
48
+
| 1 | Plant reads as a real plant | Land on `/control-room` after stack up | Grid of 5 tiles with human-readable machine names (Source Pump, UV Sterilizer, Bottle Filler, Bottle Capper, Bottle Labeler) + populated KPI bar |`user-owned` — the user's seed + migrations provide the cells, KB rows, signal definitions, and 7-day history. This spec treats it as a precondition (see §2.1).|
46
49
| 2 | Agent Constellation wow-open | Hotkey `A` on any page | Full-screen overlay: 5 agents, live handoff particles, tool-call rail |`shipped+verified` — from the M9 plan, previously live |
47
50
| 3 | New machine onboarding | Click Bottle Labeler tile → upload Grundfos NB-G PDF | Wizard: `KbProgress` 5 phases → `MultiTurnDialog` 3-4 questions → `EquipmentKbCard` reveal |`shipped+untested` on the new cell name; untested since the rename lands. Wizard itself was dry-run on P-02 previously. |
48
51
| 4 | Predictive forecast (cool banner) |`POST /api/v1/demo/scene/seed-forecast` with `{target:"Bottle Filler"}`|`AnomalyBanner` appears in accent-arc tone within ≤ 60 s: *"forecast to breach alert (4.1 → 4.5) in ~2.3h · 92% confidence"*|`shipped+untested` (forecast-watch loop) / `pending` (demo endpoint that guarantees the firing) |
0 commit comments