feat: /glossary skill — Evans DDD ubiquitous language + bounded contexts#1232
Draft
amargandhi wants to merge 1 commit intogarrytan:mainfrom
Draft
feat: /glossary skill — Evans DDD ubiquitous language + bounded contexts#1232amargandhi wants to merge 1 commit intogarrytan:mainfrom
amargandhi wants to merge 1 commit intogarrytan:mainfrom
Conversation
Pure-documentation skill grounded in Evans 2003 *Domain-Driven Design*,
Ch. 2 (ubiquitous language) and Ch. 14 (bounded contexts + 9 relationship
types). Builds an ubiquitous language doc with bounded contexts and the
context map. Surfaces "language seams" — terms that mean different things
in different contexts.
**Why a new skill:** Most codebases accumulate a vocabulary mismatch over
time. The same word means different things in different modules
("subscription" = billing artifact in one context, push-notification
target in another), and the same concept gets named differently
("user" / "account" / "profile" / "member" all referring to one entity).
Evans named this; gstack now systematically catches it.
**Hard gate:** Documentation only. Does NOT rename anything, refactor
anything, or propose architecture changes. Renames motivated by glossary
findings are a separate conversation.
**Output structure:**
- Section 1 — Bounded contexts (one per coherent subsystem)
- Section 2 — Context map with 9 Evans relationship types annotated:
Shared Kernel, Customer/Supplier, Conformist, Anticorruption Layer,
Open Host Service, Published Language, Separate Ways, Partnership,
Big Ball of Mud
- Section 3 — Ubiquitous language (terms with definition + bounded
context owner)
- Section 4 — Language seams (the highest-value output: terms that
collide across contexts)
What this PR adds:
1. `glossary/SKILL.md.tmpl` (284 lines) — defines the 4-section walk,
HARD GATE prose, ranking heuristics, and gotcha guidance ("name the
seams", "don't refactor", "accept partial").
2. `scripts/resolvers/preamble/generate-routing-injection.ts` — adds one
bullet so Claude/Codex auto-route phrases like "build a domain
glossary", "document ubiquitous language", "find naming
inconsistencies" to /glossary.
3. Generated SKILL.md across all 10 hosts — ~11K tokens per skill,
well under the 40K ceiling.
Tests: 689/689 pass. Built and tested against upstream/main at v1.15.0.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds /glossary — a pure-documentation skill grounded in Evans 2003 Domain-Driven Design, Ch. 2 (ubiquitous language) and Ch. 14 (bounded contexts + 9 relationship types). Builds an ubiquitous language doc with bounded contexts and a context map. The highest-value output is naming language seams — terms that mean different things in different contexts.
Why a new skill
Most codebases accumulate vocabulary mismatch over time. Same word, different meanings in different modules ("subscription" = billing artifact here, push-notification target there). Same concept, different names ("user" / "account" / "profile" / "member" all referring to one entity). Evans named this 22 years ago; gstack now systematically catches it.
Hard gate
Documentation only. Does NOT rename anything, refactor anything, or propose architecture changes. Renames motivated by glossary findings are a separate conversation. Documented prominently in the template.
Output structure
What this PR adds
Test plan
Notes for review