Ablation Planner
Systematically design ablation studies that answer the questions reviewers will ask. Claude leads the design (reviewer perspective) in one pass, then separately reviews its own plan for feasibility in a second pass before implementing — no second model is available, so keeping the two mindsets distinct is what preserves the adversarial angle (see auto-review-loop's Self-Review Backend for the general rationale).
Context: $ARGUMENTS
When to Use
- Main results pass
/result-to-claimwith claim_supported = yes or partial - User explicitly requests ablation planning
/auto-review-loopreviewer identifies missing ablations
Workflow
Step 1: Prepare Context
CC reads available project files to build the full picture:
- Method description and components (from
idea-stage/docs/research_contract.md, legacydocs/research_contract.md, or project CLAUDE.md) - Current experiment results (from EXPERIMENT_LOG.md, EXPERIMENT_TRACKER.md, or W&B)
- Confirmed and intended claims (from result-to-claim output or project notes)
- Available compute resources (from CLAUDE.md server config, if present)
Step 2: Design Ablations (Reviewer Perspective)
Adopt the mindset of a rigorous ML reviewer planning ablation studies for someone else's paper — deliberately distinct from the engineer mindset used in Step 4. Given the method and results gathered in Step 1, design ablations that:
- Isolate the contribution of each novel component
- Answer questions reviewers will definitely ask
- Test sensitivity to key hyperparameters
- Compare against natural alternative design choices
Method: [description from project files] Components: [list of removable/replaceable components] Current results: [key metrics from experiments] Claims: [what we claim and current evidence]
For each ablation, specify:
- name: what to change (e.g., "remove module X", "replace Y with Z")
- what_it_tests: the specific question this answers
- expected_if_component_matters: what we predict if the component is important
- priority: 1 (must-run) to 5 (nice-to-have)
Also provide:
- coverage_assessment: what reviewer questions these ablations answer
- unnecessary_ablations: experiments that seem useful but won't add insight
- suggested_order: run order optimized for maximum early information
- estimated_compute: total GPU-hours estimate
Step 3: Write Up the Ablation Plan
Normalize the Step 2 design into structured format:
## Ablation Plan
### Component Ablations (highest priority)
| # | Name | What It Tests | Expected If Matters | Priority |
|---|------|---------------|---------------------|----------|
| 1 | remove module X | contribution of X | performance drops on metric Y | 1 |
| 2 | replace X with simpler Z | value of learned vs fixed | drops, especially on dataset A | 2 |
### Hyperparameter Sensitivity
| # | Parameter | Values to Test | What It Tests | Priority |
|---|-----------|---------------|---------------|----------|
| 3 | lambda | [0.01, 0.1, 1.0] | sensitivity to regularization | 3 |
### Design Choice Comparisons
| # | Name | What It Tests | Priority |
|---|------|---------------|----------|
| 4 | joint vs separate matching | whether joint adds value | 4 |
### Coverage Assessment
[What reviewer questions these ablations answer]
### Unnecessary Ablations
[Experiments that seem useful but won't add insight — skip these]
### Run Order
[Optimized for maximum early information]
### Estimated Compute
[Total GPU-hours]
Step 4: CC Reviews Feasibility
Before running anything, CC checks:
- Compute budget: can we afford all ablations with available GPUs?
- Code changes: which ablations need code modifications vs config-only changes?
- Dependencies: which ablations can run in parallel?
- Cuts: if budget is tight, propose removing lower-priority ablations and ask Codex to confirm
Step 5: Implement and Run
- Create configs/scripts for each ablation (config-only changes first)
- Smoke test each ablation before full run
- Run in suggested order, using descriptive names (e.g.,
ablation-no-module-X) - Track results in EXPERIMENT_LOG.md
- After all ablations complete → update findings.md with insights
Rules
- The design pass (Step 2) runs in reviewer mindset before the feasibility pass (Step 4) runs in engineer mindset. Do not let compute/implementation constraints creep into Step 2's ablation list — that filtering belongs to Step 4. Keeping the two passes distinct, even though the same model performs both, is what preserves the reviewer angle without a second model; see auto-review-loop's Self-Review Backend for the honest tradeoff (no independence guarantee, can't catch blind spots a different model would).
- Every ablation must have a clear
what_it_testsandexpected_if_component_matters. No "just try it" experiments. - Config-only ablations take priority over those needing code changes (faster, less error-prone).
- If total compute exceeds budget, CC proposes cuts and re-prioritizes itself, explicitly revisiting Step 2's reviewer-perspective ranking — don't silently drop ablations.
- Component ablations (remove/replace) take priority over hyperparameter sweeps.
- Do not generate ablations for components identical to the baseline (no-op ablations).
- Record all ablation results in EXPERIMENT_LOG.md, including negative results (component removal had no effect = important finding).