CSS Order
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Order CSS files correctly.
Order MDL statements so that every reference resolves — execution is sequential and immediate, so a document must exist before anything points at it.
$ npx skills add mendixlabs/mxcli --skill resolve-forward-references -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mendixlabs/mxcli resolve-forward-references --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mendix/resolve-forward-references .claude/skills/resolve-forward-references && rm -rf skills-srcUse ~/.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/
Install the "resolve-forward-references" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-references into .claude/skills/resolve-forward-references/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resolve-forward-references", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-referencesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mendixlabs/mxcli --skill resolve-forward-references -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mendixlabs/mxcli resolve-forward-references --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/mendix/resolve-forward-references .agents/skills/resolve-forward-references && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "resolve-forward-references" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-references into .agents/skills/resolve-forward-references/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resolve-forward-references", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mendixlabs/mxcli --skill resolve-forward-references -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mendixlabs/mxcli resolve-forward-references --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/mendix/resolve-forward-references .cursor/skills/resolve-forward-references && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "resolve-forward-references" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-references into .cursor/skills/resolve-forward-references/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resolve-forward-references", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mendixlabs/mxcli.git --path .claude/skills/mendix/resolve-forward-references--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mendixlabs/mxcli --skill resolve-forward-references -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mendixlabs/mxcli resolve-forward-references --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/mendix/resolve-forward-references .gemini/skills/resolve-forward-references && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "resolve-forward-references" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-references into .gemini/skills/resolve-forward-references/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resolve-forward-references", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mendixlabs/mxcli resolve-forward-referencesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mendixlabs/mxcli --skill resolve-forward-references -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/mendix/resolve-forward-references .github/skills/resolve-forward-references && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "resolve-forward-references" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-references into .github/skills/resolve-forward-references/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resolve-forward-references", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mendixlabs/mxcli --skill resolve-forward-references -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mendixlabs/mxcli resolve-forward-references --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/mendix/resolve-forward-references .opencode/skills/resolve-forward-references && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "resolve-forward-references" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/resolve-forward-references into .opencode/skills/resolve-forward-references/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "resolve-forward-references", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
resolve-forward-referencesOrder MDL statements so that every reference resolves — execution is sequential and immediate, so a document must exist before anything points at it.
Resolve Forward References is an agent skill from mendixlabs/mxcli. Order MDL statements so that every reference resolves — execution is sequential and immediate, so a document must exist before anything points at it. Use when a script fails on a reference to something defined later in the same file.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 20a6c89. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are sql).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Resolve Forward References loads about 2.3k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 455 words of instructions outside code blocks.
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.
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.
The full file from mendixlabs/mxcli at commit 20a6c89, republished under its Apache-2.0 licence (© mendixlabs). 455 words, ~2,329 tokens.
.claude/skills/resolve-forward-references/SKILL.md (or your agent's skills folder).MDL script execution is sequential and immediate — each CREATE statement commits
its document to the project database before the next statement runs. When a document is
being built, all its references (snippets, pages, microflows) are resolved against the
database at that moment. A reference to something defined later in the same script fails
because it is not in the database yet.
Error: snippet not found: MyModule.NavMenuThis applies to the following reference types:
| Reference | In | Fails when |
|---|---|---|
snippetcall | page / snippet | snippet created after the page |
show page in action | page / snippet | page created after the page that references it |
SHOW PAGE | microflow | page created after the microflow |
call microflow | microflow | callee microflow created after the caller (in the same script, exec resolves the call against the project/backend, not later same-script definitions — so order the callee first) |
Note:
SHOW PAGEinside a microflow body resolves the page reference at microflow-creation time, not at invocation time. If the target page doesn't exist yet, the microflow creation fails.
The standard workaround is a three-step sequence:
CREATE OR MODIFY or ALTER — both preserve the
original ID so existing bindings remain valid.Critical: Never use
CREATE OR REPLACEfor the fill-in step.OR REPLACEdeletes the placeholder and creates a new document with a different ID. Every page or snippet that references the placeholder immediately becomes a dangling reference.
A navigation snippet contains show page buttons (references pages) and pages include
the snippet via snippetcall (references the snippet). Both sides reference each other.
mdl 1;
-- Step 1: placeholder snippet (minimal valid content)
create snippet MyModule.NavMenu
{
layoutgrid g { row { column (desktopwidth: 12) {
dynamictext loading (content: 'Loading...')
}}}
};
-- Step 2: pages that embed the snippet (snippet already exists → resolves OK)
create page MyModule.Customer_Overview
(
title: 'Customers',
layout: Atlas_Core.Atlas_Default
)
{
layoutgrid g { row {
column (desktopwidth: 3) {
snippetcall nav (snippet: MyModule.NavMenu)
}
column (desktopwidth: 9) {
datagrid dg (datasource: database MyModule.Customer) { }
}
}}
};
create page MyModule.Order_Overview
(
title: 'Orders',
layout: Atlas_Core.Atlas_Default
)
{
layoutgrid g { row {
column (desktopwidth: 3) {
snippetcall nav (snippet: MyModule.NavMenu)
}
column (desktopwidth: 9) {
datagrid dg (datasource: database MyModule.Order) { }
}
}}
};
-- Step 3: fill in the snippet with real content (pages now exist → show page resolves OK)
-- Use CREATE OR MODIFY (preserves ID) or ALTER SNIPPET (in-place)
create or modify snippet MyModule.NavMenu
{
layoutgrid g { row { column (desktopwidth: 12) {
actionbutton btnCustomers (
caption: 'Customers',
action: show page MyModule.Customer_Overview
)
actionbutton btnOrders (
caption: 'Orders',
action: show page MyModule.Order_Overview
)
}}}
};An overview page has a New button that opens a NewEdit page via show page. The NewEdit
page must exist before the overview can reference it.
mdl 1;
-- Solution: declare the target page first (even if empty), then the referencing page
create page MyModule.Customer_NewEdit
(
params: ( $Customer: MyModule.Customer ),
title: 'Edit Customer',
layout: Atlas_Core.PopupLayout
)
{
layoutgrid g { row { column (desktopwidth: 12) {
dataview dv (datasource: $Customer) {
textbox txtName (label: 'Name', attribute: Name)
}
actionbutton btnSave (caption: 'Save', action: save changes)
actionbutton btnCancel (caption: 'Cancel', action: cancel changes)
}}}
};
-- Now the overview can safely reference the NewEdit page
create page MyModule.Customer_Overview
(
title: 'Customers',
layout: Atlas_Core.Atlas_Default
)
{
layoutgrid g { row { column (desktopwidth: 12) {
actionbutton btnNew (
caption: 'New',
action: call microflow MyModule.ACT_Customer_New
)
datagrid dg (datasource: database MyModule.Customer) {
column (caption: 'Name', attribute: Name)
}
}}}
};For simple cases, reordering declarations is sufficient and no placeholder is needed.
mdl 1;
-- If the page is defined later in the script, create a placeholder or reorder.
-- Easiest fix: declare the page before the microflow that shows it.
-- Page first
create page MyModule.Order_Detail
(
params: ( $Order: MyModule.Order ),
title: 'Order Detail',
layout: Atlas_Core.Atlas_Default
)
{
layoutgrid g { row { column (desktopwidth: 12) {
dataview dv (datasource: $Order) {
textbox txtID (label: 'Order ID', attribute: OrderID)
}
}}}
};
-- Microflow after the page it references
create microflow MyModule.ACT_OpenOrder ($Order: MyModule.Order)
begin
@position(200,200)
show page MyModule.Order_Detail (Order = $Order);
@position(400,200) return;
end;To avoid forward references entirely, follow this declaration order within a script:
1. Entities and associations (no cross-document references)
2. Enumerations and constants (no cross-document references)
3. Snippets (placeholder if needed)
4. Pages (reference snippets + other pages)
5. Snippets (fill-in step, if placeholder was used)
6. Microflows and nanoflows (reference pages, entities)
7. Navigation (references pages)When generating MDL scripts, write sections in this order. Doing so avoids the placeholder pattern for the majority of scripts.
Both preserve the snippet's ID. Use whichever fits:
| Approach | When to use |
|---|---|
create or modify snippet | Rewriting the whole snippet body from scratch |
alter snippet | Inserting or replacing specific widgets within an existing layout |
mdl 1;
-- ALTER SNIPPET: targeted widget replacement (keeps surrounding structure)
alter snippet MyModule.NavMenu {
replace loading with {
actionbutton btnCustomers (
caption: 'Customers',
action: show page MyModule.Customer_Overview
)
}
};mdl 1;
-- ============================================================
-- MyModule CRUD scaffold
-- Correct declaration order: snippets → pages → microflows → nav
-- ============================================================
-- 1. Placeholder for shared navigation (will reference pages created below)
create snippet MyModule.AppNav
{
layoutgrid g { row { column (desktopwidth: 12) {
dynamictext placeholder (content: '...')
}}}
};
-- 2. NewEdit page (referenced by Overview's New button)
create page MyModule.Customer_NewEdit
(
params: ( $Customer: MyModule.Customer ),
title: 'Edit Customer',
layout: Atlas_Core.PopupLayout
)
{
-- ... widgets ...
};
-- 3. Overview page (references NewEdit + NavMenu)
create page MyModule.Customer_Overview
(
title: 'Customers',
layout: Atlas_Core.Atlas_Default
)
{
layoutgrid g { row {
column (desktopwidth: 3) {
snippetcall nav (snippet: MyModule.AppNav)
}
column (desktopwidth: 9) {
-- ... datagrid with New button calling ACT_Customer_New ...
}
}}
};
-- 4. Fill in navigation (pages now exist)
create or modify snippet MyModule.AppNav
{
layoutgrid g { row { column (desktopwidth: 12) {
actionbutton btnCustomers (
caption: 'Customers',
action: show page MyModule.Customer_Overview
)
}}}
};
-- 5. Microflows (pages already exist)
create microflow MyModule.ACT_Customer_New ()
begin
$c = create MyModule.Customer ();
show page MyModule.Customer_NewEdit (Customer = $c);
return;
end;
-- 6. Navigation (pages already exist). This statement sets the whole profile,
-- its menu included: list every item the menu must keep.
create or modify navigation Responsive
home page MyModule.Customer_Overview
{
menu item 'Customers' ( OnClick: show page MyModule.Customer_Overview )
};© 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
Just SKILL.md in .claude/skills/mendix/resolve-forward-references of mendixlabs/mxcli.
Open the folder on GitHubat commit 20a6c89
Resolve Forward References 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Resolve Forward References this skillmendixlabs/mxcli | 128 | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| CSS Orderthedaviddias/Front-End-Checklist | 74k | — | ~404 | Automated safety check: Pass | MIT | |
| Focus Orderthedaviddias/Front-End-Checklist | 74k | — | ~519 | Automated safety check: Pass | MIT | |
| Heading Orderthedaviddias/Front-End-Checklist | 74k | — | ~452 | Automated safety check: Pass | MIT | |
| Food Orderingasgeirtj/system_prompts_leaks | 69k | — | ~1.4k | Automated safety check: Pass | CC0-1.0 | |
| Three-Statement Financial AnalysisHKUDS/Vibe-Trading | 35k | — | ~1.2k | Automated safety check: Pass | MIT |
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Order CSS files correctly.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Ensure logical focus order.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Maintain logical heading order.
asgeirtj/system_prompts_leaks
Prepare restaurant food orders for delivery or pickup; use for cart, checkout and tracking.
HKUDS/Vibe-Trading
Reads the income statement, balance sheet and cash flow statement together to judge earnings quality, apply DuPont analysis and check 12 red-flag indicators for manipulation; Chinese text.
astral-sh/ruff
A skill your agent uses when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty…
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…
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.
mendixlabs/mxcli
Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.
mendixlabs/mxcli
Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.
mendixlabs/mxcli
Define event-driven APIs over Kafka with Mendix business event services — publish and subscribe contracts, CREATE/DROP/DESCRIBE.
mendixlabs/mxcli
Search the Mendix Catalog platform service registry (catalog.mendix.com) from the CLI to find services published across an organisation.
Order MDL statements so that every reference resolves — execution is sequential and immediate, so a document must exist before anything points at it. Resolve Forward References is an agent skill from mendixlabs/mxcli. Order MDL statements so that every reference resolves — execution is sequential and immediate, so a document must exist before anything points at it.
Resolve Forward References fits situations like: A script fails on a reference to something defined later in the same file.
Run `npx skills add mendixlabs/mxcli --skill resolve-forward-references -a claude-code`. Or copy the skill folder (.claude/skills/mendix/resolve-forward-references in mendixlabs/mxcli) into .claude/skills/resolve-forward-references in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mendixlabs/mxcli --skill resolve-forward-references -a codex`. Or copy the skill folder (.claude/skills/mendix/resolve-forward-references in mendixlabs/mxcli) into .agents/skills/resolve-forward-references in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill resolve-forward-references -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/resolve-forward-references, .gemini/skills/resolve-forward-references, .github/skills/resolve-forward-references and .opencode/skills/resolve-forward-references in your project.
SKILL.md names no scripts, command-line tools or credentials: Resolve Forward References is instructions for the agent only.
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.
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.
Resolve Forward References 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.
About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Resolve Forward References: CSS Order (thedaviddias/Front-End-Checklist, 74k stars), Focus Order (thedaviddias/Front-End-Checklist, 74k stars), Heading Order (thedaviddias/Front-End-Checklist, 74k stars) and Food Ordering (asgeirtj/system_prompts_leaks, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 128 GitHub stars. The repository holds 72 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.