#!/usr/bin/env bash # scripts/verify_phase11.sh - verify Phase 11 (v1.2 research + README rewrite). set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT" fail() { echo "FAIL: $*" >&2; exit 1; } echo "=== Phase 11 verification ===" # 1. README.md reflects v1.2 (not stale v1.1-active framing) grep -q "v1.2 (active)" README.md || fail "README.md: no 'v1.2 (active)' status" ! grep -q "v1.1 (active)" README.md || fail "README.md: stale 'v1.1 (active)' framing" grep -q "v1.1 (complete, tag" README.md || fail "README.md: v1.1 not marked complete" grep -q "v1.3.0" README.md || fail "README.md: no v1.3.0 ship tag reference" grep -q "D-047" README.md || fail "README.md: no D-047 reference" grep -q "How the platform works" README.md || fail "README.md: no 'How the platform works' section" grep -q "terraform plan" README.md || fail "README.md: no terraform plan in the flow" grep -q "confidence signal" README.md || fail "README.md: no confidence signal in the flow" grep -q "DynamoDB outbox" README.md || fail "README.md: no DynamoDB outbox in the flow" grep -q "run_spike_e2e.sh" README.md || fail "README.md: no run_spike_e2e.sh in how-to-run" echo "README.md: OK (v1.2 framing, platform flow, how-to-run, credentials)" # 2. RESEARCH.md has a v1.2 addendum with the 3 decisions grep -q "## v1.2 Research Addendum" .ciagent/RESEARCH.md || fail "RESEARCH.md: no v1.2 addendum" grep -q "TARGET 9" .ciagent/RESEARCH.md || fail "RESEARCH.md: no TARGET 9 (#36988 re-check)" grep -q "TARGET 10" .ciagent/RESEARCH.md || fail "RESEARCH.md: no TARGET 10 (NFR audit)" grep -q "TARGET 13" .ciagent/RESEARCH.md || fail "RESEARCH.md: no TARGET 13 (ECS L1 scoping)" grep -q "D-047" .ciagent/RESEARCH.md || fail "RESEARCH.md: no D-047" grep -q "D-048" .ciagent/RESEARCH.md || fail "RESEARCH.md: no D-048" grep -q "D-049" .ciagent/RESEARCH.md || fail "RESEARCH.md: no D-049" grep -qi "still open" .ciagent/RESEARCH.md || fail "RESEARCH.md: #36988 status not recorded" echo "RESEARCH.md: OK (v1.2 addendum, Targets 9-13, D-047/D-048/D-049)" # 3. .ciagent/ files reflect v1.2 specify -> research progression grep -q '"milestone": "v1.2"' .ciagent/config.json || fail "config.json: milestone not v1.2" grep -q "Objective for Milestone v1.2" .ciagent/PROJECT.md || fail "PROJECT.md: no v1.2 objective" grep -q "REQ-29" .ciagent/REQUIREMENTS.md || fail "REQUIREMENTS.md: no REQ-29" grep -q "Phase 11" .ciagent/ROADMAP.md || fail "ROADMAP.md: no Phase 11" grep -q "v1.2 build-out scope" .ciagent/ARCHITECTURE.md || fail "ARCHITECTURE.md: no v1.2 scope" echo ".ciagent/ files: OK (v1.2 milestone consistent across all 5 files)" # 4. #36988 re-check facts are accurate (cross-check the PR state we recorded) grep -q "2026-05-27" .ciagent/RESEARCH.md || fail "RESEARCH.md: #36988 last-updated date missing" grep -q "D-039" .ciagent/RESEARCH.md || fail "RESEARCH.md: D-039 waiver not referenced" echo "#36988 re-check: OK (date + D-039 extension recorded)" echo "" echo "=== Phase 11: VERIFIED ===" echo "README.md rewritten; RESEARCH.md v1.2 addendum complete; D-047/D-048/D-049 surfaced." exit 0