# Exp Lens Exploratory Confirmatory

> Assess whether analytic decisions were pre-specified or post-hoc and whether exploratory/confirmatory norms are aligned. Boundary lens answering "Is this discovery or test, and are norms aligned?"

- Skill: `trecek/exp-lens-exploratory-confirmatory` (Agent Skill)
- Install (CLI): `npx skillmds add trecek/exp-lens-exploratory-confirmatory`
- Raw SKILL.md: https://api.skillmd.com/api/skills/trecek/exp-lens-exploratory-confirmatory/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: Trecek (https://skillmd.com/u/trecek)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/trecek/exp-lens-exploratory-confirmatory

---


# Exploratory-Confirmatory Experimental Design Lens

**Philosophical Mode:** Boundary
**Primary Question:** "Is this discovery or test, and are norms aligned?"
**Focus:** Pre-specification, Analytic Flexibility, HARKing Detection, Garden of Forking Paths, Transparent Reporting

## When to Use

- Study mixes exploration and confirmation without clear boundaries
- Post-hoc hypotheses presented as pre-specified
- Many analyses run but only significant ones reported
- User invokes `/exp-lens-exploratory-confirmatory` or `/make-experiment-diag exploratory`

## 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

**ALWAYS:**
- Map the full analytic timeline — what was decided before vs. after seeing data
- Count forking paths honestly — every analysis choice is a potential fork
- Distinguish genuine exploration (hypothesis-generating) from HARKing (hypothesis-after-results)
- Flag absent preregistration as a finding without assuming bad faith
- 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:

**Pre-specified Plans**
- Find evidence of pre-registration, protocols, or analysis plans written before seeing data
- Look for: preregister, protocol, plan, a_priori, predetermined, registered, osf

**Analytic Flexibility**
- Find how many analysis choices could have been made differently
- Look for: choice, option, alternative, try, different, also, additionally, robustness

**Selective Reporting Signals**
- Find whether all planned analyses are reported
- Look for: main_result, primary, secondary, supplementary, appendix, not_shown, data_not_shown

**Post-Hoc Rationalization**
- Find hypotheses that appear to have been generated from the data
- Look for: we found, unexpectedly, interestingly, surprising, post_hoc, exploratory, we noticed

**Exploration-Confirmation Separation**
- Find whether there is an explicit boundary between exploration and test
- Look for: holdout, validation, train_dev_test, discovery_set, confirmation_set, split

### Step 2: Map Analytic Timeline

Map the analytic timeline:
- What was decided before seeing data?
- What was decided after?
- Where is the boundary between exploration and confirmation?

Count the "forking paths" — decision points where a different choice would have led to a different result.

### Step 3: Analyze Boundary Integrity

**CRITICAL — Analyze Boundary Integrity:**
For every reported result:
- Was the analysis plan fixed before seeing the outcome?
- If not, how many alternative analyses could have been run?
- Does the reporting distinguish exploratory findings from confirmatory tests?

Assess whether the reported results have survivorship bias.

### Step 4: Create the Diagram (Optional)

This is primarily an argumentative lens. Create an optional timeline diagram only when the timeline is complex enough to benefit from visualization.

Use the mermaid skill conventions with:

**Direction:** `LR` (time flows left to right from planning through analysis to reporting)

**Minimal diagram structure:**
- Pre-data decisions → Data collection → Post-data decisions → Reporting

**Node Styling:**
- `stateNode` class: Pre-specified decisions
- `handler` class: Data collection
- `phase` class: Post-data decisions
- `gap` class: Undisclosed flexibility
- `detector` class: Exploration/confirmation boundary
- `output` class: Reported results

### Step 5: Write Output

Write the output to: `temp/exp-lens-exploratory-confirmatory/exp_diag_exploratory_confirmatory_{YYYY-MM-DD_HHMMSS}.md`

---

## Output Template

```markdown
# Exploratory-Confirmatory Analysis: {Experiment Name}

**Lens:** Exploratory-Confirmatory (Boundary)
**Question:** Is this discovery or test, and are norms aligned?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}

## Analytic Timeline

| Decision Point | Pre/Post Data | Flexibility | Impact on Results |
|---------------|---------------|-------------|-------------------|
| {decision} | {Pre/Post} | {Low/Medium/High} | {description} |

## Forking Paths Inventory

| Analysis Choice | Alternatives Not Taken | Estimated Impact |
|----------------|------------------------|-----------------|
| {choice made} | {alternative 1, 2...} | {Low/Medium/High} |

## HARKing Risk Assessment

| Finding | Framing | HARKing Indicators | Assessment |
|---------|---------|-------------------|------------|
| {finding} | {how presented} | {indicators found} | {Low/Medium/High risk} |

## Timeline Diagram (Optional)

```mermaid
%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%
graph LR
    %% 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;

    PRESPEC["Pre-specified Decisions<br/>━━━━━━━━━━<br/>Hypothesis, primary<br/>outcome, analysis plan"]

    COLLECT["Data Collection<br/>━━━━━━━━━━<br/>Observation period<br/>and data gathering"]

    BOUND["E/C Boundary<br/>━━━━━━━━━━<br/>Explicit split between<br/>exploration and test"]

    POSTDATA["Post-data Decisions<br/>━━━━━━━━━━<br/>Analysis choices made<br/>after seeing results"]

    HIDDEN["Undisclosed Flexibility<br/>━━━━━━━━━━<br/>Unreported forks<br/>and alternatives"]

    REPORTED["Reported Results<br/>━━━━━━━━━━<br/>Published findings<br/>and conclusions"]

    PRESPEC --> COLLECT
    COLLECT --> BOUND
    BOUND --> POSTDATA
    POSTDATA --> HIDDEN
    POSTDATA --> REPORTED
    HIDDEN -.->|"survivorship bias"| REPORTED

    %% CLASS ASSIGNMENTS %%
    class PRESPEC stateNode;
    class COLLECT handler;
    class BOUND detector;
    class POSTDATA phase;
    class HIDDEN gap;
    class REPORTED output;
```

## Preregistration Compliance Checklist

- [ ] Hypothesis stated before data collection
- [ ] Primary outcome pre-specified
- [ ] Analysis plan documented before analysis
- [ ] Deviations from plan disclosed
- [ ] Exploratory analyses labelled as such

## Transparent Reporting Scorecard

| Criterion | Met? | Notes |
|-----------|------|-------|
| All planned analyses reported | {Yes/No/Partial} | {notes} |
| Exploratory/confirmatory distinction explicit | {Yes/No/Partial} | {notes} |
| Forking paths disclosed | {Yes/No/Partial} | {notes} |
| Null results reported | {Yes/No/Partial} | {notes} |

## Key Findings

- {Description of boundary integrity assessment and most significant HARKing or flexibility risks}
```

---

## 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 lens selection
- `/mermaid` - MUST BE LOADED before creating diagram
- `/exp-lens-severity-testing` - For statistical severity and error probability analysis
- `/exp-lens-sensitivity-robustness` - For robustness of conclusions across analytic choices

