Official agent skill

Mps Language Modularity

by JetBrains in JetBrains/MPS

A skill your agent uses when designing how multiple MPS languages relate or compose — choosing between language referencing, extension, reuse, and embedding, or deciding where a cross-language…

OfficialApache-2.0Auto-check passedAI & LLM Engineering

Install Mps Language Modularity

skills CLI
$ npx skills add JetBrains/MPS --skill mps-language-modularity -a claude-code

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

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

At a glance

A skill your agent uses when designing how multiple MPS languages relate or compose — choosing between language referencing, extension, reuse, and embedding, or deciding where a cross-language…

  • Works in 3 steps: Must the new constructs be written… → (separate fragments) May the new… → (inline syntax) Are the new constructs…
  • Designing how multiple MPS languages relate
  • SKILL.md covers Loading companion skills, Critical directives, The two questions (the 2×2) and Decision procedure, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mps Language Modularity is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when designing how multiple MPS languages relate or compose — choosing between language referencing, extension, reuse, and embedding, or deciding where a cross-language dependency should live and how generated code interacts. Covers the 2×2 modularity taxonomy adapted to MPS, a decision procedure, per-kind recipes (references + search scopes; subconcepting + overloaded operations; abstract hooks + adapter languages + separated/interwoven generation; guest + composition languages + type bridges), the…

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/design-principles.md`, `references/embedding.md` and `references/extension.md`).

It sits in AI & LLM Engineering, covering Embeddings. The repository describes itself as: JetBrains Meta programming System. The licence is Apache-2.0.

When your agent uses it

  • Designing how multiple MPS languages relate
  • Compose — choosing between language referencing
  • Deciding where a cross-language dependency should live and how generated code interacts

Example prompts

  • “/mps-language-modularity”

Workflow steps

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

  1. Must the new constructs be written inline, among the host's nodes in the same fragment/root?
  2. (separate fragments) May the new language know the other directly?
  3. (inline syntax) Are the new constructs built specifically for this host, or do they come from a language that must stay independent (a…

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 Language Modularity loads about 2.4k tokens when it runs, and up to ~9.8k if it reads all its reference files. Until then it costs about 230 tokens; SKILL.md has 1,017 words of instructions outside code blocks.

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

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). 1,017 words, ~2,362 tokens.

Download SKILL.mdSave it as .claude/skills/mps-language-modularity/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
mps-language-modularity
description
Use when designing how multiple MPS languages relate or compose — choosing between language referencing, extension, reuse, and embedding, or deciding where a cross-language dependency should live and how generated code interacts. Covers the 2×2 modularity taxonomy adapted to MPS, a decision procedure, per-kind recipes (references + search scopes; subconcepting + overloaded operations; abstract hooks + adapter languages + separated/interwoven generation; guest + composition languages + type bridges), the annotations escape hatch, and per-kind validation. This is the design tier above the aspect-implementation skills: it picks the strategy, then routes into the relevant mps-aspect-* skills (structure, constraints, typesystem, generator, generation-plan, intentions) and mps-tests. Reach for it before authoring aspects, or whenever one language must see, extend, embed, or adapt another.
type
reference

MPS Language Modularity & Composition

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 design tier for multi-language MPS work: before authoring aspects, decide how the languages relate. This skill turns a 2×2 taxonomy into a decision procedure and routes each choice into the aspect skills that implement it.

The MPS-specific lesson: syntax composition is the easy part. MPS is projectional — no parser, no grammar to become ambiguous — so combining notations needs far less work than in parser-based tools (only alias clashes and completion UX still need a glance). The real difficulty is semantic: scopes, type systems, generator contracts, and migration. Choosing a modularity kind is mostly choosing where the dependency lives and how generated code interacts.

Critical directives

  • Spend effort on semantics, not syntax. Scopes, type bridges, generator contracts, and migration are where modular languages break.
  • Two questions decide the kind (below). Answer them before touching any aspect.
  • MPS "extends" ≠ the design category. At the module level MPS calls almost any inter-language use "extension"; that tool-level dependency is independent of whether your design is referencing/extension/reuse/embedding. See references/design-principles.md.
  • References vs. containment is the structural fork. Model a foreign element as a reference → referencing. Contain a foreign concept as a child → inline composition (extension vs embedding). Hard to reverse — pick deliberately.
  • Reuse must be designed in. Abstract hooks, behavior contracts, and generator placeholders must exist before you need them; after-the-fact reuse (especially interwoven generation) is severely limited.
  • The exported surface is an API. Behavior-method names, interface concepts, placeholder IDs, mapping labels, and generated abstract signatures are cross-language contracts — stabilize, version, and test them.

The two questions (the 2×2)

The four-kind taxonomy (referencing / extension / reuse / embedding) was introduced by Markus Voelter in his work on language composition (DSL Engineering). This skill adapts it to MPS practice.

New language MAY depend on the otherNew language may NOT depend (independent core)
Separate fragments (no inline syntax)ReferencingReuse (via an adapter language)
Same fragment (inline syntax)ExtensionEmbedding (via a composition language)

"Inline / same fragment" means the concrete syntax the user writes — not where generated code ends up. Whether generated code is physically inlined is a separate axis (separated-vs-interwoven within Reuse), orthogonal to the kind.

Decision procedure

  1. Must the new constructs be written inline, among the host's nodes in the same fragment/root?
    • No → step 2. Yes → step 3.
  2. (separate fragments) May the new language know the other directly?
    • Yes → Referencing — cross-language references + search scopes.
    • No → Reuse — keep the core independent; build a separate adapter language that depends on both.
  3. (inline syntax) Are the new constructs built specifically for this host, or do they come from a language that must stay independent (a reusable guest)?
    • Built for the host, may depend on it → Extension — subconcept the host's concepts; integrate type rules and generators additively.
    • Must stay independent → Embedding — add a third composition language depending on both host and guest, so neither needs to know the other.

If the goal is only to attach metadata to existing nodes (traceability, variability) rather than compose semantics, none of the four applies — see the annotations escape hatch in references/design-principles.md.

Show full SKILL.md (409 more words)Show less

The four kinds — essence, mechanism, routing

KindOne-linerInline?Core dependencyTypical MPS mechanismGenerated-code relationImplement with
ReferencingNew language points into another's nodes; fragments stay separate (a dashboard widget → a metric in a catalog)NoYesCross-language references + search scopes + behavior naming contractsSeparate generators, shared naming contractsstructure-concepts, constraints, behavior
ExtensionNew concepts subtype base concepts, legal wherever the base is (MPS's own collections/closures over BaseLanguage)YesYesSubconcept base concepts; additive typesystem (overloaded operations); reduction/weaving assimilationAssimilated into the base languagestructure-concepts, typesystem, generator, intentions
ReuseIndependently valuable core exposing hooks an adapter fills (a state-machine core whose Guard/Action an adapter binds)No (in core)No in core; yes in adapterAbstract hook concepts + abstract behavior; separate adapter language; generator placeholders/prioritiesSeparated or interwovenstructure-concepts, behavior, generator, generation-plan
EmbeddingIndependent guest dropped inline in a host; a composition language bridges (an expression language inside a business rule)YesHost/guest independent; composition layer depends on bothHost owns a child of guest's abstract concept + scope/type/generator adaptersReuses guest generator; host-specific reductionsconstraints, typesystem, generator, intentions

If you don't actually need the guest to stay independent, extension is materially cheaper than embedding — prefer it.

Wiring the dependencies any strategy needs (used/extended languages, runtime solutions, accessory models) is covered by the mps-aspect-accessories companion skill.

Reference index

  • references/referencing.md — reference links, smart references, search scopes, behavior naming contracts.
  • references/extension.md — subconcepting, overloaded operations, assimilation/weaving generators, placeholder hooks, upgrade intentions.
  • references/reuse.md — abstract hooks, abstract behavior contracts, adapter languages, separated-vs-interwoven generation.
  • references/embedding.md — composition language, narrow scopes, host/guest type bridges, reusing the guest's lowering pipeline.
  • references/design-principles.md — cross-cutting lessons (reuse-designed-in, behavior contracts, specific references, model-to-model assimilation, MPS-"extends" trap) and the annotations escape hatch.
  • references/validation.md — the per-kind test checklist.
  • mps-language-aspects-overview — authoring order and which aspect to edit once a strategy is chosen.
  • mps-language-inheritance — module extends and concept super/sub mechanics used by extension and embedding.
  • mps-tests — NodesTestCase / EditorTestCase patterns the validation checklist relies on.

Validation

Projectional reality changes what to test: invalid syntax usually cannot be entered, so parser-style tests are nearly irrelevant. Test the semantic seams — visible vs. invisible scope targets, host/guest type bridges, generator contracts (placeholder IDs, abstract signatures, priorities), and migration of representative example models. Run the model checker over the example suite after every structural or generator change. Full per-kind checklist: references/validation.md.

Code snippets here are illustrative pseudo-syntax showing the shape of each pattern — implement the real artifacts through MPS MCP tools and the linked aspect skills; never hand-edit .mps files.

© 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 6 other files (references) in .agents/skills/mps-language-modularity of JetBrains/MPS.

  • SKILL.md
  • references/design-principles.md
  • references/embedding.md
  • references/extension.md
  • references/referencing.md
  • references/reuse.md
  • references/validation.md

Open the folder on GitHubat commit a92f944

Compare with similar skills

Mps Language Modularity 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 Language Modularity compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Language Modularity this skillJetBrains/MPS1.7k—~2.4kAutomated safety check: PassApache-2.0
Chroma Vector DatabaseOrchestra-Research/AI-Research-SKILLs13k8 repos~2.3kAutomated safety check: PassMIT
CLIP Image-Text MatchingOrchestra-Research/AI-Research-SKILLs13k8 repos~1.7kAutomated safety check: PassMIT
SageMaker Serving Image Selectionhuggingface/skills11k1 repos~4.6kAutomated safety check: PassApache-2.0
Codebase Managementgiancarloerra/SocratiCode3.3k1 repos~1.8kAutomated safety check: PassAGPL-3.0
Sentence-Transformers Training Routerhuggingface/skills11k1 repos~2.6kAutomated safety check: PassApache-2.0

Similar skills

  • Chroma Vector Database

    Orchestra-Research/AI-Research-SKILLs

    Shows how to store documents and embeddings in Chroma, query them by similarity with metadata filters, and persist them to disk for RAG and semantic search projects.

    13k GitHub starsUsed in 8 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed
  • CLIP Image-Text Matching

    Orchestra-Research/AI-Research-SKILLs

    Explains OpenAI's CLIP model for zero-shot image classification, image-text similarity, semantic image search and content moderation, with install steps and code patterns.

    13k GitHub starsUsed in 8 repos~1.7k tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.

    11k GitHub starsUsed in 1 repo~4.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Codebase Management

    giancarloerra/SocratiCode

    Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.

    3.3k GitHub starsUsed in 1 repo~1.8k tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Routes a sentence-transformers training task to the right model type and required reference docs and example scripts, covering bi-encoders, rerankers, sparse and multi-vector models.

    11k GitHub starsUsed in 1 repo~2.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Mashup Mods

    rehan-remade/universal-modder

    Build cross-game mashups and total conversions, the "Minecraft inside Elden Ring" or "skateboarding in MW2" kind.

    5.3k GitHub stars~3.3k tokensUpdated today
    AI & LLM EngineeringAuto-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

Questions about Mps Language Modularity

What does Mps Language Modularity do?

A skill your agent uses when designing how multiple MPS languages relate or compose — choosing between language referencing, extension, reuse, and embedding, or deciding where a cross-language…. Mps Language Modularity is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when designing how multiple MPS languages relate or compose — choosing between language referencing, extension, reuse, and embedding, or deciding where a cross-language dependency should live and how generated code interacts.

When should I use Mps Language Modularity?

Mps Language Modularity fits situations like: designing how multiple MPS languages relate; compose — choosing between language referencing; deciding where a cross-language dependency should live and how generated code interacts.

How do I install Mps Language Modularity in Claude Code?

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

How do I install Mps Language Modularity in Codex?

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

Can I use Mps Language Modularity 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-language-modularity -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-language-modularity, .gemini/skills/mps-language-modularity, .github/skills/mps-language-modularity and .opencode/skills/mps-language-modularity in your project.

What does Mps Language Modularity need to run?

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

Does Mps Language Modularity 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 Language Modularity 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 Language Modularity use?

Mps Language Modularity 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 Language Modularity use?

About 2.4k tokens (SKILL.md is roughly 9.4k 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 Language Modularity?

Skills that share tags, products or a category with Mps Language Modularity: Chroma Vector Database (Orchestra-Research/AI-Research-SKILLs, 13k stars), CLIP Image-Text Matching (Orchestra-Research/AI-Research-SKILLs, 13k stars), SageMaker Serving Image Selection (huggingface/skills, 11k stars) and Codebase Management (giancarloerra/SocratiCode, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mps Language Modularity?

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.