MPS: Skill for Claude Code

.agents/skills/mps-aspect-editor-menus-and-keymaps/SKILL.md

mps-aspect-editor-menus-and-keymaps is a skill for Claude Code, Codex from JetBrains/MPS. It costs 262 tokens per session (2,799 once invoked), scanned A, original, Apache-2.0.

A guide for defining how users interact with editors in JetBrains MPS, a tool for building custom programming languages. It covers keyboard shortcuts, typing behavior, completion, paste actions, and context menus.

In plain words
What is it for?
Use it to add keybindings, configure actions, provide completion or transformation options, and control paste and context-menu behavior.
Why use it?
It helps map a desired editor behavior to the correct MPS interaction definition instead of changing the wrong part of the editor.

Skill for Claude CodeCodex ✓ vendor

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

This is JetBrains/MPS's own configuration. It tells Claude Code and Codex how to work on MPS itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything MPS configures →

About the project

JetBrains MPS is a development environment for creating domain-specific languages, which are programming languages designed for a particular field or task. It provides editors with features such as completion, semantic checks, and type checking, and can generate code in languages including Java and XML.

JetBrains/MPS · 1,666 stars · on GitHub · jetbrains.com

Reuse

Borrowing it

Nothing to install: this file belongs to JetBrains/MPS. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/JetBrains/MPS/master/.agents/skills/mps-aspect-editor-menus-and-keymaps/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/JetBrains/MPS

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mps-aspect-editor-menus-and-keymaps

