Lock the Surface Operator vocabulary: glossary.md
RFD-AGT-002 ratified one primitive (the SurfaceCapabilityContract / Page Card) and a closed verb universe for Atlas. Decision D-6 requires that vocabulary be locked in one canonical glossary before the build stories fork — so product prose, code symbols, and schema never drift to a third name.
What this Story is
A documentation-only deliverable: a new canonical glossary that locks the two name layers for the agentic-interaction substrate — the product layer (Page Card, Page Context, Product Catalog, Surface Operator, Agent Dock) versus the code layer (SurfaceCapabilityContract, ListingSurface/DetailSurface/SummarySurface, navigate_to/set_view/propose_operation) — plus the closed banned-alias list (assistant, bot, Orient, Atlas Presence Bar, app CCB, and the retired primitive/state/catalog names).
Why it matters
A naming substrate with three words for one concept becomes a second authority map. RFD-AGT-002 D-1 ratified exactly one primitive; D-6 locks its names so the check:terms lint (a separate Chore) can reject zombie aliases in code and schema, not just prose. This glossary is the lint's data — it names concepts, it does not grant permissions or routes (those stay with the backend and the generated Page Cards).
Domain entity terms (firm, member, matter, client) remain owned by pramaan-docs ADR-001. This glossary covers only the agentic layer on top and explicitly defers to ADR-001 rather than re-freezing those terms.
What changed
| File | Change |
|---|---|
docs/system/agentic-interaction/glossary.md | New. The canonical glossary: product layer, code layer, product↔code mapping, the closed 5-family AtlasCapability universe (Answer · Navigate · View · ProposeOperation · Guardrail; Orient = input, not a verb), the real-vs-fiction permission strings (matters:write/clients:write/settings:write real; firm:manage fiction), the banned-alias reject set, and the enforcement note. |
CANON-INDEX.md | Added a canonical-area row pointing to the glossary so it is discoverable as the naming authority for the substrate. |
docs/system/index.md | Added the glossary to the system "Read next" list (its local directory index). |
Acceptance criteria
- glossary.md exists with product-vs-code split + banned-alias list —
docs/system/agentic-interaction/glossary.mdcarries §2 product layer, §3 code layer, §4 mapping, and §6 banned aliases. ✅ - Linked from the docs index/registry per AGENTS.md — added to
CANON-INDEX.md(canonical registry) anddocs/system/index.md(local index). ✅
Not in scope
No code, no runtime, no ADRs. The check:terms lint itself is a separate Chore under RFD-AGT-002 D-6 and is not built here — this Story delivers only the glossary it will read. RFD-AGT-002 remains a draft desk packet; it is cited, not promoted to docs/rfds/ by this Story.