Vocabulary
Process
Step 1: Gather terms
- Scan the current conversation for domain-relevant nouns, verbs, and concepts
- If $ARGUMENTS specifies a topic, focus extraction on that area
- Read
.mpx/CONTEXT.md § Domain Language. If CONTEXT.md doesn't exist, report error and stop.
- Also scan: epic issues, README, key source files for domain terms
Step 2: Identify problems
- Flag ambiguities (same word used for different things)
- Flag synonyms (different words for the same concept)
- Flag vague terms (imprecise language that could cause confusion)
Step 3: Propose vocabulary
- Be opinionated — when multiple words exist for the same concept, pick ONE canonical term
- For each term: canonical name, one-sentence definition
- Group terms into natural clusters (by subdomain, lifecycle, or actor)
- Show relationships between terms with cardinality (e.g., "A User has many Sessions")
Step 4: Confirm with user
Present each candidate term with its full proposed entry text (**Term** — One-sentence definition.):
- New terms — show the exact text that would be written
- Updated definitions — show old → new
- Flagged ambiguities or conflicts
- Ask user to approve, edit, or reject each term
Only write confirmed terms.
Step 5: Write
Update .mpx/CONTEXT.md ## Domain Language section using definition-list format:
## Domain Language
**Workspace** — Top-level container: one GitHub repo + one project folder + one window.
**Issue** — Atomic work unit. One GitHub issue, one worktree, one branch, one color.
_Avoid_: "task" for Issue, "project" for Workspace.
## Relationships
- A **Workspace** has many **Issues** (1:N)
- An **Issue** has many **Sessions** (1:N)
## Flagged Ambiguities
- "workspace" was previously used for both the app container and VS Code workspace — resolved: **Workspace** is the Grovekeeper container only.
If updating: merge new terms into existing structure, update changed definitions, preserve terms that haven't changed.
Step 6: Summary
- Output inline: number of terms added, updated, and unchanged; reconcile these counts with the final file
- List any unresolved ambiguities for future discussion
Rules
- Only include domain terms — skip generic programming concepts (function, class, API, database)
- Keep definitions to ONE sentence maximum
- Flag conflicts explicitly — never silently resolve ambiguity
- Show relationships with bold term names and cardinality
- When re-running: read existing file, incorporate new terms, update definitions, re-flag ambiguities
1---2name: vocabulary3description: Creates or updates the domain language section of CONTEXT.md, confirming terms with the user first.4---56# Vocabulary78### Process910**Step 1: Gather terms**1112- Scan the current conversation for domain-relevant nouns, verbs, and concepts13- If $ARGUMENTS specifies a topic, focus extraction on that area14- Read `.mpx/CONTEXT.md` § Domain Language. If CONTEXT.md doesn't exist, report error and stop.15- Also scan: epic issues, README, key source files for domain terms1617**Step 2: Identify problems**1819- Flag ambiguities (same word used for different things)20- Flag synonyms (different words for the same concept)21- Flag vague terms (imprecise language that could cause confusion)2223**Step 3: Propose vocabulary**2425- Be opinionated — when multiple words exist for the same concept, pick ONE canonical term26- For each term: canonical name, one-sentence definition27- Group terms into natural clusters (by subdomain, lifecycle, or actor)28- Show relationships between terms with cardinality (e.g., "A **User** has many **Sessions**")2930**Step 4: Confirm with user**3132Present each candidate term with its full proposed entry text (`**Term** — One-sentence definition.`):3334- New terms — show the exact text that would be written35- Updated definitions — show old → new36- Flagged ambiguities or conflicts37- Ask user to approve, edit, or reject each term3839Only write confirmed terms.4041**Step 5: Write**4243Update `.mpx/CONTEXT.md` `## Domain Language` section using definition-list format:4445```markdown46## Domain Language4748**Workspace** — Top-level container: one GitHub repo + one project folder + one window.49**Issue** — Atomic work unit. One GitHub issue, one worktree, one branch, one color.5051_Avoid_: "task" for Issue, "project" for Workspace.5253## Relationships5455- A **Workspace** has many **Issues** (1:N)56- An **Issue** has many **Sessions** (1:N)5758## Flagged Ambiguities5960- "workspace" was previously used for both the app container and VS Code workspace — resolved: **Workspace** is the Grovekeeper container only.61```6263If updating: merge new terms into existing structure, update changed definitions, preserve terms that haven't changed.6465**Step 6: Summary**6667- Output inline: number of terms added, updated, and unchanged; reconcile these counts with the final file68- List any unresolved ambiguities for future discussion6970### Rules7172- Only include domain terms — skip generic programming concepts (function, class, API, database)73- Keep definitions to ONE sentence maximum74- Flag conflicts explicitly — never silently resolve ambiguity75- Show relationships with bold term names and cardinality76- When re-running: read existing file, incorporate new terms, update definitions, re-flag ambiguities