| name | subagent-driven-analysis |
|---|---|
| description | Use when executing a pre-registered analysis plan with mostly independent steps in the current session |
Execute a pre-registered analysis plan by dispatching a fresh subagent per analysis step, with two-stage review after each: protocol-compliance review first (did it run exactly what was pre-registered, nothing more), then statistical-rigor review (assumptions, leakage, correctness, reproducibility).
Why subagents: You delegate steps to specialized agents with isolated context. By precisely crafting their instructions, you keep them focused and prevent them from improvising analyses you didn't pre-register. They never inherit your session's history — you construct exactly what they need. This also preserves your own context for coordination.
Core principle: Fresh subagent per step + two-stage review (protocol then rigor) = trustworthy, reproducible results.
Continuous execution: Do not pause to check in between steps. Execute the whole plan. The only reasons to stop: a BLOCKED status you cannot resolve, an anomaly that needs science-superpowers:investigating-anomalous-results, a genuine ambiguity, or all steps complete.
The analysis plan MUST be pre-registered and frozen (science-superpowers:preregistering-analysis) before any step runs. If it is not frozen, stop and pre-register first. Executing before freezing turns the whole thing exploratory.
digraph when_to_use {
"Pre-registered plan?" [shape=diamond];
"Steps mostly independent?" [shape=diamond];
"Stay in this session?" [shape=diamond];
"subagent-driven-analysis" [shape=box];
"executing-analysis" [shape=box];
"Pre-register first" [shape=box];
"Pre-registered plan?" -> "Steps mostly independent?" [label="yes"];
"Pre-registered plan?" -> "Pre-register first" [label="no"];
"Steps mostly independent?" -> "Stay in this session?" [label="yes"];
"Stay in this session?" -> "subagent-driven-analysis" [label="yes"];
"Stay in this session?" -> "executing-analysis" [label="no - parallel session"];
}digraph process {
rankdir=TB;
"Set up reproducible workspace" [shape=box];
"Read plan + frozen prereg, extract all steps, create TodoWrite" [shape=box];
"Dispatch analyst subagent (./analyst-prompt.md)" [shape=box];
"Analyst asks questions?" [shape=diamond];
"Answer, provide context" [shape=box];
"Analyst runs step, validates, commits, self-reviews" [shape=box];
"Dispatch protocol-compliance reviewer (./protocol-compliance-reviewer-prompt.md)" [shape=box];
"Ran exactly the pre-registered analysis?" [shape=diamond];
"Analyst fixes deviations" [shape=box];
"Dispatch rigor reviewer (./rigor-reviewer-prompt.md)" [shape=box];
"Rigor reviewer approves?" [shape=diamond];
"Analyst fixes rigor issues" [shape=box];
"Mark step complete" [shape=box];
"More steps?" [shape=diamond];
"Use requesting-red-team-review on whole result" [shape=box style=filled fillcolor=lightgreen];
"Use reporting-and-archiving-findings" [shape=box style=filled fillcolor=lightgreen];
"Set up reproducible workspace" -> "Read plan + frozen prereg, extract all steps, create TodoWrite";
"Read plan + frozen prereg, extract all steps, create TodoWrite" -> "Dispatch analyst subagent (./analyst-prompt.md)";
"Dispatch analyst subagent (./analyst-prompt.md)" -> "Analyst asks questions?";
"Analyst asks questions?" -> "Answer, provide context" [label="yes"];
"Answer, provide context" -> "Dispatch analyst subagent (./analyst-prompt.md)";
"Analyst asks questions?" -> "Analyst runs step, validates, commits, self-reviews" [label="no"];
"Analyst runs step, validates, commits, self-reviews" -> "Dispatch protocol-compliance reviewer (./protocol-compliance-reviewer-prompt.md)";
"Dispatch protocol-compliance reviewer (./protocol-compliance-reviewer-prompt.md)" -> "Ran exactly the pre-registered analysis?";
"Ran exactly the pre-registered analysis?" -> "Analyst fixes deviations" [label="no"];
"Analyst fixes deviations" -> "Dispatch protocol-compliance reviewer (./protocol-compliance-reviewer-prompt.md)" [label="re-review"];
"Ran exactly the pre-registered analysis?" -> "Dispatch rigor reviewer (./rigor-reviewer-prompt.md)" [label="yes"];
"Dispatch rigor reviewer (./rigor-reviewer-prompt.md)" -> "Rigor reviewer approves?";
"Rigor reviewer approves?" -> "Analyst fixes rigor issues" [label="no"];
"Analyst fixes rigor issues" -> "Dispatch rigor reviewer (./rigor-reviewer-prompt.md)" [label="re-review"];
"Rigor reviewer approves?" -> "Mark step complete" [label="yes"];
"Mark step complete" -> "More steps?";
"More steps?" -> "Dispatch analyst subagent (./analyst-prompt.md)" [label="yes"];
"More steps?" -> "Use requesting-red-team-review on whole result" [label="no"];
"Use requesting-red-team-review on whole result" -> "Use reporting-and-archiving-findings";
}Use the least powerful model that can handle each role.
- Mechanical steps (load data, apply a fixed transform, produce a planned figure): fast, cheap model.
- Integration/judgment steps (fitting the primary model, handling missingness per plan): standard model.
- Rigor review and anomaly judgment: most capable model.
DONE: Proceed to protocol-compliance review.
DONE_WITH_CONCERNS: Read the concerns. If about correctness or an unexpected data issue, address before review (may need science-superpowers:investigating-anomalous-results). If an observation ("this file is getting large"), note and proceed.
NEEDS_CONTEXT: Provide the missing information and re-dispatch.
BLOCKED: Assess. Context problem → provide more and re-dispatch. Needs more reasoning → more capable model. Step too large → split. Plan itself is wrong → escalate to your human partner. A wrong plan may require re-opening the pre-registration, which must be documented as a deviation.
Never silently let a subagent change the registered analysis to make a step "work." A deviation is documented and renders that analysis exploratory.
./analyst-prompt.md— dispatch the analyst subagent./protocol-compliance-reviewer-prompt.md— did it match the pre-registration?./rigor-reviewer-prompt.md— is the statistics correct, reproducible, leak-free?
Never:
- Execute before the pre-registration is frozen
- Skip either review (protocol OR rigor)
- Let a subagent add an unregistered analysis and report it as confirmatory
- Run rigor review before protocol compliance is green (wrong order)
- Accept a silently dropped outlier or changed cutoff (route to anomaly investigation instead)
- Dispatch multiple analyst subagents on the same artifacts in parallel (conflicts)
- Make the subagent read the whole plan (provide the step's full text + the relevant pre-registration excerpt)
If a reviewer finds issues: the same analyst subagent fixes them, then the reviewer reviews again. Repeat until approved.
Required workflow skills:
- science-superpowers:setting-up-reproducible-analysis — isolated, seeded, reproducible workspace (run first)
- science-superpowers:preregistering-analysis — must be frozen before execution
- science-superpowers:investigating-anomalous-results — when a step's output is surprising or impossible
- science-superpowers:requesting-red-team-review — adversarial review of the whole result
- science-superpowers:reporting-and-archiving-findings — after all steps complete
Subagents should use:
- science-superpowers:verifying-results-before-claiming — before any subagent reports a step as done
Alternative:
- science-superpowers:executing-analysis — inline execution for harnesses without subagents