2.1 KiB
2.1 KiB
Schema — the rules of this map
The closed set of node types, the labels they carry, and the naming they follow. When practice and this file disagree, reconcile the same day — schema drift is how maps rot.
Node types
type: |
Lives at | Carries |
|---|---|---|
| object | objects/<cluster>/<slug>.md |
one noun: why / shape / connected to / hits |
| process | processes/<slug>.md |
one movement: input → movement → output |
That is the whole set. effects/CONTEXT.md is an index, not a node type — it holds no
facts of its own, only pointers into the two types above.
Frontmatter
Object cards:
type: object
cluster: identity | org | gradebook | money | trading | content
universe: live | leftover | ghost
status: stub | verified | stale
entity: app/models/order.rb # the file that owns the fact
Process cards add consumes: and produces: as relative links to object cards. Those
links draw the graph on their own — do not maintain a separate edge list.
Label rules
universe: liveis the default.leftoverandghostmust say why in the card body.status: verifiedrequires a date, a commit, and citations in the card. A card with nopath:linemay not beverified.status: staleis allowed and preferred over a confident wrong claim.entity:is one path. If a noun is owned by several files, the card's Shape section lists them;entity:names the primary one.
Naming
- Slugs: kebab-case, singular, matching the product word where it differs from the class
name (
grade-level.mdownsGrade). - Clusters are the six above. Adding a seventh requires three nouns that genuinely do not fit — not one that is merely new.
_meta/and_templates/hold rules and blanks. Underscore = about the map, not of it.AGENTS.mdandrouting.mdare generated fromCLAUDE.mdby_meta/sync-twins.sh. Never hand-edited.
Citation rule
Code is the source of truth. Cite path:line. If a comment and the code disagree, the
code wins and the card says so. Never paste behaviour into a card that the source
already states — point at it.