CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

mps-aspect-typesystem

Use when authoring or debugging MPS typesystem — inference rules (`typeof :==: / :<=: / :>=:`), `SubtypingRule`, `ComparisonRule`, `InequationReplacementRule`, `SubstituteTypeRule`, `WhenConcreteStatement` blocks, `NonTypesystemRule` checking rules, `TypesystemQuickFix`, error/warning/info reports with `messageTarget` highlighting and quick-fix wiring (`helginsIntention`), and shared BaseLanguage helpers in the typesystem model. For questions to the compiled typesystem (`IS_SUBTYPE`, `EXPLAIN_TYPE`, `GET_EXPECTED_TYPE`), use the query tools when debugging “type stays undefined” or “operator cannot be applied.” Reach for this skill whenever the task involves editing `<lang>/languageModels/typesystem.mps`.

Quality

98%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

—

The risk profile of this skill

SKILL.md
Quality
Evals
Security

Quality

Content

100%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This is an exemplary reference-type skill body: all MPS-specific gotchas are surfaced as terse Critical Directives, the workflow carries genuine before/after validation gates with a rebuild-reload loop and scratch-model cleanup, and detail is correctly pushed to one-level-deep reference files with task-based routing. The body teaches only what Claude could not already know and provides exact MCP tool invocations with parameters. No dimension falls short of its top anchor.

DimensionReasoningScore

Conciseness

The body explains nothing Claude already knows — every line is an MPS-specific gotcha ("the `infer` prefix makes an inequation *soft* … will not immediately error", "**always wrap the real Expression in a `NormalTypeClause`**", "Quick fixes … are roots, **not** executed automatically") or a pointer. Matches anchor 5 ("Lean and efficient; assumes Claude's competence; every token earns its place"); the only near-duplication (the `List<SNode>` → `sequence<node<X>>` pointer appearing in both Critical Directives and Related Skills) is cross-referencing in two navigational contexts, not padding.

5 / 5

Actionability

Gives copy-adaptable commands with exact parameters: "`mps_mcp_create_model` with `moduleName: \"<lang>\"` and `modelName: \"<lang>.typesystem\"`", "`mps_mcp_apply_intention(nodeReference = <problem node>, intentionId = <fix id>)`", "MAKE with `parameters` = `{\"modules\":[\"<lang>\"],\"rebuild\":true}`", and the executable statement form `error "Expected " + <expectedType> + " but got " + <actualType> -> node;`. Matches anchor 5 ("Fully executable; copy-paste ready code or commands; specific examples cover the common cases") — common cases are routed to concrete reference files rather than left abstract.

5 / 5

Workflow Clarity

The 0–9 workflow has explicit validation checkpoints and a feedback loop: step 3 takes a baseline ("**Before** the change: `mps_mcp_check_root_node_problems` + `EXPLAIN_TYPE` … so you have the baseline error"), step 5 re-verifies after ("**After**: ask again — `IS_SUBTYPE` … `EXPLAIN_TYPE`"), step 8 validates, and step 9.6 cleans up the scratch model. Matches anchor 5 ("Clear sequence with explicit validation steps; feedback loops for error recovery"), not 4 — the checkpoints are explicit before/after gates, not implicit.

5 / 5

Progressive Disclosure

The Reference Index opens with task-based routing ("**Start here — most common case**: one `InferenceRule` that types a concept → read only `references/inference-rules.md` …") and each reference entry states both what it contains and when to open it ("Open `references/when-concrete.md` when a rule must wait for a resolved concrete type"). References are one level deep and clearly signaled, matching anchor 5 ("Clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation"). No bundle files were provided for structural verification, so this is scored on the body's structure; the only wrinkle — the cross-skill `type-queries.md` pointer appearing inline rather than in the index — is signaled at its point of use.

5 / 5

Total

20

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is dense yet unpadded: every clause names a concrete capability or trigger, including the exact user-visible error phrases ("type stays undefined", "operator cannot be applied") and the target file path. It comprehensively covers authoring, debugging, checking, quick-fix wiring, and query-side debugging with explicit when-clauses. No weaknesses found against any anchor.

DimensionReasoningScore

Specificity

Enumerates concrete, specific capabilities — "inference rules (`typeof :==: / :<=: / :>=:`)", "`SubtypingRule`, `ComparisonRule`, `InequationReplacementRule`, `SubstituteTypeRule`", "error/warning/info reports with `messageTarget` highlighting and quick-fix wiring (`helginsIntention`)", "shared BaseLanguage helpers", and compiled-typesystem queries (`IS_SUBTYPE`, `EXPLAIN_TYPE`, `GET_EXPECTED_TYPE`). This matches the anchor "Lists multiple specific concrete actions; comprehensive coverage" — it is not a 4 because there are no minor gaps: authoring, debugging, checking, quick-fix wiring, and query-side debugging are all named.

5 / 5

Completeness

Explicitly answers both questions: the "what" is the enumerated capability set ("Use when authoring or debugging MPS typesystem — inference rules … `TypesystemQuickFix`, error/warning/info reports …") and the "when" appears twice with concrete triggers ("Reach for this skill whenever the task involves editing `<lang>/languageModels/typesystem.mps`"). Matches anchor 5 ("Clearly and explicitly answers both what AND when with concrete trigger phrases"), not 4, because the when-clauses are explicit rather than merely present.

5 / 5

Trigger Term Quality

Contains the natural phrases an MPS user would actually say: "typesystem", "inference rules", "checking rules", "quick-fix", "type stays undefined", "operator cannot be applied", and the file path "`<lang>/languageModels/typesystem.mps`". Matches the anchor "Comprehensive coverage of natural terms including synonyms and file extensions" — user-visible error strings and the `.mps` path are covered, so it exceeds anchor 4's "good keyword coverage; a few natural terms missing".

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche — the MPS typesystem aspect specifically — and even delineates its boundary against the compiled-typesystem query tools ("For questions to the compiled typesystem (`IS_SUBTYPE`, `EXPLAIN_TYPE`, `GET_EXPECTED_TYPE`), use the query tools"). Matches anchor 5 ("Clear niche with distinct triggers; minimal conflict risk"); sibling MPS aspect skills are disambiguated by the specific rule and statement names.

5 / 5

Total

20

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 1 missing

Warning

referenced_paths_exist

Referenced path issues: 21 missing

Warning

Total

13

/

16

Passed

Repository

JetBrains/MPS

Path

.agents/skills/mps-aspect-typesystem/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.