Agent skill

Organize Project

by mendixlabs in mendixlabs/mxcli

Organise documents into folders and move them between folders and modules with MOVE.

Apache-2.0Auto-check passed

Install Organize Project

skills CLI
$ npx skills add mendixlabs/mxcli --skill organize-project -a claude-code

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

GitHub CLI
$ gh skill install mendixlabs/mxcli organize-project --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/organize-project .claude/skills/organize-project && 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
organize-project
GitHub stars
128
Token cost
~2.7k tokens
SKILL.md length
851 words
Files
1
Skills in repo
72
Repo updated
First seen
Licence
Apache-2.0

At a glance

Organise documents into folders and move them between folders and modules with MOVE.

  • A module has grown unstructured
  • SKILL.md covers When to Use This Skill, Folder Conventions, Creating Documents in Folders and Reading the Layout Back, plus 7 more sections
  • Calls java
  • Restructuring a project

What it does

Organize Project is an agent skill from mendixlabs/mxcli. Organise documents into folders and move them between folders and modules with MOVE. Use when a module has grown unstructured, when restructuring a project, or when a document is in the wrong place.

Its SKILL.md is about 2.7k 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.

When your agent uses it

  • A module has grown unstructured
  • Restructuring a project
  • A document is in the wrong place

Example prompts

  • “/organize-project”

What it can do on your machine

Read from SKILL.md and the folder at commit 20a6c89. 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:

    • java

    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

Organize Project loads about 2.7k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 851 words of instructions outside code blocks.

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

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 20a6c89, republished under its Apache-2.0 licence (© mendixlabs). 851 words, ~2,732 tokens.

