Skip to content
Back to skills

Experiment Design

ASecurity

Design empirical studies through power analysis, pre-analysis planning, QSF parsing, and survey architecture. Use when specifying sampling, measurement, treatment, or analysis before data collection. Not for causal identification alone; use $causal-design.

  • 144 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentspythonrustbashtesting

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add flonat/flonat-research --skill experiment-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Experiment Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Experiment Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/flonat-experiment-design/badge)](https://www.skillsdirectory.com/skills/flonat-experiment-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: experiment-design
description: "Design empirical studies through power analysis, pre-analysis planning, QSF parsing, and survey architecture. Use when specifying sampling, measurement, treatment, or analysis before data collection. Not for causal identification alone; use $causal-design."
allowed-tools: Bash(uv*, Rscript*, R*, mkdir*, ls*), Read, Write, Edit, Glob, Grep, AskUserQuestion
argument-hint: "[--mode power|design|pap|survey] [qsf-file or project-path]"
---

# Experiment Design

> Interview-driven design workflow producing design documents, power analysis scripts, and pre-analysis plans.

## Modes

| Mode | What it produces | Entry point |
|------|-----------------|-------------|
| **Power** | Power analysis script + sample size table | "How many participants do I need?" |
| **Design** | Full design document (hypotheses, conditions, measures, randomization) | "Design my experiment" |
| **PAP** | Pre-analysis plan (AEA/OSF/EGAP format) | "Write a PAP" |
| **Survey** | Structured survey specification from natural language or QSF | "Build a survey" / "Parse my Qualtrics" |

Default: **Design**. If user provides a `.qsf` file, auto-select Survey mode.

## When to Use

- Designing a new experiment or survey
- Calculating required sample sizes
- Writing or auditing a pre-analysis plan
- Parsing a Qualtrics `.qsf` file to understand its structure
- Building a survey specification from a natural language description

## When NOT to Use

- Running the analysis → `data-analysis`
- Auditing identification strategy for observational studies → `causal-design`
- Generating synthetic test data → `synthetic-data`

## Shared References

- Method probing questions: `shared/method-probing-questions.md` — ask before designing (Experiments/RCTs, Survey sections)
- Validation tiers: `shared/validation-tiers.md` — tier determines required power and pre-registration
- Escalation protocol: `shared/escalation-protocol.md` — escalate when design has validity threats
- Engagement-stratified sampling: `shared/engagement-stratified-sampling.md` — stratify social media samples by engagement
- Inter-coder reliability: `shared/intercoder-reliability.md` — reliability planning for content analysis designs

---

## Mode: Power

Read `references/power-analysis-recipes.md` for language-specific code patterns.

### Workflow

1. **Interview** — ask for:
   - Primary outcome variable and expected effect size (or domain norms)
   - Design type (between-subjects, within-subjects, factorial, cluster-randomized)
   - Number of conditions/groups
   - Significance level (default: 0.05) and desired power (default: 0.80)
   - Any clustering or stratification
2. **Generate script** — R (`DeclareDesign`/`pwr`) or Python (`statsmodels.stats.power`)
3. **Execute and report** — produce a sample size table showing N for power = {0.80, 0.90, 0.95}
4. **Write to project** — save script to `code/power_analysis.R` (or `.py`), results to `output/power_analysis_results.md`

**HPC escalation:** If the power analysis uses Monte Carlo simulation (e.g., `DeclareDesign` with >10k replications, or a multi-design sweep), move execution to [HPC cluster] — drop the simulation script into `hpc/` with `templates/slurm/array.sbatch` (array over seeds/designs). The SHA-logging snippet in the template pins results to the DGP version. See `docs/guides/hpc.md`.

### Effect Size Guidance

If the user doesn't know the expected effect size, guide them:

| Source | How to use |
|--------|-----------|
| Prior literature | "What did similar studies find?" |
| Pilot data | Calculate from pilot descriptives |
| SESOI | "What's the smallest effect worth detecting?" |
| Domain norms | Cohen's benchmarks as absolute last resort (small=0.2, medium=0.5, large=0.8 for d) |

**Never default to Cohen's benchmarks without acknowledging they are arbitrary.**

---

## Mode: Design

### Workflow

1. **Research question interview** — structured questions:
   - What is the causal question?
   - What is the treatment / intervention?
   - What is the primary outcome? Secondary outcomes?
   - What is the target population?
   - What is the assignment mechanism? (random, stratified, clustered, matched)
2. **Design specification** — produce a structured document covering:
   - Hypotheses (directional, with expected signs)
   - Conditions (treatment arms, control)
   - Randomization procedure
   - Outcome measures and scales
   - Sample and recruitment strategy
   - Timeline
3. **Identification check** — state the estimand, identifying assumptions, and potential threats
4. **Write design document** — save to `docs/experiment-design.md` or project-appropriate location
5. **Lock the design** — record in `MEMORY.md` Estimand Registry (if project has one) or flag for the user to lock before analysis

This design document is what `data-analysis` Phase 3 checks for before allowing estimation.

---

## Mode: PAP

Read `references/pap-template.md` for the full template structure.

### Workflow

1. **Check for existing design** — look for design document in `docs/`, `log/plans/`, or `.context/`
2. **If no design exists** — run Design mode first, then continue
3. **Generate PAP** — structured pre-analysis plan following AEA/OSF/EGAP conventions:
   - Study information (title, authors, IRB, registration)
   - Design overview (hypotheses, conditions, randomization, sample)
   - Data collection (instruments, timing, blinding)
   - Analysis plan (main specification, inference, multiple testing corrections)
   - Robustness and sensitivity analyses
   - Power analysis (reference or embed results from Power mode)
4. **Output** — save to `docs/pre-analysis-plan.md` (or `.tex` if user prefers LaTeX)
5. **Registration prompt** — remind user to register at AEA RCT Registry, OSF, or EGAP

---

## Mode: Survey

Survey mode is a first-class capability with two entry points: QSF parsing and natural language construction.

### Entry Point A: QSF Parsing

When user provides a Qualtrics `.qsf` file:

1. **Parse the JSON** — extract survey flow, blocks, questions, embedded data, skip logic
2. **Map question types** — read `references/qsf-parsing-guide.md` for type mapping:
   - Matrix, Likert, slider, numeric, constant sum, rank order, best-worst scaling
   - Text entry (single-line, multi-line, essay)
   - Multiple choice (single answer, multiple answer)
3. **Detect design elements:**
   - Factorial conditions from randomizer blocks and embedded data
   - Attention checks and comprehension checks
   - Known validated scales (read `references/known-scales-registry.md`)
   - Skip/display logic and branching
4. **Produce structured summary** — questions, conditions, scales, logic flow, warnings
5. **Flag issues** — missing attention checks, unbalanced conditions, potential order effects

### Entry Point B: Natural Language Construction

When user describes an experiment in natural language:

1. **Parse the design** — extract factorial structure from text
   - Example: "3 (Source: AI vs Human vs None) x 2 (Product: Hedonic vs Utilitarian)" → 3x2 between-subjects
2. **Interview for details:**
   - What DVs to measure? (recommend appropriate scale types)
   - What manipulation checks?
   - What attention/comprehension checks?
   - Demographics and control variables?
3. **Generate survey specification** — structured document with:
   - Survey flow (consent → demographics → manipulation → DVs → manipulation check → debrief)
   - Question text and response options for each item
   - Condition assignments and randomization logic
   - Attention check placement (read `references/survey-design-checklist.md`)
4. **Scale recommendations** — read `references/known-scales-registry.md` for validated scales matching the constructs

### Survey Quality Checks

Read `references/survey-design-checklist.md` for the full checklist. Key checks:

- **Attention checks:** At least 1 per 5 minutes of survey length. Calibrated pass rates (85-95%). See Krosnick (1991), Meade & Craig (2012).
- **Response style mitigation:** Flag scales vulnerable to acquiescence bias. Recommend reverse-coding for scales with 4+ items in the same direction.
- **Scale quality:** Semantic type detection (satisfaction, trust, intention, risk). Reverse-coded item flagging. Well-known scale recognition.
- **Order effects:** Randomize question order within blocks where appropriate. Flag potential priming from early questions.

---

## Cross-References

| Resource | When read |
|----------|-----------|
| `references/power-analysis-recipes.md` | Power mode |
| `references/pap-template.md` | PAP mode |
| `references/survey-design-checklist.md` | Survey mode (quality checks) |
| `references/identification-strategies.md` | Design mode (identification check) |
| `references/qsf-parsing-guide.md` | Survey mode (QSF parsing) |
| `references/known-scales-registry.md` | Survey mode (scale recognition) |
| `design-before-results` rule | Design + PAP modes produce the locked design |
| `data-analysis` skill | Consumes the design document |
| `causal-design` skill | For observational identification (not experiments) |
| `synthetic-data` skill | For generating pilot data |

Files in this skill

  • SKILL.md9 KB
  • references/identification-strategies.md3 KB
  • references/known-scales-registry.md5.6 KB
  • references/pap-template.md4.2 KB
  • references/power-analysis-recipes.md3.9 KB
  • references/qsf-parsing-guide.md5.3 KB
  • references/survey-design-checklist.md5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.