Agent skill

Generate Domain Model

by mendixlabs in mendixlabs/mxcli

Generate a complete Mendix domain model in MDL — entities, attributes, associations, enumerations — and validate it.

Apache-2.0Auto-check passedSales & Support

Install Generate Domain Model

skills CLI
$ npx skills add mendixlabs/mxcli --skill generate-domain-model -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mendixlabs/mxcli generate-domain-model --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mendix/generate-domain-model .claude/skills/generate-domain-model && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
generate-domain-model
GitHub stars
128
Token cost
~1.8k tokens
SKILL.md length
659 words
Files
3
Skills in repo
75
Repo updated
First seen
Licence
Apache-2.0

At a glance

Generate a complete Mendix domain model in MDL — entities, attributes, associations, enumerations — and validate it.

  • Works in 5 steps: Analyze Requirements → Generate MDL Script → Validate with Linter → …
  • Asked for a domain model for a business area (e-commerce
  • SKILL.md covers Reference files, When to Use This Skill, Modelling for the client:… and Documentation Best Practices, plus 5 more sections
  • Calls node

What it does

Generate Domain Model is an agent skill from mendixlabs/mxcli. Generate a complete Mendix domain model in MDL — entities, attributes, associations, enumerations — and validate it. Use when asked for a domain model for a business area (e-commerce, HR, CRM, …) rather than a single entity.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `reference/patterns.md` and `reference/syntax.md`).

It sits in Sales & Support, covering E-commerce operations. The repository describes itself as: Mendix cli tool, a headless way to work with Mendix projects. Enables Mendix projects for use with 3rd party agentic coding tools like Claude Code and Copilot. Includes a… The licence is Apache-2.0.

When your agent uses it

  • Asked for a domain model for a business area (e-commerce
  • …) rather than a single entity

Example prompts

  • “/generate-domain-model”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Analyze Requirements
  2. Generate MDL Script
  3. Validate with Linter
  4. Review and Fix Issues
  5. Generate Complete Script

What it can do on your machine

Read from SKILL.md and the folder at commit a924d11. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Generate Domain Model loads about 1.8k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 659 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mendixlabs/mxcli at commit a924d11, republished under its Apache-2.0 licence (© mendixlabs). 659 words, ~1,844 tokens.

Download SKILL.mdSave it as .claude/skills/generate-domain-model/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
generate-domain-model
description
Generate a complete Mendix domain model in MDL — entities, attributes, associations, enumerations — and validate it. Use when asked for a domain model for a business area (e-commerce, HR, CRM, …) rather than a single entity.

Creating Mendix Domain Model MDL Scripts

Use this skill to generate Mendix domain model scripts in MDL (Mendix Definition Language) format and validate them with the linter.

Reference files

SKILL.md covers the process and the decisions — what to model, in what order, and how to check it. The lookup material is next door:

  • reference/syntax.md — the complete syntax for entities, attributes, associations and enumerations, every attribute type, plus reserved keywords and entity positioning. Check a spelling here rather than guessing; a reserved word used as an attribute name fails in Studio Pro, not in the parser.
  • reference/patterns.md — the recurring domain shapes (header/detail, categorisation, audit, soft delete, many-to-many with payload) and a full worked e-commerce model.

When to Use This Skill

  • User asks to create a domain model for a specific use case
  • User wants to generate entities, associations, and enumerations
  • User requests a complete e-commerce, HR, CRM, or other business domain model
  • User needs validation of generated MDL scripts

Modelling for the client: widgets bind members, not expressions

A page widget binds an attribute or association path — never an expression. There is no substring(attr, i, 1) or computed binding in a widget. So a value that must be rendered per-part (each character of a code, each cell of a grid, each of N pencil marks) has to be stored as separate attributes, not packed into one string and indexed client-side. Model the wide form when the UI needs to address the parts individually (e.g. N1…N9 booleans rather than a packed Notes string); reach for a computed/derived value only where a microflow or view-entity OQL produces it into a real attribute. (Same reason the bucket-class idiom exists — see migrate-design-prototype.)

