#!/usr/bin/env bash # Daily follow-up bundle: G1-04 window, boundary observability, reasoning trace, EXT verify/sim. # G1-04 exit 2 before window end is expected; exit 3 = B9-only evidence (skip apply). set -uo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT" export PYTHONPATH="$ROOT" if [[ -f "$ROOT/.env" ]]; then set -a # shellcheck disable=SC1091 source "$ROOT/scripts/lib/butler-source-env.sh" 2>/dev/null || true butler_source_env "$ROOT/.env" 2>/dev/null || true set +a fi fail=0 warn=0 _run() { local title="$1" shift echo "" echo "== $title ==" if "$@"; then echo " -> OK" return 0 fi local ec=$? echo " -> FAIL (exit $ec)" fail=$((fail + 1)) return "$ec" } _run_warn_ok() { local title="$1" shift echo "" echo "== $title ==" if "$@"; then echo " -> OK" return 0 fi local ec=$? echo " -> warn/expected (exit $ec)" warn=$((warn + 1)) return 0 } echo "Butler ops follow-up check ($(date -Iseconds))" _run_warn_ok "G1-04 weekly check-in" bash "$ROOT/scripts/butler-g1-04-weekly-checkin.sh" _run_warn_ok "G1-04 closure / window" bash "$ROOT/scripts/butler-g1-04-closure-check.sh" _run_warn_ok "G1-04 closure apply (if ready)" bash "$ROOT/scripts/butler-g1-04-closure-run-if-ready.sh" _run_warn_ok "G1/G2 boundary observability" bash "$ROOT/scripts/butler-gap-observability.sh" _run "P1 live probe" bash "$ROOT/scripts/butler-p1-live-probe.sh" _run "Reasoning trace smoke" bash "$ROOT/scripts/butler-reasoning-trace-smoke.sh" _run "DoT-lite smoke" bash "$ROOT/scripts/butler-dot-lite-smoke.sh" _run "Demo pilot smoke" bash "$ROOT/scripts/butler-demo-pilot-smoke.sh" _run_warn_ok "Production delegate delta" bash "$ROOT/scripts/butler-prod-delta-observe.sh" _run "EXT-2 Todoist preflight" bash "$ROOT/scripts/butler-extension-ext2-preflight.sh" _run_warn_ok "EXT-4 GitHub gate" bash "$ROOT/scripts/butler-extension-ext4-gate.sh" _run_warn_ok "EXT-4 GitHub preflight" bash "$ROOT/scripts/butler-extension-ext4-preflight.sh" _run_warn_ok "EXT-5 MarkItDown gate" bash "$ROOT/scripts/butler-extension-ext5-gate.sh" _run "Secrets contract (G1-13)" bash "$ROOT/scripts/butler-secrets-contract-check.sh" _run_warn_ok "Extension Verify (golden)" bash "$ROOT/scripts/butler-extension-verify.sh" _run_warn_ok "Extension WeChat sim (handler)" bash "$ROOT/scripts/butler-extension-wechat-sim.sh" _run_warn_ok "WeChat core sim (handler)" bash "$ROOT/scripts/butler-wechat-core-sim.sh" _run_warn_ok "WeChat owner sim (manifest)" bash "$ROOT/scripts/butler-wechat-owner-sim.sh" --quick _run_warn_ok "WeChat dev delegate sim" bash "$ROOT/scripts/butler-wechat-dev-delegate-sim.sh" --quick _run_warn_ok "Dev delegate experience probe" bash "$ROOT/scripts/butler-dev-delegate-experience-probe.sh" _run_warn_ok "Dev live flywheel checklist" bash "$ROOT/scripts/butler-dev-live-flywheel-checklist.sh" _run_warn_ok "Dev prod evidence · G1-04" bash "$ROOT/scripts/butler-dev-prod-evidence-checklist.sh" _run_warn_ok "WeChat lead readonly sim" bash "$ROOT/scripts/butler-wechat-lead-readonly-sim.sh" --quick _run_warn_ok "Memory monthly probe (M1–M7)" bash "$ROOT/scripts/butler-memory-monthly-probe.sh" _run_warn_ok "Prod playbook seed (dry-run)" bash "$ROOT/scripts/butler-prod-playbook-seed.sh" _run "Network search route policy" bash "$ROOT/scripts/butler-web-search-route-sim.sh" _run_warn_ok "Network search route handler" bash "$ROOT/scripts/butler-web-search-route-sim.sh" --handler echo "" echo "summary: fail=$fail warn=$warn" if [[ "$fail" -gt 0 ]]; then exit 1 fi exit 0