Files
mirror/.agents/phases/todo
ducoterra 1f60a6b40c chore(agent): phase roadmap from TODO.md, 3 phases
The one TODO item — a /kiosk endpoint whose state (fullscreen, which
mirror) any client can manipulate — becomes three phases, since it is
three workstreams:

- 07_kiosk_layout_state: the state on the server. `arrange` in, `layout`
  out (staged/fullscreen/followers), Registry policy with a stale-staged
  fallback on teardown, `GET /api/kiosk` for curl-level debugging.
- 08_kiosk_page: the wall made reusable (`static/wall.js`, behaviour-
  preserving) and the chrome-free /kiosk page that arranges itself from
  the state and publishes a local keypress back.
- 09_wall_remote_page: /remote, the controller you open on a phone —
  shows no media and subscribes to nothing, proven by /api/streams'
  watcher count — plus the security line and the kiosk box's new URL.

Locked anchors hold: no third role, state stays in memory (A7), Registry
stays pure (A8), no external assets (A10), no remote audio command
(SECURITY.md §4). PLAN.md untouched, per the user's decision, so its §7
roadmap table does not list 07-09.

LLM-Generated: true
2026-11-03 09:15:12 -05:00
..

Pending phases

Intentionally empty at the prototype stage. The prototype was built and verified first; the candidate phase list is §7 of .agents/PLAN.md.

Add phases here with the phase-authoring skill — one directory per phase:

NN_phase_name/
├── 00_phase.md      # intent, scope, out-of-scope, acceptance, verification
└── NN_task.md       # independently runnable tasks

Every phase must leave the four gates in AGENTS.md §4 green on its own.