Loading...
Loading...
Explain an algorithm, protocol, data structure, state machine, or architecture as a checked animation or still figure with `vlmkit-anim` — one JSON scene (a `kind` plus intent, never coordinates) compiled to SVG + Web Animations, a GIF, or a cropped figure, and checked against what it claims (semantic checks, `layout` geometry, a fact sheet with `--expect`, `why` for the layout's own reasons). Also draws a module map from a directory's import graph, a repository's architecture, the change map of a branch, the diff of two maps, and imports mermaid the repo already has. Use when asked to animate, illustrate, diagram, draw a dependency / module / architecture map, explain how something works step by step, or embed such a figure in docs. Not a VRT gate — `vlmkit-anim` is its own binary (`@mizchi/vlmkit-anim`).
npx skill4agent add mizchi/explainer explanatory-animation{ "format": "vlmkit-anim/scene@1", "kind": "sort", "algorithm": "bubble", "values": [5, 3, 8, 1] }kind"algorithm": "bubble""trace": ["connect", "SYN+ACK"]"deps": [["web", "api"]]explain-with-animdocs/anim-ir.mdnode_modules/@mizchi/vlmkit-anim/docs/anim-ir.mdpackages/vlmkit-anim/docs/anim-ir.mdcheckvlmkit-anim schema --kind <k>vlmkit-animvlmkit# mizchi/explainer, where the package lives
node --experimental-strip-types packages/vlmkit-anim/src/cli.ts check scene.json # from source, no build
# any other repository
npx -p @mizchi/vlmkit-anim vlmkit-anim check scene.json # or add @mizchi/vlmkit-anim as a dev dependency.pngsheetvideoevalreview --model@mizchi/vlmkit-ai| Task shape | Do this |
|---|---|
| "Animate / show step by step how X works" (a sort, search, BST, heap, DP table, graph walk, state machine, message exchange, flowchart, gantt) | Pick the |
| "Explain a concept" that no kind names | Choose the kind whose things the concept has (nodes exchanging messages → |
| "Draw a module / dependency / architecture map" | |
| "Draw this repository" | |
| "What does this branch change?" | |
| "Show what changed between two maps" | |
| "We already have a mermaid diagram" | |
| "Put it in the docs" | |
"As D2 text" / "show it in the terminal" / an existing | Not this tool: |
1. write scene.json one kind; ids ASCII, language in `label`
2. vlmkit-anim check scene.json [--expect facts.json] validate → compile → semantic checks → stats; exit 1 on ✗
3. vlmkit-anim explain scene.json the narration as a numbered list — is this the story?
4. vlmkit-anim layout scene.json texts on texts, under boxes, past the edge, lines through
labels, containers crossing — per step; exit 1 when any
5. vlmkit-anim why scene.json [--about id] (modules / diagram) what set each canvas axis, rows vs bands
and their share, what put each box on its layer, which box
a bent edge went round — read this BEFORE relabelling
6. vlmkit-anim still scene.json --out fig.svg the figure | html --out page.html | video --out demo.gif
7. vlmkit-anim review scene.json --out dir optional: a contact sheet + brief for a vision reader;
--answers scores its JSON against the geometry / the facts→check--expectlayoutexplaincheckwhyedge-24: diff → capturediagramkind: modulescheck--expectcheckimport mermaiddropped / changed:directiontonekind: vectorsidemodules"style": "forbidden"```vlm-anim<pre>| File | Verb | Consumer |
|---|---|---|
| you | the repo — this is what is edited later |
| | docs, a README, a slide |
| | a browser; |
| | a README or PR comment |
| | |
| | a vision model or a second agent, and its score |
.pngsheetvideo --out x.mp4eval.svg.gifsheet --out sheet.htmlpackages/vlmkit-anim/src/npm run buildpackages/vlmkit-animheadwhymodulesfactscheck--expect