From 41e5aaef59f6d94af5eab878ca7b5914765418b4 Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Tue, 21 Jul 2026 13:51:26 +0000 Subject: [PATCH] feat(P05): Phase 05 verification + traceability (T-5.3, T-5.4) ---ci--- phase: 5 milestone: v1.0 status: execute persona: lead-developer task: T-5.3 requirements: covered: [REQ-13, REQ-14, REQ-15] ---/ci--- Wave 3, task T-5.3 + T-5.4. scripts/verify_phase05.sh checks: (1) evidence-ui/index.html structure (inline CSS/JS, fetch ./audit.json, no external refs, refresh button, 8134 bytes); (2) run_demo.sh syntax + --no-upload flag; (3) run_demo.sh --no-upload (4 acts, exit 0, audit.json written); (4) audit.json content (11 events + Act 1/2/3/4 + Act 4 POLICY_VIOLATION rejection); (5) hash chain integrity; (6) no stray state.json/contracts in repo root; (7) REAL upload + raw URL fetch (audit.json 200 with 11 events, index.html 200 with ACDL Evidence markers). All 13 checks PASS. The demo is live at: https://git.cloudinit.dev/continuous-intelligence/acdl-evidence/raw/branch/main/index.html Traceability: REQ-13/14/15 -> covered (pending VERIFY). ROADMAP Phase 05 -> executing. --- .ciagent/REQUIREMENTS.md | 6 +- .ciagent/ROADMAP.md | 2 +- scripts/verify_phase05.sh | 213 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+), 4 deletions(-) create mode 100755 scripts/verify_phase05.sh diff --git a/.ciagent/REQUIREMENTS.md b/.ciagent/REQUIREMENTS.md index 988e320..bd666c1 100644 --- a/.ciagent/REQUIREMENTS.md +++ b/.ciagent/REQUIREMENTS.md @@ -69,6 +69,6 @@ | REQ-10 | 4 | complete (v1.0.4) | | REQ-11 | 3 | complete (v1.0.3) | | REQ-12 | 4 | complete (v1.0.4) | -| REQ-13 | 5 | pending | -| REQ-14 | 5 | pending | -| REQ-15 | 5 | pending | \ No newline at end of file +| REQ-13 | 5 | covered (pending VERIFY) | +| REQ-14 | 5 | covered (pending VERIFY) | +| REQ-15 | 5 | covered (pending VERIFY) | \ No newline at end of file diff --git a/.ciagent/ROADMAP.md b/.ciagent/ROADMAP.md index f9afad3..0e5ea5b 100644 --- a/.ciagent/ROADMAP.md +++ b/.ciagent/ROADMAP.md @@ -49,7 +49,7 @@ Five-phase breakdown to take ACDL from empty repo to a reproducible 4-act execut ### Phase 05 — evidence-ui-and-demo-dry-run - **Description:** Build `index.html` (vanilla JS, fetches `audit.json`, renders timeline) and run all four acts end-to-end as a dry run. -- **Status:** not_started +- **Status:** executing - **Depends on:** [4] - **Requirements:** REQ-11, REQ-13, REQ-14, REQ-15 - **Success Criteria:** diff --git a/scripts/verify_phase05.sh b/scripts/verify_phase05.sh new file mode 100755 index 0000000..97d28c7 --- /dev/null +++ b/scripts/verify_phase05.sh @@ -0,0 +1,213 @@ +#!/usr/bin/env bash +# Phase 05 verification script. +# Validates the evidence UI + the 4-act demo dry-run. +# +# Usage: scripts/verify_phase05.sh +# Exit codes: 0 = all checks passed; 1 = one or more checks failed. + +set -uo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT" + +fail_count=0 +pass() { printf ' [PASS] %s\n' "$1"; } +fail() { printf ' [FAIL] %s\n' "$1"; fail_count=$((fail_count + 1)); } + +GITEA_HOST="${GITEA_HOST:-https://git.cloudinit.dev}" +ORG="continuous-intelligence" +EVIDENCE_REPO="acdl-evidence" + +echo "== Phase 05 verification ==" +echo "Root: ${ROOT}" +echo + +# --- Check 1: evidence-ui/index.html structure --- +echo "-- Check 1: evidence-ui/index.html structure (D-032, REQ-14) --" +UI="evidence-ui/index.html" +if [ ! -f "$UI" ]; then + fail "$UI missing" +else + pass "$UI exists" + size=$(wc -c < "$UI") + if [ "$size" -ge 1000 ] && [ "$size" -le 30000 ]; then + pass "$UI size ${size} bytes (within 1-30 KB range)" + else + fail "$UI size ${size} bytes (expected 1-30 KB)" + fi + ui_check=$(python3 << 'PYEOF' +import re, sys +content = open('evidence-ui/index.html').read() +problems = [] +if '' not in content: problems.append('missing inline