Instruction file imported from marcelRonner/okf-productdocumentation (
.github/instructions/domain-model.instructions.md). Copyright stays with the author.
Domain Model Conventions
Files to produce
domainModel.md— the domain model at a glancedomainModel.puml— PlantUML class diagram (mirrors the entity pages exactly)entities/{className}.md— one page per class, camelCase (cashDispenser.mdforCashDispenser)
Markdown structure — domainModel.md
# Domain Model – {System Name}
## Overview → One paragraph describing the system scope
## Class Diagram → 
## Classes → A bullet list linking every entity page, in the diagram's order
## Relationships → Compact notation + descriptive table
Markdown structure — entities/{className}.md
# {ClassName}
{One sentence describing what the class represents.} Part of the [Domain Model](../domainModel.md).
## Attributes → Table: Attribute | Type | Description
- Frontmatter:
type: entity;title: {ClassName}, with nolinkTitlesince the title is already short; the one sentence asdescription;weightin the diagram's order;tagsstarting with the class's own tag - Other artifacts link an entity page, never an anchor inside
domainModel.md
Class conventions
- Each class has its own entity page with a one-sentence description
- Attributes in a table:
Attribute | Type | Description - Supported types:
String,Integer,Decimal,Boolean,Date,DateTime,Enum - Enum values listed inline (e.g.
Enum {ONLINE, OFFLINE})
Relationships section
- Compact notation with multiplicities:
Bank "1" ---- "1..*" ATM : operates - Followed by a descriptive table:
Relationship | Description
PlantUML conventions
- Use
@startuml/@enduml,!theme plain,skinparam classAttributeIconSize 0 - All attributes with types inside
classblocks - Relationships:
Bank "1" -- "1..*" ATM : operates >