#!/usr/bin/env bash # Per-policy joined_analysis driver for a completed B3 sweep. # # For each policy directory under : # - slice engine_state by run_window.json # - run joined_analysis.py to emit interference / hotspot / reuse # / failure breakdown # Then emit b3_policy_comparison.json aggregating one row per policy. set -euo pipefail ROOT="${ROOT:-$(cd "$(dirname "$0")/.." && pwd)}" VENV="$ROOT/.venv/bin" SWEEP_DIR="${1:?usage: $0 }" BASE_PORT="${BASE_PORT:-8000}" N_INSTANCES="${N_INSTANCES:-8}" # Build WORKER_MAP dynamically from BASE_PORT and N_INSTANCES. _worker_map_parts=() for ((i=0; i