README.md
[![agentmods](https://agentmods.dev/badge/skills/jetbrains/mps/mps-aspect-editor-menus-and-keymaps/github.svg)](https://agentmods.dev/skills/jetbrains/mps/mps-aspect-editor-menus-and-keymaps)
Your own site
<a href="https://agentmods.dev/skills/jetbrains/mps/mps-aspect-editor-menus-and-keymaps"><img src="https://agentmods.dev/badge/skills/jetbrains/mps/mps-aspect-editor-menus-and-keymaps/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mps-aspect-editor-menus-and-keymaps

Your own site · 80×15
<a href="https://agentmods.dev/skills/jetbrains/mps/mps-aspect-editor-menus-and-keymaps"><img src="https://agentmods.dev/badge/skills/jetbrains/mps/mps-aspect-editor-menus-and-keymaps.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 262 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,799 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00262 $0.02799
Opus 5.5 $0.00105 $0.01120
Sonnet 5.5 $0.00052 $0.00560
Haiku 4.5 $0.00026 $0.00280

Measured 2d ago against content hash 688a21e858fd, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

mps-aspect-editor-menus-and-keymaps scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/mps-aspect-editor-menus-and-keymaps/SKILL.md · 82 lines

How it starts

The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.

MPS Editor Aspect — Menus, Keymaps and Actions

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.

This skill covers how the editor reacts to typing, keystrokes, completion, paste and context actions. Menus, keymaps and action maps are roots of jetbrains.mps.lang.editor in the language's editor model, next to the concept editors. Paste wrappers, copy-paste handlers and node factories are roots of jetbrains.mps.lang.actions in the actions model. Both aspect ids are case-sensitive, with no @ suffix: aspect-model-stereotypes.md. For cells, layouts and style sheets use mps-aspect-editor.

Critical Directives

  • Decide whether to write the EditorTestCases first (mps-tests), and print the decision as one line of visible text before your first edit of an editor, actions or test model (right after loading this skill if you already edited other aspects), Test-first: yes — <reason> or Test-first: no — <reason> (it applies to every behaviour in this skill). It pays off when the behaviour is non-trivial (menus, side transforms, keys, deletion, paste, several interacting items) or only loosely described: a test fixes the description as an exact before/result tree and caret, and a run that fails before the change, for the reason you expect, is what makes the later green run evidence. Skip it for a trivial change (a label, a style, one obvious item) or when the project setup or the user forbids editor tests; then print the changed roots as PLAIN TEXT, run mps_mcp_check_root_node_problems, and say in your report that the behaviour was not exercised in an editor.
  • Pick the artefact by the behaviour. Change what Delete does → action map. A new shortcut → keymap. Text typed next to a cell → side transform. What Ctrl+Space offers for a slot → substitute menu. A pasted node must change concept → paste wrapper. Table: references/landscape.md.
  • Nothing is found by name. A TransformationMenu / SubstituteMenu whose type is MenuTypeDefault is the default for its conceptDeclaration. Named menus, action maps and keymaps act only where a cell references them (transformationMenu child, actionMap / keyMap references) or a menu includes them. The one exception is everyModel=true keymaps.
  • Author menus as TransformationMenu / SubstituteMenu with a type child: MenuTypeDefault, or MenuTypeNamed whose name property holds the menu name (a root name is dropped). TransformationMenu_Default/_Named, SubstituteMenu_Default/_Named and IMenu_Default/_Named are deprecated: never author them.
  • A default transformation menu replaces the inherited items for each location it has a section for. Put superconcepts menu (TransformationMenuPart_Super) once for every location the menu covers, unless you mean to drop the inherited items there. A Completion section without it removes concept replacement on existing nodes. A menu with only side-transform sections keeps completion.
  • The cell's own node decides. Side transforms and completion on a cell use the menus of the node owning that cell (its transformationMenu first). Attach a menu or map to the cell the caret is on, unless that cell is a child's only visible cell (references/landscape.md). The edge cell of a child belongs to the child.
  • Typing applies an item only on a unique strict match, i.e. the typed text equals the item's text (or a can substitute guard accepts it with strictly = true) and nothing else still matches. A prefix applies nothing; the IDE's auto-popup shows the menu, and a test needs Complete (references/side-transforms.md).
  • Cells have no substituteMenu role. Reach a named substitute menu through include substitute menu in a transformation menu. An empty default substitute menu hides its concept from completion.
  • Side-transform items are not in Ctrl+Space unless the section also lists TransformationLocation_Completion, or a Completion section includes the menu with location set.
  • Keep data across a replacement with a NodeFactory that reads sampleNode (mps-aspect-actions). Completion items call it. Hand-written bodies: new initialized runs the factory and also pre-fills required children; plain new does neither (references/transformation-menus.md).
  • Two-step deletion: if (node.approveDelete[in: editorContext, cell: <cellId>]) { return; } before mutating. The keyword cell needs an id (EditorCellId). Use action maps, not VK_DELETE keymaps, for DELETE / BACKSPACE.
  • Implicit-parameter concepts differ per function kind (node in a menu ≠ in an action map ≠ in a keymap ≠ in a cell query; paste functions use lang.actions concepts; pattern is QueryFunctionParameter_pattern in transformation and substitute menus). Take them from the leaf file of the artefact, or from a printed corpus root; write bodies with mps-model-manipulation idioms.
  • Role names: conceptDeclaration, type, sections, locations, parts, textFunction, executeFunction, canExecuteFunction. Resolve concepts with mps_mcp_get_concept_details, copy shapes from printed corpus roots (references/real-examples.md).
  • After edits, run mps_mcp_check_root_node_problems, then rebuild the language (mps_mcp_alter_nodes MAKE). In a running editor, Ctrl+Alt+B on a completion item shows the menu chain that produced it.

Read the full file on GitHub · 82 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago Changed · -9 lines · +38 tokens per session 688a21e858fd
  2. 1mo ago Changed · +6 lines ecbf4509e53e
  3. 2mo ago First seen · 85 lines · 224 tokens per session scan A 9175c46a487b

Subscribe to this mod's changes

mps-aspect-editor-menus-and-keymaps is a skill published in the GitHub repository JetBrains/MPS (1,666 stars, last pushed yesterday), licensed Apache-2.0. It adds 262 tokens to every session and 2,799 once invoked, about $0.0010 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

mps-aspect-editor-menus-and-keymaps compared with skills from other repositories

mps-aspect-editor-menus-and-keymaps next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
mps-aspect-editor-menus-and-keymapsJetBrains/MPSSkill1.7kyesterdayApache-2.0A262Claude Code, Codex
langiumeclipse-langium/langium-aiSkill314d agoMITA33Claude Code
lai-gen-evalseclipse-langium/langium-aiSkill314d agoMITA42Claude Code
laieclipse-langium/langium-aiSkill314d agoMITA52Claude Code
lai-gen-descriptoreclipse-langium/langium-aiSkill314d agoMITA49Claude Code
lai-gen-mcpeclipse-langium/langium-aiSkill314d agoMITA43Claude Code
lai-gen-language-skilleclipse-langium/langium-aiSkill314d agoMITA33Claude Code