JetBrains MPS is a development environment for creating domain-specific languages, which are programming languages designed for a particular field or task. It provides editors with features such as completion, semantic checks, and type checking, and can generate code in languages including Java and XML.
Borrowing it
Nothing to install: this file belongs to JetBrains/MPS. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/JetBrains/MPS/master/.agents/skills/mps-aspect-generation-plan/SKILL.mdgit clone --depth 1 https://github.com/JetBrains/MPSWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jetbrains/mps/mps-aspect-generation-plan)<a href="https://agentmods.dev/skills/jetbrains/mps/mps-aspect-generation-plan"><img src="https://agentmods.dev/badge/skills/jetbrains/mps/mps-aspect-generation-plan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jetbrains/mps/mps-aspect-generation-plan"><img src="https://agentmods.dev/badge/skills/jetbrains/mps/mps-aspect-generation-plan.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00137 | $0.01864 |
| Opus 5.5 | $0.00055 | $0.00746 |
| Sonnet 5.5 | $0.00027 | $0.00373 |
| Haiku 4.5 | $0.00014 | $0.00186 |
Grade A, and why
mps-aspect-generation-plan scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MPS Generation Plans
Loading companion skills
Companion names in this skill are lazy dependencies: load only those relevant to the current task. If this skill came from an MCP server, use the host's skill loader to resolve the companion's unique discovered entry URI on the same host-assigned originating server. If the host has no server-backed skill loader, stop and report that limitation; do not silently fall back to a filesystem copy. If this skill came from a filesystem catalog, load the named sibling from that same catalog at <skills-root>/<skill-name>/SKILL.md, even if remote skill loaders are also available. Do not invent a tool name or server endpoint.
A generation plan (Plan) is an ordered script of generation steps: which generators run, in what order, where the transient model is persisted (checkpoints), and where generation branches (forks). Without a plan, MPS orders generators by their mutual priorities. A plan states the order once, in one place, so the languages involved need not know about each other.
Language: jetbrains.mps.lang.generator.plan (id 7ab1a6fa-0a11-4b95-9e48-75f363d6cb00), plus jetbrains.mps.lang.smodel (LanguageId) and jetbrains.mps.lang.modelapi (ModulePointer). Inserting plan nodes adds the languages of the concepts inserted to the model's used languages by itself.
When to use a generation plan
- Generators of independent languages must run in a fixed order.
- Cross-model generation: one model's mapping labels must be visible while another model generates (needs a shared plan and a
Checkpoint). - A model needs a second output from a copy of it (a
Fork), optionally only under a condition. - A test or tool must run only some generators (a
GeneratorTestwith an explicit plan; see themps-testsskill).
Critical Directives
- A plan is attached as a model, never as a node. A DevKit's plan and a Solution's Custom Generation facet both hold a model reference. MPS runs the model's first
Planroot in root order; otherPlanroots there serve only asFork/IncludePlantargets. Keep one main plan per@genplanmodel; reordering roots changes the plan. - Attach with
mps_mcp_update_moduleoperation=SET_GENERATION_PLAN,planModel=<model>on a DevKit (every model that uses it) or a Solution (every model of it). Do not hand-write the facet memento or the.devkitfile, and do not use console Java for it.CLEAR_GENERATION_PLANdetaches. Seereferences/attaching-plans.md. - A DevKit carries the plan only if it also exports the plan's solution and the languages the plan names:
mps_mcp_module_dependencyADD from the DevKit files a Language target into its exported languages, a Solution into its exported solutions, a DevKit into its extended devkits. - A facet plan beats every DevKit plan of the solution's models. Only DevKits a model imports directly count; an extended DevKit's plan is not inherited. A model may get at most one main plan; extra DevKits may add
PlanContributions only. ConceptListSelectoris not supported: building a plan with it throws, so every model under the plan fails to generate. Condition forks withParameterEquals(references/fork-selectors.md).- An explicit plan runs only what it names. A used language no step covers is
NOT_IN_PLANand stays untransformed; generators the default plan pulls in on its own (e.g.jetbrains.mps.lang.core) do not run. Name the target languages' generators too (e.g. a step forjetbrains.mps.baseLanguage). - Plans and checkpoints are identified by name. Renaming a plan or a checkpoint renames its persisted checkpoint models; two plans with one name collide.
- A plan edit does not make models dirty. After changing or attaching a plan, make with
rebuild=true. Plan.stepsis1..n,LanguageEntry.languageandGeneratorModulePointer.moduleare required.- Do not hand-edit serialized
.mps,.devkitor.msdfiles. Use MPS MCP tools.
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/aspect-model-stereotypes.md 8.6 KB
- references/attaching-plans.md 5.5 KB
- references/authoring-checklist.md 1.5 KB
- references/checkpoints.md 3.1 KB
- references/composition-and-fork.md 4.9 KB
- references/concept-quick-reference.md 3.0 KB
- references/fork-selectors.md 3.5 KB
- references/maintaining-plans.md 4.5 KB
- references/model-attributes.md 1.5 KB
- references/plan-setup.md 2.7 KB
- references/step-catalog.md 1.3 KB
- references/transform-and-applygenerators.md 7.4 KB
- references/verification-and-discovery.md 4.2 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed · +3 lines · +36 tokens per session ec7afd6bec4f
- 11d ago Changed d5de5d0962fb
- 1mo ago Changed · +6 lines 41cea9fbdfeb
- 2mo ago First seen · 60 lines · 101 tokens per session scan A 50a89c2d392d
mps-aspect-generation-plan is a skill published in the GitHub repository JetBrains/MPS (1,666 stars, last pushed yesterday), licensed Apache-2.0. It adds 137 tokens to every session and 1,864 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
mps-aspect-generation-plan compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| mps-aspect-generation-planJetBrains/MPS | Skill | 1.7k | yesterday | Apache-2.0 | A | 137 | Claude Code, Codex |
| langiumeclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 33 | Claude Code |
| lai-gen-evalseclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 42 | Claude Code |
| laieclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 52 | Claude Code |
| lai-gen-descriptoreclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 49 | Claude Code |
| lai-gen-mcpeclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 43 | Claude Code |
| lai-gen-language-skilleclipse-langium/langium-ai | Skill | 31 | 4d ago | MIT | A | 33 | Claude Code |