Reproducibility Artifacts Experimental Design Lens
Philosophical Mode: Transparency
Primary Question: "Could an independent party reproduce this?"
Focus: Run Instructions, Environment Capture, Data Availability, Determinism Controls, Audit Trail
When to Use
- Evaluating reproducibility of computational experiments
- Auditing artifact completeness
- Checking for undocumented dependencies
- User invokes
/exp-lens-reproducibility-artifacts or /make-experiment-diag reproducibility
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:
- Trace the full chain from "clone repo" to "reproduce figures"
- Classify every artifact as available/unavailable and versioned/floating
- Identify the weakest link in the reproduction chain
- Flag all silent non-determinism risks
- 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:
Environment & Dependencies
- Find dependency files, container definitions, environment setup
- Look for: requirements, Dockerfile, environment.yml, conda, pip, nix, lock
Data Provenance
- Find data download scripts, checksums, versioning
- Look for: download, checksum, hash, version, dvc, data_url, manifest
Execution Entry Points
- Find run scripts, Makefiles, workflow managers
- Look for: Makefile, run.sh, snakemake, nextflow, main, entrypoint, cli
Random Seed & Determinism
- Find seed setting, nondeterminism controls
- Look for: seed, random_state, deterministic, cudnn, PYTHONHASHSEED
Output Artifacts & Logging
- Find result storage, logging, figure generation
- Look for: save, log, output, results, figures, checkpoint, wandb, mlflow
Step 2: Map the Reproduction Chain
Map the full chain from "clone repo" to "reproduce figures." Identify each link:
- Is it documented?
- Is it automated?
- Is it deterministic?
- What is the weakest link?
Step 3: Classify Each Artifact Dependency
CRITICAL — Analyze Reproduction Chain:
For every artifact dependency:
- Is the source available (open vs gated)?
- Is the version pinned or floating?
- Is the transform deterministic?
- Could silent environment differences change results?
Assign a status of Pass, Warn, or Fail to each link in the chain based on reproducibility confidence.
Step 4: Create the Diagram
Use flowchart with:
Direction: LR (reproduction chain flows left to right)
Subgraphs:
- SOURCE CODE
- ENVIRONMENT
- DATA
- EXECUTION
- OUTPUTS
Node Styling:
cli class: Entry points and run commands
stateNode class: Versioned and pinned artifacts
handler class: Transforms and scripts
output class: Results and figures
gap class: Missing or undocumented links
detector class: Checksum and validation gates
phase class: External dependencies
Edge Labels: pinned, floating, deterministic, nondeterministic, gated
Step 5: Write Output
Write the diagram to: temp/exp-lens-reproducibility-artifacts/exp_diag_reproducibility_artifacts_{YYYY-MM-DD_HHMMSS}.md
Output Template
# Reproducibility Artifacts Diagram: {Experiment Name}
**Lens:** Reproducibility Artifacts (Transparency)
**Question:** Could an independent party reproduce this?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Artifact Inventory
| Artifact | Available? | Versioned? | Deterministic? |
|----------|------------|------------|----------------|
| {artifact} | {Yes/No/Gated} | {Pinned/Floating/None} | {Yes/No/Unknown} |
## Reproduction Chain Diagram
```mermaid
%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%
flowchart 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;
subgraph Source ["SOURCE CODE"]
REPO["Git Repository<br/>━━━━━━━━━━<br/>Commit hash<br/>Branch"]
ENTRY["Entry Point<br/>━━━━━━━━━━<br/>run.sh / Makefile"]
end
subgraph Env ["ENVIRONMENT"]
DEPS["Dependencies<br/>━━━━━━━━━━<br/>requirements.txt / lock"]
MISSING["Undocumented Dep<br/>━━━━━━━━━━<br/>No version pin"]
EXTDEP["External Service<br/>━━━━━━━━━━<br/>API / cloud resource"]
end
subgraph Data ["DATA"]
RAW["Raw Dataset<br/>━━━━━━━━━━<br/>Checksum available?"]
CHKSUM["Checksum Gate<br/>━━━━━━━━━━<br/>sha256 / md5"]
GATED["Gated Dataset<br/>━━━━━━━━━━<br/>Access required"]
end
subgraph Exec ["EXECUTION"]
SEED["Seed Control<br/>━━━━━━━━━━<br/>PYTHONHASHSEED<br/>random_state"]
SCRIPT["Pipeline Script<br/>━━━━━━━━━━<br/>Deterministic?"]
end
subgraph Outputs ["OUTPUTS"]
RESULTS["Results / Metrics<br/>━━━━━━━━━━<br/>Logged?"]
FIGS["Figures<br/>━━━━━━━━━━<br/>Reproducible?"]
end
%% REPRODUCTION CHAIN %%
REPO -->|"pinned"| ENTRY
ENTRY -->|"loads"| DEPS
DEPS -.->|"floating"| MISSING
MISSING -.->|"nondeterministic"| SCRIPT
EXTDEP -->|"gated"| SCRIPT
RAW -->|"verify"| CHKSUM
CHKSUM -->|"deterministic"| SCRIPT
GATED -.->|"gated"| SCRIPT
SEED -->|"controls"| SCRIPT
SCRIPT -->|"produces"| RESULTS
SCRIPT -->|"generates"| FIGS
%% CLASS ASSIGNMENTS %%
class REPO,ENTRY cli;
class DEPS,RAW stateNode;
class SCRIPT,SEED handler;
class EXTDEP phase;
class RESULTS,FIGS output;
class CHKSUM detector;
class MISSING,GATED gap;
Color Legend:
| Color |
Category |
Description |
| Dark Blue |
Entry Point |
Run commands and source code |
| Teal |
Versioned Artifact |
Pinned dependencies and checksummed data |
| Orange |
Transform / Script |
Pipeline scripts and execution steps |
| Purple |
External Dependency |
External services and APIs |
| Dark Teal |
Output |
Results, metrics, and figures |
| Red |
Validation Gate |
Checksum and integrity checks |
| Amber |
Missing Link |
Undocumented or gated dependencies |
Reproduction Checklist
Step-by-step instructions with pass/fail status:
Weakest Links
| Link |
Issue |
Severity |
Recommendation |
| {link} |
{undocumented/gated/floating/nondeterministic} |
{High/Medium/Low} |
{action} |
---
## 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-pipeline-integrity` - For data leakage audit
- `/exp-lens-variance-stability` - For result stability across seeds
1---2name: exp-lens-reproducibility-artifacts3description: Create Reproducibility Artifacts experimental design diagram showing run instructions, environment capture, data availability, determinism controls, and audit trail. Transparency lens answering "Could an independent party reproduce this?"4---56# Reproducibility Artifacts Experimental Design Lens78**Philosophical Mode:** Transparency9**Primary Question:** "Could an independent party reproduce this?"10**Focus:** Run Instructions, Environment Capture, Data Availability, Determinism Controls, Audit Trail1112## When to Use1314- Evaluating reproducibility of computational experiments15- Auditing artifact completeness16- Checking for undocumented dependencies17- User invokes `/exp-lens-reproducibility-artifacts` or `/make-experiment-diag reproducibility`1819## Critical Constraints2021**NEVER:**22- Modify any source code files23- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves2425**ALWAYS:**26- Trace the full chain from "clone repo" to "reproduce figures"27- Classify every artifact as available/unavailable and versioned/floating28- Identify the weakest link in the reproduction chain29- Flag all silent non-determinism risks30- 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**Environment & Dependencies**41- Find dependency files, container definitions, environment setup42- Look for: requirements, Dockerfile, environment.yml, conda, pip, nix, lock4344**Data Provenance**45- Find data download scripts, checksums, versioning46- Look for: download, checksum, hash, version, dvc, data_url, manifest4748**Execution Entry Points**49- Find run scripts, Makefiles, workflow managers50- Look for: Makefile, run.sh, snakemake, nextflow, main, entrypoint, cli5152**Random Seed & Determinism**53- Find seed setting, nondeterminism controls54- Look for: seed, random_state, deterministic, cudnn, PYTHONHASHSEED5556**Output Artifacts & Logging**57- Find result storage, logging, figure generation58- Look for: save, log, output, results, figures, checkpoint, wandb, mlflow5960### Step 2: Map the Reproduction Chain6162Map the full chain from "clone repo" to "reproduce figures." Identify each link:63- Is it documented?64- Is it automated?65- Is it deterministic?66- What is the weakest link?6768### Step 3: Classify Each Artifact Dependency6970**CRITICAL — Analyze Reproduction Chain:**71For every artifact dependency:72- Is the source available (open vs gated)?73- Is the version pinned or floating?74- Is the transform deterministic?75- Could silent environment differences change results?7677Assign a status of Pass, Warn, or Fail to each link in the chain based on reproducibility confidence.7879### Step 4: Create the Diagram8081Use flowchart with:8283**Direction:** `LR` (reproduction chain flows left to right)8485**Subgraphs:**86- SOURCE CODE87- ENVIRONMENT88- DATA89- EXECUTION90- OUTPUTS9192**Node Styling:**93- `cli` class: Entry points and run commands94- `stateNode` class: Versioned and pinned artifacts95- `handler` class: Transforms and scripts96- `output` class: Results and figures97- `gap` class: Missing or undocumented links98- `detector` class: Checksum and validation gates99- `phase` class: External dependencies100101**Edge Labels:** pinned, floating, deterministic, nondeterministic, gated102103### Step 5: Write Output104105Write the diagram to: `temp/exp-lens-reproducibility-artifacts/exp_diag_reproducibility_artifacts_{YYYY-MM-DD_HHMMSS}.md`106107---108109## Output Template110111```markdown112# Reproducibility Artifacts Diagram: {Experiment Name}113114**Lens:** Reproducibility Artifacts (Transparency)115**Question:** Could an independent party reproduce this?116**Date:** {YYYY-MM-DD}117**Scope:** {What was analyzed}118119## Artifact Inventory120121| Artifact | Available? | Versioned? | Deterministic? |122|----------|------------|------------|----------------|123| {artifact} | {Yes/No/Gated} | {Pinned/Floating/None} | {Yes/No/Unknown} |124125## Reproduction Chain Diagram126127```mermaid128%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%129flowchart LR130 %% CLASS DEFINITIONS %%131 classDef cli fill:#1a237e,stroke:#7986cb,stroke-width:2px,color:#fff;132 classDef stateNode fill:#004d40,stroke:#4db6ac,stroke-width:2px,color:#fff;133 classDef handler fill:#e65100,stroke:#ffb74d,stroke-width:2px,color:#fff;134 classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;135 classDef newComponent fill:#2e7d32,stroke:#81c784,stroke-width:2px,color:#fff;136 classDef output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;137 classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;138 classDef gap fill:#ff6f00,stroke:#ffa726,stroke-width:2px,color:#000;139 classDef integration fill:#c62828,stroke:#ef9a9a,stroke-width:2px,color:#fff;140141 subgraph Source ["SOURCE CODE"]142 REPO["Git Repository<br/>━━━━━━━━━━<br/>Commit hash<br/>Branch"]143 ENTRY["Entry Point<br/>━━━━━━━━━━<br/>run.sh / Makefile"]144 end145146 subgraph Env ["ENVIRONMENT"]147 DEPS["Dependencies<br/>━━━━━━━━━━<br/>requirements.txt / lock"]148 MISSING["Undocumented Dep<br/>━━━━━━━━━━<br/>No version pin"]149 EXTDEP["External Service<br/>━━━━━━━━━━<br/>API / cloud resource"]150 end151152 subgraph Data ["DATA"]153 RAW["Raw Dataset<br/>━━━━━━━━━━<br/>Checksum available?"]154 CHKSUM["Checksum Gate<br/>━━━━━━━━━━<br/>sha256 / md5"]155 GATED["Gated Dataset<br/>━━━━━━━━━━<br/>Access required"]156 end157158 subgraph Exec ["EXECUTION"]159 SEED["Seed Control<br/>━━━━━━━━━━<br/>PYTHONHASHSEED<br/>random_state"]160 SCRIPT["Pipeline Script<br/>━━━━━━━━━━<br/>Deterministic?"]161 end162163 subgraph Outputs ["OUTPUTS"]164 RESULTS["Results / Metrics<br/>━━━━━━━━━━<br/>Logged?"]165 FIGS["Figures<br/>━━━━━━━━━━<br/>Reproducible?"]166 end167168 %% REPRODUCTION CHAIN %%169 REPO -->|"pinned"| ENTRY170 ENTRY -->|"loads"| DEPS171 DEPS -.->|"floating"| MISSING172 MISSING -.->|"nondeterministic"| SCRIPT173 EXTDEP -->|"gated"| SCRIPT174 RAW -->|"verify"| CHKSUM175 CHKSUM -->|"deterministic"| SCRIPT176 GATED -.->|"gated"| SCRIPT177 SEED -->|"controls"| SCRIPT178 SCRIPT -->|"produces"| RESULTS179 SCRIPT -->|"generates"| FIGS180181 %% CLASS ASSIGNMENTS %%182 class REPO,ENTRY cli;183 class DEPS,RAW stateNode;184 class SCRIPT,SEED handler;185 class EXTDEP phase;186 class RESULTS,FIGS output;187 class CHKSUM detector;188 class MISSING,GATED gap;189```190191**Color Legend:**192| Color | Category | Description |193|-------|----------|-------------|194| Dark Blue | Entry Point | Run commands and source code |195| Teal | Versioned Artifact | Pinned dependencies and checksummed data |196| Orange | Transform / Script | Pipeline scripts and execution steps |197| Purple | External Dependency | External services and APIs |198| Dark Teal | Output | Results, metrics, and figures |199| Red | Validation Gate | Checksum and integrity checks |200| Amber | Missing Link | Undocumented or gated dependencies |201202## Reproduction Checklist203204Step-by-step instructions with pass/fail status:205206- [ ] Clone repository at pinned commit207- [ ] Reproduce environment from lock/container file208- [ ] Download data and verify checksums209- [ ] Set all random seeds as documented210- [ ] Execute pipeline via documented entry point211- [ ] Compare output metrics/figures to reported values212213## Weakest Links214215| Link | Issue | Severity | Recommendation |216|------|-------|----------|----------------|217| {link} | {undocumented/gated/floating/nondeterministic} | {High/Medium/Low} | {action} |218```219220---221222## Pre-Diagram Checklist223224Before creating the diagram, verify:225226- [ ] LOADED `/mermaid` skill using the Skill tool227- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)228- [ ] Diagram will include a color legend table229230---231232## Related Skills233234- `/make-experiment-diag` - Parent skill for lens selection235- `/mermaid` - MUST BE LOADED before creating diagram236- `/exp-lens-pipeline-integrity` - For data leakage audit237- `/exp-lens-variance-stability` - For result stability across seeds