Severity Testing Experimental Design Lens
Philosophical Mode: Falsificationist
Primary Question: "Would this design have caught the error?"
Focus: Adversarial Cases, Negative Controls, Falsification Tests, Easy-Pass Detection, Confirmatory Theater
When to Use
- Evaluating whether positive results are meaningful or trivially achievable
- Checking for adversarial robustness of experimental conclusions
- User invokes
/exp-lens-severity-testing or /make-experiment-diag severity
Critical Constraints
NEVER:
- Modify any source code files
- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves
- Accept a "pass" result without asking what a false result would have looked like under this design
ALWAYS:
- For every positive claim, identify what error the test was capable of detecting
- Inventory negative controls and sanity checks explicitly — their absence is a finding
- Rate severity before reporting conclusions, not after
- Flag confirmatory theater: experiments designed to confirm rather than risk refutation
- BEFORE creating any diagram, LOAD the
/mermaid skill using the Skill tool - this is MANDATORY
Analysis Workflow
Step 1: Launch Parallel Exploration Subagents
Spawn Explore subagents to investigate:
Positive Results Claimed
- Find all positive claims and statistically significant results
- Identify the conclusions drawn from each positive finding
- Look for: significant, improves, outperforms, better, wins, advantage, novel
Negative Controls & Sanity Checks
- Find tests designed to fail or baseline sanity checks
- Identify whether any test was included specifically to validate the measurement apparatus
- Look for: negative_control, sanity, baseline, random, null, ablation, placebo
Adversarial Conditions
- Find testing under hostile, edge-case, or boundary conditions
- Identify whether the experiment was exposed to conditions that would stress its assumptions
- Look for: adversarial, worst_case, edge, corner, stress, boundary, failure
Alternative Explanations Tested
- Find whether the experiment actively tries to rule out alternative explanations
- Identify confound checks, artifact controls, and leakage tests
- Look for: alternative, confound, artifact, spurious, leakage, bias, explain
Prediction Specificity
- Find how specific the predictions are that the data is claimed to support
- Identify whether predictions were directional, magnitude-specific, or vague
- Look for: predict, expect, hypothesis, specific, precise, direction, magnitude
Step 2: Assess Severity for Each Claim
For each positive claim, answer:
- What specific errors was this test capable of detecting?
- How easily could the claim pass if it were actually wrong?
- Were negative controls included to validate the measurement apparatus?
- Were adversarial conditions tested?
- Is the "pass" informative or trivially achievable by any plausible intervention?
Step 3: Rate Severity and Identify Gaps
CRITICAL — Analyze Test Severity:
For every "pass" the experiment reports:
- What would a false result have looked like under this design?
- Was the test sensitive enough to distinguish genuine from artifactual success?
- Was there any test that could have falsified the claim but was not included?
Severity ratings:
- HIGH: The test would almost certainly have detected the error if the claim were false
- MEDIUM: Reasonable chance the test would have detected the error
- LOW: The test could easily have passed even if the claim were false — result is not informative
Flag as confirmatory theater when: the design was structured to confirm an expected result, the positive finding was predictable regardless of true effect, and no test was included that risked refuting the hypothesis.
Step 4: Create Optional Severity-Flow Diagram
This lens is primarily argumentative. An optional severity-flow diagram may be added to show how claims flow through severity assessment to verdicts.
Direction: TB (claims flow through severity assessment to verdicts)
Node Styling:
cli class: Claims and positive results
detector class: High-severity tests (would have caught the error)
handler class: Medium-severity tests (reasonable chance)
gap class: Low-severity or untested claims
output class: Severity verdicts
Step 5: Write Output
Write the analysis to: temp/exp-lens-severity-testing/exp_diag_severity_testing_{YYYY-MM-DD_HHMMSS}.md
Output Template
# Severity Testing Analysis: {System / Experiment Name}
**Lens:** Severity Testing (Falsificationist)
**Question:** Would this design have caught the error?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Severity Assessment
| Claim | Test Applied | Severity Rating | What Would Failure Look Like? |
|-------|-------------|----------------|------------------------------|
| {claim} | {test used} | {HIGH / MEDIUM / LOW} | {what a false positive would have looked like} |
## Negative Control Inventory
| Control | Purpose | Present? | Notes |
|---------|---------|----------|-------|
| {control name} | {what it validates} | {yes / no / partial} | {finding if absent} |
## Adversarial Gap Analysis
| Condition | Tested? | Risk if Untested |
|-----------|---------|-----------------|
| {adversarial condition} | {yes / no} | {what failure mode is left undetected} |
## Easy-Pass Detector
Claims that could be true for trivial reasons — passing the test does not distinguish genuine from artifactual success:
| Claim | Why It Is an Easy Pass | Strengthening Test Needed |
|-------|----------------------|--------------------------|
| {claim} | {mechanism of trivial pass} | {what harder test would distinguish} |
## Confirmatory Theater Flags
{List any experiment components that appear designed to confirm rather than risk refutation, or "None detected."}
- **Flag**: {description of theater pattern}
- **Evidence**: {what makes this look confirmatory rather than genuinely falsifiable}
- **Remedy**: {what adversarial test would make this falsifiable}
## Optional Severity-Flow Diagram
```mermaid
%%{init: {'flowchart': {'nodeSpacing': 40, 'rankSpacing': 50, 'curve': 'basis'}}}%%
flowchart TB
%% CLASS DEFINITIONS %%
classDef cli fill:#1a237e,stroke:#7986cb,stroke-width:2px,color:#fff;
classDef stateNode fill:#004d40,stroke:#4db6ac,stroke-width:2px,color:#fff;
classDef handler fill:#e65100,stroke:#ffb74d,stroke-width:2px,color:#fff;
classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;
classDef newComponent fill:#2e7d32,stroke:#81c784,stroke-width:2px,color:#fff;
classDef output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;
classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;
classDef gap fill:#ff6f00,stroke:#ffa726,stroke-width:2px,color:#000;
classDef integration fill:#c62828,stroke:#ef9a9a,stroke-width:2px,color:#fff;
subgraph Claims ["POSITIVE CLAIMS"]
C1["Claim 1<br/>━━━━━━━━━━<br/>{stated conclusion}"]
C2["Claim 2<br/>━━━━━━━━━━<br/>{stated conclusion}"]
end
subgraph HighSev ["HIGH-SEVERITY TESTS"]
HS1["Adversarial Test<br/>━━━━━━━━━━<br/>would detect false claim"]
HS2["Negative Control<br/>━━━━━━━━━━<br/>validates apparatus"]
end
subgraph MedSev ["MEDIUM-SEVERITY TESTS"]
MS1["Sanity Check<br/>━━━━━━━━━━<br/>reasonable detection chance"]
end
subgraph LowSev ["LOW-SEVERITY / UNTESTED"]
LS1["Easy-Pass Test<br/>━━━━━━━━━━<br/>trivially achievable"]
LS2["Untested Condition<br/>━━━━━━━━━━<br/>gap in coverage"]
end
subgraph Verdicts ["SEVERITY VERDICTS"]
V_HIGH["HIGH Severity<br/>━━━━━━━━━━<br/>informative pass"]
V_MED["MEDIUM Severity<br/>━━━━━━━━━━<br/>partial confidence"]
V_LOW["LOW Severity<br/>━━━━━━━━━━<br/>uninformative pass"]
end
C1 --> HS1
C1 --> MS1
C2 --> HS2
C2 --> LS1
C2 -.->|"not tested"| LS2
HS1 --> V_HIGH
HS2 --> V_HIGH
MS1 --> V_MED
LS1 --> V_LOW
LS2 --> V_LOW
class C1,C2 cli;
class HS1,HS2 detector;
class MS1 handler;
class LS1,LS2 gap;
class V_HIGH,V_MED,V_LOW output;
Color Legend:
| Color |
Category |
Description |
| Dark Blue |
Claims |
Positive claims and conclusions under evaluation |
| Red |
High Severity |
Tests that would reliably detect a false claim |
| Orange |
Medium Severity |
Tests with a reasonable chance of detection |
| Yellow |
Low Severity |
Easy-pass tests or untested gaps |
| Dark Teal |
Verdicts |
Severity verdict assigned to each claim |
---
## Pre-Diagram Checklist
Before creating the diagram, verify:
- [ ] LOADED `/mermaid` skill using the Skill tool
- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)
- [ ] Diagram will include a color legend table
---
## Related Skills
- `/make-experiment-diag` - Parent skill for experimental lens selection
- `/mermaid` - MUST BE LOADED before creating diagram
- `/exp-lens-error-budget` - For quantifying the statistical error tolerances of each test
- `/exp-lens-validity-threats` - For cataloguing validity threats that undermine the claims
1---2name: exp-lens-severity-testing3description: Analyze severity of experimental tests — adversarial cases, negative controls, falsification tests, easy-pass detection, and confirmatory theater. Falsificationist lens answering "Would this design have caught the error?"4---56# Severity Testing Experimental Design Lens78**Philosophical Mode:** Falsificationist9**Primary Question:** "Would this design have caught the error?"10**Focus:** Adversarial Cases, Negative Controls, Falsification Tests, Easy-Pass Detection, Confirmatory Theater1112## When to Use1314- Evaluating whether positive results are meaningful or trivially achievable15- Checking for adversarial robustness of experimental conclusions16- User invokes `/exp-lens-severity-testing` or `/make-experiment-diag severity`1718## Critical Constraints1920**NEVER:**21- Modify any source code files22- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves23- Accept a "pass" result without asking what a false result would have looked like under this design2425**ALWAYS:**26- For every positive claim, identify what error the test was capable of detecting27- Inventory negative controls and sanity checks explicitly — their absence is a finding28- Rate severity before reporting conclusions, not after29- Flag confirmatory theater: experiments designed to confirm rather than risk refutation30- BEFORE creating any diagram, LOAD the `/mermaid` skill using the Skill tool - this is MANDATORY3132---3334## Analysis Workflow3536### Step 1: Launch Parallel Exploration Subagents3738Spawn Explore subagents to investigate:3940**Positive Results Claimed**41- Find all positive claims and statistically significant results42- Identify the conclusions drawn from each positive finding43- Look for: significant, improves, outperforms, better, wins, advantage, novel4445**Negative Controls & Sanity Checks**46- Find tests designed to fail or baseline sanity checks47- Identify whether any test was included specifically to validate the measurement apparatus48- Look for: negative_control, sanity, baseline, random, null, ablation, placebo4950**Adversarial Conditions**51- Find testing under hostile, edge-case, or boundary conditions52- Identify whether the experiment was exposed to conditions that would stress its assumptions53- Look for: adversarial, worst_case, edge, corner, stress, boundary, failure5455**Alternative Explanations Tested**56- Find whether the experiment actively tries to rule out alternative explanations57- Identify confound checks, artifact controls, and leakage tests58- Look for: alternative, confound, artifact, spurious, leakage, bias, explain5960**Prediction Specificity**61- Find how specific the predictions are that the data is claimed to support62- Identify whether predictions were directional, magnitude-specific, or vague63- Look for: predict, expect, hypothesis, specific, precise, direction, magnitude6465### Step 2: Assess Severity for Each Claim6667For each positive claim, answer:681. What specific errors was this test capable of detecting?692. How easily could the claim pass if it were actually wrong?703. Were negative controls included to validate the measurement apparatus?714. Were adversarial conditions tested?725. Is the "pass" informative or trivially achievable by any plausible intervention?7374### Step 3: Rate Severity and Identify Gaps7576**CRITICAL — Analyze Test Severity:**77For every "pass" the experiment reports:78- What would a false result have looked like under this design?79- Was the test sensitive enough to distinguish genuine from artifactual success?80- Was there any test that could have falsified the claim but was not included?8182Severity ratings:83- **HIGH**: The test would almost certainly have detected the error if the claim were false84- **MEDIUM**: Reasonable chance the test would have detected the error85- **LOW**: The test could easily have passed even if the claim were false — result is not informative8687Flag as **confirmatory theater** when: the design was structured to confirm an expected result, the positive finding was predictable regardless of true effect, and no test was included that risked refuting the hypothesis.8889### Step 4: Create Optional Severity-Flow Diagram9091This lens is primarily argumentative. An optional severity-flow diagram may be added to show how claims flow through severity assessment to verdicts.9293**Direction:** `TB` (claims flow through severity assessment to verdicts)9495**Node Styling:**96- `cli` class: Claims and positive results97- `detector` class: High-severity tests (would have caught the error)98- `handler` class: Medium-severity tests (reasonable chance)99- `gap` class: Low-severity or untested claims100- `output` class: Severity verdicts101102### Step 5: Write Output103104Write the analysis to: `temp/exp-lens-severity-testing/exp_diag_severity_testing_{YYYY-MM-DD_HHMMSS}.md`105106---107108## Output Template109110```markdown111# Severity Testing Analysis: {System / Experiment Name}112113**Lens:** Severity Testing (Falsificationist)114**Question:** Would this design have caught the error?115**Date:** {YYYY-MM-DD}116**Scope:** {What was analyzed}117118## Severity Assessment119120| Claim | Test Applied | Severity Rating | What Would Failure Look Like? |121|-------|-------------|----------------|------------------------------|122| {claim} | {test used} | {HIGH / MEDIUM / LOW} | {what a false positive would have looked like} |123124## Negative Control Inventory125126| Control | Purpose | Present? | Notes |127|---------|---------|----------|-------|128| {control name} | {what it validates} | {yes / no / partial} | {finding if absent} |129130## Adversarial Gap Analysis131132| Condition | Tested? | Risk if Untested |133|-----------|---------|-----------------|134| {adversarial condition} | {yes / no} | {what failure mode is left undetected} |135136## Easy-Pass Detector137138Claims that could be true for trivial reasons — passing the test does not distinguish genuine from artifactual success:139140| Claim | Why It Is an Easy Pass | Strengthening Test Needed |141|-------|----------------------|--------------------------|142| {claim} | {mechanism of trivial pass} | {what harder test would distinguish} |143144## Confirmatory Theater Flags145146{List any experiment components that appear designed to confirm rather than risk refutation, or "None detected."}147148- **Flag**: {description of theater pattern}149 - **Evidence**: {what makes this look confirmatory rather than genuinely falsifiable}150 - **Remedy**: {what adversarial test would make this falsifiable}151152## Optional Severity-Flow Diagram153154```mermaid155%%{init: {'flowchart': {'nodeSpacing': 40, 'rankSpacing': 50, 'curve': 'basis'}}}%%156flowchart TB157 %% CLASS DEFINITIONS %%158 classDef cli fill:#1a237e,stroke:#7986cb,stroke-width:2px,color:#fff;159 classDef stateNode fill:#004d40,stroke:#4db6ac,stroke-width:2px,color:#fff;160 classDef handler fill:#e65100,stroke:#ffb74d,stroke-width:2px,color:#fff;161 classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;162 classDef newComponent fill:#2e7d32,stroke:#81c784,stroke-width:2px,color:#fff;163 classDef output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;164 classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;165 classDef gap fill:#ff6f00,stroke:#ffa726,stroke-width:2px,color:#000;166 classDef integration fill:#c62828,stroke:#ef9a9a,stroke-width:2px,color:#fff;167168 subgraph Claims ["POSITIVE CLAIMS"]169 C1["Claim 1<br/>━━━━━━━━━━<br/>{stated conclusion}"]170 C2["Claim 2<br/>━━━━━━━━━━<br/>{stated conclusion}"]171 end172173 subgraph HighSev ["HIGH-SEVERITY TESTS"]174 HS1["Adversarial Test<br/>━━━━━━━━━━<br/>would detect false claim"]175 HS2["Negative Control<br/>━━━━━━━━━━<br/>validates apparatus"]176 end177178 subgraph MedSev ["MEDIUM-SEVERITY TESTS"]179 MS1["Sanity Check<br/>━━━━━━━━━━<br/>reasonable detection chance"]180 end181182 subgraph LowSev ["LOW-SEVERITY / UNTESTED"]183 LS1["Easy-Pass Test<br/>━━━━━━━━━━<br/>trivially achievable"]184 LS2["Untested Condition<br/>━━━━━━━━━━<br/>gap in coverage"]185 end186187 subgraph Verdicts ["SEVERITY VERDICTS"]188 V_HIGH["HIGH Severity<br/>━━━━━━━━━━<br/>informative pass"]189 V_MED["MEDIUM Severity<br/>━━━━━━━━━━<br/>partial confidence"]190 V_LOW["LOW Severity<br/>━━━━━━━━━━<br/>uninformative pass"]191 end192193 C1 --> HS1194 C1 --> MS1195 C2 --> HS2196 C2 --> LS1197 C2 -.->|"not tested"| LS2198199 HS1 --> V_HIGH200 HS2 --> V_HIGH201 MS1 --> V_MED202 LS1 --> V_LOW203 LS2 --> V_LOW204205 class C1,C2 cli;206 class HS1,HS2 detector;207 class MS1 handler;208 class LS1,LS2 gap;209 class V_HIGH,V_MED,V_LOW output;210```211212**Color Legend:**213| Color | Category | Description |214|-------|----------|-------------|215| Dark Blue | Claims | Positive claims and conclusions under evaluation |216| Red | High Severity | Tests that would reliably detect a false claim |217| Orange | Medium Severity | Tests with a reasonable chance of detection |218| Yellow | Low Severity | Easy-pass tests or untested gaps |219| Dark Teal | Verdicts | Severity verdict assigned to each claim |220```221222---223224## Pre-Diagram Checklist225226Before creating the diagram, verify:227228- [ ] LOADED `/mermaid` skill using the Skill tool229- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)230- [ ] Diagram will include a color legend table231232---233234## Related Skills235236- `/make-experiment-diag` - Parent skill for experimental lens selection237- `/mermaid` - MUST BE LOADED before creating diagram238- `/exp-lens-error-budget` - For quantifying the statistical error tolerances of each test239- `/exp-lens-validity-threats` - For cataloguing validity threats that undermine the claims