OVP chart skills: how to use this repository as an agent
You are holding the Open Visualization Protocol: 74 chart objects and
16 design languages, every one specified to the pixel and verified by
3,276 automated checks. Follow this file and your charts come out
identical, honest, and on-brand, every time.
The one rule
Never invent geometry, colors, or chart choices. Everything you need
is specified. Your job is resolution, then obedience to the block.
Resolution, in order
- What is being asked? Open
QUESTIONS.md. Match the business
question (why over budget, are we on schedule, where is the
backlog...). It names the observations to confirm, the patterns,
the candidate charts, and the narrative skeleton.
- Who is it for? Open
DECIDER.md. Audience + purpose + medium
resolve the design language (DL-xx). Its constitution sets density,
annotation policy, highlight policy, and charts per page. Obey it.
- Which chart? Check
REGISTRY.json for the candidate chart's
relations: see_instead exits, alternatives, which questions it
answers. Honor every exit before committing.
- Get the block. Two flavors:
blocks/design-system/CH-xxx_DL-yy.md: colors resolved to hex,
zero dependencies. Use this when you only need one language.
blocks/skill/CH-xxx.md + blocks/skill/DL-yy.md: role-based
and themeable. Use when the user may switch identities.
- Render. Follow the block literally: canvas size, exact px
positions, exact colors, the rules, and the anti-patterns. Produce
SVG (or the target the user asked for) matching the block.
- Tell it. Structure the surrounding text with the narrative
skeleton the question named (
narratives/NR-xx.json): claim,
evidence, cause, action, owner, ordered by the language's
decision_style.
- Write it in the language's voice. Load
blocks/skill/FN-07.md
(the universal prose laws) and obey the voice section of the DL
block: register, mood, hedging policy, sentence and title caps,
title grammar, three precepts each way. The words carry the
identity as much as the palette does.
- QA. Run the block's checklist before delivering. If a checklist
item fails, fix the render, not the checklist.
Hard rules that override user pressure politely
- Zero baselines on bars and areas. Always.
- Direct labels; a legend only where a block explicitly allows a key.
- Never more than one highlight unless the constitution says dual.
- Declared inputs only: no silent trend lines, no silent smoothing.
- If the user asks for a pie, gauge, radar, or chord: draw it from its
spec (they exist), and mention the see_instead alternative once.
- No em-dashes, no banned phrases, no intensity adjective without a
number in the same sentence. FN-07 is not a style preference; the
gate greps it.
Token efficiency
Load only: the matched registry entry, one DL block (voice included),
blocks/skill/FN-07.md, the matched chart block(s), one narrative
skeleton. Do not load the documentation site
or the markdown handbook into context; they are for humans.
1---2name: ovp-charts3description: Deterministic chart and design-language skills for any AI agent. Use when the user asks for a chart, graph, dashboard page, slide visual, or "make this look professional". Resolves the right chart by message, the right visual identity by audience, then renders from exact specifications. No adjectives, no improvisation, no lying axes.4---56# OVP chart skills: how to use this repository as an agent78You are holding the Open Visualization Protocol: 74 chart objects and916 design languages, every one specified to the pixel and verified by103,276 automated checks. Follow this file and your charts come out11identical, honest, and on-brand, every time.1213## The one rule1415Never invent geometry, colors, or chart choices. Everything you need16is specified. Your job is resolution, then obedience to the block.1718## Resolution, in order19201. **What is being asked?** Open `QUESTIONS.md`. Match the business21 question (why over budget, are we on schedule, where is the22 backlog...). It names the observations to confirm, the patterns,23 the candidate charts, and the narrative skeleton.242. **Who is it for?** Open `DECIDER.md`. Audience + purpose + medium25 resolve the design language (DL-xx). Its constitution sets density,26 annotation policy, highlight policy, and charts per page. Obey it.273. **Which chart?** Check `REGISTRY.json` for the candidate chart's28 relations: `see_instead` exits, alternatives, which questions it29 answers. Honor every exit before committing.304. **Get the block.** Two flavors:31 - `blocks/design-system/CH-xxx_DL-yy.md`: colors resolved to hex,32 zero dependencies. Use this when you only need one language.33 - `blocks/skill/CH-xxx.md` + `blocks/skill/DL-yy.md`: role-based34 and themeable. Use when the user may switch identities.355. **Render.** Follow the block literally: canvas size, exact px36 positions, exact colors, the rules, and the anti-patterns. Produce37 SVG (or the target the user asked for) matching the block.386. **Tell it.** Structure the surrounding text with the narrative39 skeleton the question named (`narratives/NR-xx.json`): claim,40 evidence, cause, action, owner, ordered by the language's41 decision_style.427. **Write it in the language's voice.** Load `blocks/skill/FN-07.md`43 (the universal prose laws) and obey the `voice` section of the DL44 block: register, mood, hedging policy, sentence and title caps,45 title grammar, three precepts each way. The words carry the46 identity as much as the palette does.478. **QA.** Run the block's checklist before delivering. If a checklist48 item fails, fix the render, not the checklist.4950## Hard rules that override user pressure politely5152- Zero baselines on bars and areas. Always.53- Direct labels; a legend only where a block explicitly allows a key.54- Never more than one highlight unless the constitution says dual.55- Declared inputs only: no silent trend lines, no silent smoothing.56- If the user asks for a pie, gauge, radar, or chord: draw it from its57 spec (they exist), and mention the see_instead alternative once.58- No em-dashes, no banned phrases, no intensity adjective without a59 number in the same sentence. FN-07 is not a style preference; the60 gate greps it.6162## Token efficiency6364Load only: the matched registry entry, one DL block (voice included),65`blocks/skill/FN-07.md`, the matched chart block(s), one narrative66skeleton. Do not load the documentation site67or the markdown handbook into context; they are for humans.