-
Read the current glossary. Open docs/glossary.md and check whether the term is already present.
- If present: this is an update. Read the existing entry carefully; preserve its structure; change only what needs changing.
- If absent: this is an addition.
-
Determine alphabetical position. The glossary is sorted alphabetically by headword. Ignore leading articles ("the", "a"). Locate the correct insertion point.
-
Write or update the entry. Format:
**Term.** One-sentence definition that could stand alone. Follow-up sentences or a short paragraph explaining nuance, origin, or relationship to other terms. Link to the relevant ADR or architecture doc on the first substantive cross-reference.
- The term appears in bold, followed by a period and a space. No headings per term — the format is a flowing list.
- The first sentence is self-contained; it is sufficient as a quick-reference answer.
- Subsequent sentences add nuance, attribution, or relationship to other glossary terms.
- If the term is borrowed from another system (seL4, Hubris, POSIX), note the attribution.
-
Insert alphabetically. Place the entry between the entries that bracket it alphabetically. The glossary uses --- separators only between groups of entries (e.g., at the top); do not insert or remove --- while adding an entry.
-
Cross-link outward. If the new term appears in one or more existing docs, add links from those docs to the glossary entry on first use: [term](../glossary.md) or equivalent relative path.
-
Cross-link inward. If the new entry references other glossary terms ("see also capability"), link to those entries within the glossary itself.
-
Commit per commit-style.md:
- Message:
docs(glossary): add <term> or docs(glossary): refine <term>.
- Body: optional; the diff is usually self-explanatory for single-term changes.