一键导入
organize-project
Organize Mendix project documents into folders and move them between folders and modules using MDL MOVE and FOLDER syntax
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Organize Mendix project documents into folders and move them between folders and modules using MDL MOVE and FOLDER syntax
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Mendix MDL authoring, project navigation, and Docker app lifecycle — entities, microflows, pages, security, navigation, OQL, REST, testing, linting, and migration. Load when working in any Mendix codebase.
MDL Agent Documents — CREATE MODEL, CREATE KNOWLEDGE BASE, CREATE CONSUMED MCP SERVICE, CREATE AGENT syntax and calling agents from microflows
ALTER PAGE / ALTER SNIPPET — SET, INSERT, DROP, REPLACE widget operations on existing pages and snippets
Migration Assessment — structured investigation of non-Mendix projects for migration planning across technology stack, data model, business logic, UI, integrations, and security
Assess Mendix Project Quality — automated linting, catalog queries, naming conventions, security, maintainability, performance, and architecture review with scored report
Browse Integration Services and Contracts — SHOW/DESCRIBE OData, REST, business event, and database connection services; query MDL CATALOG integration tables; import external entities
| name | organize-project |
| description | Organize Mendix project documents into folders and move them between folders and modules using MDL MOVE and FOLDER syntax |
| compatibility | opencode |
<folder_conventions> Organize by functional grouping — keep all artifacts for a feature together, not separated by document type.
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:
<creating_documents_in_folders>
Use the folder keyword after the return type, before begin:
create microflow MyModule.ACT_ProcessOrder ($Order: MyModule.Order)
returns boolean as $success
folder 'Order'
begin
commit $Order;
return true;
end;
Use the folder property inside the page properties:
create page MyModule.Customer_Overview
(
title: 'Customer Overview',
layout: Atlas_Core.Atlas_Default,
folder: 'Customer'
)
{
-- widgets
}
create snippet MyModule.CustomerCard
(
folder: 'Customer'
)
{
-- widgets
}
Use / to create nested folder paths. Missing folders are created automatically:
-- 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;
</creating_documents_in_folders>
<moving_documents>
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 page MyModule.CustomerEdit to MyModule;
-- 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 moves change the qualified name — this breaks by-name references. Always check impact first:
show impact of OldModule.CustomerPage;
-- Review the output, then move if safe:
move page OldModule.CustomerPage to NewModule;
</moving_documents>
<folder_rules>
/ as separator for nested folders: 'Parent/Child/Grandchild'<supported_document_types>
| Document Type | FOLDER on Create | MOVE Command |
|---|---|---|
| Page | folder: 'path' (property) | move page ... |
| Microflow | folder 'path' (keyword) | move microflow ... |
| Nanoflow | folder 'path' (keyword) | move nanoflow ... |
| Snippet | folder: 'path' (property) | move snippet ... |
| Enumeration | N/A | move enumeration ... |
| Entity | N/A | move entity ... (module only, no folders) |
Note: Pages and snippets use property syntax (folder: 'path' inside parentheses). Microflows and nanoflows use keyword syntax (folder 'path' before begin).
</supported_document_types>
<reorganize_example>
-- 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
show impact of CRM.Header_Snippet;
move snippet CRM.Header_Snippet to folder 'Shared' in Common;
-- Move entity to different module
show impact of CRM.Customer;
move entity CRM.Customer to CustomerModule;
-- Move enumeration to different module
move enumeration CRM.OrderStatus to SharedModule;
</reorganize_example>
<moving_folders>
Use move folder to reorganize folders:
-- 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;
</moving_folders>
<deleting_folders>
Use drop folder to remove empty folders. The folder must not contain any documents or sub-folders.
-- 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;
</deleting_folders>
<validation_checklist>
/ separator (not \)show impact of first<output_rules>Output MDL code only in code blocks. Keep explanations concise.</output_rules>