Official agent skill

Mps Aspect Actions

by JetBrains in JetBrains/MPS

A skill your agent uses when defining or editing MPS node factories (the "actions" aspect) — NodeFactories roots, per-concept NodeFactory setup functions that initialize a freshly created node and…

OfficialApache-2.0Auto-check passed

Install Mps Aspect Actions

skills CLI
$ npx skills add JetBrains/MPS --skill mps-aspect-actions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JetBrains/MPS mps-aspect-actions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/mps-aspect-actions .claude/skills/mps-aspect-actions && rm -rf skills-src

Use ~/.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/

Facts

Skill name
mps-aspect-actions
GitHub stars
1.7k
Token cost
~2.2k tokens
SKILL.md length
936 words
Files
8 (incl. references)
Skills in repo
41
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when defining or editing MPS node factories (the "actions" aspect) — NodeFactories roots, per-concept NodeFactory setup functions that initialize a freshly created node and…

  • Works in 5 steps: Ensure an actions model exists… → Create the NodeFactories root via… → For each concept that needs custom… → …
  • Editing MPS node factories (the actions aspect) — NodeFactories roots
  • SKILL.md covers Loading companion skills, Critical Directives, Common-Path Workflow and Implicit Parameters of…, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mps Aspect Actions is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when defining or editing MPS node factories (the "actions" aspect) — NodeFactories roots, per-concept NodeFactory setup functions that initialize a freshly created node and optionally copy data from a replaced sampleNode, plus the actions aspect's CopyPasteHandlers and PasteWrappers roots. Reach for this skill when a substitution, side transform, completion replacement, or add new initialized(...) should preserve fields from the node it is replacing, or when defaults set in a constructor are not enough.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/aspect-model-stereotypes.md`, `references/common-failures.md` and `references/concept-reference.md`).

It works with JetBrains IDEs. The repository describes itself as: JetBrains Meta programming System. The licence is Apache-2.0.

When your agent uses it

  • Editing MPS node factories (the actions aspect) — NodeFactories roots
  • Per-concept NodeFactory setup functions that initialize a freshly created node and optionally copy data from a replaced sampleNode
  • Plus the actions aspects CopyPasteHandlers and PasteWrappers roots

