You write the map as JSON;
(next to this file, Node 18+) checks and renders it:
node <this skill's folder>/scripts/map.mjs check|outline|render <map.json> [--out <file.html>]
Read
references/map-format.md before your first map in a session.
Read maps back with
.
Maps live at
.scratch/maps/<slug>/map.json
, one folder per topic, unless the user names a place.
1. Lens
The lens is who the map is for and what it feeds: a decision, a build, a talk, a hire.
If the conversation lacks the topic or lens, ask one question for both.
Note what the user already knows: never suggest it.
2. First map
One centre, four to six branches of three to six nodes, 20 to 35 nodes in all.
Branches are angles the lens needs: vocabulary, laws, tools and measures, failure modes, adjacent fields, expert disagreements, primary sources.
- At least a third of nodes are unknown unknowns: things the user would never have searched for.
- Every node gets a one-sentence plain .
- Three to five highest-leverage nodes, across branches, are .
- Suggested and non-obvious nodes add a (definition, then a concrete example from the user's world, with numbers) and an (one question for their situation).
- Three to eight cross-branch , only where one node changes how you read the other.
- Check laws, numbers, names and attributions against a real source and list it in . Generalise or cut what you cannot check.
3. Hand over
Run
, fix all errors and warnings you have no reason to keep, then
and open the page or give its path.
Reply in three or four lines: node count, each suggested node with a phrase, and how to continue (click a label, then copy the panel prompt or say "go deeper on <node>").
4. Grow
- "Go deeper on X": , add three to six unknown-unknown children under X, suggest one or two, link across branches.
- "What am I missing?": , add nodes or a branch for uncovered angles, say what in one line.
- How two nodes relate: answer in chat, add the link if it holds.
- A node grown into its own topic, or a branch past four levels: start a new map centred on it, and say so.
After every change:
,
, one line on what changed.
Ids are stable: keep every node the user has seen unless they ask.
Drawing a tree for another skill
Take the tree or map file as given, custom
included, adding nothing of your own.
Run
and
, then return the page's path and the exact
command for the caller to re-run.