Which unit kind? — the decision guide

File every atomic note as the kind it *is* — not the kind that feels convenient. The most common mistake is treating entity as a catch-all: entities are reserved for concrete NAMED things (a person, a piece of software, a place, an organisation, a file format). An idea is never an entity. A table of values is never an entity.

§ 1The decision path

A piece of knowledgeA dated finding from aninvestigation, that can gostale?researchA repeatabletask, done insteps?processA concrete thingwith a name of itsown?entityA value,constant, orlookup table?factJust a wordneeding adefinition?term (glossary)conceptyesnoyesnoyesnoyesnoyesno

§ 2By symptom

The note is…KindTest
A way of thinking, a pattern, a mental model, an explanation of *why*conceptYou'd say "the reader must understand this"
A dated finding from an investigation — versions, API specifics, a verified gotcharesearchIt answers a question you investigated and could go stale when the subject moves
A person, an organisation, a tool, an application, a file format, a placeentityIt has a proper name and you could point at it; a kind from schema/kinds.wcl fits
A default value, a limit, a table of options, a version matrixfactNobody argues with it — you'd cite it, not explain it
A task someone performs: install, upgrade, review, publishprocessIt has steps in an order and a way to verify it worked
A curated grouping that arranges other unitsindexIt holds no knowledge of its own — only related links
One word or phrase and its meaningtermOne sentence covers it; it needs no page of its own
Code or commands that illustrate another unitexampleIt makes no sense without the unit it belongs to (unit = <id>)

§ 3Wrong vs right

Tempting (wrong)CorrectWhy
entity fast_forward for Git's fast-forward mergeconcept fast_forwardIt's a behaviour to understand, not a named thing you can point at
entity default_ports holding a port tablefact default_ports with a table bodyValues belong in facts; a reference table is a fact whose body is a table
concept installing describing install stepsprocess installing with real stepsSteps in an order are a process — a concept can't be verified or followed
fact git describing what Git isentity git { kind = :software }A named piece of software is exactly what entities are for
One giant concept overview covering everythingSeveral atomic units linked via relatedOne idea per unit — split until each note holds exactly one

Two follow-up rules. First: when a note seems to be two kinds at once, it is two notes — split it and link them with related. Second: kind on an entity comes from the closed vocabulary in schema/kinds.wcl; if no kind fits and you cannot justify adding one, that is the format telling you the note is not an entity.

§ 4Examples

§ 4.1Misfiled as an entity — and the fix

The classic mistake: an idea filed as an entity. The kind field has no honest answer, which is the tell.

wcl
// WRONG — a behaviour isn't a named thing; no EntityKind fits:
entity fast_forward {
  name = "Fast-forward merge"
  kind = :software            // a lie — and the closest kind available
}

// RIGHT — it's an idea to understand:
concept fast_forward {
  name    = "Fast-forward merge"
  summary = "Advancing a branch pointer when history hasn't diverged."
  body { p "When the target already contains the source's history, Git just moves the pointer." }
}

Expected: The wrong form either fails wcl check (no plausible kind) or reads as a lie; the concept form checks clean and files where readers look for ideas.