Official agent skill

Mps Aspect Constraints

by JetBrains in JetBrains/MPS

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)…

OfficialApache-2.0Auto-check passed

Install Mps Aspect Constraints

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

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

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

At a glance

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)…

  • Works in 6 steps: Ensure the language has a constraints… → Add jetbrains.mps.lang.constraints to… → For each concept to constrain, create… → …
  • Editing MPS language constraints — property validators / setters / getters
  • SKILL.md covers Loading companion skills, Critical Directives, Section index — one row, one… 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 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.

When your agent uses it

  • Editing MPS language constraints — property validators / setters / getters
  • Referent search scopes (imperative
  • Inherited via ScopeProvider.getScope)
  • ReferentSetHandler side effects

Example prompts

  • “/mps-aspect-constraints”

Workflow steps

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

  1. Ensure the language has a constraints model; create it with mps_mcp_create_model (moduleName: "", modelName: ".constraints" — aspect ID…
  2. Add jetbrains.mps.lang.constraints to the model's used languages. For scope bodies also add jetbrains.mps.lang.smodel…
  3. For each concept to constrain, create one ConceptConstraints root (mps_mcp_create_root_node); set concept ref. Minimal blueprint and…
  4. Add NodePropertyConstraint / NodeReferentConstraint / canBe* children as needed. For inherited scopes, also add a getScope method to the…
  5. Write bodies in BaseLanguage + smodel — follow the mps-model-manipulation skill for smodel syntax and mps-collections-and-closures for…
  6. Validate with mps_mcp_check_root_node_problems and rebuild the language. On a sandbox node, a constraints or scope problem may carry…

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

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

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,327 words, ~3,412 tokens.

Download SKILL.mdSave it as .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.
name
mps-aspect-constraints
description
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 authoring or modifying `<lang>/languageModels/constraints.mps`.
type
reference

MPS Constraints 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 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).

Critical Directives

  • One ConceptConstraints root per concept. Set its concept reference; everything else is child blocks.
  • Pick the right body for the job:
    • Validator (propertyValidator) — pure acceptance check; returns boolean; never mutates state.
    • Setter (propertySetter) — normalises and must explicitly assign node.<prop> = propertyValue (a body that forgets this silently drops the value).
    • Getter (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.
  • Pick the right scope shape:
    • Inherited via 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.
    • Imperative 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.
  • Surface forms (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.
  • Edit constraint models through MPS MCP (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.

Section index — one row, one read

Each row names the file(s) for one job. Read them — two files in one parallel batch — and nothing else in references/.

JobRead
have not chosen scope style yetreferences/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.addScopereferences/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 / getScopereferences/referent-constraints/inherited-scope.md
setting a ref must rename/copy/keep originalreferences/referent-constraints/referent-set-handler.md
every ref to this concept shares one scopereferences/referent-constraints/default-scope.md
validator / setter / getter shapereferences/property-constraints/nodepropertyconstraint-shape.md
validator / getter / setter wrapper FQNsreferences/property-constraints/key-concept-fqns.md
validator JSON blueprintreferences/property-constraints/validator-example-compound-cardinality.md
derived-getter JSON blueprintreferences/property-constraints/derived-getter-example.md
sibling-uniqueness validatorreferences/property-constraints/sibling-uniqueness-validator.md
{name} alias / set read-onlyreferences/property-constraints/getter-delegation-read-only.md

Common-Path Workflow

  1. Ensure the language has a 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.
  2. Add 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.
    • Module-level dependency for scope classes: the language module must have a 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.
  3. For each concept to constrain, create one ConceptConstraints root (mps_mcp_create_root_node); set concept ref. Minimal blueprint and validated FQN/c-ref in references/concept-roots.md.
  4. Add NodePropertyConstraint / NodeReferentConstraint / canBe* children as needed. For inherited scopes, also add a getScope method to the owning ancestor's ConceptBehavior (see mps-aspect-behavior).
  5. Write bodies in BaseLanguage + smodel — follow the 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.
  6. Validate with 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).
Show full SKILL.md (491 more words)Show less
  • 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).

Reference Index

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.

  • Open 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.
  • Open the Section index row for 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.
  • Open the Section index row for references/referent-constraints.md when writing NodeReferentConstraint — choosing scope style, imperative ConstraintFunction_ReferentSearchScope_Scope, ancestor-supplied InheritedNodeScopeFactory, referentSetHandler, or concept-level Default Scope.
  • Open 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.
  • Open 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.
  • Open 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.
  • Open 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

Files

SKILL.md and 31 other files (references) in .agents/skills/mps-aspect-constraints of JetBrains/MPS.

  • SKILL.md
  • references/aspect-model-stereotypes.md
  • references/canbe-rules.md
  • references/common-failures.md
  • references/concept-roots.md
  • references/property-constraints.md
  • references/property-constraints/derived-getter-example.md
  • references/property-constraints/getter-delegation-read-only.md
  • references/property-constraints/key-concept-fqns.md
  • references/property-constraints/nodepropertyconstraint-shape.md
  • references/property-constraints/sibling-uniqueness-validator.md
  • references/property-constraints/validator-example-compound-cardinality.md
  • references/referent-constraints.md
  • references/referent-constraints/choosing-scope-style.md
  • references/referent-constraints/composite-scope-addscope.md
  • references/referent-constraints/computed-sequences-blueprint.md
  • references/referent-constraints/computed-sequences-listscope.md
  • references/referent-constraints/cross-model-filtered-scope.md
  • … and 14 more

Open the folder on GitHubat commit 3e9cfcd

Compare with similar skills

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.

Mps Aspect Constraints compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mps Aspect Constraints this skillJetBrains/MPS1.7k—~3.4kAutomated safety check: PassApache-2.0
Doc SyncJetBrains/ideavim10k2 repos~2.6kAutomated safety check: PassMIT
Evals Contextzgsm-ai/costrict4.5k1 repos~1.9kAutomated safety check: PassApache-2.0
ChangelogJetBrains/ideavim10k1 repos~2.7kAutomated safety check: PassMIT
Youtrack CommunityJetBrains/intellij-community21k—~3.2kAutomated safety check: NotesCustom licence
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0

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
  • Evals Context

    zgsm-ai/costrict

    Provides context about the CoStrict evals system structure in this monorepo.

    4.5k GitHub starsUsed in 1 repo~1.9k tokens
    AI & LLM EngineeringAuto-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
  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Compare Python Typecheckers

    JetBrains/intellij-community

    Official

    Compare Python type inference with ty, pyrefly, and basedpyright.

    21k GitHub stars~617 tokensUpdated today
    Auto-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

Questions about Mps Aspect Constraints

What does Mps Aspect Constraints do?

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).

When should I use Mps Aspect Constraints?

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.

How do I install Mps Aspect Constraints in Claude Code?

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.

How do I install Mps Aspect Constraints in Codex?

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.

Can I use Mps Aspect Constraints 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-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.

What does Mps Aspect Constraints need to run?

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

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

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.

How many tokens does Mps Aspect Constraints use?

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.

What are the alternatives to Mps Aspect Constraints?

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.

Who maintains Mps Aspect Constraints?

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.