Install
$ agentstack add skill-kaisdavis-claude-skills-context-md ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
context-md
Bootstrap and maintain a per-repo CONTEXT.md glossary. The durable home for a project's ubiquitous language.
The whole point: every session stops re-deriving domain terms from class names and inference. CONTEXT.md is canonical.
When to fire
- User says: "create a CONTEXT.md", "set up the glossary", "what's our vocabulary here", "what do we call X", "add X to the glossary", "audit our CONTEXT.md", "ubiquitous language", "lock down terminology"
- User refers to the artifact by short name: "the glossary", "the domain doc", "our project language", just "CONTEXT"
- Mid-session: 3+ domain terms got resolved in conversation and the repo has no CONTEXT.md (offer to start one)
- Mid-session: terminology debate surfaces ("Customer vs User?", "Order vs Purchase?", "should we call this X or Y?"). The glossary is the resolution surface.
- Failure-mode: about to bail with "I don't know what we call this here", "the project uses both X and Y", or "the code is inconsistent on the term for X"
- Session start: working in a multi-session repo where no CONTEXT.md exists and the work is non-trivial (offer to start one)
- Cross-skill: another skill says "use the project's domain glossary vocabulary" but no glossary exists (offer to start one)
When to skip
- Content-only repos (no domain logic to glossarize)
- One-shot scripts under 50 lines
- Throwaway prototypes (capture the answer elsewhere)
- Repos with fewer than 3 domain terms worth defining
Modes
Mode 1: init (bootstrap a new CONTEXT.md)
- Detect bounded contexts. Walk the repo tree. If it splits cleanly into multiple domains, propose a
CONTEXT-MAP.mdplus per-context files. Otherwise single rootCONTEXT.md.
- Scan code for likely domain terms. Look at:
- Class names (especially those that aren't framework primitives)
- Repeated nouns in route names, controller actions, model relationships
- Service-class names and their public methods
- Database table names and column names that aren't generic (id, created_at, etc.)
- Test descriptions ("user can checkout with...")
- String literals in prompts (for LLM-feature repos)
- Interview the user on candidates. Present a numbered list of 15 to 25 candidate terms. For each:
- Is this domain-specific or general programming? (Drop general.)
- Is the name correct or should it be renamed? (Capture in
_Avoid_:.) - Are there synonyms used elsewhere that should be aliased away?
Ask one cluster at a time. Don't dump all 25 at once.
- Draft v1. Write the file in the canonical format (see the source-of-truth template linked under Cross-refs):
- One or two sentence preamble
## Languagesection with bolded terms, tight definitions, and_Avoid_:aliases## Relationshipswith cardinality## Flagged ambiguities(start empty if none surfaced)## Example dialoguebetween dev and domain expert (invent if needed; must read naturally)
- Multi-context only: also write
CONTEXT-MAP.mdlisting contexts plus relationships between them. Each per-context file gets its ownCONTEXT.mdwith the same internal structure.
- Commit on a feature branch. Don't write to main directly on shared repos.
Mode 2: update (add/sharpen a term mid-session)
Triggered when a domain term gets resolved in conversation. Do this inline, not batched at session end.
- Read current CONTEXT.md.
- Locate the right section (Language for new term, Relationships for new cardinality, Flagged ambiguities for resolved conflict).
- Add the entry verbatim in the canonical format.
- If the new term conflicts with existing usage in code, surface it: "your code uses
Accounthere, but CONTEXT.md just resolved this toCustomer. Want me to flag the conflict in Flagged ambiguities and leave the rename for later, or rename now?" - Commit as a tiny atomic change (or stash for end-of-session bundle if mid-feature).
Mode 3: audit (check existing CONTEXT.md against code)
Triggered by "audit our CONTEXT.md", "is our glossary still accurate", or after a major refactor.
- Read CONTEXT.md.
- For each
**Term**:in## Language, grep the codebase for occurrences. If zero hits, term is dead. Propose removal. - For each
_Avoid_:alias, grep for occurrences of the avoided term. If hits exist, surface them. Code uses banned terminology, candidate for rename or for moving the alias to canonical. - Scan code for nouns NOT in CONTEXT.md that appear 5+ times across 3+ files. Candidates for addition.
- Present a numbered diff: terms to add, terms to remove, aliases to enforce. User approves; apply.
The five discipline rules
- Be opinionated. Pick one canonical term; others become
_Avoid_:. - Inline updates, not batched. Resolved during conversation, updated in the file before the next turn moves on.
- Selectivity. Project-specific terms only. Drop general programming concepts.
- Definitions are tight. One sentence. Define what it IS, not what it does.
- Flag conflicts explicitly. Ambiguous terms get a
## Flagged ambiguitiesentry with resolution.
Cross-skill plumbing
Once CONTEXT.md exists, other skills can reference it as the canonical vocabulary source. Examples: a module-map / "zoom out" skill, a debugging skill's mental-model orientation, a TDD skill (test names and interface vocabulary match CONTEXT.md), and a PRD skill (uses CONTEXT.md vocabulary in the PRD body). The pattern: domain vocab comes from CONTEXT.md; architecture/tooling rules live in a separate house-style doc.
Anti-patterns to avoid
- Don't scaffold an empty CONTEXT.md. Lazy-create when the first term resolves.
- Don't batch terminology updates to end-of-session. Inline is the discipline.
- Don't include general programming terms. "Timeout", "retry", "cache" don't belong unless the project gives them domain meaning.
- Don't lose
_Avoid_:to politeness. Pick a canonical winner; surface losers as aliases. - Don't define what a term does. Define what it IS. Behavior belongs in code.
Cross-refs
- Source / format template: the
grill-with-docsskill in mattpocock/skills. Seeskills/engineering/grill-with-docs/CONTEXT-FORMAT.mdfor the source-of-truth CONTEXT.md format. - Companion: the
docs-updateskill delegates CONTEXT.md edits to this skill during an end-of-session doc catch-up.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kaisdavis
- Source: kaisdavis/claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.