Use when defining or modifying an MPS generation plan — explicit ordering of generators, checkpoints for cross-model reference resolution, forks for parallel branches, IncludePlan composition, conditional PlanContribution activation, ParameterEquals/ConceptListSelector fork selectors, and InitModelAttributes for targetFacet routing. Apply when working with @genplan models, the jetbrains.mps.lang.generator.plan language, attaching plans via DevKits or the Custom generation facet, or debugging cross-model mapping label resolution.
78
100%
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
A generation plan (Plan) is an ordered script that controls which generators run, in what sequence, and with what synchronization points. Without a plan, MPS determines order from mutual generator priorities and dependencies. A plan lets language designers specify that ordering once, in a single place, without requiring all involved languages to know about each other.
Language: jetbrains.mps.lang.generator.plan (id 7ab1a6fa-0a11-4b95-9e48-75f363d6cb00, version 3)
Also requires: jetbrains.mps.lang.smodel (for LanguageId / LanguageIdentity nodes)
.java files and XML descriptors from the same input).PlanContribution).genplan stereotype. File name pattern: <name>@genplan.mps. Pass modelName: "<name>@genplan" to mps_mcp_create_model. See aspect-model-stereotypes.md for all model identifiers. Set doNotGenerate=true (MPS adds this automatically).Plan.steps is 1..n. A plan with no steps is invalid.LanguageEntry.language (LanguageId) and GeneratorModulePointer.module (ModulePointer) are each cardinality 1 — missing them is a validation error.Checkpoint sits between them..mps genplan files. Use MPS MCP node tools.genplan (file like MyPlan@genplan.mps).jetbrains.mps.lang.generator.plan and jetbrains.mps.lang.smodel.Plan root node with a descriptive name.Transform steps in order (one per phase); group parallel-safe languages in one Transform with multiple LanguageEntry children.Checkpoint steps wherever downstream generators must resolve cross-model references.Fork steps for any output variant requiring its own branch (e.g. XML alongside Java); or add a separate PlanContribution root for conditional activation.mps_mcp_check_root_node_problems.mps-aspect-generator — for the generator rules and templates that the plan orchestrates.mps-aspect-textgen — for the text serialization that consumes generated models.mps-aspect-accessories — for DevKit setup, used languages, and runtime solutions that ship with a plan.mps-node-editing — generic JSON-blueprint node creation workflow.Transform, ApplyGenerators, Checkpoint, IncludePlan, Fork, CheckpointDeclaration, CheckpointSynchronization, DocumentationStep. See references/step-catalog.md.Transform and ApplyGenerators — open when wiring languages by identity (LanguageEntry.kind = Transform / TargetAt / Extend) or naming specific generator modules. Includes the verified "the plan" and "WithCompiledGenerator" JSON examples. See references/transform-and-applygenerators.md.InPlaceCheckpointSpec, DeclaredCheckpointSpec, InPlaceCheckpointRefSpec. See references/checkpoints.md.IncludePlan, Fork, and PlanContribution — open when composing plans from smaller pieces, splitting branches, or activating a conditional contribution without modifying the base plan. Includes "GenPlanWithFork", "LangConstraintsPlan", and "DocumentationPlan" JSON examples. See references/composition-and-fork.md.ParameterEquals or ConceptListSelector, or defining a ParameterDeclaration. See references/fork-selectors.md.InitModelAttributes, targetFacet) — open when routing the output of a branch to a specific facet such as documentation generation. Includes the verified ModelAttributeAssignment blueprint. See references/model-attributes.md.conceptReference strings or qualified concept names. See references/concept-quick-reference.md.FIND_INSTANCES, search by name) or to validate a plan using MPS UI and MCP tools. See references/verification-and-discovery.md.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.