-
Notifications
You must be signed in to change notification settings - Fork 1.4k
feat(skill): introduce CONCEPTS.md as shared vocabulary substrate #838
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+638
−12
Merged
Changes from 11 commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
7c59a42
feat(concepts): introduce CONCEPTS.md as shared vocabulary substrate
tmchow 24b7e4a
fix(ce-compound-refresh): include step-5 edits in follow-up commit flow
tmchow e446611
fix(ce-compound): close Phase 2 hand-off and vocab-capture loopholes
tmchow 954f3a9
fix(concepts): add glossary-only boundary to contributor skills
tmchow f37b72a
feat(ce-compound): intercept CONCEPTS.md bootstrap requests
tmchow 86558fb
fix(concepts): self-correct violations during compound and refresh
tmchow c018109
fix(concepts): write visible preamble when bootstrapping CONCEPTS.md
tmchow b492073
fix(concepts): tighten qualifying bar at CONCEPTS.md creation
tmchow a8fea84
fix(concepts): sharpen CONCEPTS.md framing and capture from sessions
tmchow 27f9ac4
fix(concepts): drop ce-sessions as scan input for Phase 2.4
tmchow e5b096e
test(ce-sessions): add terminology-preservation eval suite
tmchow 3980a2b
fix(concepts): seed core domain nouns at CONCEPTS.md creation
tmchow 4b5be99
docs(concepts): bootstrap repo-wide CONCEPTS.md glossary
tmchow e5ad7f6
fix(concepts): note seeding in CONCEPTS.md preamble
tmchow 98f1062
fix(ce-compound): reconcile CONCEPTS.md write with the one-file rule
tmchow 1e7b8b2
fix(concepts): close vocabulary-capture gaps across modes and skills
tmchow 3256e01
fix(ce-compound): surface CONCEPTS.md discoverability in lightweight …
tmchow d202810
fix(ce-brainstorm): rename relocated vocab capture off the Phase 3.5 …
tmchow File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
62 changes: 62 additions & 0 deletions
62
...mpound-engineering/skills/ce-compound-refresh/references/concepts-vocabulary.md
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| # CONCEPTS.md vocabulary rules | ||
|
|
||
| `CONCEPTS.md` defines the words that mean something specific in this codebase — substrate that `docs/solutions/` and AGENTS.md can cite without redefinition. Lives at the repo root, created lazily the first time a learning surfaces a qualifying term. | ||
|
|
||
| ## Be opinionated | ||
|
|
||
| When the team uses several words for the same concept, pick the best one and retire the rest. Record retired synonyms as aliases on the entry (see "Per entry"). Settled distinctions go to the Flagged ambiguities tail. The glossary is not a record of all words the team has ever used — it is the team's agreed-upon vocabulary. | ||
|
|
||
| ## The file stands on its own | ||
|
|
||
| Each entry teaches its concept to a reader with no access to anything else — no codebase, no PR history, no architecture meetings, no Slack. This rules out: | ||
|
|
||
| - Implementation specifics (file paths, class names, function signatures, table names, library calls) | ||
| - Status fields, dates, owners on the entries | ||
| - Examples drawn from current code | ||
| - Links to PRs, issues, channels, or roadmap milestones | ||
| - Version-specific claims ("currently uses X; migrating to Y") | ||
|
|
||
| Cross-references between entries within `CONCEPTS.md` are fine — they resolve internally. General programming vocabulary (caches, queues, jobs, sessions) and everyday domain English need no redefinition either. | ||
|
|
||
| ## What earns a slot | ||
|
|
||
| A term qualifies when its meaning here is precise enough that a new engineer would need it defined to follow conversations, tickets, or code. General programming vocabulary does not belong, even when used heavily. | ||
|
|
||
| ## Per entry | ||
|
|
||
| Definition is one sentence — what the term means in this domain, what makes it distinct from neighbors. A term with non-obvious behavioral rules (lifecycle, cancellation semantics, ownership invariants) earns a second paragraph for those rules — never for elaborating the definition itself. | ||
|
|
||
| When retired synonyms exist, list them as an aliases line directly under the definition: *Avoid: Booking, appointment*. Entities typically need more depth than value types; status concepts may need transition notes. | ||
|
|
||
| ## Relationships (optional) | ||
|
|
||
| When relationships between entries carry load-bearing meaning (ownership, cardinality, lifecycle dependencies that span entries), capture them in a `## Relationships` section near the top of the file or its cluster. Skip when entries stand on their own without structural context — relationships are a lift for domains where structure is part of what makes terms meaningful, not a routine section. | ||
|
|
||
| ## Organization | ||
|
|
||
| Cluster concepts by domain relationship — entities with their states, processes with their stages — so a reader sees structure without effort. A flat list works when the file is small. Reshape as the file grows. | ||
|
|
||
| ## Flagged ambiguities (tail of file) | ||
|
|
||
| When two terms were used interchangeably and the team settled on a distinction, record the resolution as a one-line note: *"'account' had been used for both Customer and User — these are distinct."* This section is the audit trail for opinions the team has formed. | ||
|
|
||
| ## One illustrative entry — the shape, not a template | ||
|
|
||
| ``` | ||
| ## Booking | ||
|
|
||
| ### Reservation | ||
| A future commitment to seat a Party at a specified date and time. | ||
| *Avoid:* Booking, appointment | ||
|
|
||
| A Reservation owns its Party but does not own a Table — Tables are acquired only when the Party arrives, through a Seating. Lifecycle: Booked, Seated, Completed, No-Show. Cancellation before a Seating is non-destructive; cancellation after a Seating is recorded as a No-Show. | ||
|
|
||
| ### Party | ||
| The guests committed to a Reservation. Each Reservation has exactly one Party. Party size is the count promised at booking, not the count who arrive. | ||
|
|
||
| ### Table | ||
| A physical seating unit with fixed capacity. Tables are shared resources — they do not belong to Reservations and are allocated only on the day-of through Seatings. | ||
|
|
||
| ### Seating | ||
| The act of placing a Party at a Table once the Party arrives. A Reservation has at most one Seating; a Table accumulates many Seatings across its lifetime. | ||
| ``` |
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.