--- phase: 05 name: evidence-ui-and-demo-dry-run milestone: v1.0 milestone_type: feature status: planned requirements: [REQ-13, REQ-14, REQ-15] must_haves: - "evidence-ui/index.html exists: single HTML file with inline CSS + JS, no external resources, no frameworks (D-032, REQ-14)" - "index.html fetches ./audit.json (relative URL) and renders events as a vertical timeline with stage color-coding (dev/qa/prod/finalize/genesis) + 12-char hash preview" - "scripts/run_demo.sh exists: simulates all 4 acts (Friction, Dev Self-Service, Citizen Developer, Safety Net) by calling the Phase 03 core scripts + evidence_writer.py + finalize_evidence.py; writes a final audit.json; uploads audit.json + evidence-ui/index.html to acdl-evidence main via the Gitea file-contents API (D-031/D-033)" - "scripts/run_demo.sh is idempotent: re-running overwrites both files on acdl-evidence and produces the same audit.json (deterministic hash chain)" - "Act 4 produces a 'dev rejected: POLICY_VIOLATION:PUBLIC_INGRESS' evidence event with score 0.40 (the Safety Net)" - "scripts/verify_phase05.sh passes: validates index.html structure (single file, inline, fetch call), runs run_demo.sh, fetches the raw audit.json + index.html URLs from acdl-evidence and confirms HTTP 200" verification: typecheck: "bash -n scripts/*.sh && python3 -m py_compile scripts/*.py" test: "scripts/verify_phase05.sh" build: no-op --- # Phase 05 — evidence-ui-and-demo-dry-run PLAN ## Goal Build the vanilla-JS timeline UI and run the 4 demo acts as a local dry run that produces a real `audit.json` and publishes it (plus the UI) to `acdl-evidence` main. This is the milestone's capstone phase. ## Requirements covered - REQ-13: `acdl-evidence` is Pages-enabled and serves `audit.json` plus `index.html` (substituted by D-012: raw-URL 200 on both files) - REQ-14: `index.html` uses vanilla JS to fetch `audit.json` and render events as a timeline - REQ-15: All four demo acts reproduce deterministically in a dry run ## Waves (vertical slices, domain priority order) ### Wave 1 — frontend-engineer (the UI) **Tasks:** - **T-5.1** Create `evidence-ui/index.html` — single HTML file with inline `