Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when executing a pre-registered analysis plan with mostly independent steps in the current session
.claude/skills/k-dense-ai-subagent-driven-analysis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 68% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 57% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 83% | 0% |
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.
dotdigraph 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"]; }
dotdigraph 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.
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:
If a reviewer finds issues: the same analyst subagent fixes them, then the reviewer reviews again. Repeat until approved.
Required workflow skills:
Subagents should use:
Alternative:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 12,494 | 6,485 | -48% | 1 | 1 | 0% | 1,917 | 3,015 | +57% | 0 | 0 | — |
case-07 | pass→pass | 10,426 | 4,980 | -52% | 1 | 1 | 0% | 1,520 | 2,782 | +83% | 0 | 0 | — |
case-01 | fail→fail | 9,243 | 11,404 | +23% | 1 | 1 | 0% | 1,543 | 2,226 | +44% | 0 | 0 | — |
case-02 | fail→fail | 3,000 | 3,354 | +12% | 1 | 1 | 0% | 200 | 2,209 | +1005% | 0 | 0 | — |
case-03 | fail→fail | 4,464 | 5,389 | +21% | 1 | 1 | 0% | 764 | 2,339 | +206% | 0 | 0 | — |
case-04 | fail→pass | 10,404 | 4,264 | -59% | 1 | 1 | 0% | 1,609 | 2,701 | +68% | 0 | 0 | — |
case-05 | pass→pass | 9,664 | 5,091 | -47% | 1 | 1 | 0% | 1,450 | 2,782 | +92% | 0 | 0 | — |
case-08 | pass→pass | 6,581 | 2,660 | -60% | 1 | 1 | 0% | 1,067 | 2,330 | +118% | 0 | 0 | — |
case-09 | pass→pass | 11,071 | 2,609 | -76% | 1 | 1 | 0% | 1,701 | 2,332 | +37% | 0 | 0 | — |
case-10 | fail→pass | 13,545 | 5,108 | -62% | 1 | 1 | 0% | 1,931 | 2,721 | +41% | 0 | 0 | — |
case-11 | pass→pass | 8,032 | 4,291 | -47% | 1 | 1 | 0% | 1,197 | 2,617 | +119% | 0 | 0 | — |
case-20 | pass→pass | 21,286 | 27,788 | +31% | 1 | 1 | 0% | 3,881 | 6,746 | +74% | 0 | 0 | — |
case-12 | pass→pass | 12,714 | 5,801 | -54% | 1 | 1 | 0% | 2,004 | 2,851 | +42% | 0 | 0 | — |
case-13 | pass→pass | 8,620 | 6,168 | -28% | 1 | 1 | 0% | 1,257 | 2,835 | +126% | 0 | 0 | — |
case-14 | fail→fail | 11,988 | 3,188 | -73% | 1 | 1 | 0% | 1,795 | 2,402 | +34% | 0 | 0 | — |
case-15 | pass→pass | 9,328 | 3,098 | -67% | 1 | 1 | 0% | 1,324 | 2,414 | +82% | 0 | 0 | — |
case-16 | pass→pass | 9,068 | 3,007 | -67% | 1 | 1 | 0% | 1,399 | 2,379 | +70% | 0 | 0 | — |
case-17 | pass→pass | 6,225 | 3,603 | -42% | 1 | 1 | 0% | 869 | 2,424 | +179% | 0 | 0 | — |
case-18 | pass→pass | 8,452 | 2,462 | -71% | 1 | 1 | 0% | 1,122 | 2,359 | +110% | 0 | 0 | — |
case-19 | fail→pass | 11,238 | 3,251 | -71% | 1 | 1 | 0% | 1,674 | 2,560 | +53% | 0 | 0 | — |
case-21 | pass→pass | 16,029 | 15,280 | -5% | 1 | 1 | 0% | 2,683 | 4,425 | +65% | 0 | 0 | — |
case-22 | pass→pass | 10,960 | 9,212 | -16% | 1 | 1 | 0% | 1,884 | 3,551 | +88% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.