typefox/agent-skills/domainmodel-dsl-v2
Claude Code and agent skill by typefox/agent-skills
- community
Checking that the SKILL.md file is still in the repository.
Read, write, and modify Domain Model DSL files (.dmodel) — datatypes, entities with inheritance and multi-valued features, and nested packages with qualified cross-references. Use when the user wants to create, edit, explain, or debug a domain model in this DSL, including resolving references across packages.
Install
npx vskill@latest install typefox/agent-skills/domainmodel-dsl-v2SKILL.md
Domain Model DSL
A language for describing a data model: primitive datatypes, entities with features, inheritance between entities, and packages that namespace declarations. A .dmodel file is a flat sequence of top-level elements (packages or types); there is no module header.
Top-level structure
A file is zero or more elements, each either a package or a type (a datatype or an entity):
Syntax (EBNF)
Datatypes
A primitive type:
Entities, features, inheritance
An entity has a name, an optional supertype, and a block of features:
extends <Entity>— single inheritance; the supertype is referenced by its (qualified) name and
must resolve to an entity.
- Each feature is
(<many>)? <name> : <Type>. The type is a datatype or an entity, referenced by
its (qualified) name.
- Prefix a feature with
manyto make it multi-valued (a collection):
Packages and qualified names
package <QualifiedName> { ... } groups elements and can nest. A qualified name is one or more identifiers joined by dots (foo.bar.Baz). References use qualified names to reach declarations in other packages; from inside a package you may use a name relative to the current scope:
Semantics and rules
- Every reference — a feature's type, an
extendssupertype — must resolve to a declaration,
using qualified names across package boundaries.
- The same simple name may exist in different packages; the qualified name disambiguates
(big.Int vs a top-level Int).
- Comments use
//and/* */.
When generating or modifying
- Declare datatypes and referenced entities before (or alongside) the entities that use them, and
make sure every feature type and extends target resolves.
- Use
manyfor collection-valued features. - When adding an entity in a package, reference types in other packages by their qualified name.
Example
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/skill-evals/evals/files/dsl-skills/domainmodel-dsl-v2/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/typefox/agent-skills/domainmodel-dsl-v2)