src/autoskillit/skills_extended/vis-lens-reproducibility/SKILL.md
Create Replicative Reproducibility visualization planning spec showing data availability, preprocessing parameter disclosure (bin widths, smoothing windows), plotting library/version, random seeds, and code reference per figure. Replicative lens answering "Can the figures be reproduced from the data and code?"
npx skillsauth add talont-org/autoskillit vis-lens-reproducibilityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Philosophical Mode: Replicative Primary Question: "Can the figures be reproduced from the data and code?" Focus: Data availability (public / restricted / embargoed), preprocessing parameter disclosure (bin widths, smoothing windows, normalization), plotting library and version pinning, random seed documentation, per-figure code reference (script or notebook cell)
/autoskillit:vis-lens-reproducibility [context_path] [experiment_plan_path]
/autoskillit:vis-lens-reproducibilityNEVER:
{{AUTOSKILLIT_TEMP}}/vis-lens-reproducibility/ALWAYS:
Check data availability status for every figure (public/restricted/embargoed)
Document bin widths for histograms, smoothing windows for time-series, normalization parameters for heatmaps
Pin plotting library name and version (matplotlib 3.8.2, seaborn 0.13.0, etc.)
Record the random seed(s) used for any stochastic component (sampling, bootstrapping, noise injection)
Provide a per-figure code reference: script path or notebook cell identifier
BEFORE creating any diagram, LOAD the /autoskillit:mermaid skill using the Skill tool — this is MANDATORY
If the Skill tool cannot be used (disable-model-invocation) or refuses this invocation, do NOT proceed with diagram creation. Abort this step and omit the diagram from output.
Write output to {{AUTOSKILLIT_TEMP}}/vis-lens-reproducibility/vis_spec_reproducibility_{YYYY-MM-DD_HHMMSS}.md (relative to the current working directory)
After writing the file, emit the structured output token as literal plain text with no markdown formatting on the token name (the adjudicator performs a regex match):
diagram_path = /absolute/path/to/{{AUTOSKILLIT_TEMP}}/vis-lens-reproducibility/vis_spec_reproducibility_{...}.md
If positional arg 1 (context_path) is provided and the file exists, read it to obtain IV/DV tables, H0/H1 hypotheses, controlled variables, and success criteria. If positional arg 2 (experiment_plan_path) is provided and exists, read the experiment plan for full methodology. Use this structured context as the foundation for Steps 1–4; skip the CWD exploration for these fields if the context file supplies them.
For each figure:
For each figure, identify all preprocessing steps that affect visual output:
Scan the codebase for plotting imports:
import matplotlib, import seaborn, import plotly, etc.pyproject.toml or requirements.txt for pinned versionsFor each figure involving a stochastic component:
random_state, seed, np.random.seed, or equivalent is documented per figureFor each figure:
For each figure, emit one yaml:figure-spec fenced block with data_source and
annotations fields capturing reproducibility metadata. Then LOAD /autoskillit:mermaid
and create a diagram showing: data availability → preprocessing → library version →
seed documentation → code reference → verdict.
# Replicative Reproducibility Spec: {System / Experiment Name}
**Lens:** Replicative Reproducibility (Replicative)
**Question:** Can the figures be reproduced from the data and code?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Reproducibility Audit Summary
| Figure | Data Available | Preprocessing Documented | Library Pinned | Seed Documented | Code Reference | Status |
|--------|---------------|--------------------------|----------------|-----------------|----------------|--------|
| fig-01 | PUBLIC | PASS | PASS | N/A | scripts/plot_main.py | OK |
| fig-02 | RESTRICTED | WARNING | FAIL | PASS | notebooks/ablation.ipynb#cell-7 | FAIL |
## Figure Specs
```yaml
# yaml:figure-spec — canonical schema (spec_version: "1.0")
figure_id: "fig-01-main-result"
figure_title: "Model A achieves state-of-the-art on all benchmarks"
spec_version: "1.0"
chart_type: "bar"
chart_type_fallback: "table"
perceptual_justification: "Bars communicate exact values; error bars show CI95 over 5 seeds."
data_source: "results/main.csv (DOI: 10.xxxx/xxxxx)"
data_mapping:
x: "benchmark"
y: "score"
color: "model"
size: ""
facet: ""
layout:
width_inches: 6.0
height_inches: 4.0
dpi: 300
stat_overlay:
type: "error_bar"
measure: "CI95"
n_seeds: 5
annotations: ["data: public (DOI); preprocessing: none; library: matplotlib==3.8.2; seeds: 0,1,2,3,4; code: scripts/plot_main.py:plot_main_result()"]
anti_patterns: []
palette: "okabe-ito"
format: "pdf"
target_dpi: 300
library: "matplotlib==3.8.2"
report_section: "Section 4 Results"
priority: "P0"
placement_tier: "main"
conflicts: []
metadata:
created_by: "vis-lens-reproducibility"
reviewed_by: ""
last_updated: "{YYYY-MM-DD}"
%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, '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 output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;
classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;
classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;
subgraph Data ["DATA AVAILABILITY"]
D1["source: {path / DOI}<br/>━━━━━━━━━━<br/>public / restricted / embargoed"]
end
subgraph Preproc ["PREPROCESSING"]
P1["bin width / window: {N}<br/>normalization: {method}<br/>━━━━━━━━━━<br/>documented: PASS / FAIL"]
end
subgraph Library ["LIBRARY VERSION"]
L1["matplotlib=={version}<br/>━━━━━━━━━━<br/>pinned: PASS / WARNING"]
end
subgraph Seeds ["RANDOM SEEDS"]
S1["seeds: {list}<br/>━━━━━━━━━━<br/>documented: PASS / FAIL / N/A"]
end
subgraph CodeRef ["CODE REFERENCE"]
C1["script: {path}:{function}<br/>━━━━━━━━━━<br/>traceable: PASS / WARNING"]
end
subgraph Verdict ["VERDICT"]
V1["{OK / WARNING / FAIL}<br/>━━━━━━━━━━<br/>{reason}"]
end
D1 --> P1
P1 --> L1
L1 --> S1
S1 --> C1
C1 --> V1
class D1 stateNode;
class P1 handler;
class L1 cli;
class S1 output;
class C1 phase;
class V1 detector;
Color Legend: | Color | Category | Description | |-------|----------|-------------| | Dark Teal | Data | Data availability status | | Orange | Preprocessing | Parameter documentation check | | Dark Blue | Library | Plotting library version pin | | Teal | Seeds | Random seed documentation | | Purple | Code Ref | Per-figure code traceability | | Red | Verdict | OK / WARNING / FAIL assessment |
---
## Pre-Diagram Checklist
Before creating the diagram, verify:
- [ ] LOADED `/autoskillit:mermaid` skill using the Skill tool
- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)
- [ ] Diagram will include a color legend table
- [ ] Every restricted/embargoed dataset is flagged as FAIL or WARNING
- [ ] Every histogram bin width and time-series smoothing window is audited
- [ ] Every stochastic figure has its seeds documented or flagged
development
Generate YAML recipes for .autoskillit/recipes/. Use when user says "make script skill", "generate script", "script a workflow", "write a script", "create a script", "new recipe", "write a pipeline", or when loaded by other skills for script formatting.
data-ai
Create Uncertainty Representation visualization planning spec showing error bar definitions, distribution-aware alternatives, and multi-seed variance protocols. Statistical lens answering "How is uncertainty honestly represented?"
data-ai
Create Temporal Dynamics visualization planning spec showing axis scaling (linear vs log), smoothing disclosure, epoch/step alignment, run aggregation (mean + variance bands), early-stopping markers, and wall-clock vs step-count x-axis. Temporal lens answering "Are training dynamics shown clearly and honestly?"
data-ai
Create Narrative Story Arc visualization planning spec showing visual consistency across the report (same color = same model everywhere), logical figure progression, redundant figure detection, and narrative dependency between figures. Narrative lens answering "Do the figures tell a coherent story across the report?"