Official agent skill

Mps Aspect Dataflow

by JetBrains in JetBrains/MPS

A skill your agent uses when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking.

OfficialApache-2.0Auto-check passedDevelopment

Install Mps Aspect Dataflow

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

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

GitHub CLI
$ gh skill install JetBrains/MPS mps-aspect-dataflow --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-dataflow .claude/skills/mps-aspect-dataflow && 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-dataflow
GitHub stars
1.7k
Token cost
~1.9k tokens
SKILL.md length
836 words
Files
17 (incl. references)
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking.

  • Works in 6 steps: Create the dataflow model with… → Create a DataFlowBuilderDeclaration root… → Add a BuilderBlock child with a body (BL… → …
  • Debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking
  • SKILL.md covers Loading companion skills, Mental Model, Critical Directives and Common-Path Workflow, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mps Aspect Dataflow is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking. Covers DataFlowBuilderDeclaration, BuilderBlock, emit instructions (code for, jump, ifjump, label, read, write, ret, mayBeUnreachable), positions (AfterPosition, BeforePosition, LabelPosition), the jetbrains.mps.lang.dataFlow language, the NodeParameter implicit, BL+smodel usage inside builder bodies, and IBuilderMode for advanced analyses such as…

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files (for example `references/aspect-model-stereotypes.md`, `references/baselanguage-builder-index.md` and `references/concept-catalog.md`).

It sits in Development. 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

  • Debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking

Example prompts

  • “/mps-aspect-dataflow”

Workflow steps

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

  1. Create the dataflow model with mps_mcp_create_model (moduleName: "", modelName: ".dataFlow") if absent. The aspect ID is dataFlow…
  2. Create a DataFlowBuilderDeclaration root node; set conceptDeclaration to the concept being described; give it a name.
  3. Add a BuilderBlock child with a body (BL StatementList).
  4. Emit instructions: delegate to children with EmitCodeForStatement; model branches with EmitIfJumpStatement + EmitLabelStatement; record…
  5. For loops, use BeforePosition/AfterPosition to encode loop-back/exit edges; wrap potentially-unreachable instructions in…
  6. Validate with mps_mcp_check_root_node_problems. For tricky cases, inspect an existing baseLanguage builder via mps_mcp_print_node with…

What it can do on your machine

Read from SKILL.md and the folder at commit a92f944. 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 Dataflow loads about 1.9k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 139 tokens; SKILL.md has 836 words of instructions outside code blocks.

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

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 a92f944, republished under its Apache-2.0 licence (© JetBrains). 836 words, ~1,917 tokens.

Download SKILL.mdSave it as .claude/skills/mps-aspect-dataflow/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.
name
mps-aspect-dataflow
description
Use when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking. Covers DataFlowBuilderDeclaration, BuilderBlock, emit instructions (code for, jump, ifjump, label, read, write, ret, mayBeUnreachable), positions (AfterPosition, BeforePosition, LabelPosition), the jetbrains.mps.lang.dataFlow language, the NodeParameter implicit, BL+smodel usage inside builder bodies, and IBuilderMode for advanced analyses such as nullable/non-null tracking.
type
reference

MPS Dataflow 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 dataflow aspect (jetbrains.mps.lang.dataFlow, l:7fa12e9c-b949-4976-b4fa-19accbc320b4) lets a language describe how control and data flow through nodes of a concept. MPS uses that information for reachability analysis, uninitialised-variable checks, and (via IBuilderMode) richer flow analyses such as nullable tracking.

Mental Model

Each DataFlowBuilderDeclaration answers: given a node of concept X, in what order might execution visit its children, and which variables are read or written?

The builder body is a BL StatementList (inside a BuilderBlock). You use normal BL control flow (if, foreach, local variables) to compute which emit instructions to output at runtime. The node implicit parameter (concept NodeParameter) is always in scope — its type is the concept referenced by conceptDeclaration, giving smodel-typed access to children and references.

The MPS dataflow engine builds a control-flow graph from the emitted instructions, then runs analyses (unreachable code, uninitialised variable reads) on that graph. The engine only traces the paths you declare; if no builder exists for a concept, MPS falls back to delegating all children in declaration order.

Critical Directives

  • code for is delegation, not a call. Never use jump for child delegation. Use EmitCodeForStatement to inline a child's own builder at this point.
  • ifjump semantics: the jump is taken when the condition is FALSE. Use it after code for node.condition to model branching.
  • Labels are node references, not string lookups. EmitLabelStatement.name is display-only; jumps reference the label node via LabelPosition.label. Two labels with the same string are still distinct targets.
  • Always null-guard 0..1 children with BL if (node.child != null) before emitting code for node.child.
  • write node vs write node.link: use write node (just NodeParameter as the variable expression) when the concept node is the variable being declared. Use write node.link (via SLinkAccess) when the node merely references the variable being written.
  • Leaf concepts need no builder. The engine treats unbuilt concepts as no-ops, or for ordinary parents delegates to children in declaration order.
  • Do not hand-edit serialized .mps dataflow files. Use MPS MCP node tools.

Common-Path Workflow

  1. Create the dataflow model with mps_mcp_create_model (moduleName: "<lang>", modelName: "<lang>.dataFlow") if absent. The aspect ID is dataFlow — camelCase, case-sensitive, no @ suffix; spelling it dataflow (lowercase) produces a utility model that MPS will not recognise. See aspect-model-stereotypes.md. Add jetbrains.mps.lang.dataFlow (and transitively jetbrains.mps.baseLanguage) as used languages on the model.
  2. Create a DataFlowBuilderDeclaration root node; set conceptDeclaration to the concept being described; give it a name.
  3. Add a BuilderBlock child with a body (BL StatementList).
  4. Emit instructions: delegate to children with EmitCodeForStatement; model branches with EmitIfJumpStatement + EmitLabelStatement; record variable use with EmitReadStatement / EmitWriteStatement; mark exits with EmitRetStatement.
  5. For loops, use BeforePosition/AfterPosition to encode loop-back/exit edges; wrap potentially-unreachable instructions in EmitMayBeUnreachable.
  6. Validate with mps_mcp_check_root_node_problems. For tricky cases, inspect an existing baseLanguage builder via mps_mcp_print_node with deep: true.
Show full SKILL.md (275 more words)Show less
  • mps-model-manipulation — BL + smodel code inside builder bodies (DotExpression, SLinkAccess, NodeParameter, behavior method calls); for a builder body open only references/dot-expression-basics.md in the mps-model-manipulation skill root after loading that companion skill from the same origin.
  • mps-aspect-behavior — for behavior methods called from builders to compute target nodes (e.g. getLoopOrSwitch, getReturnJumpTarget).
  • mps-aspect-typesystem — when the dataflow you emit must agree with type checks.
  • mps-node-editing — generic JSON-blueprint node creation/replacement workflow.

Reference Index

Start here — most common case: writing one builder for one concept → read only references/json-patterns.md (the verified blueprint shapes), plus references/concept-catalog.md when you need an exact concept/role name; a builder that validates but analyses wrongly → only references/rules-and-pitfalls.md.

  • Concept catalog — open when you need exact concept names, properties, children, cardinalities, or abstract bases for DataFlowBuilderDeclaration, BuilderBlock, every emit statement, every position type, and the abstract bases. See references/concept-catalog.md.
  • Verified JSON patterns — open when constructing or editing a builder as JSON for mps_mcp_* tools. Includes variable read, single-child delegation, return-with-finally, if/elsif/else, while loop, assignment, variable declaration, break to ancestor, and a custom inverted-condition statement. See references/json-patterns.md.
  • Rules and pitfalls — open when a builder validates but the engine reports surprising reachability or variable-use results, when choosing between AfterPosition and LabelPosition, or before using modes/IBuilderMode. See references/rules-and-pitfalls.md.
  • Language setup and engine invocation — open when wiring a new dataflow model, or when debugging "why is my builder not being called". See references/setup-and-engine.md.
  • BaseLanguage builder index — open when you want to study a known-good builder for IfStatement, WhileStatement, ReturnStatement, BreakStatement, VariableDeclaration, TryFinallyStatement, SwitchStatement, ForStatement, etc. Lists builder names and persistent nodeReferences in r:00000000-0000-4000-0000-011c895902c2. See references/baselanguage-builder-index.md.
  • Sample language reference — open when looking for a minimal complete builder for a custom language (UnlessStatement_DataFlow). See references/sample-language-reference.md.

© 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 16 other files (references) in .agents/skills/mps-aspect-dataflow of JetBrains/MPS.

  • SKILL.md
  • references/aspect-model-stereotypes.md
  • references/baselanguage-builder-index.md
  • references/concept-catalog.md
  • references/json-patterns.md
  • references/json-patterns/pattern-1-variable-read.md
  • references/json-patterns/pattern-2-minimal-delegation.md
  • references/json-patterns/pattern-3-return-statement.md
  • references/json-patterns/pattern-4-if-statement.md
  • references/json-patterns/pattern-5-while-loop.md
  • references/json-patterns/pattern-6-assignment.md
  • references/json-patterns/pattern-7-concept-is-the-variable.md
  • references/json-patterns/pattern-8-exit-to-enclosing-container.md
  • references/json-patterns/pattern-9-inverted-condition.md
  • references/rules-and-pitfalls.md
  • references/sample-language-reference.md
  • references/setup-and-engine.md

Open the folder on GitHubat commit a92f944

Compare with similar skills

Mps Aspect Dataflow 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 Dataflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Aspect Dataflow this skillJetBrains/MPS1.7k—~1.9kAutomated safety check: PassApache-2.0
Doc SyncJetBrains/ideavim10k2 repos~2.6kAutomated safety check: PassMIT
ChangelogJetBrains/ideavim10k1 repos~2.7kAutomated safety check: PassMIT
Youtrack CommunityJetBrains/intellij-community21k—~3.2kAutomated safety check: NotesCustom licence
Roo Conflict Resolutionzgsm-ai/costrict4.4k—~2.3kAutomated safety check: PassApache-2.0
Extensions API MigrationJetBrains/ideavim10k—~1.7kAutomated safety check: PassMIT

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
  • 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
  • Roo Conflict Resolution

    zgsm-ai/costrict

    Provides comprehensive guidelines for resolving merge conflicts intelligently using git history and commit context.

    4.4k GitHub stars~2.3k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Extensions API Migration

    JetBrains/ideavim

    Official

    Migrates IdeaVim extensions from the old VimExtensionFacade API to the new @VimPlugin annotation-based API.

    10k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Architecture Canvas

    yulonghe97/draw-architecture

    Turn any system architecture into an interactive, pannable/zoomable canvas diagram (dark by default with a light switcher, JetBrains Mono, plane-coloured bands, click-to-isolate focus, PNG export) —…

    146 GitHub stars~1.3k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from JetBrains/MPS

All 40 skills in this repo
  • Official

    Analyze an MPS language by name — discover concepts, properties, references, children, aspects (editor/constraints/behavior), and metadata.

    1.7k GitHub stars~1.4k tokensUpdated today
    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~4.7k tokensUpdated today
    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 today
    Auto-check passed
  • Mps MCP Workflow

    JetBrains/MPS

    Official

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

    1.7k GitHub stars~5.8k tokensUpdated today
    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 today
    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 today
    Auto-check passed

Works with

Categories

Questions about Mps Aspect Dataflow

What does Mps Aspect Dataflow do?

A skill your agent uses when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking. Mps Aspect Dataflow is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking.

When should I use Mps Aspect Dataflow?

Mps Aspect Dataflow fits situations like: debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking.

How do I install Mps Aspect Dataflow in Claude Code?

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

How do I install Mps Aspect Dataflow in Codex?

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

Can I use Mps Aspect Dataflow 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-dataflow -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-dataflow, .gemini/skills/mps-aspect-dataflow, .github/skills/mps-aspect-dataflow and .opencode/skills/mps-aspect-dataflow in your project.

What does Mps Aspect Dataflow need to run?

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

Does Mps Aspect Dataflow 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 Dataflow 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 Dataflow use?

Mps Aspect Dataflow 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 Dataflow use?

About 1.9k tokens (SKILL.md is roughly 7.7k 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 9.7k tokens, read only when the agent opens those files.

What are the alternatives to Mps Aspect Dataflow?

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

Who maintains Mps Aspect Dataflow?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/MPS, which has 1,660 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 7, 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.