
Experiment Design
- 16 installs
- 869 repo stars
- Updated June 8, 2026
- beita6969/scienceclaw
experiment-design is a Claude skill that designs scientific experiments and A/B tests with sample-size calculation, randomization, blinding, and study protocols.
About
This skill plans scientific experiments including sample-size calculation, randomization, control groups, blinding, and study protocols. It covers RCTs, quasi-experiments, factorial designs, A/B tests, and survey design. A developer or researcher uses it when designing a study or A/B test before collecting data.
- Provides sample-size formulas for t-test, chi-square, and correlation
- Includes a design-selection guide covering RCTs, A/B tests, and surveys
- Ships a study-protocol template and bias-mitigation table
Experiment Design by the numbers
- 16 all-time installs (skills.sh)
- Ranked #1,318 of 2,065 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
experiment-design capabilities & compatibility
Free; uses open Python statistical libraries.
- Capabilities
- experimental design · exploratory data analysis
- Use cases
- research · testing · data analysis
- Pricing
- Free
What experiment-design says it does
Design scientific experiments including sample size calculation, randomization, control groups, blinding, and study protocols.
Always justify sample size with power analysis
npx skills add https://github.com/beita6969/scienceclaw --skill experiment-designAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 16 |
|---|---|
| repo stars | ★ 869 |
| Last updated | June 8, 2026 |
| Repository | beita6969/scienceclaw ↗ |
What it does
Use it to design experiments and A/B tests: sample size, randomization, blinding, and full study protocols.
Who is it for?
Designing an experiment, A/B test, or survey and calculating its sample size.
Skip if: Analyzing collected data or executing the experiment.
When should I use this skill?
The user asks to design an experiment, calculate sample size, plan a study, or create a research protocol.
What you get
Delivers a study protocol with an appropriate design, sample size, and bias-mitigation plan.
- Study protocol
- Sample-size calculation
- Bias-mitigation plan
By the numbers
- 8-row design selection guide
- 6-row bias mitigation table
- 12-section protocol template
Files
Experiment Design
Scientific experiment planning, power analysis, and protocol development.
Design Selection Guide
| Research Question | Recommended Design |
|---|---|
| Does X cause Y? | RCT (gold standard) |
| Does X cause Y? (can't randomize) | Quasi-experiment, natural experiment |
| How do factors interact? | Factorial design |
| Which version performs better? | A/B test |
| What is the prevalence/association? | Cross-sectional survey |
| How does outcome change over time? | Longitudinal / cohort study |
| What is the lived experience? | Qualitative (interviews, ethnography) |
| Does intervention work in practice? | Pragmatic trial |
Power Analysis & Sample Size
source /Users/zhangmingda/clawd/.venv/bin/activate
python3 << 'EOF'
from scipy import stats
import numpy as np
# --- Two-sample t-test ---
def sample_size_ttest(effect_size, alpha=0.05, power=0.80):
"""Cohen's d effect sizes: small=0.2, medium=0.5, large=0.8"""
from scipy.stats import norm
z_alpha = norm.ppf(1 - alpha/2)
z_beta = norm.ppf(power)
n = 2 * ((z_alpha + z_beta) / effect_size) ** 2
return int(np.ceil(n))
# --- Chi-square test ---
def sample_size_chi2(effect_size, alpha=0.05, power=0.80, df=1):
"""Cohen's w effect sizes: small=0.1, medium=0.3, large=0.5"""
from scipy.stats import norm, chi2
z_beta = norm.ppf(power)
z_alpha = norm.ppf(1 - alpha)
n = ((z_alpha + z_beta) / effect_size) ** 2
return int(np.ceil(n))
# --- Correlation ---
def sample_size_correlation(r, alpha=0.05, power=0.80):
from scipy.stats import norm
z_alpha = norm.ppf(1 - alpha/2)
z_beta = norm.ppf(power)
z_r = 0.5 * np.log((1+r)/(1-r)) # Fisher's z
n = ((z_alpha + z_beta) / z_r) ** 2 + 3
return int(np.ceil(n))
# Examples
print(f"t-test (d=0.5): n={sample_size_ttest(0.5)} per group")
print(f"t-test (d=0.3): n={sample_size_ttest(0.3)} per group")
print(f"Chi-square (w=0.3): n={sample_size_chi2(0.3)}")
print(f"Correlation (r=0.3): n={sample_size_correlation(0.3)}")
EOFKey Design Principles
Controls
- Positive control: Known to produce effect (validates method works)
- Negative control: Known to produce no effect (validates baseline)
- Placebo control: Inert treatment (controls for expectation effects)
- Active control: Existing standard treatment (for superiority/non-inferiority)
Randomization
- Simple: Coin flip / random number
- Block: Ensures equal groups per block
- Stratified: Randomize within strata (age, sex, severity)
- Cluster: Randomize groups, not individuals
Blinding
- Single-blind: Participants don't know assignment
- Double-blind: Participants and researchers don't know
- Triple-blind: Participants, researchers, and analysts don't know
Bias Mitigation
| Bias | Mitigation |
|---|---|
| Selection bias | Random sampling, clear inclusion criteria |
| Allocation bias | Random assignment, concealed allocation |
| Performance bias | Blinding, standardized protocols |
| Detection bias | Blinded outcome assessment |
| Attrition bias | ITT analysis, minimize dropout |
| Reporting bias | Pre-registration, analysis plan |
Study Protocol Template
# Study Protocol: [Title]
## 1. Background & Rationale
## 2. Objectives & Hypotheses
- Primary:
- Secondary:
## 3. Study Design
- Type: [RCT / quasi-experiment / observational / ...]
- Duration:
## 4. Participants
- Population:
- Inclusion criteria:
- Exclusion criteria:
- Sample size: N = [calculated], power = 0.80, α = 0.05
## 5. Intervention / Exposure
## 6. Outcome Measures
- Primary:
- Secondary:
## 7. Randomization & Blinding
## 8. Data Collection Procedures
## 9. Statistical Analysis Plan
- Primary analysis:
- Secondary analyses:
- Handling of missing data:
## 10. Ethical Considerations
- IRB/Ethics approval:
- Informed consent:
- Data privacy:
## 11. Timeline
## 12. BudgetPre-registration
Recommend pre-registration for confirmatory studies:
- OSF: osf.io (general)
- ClinicalTrials.gov: clinical trials
- PROSPERO: systematic reviews
- AsPredicted: aspredicted.org (quick)
Tips
- Always justify sample size with power analysis
- Pre-register hypotheses and analysis plan
- Plan for 10-20% attrition in sample size calculation
- Document all deviations from protocol
- Consider pilot study for novel methods
Related skills
FAQ
Which designs does it cover?
RCTs, quasi-experiments, factorial designs, A/B tests, cross-sectional surveys, longitudinal/cohort studies, and qualitative designs.
What sample-size tests does it support?
Two-sample t-test, chi-square, and correlation, using scipy-based formulas.