Documentation Best Practices

Entity Documentation
sql
/**
 * Brief one-line summary
 *
 * Detailed multi-line description explaining:
 * - What the entity represents
 * - Key business rules
 * - Relationships to other entities
 *
 * @since 1.0.0
 * @see Module.RelatedEntity
 */
Attribute Documentation
sql
/** Brief description of what this attribute stores */
attributename: type,
Association Documentation
sql
/**
 * Relationship description
 *
 * Explains the business meaning of this association.
 *
 * @since 1.0.0
 */

Step-by-Step Process

1. Analyze Requirements

When user requests a domain model:

  1. Identify core entities (nouns)
  2. Identify enumerations (status, types, categories)
  3. Identify relationships (associations)
  4. Identify attributes for each entity
  5. Check for reserved keyword conflicts
2. Generate MDL Script

Create script with this structure:

sql
-- ============================================================================
-- Domain Model Name
-- ============================================================================
-- Description of the domain
-- ============================================================================

-- MARK: ENUMERATIONS

create enumeration Module.Enum1 (...);
create enumeration Module.Enum2 (...);

-- MARK: CORE ENTITIES

-- MARK: - Entity Group 1

create persistent entity Module.Entity1 (...);
create persistent entity Module.Entity2 (...);

-- MARK: - Entity Group 2

create persistent entity Module.Entity3 (...);

-- MARK: VIEW ENTITIES

create view entity Module.View1 as ...;

-- MARK: ASSOCIATIONS

-- MARK: - Entity Group 1 Associations

create association Module.Assoc1 ...;
create association Module.Assoc2 ...;
3. Validate with Linter

Run the linter to check for issues:

bash
# Standalone test
node dist/test-linter-standalone.js

# or create a custom test file

The linter will detect:

  • ✅ Reserved keywords (CE7247)
  • ✅ Duplicate names (CE0065)
  • ✅ OQL syntax errors (CE0174)
4. Review and Fix Issues

Common Issues:

  1. Reserved Keyword Error:

    error: Reserved keyword 'CreatedDate' used as attribute name
    💡 rename to 'CreationDate'

    Fix: Rename to suggested alternative

  2. Duplicate Name Error:

    error: Duplicate name 'Status' in module 'Shop'
    💡 rename one of the enumeration, entity to avoid conflict

    Fix: Rename entity to OrderStatus or similar

  3. OQL Syntax Error:

    error: ORDER by requires limit or offset
    💡 add limit clause to query

    Fix: Add limit 100 to view entity query

Show full SKILL.md (275 more words)Show less
5. Generate Complete Script

Ensure:

  • ✅ All entities have JavaDoc documentation
  • ✅ All attributes have inline comments
  • ✅ All associations have descriptions
  • ✅ Position annotations for all entities
  • ✅ No reserved keywords
  • ✅ No duplicate names
  • ✅ Valid OQL queries

Testing the Script

  1. Save to file: Save as examples/my-domain-model.mdl

  2. Run standalone linter:

    bash
    node dist/test-linter-standalone.js
  3. Execute in REPL:

    sql
    mendix> connect to FILESYSTEM 'path/to/project.mpr';
    mendix> execute script 'examples/my-domain-model.mdl';
  4. Check Studio Pro: Open project and verify entities appear correctly

Checklist

Before finalizing an MDL script:

  • All entities have JavaDoc documentation
  • All attributes have inline comments
  • All associations have descriptions
  • Position annotations on all entities
  • MARK comments for files 300+ lines (at least 3 sections)
  • All identifiers quoted with double quotes
  • No duplicate names (run linter)
  • Valid OQL queries in view entities (run linter)
  • Consistent naming conventions (PascalCase)
  • Appropriate data types and lengths
  • Required fields marked with NOT NULL
  • Validation error messages added for NOT NULL and UNIQUE constraints
  • IDs marked with NOT NULL UNIQUE
  • Email/unique fields marked with UNIQUE

