Column Annotations
Labels that ride their columns, not floats on top.
Value labels, callouts, and brackets anchored directly to bar-chart columns, rising from the column tops in narration order and holding still while the data is discussed. At most half the columns get annotated.

Install it in 3 steps
No sign-up. No CLI tools. Pick your AI, copy one line, paste it over.
Prefer doing it yourself? Buy the skill ($4.99), download the ZIP from your checkout confirmation, unzip it into the directory shown above, restart your AI session — same result. Already bought it? Your AI assistant can download it for you.
What’s inside
One SKILL.md (the playbook) + one starter template. A preview:
Column Annotations
When to use
- A bar chart has 4–12 columns and the viewer needs to know which bars matter and why, not just that bars exist
- A column's value needs a label that sits on the column itself rather than in a legend or a caption below the chart
- Two or three columns deserve a bracket or grouping ("pre-launch vs post-launch") that the bare chart does not show
- A ranking or comparison chart needs callouts on the winner, the loser, and the surprise — without turning the chart into a wall of text
- A chart will be discussed bar-by-bar in narration, and each annotation should arrive with its bar's turn
Workflow
- Pick the annotated columns (input: chart → output: annotated column list)
Annotate at most half the columns — a chart where every bar carries a label is a spreadsheet with extra steps. Choose the columns the narration actually names: the max, the min, the turning point, the one that breaks the pattern. For each, write the annotation in ≤6 words. If an annotation needs a full sentence, it belongs in narration, not on the chart. - Choose the annotation type per column (input: annotated columns → output: type assignment)
Three types, each with one job: value label (the number, sitting just above the column top), callout (a short line of text + a thin leader line pointing at a specific part of the column), bracket (a horizontal bracket spanning 2+ adjacent columns with a group label above it). Value labels answer "how much"; callouts answer "why this one"; brackets answer "these belong together." Do not use two types on the same column — a labeled, called-out, bracketed column is visual shouting. - Anchor each annotation to its column (input: chart + annotations → output: anchor positions)
Every annotation is anchored to a fixed point on its column: value labels to the column top-center, callouts to the exact data point they describe (top, midpoint, or a segment inside a stacked column), brackets to the outer edges of the first and last columns in the group. Anchors move with the chart: if the chart rescales or a column grows during an animated reveal, the annotation rides its anchor point. An annotation that floats free of its column is decoration; an anchored one is information.
Template preview
Column Annotations — Production Template
One chart, one generation of annotations at a time. Fill in per annotation set.
Chart: {chart title / file} — Columns: {n} — Annotated: {≤ half}
Accent color (distinct from all column colors): {color} | Annotation type size: {axis label size + 2 px}
Annotations (in narration order, not left-to-right)
Bracket groups: "{group label}" spans columns {first} → {last}
Entrance
- Rise: from {~16 px} below, {0.3–0.4 s} ease-out, stagger {120–180 ms} in narration order
- Callout leader line: draws {0.2 s} after text lands, from text toward column
- Bracket: extends from center outward {0.3 s}, then group label fades in


