domain-modeling

Installation
SKILL.md

Domain Modeling

Overview

The names and shapes you give the concepts in your code are the design. When you introduce a new domain concept, name it for what it means in the user's world, give it a real type, and decide where its state lives — before you write the methods that act on it.

This is a rigid skill. Run the decisions in order. If you can't satisfy one, stop and tell the user what's blocking you. When the concept is exposed across a module/package/service boundary, also invoke api-design (overlap on type design and value-vs-identity).

When to invoke

Invoke when you're about to:

  • Introduce a new top-level type, class, struct, record, or table that represents a thing in the domain (Trader, Portfolio, Booking, Invoice, Reservation)
  • Rename an existing domain concept across files
  • Add a new database table or persistent collection
  • Decide whether a chunk of state should live in memory, in a file, in a key-value store, or in a relational database
  • Replace primitive-typed data (int, string, Map<int, Map<int, int>>) with named domain types
  • Sketch the data model for a new feature, area, or service
  • Evaluate whether an existing domain model is well-structured, or review naming and type choices
Installs
3
Repository
oribarilan/97
GitHub Stars
22
First Seen
Jun 1, 2026
domain-modeling — oribarilan/97