References

  • Reserved Keywords: packages/mendix-repl/docs/reference/reserved-keywords.md
  • Linter Proposal: packages/mendix-repl/docs/proposals/mdl-linter-proposal.md
  • Example Scripts:
    • packages/mendix-repl/examples/shop-domain-model.mdl
    • packages/mendix-repl/examples/pet-store-domain-model.mdl
  • Linter Test: packages/mendix-repl/src/test-linter-standalone.ts

Tips for AI Assistants

  1. Always quote all identifiers with double quotes to avoid MDL parser keyword conflicts — but note quoting does not exempt platform-reserved member names (Type, CreatedDate, ChangedDate, Owner, ChangedBy, ID, …); rename those
  2. Use descriptive names (ServiceType, CustomerOrder)
  3. Run linter on generated scripts before presenting to user
  4. Fix all errors reported by linter before finalizing
  5. Follow examples in shop-domain-model.mdl and pet-store-domain-model.mdl
  6. Document thoroughly - Studio Pro users benefit from good documentation
  7. Position thoughtfully - Related entities should be visually grouped
  8. Test incrementally - Generate in sections and validate each part

© mendixlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .claude/skills/mendix/generate-domain-model of mendixlabs/mxcli.

  • SKILL.md
  • reference/patterns.md
  • reference/syntax.md

Open the folder on GitHubat commit a924d11

Compare with similar skills

Generate Domain Model next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Generate Domain Model compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Generate Domain Model this skillmendixlabs/mxcli128—~1.8kAutomated safety check: PassApache-2.0
Amazon Buy Box Monitorbrowser-act/skills6.1k2 repos~1.6kAutomated safety check: PassMIT
Tourmind Bookingtourmind-com/Tourmind-Booking-Skills1.6k—~13kAutomated safety check: PassMIT
Ecommerce Image Suitewzj177/ecommerce-image-suite443—~10kAutomated safety check: PassApache-2.0
Zach Feature Demand Validatorzach22-1999/amazon-skills2061 repos~2.3kAutomated safety check: NotesMIT
Caramel CouponsDevinoSolutions/caramel141—~1.1kAutomated safety check: PassAGPL-3.0

Similar skills

  • Amazon Buy Box Monitor

    browser-act/skills

    Pulls Amazon product details, competing seller prices and seller ratings for a given ASIN through the BrowserAct API, without browser automation.

    6.1k GitHub starsUsed in 2 repos~1.6k tokens
    Sales & SupportAuto-check passed
  • Tourmind Booking

    tourmind-com/Tourmind-Booking-Skills

    MUST USE for any hotel or accommodation intent in any language, including hotel search, hotel recommendations, nearby accommodation, hostels, guesthouses, resorts, where-to-stay questions, room…

    1.6k GitHub stars~13k tokensUpdated 13 days ago
    Sales & SupportAuto-check passed
  • Ecommerce Image Suite

    wzj177/ecommerce-image-suite

    电商套图生成助手。用户明确提出需要生成电商套图、商品主图、卖点图、场景图、模特图等图片内容时触发. An agent skill from wzj177/ecommerce-image-suite.

    443 GitHub stars~10k tokensUpdated 1 mo ago
    Sales & SupportAuto-check passed
  • Zach Feature Demand Validator

    zach22-1999/amazon-skills

    功能需求真伪验证器。用三维数据(Review/关键词/社区)验证微创新是否真实需求. An agent skill from zach22-1999/amazon-skills.

    206 GitHub starsUsed in 1 repo~2.3k tokens
    Sales & SupportAuto-check: notes
  • Caramel Coupons

    DevinoSolutions/caramel

    Look up live coupon / promo codes for any online store through Caramel's public API (grabcaramel.com) — use whenever the user is about to buy something online, asks for a discount or promo code, or…

    141 GitHub stars~1.1k tokensUpdated today
    Sales & SupportAuto-check passed
  • Zach Sif Cvr Threshold Analyzer

    zach22-1999/amazon-skills

    基于领星 ASIN 360 或同类日业务报表,以及用户自己 SIF MCP 导出的日级关键词自然排名 JSON,回测 CVR 与核心词/稳定词自然排名波动的关系,并输出观察线、危险线、广告 CVR 确认线。

    206 GitHub starsUsed in 1 repo~982 tokens
    Sales & SupportAuto-check: notes