Example prompts

  • “actions”
  • “/mps-aspect-actions”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Ensure an actions model exists (/models/.actions.mps; create with mps_mcp_create_model, passing moduleName: "" and modelName: ".actions"…
  2. Create the NodeFactories root via mps_mcp_insert_root_node_from_json (blueprint in references/json-blueprints.md). Set name.
  3. For each concept that needs custom initialization, add a NodeFactory child via mps_mcp_update_node. Set applicableConcept; attach a…
  4. Fill the body. Typical pattern: ifInstanceOf (sampleNode is original) { newNode. = original.; ... }. Cross-type narrowing is allowed — see…
  5. Validate with mps_mcp_check_root_node_problems, rebuild the language, exercise in a sandbox.

What it can do on your machine

Read from SKILL.md and the folder at commit 3e9cfcd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mps Aspect Actions loads about 2.2k tokens when it runs, and up to ~9.6k if it reads all its reference files. Until then it costs about 136 tokens; SKILL.md has 936 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~136
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from JetBrains/MPS at commit 3e9cfcd, republished under its Apache-2.0 licence (© JetBrains). 936 words, ~2,222 tokens.

Download SKILL.mdSave it as .claude/skills/mps-aspect-actions/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
mps-aspect-actions
description
Use when defining or editing MPS node factories (the "actions" aspect) — `NodeFactories` roots, per-concept `NodeFactory` setup functions that initialize a freshly created node and optionally copy data from a replaced `sampleNode`, plus the actions aspect's `CopyPasteHandlers` and `PasteWrappers` roots. Reach for this skill when a substitution, side transform, completion replacement, or `add new initialized(...)` should preserve fields from the node it is replacing, or when defaults set in a constructor are not enough.
type
reference

MPS Actions Aspect

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.

The actions aspect customizes how new nodes of a concept are constructed by the MPS editor — typically during substitution, side transformations, right-transform/<ctrl-space> replacement, or auto-replace. The framework produces an empty instance of the target concept; the setup function then populates it, often copying fields from the node it is replacing (sampleNode). Lives in <lang>/models/<lang>.actions.mps, language jetbrains.mps.lang.actions. The aspect also hosts copy/paste handlers and paste wrappers (see references/copy-paste-and-paste-wrappers.md).

Critical Directives

  • One NodeFactories root per actions model; add per-concept NodeFactory children to it. Do not create one root per concept.
  • One NodeFactory per applicableConcept. Multiple factories for the same concept are not merged.
  • The setup function runs before newNode is attached to the model. newNode.parent, ancestors, and model-wide queries return null/empty. Use the enclosingNode implicit parameter when you need the would-be parent.
  • sampleNode is typed as node<BaseConcept>. Always narrow with ifInstanceOf (sampleNode is <Concept> original) before accessing fields — direct dereference will NPE or fail to compile.
  • Use SPropertyAccess (ref property → PropertyDeclaration) for properties; use SLinkAccess (ref link → LinkDeclaration) for both containment and reference child roles.
  • Factories do not fire for quotations <C()>, model.add root(<C()>), model.add new root(C), or pure rendering. If you need factory-initialised nodes in generator code, use new node<C>() with explicit property assignments or route creation through an intention that calls add new initialized.
  • Edit factories through MPS MCP tools (mps_mcp_insert_root_node_from_json, mps_mcp_update_node, optionally mps_mcp_parse_java_and_insert with featureKind: "STATEMENTS" for the body). Do not hand-edit .mps files.
  • After editing, validate with mps_mcp_check_root_node_problems on the NodeFactories root and rebuild the language.

Common-Path Workflow

  1. Ensure an actions model exists (<lang>/models/<lang>.actions.mps; create with mps_mcp_create_model, passing moduleName: "<lang>" and modelName: "<lang>.actions" — aspect ID actions, case-sensitive, no @ suffix; see aspect-model-stereotypes.md). Used languages: jetbrains.mps.lang.actions, jetbrains.mps.baseLanguage, jetbrains.mps.lang.smodel. Add jetbrains.mps.lang.core as the base. Import the structure model of your language.
  2. Create the NodeFactories root via mps_mcp_insert_root_node_from_json (blueprint in references/json-blueprints.md). Set name.
  3. For each concept that needs custom initialization, add a NodeFactory child via mps_mcp_update_node. Set applicableConcept; attach a NodeSetupFunction with a StatementList body.
  4. Fill the body. Typical pattern: ifInstanceOf (sampleNode is <Concept> original) { newNode.<prop> = original.<prop>; ... }. Cross-type narrowing is allowed — see references/setup-function-bodies.md.
  5. Validate with mps_mcp_check_root_node_problems, rebuild the language, exercise in a sandbox.

Implicit Parameters of NodeSetupFunction

AliasFQNTypeNullableNotes
newNodejetbrains.mps.lang.actions.structure.NodeSetupFunction_NewNodenode<applicableConcept>noThe freshly created empty node. Populate it.
sampleNodejetbrains.mps.lang.actions.structure.NodeSetupFunction_SampleNodenode<BaseConcept>yesNode being replaced, if any. Narrow with ifInstanceOf.
enclosingNodejetbrains.mps.lang.actions.structure.NodeSetupFunction_EnclosingNodenode<BaseConcept>yesProspective parent container; null during root-node creation or programmatic creation outside the editor.
indexjetbrains.mps.lang.actions.structure.NodeSetupFunction_Indexint—0-based position in the parent collection, or 0 if not in a collection.
model(plain VariableReference in generated Java)SModelyesThe SModel newNode will be inserted into. Most factories don't use this.

Signature surfaced in the editor: (newNode, sampleNode, enclosingNode, index, model) -> void.

Show full SKILL.md (378 more words)Show less
  • mps-aspect-behavior — concept constructors are the place to set defaults that don't depend on the node being replaced. Use a constructor for intrinsic defaults, a NodeFactory for context-sensitive carry-over.
  • mps-aspect-intentions — intentions that call add new initialized(...) route through factories. Load the mps-aspect-intentions companion skill from the same origin when this applies, then open references/factory-initialized.md in the mps-aspect-intentions skill root for the NF_* family.
  • mps-aspect-generator — generator output bypasses factories (quotations and add new root do not fire factories). Document where the generator must mimic the factory behavior.
  • mps-model-manipulation — full smodel reference: SLinkAccess vs SPropertyAccess, IfInstanceOfStatement, IfInstanceOfVariable, and the NF_* family. For a setup-function body — copying properties and child links onto newNode — open only references/property-and-mutation-ops.md in the mps-model-manipulation skill root after loading that companion skill from the same origin.
  • mps-aspect-structure-concepts — when adding the concept that applicableConcept targets.
  • mps-aspect-constraints — for canBe* rules that gate insertion before a factory ever runs.

Reference Index

Start here — most common case: one NodeFactory that initializes a freshly created node (optionally copying from sampleNode) → read only references/setup-function-bodies.md, plus references/json-blueprints.md if you insert the root through MCP; copy/paste behaviour → only references/copy-paste-and-paste-wrappers.md.

  • Open references/node-factories-and-triggers.md when you need the validated concept ref for NodeFactories / NodeFactory / NodeSetupFunction, the rule that MPS runs every applicable factory up the concept's super-concept and implemented-interface chain (not just the one whose applicableConcept exactly matches), and the precise list of triggers that fire / do not fire a factory.
  • Open references/setup-function-bodies.md when writing the function body — copying properties vs. child links (SPropertyAccess vs SLinkAccess), cross-type narrowing in ifInstanceOf, the verbatim ChemMastery (same-type property copy) and Kaja (cross-type child-link copy) examples, and the JSON shape for an AssignmentExpression over SLinkAccess.
  • Open references/json-blueprints.md when inserting the NodeFactories root or a NodeFactory child via MCP — minimal blueprints, the full IfInstanceOfStatement body, and the tip on using mps_mcp_parse_java_and_insert to skip the blueprint.
  • Open references/copy-paste-and-paste-wrappers.md when the language needs custom copy pre-processing, paste post-processing, or paste-time wrapping of nodes — these other roots also live in the actions aspect.
  • Open references/concept-reference.md for the validated FQN/ref table — the jetbrains.mps.lang.actions concepts plus the supporting BaseLanguage and smodel concepts used in setup bodies.
  • Open references/common-failures.md when a freshly created node always has defaults, sampleNode.<prop> does not compile, enclosingNode is unexpectedly null, the factory fires twice, or it does not fire from quotations / generator code.

© JetBrains, 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

Files

SKILL.md and 7 other files (references) in .agents/skills/mps-aspect-actions of JetBrains/MPS.

  • SKILL.md
  • references/aspect-model-stereotypes.md
  • references/common-failures.md
  • references/concept-reference.md
  • references/copy-paste-and-paste-wrappers.md
  • references/json-blueprints.md
  • references/node-factories-and-triggers.md
  • references/setup-function-bodies.md

Open the folder on GitHubat commit 3e9cfcd

Compare with similar skills

Mps Aspect Actions 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.

Mps Aspect Actions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Aspect Actions this skillJetBrains/MPS1.7k—~2.2kAutomated safety check: PassApache-2.0
Doc SyncJetBrains/ideavim10k2 repos~2.6kAutomated safety check: PassMIT
Evals Contextzgsm-ai/costrict4.4k1 repos~1.9kAutomated safety check: PassApache-2.0
ChangelogJetBrains/ideavim10k1 repos~2.7kAutomated safety check: PassMIT
Youtrack CommunityJetBrains/intellij-community21k—~3.2kAutomated safety check: NotesCustom licence
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0

Similar skills

  • Doc Sync

    JetBrains/ideavim

    Official

    Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.

    10k GitHub starsUsed in 2 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Evals Context

    zgsm-ai/costrict

    Provides context about the CoStrict evals system structure in this monorepo.

    4.4k GitHub starsUsed in 1 repo~1.9k tokens
    AI & LLM EngineeringAuto-check passed
  • Changelog

    JetBrains/ideavim

    Official

    Maintains the IdeaVim changelog (CHANGES.md). An agent skill from JetBrains/ideavim.

    10k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • Youtrack Community

    JetBrains/intellij-community

    Official

    YouTrack CLI for a community checkout; the monorepo uses youtrack.

    21k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check: notes
  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Compare Python Typecheckers

    JetBrains/intellij-community

    Official

    Compare Python type inference with ty, pyrefly, and basedpyright.

    21k GitHub stars~617 tokensUpdated today
    Auto-check passed

More from JetBrains/MPS

All 41 skills in this repo
  • Official

    Analyze an MPS language by name — discover concepts, properties, references, children, aspects (editor/constraints/behavior), metadata, and answer type questions (is A a subtype of B, common…

    1.7k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Mps Node Editing

    JetBrains/MPS

    Official

    Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair.

    1.7k GitHub stars~5.1k tokensUpdated yesterday
    Auto-check passed
  • Official

    Open an MPS project in a running or freshly started MPS instance when MCP tools fail because no project is open (welcome screen), close an open project with mpsmcpcloseproject, or create a new empty…

    1.7k GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Mps MCP Workflow

    JetBrains/MPS

    Official

    Complete JetBrains MPS workflow guide for DSL projects — models, languages, generators, node JSON blueprints, type queries, validation, MPS MCP tool usage, and the index of companion skills.

    1.7k GitHub stars~6.6k tokensUpdated yesterday
    Auto-check passed
  • Bugfix Workflow

    JetBrains/MPS

    Official

    Structured MPS bugfix workflow driven by a YouTrack issue ID — preflight tool checks, version/branch derivation, parallel-agent problem analysis, solution design, branch creation, implementation…

    1.7k GitHub stars~4.4k tokensUpdated yesterday
    Auto-check passed
  • Official

    Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect.

    1.7k GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Mps Aspect Actions

What does Mps Aspect Actions do?

A skill your agent uses when defining or editing MPS node factories (the "actions" aspect) — NodeFactories roots, per-concept NodeFactory setup functions that initialize a freshly created node and…. Mps Aspect Actions is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when defining or editing MPS node factories (the "actions" aspect) — NodeFactories roots, per-concept NodeFactory setup functions that initialize a freshly created node and optionally copy data from a replaced sampleNode, plus the actions aspect's CopyPasteHandlers and PasteWrappers roots.

When should I use Mps Aspect Actions?

Mps Aspect Actions fits situations like: editing MPS node factories (the actions aspect) — NodeFactories roots; per-concept NodeFactory setup functions that initialize a freshly created node and optionally copy data from a replaced sampleNode; plus the actions aspects CopyPasteHandlers and PasteWrappers roots.

How do I install Mps Aspect Actions in Claude Code?

Run `npx skills add JetBrains/MPS --skill mps-aspect-actions -a claude-code`. Or copy the skill folder (.agents/skills/mps-aspect-actions in JetBrains/MPS) into .claude/skills/mps-aspect-actions in your project. Claude Code loads it when a task matches its description.

How do I install Mps Aspect Actions in Codex?

Run `npx skills add JetBrains/MPS --skill mps-aspect-actions -a codex`. Or copy the skill folder (.agents/skills/mps-aspect-actions in JetBrains/MPS) into .agents/skills/mps-aspect-actions in your project. Codex loads it when a task matches its description.

Can I use Mps Aspect Actions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/MPS --skill mps-aspect-actions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mps-aspect-actions, .gemini/skills/mps-aspect-actions, .github/skills/mps-aspect-actions and .opencode/skills/mps-aspect-actions in your project.

What does Mps Aspect Actions need to run?

SKILL.md names no scripts, command-line tools or credentials: Mps Aspect Actions is instructions for the agent only.

Does Mps Aspect Actions access the network?

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.

Is Mps Aspect Actions safe to install?

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.

What licence does Mps Aspect Actions use?

Mps Aspect Actions 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.

How many tokens does Mps Aspect Actions use?

About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.4k tokens, read only when the agent opens those files.

What are the alternatives to Mps Aspect Actions?

Skills that share tags, products or a category with Mps Aspect Actions: Doc Sync (JetBrains/ideavim, 10k stars), Evals Context (zgsm-ai/costrict, 4.4k stars), Changelog (JetBrains/ideavim, 10k stars) and Youtrack Community (JetBrains/intellij-community, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mps Aspect Actions?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/MPS, which has 1,661 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 8, 2026.

Source: JetBrains/MPS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.