agentsclimarketplace

Setting up domain model

Skill smixs/disruptor-skills/skills/setting-up-domain-model

12 agent skills for AI-driven software development — a gated idea-to-ship pipeline: 7w3 design, build-ready specs, executable architecture, honest review loops, a parallel worker-fleet lane, QA, safe deploy. Works with Claude Code, Codex, Cursor and any skills-capable agent. No vibecode.

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

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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".

SKILL.md

4.8 KB, as published. Nobody here has run it

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/.
  2. 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.
  3. 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 (@aostrikov_agents_chat), Setup and domain model.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.