src/autoskillit/skills_extended/vis-lens-caption-annot/SKILL.md
Create Annotative Caption visualization planning spec showing declarative titles, axis labels with units, error definition in legend, baseline references, sample sizes, and venue-specific caption format. Annotative lens answering "Are figure captions and axis labels fully self-contained?"
npx skillsauth add talont-org/autoskillit vis-lens-caption-annotInstall 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: Annotative Primary Question: "Are figure captions and axis labels fully self-contained?" Focus: Declarative titles (state the result, not "Figure N: Results"), axis labels with units, error definition in legend (CI95 / std / SEM), baseline references cited in caption, sample sizes disclosed per condition, venue-specific caption format
/autoskillit:vis-lens-caption-annot [context_path] [experiment_plan_path]
/autoskillit:vis-lens-caption-annotNEVER:
{{AUTOSKILLIT_TEMP}}/vis-lens-caption-annot/ALWAYS:
Check every figure title for declarative language
Verify every axis label carries a unit or categorical scale description
Confirm error bars / shaded regions are defined (CI95, ±1 std, IQR, etc.) in the legend or caption
Flag any figure that references a baseline without naming it explicitly
Report sample size per plotted condition (n=X seeds, N=X subjects, etc.)
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-caption-annot/vis_spec_caption_annot_{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-caption-annot/vis_spec_caption_annot_{...}.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 every figure in the experiment plan or codebase:
For every axis in every figure:
For every figure that shows error bars, shaded regions, or confidence intervals:
For each figure, emit one yaml:figure-spec fenced block with the annotations field
describing the caption audit result. Then LOAD /autoskillit:mermaid and create a diagram
showing: title audit → axis audit → error definition → baseline/n disclosure → verdict.
# Annotative Caption Spec: {System / Experiment Name}
**Lens:** Annotative Caption (Annotative)
**Question:** Are figure captions and axis labels fully self-contained?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Caption Audit Summary
| Figure | Declarative Title | Axis Units | Error Defined | Baseline Named | Sample n | Status |
|--------|-------------------|-----------|---------------|----------------|----------|--------|
| fig-01 | FAIL (descriptive) | PASS | PASS | N/A | PASS | FAIL |
| fig-02 | PASS | PASS | PASS | PASS | PASS | OK |
## Figure Specs
```yaml
# yaml:figure-spec — canonical schema (spec_version: "1.0")
figure_id: "fig-02-ablation-comparison"
figure_title: "Removing component X degrades accuracy by 8 pp"
spec_version: "1.0"
chart_type: "bar"
chart_type_fallback: "table"
perceptual_justification: "Grouped bar chart shows per-component contribution directly."
data_source: "results/ablation.csv"
data_mapping:
x: "variant"
y: "accuracy_delta_pp"
color: "component"
size: ""
facet: ""
layout:
width_inches: 5.0
height_inches: 3.5
dpi: 300
stat_overlay:
type: "error_bar"
measure: "CI95"
n_seeds: 5
annotations: ["Declarative title PASS; axis labels with units PASS; CI95 defined in legend PASS; n=5 seeds per condition PASS"]
anti_patterns: []
palette: "okabe-ito"
format: "pdf"
target_dpi: 300
library: "matplotlib"
report_section: "Section 5 Ablation"
priority: "P1"
placement_tier: "main"
conflicts: []
metadata:
created_by: "vis-lens-caption-annot"
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;
subgraph Titles ["TITLE AUDIT"]
T1["title = {text}<br/>━━━━━━━━━━<br/>declarative: PASS / FAIL"]
end
subgraph Axes ["AXIS LABEL AUDIT"]
A1["x-axis: {label} ({unit})<br/>y-axis: {label} ({unit})<br/>━━━━━━━━━━<br/>units present: PASS / FAIL"]
end
subgraph Errors ["ERROR DEFINITION"]
E1["error type: {CI95/std/SEM}<br/>━━━━━━━━━━<br/>defined in legend: PASS / FAIL"]
end
subgraph Disclosure ["BASELINE & SAMPLE n"]
D1["baseline: {name}<br/>n per condition: {N}<br/>━━━━━━━━━━<br/>disclosed: PASS / FAIL"]
end
subgraph Verdict ["VERDICT"]
V1["{OK / WARNING / FAIL}<br/>━━━━━━━━━━<br/>{reason}"]
end
T1 --> A1
A1 --> E1
E1 --> D1
D1 --> V1
class T1 stateNode;
class A1 handler;
class E1 cli;
class D1 output;
class V1 detector;
Color Legend: | Color | Category | Description | |-------|----------|-------------| | Dark Teal | Title | Declarative title audit | | Orange | Axes | Axis label and unit audit | | Dark Blue | Error | Error bar definition check | | Teal | Disclosure | Baseline and sample size disclosure | | 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 figure with a non-declarative title is flagged as FAIL
- [ ] Every axis missing units on a continuous quantity is flagged as WARNING
- [ ] Every figure with undefined error bars is flagged as FAIL
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?"