src/autoskillit/skills_extended/vis-lens-multi-compare/SKILL.md
Create Compositional Layout visualization planning spec showing small-multiples vs overlay decisions, faceting strategy (row/col), shared-axis alignment, grouped vs stacked bars, factorial interaction plots, and panel reading order. Compositional lens answering "Which layout best reveals the comparison structure?"
npx skillsauth add talont-org/autoskillit vis-lens-multi-compareInstall 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: Compositional Primary Question: "Which layout — small multiples vs overlay — best reveals the comparison?" Focus: Small Multiples vs Overlay, Faceting Strategy (row/col), Shared-Axis Alignment, Grouped vs Stacked Bars, Factorial Interaction Plots, Panel Reading Order
/autoskillit:vis-lens-multi-compare [context_path] [experiment_plan_path]
/autoskillit:vis-lens-multi-compareNEVER:
{{AUTOSKILLIT_TEMP}}/vis-lens-multi-compare/ALWAYS:
Prefer small multiples over overlays when: num_conditions ≥ 5, OR data series overlap heavily, OR the comparison requires individual-panel annotation
Apply consistent shared-axis limits across all panels in a small-multiples layout
Enforce left-to-right, top-to-bottom panel reading order matching the experimental factor order (main factor changes columns; secondary factor changes rows)
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-multi-compare/vis_spec_multi_compare_{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-multi-compare/vis_spec_multi_compare_{...}.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.
Scan experiment plan, context file, and codebase for:
Condition and Factor Count
conditions = [...], groups = [...], factor tablesSeries Overlap
Factorial Structure
factorial, grid_searchFor each figure that shows multi-condition data, determine the layout strategy:
Overlay (single axes):
Small Multiples (faceted grid):
row_factor and col_factor explicitlyStacked vs Grouped Bars:
For small-multiples layouts:
col_factor to the main independent variable (most levels or primary interest)row_factor to the secondary independent variableFor each figure, emit one yaml:figure-spec fenced block with facet field populated.
Then LOAD /autoskillit:mermaid and create a panel-layout schematic diagram (boxes
representing panel grid with row/col labels).
# Compositional Layout Spec: {System / Experiment Name}
**Lens:** Compositional Layout (Compositional)
**Question:** Which layout — small multiples vs overlay — best reveals the comparison?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
**num_conditions detected:** {N}
## Layout Decision Summary
| Figure | num_conditions | num_factors | Strategy | row_factor | col_factor |
|--------|---------------|-------------|----------|------------|------------|
| {fig-01} | 6 | 2 | small-multiples | method | dataset |
| {fig-02} | 3 | 1 | overlay | — | — |
## Figure Specs
```yaml
# yaml:figure-spec — canonical schema (spec_version: "1.0")
figure_id: "fig-01-factorial-accuracy"
figure_title: "Accuracy Across Methods × Datasets"
spec_version: "1.0"
chart_type: "line"
chart_type_fallback: "grouped-bar"
perceptual_justification: "Small multiples prevent overlap; shared y-axis enables cross-panel comparison."
data_source: "results/accuracy.csv"
data_mapping:
x: "epoch"
y: "accuracy"
color: "variant"
size: ""
facet: "col=dataset, row=method"
layout:
width_inches: 10.0
height_inches: 6.0
dpi: 300
stat_overlay:
type: "error_bar"
measure: "CI95"
n_seeds: 5
annotations: ["shared y-axis; panel grid: 3 cols × 2 rows"]
anti_patterns: ["ap-overplotting"]
palette: "okabe-ito"
format: "pdf"
target_dpi: 300
library: "matplotlib"
report_section: "Section 4 Results"
priority: "P1"
placement_tier: "main"
conflicts: []
metadata:
created_by: "vis-lens-multi-compare"
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 Conditions ["CONDITION COUNT"]
C1["num_conditions = {N}<br/>━━━━━━━━━━<br/>{factorial: yes/no}"]
end
subgraph Strategy ["LAYOUT STRATEGY"]
S1["overlay / small-multiples<br/>━━━━━━━━━━<br/>{decision rule applied}"]
end
subgraph Facet ["FACET ASSIGNMENT"]
F1["col_factor = {X}<br/>row_factor = {Y}<br/>━━━━━━━━━━<br/>shared axes: yes/no"]
end
subgraph Verdict ["VERDICT"]
V1["{layout type}<br/>━━━━━━━━━━<br/>{reading order note}"]
end
C1 --> S1
S1 --> F1
F1 --> V1
class C1 stateNode;
class S1 cli;
class F1 handler;
class V1 output;
Color Legend: | Color | Category | Description | |-------|----------|-------------| | Dark Teal | Condition Count | Number of conditions and factorial structure | | Dark Blue | Strategy | Overlay vs small-multiples decision | | Orange | Facet Assignment | Row/col factor and shared-axis configuration | | Teal | Verdict | Final layout recommendation |
---
## 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 ≥ 4 conditions has been assigned a small-multiples layout
- [ ] Every `yaml:figure-spec` has the `facet` field filled (or explicitly empty for overlays)
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?"