Wire MPS module and model dependencies, used languages, used devkits, extended languages, runtime solutions, accessory models, and language/dependency versions. Use when adding/removing module dependencies, importing languages or devkits into a model, declaring runtime solutions, or shipping accessory content visible to consumers without explicit import.
71
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
This skill covers the wiring layer of an MPS language — the module descriptor (.mpl) and the per-model imports — and the special role of accessory models and runtime solutions.
Note: accessory wiring does not introduce a new aspect model or stereotype; it edits the existing language descriptor and model imports. When you do need to create a new aspect or stereotyped model, see aspect-model-stereotypes.md for the canonical aspect IDs and @stereotype values.
.mpl XML. Hand-editing can silently corrupt the module descriptor. If you must hand-edit (e.g. for accessoryModels, which has no dedicated MCP tool), make a backup, edit only the targeted block, and rebuild the module immediately afterwards so MPS re-reads the descriptor.languageVersions / dependencyVersions. MPS maintains these. Use the MPS "Update language/dependency versions" action.mps_mcp_insert_root_node_from_json, mps_mcp_update_node. Manually add a used language only for hand-written code or implicit dependencies.<runtime> block — see references/runtime-solutions.md.usedLanguage.dependency with the right scope.mps_mcp_module_dependency, mps_mcp_get_project_structure.mps_mcp_model_dependency, mps_mcp_model_used_language (kind = language or devkit).mps_mcp_create_module(type="solution", …) for a runtime solution.mps_mcp_get_project_structure(startingPoint=<module>) for the module descriptor, mps_mcp_get_project_structure for traversal.references/pitfalls.md).mps-language-inheritance — when you need the difference between extendedLanguages and usedLanguages in detail.mps-aspect-generator — generator-module dependencies are managed separately from the parent language.mps-language-aspects-overview — to know which aspects exist and where each one lives.references/module-level-deps.md for the full list of .mpl declarations (dependencies, usedLanguages, usedDevKits, extendedLanguages, runtimeModules, generators, accessoryModels, version stamps), their scopes, and the mps_mcp_module_dependency scope-dispatch table.references/model-level-imports.md for per-model dependencies, used languages, used devkits, and the auto-import behavior of node-insertion tools.references/accessory-models.md when shipping a model that should be available to every consumer of the language without an explicit import — including the .mpl <accessoryModels> XML shape and the hand-edit caveat.references/runtime-solutions.md for runtime solutions — shipping the Java that generated programs call at run time (the generator's stable part, as MPS source or a prebuilt JAR): the Java-facet settings, the language <runtime>-block wiring, jar-as-stubs (java_classes model root + facet <library>), the no-MCP-tool caveat, and the Kaja/JavaKaja worked example.references/extends-vs-uses.md for the semantic difference between extendedLanguages and usedLanguages with examples.references/pitfalls.md when you need to diagnose a symptom ("Cannot resolve concept X", "ClassNotFoundException", version mismatch, generator can't find target-language concept, devkit changes not picked up).references/module-creation.md for mps_mcp_create_module — supported types, language-only companions (withGenerator/withSandbox/withRuntime), and the facets policy.references/module-rename.md for mps_mcp_update_module — what the rename cascades into, the "generator modules are not renameable" rule, and the renameWarnings/renameCriticalProblems semantics.references/module-info-fields.md for the shared info envelope returned by mps_mcp_get_project_structure(startingPoint=<module>) / mps_mcp_create_module / mps_mcp_update_module — kind, facets, loadExtensions, DevKit-only fields.52c9d63
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.