Entity Identity Protocol
Search before create. Stable identity lives in canonical slugs plus aliases, not in whatever name appeared in the latest source.
Entity identity prevents the wiki from splitting one person/tool/project across multiple pages. Duplicate pages are worse than missing pages because they make future answers confidently incomplete. Source: AGENTS.md Entity Identity Protocol
Before Creating an Entity Page
- Search exact name with
qmd search "{name}". - Search likely variants: handles, emails, company suffixes, product aliases, old names.
- Search frontmatter aliases with
rg "aliases:|{name}" wiki. - Check the target directory for nearby slugs.
- Decide whether the entity deserves a standalone page, a ledger row, or a section using Wiki Brain Operating Model.
- If a match exists, update the survivor and add the new alias.
- If no match exists, create a page through Filing Decision Tree.
Canonical Slugs
Use kebab-case.md. Prefer stable identity over presentation:
- person:
first-last.md, disambiguated when needed - company/project/tool: current canonical public name
- collisions: add context, for example
david-liu-crustdata.md
Wikilinks should use the canonical page title or slug without directory prefix.
Aliases
Aliases belong in frontmatter. Include:
- nicknames
- handles
- email addresses
- old product names
- company abbreviations
- capitalization variants that appear in sources
Aliases are required for person pages and strongly recommended for projects/tools with prior names.
Merge Protocol
When two pages are the same entity:
- Pick the more complete page as the survivor.
- Merge compiled truth into one coherent synthesis.
- Merge timeline entries in chronological order.
- Merge aliases and related links.
- Update all wikilinks from duplicate to survivor.
- Add redirects for retired slugs when lookup value remains.
- Delete or fold the duplicate only after links and redirects are updated.
- Rebuild index, redirect index, and qmd.
- Refresh packs, capsules, registry output, or review ledgers when the entity was part of a generated surface; use Generated Surface Contract.
- Log the merge.
Use a commit message like merge: duplicate-slug into survivor-slug when committing.
Shape Decision
Not every recurring name deserves a full article. Use the smallest durable shape that future agents can find:
| Signal | Shape |
|---|---|
| Kevin works with, builds on, or repeatedly references the entity | Standalone page |
| Entity appears across multiple sources but has little narrative context | Ledger row with aliases |
| Entity only matters as evidence for another topic | Section or timeline entry on the stronger page |
| Old page was folded into a stronger page | Redirect plus alias on the survivor |
Notability Gate
Create a dedicated entity page when one of these is true:
- Kevin directly works with or cares about the entity.
- The entity appears across two or more sources.
- The entity is central to a project, tool, decision, or philosophy page.
- Future agents are likely to search for it.
Otherwise, link the mention if a page exists, or leave it as plain text until it recurs.
Timeline
- 2026-07-01 | Added generated-surface refresh to the merge protocol for entities referenced by packs, capsules, registry output, or ledgers. Source: User request, 2026-07-01
- 2026-07-01 | Added shape decisions, redirect preservation, and the explicit handoff from identity search to Wiki Brain Operating Model and Filing Decision Tree. Source: User request, 2026-07-01
- 2026-06-18 | Expanded entity protocol with alias search, canonical slug rules, merge process, and notability gate. Source: User request, 2026-06-18; AGENTS.md
- 2026-04-12 | Entity Identity Protocol adopted from GBrain upgrade. Source: Wiki Log
- 2026-05-31 | Meta page formalized. Source: AGENTS.md