Download SKILL.mdSave it as .claude/skills/organize-project/SKILL.md (or your agent's skills folder).
name
organize-project
description
Organise documents into folders and move them between folders and modules with MOVE. Use when a module has grown unstructured, when restructuring a project, or when a document is in the wrong place.

Project Organization: Folders and Moving Documents

This skill covers organizing Mendix project documents (pages, microflows, snippets, nanoflows) into folders and moving them between folders and modules.

When to Use This Skill

Use this skill when:

  • Organizing documents into folder hierarchies within a module
  • Moving documents between folders
  • Moving documents between modules
  • Restructuring a project for better maintainability
  • Setting up folder conventions for a new module

Folder Conventions

Organize by functional grouping — keep all artifacts for a feature together, not separated by document type. This way, a developer working on "Customer" finds everything in one place: pages, microflows, snippets, and validation logic.

Recommended folder structure within a module:

CRM/
├── Customer/
│   ├── Customer_Overview        -- Overview page
│   ├── Customer_NewEdit         -- Edit page
│   ├── CustomerCard             -- Snippet
│   ├── ACT_Customer_Save        -- Save microflow
│   ├── ACT_Customer_Delete      -- Delete microflow
│   ├── ACT_Customer_New         -- New microflow
│   ├── VAL_Customer             -- Validation microflow
│   └── DS_Customer_Filter       -- Data source microflow
├── Order/
│   ├── Order_Overview
│   ├── Order_NewEdit
│   ├── ACT_Order_Save
│   └── VAL_Order
└── Shared/                      -- Cross-cutting concerns
    ├── SUB_SendNotification
    └── Navigation_Snippet

Why functional grouping over type grouping:

  • All related artifacts are in one place — easier to navigate and review
  • Adding or removing a feature is a single folder operation
  • Naming prefixes (ACT_, VAL_, SUB_, DS_) already indicate document type
  • Mirrors how developers think: "I'm working on Customer" not "I'm working on microflows"

Adapt to your project's conventions. The key is consistency across modules.

Creating Documents in Folders

Microflows

Use the folder keyword after the return type, before begin:

mdl
mdl 1;
create microflow MyModule.ACT_ProcessOrder ($Order: MyModule.Order)
returns boolean as $success
folder 'Order'
begin
  commit $Order;
  return true;
end;
Pages

Use the folder property inside the page properties:

sql
mdl 1;
create page MyModule.Customer_Overview folder 'Customer'
(
  title: 'Customer Overview',
  layout: Atlas_Core.Atlas_Default
)
{
  -- widgets
};
Snippets
sql
mdl 1;
create snippet MyModule.CustomerCard folder 'Customer'
{
  -- widgets
};
Nested Folders

Use / to create nested folder paths. Missing folders are created automatically:

mdl
mdl 1;
-- Creates 'Order', then 'Order/Batch' if they don't exist
create microflow MyModule.ACT_BatchProcess ($list: list of MyModule.Order)
folder 'Order/Batch'
begin
  loop $Order in $list begin
    commit $Order;
  end loop;
  return;
end;

Reading the Layout Back

list folders shows the folder layout of a module and what is in each folder. This is the counterpart to move: move puts a document somewhere, list folders shows where everything actually is.

sql
-- One module
list folders in MyModule;

-- Every module in the project
list folders;
MyModule
  (module root)  [1]
    Microflow ACT_Unfiled
  Api  [0]
  Api/Published  [1]
    ODataService PublicApi
  Support  [1]
    JavaAction Helper

(3 folder(s), 3 document(s))

Three things about the output are deliberate:

  • Empty folders are listed (Api [0]), so the listing is the whole layout and can be diffed against an intended one.
  • Documents still at the module root appear under (module root) — what is not filed yet is the thing you most want to notice.
  • Ordering is stable, so a diff between two runs shows only real movement.

Use the CLI's --json flag for a row per document (Module, Folder, Kind, Document) when comparing against a checked-in layout.

Do not reach for describe structure here: it groups by document type at every depth and never shows which folder a document sits in.

Moving Documents

The move command relocates existing documents between folders and modules.

Move to a Folder (Same Module)
mdl
mdl 1;
move page MyModule.CustomerEdit to folder 'Customer';
move microflow MyModule.ACT_ProcessOrder to folder 'Order';
move snippet MyModule.NavigationMenu to folder 'Shared';
move nanoflow MyModule.NAV_OpenCustomer to folder 'Customer';
move enumeration MyModule.OrderStatus to folder 'Shared';
Move to Module Root (Out of Folder)
mdl
mdl 1;
move page MyModule.CustomerEdit to MyModule;
Move Across Modules
mdl
mdl 1;
-- Move to another module's root
move page OldModule.CustomerPage to NewModule;

-- Move to a folder in another module
move page OldModule.CustomerPage to folder 'Pages' in NewModule;
Cross-Module Move Warning

Cross-module moves change the qualified name (e.g., OldModule.CustomerPage becomes NewModule.CustomerPage). This breaks by-name references such as:

  • Microflows calling show page OldModule.CustomerPage
  • Other microflows calling call microflow OldModule.SomeMicroflow
  • Widget actions referencing the old qualified name

Always check impact before cross-module moves:

mdl
mdl 1;
list impact of OldModule.CustomerPage;
-- Review the output, then move if safe:
move page OldModule.CustomerPage to NewModule;

Folder Rules

  • Folder names are case-sensitive
  • Use / as separator for nested folders: 'Parent/Child/Grandchild'
  • Folders are created automatically if they don't exist
  • Moving to a folder that doesn't exist creates it
  • Empty folders are preserved in the project
Show full SKILL.md (391 more words)Show less

Supported Document Types

move accepts every top-level document type, spelled the way describe spells it:

GroupTypes
Pagespage, snippet, building block, layout, menu
Logicmicroflow, nanoflow, workflow, task queue, scheduled event
Domainenumeration, constant, regular expression
Mappingsjson structure, import mapping, export mapping
Codejava action, javascript action, database connection, data transformer
Resourcesimage collection, icon collection
Integrationconsumed rest service, published rest service, consumed odata service, published odata service, business event service
AImodel, agent, knowledge base, consumed mcp service

move entity is the exception: an entity lives inside a domain model, so it moves between modules only, never into a folder.

If the named document turns out to be a different type, the statement is refused and the error names what it really is — move task queue Mod.JSON_Order reports that Mod.JSON_Order is a json structure.

FOLDER on Create

Every document type takes a folder clause on create, so a document can be placed in the statement that creates it rather than in a separate move. Where the clause goes depends on the statement's shape:

Document TypeFOLDER on Create
Page, Snippetfolder: 'path' — a property, inside the parentheses
Microflow, Nanoflowfolder 'path' — a keyword, before begin
Enumeration, Constantfolder 'path' — a keyword, after the definition
Everything elsefolder 'path' — a keyword, straight after the qualified name
mdl
mdl 1;
create import mapping CRM.IMM_Order folder 'Private/Import mappings'
  with json structure CRM.JSON_Order { create CRM.Order { Id = id } };

create task queue CRM.Q_Orders folder 'Private/Queues' ( Parallelism: 3 );

create java action CRM.JA_Sync folder 'Private/Java' () returns string
  as $$return null;$$;

A folder clause on create or modify moves an existing document. It used to be silently ignored: the statement reported success, the folder was created, and the document stayed where it was (#932). Omitting the clause leaves placement alone — it never returns a document to the module root — so adding a folder to a script is safe and removing it is a no-op.

describe emits the clause, so a description replays into the same folder rather than into the module root.

Example: Reorganize a Module

mdl
mdl 1;
-- Group all Customer artifacts together
move page CRM.Customer_Overview to folder 'Customer';
move page CRM.Customer_NewEdit to folder 'Customer';
move microflow CRM.ACT_Customer_Save to folder 'Customer';
move microflow CRM.ACT_Customer_Delete to folder 'Customer';
move microflow CRM.ACT_Customer_New to folder 'Customer';
move microflow CRM.VAL_Customer to folder 'Customer';
move snippet CRM.CustomerCard to folder 'Customer';

-- Group all Order artifacts together
move page CRM.Order_Overview to folder 'Order';
move page CRM.Order_NewEdit to folder 'Order';
move microflow CRM.ACT_Order_Save to folder 'Order';
move microflow CRM.ACT_Order_Process to folder 'Order/Processing';

-- Move shared artifacts to a Shared folder or common module
list impact of CRM.Header_Snippet;
move snippet CRM.Header_Snippet to folder 'Shared' in Common;

-- Move entity to different module
list impact of CRM.Customer;
move entity CRM.Customer to CustomerModule;

-- Move enumeration to different module
move enumeration CRM.OrderStatus to SharedModule;

Moving Folders

Use move folder to reorganize folders. Syntax matches document moves: Module.FolderName.

sql
mdl 1;
-- Move a folder into another folder
move folder MyModule.Resources to folder 'Archive';

-- Move a nested folder (use double quotes for paths with /)
move folder MyModule."Orders/Archive" to MyModule;

-- Move a folder to a different module
move folder MyModule.SharedWidgets to CommonModule;

-- Move a folder into a folder in another module
move folder MyModule.Templates to folder 'Shared' in CommonModule;

Deleting Folders

Use drop folder to remove empty folders. The folder must not contain any documents or sub-folders.

sql
mdl 1;
-- Drop an empty folder
drop folder 'OldPages' in MyModule;

-- Drop a nested folder (only the leaf is removed)
drop folder 'Orders/Archive' in MyModule;

-- Move contents out first, then drop
move microflow MyModule.ACT_Process to MyModule;
drop folder 'Processing' in MyModule;

Validation Checklist

  • Folder paths use / separator (not \)
  • FOLDER keyword placement is correct (before BEGIN for microflows, inside properties for pages)
  • Cross-module moves: checked impact with list impact of first
  • Folder naming is consistent across modules
  • DROP FOLDER: verify folder is empty before dropping
  • After a batch of moves: list folders in MyModule to confirm the layout

© 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

Just SKILL.md in .claude/skills/mendix/organize-project of mendixlabs/mxcli.

Open the folder on GitHubat commit 20a6c89

Compare with similar skills

Organize Project 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.

Organize Project compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Organize Project this skillmendixlabs/mxcli128—~2.7kAutomated safety check: PassApache-2.0
Recipe Organize Drive Foldergoogleworkspace/cli31k—~269Automated safety check: PassApache-2.0
File Organizerdavila7/claude-code-templates32k7 repos~1.6kAutomated safety check: PassMIT
Organize Filesjxxghp/MoviePilot12k—~965Automated safety check: PassGPL-3.0
Organizationthedaviddias/Front-End-Checklist74k—~609Automated safety check: PassMIT
Invoice Organizerdavila7/claude-code-templates32k12 repos~2.9kAutomated safety check: PassMIT

Similar skills

  • Recipe Organize Drive Folder

    googleworkspace/cli

    Create a Google Drive folder structure and move files into the right locations.

    31k GitHub stars~269 tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • File Organizer

    davila7/claude-code-templates

    Intelligently organizes files and folders by understanding context, finding duplicates, and suggesting better organizational structures.

    32k GitHub starsUsed in 7 repos~1.6k tokens
    Productivity & AutomationAuto-check passed
  • Organize Files

    jxxghp/MoviePilot

    A skill your agent uses when the user asks MoviePilot to identify and organize a local or downloaded video/music file, season folder, recording, album directory, or mixed folder that automatic…

    12k GitHub stars~965 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Organization

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing structured data on a business or brand website homepage.

    74k GitHub stars~609 tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Invoice Organizer

    davila7/claude-code-templates

    Automatically organizes invoices and receipts for tax preparation by reading messy files, extracting key information, renaming them consistently, and sorting them into logical folders.

    32k GitHub starsUsed in 12 repos~2.9k tokens
    Business, Finance & HRAuto-check passed
  • Organize Modules

    r3bl-org/r3bl-open-core

    Apply private modules with public re-exports (barrel export) pattern for clean API design.

    485 GitHub stars~5.8k tokensUpdated today
    Backend & APIsAuto-check passed

More from mendixlabs/mxcli

All 72 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
  • Business Events

    mendixlabs/mxcli

    Define event-driven APIs over Kafka with Mendix business event services — publish and subscribe contracts, CREATE/DROP/DESCRIBE.

    128 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Catalog Search

    mendixlabs/mxcli

    Search the Mendix Catalog platform service registry (catalog.mendix.com) from the CLI to find services published across an organisation.

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

Questions about Organize Project

What does Organize Project do?

Organise documents into folders and move them between folders and modules with MOVE. Organize Project is an agent skill from mendixlabs/mxcli. Organise documents into folders and move them between folders and modules with MOVE.

When should I use Organize Project?

Organize Project fits situations like: A module has grown unstructured; restructuring a project; A document is in the wrong place.

How do I install Organize Project in Claude Code?

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

How do I install Organize Project in Codex?

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

Can I use Organize Project 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 organize-project -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/organize-project, .gemini/skills/organize-project, .github/skills/organize-project and .opencode/skills/organize-project in your project.

What does Organize Project need to run?

Going by SKILL.md and its folder, Organize Project needs the command-line tools its instructions call (java).

Does Organize Project 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 Organize Project 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 Organize Project use?

Organize Project 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 Organize Project use?

About 2.7k tokens (SKILL.md is roughly 11k 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 Organize Project?

Skills that share tags, products or a category with Organize Project: Recipe Organize Drive Folder (googleworkspace/cli, 31k stars), File Organizer (davila7/claude-code-templates, 32k stars), Organize Files (jxxghp/MoviePilot, 12k stars) and Organization (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Organize Project?

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.