| # OCC Collapse Mechanism — Runbook |
| ## Session: 2026-05-11 |
|
|
| ### JOBS RUNNING (5 total, all session e95fd6cc) |
|
|
| | Job ID | Hardware | Script | Timeout | Status | |
| |--------|----------|--------|---------|--------| |
| | `6a0236d6317220dbbd1a7c07` | H200 | occ_debate_collapse_mechanism_v3.py | 24h | RUNNING | |
| | `6a0236d6aff1cd33e8f33ee6` | a10g-large | occ_cheap_baselines.py | 6h | RUNNING | |
| | `6a0236d6317220dbbd1a7c09` | a10g-large | occ_strong_baselines.py | 6h | RUNNING | |
| | `6a022292aff1cd33e8f33ded` | a10g-large | occ_strong_baselines.py (older) | 6h | RUNNING | |
| | `6a022033317220dbbd1a7b8c` | a10g-large | occ_cheap_baselines.py (older) | 6h | RUNNING | |
|
|
| ### DO NOT SUBMIT NEW JOBS until these complete. Session ID e95fd6cc is shared — new job submission WILL cancel all running jobs. |
|
|
| ### Data locations (on narcolepticchicken/occ-stack Hub) |
|
|
| | File | Produced by | |
| |------|-------------| |
| | `reports/debate_collapse_mechanism_results.json` | Mechanism v3 (pushes incrementally after each condition) | |
| | `reports/cheap_baselines_results.json` | Cheap baselines | |
| | `reports/strong_baselines_results.json` | Strong baselines | |
| | `reports/debate_extended_baselines_2seed.json` | Pre-existing v2 data (88.3% → 56.7% collapse) | |
|
|
| ### When mechanism data arrives, run: |
|
|
| ```bash |
| # 1. Download results |
| python -c " |
| from huggingface_hub import hf_hub_download |
| p = hf_hub_download('narcolepticchicken/occ-stack', 'reports/debate_collapse_mechanism_results.json') |
| import shutil; shutil.copy(p, './debate_collapse_mechanism_results.json') |
| " |
| |
| # 2. Run the analysis harness (v2.1, handles v2+v3 formats) |
| python jobs/analyze_collapse.py debate_collapse_mechanism_results.json |
| |
| # 3. Outputs: reports/analysis/ |
| # - condition_summary.csv |
| # - per_topic_outcomes.csv |
| # - round_flip_matrix.csv |
| # - hypothesis_verdicts.json |
| # - fig_accuracy_by_condition.png |
| # - fig_honest_retention.png |
| # - fig_flip_rate.png |
| # - fig_adversary_skill.png |
| ``` |
|
|
| ### Then fill v13 memo: |
|
|
| ```bash |
| # Fill {VALUE} placeholders in reports/v13_mechanism_memo.md |
| # Data comes from: reports/analysis/condition_summary.csv + hypothesis_verdicts.json |
| ``` |
|
|
| ### Infrastructure |
|
|
| - Analysis harness: `jobs/analyze_collapse.py` (v2.1 - handles per_seed and seeds keys) |
| - v13 memo template: `reports/v13_mechanism_memo.md` |
| - All scripts: `narcolepticchicken/occ-stack` on Hub |
| |
| ### Pre-registered hypotheses |
| |
| Evaluated automatically by analysis harness using rules in HYPOTHESIS_RULES dict: |
|
|
| | Hypothesis | Mechanism | |
| |-----------|-----------| |
| | H1: Volume amplification | equal_token_unequal_turn vs baseline_1round_traced | |
| | H2: Turn-order effect | randomized_order_3round vs equal_3round_traced | |
| | H3: Voting vulnerability | judge_vote + confidence_weighted vs equal_3round_traced | |
| | H4: Contamination | Honest retention rate round 3 | |
| | H5: Confidence distortion | confidence_weighted vs equal_3round_traced | |
| | H6: Skill dependency | weak vs normal vs strong vs oracle adversary | |
| | H7: Topic vulnerability | Per-topic variance in collapse | |
|
|
| ### Expected results (from 2-seed pilot) |
|
|
| - 1-round baseline: 88.3% accuracy |
| - 3-round equal: 56.7% accuracy (32pp collapse) |
| - Random 25% drop: 85.0% with 26.5% token savings |
| - OCC credit: prevents catastrophe but doesn't beat random gating at moderate budgets |
|
|
| ### Key fix: judge_vote_3round |
|
|
| v2 returned 0/30 because extract_position() checked first-line prefixes. |
| v3 uses extract_judge_answer() with regex \b(yes|no)\b + last-occurrence tiebreaker. |
| The judge prompt now asks "Based on the debate, the correct answer is: " and generates 32 tokens at temperature 0.1. |
| |