Official agent skill

Mps Quotations

by JetBrains in JetBrains/MPS

A skill your agent uses when writing or debugging MPS quotations and anti-quotations — "node literals" that create SNode trees inline in behavior, typesystem, intentions, generator, and other model…

OfficialApache-2.0Auto-check passedDevelopment

Install Mps Quotations

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

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

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

At a glance

A skill your agent uses when writing or debugging MPS quotations and anti-quotations — "node literals" that create SNode trees inline in behavior, typesystem, intentions, generator, and other model…

  • Works in 5 steps: Add jetbrains.mps.lang.quotation to the… → In the editor, type < in an expression… → To inject runtime values, place the… → …
  • Debugging MPS quotations and anti-quotations — node literals that create SNode trees inline in behavior
  • SKILL.md covers Loading companion skills, Critical Directives, Common-Path Workflow and When To Use Which Form, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mps Quotations is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when writing or debugging MPS quotations and anti-quotations — "node literals" that create SNode trees inline in behavior, typesystem, intentions, generator, and other model code. Covers heavy quotations (Quotation, <...), light quotations (NodeBuilder, constructor-style for bootstrapping), and the four anti-quotation varieties: child (%(...)%), list ((...)), reference (^(...)^), property ($(...)$). Reach for this skill whenever the task involves splicing runtime values into quoted node trees or choosing…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including reference files (for example `references/antiquotation-list.md`, `references/antiquotation-property.md` and `references/antiquotation-reference.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 quotations and anti-quotations — node literals that create SNode trees inline in behavior
  • Other model code

Example prompts

  • “node literals”
  • “/mps-quotations”

Workflow steps

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

  1. Add jetbrains.mps.lang.quotation to the host model's used languages, plus the language whose concepts will be quoted.
  2. In the editor, type < in an expression position to insert a Quotation, then type the desired surface syntax of the quoted node. The quoted…
  3. To inject runtime values, place the caret inside the appropriate cell and type
  4. For bootstrapping or deep nesting, use the Convert Quotation to NodeBuilder intention (or insert NodeBuilder directly).
  5. Validate with mps_mcp_check_root_node_problems; rebuild the host language if needed.

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 Quotations loads about 2.5k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 145 tokens; SKILL.md has 1,057 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~145
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
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 3e9cfcd, republished under its Apache-2.0 licence (© JetBrains). 1,057 words, ~2,466 tokens.

Download SKILL.mdSave it as .claude/skills/mps-quotations/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
mps-quotations
description
Use when writing or debugging MPS quotations and anti-quotations — "node literals" that create SNode trees inline in behavior, typesystem, intentions, generator, and other model code. Covers heavy quotations (`Quotation`, `<...>`), light quotations (`NodeBuilder`, constructor-style for bootstrapping), and the four anti-quotation varieties: child (`%(...)%`), list (`*(...)*`), reference (`^(...)^`), property (`$(...)$`). Reach for this skill whenever the task involves splicing runtime values into quoted node trees or choosing between heavy and light quotations.
type
reference

MPS Quotations and Anti-quotations

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 quotation is a node literal — a concise expression that evaluates to an SNode (or tree of SNodes) at runtime. Instead of building nodes manually via the smodel API, you write the desired structure in the target language syntax and let MPS wrap it. Anti-quotations ("antiquotations") are escape holes inside a quotation where a runtime expression is spliced in.

Required used language: jetbrains.mps.lang.quotation (UUID 3a13115c-633c-4c5c-bbcc-75c4219e9555)

Critical Directives

  • Quotations do not call behavior constructors. Using <Car()> produces an SNode of concept Car without running its constructor. Use new node<Car>() (smodel API) when you need the constructor to run.
  • Use the concept identifier inside a quotation, not an alias. Write <IntegerType>, not <int>.
  • All four anti-quotation kinds attach via the inherited smodelAttribute role on any BaseConcept. The anti-quotation node is a sibling attribute of the host node, not a replacement child. The runtime substitution happens during materialisation. See references/antiquotations.md.
  • ListAntiquotation constraint: the list role must contain at least one placeholder child before you can activate a list antiquotation. The placeholder is replaced at runtime with zero-or-more nodes.
  • PropertyAntiquotation.propertyId and ReferenceAntiquotation.linkId are filled in automatically by MPS when you type $ / ^ in a property/reference cell. Do not construct these encoded ids manually unless you have already verified the exact language-uuid/concept-id/property-or-link-id form against the running MPS. See references/property-and-reference-ids.md.
  • Prefer heavy quotation (<...>) for readability; switch to light quotation (NodeBuilder) only for bootstrapping (the target language can't be a used language), for generators-of-generators, or when nesting depth makes embedded syntax unreadable. See references/heavy-vs-light.md.
  • The deprecated NodeBuilderInitLink.expression (cardinality 0..1) was removed in 2019.2. Use initValue with a NodeBuilderExpression instead.
  • Edit quotation-bearing models through MPS MCP tools (mps_mcp_insert_root_node_from_json, mps_mcp_update_node). Do not hand-edit .mps files.
  • Validate with mps_mcp_check_root_node_problems; quotations frequently expose missing used-languages on the host model (the quoted concept's language must be a used language, not just a dependency).

Common-Path Workflow

  1. Add jetbrains.mps.lang.quotation to the host model's used languages, plus the language whose concepts will be quoted.
  2. In the editor, type < in an expression position to insert a Quotation, then type the desired surface syntax of the quoted node. The quoted concept must be available as a used language; otherwise switch to NodeBuilder.
  3. To inject runtime values, place the caret inside the appropriate cell and type:
    • % — child antiquotation (replaces the child node)
    • * — list antiquotation (replaces a list-position node; requires a placeholder child first)
    • ^ — reference antiquotation (replaces a reference target)
    • $ — property antiquotation (replaces a property value)
  4. For bootstrapping or deep nesting, use the Convert Quotation to NodeBuilder intention (or insert NodeBuilder directly).
  5. Validate with mps_mcp_check_root_node_problems; rebuild the host language if needed.

When To Use Which Form

SituationRecommended form
Short, readable node literal in behavior / typesystem / intentions codeHeavy quotation
One or more children computed at runtimeHeavy quotation + child/list antiquotation
A property computed at runtimeHeavy quotation + property antiquotation
A reference target resolved at runtimeHeavy quotation + reference antiquotation
Bootstrapping (generating language infrastructure) or concept not importableLight quotation (NodeBuilder)
More than 3 levels of nesting where embedded syntax is confusingLight quotation (NodeBuilder)
Show full SKILL.md (450 more words)Show less
  • mps-aspect-behavior — behavior bodies frequently use quotations to build sub-trees; remember constructors do not fire when materialising a quotation.
  • mps-aspect-typesystem — <TypeConcept> literals inside rule bodies are heavy quotations; the typesystem model typically imports jetbrains.mps.lang.quotation as a used language. The :==:/:<=: body shapes are in references/json-blueprints/operator-mapping-and-examples.md in the mps-aspect-typesystem skill root after loading that companion skill from the same origin.
  • mps-aspect-generator — template macros are a different mechanism for building target trees; quotations are used in non-template code (filters, mapping scripts, conditions) within the generator model.
  • mps-aspect-migrations — <NewConcept> plus ^(oldNode.target)^ is the canonical shape inside migration rewrite scripts (references/antiquotation-reference.md includes the verbatim example).
  • mps-aspect-intentions — the replace_invokeOperation_with_compactInvoke example shipping with the closures language uses <%(...)%> + *(...)* to rebuild an expression tree.
  • mps-aspect-structure-concepts — when the quoted concept's link/property metadata is needed; propertyId / linkId encode the persistent form of those declarations.
  • mps-model-manipulation — the smodel operations and BaseLanguage expressions used inside antiquotation expression slots; for the spliced expression open only references/dot-expression-basics.md in the mps-model-manipulation skill root after loading that companion skill from the same origin.

Reference Index

  • Open references/heavy-vs-light.md when deciding between Quotation and NodeBuilder — the surface trade-offs, the bootstrapping rationale, and the recommendation table for typical situations.
  • Open references/heavy-quotation.md when authoring a basic Quotation (<...>) — concept structure, the quotedNode/smodelAttribute/modelToCreate roles, JSON blueprint, and the verbatim MoneyType example from the baseLanguage.money generator.
  • Open references/antiquotations.md for the full antiquotation catalog — the four kinds at a glance, attachment mechanism via smodelAttribute, syntax (%/*/^/$), the AbstractAntiquotation interface, the Antiquotation (child) shape, and the closures-intention worked example combining child + list antiquotations.
  • Open references/antiquotation-list.md when working with ListAntiquotation (*(...)*) — placeholder requirement, expression type (nlist<..> / Iterable), and how it cooperates with multi-cardinality list roles.
  • Open references/antiquotation-property.md when writing or debugging a PropertyAntiquotation ($(...)$) — concept structure, propertyId / name_DebugInfo / stringValueMigrated properties, and the full JSON printout from the quotation editor test.
  • Open references/antiquotation-reference.md when a runtime reference target must be spliced — ReferenceAntiquotation (^(...)^) shape, linkId / role_DebugInfo properties, and the migration-script example creating a NewComponentRef whose target is computed at runtime.
  • Open references/property-and-reference-ids.md for the encoded id formats used by PropertyAntiquotation.propertyId and ReferenceAntiquotation.linkId — language-uuid/concept-id/property-or-link-id — and the rule "let MPS fill these in" when editing in the IDE.
  • Open references/light-quotation.md when using NodeBuilder — the constructor-style notation, NodeBuilderNode / NodeBuilderInitLink / NodeBuilderInitProperty / NodeBuilderExpression (#) concept structure, deprecation note on NodeBuilderInitLink.expression, JSON blueprint, and the verbatim nested-NodeBuilder example from jetbrains.mps.kotlin.smodel.behavior.
  • Open references/model-and-node-id.md when the quotation needs to land in a specific model or with a specific node id — ModelNodeInitializer shape and JSON blueprint.
  • Open references/concept-catalog.md for the quick lookup table — FQNs and aliases of every jetbrains.mps.lang.quotation.structure.* concept, plus the key role names and cardinalities used in JSON blueprints.
  • Open references/source-locations.md for paths inside the MPS repository — where to find structure/behavior/typesystem/editor of the quotation language, generation+editor test cases, and the source models behind every example used in this skill.

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

  • SKILL.md
  • references/antiquotation-list.md
  • references/antiquotation-property.md
  • references/antiquotation-reference.md
  • references/antiquotations.md
  • references/concept-catalog.md
  • references/heavy-quotation.md
  • references/heavy-vs-light.md
  • references/light-quotation.md
  • references/model-and-node-id.md
  • references/property-and-reference-ids.md
  • references/source-locations.md

Open the folder on GitHubat commit 3e9cfcd

Compare with similar skills

Mps Quotations 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 Quotations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Quotations this skillJetBrains/MPS1.7k—~2.5kAutomated 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.5k—~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.5k GitHub stars~2.3k tokensUpdated 11 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) —…

    147 GitHub stars~1.3k tokensUpdated 1 mo ago
    DevelopmentAuto-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

Categories

Questions about Mps Quotations

What does Mps Quotations do?

A skill your agent uses when writing or debugging MPS quotations and anti-quotations — "node literals" that create SNode trees inline in behavior, typesystem, intentions, generator, and other model…. Mps Quotations is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when writing or debugging MPS quotations and anti-quotations — "node literals" that create SNode trees inline in behavior, typesystem, intentions, generator, and other model code.

When should I use Mps Quotations?

Mps Quotations fits situations like: debugging MPS quotations and anti-quotations — node literals that create SNode trees inline in behavior; other model code.

How do I install Mps Quotations in Claude Code?

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

How do I install Mps Quotations in Codex?

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

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

What does Mps Quotations need to run?

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

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

Mps Quotations 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 Quotations use?

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

What are the alternatives to Mps Quotations?

Skills that share tags, products or a category with Mps Quotations: 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.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mps Quotations?

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 9, 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.