smixs/disruptor-skills · Archived

setting-up-domain-model

>- Use when starting the flow in a repo that has no CONTEXT.md / conventions yet, when a term keeps getting used two ways, or when a hard-to-reverse decision was just made and needs recording. Triggers: "set up the repo conventions", "what's our vocabulary", "record this decision", "write an ADR", "the glossary".

First seen Jul 7, 2026

Installation

$ npx skills add smixs/disruptor-skills --skill setting-up-domain-model

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smixs/disruptor-skills · top by installs.

npx skills add smixs/disruptor-skills

Browse all from smixs/disruptor-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 14
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,879 B
  • docs SUMMARY.md 342 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

Setup and domain model

Stage contract

  • Stage: 0. Setup (once per repo) + cross-cutting upkeep · Kind: method
  • Inputs: the repo; whatever domain terms and decisions surface as the flow runs.
  • Outputs: CONTEXT.md (glossary) and docs/adr/ (decision records), created

lazily and kept live.

  • Entry gate: first time through the flow in this repo (no CONTEXT.md /

conventions recorded), or a term/decision needs pinning down mid-flow.

  • Done when: conventions are recorded; every term the flow relies on has one

canonical definition; every hard-to-reverse decision is an ADR.

  • Next: the stage you were routed to — usually the designing-with-7w3 skill.
  • Maintains: it owns CONTEXT.md and docs/adr/; every other stage keeps them live.

Why this exists

The whole flow rests on the invariant the document is the source of truth — design, spec, and decisions are the record; code realizes them. That invariant needs a concrete home, or it stays a slogan. These two artifacts are that home:

  • CONTEXT.md keeps the vocabulary from drifting. When "user", "account", and

"member" mean the same thing in three files, the design has already started to rot. One canonical term per concept keeps every later stage — spec, breakdown, reviews — talking about the same things.

  • docs/adr/ keeps the why of hard-to-reverse choices from evaporating. A decision

that isn't recorded gets silently re-litigated or quietly reversed by an agent that never saw the trade-off.

Create both lazily — only when the first term or the first real decision appears. An empty CONTEXT.md on day one is ceremony; a stale one is worse than none.

Once-per-repo setup

Do this the first time the flow touches a repo. Keep it to what the flow actually needs:

  1. Decide where the artifacts live.

- Single domain: CONTEXT.md + docs/adr/ at the repo root. - Multiple bounded contexts: a root CONTEXT-MAP.md pointing to src/<context>/CONTEXT.md + per-context docs/adr/.

  1. Record the conventions the flow assumes (a short block in CLAUDE.md /

AGENTS.md, or a docs/agents/ note): where CONTEXT.md and ADRs live, and any project-specific rule the base invariants don't already cover.

  1. Don't scaffold empty files. Note the locations; create the files when the first

term/decision actually lands (see below).

CONTEXT.md — the glossary

One entry per project-specific concept. Not a dictionary of general programming terms — only the words that mean something particular here.

## <Canonical term>
<What it IS, in 1–2 sentences — "is", not "does". State the thing, not its behavior.>
_Avoid:_ <synonyms/near-terms that must not be used for this concept>

Rules:

  • Is, not does. Define what the term is, not what it does.
  • One opinionated choice. Pick the canonical word; list the synonyms to avoid so they

don't creep back.

  • Project-specific only. If it's a general programming concept, it doesn't belong.
  • Sharpen on contact. When a stage uses a fuzzy word, or a term two ways, resolve it

here immediately — a concrete edge-case scenario is the fastest way to force precision.

  • Grow it lazily. Add a term the moment it's resolved; don't pre-populate.

docs/adr/ — decision records

Number sequentially: 0001-slug.md, 0002-slug.md.

# <NNNN>. <Decision title>
<The decision and the WHY, in 1–3 sentences.>
<!-- optional, only if they carry weight: Status · Considered options · Consequences -->

Offer an ADR sparingly — only when a decision is hard-to-reverse AND surprising AND the result of a real trade-off. Qualifies: architectural shape, integration pattern, technology lock-in, a boundary decision, a deliberate deviation, a rejected alternative with subtle reasoning. Does not qualify: routine choices, anything obvious, anything a reader would guess. An ADR for every decision is noise that buries the few that matter.

Keeping them live (every stage's job)

  • 7w3 design and spec cite CONTEXT.md terms and propose ADRs as decisions land.
  • Any stage that discovers a term drifting fixes it in CONTEXT.md then, not later.
  • When reality diverges from an ADR, update the ADR — don't let the code quietly redefine

the decision. Same rule as the design of record: the document leads, code follows.

Source: Serge Shima (@aostrikovagentschat), Setup and domain model.