src/autoskillit/skills_extended/vis-lens-figure-table/SKILL.md
Create Decisional Layout visualization planning spec showing figure-vs-table selection heuristics: tables win for exact values, ≤5 items, leaderboards, and ablation matrices; figures win for trends, distributions, and spatial patterns; borderline cases recommend both. Decisional lens answering "Should this result be a figure or a table?"
npx skillsauth add talont-org/autoskillit vis-lens-figure-tableInstall 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: Decisional Primary Question: "Should this result be a figure or a table?" Focus: Figure vs Table Selection Heuristics — Tables win: exact values, ≤5 items, leaderboards, ablation matrices; Figures win: trends, distributions, spatial patterns; Borderline → recommend both
/autoskillit:vis-lens-figure-table [context_path] [experiment_plan_path]
/autoskillit:vis-lens-figure-tableNEVER:
{{AUTOSKILLIT_TEMP}}/vis-lens-figure-table/ALWAYS:
Apply the decision rule below to every result slot in the experiment plan
When the verdict is BOTH, recommend the table in the main paper and the figure in the appendix (or vice versa depending on the primary audience)
Justify borderline decisions with explicit reference to the decision rule criteria
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-figure-table/vis_spec_figure_table_{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-figure-table/vis_spec_figure_table_{...}.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.
Enumerate every metric, experiment result, or finding that needs to be communicated. For each result slot, classify it as one of:
| Signal | Verdict | |--------|---------| | Exact values needed OR ≤5 items OR leaderboard OR ablation matrix | TABLE | | Trend over time/epochs OR distribution shape OR spatial pattern | FIGURE | | Statistical comparison with CI bands | FIGURE | | Ranking where exact delta matters AND visual trend also matters | BOTH |
For every BOTH verdict:
For FIGURE and BOTH verdicts only (TABLE-only results produce no figure-spec).
Then LOAD /autoskillit:mermaid and create a decision-tree diagram showing
result-type → verdict flow for all result slots.
# Decisional Layout Spec: {System / Experiment Name}
**Lens:** Decisional Layout (Decisional)
**Question:** Should this result be a figure or a table?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Layout Decision Summary
| Result Slot | Type | Verdict | Justification |
|-------------|------|---------|---------------|
| {main-results} | exact-value query | TABLE | Leaderboard — readers need precise numbers |
| {loss-curve} | trend/curve | FIGURE | Training trajectory is the message |
| {ablation} | ablation matrix | TABLE | Component grid; exact deltas matter |
| {distribution} | distribution | FIGURE | Shape is the message |
| {ranking-with-ci} | comparison/ranking | BOTH | Exact deltas + visual CI bands |
## Figure Specs
```yaml
# yaml:figure-spec — canonical schema (spec_version: "1.0")
figure_id: "fig-loss-curve"
figure_title: "Training Loss Trajectory"
spec_version: "1.0"
chart_type: "line"
chart_type_fallback: "scatter"
perceptual_justification: "Trend over steps is the message; table would obscure the trajectory shape."
data_source: "results/loss_curves.csv"
data_mapping:
x: "global_step"
y: "train_loss"
color: "variant"
size: ""
facet: ""
layout:
width_inches: 6.0
height_inches: 4.0
dpi: 300
stat_overlay:
type: "band"
measure: "CI95"
n_seeds: 5
annotations: ["FIGURE verdict: trend/curve; TABLE alternative in appendix for exact values"]
anti_patterns: []
palette: "okabe-ito"
format: "pdf"
target_dpi: 300
library: "matplotlib"
report_section: "Section 3 Training"
priority: "P1"
placement_tier: "main"
conflicts: []
metadata:
created_by: "vis-lens-figure-table"
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 ResultType ["RESULT TYPE"]
RT["exact-value / trend / distribution<br/>comparison / spatial / ablation<br/>━━━━━━━━━━<br/>classified from experiment plan"]
end
subgraph Rule ["DECISION RULE"]
DR["TABLE: exact / ≤5 / leaderboard / ablation<br/>FIGURE: trend / distribution / spatial<br/>BOTH: ranking + visual CI<br/>━━━━━━━━━━<br/>applied per result slot"]
end
subgraph Verdict ["VERDICT"]
V1["TABLE / FIGURE / BOTH<br/>━━━━━━━━━━<br/>{justification}"]
end
subgraph Placement ["PLACEMENT"]
PL["BOTH → TABLE: main paper<br/>BOTH → FIGURE: appendix<br/>━━━━━━━━━━<br/>primary audience considered"]
end
RT --> DR
DR --> V1
V1 --> PL
class RT stateNode;
class DR cli;
class V1 output;
class PL handler;
Color Legend: | Color | Category | Description | |-------|----------|-------------| | Dark Teal | Result Type | Classification of the result slot | | Dark Blue | Decision Rule | Rule application per slot | | Teal | Verdict | TABLE / FIGURE / BOTH | | Orange | Placement | Main paper vs appendix 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 result slot has been classified and assigned a verdict
- [ ] Every BOTH verdict has a documented placement recommendation
- [ ] No `yaml:figure-spec` emitted for TABLE-only result slots
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?"