NodemancyFree while early accessWritingDocsRoadmapChangelog
Open the map

The node format

A palace is a folder of markdown.

No database to provision and no proprietary format. Two kinds of file, one link syntax, and a folder you could read with any text editor on any machine — including one that has never heard of us.

Below: what the two file kinds look like, a form that writes one of them for you, and a recording of a batch landing in a real palace.

01 · Two kinds of file

A lens is a reading — a set of nodes plus its own vocabulary for them. It declares that vocabulary in one file called _lens.md. An entry is a node: one idea, in its own file, linking out to others. Every other file in a lens folder is an entry.

lexicon/
└── physics/
    ├── _lens.md              the taxonomy
    ├── magnetic-field.md     a node
    └── maxwells-equations.md a node

The filename is the node's slug — its permanent name, and what links resolve against. That is the whole of the identity system on disk.

The taxonomy file

Exactly three sections are read: ## Families, ## Groups, ## Relations. Anything else under a heading is inert — including a ## Facet: block, which older documentation describes and nothing has ever parsed.

---
title: Physics
authority: vault
---

## Families
<!-- key | Label | #color -->
- mechanics    | Mechanics      | #6478f5

## Groups
<!-- key | Label | #color | familyKey -->
- dynamics     | Dynamics       | #5a6fe0 | mechanics

## Relations
<!-- value | Label | directed|symmetric | #color | shape | down|invert -->
- derives-from | Derives from   | directed | #6478f5 | dag
- owns         | Owns           | directed | #c14953 | weighted | down

Four relation columns are the floor; shape and down|invert are optional and purely additive. A shape declares what kind of graph a relation forms — so the app can say these stakes total 140% rather than drawing it without comment — and it only ever produces a warning, never a refusal.

Omitting shape is always safe: an absent or unrecognised value falls back to many, the least constrained shape there is. What each one catches is in Typed relations.

A node

---
title: "Magnetic Field"
group: dynamics
kind: quantity
---

# Magnetic Field

**Definition.** The field exerting force on moving charges and currents.

**See also.** [[maxwells-equations::derives-from|Maxwell's Equations]]

title is the only required key. The definition earns its own line because it travels — it is reused as a graph label and a tooltip, so it wants to be a sentence that stands alone, and wikilinks inside it show through as noise.

One link syntax, three depths

WrittenSays
[[maxwells-equations|Maxwell's]]These two are connected. The slug resolves; the label is what a reader sees.
[[maxwells-equations::derives-from|…]]Connected and how. The relation must be one the lens declared, or the edge quietly falls back to plain.
[[atvi::owns=51|Activision Blizzard]]…and by how much. Everything after the first = is kept verbatim, so officer-of=Chairman is equally valid — a value is not always a number.
A wrong typed edge is worse than a plain one. Read it back as a sentence — subject, relation, target— and if that sentence is false, use a plain link instead of the nearest relation that nearly fits. An untyped edge says “these are connected”, which is true. A wrong typed edge asserts something specific and looks exactly like data.

The rest of it

Everything above is the shape. The two places that carry the whole field list, each written for a different moment:

Go hereFor
The paste formatEvery frontmatter key the importer reads, what it does with the ones it doesn't, and the slug rules. Written for someone holding a document that behaved unexpectedly.
Lenses, nodes and linksWhat the words mean and why the model is shaped this way. Written for someone who has not started yet.

There is also a single-file reference covering both lanes — the vault on disk and the paste box — at the level of every field and which lane needs it. It exists mainly to be handed to a model in one piece, which is the point of the bring-your-own-AI lane.

.mdDownload the full format reference

02 · A form that writes the taxonomy

Concept sketchNot shipped, and not wired to your account

Today, declaring a lens taxonomy means writing that _lens.md yourself or pasting one. This is what a form for doing it might look like — a static document sitting outside the app rather than inside it. Nothing typed into it is sent anywhere; Copy puts the generated markdown on your clipboard, and what comes out is an ordinary paste-lane document you could hand to Import yourself.

It covers the whole of §1's taxonomy file — families, groups, and typed relations including the optional shape and invert columns, with the invert checkbox locked until a shape is chosen, because that is the real constraint.

Cramped in this frame? Open it on its own page.

03 · Watching a batch land

Markdown in this format goes into a palace by being pasted. Not uploaded, not converted — pasted, fences and small talk included, because the realistic gesture is copying a whole reply out of a chat window. Below is a capture of the running application doing exactly that: one reply becoming four lenses, one of them holding the other three.

A capture of the real application, recorded by a script rather than staged — so it gets re-shot when the app changes instead of quietly going out of date.
Nothing arrives silently. The preview names every node it will create, every one it will skip as a duplicate, and every field it cannot store, before anything is written. What each warning means covers the ones worth reading twice.

You never have to write any of this by hand. Bring your own AI hands the format to a model you already pay for, and the documentation covers every other way content gets in and out.