More from mendixlabs/mxcli

All 75 skills in this repo
  • Mendix Odata Pushdown

    mendixlabs/mxcli

    Push OData query options into the SQL of a Mendix resource served by a read microflow, so $filter, $orderby, $top, $skip, $count and the key lookup reach the database instead of being silently…

    128 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Mendix Vega Charts

    mendixlabs/mxcli

    Chart a Mendix app with Vega-Lite through a pluggable widget that takes the specification and the data as separate properties, so the model emits rows and never assembles a chart payload.

    128 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Agents

    mendixlabs/mxcli

    Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.

    128 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Mendix Bulk Oql Dml

    mendixlabs/mxcli

    Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

    128 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Mock REST APIs

    mendixlabs/mxcli

    Stand up an HTTP endpoint you control instead of a live third-party API, and point the Mendix app at it — Prism from an OpenAPI contract, a constant swap, or a forward proxy.

    128 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • REST Client

    mendixlabs/mxcli

    Call external REST APIs from Mendix — the three approaches (inline REST CALL, consumed REST client document, generated from OpenAPI) and how to choose.

    128 GitHub starsUsed in 1 repo~3.9k tokens
    Auto-check passed

Categories

Questions about Generate Domain Model

What does Generate Domain Model do?

Generate a complete Mendix domain model in MDL — entities, attributes, associations, enumerations — and validate it. Generate Domain Model is an agent skill from mendixlabs/mxcli. Generate a complete Mendix domain model in MDL — entities, attributes, associations, enumerations — and validate it.

When should I use Generate Domain Model?

Generate Domain Model fits situations like: asked for a domain model for a business area (e-commerce; …) rather than a single entity.

How do I install Generate Domain Model in Claude Code?

Run `npx skills add mendixlabs/mxcli --skill generate-domain-model -a claude-code`. Or copy the skill folder (.claude/skills/mendix/generate-domain-model in mendixlabs/mxcli) into .claude/skills/generate-domain-model in your project. Claude Code loads it when a task matches its description.

How do I install Generate Domain Model in Codex?

Run `npx skills add mendixlabs/mxcli --skill generate-domain-model -a codex`. Or copy the skill folder (.claude/skills/mendix/generate-domain-model in mendixlabs/mxcli) into .agents/skills/generate-domain-model in your project. Codex loads it when a task matches its description.

Can I use Generate Domain Model in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill generate-domain-model -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/generate-domain-model, .gemini/skills/generate-domain-model, .github/skills/generate-domain-model and .opencode/skills/generate-domain-model in your project.

What does Generate Domain Model need to run?

Going by SKILL.md and its folder, Generate Domain Model needs the command-line tools its instructions call (node).

Does Generate Domain Model access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Generate Domain Model safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Generate Domain Model use?

Generate Domain Model is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Generate Domain Model use?

About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Generate Domain Model?

Skills that share tags, products or a category with Generate Domain Model: Amazon Buy Box Monitor (browser-act/skills, 6.1k stars), Tourmind Booking (tourmind-com/Tourmind-Booking-Skills, 1.6k stars), Ecommerce Image Suite (wzj177/ecommerce-image-suite, 443 stars) and Zach Feature Demand Validator (zach22-1999/amazon-skills, 206 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Generate Domain Model?

mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 128 GitHub stars. The repository holds 75 skills in this directory. The repository was last updated on October 7, 2026.

Source: mendixlabs/mxcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.