Guidelines
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
Query the project as a dependency graph to assess the blast radius of a change, find dead or risky elements, and evaluate module health.
$ npx skills add mendixlabs/mxcli --skill graph-analysis -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mendixlabs/mxcli graph-analysis --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/graph-analysis .claude/skills/graph-analysis && 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 "graph-analysis" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/graph-analysis into .claude/skills/graph-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "graph-analysis", 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/graph-analysisType 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 graph-analysis -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mendixlabs/mxcli graph-analysis --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/graph-analysis .agents/skills/graph-analysis && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "graph-analysis" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/graph-analysis into .agents/skills/graph-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "graph-analysis", 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 graph-analysis -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mendixlabs/mxcli graph-analysis --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/graph-analysis .cursor/skills/graph-analysis && 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 "graph-analysis" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/graph-analysis into .cursor/skills/graph-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "graph-analysis", 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/graph-analysis--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 graph-analysis -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mendixlabs/mxcli graph-analysis --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/graph-analysis .gemini/skills/graph-analysis && 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 "graph-analysis" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/graph-analysis into .gemini/skills/graph-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "graph-analysis", 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 graph-analysisInstalls 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 graph-analysis -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/graph-analysis .github/skills/graph-analysis && 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 "graph-analysis" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/graph-analysis into .github/skills/graph-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "graph-analysis", 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 graph-analysis -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 graph-analysis --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/graph-analysis .opencode/skills/graph-analysis && 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 "graph-analysis" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/graph-analysis into .opencode/skills/graph-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "graph-analysis", 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.
graph-analysisQuery the project as a dependency graph to assess the blast radius of a change, find dead or risky elements, and evaluate module health.
Graph Analysis is an agent skill from mendixlabs/mxcli. Query the project as a dependency graph to assess the blast radius of a change, find dead or risky elements, and evaluate module health. Use when planning a refactor, judging what a change will break, or looking for unused documents.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Refactoring. 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.
Read from SKILL.md and the folder at commit a924d11. 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 and bash).
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.
Graph Analysis loads about 3.9k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,313 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 a924d11, republished under its Apache-2.0 licence (© mendixlabs). 1,313 words, ~3,871 tokens.
.claude/skills/graph-analysis/SKILL.md (or your agent's skills folder).Use this skill when assessing the impact of a change, identifying risky elements, evaluating module health, or planning a structural refactor. The graph tables model the entire project as a dependency graph and expose topology metrics on top of it.
Two separate commands are needed. The full catalog must exist before community detection runs.
# Step 1: Build the full catalog (activities, widgets, cross-references)
# Skip if already fresh — check .mxcli/catalog.db mtime
./mxcli -p app.mpr -c "REFRESH CATALOG FULL"
# Step 2: Run graph algorithms (community detection, centrality, layers, cycles)
./mxcli -p app.mpr -c "REFRESH CATALOG COMMUNITIES"What each step populates:
| Step | Tables populated |
|---|---|
REFRESH CATALOG FULL | GRAPH_GOD_NODES, GRAPH_MODULE_COUPLING, GRAPH_MODULE_COHESION, GRAPH_DEAD_ASSETS, GRAPH_ENTITY_HOTSPOTS, GRAPH_MODULE_DEPENDENCIES, GRAPH_REFKIND_DISTRIBUTION |
REFRESH CATALOG COMMUNITIES | COMMUNITIES, COMMUNITY_SUMMARY, GRAPH_CYCLES, GRAPH_LAYERS, GRAPH_CENTRALITY, GRAPH_INTEGRATION_SURFACE |
An empty table from the second row is ambiguous unless you check. Step 2 is
not a build mode — it augments whatever the catalog is, so Build mode: full
says nothing about whether it ran, and before mendixlabs/mxcli#1060 an un-run
pass and a genuinely cycle-free project produced the same 0 rows. A query now
warns requires refresh catalog communities (not run for this catalog) when the
pass is missing, and SHOW CATALOG STATUS has a Graph analysis: line. No
warning plus no rows is a real answer; treat anything else as "not computed
yet", not as "clean".
REFRESH CATALOG COMMUNITIES with a resolution modifier:
REFRESH CATALOG COMMUNITIES — default resolution (balanced granularity)REFRESH CATALOG COMMUNITIES resolution 0.6 — coarser clusters (fewer, larger communities; good for monolith-to-multi-app planning)REFRESH CATALOG COMMUNITIES resolution 2.0 — finer clusters (more, smaller communities; good for identifying sub-modules within a large module)Run before modifying any entity, microflow, or association. Takes under a minute.
-- Is this element a god node? How many things depend on it?
SELECT Asset, ObjectType, InDegree, OutDegree, Degree
FROM CATALOG.GRAPH_GOD_NODES
WHERE Asset = 'MyModule.MyEntity';
-- What layer is it in? (0 = leaf/data, higher = orchestration)
SELECT AssetName, Layer
FROM CATALOG.GRAPH_LAYERS
WHERE AssetName = 'MyModule.MyMicroflow';
-- Is it a bridge? Would breaking it disconnect subsystems?
SELECT AssetName, PageRank, Betweenness
FROM CATALOG.GRAPH_CENTRALITY
WHERE AssetName = 'MyModule.MyMicroflow';
-- Which community does it belong to? What else is in that cluster?
SELECT c.AssetName, c.CommunityId, cs.Label
FROM CATALOG.COMMUNITIES c
JOIN CATALOG.COMMUNITY_SUMMARY cs ON c.CommunityId = cs.CommunityId
WHERE c.AssetName = 'MyModule.MyEntity';Interpretation:
InDegree > 15: many callers — changing this will require wide testingBetweenness > 100: this element is a bridge; removing or changing its signature will disconnect subsystems-- All unreferenced elements project-wide
SELECT QualifiedName, ObjectType, ModuleName
FROM CATALOG.GRAPH_DEAD_ASSETS
WHERE NOT (ModuleName IN ('System', 'Atlas_Core', 'Atlas_Web_Content',
'Atlas_NativeMobile_Content', 'WorkflowCommons', 'CommunityCommons',
'NanoflowCommons', 'NativeMobileResources', 'WebActions', 'DataWidgets'))
ORDER BY ModuleName, ObjectType;False positives to exclude before deleting:
| Pattern | Why it's a false positive |
|---|---|
Microflows named *_Tool | Registered as LLM agent tools dynamically — never called directly in code |
ApplicationCore.ASU and ASU_* | Configured in project settings, not referenced in MDL |
| Pages used as workflow user task pages | Workflow activities reference pages via model GUID, not code edges |
| Pages used as navigation home pages | Navigation assignments are not code edges |
IVK_* microflows | Called by external systems via published REST/web services |
SCH_* microflows | Called by scheduled events — no code edge |
Safe to delete: pages, snippets, and microflows with no inbound edges that do not match any of the patterns above, and that are not referenced in navigation (check LIST NAVIGATION).
-- Cohesion per module: low % = module does too many things / should be split
SELECT ModuleName, IntraEdges, InterEdges, CohesionPct
FROM CATALOG.GRAPH_MODULE_COHESION
ORDER BY CohesionPct ASC;
-- Cross-module coupling: find unexpected entanglements
-- Filter to custom modules by replacing the IN list
SELECT SourceModule, TargetModule, Edges, RefKinds
FROM CATALOG.GRAPH_MODULE_COUPLING
WHERE SourceModule IN ('MyModule1', 'MyModule2', 'MyModule3')
AND TargetModule IN ('MyModule1', 'MyModule2', 'MyModule3')
ORDER BY Edges DESC;
-- Dependency direction breakdown: what kinds of references cross module boundaries?
SELECT SourceModule, TargetModule, RefKind, Edges
FROM CATALOG.GRAPH_MODULE_DEPENDENCIES
WHERE SourceModule = 'MyModule'
ORDER BY Edges DESC;Interpreting CohesionPct:
| Range | Meaning |
|---|---|
| 70–100% | Self-contained module — good |
| 40–70% | Moderate coupling to other modules — watch if it drops further |
| < 40% | Low cohesion — module is a cross-cutter or should be split; investigate whether this is intentional (e.g. an orchestration/startup module) |
Coupling RefKinds to watch:
retrieve, datasource, create, change: data access across module boundaries — should go through a service microflow in the owning modulecall: microflow calls across modules — acceptable if intentional APIgeneralize: entity inheritance across modules — hard to refactor, flag as a blocker for splitslayout: purely structural, always acceptable-- What communities exist, how large are they, which modules do they span?
SELECT CommunityId, Label, Size, Modules
FROM CATALOG.COMMUNITY_SUMMARY
ORDER BY Size DESC;
-- Which community does a specific element belong to?
SELECT c.AssetName, c.CommunityId, cs.Label, cs.Size
FROM CATALOG.COMMUNITIES c
JOIN CATALOG.COMMUNITY_SUMMARY cs ON c.CommunityId = cs.CommunityId
WHERE c.AssetName LIKE 'MyModule.%'
ORDER BY c.CommunityId;
-- Elements from your module that landed in a foreign community
-- (indicates tight coupling to that community's domain)
SELECT c.AssetName, cs.Label AS CommunityLabel
FROM CATALOG.COMMUNITIES c
JOIN CATALOG.COMMUNITY_SUMMARY cs ON c.CommunityId = cs.CommunityId
WHERE c.AssetName LIKE 'MyModule.%'
AND cs.Label != 'MyModule'
ORDER BY cs.Label;What to look for:
AgentCommons appears twice) signals a natural internal split within that module.-- Top microflows by betweenness in your custom modules
-- High betweenness = bridge; breaking it disconnects subsystems
SELECT AssetName, PageRank, Betweenness
FROM CATALOG.GRAPH_CENTRALITY
WHERE AssetName LIKE 'MyModule.%'
OR AssetName LIKE 'AnotherModule.%'
ORDER BY Betweenness DESC
LIMIT 20;
-- God nodes by PageRank (most influential, not just most-referenced)
SELECT Asset, ObjectType, ModuleName, InDegree, OutDegree, Degree
FROM CATALOG.GRAPH_GOD_NODES
WHERE ModuleName IN ('MyModule1', 'MyModule2')
ORDER BY Degree DESC
LIMIT 20;Betweenness vs Degree:
Degree (InDegree + OutDegree): raw connection count. High degree = popular or knows-too-much.Betweenness: fraction of shortest paths in the graph that pass through this node. High betweenness = bridge between clusters. A node can have low degree but high betweenness (a narrow connector between two large clusters).PageRank: recursive importance — being depended on by important things matters more than being depended on by many small things.Use betweenness to find microflows where an interface change would require coordinating across many callers simultaneously.
-- Entities used by the most microflows, and across the most modules
SELECT Entity, UsedByFlows, AcrossModules
FROM CATALOG.GRAPH_ENTITY_HOTSPOTS
WHERE Entity LIKE 'MyModule.%'
ORDER BY UsedByFlows DESC;An entity appearing in AcrossModules with 3+ module names is a candidate for an explicit service layer — instead of every module reading it directly, route access through a DS_ or SUB_ microflow in the owning module.
-- All cycles: self-references (size 1) and mutual references (size 2+)
SELECT AssetName, ModuleName, CycleId, CycleSize
FROM CATALOG.GRAPH_CYCLES
ORDER BY CycleSize DESC, CycleId;Size 1: self-referencing element (e.g. a workflow that references its own context entity — usually harmless).
Size 2: mutual reference between two elements — e.g. workflow A calls workflow B which triggers workflow A. Investigate before assuming it's intentional; these can cause infinite loops at runtime.
Size 3+: a dependency ring — must be broken before the module can be split or properly layered.
GRAPH_CYCLES is document-level. Two modules referencing each other almost
never means two documents do — Administration calls something in Atlas_Core from
one page while Atlas_Core reaches back from another — so GRAPH_CYCLES is
correctly empty for a genuinely circular pair of modules. Reading it as "no
circular dependencies" was mendixlabs/mxcli#1060. Ask the module question of the
module table:
SELECT ModuleName, CycleSize, RefKinds
FROM CATALOG.GRAPH_MODULE_CYCLES
ORDER BY CycleSize DESC, ModuleName;RefKinds names the kinds on that module's edges into the rest of the cycle —
the references to go and break, as opposed to everything else the module points at.
The two also read different edges. GRAPH_MODULE_CYCLES uses every reference
kind, matching GRAPH_MODULE_COUPLING; the computed asset pass
(GRAPH_CYCLES/COMMUNITIES/GRAPH_LAYERS/GRAPH_CENTRALITY) is restricted to
the structural kinds so navigational edges do not blur the clustering. On a stock
app that is about a third of the edges. GRAPH_ANALYSIS_SCOPE reports the split
per kind, which is the query to run when coupling shows an edge and the computed
tables act as though it were not there:
SELECT RefKind, Edges, InAssetGraph FROM CATALOG.GRAPH_ANALYSIS_SCOPE
ORDER BY InAssetGraph, Edges DESC;For splitting a project into separate Mendix apps connected via OData, REST, or Business Events:
# Use coarse resolution for candidate app groupings
./mxcli -p app.mpr -c "REFRESH CATALOG COMMUNITIES resolution 0.6"-- Each cross-community edge becomes an integration contract after a split
-- RefKind tells you what protocol would be needed
SELECT * FROM CATALOG.GRAPH_INTEGRATION_SURFACE
ORDER BY SourceCommunity, TargetCommunity;
-- 'generalize' edges are blockers — entity inheritance cannot cross app boundaries
SELECT * FROM CATALOG.GRAPH_INTEGRATION_SURFACE
WHERE RefKind = 'generalize';RefKind to integration protocol mapping (matches the Mechanism column the view computes):
| RefKind | Mechanism label | Protocol after split |
|---|---|---|
associate | OData / shared entity | OData / shared entity |
retrieve | OData read | OData (read) |
create, change | event / REST write | REST or Business Events |
call | REST (published microflow) | REST (synchronous) or Business Events (async) |
generalize | BLOCKER: inheritance across boundary | Blocker — cannot cross app boundaries; must restructure |
anything else (e.g. datasource, layout) | review | Inspect manually — layouts are UI-only and duplicate per app; others case-by-case |
GRAPH_LAYERS assigns each element a layer number via topological sort (Kahn's algorithm on the dependency DAG):
| Layer | Typical elements |
|---|---|
| 0 | Entities, associations — pure data, no outgoing calls |
| 1 | Leaf microflows: tool callbacks, event handlers, simple helpers |
| 2–3 | Business logic: workflow triggers, process microflows |
| 4–6 | Orchestration: agent calls, composites |
| 7+ | Startup / configuration: ASU chain, import pipelines |
Elements at the same layer can be parallelised safely. A microflow calling something at a higher layer than itself indicates a layering violation (upward dependency).
| Question | Table |
|---|---|
| How many things depend on X? | GRAPH_GOD_NODES (InDegree) |
| Is X a bridge between subsystems? | GRAPH_CENTRALITY (Betweenness) |
| What layer is X in? | GRAPH_LAYERS |
| What community (bounded context) is X in? | COMMUNITIES + COMMUNITY_SUMMARY |
| Which modules are tightly coupled? | GRAPH_MODULE_COUPLING |
| Is module M self-contained? | GRAPH_MODULE_COHESION |
| What is unused / dead? | GRAPH_DEAD_ASSETS |
| Are there circular dependencies between documents? | GRAPH_CYCLES |
| Are there circular dependencies between modules? | GRAPH_MODULE_CYCLES |
| Why isn't an edge I see in coupling affecting the cycles/layers? | GRAPH_ANALYSIS_SCOPE |
| Which entities are hotspots? | GRAPH_ENTITY_HOTSPOTS |
| What contracts would a split require? | GRAPH_INTEGRATION_SURFACE |
| What reference types cross module boundaries? | GRAPH_MODULE_DEPENDENCIES |
© 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/graph-analysis of mendixlabs/mxcli.
Open the folder on GitHubat commit a924d11
Graph Analysis 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 |
|---|---|---|---|---|---|---|
| Graph Analysis this skillmendixlabs/mxcli | 128 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Guidelinesakash-network/node | 1.1k | 22 repos | ~577 | Automated safety check: Pass | MIT | |
| Component Refactoringlangflow-ai/langflow | 156k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 41k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| ast-grep Structural Searchcode-yeongyu/oh-my-openagent | 70k | — | ~3.3k | Automated safety check: Pass | MIT | |
| Systematic Code Refactoringluongnv89/claude-howto | 42k | — | ~3k | Automated safety check: Pass | MIT |
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
langflow-ai/langflow
Refactor high-complexity React components in Langflow frontend.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
code-yeongyu/oh-my-openagent
Searches and rewrites code by syntax-tree shape across 25 languages with ast-grep, for codemods, structural queries and YAML lint rules, using a Python wrapper script.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
skills-directory/skill-codex
A skill your agent uses when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing
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
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.
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.
Categories
Query the project as a dependency graph to assess the blast radius of a change, find dead or risky elements, and evaluate module health. Graph Analysis is an agent skill from mendixlabs/mxcli. Query the project as a dependency graph to assess the blast radius of a change, find dead or risky elements, and evaluate module health.
Graph Analysis fits situations like: planning a refactor; judging what a change will break; looking for unused documents.
Run `npx skills add mendixlabs/mxcli --skill graph-analysis -a claude-code`. Or copy the skill folder (.claude/skills/mendix/graph-analysis in mendixlabs/mxcli) into .claude/skills/graph-analysis in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mendixlabs/mxcli --skill graph-analysis -a codex`. Or copy the skill folder (.claude/skills/mendix/graph-analysis in mendixlabs/mxcli) into .agents/skills/graph-analysis 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 graph-analysis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/graph-analysis, .gemini/skills/graph-analysis, .github/skills/graph-analysis and .opencode/skills/graph-analysis in your project.
SKILL.md names no scripts, command-line tools or credentials: Graph Analysis 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.
Graph Analysis 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 3.9k tokens (SKILL.md is roughly 15k 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 Graph Analysis: Guidelines (akash-network/node, 1.1k stars), Component Refactoring (langflow-ai/langflow, 156k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 41k stars) and ast-grep Structural Search (code-yeongyu/oh-my-openagent, 70k 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 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.