Draws static SVG figures for lessons, READMEs and manuals in the AI Engineering from Scratch look: paper panel, blueprint accent, nine figure kinds, fixed hue meanings, eight arrow styles, and checks for legibility and markup. Trigger phrases: "draw a figure", "blueprint figure", "sequence figure", "state machine figure", "figure for this lesson", "add a diagram to the manual".
84%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
This skill draws one static SVG figure that explains one mechanism of a real system. The figure uses the real names from the system: ids, field names, method names, status codes and sequence numbers. It sits on a light paper panel and uses a small set of hues with fixed meanings. It stays readable at 640 units wide on screen and in print. Claude, Cursor, Codex, OpenClaw, Hermes, or any agent that reads SKILL.md can use it. The sibling skill course-style holds the full course tokens. This skill copies the tokens it needs, so it works alone.
motion-figure.isometric-explainer.templates/figure.mjs. Do not edit the SVG by hand.references/checks.md. Fix every finding.| Kind | Use it for |
|---|---|
sequence | parties on lifelines, time running down, numbered exchanges |
structure | the anatomy of one record, object, or schema |
flow | stages that data passes through, with who writes and who reads |
comparison | two answers to one question, side by side |
timeline | tracks over a numbered axis such as commit sequence or time |
tree | ownership, containment, or delegation |
state | a state machine with its transitions |
decision | where something fails and what each outcome means |
layers | a stack of layers with the parts each one owns |
Layout numbers for each kind are in references/kinds.md.
Ten hues: grey, blue, teal, violet, green, amber, plum, olive, indigo, rose. Each hue has an ink and a fill token. A hue means the same thing in every figure of one set.
Four meanings are fixed:
| Hue | Fixed meaning |
|---|---|
rose | failure: errors, crashes, aborts, lost work |
grey | outside the subject: the host, the operator, out of scope |
amber | lifecycle: tasks, phases, state machines |
teal | durable state: storage and committed records |
Assign the other six hues once per set and write the table in the page or the manual front matter.
Write every colour as var(--m-<token>, <light hex>), for example var(--m-rose-ink, #b0344d). The host page supplies dark values. A README shows the light hex. All light and dark values are in references/grammar.md.
| Style | Means |
|---|---|
| solid ink | a call or request |
| dashed ink | a reply |
| solid teal | a durable write |
| dashed amber | a state change |
| solid plum | a model call or compute |
| dashed olive | an effect outside the system |
| dotted indigo | a stream or an event |
| dashed rose | a failure |
5 4. Dotted is 1.5 3.5 with round caps.<figure-id>-head-<hue>.class="m-serif" and font-family="Source Serif 4, Georgia, serif". Then the figure looks the same inline on any page, in a README image, and in a manual.class="m-knock".characters × size × 0.6, serif width is characters × size × 0.54.viewBox="0 0 640 H" with H at most 760, role="img", aria-labelledby="<id>-title <id>-desc".font-family="JetBrains Mono, ui-monospace, monospace" and fill="var(--m-ink, #1a1a1a)". Serif lines set their own font-family as above.<title> and a <desc> of at least 40 characters, as direct children of the root.desc names every part and every exchange in reading order.id starts with the figure id, such as fig-4-1-head-amber.fig-4-1.references/checks.md.style, no scripts, no event handlers, no links, no images.transform only as translate() on <g>.<text> element per line of text.Put the caption in the page around the SVG. Do not put it inside the SVG.
In a manual, declare the figure in a fenced block:
```figure
id: fig-4-1
kind: state
title: the task lifecycle
claim: A task ends in one of four terminal states and never leaves one.
caption: Read left to right. Dashed borders are interrupted states. From capture/out/task-states.txt.
```In a lesson or README, put the SVG in an image tag or inline, then the caption as a paragraph under it.
figures/src/fig-4-1.js and figures/fig-4-1.svg.viewBox width is 640 and height is at most 760.role="img", aria-labelledby, <title> and a <desc> of 40 or more characters are present.id starts with the figure id.var(--m-<token>, <light hex>) with the correct hex.font-family attribute and the root has the ink fill, so the figure needs no host stylesheet.style, script, link, image, or transform other than translate() on <g>.references/kinds.md: layout numbers for each of the nine kinds, and figure 0.1.references/grammar.md: light and dark tokens, hue meanings, arrow strokes, markers, text sizes and metrics, shapes, optional beats.references/checks.md: every check with its test, the allowed elements and attributes, and the caption rules.templates/figure.mjs: a self-contained Node script with a small figure kit and one sequence figure. Run node templates/figure.mjs out.svg to write the SVG, or omit the path to print it.Inside the AI Engineering from Scratch repo, also see manuals/_shared/figkit.js (the full kit), manuals/_shared/templates/ (one script per kind), and scripts/audit_manuals.js (the figure lint).
rohitg00/ai-engineering-from-scratch
3f9715c
Also appears in
since Oct 16, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.