# Glossary Entry Protocol

This file states the protocol AI MUST follow when proposing any change to the Project Glossary — adding a new entry, removing one, or refining one. All changes MUST be recorded only after explicit user approval.

The Project Glossary table lives in `CLAUDE.md` and has three columns:

**Term** — the term being defined.

**Meaning** — a plain-language definition of what the term means in this project.

**Anti-meanings** — short phrases naming what the term does NOT mean in this project. Optional.

## Adding a New Entry

When AI proposes a new entry, AI MUST:

1. Verify the term is not already defined in the glossary table. If a row with the same term already exists, AI MUST NOT propose a duplicate; instead, AI MUST surface the existing entry and ask whether to refine it.

2. Draft the entry by filling in the three columns described above. The **Anti-meanings** column SHOULD be populated when the term's project meaning collides with a strongly entrenched default reading.

3. Walk the closure check. For every project-specific term referenced inside the entry — including in any anti-meaning — verify that the term is itself a defined glossary entry or a word whose general meaning is uncontested in this project. If any reference is unresolved, AI MUST propose adding that reference as its own entry before recording the original.

4. Walk the circularity check. Follow the chain of references in the proposed entry and verify that every path ends in an external term (general English, uncontested technical vocabulary, or a concrete project concept). If the chain loops back to the term being defined, AI MUST refuse to record the entry and ask the user to rephrase the definition in concrete terms.

5. Present the drafted entry, the closure check result, and the circularity check result to the user.

6. Record the entry in the glossary table only after the user's explicit approval.

## Removing an Entry

When AI proposes removing an entry, AI MUST:

1. Surface the entry verbatim — its Term, Meaning, and Anti-meanings — so the user can confirm what is being removed.

2. Find every other entry in the glossary table that references the term being removed — in any Meaning or Anti-meanings cell. If any referencing entries are found, AI MUST refuse the removal and surface the list of referencing entries. The user must remove or refine those entries first (each subject to this same protocol).

3. Remove the entry from the glossary table only after the user's explicit approval.

## Refining an Existing Entry

Refining an entry is treated as a Remove followed by an Add, executed as a single transaction with one user approval at the end. When AI proposes a refinement, AI MUST:

1. Surface the existing entry verbatim and the proposed refinement side by side.

2. Apply the referencing-entries check from Step 2 of **Removing an Entry**. If any other entry references the term being refined, AI MUST refuse the refinement and surface the list of referencing entries.

3. Apply the closure check and the circularity check from Steps 3 and 4 of **Adding a New Entry** to the refined entry.

4. Present the diff, the referencing-entries result, the closure check result, and the circularity check result to the user.

5. Replace the entry with the refined version only after the user's explicit approval.