kb-glossary · git:20260920.fda540f · 2026-09-20 · sha256 8a88925f96252f11

kb-glossary git:20260920.fda540fA

Immutable. This exact content is served forever at /api/v1/blob/8a88925f96252f11.

---
name: kb-glossary
description: "This skill should be used when a session settles, sharpens, or disputes the meaning of an internal term: write it into knowledge-base/project/glossary.md as a pointer to its definer."
---

<!-- Inspired by mattpocock/skills/skills/engineering/domain-modeling/SKILL.md (MIT, Copyright (c) 2026 Matt Pocock). -->

# KB Glossary — the write side of the vocabulary

Reading `knowledge-base/project/glossary.md` is a one-line habit that several skills already carry.
This skill is the other half: the discipline that **changes** the glossary at the moment a session
works out what a word means, so the next session inherits the answer instead of re-deriving it.

The format contract is [glossary-format.md](./references/glossary-format.md) — entry shape, the four
admission tests, the pointer-not-restatement rule, and the miss path. Read it before writing an
entry; do not re-derive the rules from the entries already in the file.

## When to self-invoke

Invoke this skill in the same turn, without being asked by name, when any of these happens:

- A term the session is using **conflicts with an existing entry**. Say so immediately, quote both
  readings, and ask which one holds.
- A term is **fuzzy or overloaded** and the work is about to commit it to a file. Propose one precise
  term and name what the others would have meant.
- The code and the conversation **disagree** about a word. Surface the contradiction rather than
  picking the reading that makes the sentence work.
- A session **settles** a word — in a brainstorm, a plan review, a compound pass, an ADR argument.
  That is the moment the entry gets written.
- An artifact had to **hedge** on an ambiguous term because the glossary had no entry (the miss path).
  The hedge stays in the artifact; the candidate entry comes here.

Do **not** invoke it to look a word up, to restate a definition that already exists elsewhere, or to
record a word that only one skill uses. Reading is the consumers' pointer, not this skill.

## The write discipline

1. **Write inline, not later.** Update the glossary in the turn the word is settled. A batched entry
   is an entry that never lands, and the reasoning that justified it is gone by then.
2. **Point, never paraphrase.** Find the file that owns the meaning and give its path with an anchor.
   If nothing owns it, the fix is a definer in the file that owns the behaviour — then an entry
   pointing at it.
3. **Apply all four admission tests** from the format contract. Three of four is a candidate; record
   the hedge in the artifact and leave the glossary alone.
4. **Disambiguate rather than choose** when a word genuinely carries several senses here. One body per
   sense, each with its own path. A single-sense entry for an overloaded word reads as settled and
   sends the next reader to the wrong file.
5. **Steer with `_Avoid_`.** When two words compete for one concept, pick one and list the loser. A
   name that shortens in speech back into the banned word has not solved anything.
6. **Move `last_reviewed`** whenever the review happens, even when it changed nothing — otherwise an
   old date cannot be told apart from an unread file.

## Scope — it is a glossary and nothing else

The artifact holds terms and the paths that settle them. It is not a spec, not a design note, not an
implementation record, and not scratch space for anything that fitted nowhere else. Every one of
those grows the file an agent loads at decision time and none of them makes a word mean more.

Two neighbours it is explicitly not, and the glossary itself says so by path: the public marketing
glossary page, and the founder-facing register in `knowledge-base/marketing/brand-guide.md` §Voice. Never add an internal machinery noun to either.

## Siblings

- A **rejected concept** is not a term. Its record is the no-list, and the write contract for that is
  [rejected-request-register.md](./references/rejected-request-register.md).
- `soleur:operator-rephrase` reads the same entries in the opposite direction — as the stop-list of
  internal words that must be translated before the founder sees them.