From 24cd81b6aac0b0f15e771fab07c9782554d710aa Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Tue, 21 Jul 2026 13:53:01 +0000 Subject: [PATCH] verify(P05): passed (4 layers, 0 P0, 0 P1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ---ci--- phase: 5 milestone: v1.0 status: verify requirements: covered: [REQ-13, REQ-14, REQ-15] partial: [] lessons: - Phase 05 dry-run = local bash simulation (scripts/run_demo.sh) because no act_runner is registered. The simulation produces the same audit.json shape a real pipeline run would, so the UI renders identically. A real end-to-end run requires registering an act_runner (out-of-band Gitea UI). - mock_executor.sh resolves modules/l2// relative to its cwd. The dry-run script must cd to the repo root (or pass an absolute modules path) before invoking it. Documented in ARCHITECTURE.md and verified by the 'no stray state.json in repo root' check. - finalize_evidence.py --path flag lets the same helper upload both audit.json (default --path=audit.json) and index.html (--path index.html) to acdl-evidence. The --audit flag is the LOCAL file path; --path is the REMOTE path. Confusing naming, kept for backward compatibility with Phase 04. - innerHTML on escaped event data is XSS-safe because esc() escapes & < > " — sufficient for body + attribute context. A static-analysis 'innerHTML' warning is a false positive when the input is escaped. review: p0: 0 p1: 0 ---/ci--- Layer 1 STRUCTURAL: PASS (3/3 files; bash -n + py_compile + yaml load clean; no TODO/FIXME). Layer 2 BEHAVIORAL: PASS (verify_phase05.sh 13/13 checks; 4 acts reproduce deterministically; 11 events; Act 4 rejection visible). Layer 3 SECURITY: PASS (no secrets; UI uses esc() before innerHTML; hash chain is tamper-evident; no external resources). Layer 4 QUALITY: PASS. Requirements covered this phase: REQ-13 (raw URL 200 on audit.json + index.html), REQ-14 (vanilla-JS timeline UI), REQ-15 (4 acts reproduce deterministically). No partials. The demo is live at: https://git.cloudinit.dev/continuous-intelligence/acdl-evidence/raw/branch/main/index.html