Doc Sync
JetBrains/ideavim
Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.
A skill your agent uses when defining or editing MPS language constraints — property validators / setters / getters, referent search scopes (imperative or inherited via ScopeProvider.getScope)…
$ npx skills add JetBrains/MPS --skill mps-aspect-constraints -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JetBrains/MPS mps-aspect-constraints --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/mps-aspect-constraints .claude/skills/mps-aspect-constraints && rm -rf skills-srcUse ~/.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/
Install the "mps-aspect-constraints" agent skill from https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraints into .claude/skills/mps-aspect-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mps-aspect-constraints", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraintsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JetBrains/MPS --skill mps-aspect-constraints -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JetBrains/MPS mps-aspect-constraints --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/mps-aspect-constraints .agents/skills/mps-aspect-constraints && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mps-aspect-constraints" agent skill from https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraints into .agents/skills/mps-aspect-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mps-aspect-constraints", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/MPS --skill mps-aspect-constraints -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JetBrains/MPS mps-aspect-constraints --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/mps-aspect-constraints .cursor/skills/mps-aspect-constraints && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mps-aspect-constraints" agent skill from https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraints into .cursor/skills/mps-aspect-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mps-aspect-constraints", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JetBrains/MPS.git --path .agents/skills/mps-aspect-constraints--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JetBrains/MPS --skill mps-aspect-constraints -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JetBrains/MPS mps-aspect-constraints --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/mps-aspect-constraints .gemini/skills/mps-aspect-constraints && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mps-aspect-constraints" agent skill from https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraints into .gemini/skills/mps-aspect-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mps-aspect-constraints", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JetBrains/MPS mps-aspect-constraintsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JetBrains/MPS --skill mps-aspect-constraints -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/mps-aspect-constraints .github/skills/mps-aspect-constraints && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mps-aspect-constraints" agent skill from https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraints into .github/skills/mps-aspect-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mps-aspect-constraints", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/MPS --skill mps-aspect-constraints -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JetBrains/MPS mps-aspect-constraints --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/MPS.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/mps-aspect-constraints .opencode/skills/mps-aspect-constraints && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mps-aspect-constraints" agent skill from https://github.com/JetBrains/MPS/tree/master/.agents/skills/mps-aspect-constraints into .opencode/skills/mps-aspect-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mps-aspect-constraints", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mps-aspect-constraintsA skill your agent uses when defining or editing MPS language constraints — property validators / setters / getters, referent search scopes (imperative or inherited via ScopeProvider.getScope)…
Mps Aspect Constraints is an agent skill from JetBrains/MPS, published by the product's own GitHub organization. Use when defining or editing MPS language constraints — property validators / setters / getters, referent search scopes (imperative or inherited via ScopeProvider.getScope), referentSetHandler side effects, default-scope blocks, canBeChild / canBeParent / canBeAncestor / canBeRoot placement rules, defaultConcreteConcept for abstract concepts, set <read-only and {name} aliasing, and scope helpers (SimpleRoleScope, ListScope, CompositeScope, HidingByNameScope). Reach for this skill whenever the task involves…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 34 other files, including reference files (for example `references/aspect-model-stereotypes.md`, `references/canbe-rules.md` and `references/common-failures.md`).
It works with JetBrains IDEs. The repository describes itself as: JetBrains Meta programming System. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3e9cfcd. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mps Aspect Constraints loads about 3.4k tokens when it runs, and up to ~29k if it reads all its reference files. Until then it costs about 156 tokens; SKILL.md has 1,327 words of instructions outside code blocks.
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.
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.
The full file from JetBrains/MPS at commit 3e9cfcd, republished under its Apache-2.0 licence (© JetBrains). 1,327 words, ~3,412 tokens.
.claude/skills/mps-aspect-constraints/SKILL.md (or your agent's skills folder). This skill also uses 31 other files; get the full folder from GitHub.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 constraints aspect controls runtime rules about nodes: what values properties may hold, how a property is stored when set, what nodes a reference may point to, and where a node of a concept is allowed to appear in the AST. It lives in the language's constraints model (<lang>/languageModels/constraints.mps) and uses the language jetbrains.mps.lang.constraints.
Constraints are enforced at edit time and also consulted by the typesystem/editor. They are not the place for structural cardinalities (that belongs in structure) or for types (that belongs in typesystem).
ConceptConstraints root per concept. Set its concept reference; everything else is child blocks.propertyValidator) — pure acceptance check; returns boolean; never mutates state.propertySetter) — normalises and must explicitly assign node.<prop> = propertyValue (a body that forgets this silently drops the value).propertyGetter) — only when the displayed value differs from the stored value (derived URL, aliased name).set <read-only> means no setter at all — direct assignment to the property is rejected by MPS. An empty-body setter is almost always a bug.canBeChild / canBeParent / canBeAncestor are inherited by sub-concepts; per-property and per-reference constraints are not — duplicate the ConceptConstraints root or hoist the rule up.InheritedNodeScopeFactory + ScopeProvider.getScope (behavior) — preferred whenever the scope naturally belongs to an ancestor (block, declaration, program, module). Composes cleanly along the containment chain with parent scope.ConstraintFunction_ReferentSearchScope_Scope — only when the scope is tiny, highly local, and has no natural ancestor owner.referentSetHandler performs side effects (auto-rename referrer, copy fields, keeps original reference). Never overload the scope to do this.defaultConcreteConcept on ConceptConstraints chooses which concrete subconcept replaces an abstract pick — it is a single reference, not a child block.come from, parent scope, kind.isSubConceptOf(...), link/C : role/, concept/C/) are not BaseLanguage. Each is a dedicated jetbrains.mps.lang.scopes / jetbrains.mps.lang.smodel concept — construct those concepts, not strings (see references/scope-fqn-reference.md).Concept_IsSubConceptOfOperation matches a concept and its sub-concepts; Concept_IsExactlyOperation excludes sub-concepts. Use isExactly for guards that must not fire on specialisations.mps_mcp_insert_root_node_from_json, mps_mcp_update_node, mps_mcp_parse_java_and_insert). Do not hand-edit .mps files. Validate with mps_mcp_check_root_node_problems and rebuild the language; if the new constraint is still invisible at runtime, check that the MAKE targeted the language module and answered runtimeReady:true, and retry with rebuild:true.Each row names the file(s) for one job. Read them — two files in one parallel batch — and nothing else in references/.
| Job | Read |
|---|---|
| have not chosen scope style yet | references/referent-constraints/choosing-scope-style.md |
| scope computed at the reference site (shape + verbatim example) | references/referent-constraints/imperative-scope.md, references/referent-constraints/imperative-scope-calculator-example.md |
reference-site scope over a computed sequence (ListScope + anonymous getName) | references/referent-constraints/computed-sequences-listscope.md, references/referent-constraints/computed-sequences-blueprint.md |
reference-site scope assembled with CompositeScope.addScope | references/referent-constraints/composite-scope-addscope.md |
reference-site scope over imported models' roots (rootsIncludingImported) | references/referent-constraints/cross-model-filtered-scope.md |
scope that offers structure declarations (LinkDeclaration referents) | references/referent-constraints/meta-level-scope.md |
| scope belongs to an ancestor / getScope | references/referent-constraints/inherited-scope.md |
| setting a ref must rename/copy/keep original | references/referent-constraints/referent-set-handler.md |
| every ref to this concept shares one scope | references/referent-constraints/default-scope.md |
| validator / setter / getter shape | references/property-constraints/nodepropertyconstraint-shape.md |
| validator / getter / setter wrapper FQNs | references/property-constraints/key-concept-fqns.md |
| validator JSON blueprint | references/property-constraints/validator-example-compound-cardinality.md |
| derived-getter JSON blueprint | references/property-constraints/derived-getter-example.md |
| sibling-uniqueness validator | references/property-constraints/sibling-uniqueness-validator.md |
| {name} alias / set read-only | references/property-constraints/getter-delegation-read-only.md |
constraints model; create it with mps_mcp_create_model (moduleName: "<lang>", modelName: "<lang>.constraints" — aspect ID constraints, case-sensitive, no @ suffix; see aspect-model-stereotypes.md) if absent.jetbrains.mps.lang.constraints to the model's used languages. For scope bodies also add jetbrains.mps.lang.smodel, jetbrains.mps.lang.scopes, jetbrains.mps.lang.behavior, jetbrains.mps.baseLanguage; import models jetbrains.mps.scope and jetbrains.mps.lang.core.behavior.Default dependency on solution jetbrains.mps.kernel (which ships model jetbrains.mps.scope). mps_mcp_model_dependency adds it automatically when importing jetbrains.mps.scope; mps_mcp_create_module type=language does not. See references/scope-fqn-reference/required-languages-imports-dependencies.md.ConceptConstraints root (mps_mcp_create_root_node); set concept ref. Minimal blueprint and validated FQN/c-ref in references/concept-roots.md.NodePropertyConstraint / NodeReferentConstraint / canBe* children as needed. For inherited scopes, also add a getScope method to the owning ancestor's ConceptBehavior (see mps-aspect-behavior).mps-model-manipulation skill for smodel syntax and mps-collections-and-closures for collections / closures syntax. Prefer mps_mcp_parse_java_and_insert for the BaseLanguage skeleton, then drop in scope / constraint-specific concepts via MCP.mps_mcp_check_root_node_problems and rebuild the language. On a sandbox node, a constraints or scope problem may carry rules: ruleReference is the constraints root that reported it (e.g. Foo_Constraints), statement the failing canBe*, property or scope function inside it. A scope or property problem is listed in that reference's or property's own problems, not the node's. Commented-out sandbox code is not constraints-checked (uncheckedSubtrees).mps-aspect-behavior — ScopeProvider.getScope lives in the behavior aspect; this is the partner of every InheritedNodeScopeFactory constraint. Behavior is also where most validator/getter delegation lands.mps-aspect-structure-concepts — structural cardinalities belong in structure, not here. Add INamedConcept / IResolveInfo / ScopeProvider interfaces on the concept declaration before writing the matching constraint or scope.mps-aspect-editor-menus-and-keymaps — completion menus consume the scope built here; substitute / transformation menus are the place for actions that go beyond picking an existing target.mps-aspect-actions — when a constructor-style initialization is needed, use NodeFactory (actions aspect), not a constraint.mps-aspect-intentions — when a suggested fix belongs on a node, write an intention; constraints only accept or reject.mps-collections-and-closures — selectMany, .where, .all(...), closure literals and sequence/list types in scope bodies.mps-model-manipulation — full BaseLanguage / smodel reference for constraint and scope bodies; for a scope or canBe* body open only references/dot-expression-basics.md in the mps-model-manipulation skill root after loading that companion skill from the same origin. Indispensable for ancestor<concept = X, +>, selectMany, siblings.ofConcept<X>.all(...), anonymous-class scopes, and the smodel operation FQNs.mps-aspect-typesystem — type checks belong in typesystem; constraints are about value/scope/placement.mps-aspect-textgen and mps-aspect-constraints-co-located utility classes — see references/concept-roots.md for the BaseLanguage ClassConcept co-location pattern (used by XmlNameUtil).Start here — most common case: creating the ConceptConstraints root or setting defaultConcreteConcept → read only references/concept-roots.md. A property validator / setter / getter, a referent search scope, or a referentSetHandler → read the file(s) in the matching Section index row above.
references/concept-roots.md when creating the ConceptConstraints root, setting defaultConcreteConcept to a concrete subconcept of an abstract concept, looking up the validated concept c-ref, or co-locating a BaseLanguage helper ClassConcept next to constraint roots.references/property-constraints.md when writing NodePropertyConstraint bodies — validator vs. setter vs. getter shape, wrapper FQNs, the validator / derived-getter JSON blueprints, the {name} aliasing pattern with set <read-only>, or sibling-uniqueness validators.references/referent-constraints.md when writing NodeReferentConstraint — choosing scope style, imperative ConstraintFunction_ReferentSearchScope_Scope, ancestor-supplied InheritedNodeScopeFactory, referentSetHandler, or concept-level Default Scope.references/scope-helpers.md when picking among EmptyScope, ListScope, SimpleRoleScope, CompositeScope, FilteringScope, DelegatingScope, ModelsScope, ModelPlusImportedScope, Scopes.forConcepts, HidingByNameScope, or ListScope.forResolvableElements; or when caching with for model [...], visible roots [C], visible nodes [C]. Includes the verbatim StateChart Stateful_Behavior.getScope (ListScope + anonymous getName + HidingByNameScope over parent scope) idiom.references/scope-fqn-reference.md when constructing scope bodies via MCP — the full surface-syntax-to-FQN table (parent scope, come from, isSubConceptOf vs isExactly, RefConcept_Reference vs ConceptIdRefExpression, LinkIdRefExpression, Node_GetAncestorOperation + OperationParm_Concept, Node_GetDescendantsOperation, Node_GetModelOperation, Model_RootsIncludingImportedOperation, Node_GetParentOperation, Node_IsInstanceOfOperation), required used-languages and model imports, the validated ScopeProvider.getScope overriddenMethod ref, and JSON blueprints for the getScope skeleton, parent scope return, and the guarded local-scope if-branch.references/canbe-rules.md when authoring ConstraintFunction_CanBeAChild / CanBeAParent / CanBeAnAncestor / CanBeARoot — each block's parameter set (note canBeAnAncestor has only 3 parameters; no parentNode or link), the parentNode.parent.isInstanceOf(...) grandparent-traversal pattern (Kaja RoutineDefinition and Require), the node.isInRole(link/C : role/) pattern, the model parameter for canBeRoot, and the minimal ConstraintFunction_CanBeAChild blueprint.references/common-failures.md when a setter runs but stores nothing, a completion popup is empty, the editor reports "cannot be child", a constraint does not apply to a sub-concept, or constraint edits seem invisible at runtime.© 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
SKILL.md and 31 other files (references) in .agents/skills/mps-aspect-constraints of JetBrains/MPS.
Open the folder on GitHubat commit 3e9cfcd
Mps Aspect Constraints 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mps Aspect Constraints this skillJetBrains/MPS | 1.7k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Doc SyncJetBrains/ideavim | 10k | 2 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Evals Contextzgsm-ai/costrict | 4.5k | 1 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| ChangelogJetBrains/ideavim | 10k | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Youtrack CommunityJetBrains/intellij-community | 21k | — | ~3.2k | Automated safety check: Notes | Custom licence | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 180 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 |
JetBrains/ideavim
Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.
zgsm-ai/costrict
Provides context about the CoStrict evals system structure in this monorepo.
JetBrains/ideavim
Maintains the IdeaVim changelog (CHANGES.md). An agent skill from JetBrains/ideavim.
JetBrains/intellij-community
YouTrack CLI for a community checkout; the monorepo uses youtrack.
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
JetBrains/intellij-community
Compare Python type inference with ty, pyrefly, and basedpyright.
JetBrains/MPS
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…
JetBrains/MPS
Add, update, or delete MPS nodes using JSON blueprints — covers the unified blueprint format, staged construction for large subtrees, validation, and reference repair.
JetBrains/MPS
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…
JetBrains/MPS
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.
JetBrains/MPS
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…
JetBrains/MPS
Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's structure aspect.
Works with
A skill your agent uses when defining or editing MPS language constraints — property validators / setters / getters, referent search scopes (imperative or inherited via ScopeProvider.getScope)…. Mps Aspect Constraints is an agent skill from JetBrains/MPS, published by the product's own GitHub organization.getScope), referentSetHandler side effects, default-scope blocks, canBeChild / canBeParent / canBeAncestor / canBeRoot placement rules, defaultConcreteConcept for abstract concepts, set <read-only and {name} aliasing, and scope helpers (SimpleRoleScope, ListScope, CompositeScope, HidingByNameScope).
Mps Aspect Constraints fits situations like: editing MPS language constraints — property validators / setters / getters; referent search scopes (imperative; inherited via ScopeProvider.getScope); referentSetHandler side effects.
Run `npx skills add JetBrains/MPS --skill mps-aspect-constraints -a claude-code`. Or copy the skill folder (.agents/skills/mps-aspect-constraints in JetBrains/MPS) into .claude/skills/mps-aspect-constraints in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JetBrains/MPS --skill mps-aspect-constraints -a codex`. Or copy the skill folder (.agents/skills/mps-aspect-constraints in JetBrains/MPS) into .agents/skills/mps-aspect-constraints in your project. Codex loads it when a task matches its description.
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-constraints -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-constraints, .gemini/skills/mps-aspect-constraints, .github/skills/mps-aspect-constraints and .opencode/skills/mps-aspect-constraints in your project.
SKILL.md names no scripts, command-line tools or credentials: Mps Aspect Constraints is instructions for the agent only.
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.
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.
Mps Aspect Constraints 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.
About 3.4k tokens (SKILL.md is roughly 14k 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 26k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Mps Aspect Constraints: Doc Sync (JetBrains/ideavim, 10k stars), Evals Context (zgsm-ai/costrict, 4.5k 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.
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.