agentleFS
Luis85Luis85/agentic-workflow/.claude/skills/ubiquitous-language/SKILL.md

ubiquitous-language

Skill0 starsChanged 6 months agoMITView on GitHub

[Deprecated by ADR-0010] Legacy single-file glossary at docs/UBIQUITOUS_LANGUAGE.md. New terms now use /glossary:new (new-glossary-entry skill). Retained for fork compatibility only — should not auto-trigger.

63 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use request-refactor-plan, edit-article and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • simo97Skill

    request-refactor-plan

    Use this skill when user wants to create a refactor plan.

    Also in 40 projects that use this

  • simo97Skill

    edit-article

    The user will invoke this skill to help them edit an article.

    Also in 34 projects that use this

  • AnasX7Skill

    scaffold-exercises

    Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.

    Also in 29 projects that use this

  • HK-hubSkill

    prd-to-plan

    Turn a PRD into a multi-phase implementation plan using tracer-bullet vertical slices, saved as a local Markdown file in ./plans/. Use when user wants to break down a PRD, create an implementation plan, plan phases from a PRD, or mentions "tracer bullets".

    Also in 9 projects that use this

  • boyingliu01Skill

    batch-grill-me

    A relentless interview that asks every frontier question at once, round by round. Thin alias of `grilling` (#540) — upstream mattpocock/skills absorbed this protocol into grilling; XP-Gate keeps this name as the sprint-flow Phase 2 entry point so orchestration docs stay stable.

    Also in 5 projects that use this

  • AnasX7Skill

    setup-pre-commit

    Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

    Also in 37 projects that use this

  • +4 more from simo97

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 6 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 59 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    After Evans's "ubiquitous language" and Pocock's ubiquitous-language skill.

    line 20
  2. Very specific:

    Read the current UBIQUITOUS_LANGUAGE.md.

    line 62
  3. Distinctive:

    Write the entry: term in bold, one-sentence definition in domain language, list of synonyms to avoid, optional notes.

    line 67
  4. Very specific:

    Update Last updated and by.

    line 68
  5. Distinctive:

    Update the definition in place.

    line 72
  6. Very specific:

    Add a one-line note in the term's row: Refined <YYYY-MM-DD> in workflow <slug>.

    line 74
  7. Distinctive:

    One canonical term per concept: No synonyms in active use.

    line 82
  8. Distinctive:

    Examples beat definitions: When a definition is hard to write, add one to the example dialogue.

    line 84
  9. Distinctive:

    Lazy creation: Don't scaffold an empty glossary.

    line 85
  10. Distinctive:

    Plain Markdown: No framework-specific syntax, no front-matter — this file should survive any tooling change.

    line 86

“Common” is measured: kept by at least 6 in 10 of the 59 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

⚠️ Deprecated by ADR-0010.

New glossary terms go in docs/glossary/<slug>.md via /glossary:new "<term>" (handled by the new-glossary-entry skill). Refining existing per-term entries also goes through that skill — see its "How to use" §2 for the in-place refinement flow.

This skill is retained but not auto-triggered for new work. It exists so that:

  1. Projects forked from earlier template versions that already have a populated docs/UBIQUITOUS_LANGUAGE.md can still read these procedures if they choose not to migrate.
  2. Cross-references from older artifacts to this skill keep resolving.

If you arrived here from a /ubiquitous-language invocation, prefer /glossary:new instead. To migrate an existing UBIQUITOUS_LANGUAGE.md to the per-file model, copy each table row into a new docs/glossary/<slug>.md derived from templates/glossary-entry-template.md, then mark the original file with a deprecation banner.

Ubiquitous language

After Evans's "ubiquitous language" and Pocock's ubiquitous-language skill. The glossary is the contract for vocabulary across the spec → design → spec → tasks → code chain. Drift here causes drift everywhere downstream.

File layout

docs/UBIQUITOUS_LANGUAGE.md

Single file at repo root. Never sharded — sharding defeats the purpose of a single shared vocabulary.

Format

# Ubiquitous language

_Last updated: <YYYY-MM-DD> by <agent>_

The canonical vocabulary for talking about this system. Every requirement, design, spec, task, ADR, and code identifier should use these terms exactly. If a term is missing or fuzzy, file a PR or run the `ubiquitous-language` skill to add it.

## Subdomain: <Subdomain name>

| Term | Definition | Synonyms (avoid) | Notes |
|---|---|---|---|
| **Subscriber** | A user who has an active paid plan. | Customer, paying user | Distinguished from **Trialist** (active trial) and **Lapsed** (canceled). |

(Repeat per subdomain. Subdomains map to bounded contexts in `docs/CONTEXT.md` or to top-level product areas.)

## Flagged ambiguities

Terms that are currently ambiguous, with the active workflow that will resolve them.

- **Account** vs **User** vs **Profile** — _resolving in workflow `2026-04-26-add-user-profile`_

## Example dialogue

A 3–5 exchange dialogue using the glossary correctly, so an agent reading this file knows what "good" sounds like in this project's voice.

Procedure

When a new term is coined

  1. Read the current UBIQUITOUS_LANGUAGE.md. If absent, scaffold from the template.
  2. Identify the subdomain the term belongs to.
  3. Check for collisions:
    • Same word, different meaning elsewhere? Disambiguate explicitly (Account (billing) vs Account (auth)).
    • Different word, same meaning? Pick one canonical term and list the others as "avoid" synonyms.
  4. Write the entry: term in bold, one-sentence definition in domain language, list of synonyms to avoid, optional notes.
  5. Update Last updated and by.

When a term is refined (definition shifts)

  1. Update the definition in place.
  2. Search the codebase and specs/ for old usages — ambiguous usages are bugs. Surface a list to the user; don't silently rewrite spec files.
  3. Add a one-line note in the term's row: Refined <YYYY-MM-DD> in workflow <slug>.

When ambiguity is flagged

A stage agent may report that a requirement uses a term in two senses. Add an entry to Flagged ambiguities linking to the active workflow. The next iteration of the relevant stage must resolve it.

Rules

  • One canonical term per concept. No synonyms in active use. Synonyms are explicitly listed as "avoid."
  • Domain language, not implementation language. "Subscriber" not "UserModel"; "Order" not "OrderRecord".
  • Examples beat definitions. When a definition is hard to write, add one to the example dialogue.
  • Lazy creation. Don't scaffold an empty glossary. Wait for the first real term.
  • Plain Markdown. No framework-specific syntax, no front-matter — this file should survive any tooling change.

Relationship to other artifacts

  • docs/CONTEXT.md — uses these terms exactly; defers to this file for definitions.
  • docs/steering/product.md — uses these terms exactly; refining a term may require a steering update.
  • specs/<slug>/requirements.md — every EARS clause uses these terms exactly (per docs/ears-notation.md discipline).
  • Code identifiers — class, function, and variable names should mirror these terms (within language conventions). The reviewer agent enforces this.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.