CtrlK
BlogDocsLog inGet started
Tessl Logo

mps-aspect-dataflow

Use when defining or debugging MPS dataflow builders for a concept — control/data flow declarations that drive reachability analysis and variable-use checking. Covers DataFlowBuilderDeclaration, BuilderBlock, emit instructions (code for, jump, ifjump, label, read, write, ret, mayBeUnreachable), positions (AfterPosition, BeforePosition, LabelPosition), the jetbrains.mps.lang.dataFlow language, the NodeParameter implicit, BL+smodel usage inside builder bodies, and IBuilderMode for advanced analyses such as nullable/non-null tracking.

68

Quality

85%

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

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

A well-structured reference skill: a mental model, high-value critical directives (inverted ifjump semantics, label-node identity, write node vs write node.link), and a numbered workflow with concrete MCP tool calls and a validation step. Reference index with open-when triggers is exemplary in form. Weak points are mild redundancy with the description, an implicit rather than explicit validate-fix-retry loop, and referenced bundle files that could not be verified as present.

Suggestions

Make the validation step an explicit feedback loop in the workflow: 'If mps_mcp_check_root_node_problems reports problems, fix and re-validate before proceeding' — this would lift workflow_clarity to anchor 5.

Trim the opening paragraph's restatement of the description (line 13) down to the new information (the language UUID and IBuilderMode context) to remove the description-body redundancy.

Ensure the six referenced files under references/ actually exist in the published bundle (they were not present here), since the otherwise excellent reference index depends on those paths resolving.

DimensionReasoningScore

Conciseness

The body is lean and dense with MPS-specific facts Claude would not know (e.g., 'the jump is taken when the condition is FALSE', 'EmitLabelStatement.name is display-only; jumps reference the label node via LabelPosition.label'). Minor trimmable parts keep it below anchor 5: the opening paragraph partially restates the frontmatter description, and the 'Loading companion skills' section is generic loader policy rather than dataflow content. Not anchor 3 — there is no genuine over-explanation of concepts Claude already knows.

4 / 5

Actionability

Concrete, executable guidance throughout: 'Create the dataflow model with mps_mcp_create_model (moduleName: "<lang>", modelName: "<lang>.dataFlow")', 'Validate with mps_mcp_check_root_node_problems', and 'inspect ... via mps_mcp_print_node with deep: true', plus exact concept/role names and a case-sensitivity trap ('The aspect ID is dataFlow — camelCase, case-sensitive'). It falls short of anchor 5 only because copy-paste-ready JSON blueprints are delegated to references/json-patterns.md rather than shown inline — appropriate for a reference-type skill, so this is a minor gap, not missing detail.

4 / 5

Workflow Clarity

The 'Common-Path Workflow' gives a clear 6-step sequence ending in an explicit validation checkpoint ('Validate with mps_mcp_check_root_node_problems') with a debugging tip for tricky cases. It misses anchor 5 because there is no explicit error-recovery feedback loop (what to do when validation fails, other than the pointers to rules-and-pitfalls.md) — 'sequence present, checkpoint present, retry loop implicit'. Operations are node-creation rather than destructive, so no cap applies.

4 / 5

Progressive Disclosure

The 'Reference Index' is well-signaled with per-reference 'open when' triggers, a 'Start here — most common case' entry pointing to references/json-patterns.md, and one-level-deep links (references/aspect-model-stereotypes.md, concept-catalog.md, rules-and-pitfalls.md, setup-and-engine.md, baselanguage-builder-index.md, sample-language-reference.md) — structurally matching anchor 5. However, no references/ directory is present in the bundle, so none of the six referenced paths could be verified to exist, which is a navigation-integrity gap that keeps it at 4 rather than 5.

4 / 5

Total

16

/

20

Passed

Description

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

A strong description: it opens with an explicit 'Use when' trigger, states the what concretely, and enumerates the covered concepts and instructions. Third-person voice is used throughout with no fluff or over-claims. Only gap is a few natural trigger synonyms (e.g., 'unreachable code', 'uninitialized variable').

DimensionReasoningScore

Specificity

The description enumerates concrete capabilities and entities: 'DataFlowBuilderDeclaration, BuilderBlock, emit instructions (code for, jump, ifjump, label, read, write, ret, mayBeUnreachable), positions (AfterPosition, BeforePosition, LabelPosition)', plus 'the NodeParameter implicit, BL+smodel usage inside builder bodies, and IBuilderMode for advanced analyses such as nullable/non-null tracking'. Coverage is comprehensive and concrete — not vague. Anchor 4 would require minor gaps in coverage; the enumerated list covers the aspect's full surface.

5 / 5

Completeness

It explicitly answers 'when' first — 'Use when defining or debugging MPS dataflow builders for a concept' — and 'what' concretely: 'control/data flow declarations that drive reachability analysis and variable-use checking', followed by an explicit 'Covers ...' list. Both halves are explicit with concrete trigger phrases, matching the anchor-5 good example structure.

5 / 5

Trigger Term Quality

Natural domain phrases are present — 'defining or debugging MPS dataflow builders', 'reachability analysis', 'variable-use checking', 'nullable/non-null tracking' — which is good keyword coverage. It falls short of anchor 5 because common user phrasings like 'unreachable code' or 'uninitialized variable' (the engine's actual diagnostics) are absent, while synonyms/extensions coverage is otherwise incomplete.

4 / 5

Distinctiveness Conflict Risk

A clear niche (the MPS dataflow aspect) with distinct, domain-locked triggers — dataflow builders, emit instructions, ifjump/label semantics. It is unlikely to fire for sibling MPS aspect skills (behavior, typesystem) since dataflow-engine terminology dominates; distinctness is not merely 'mostly distinct' (anchor 4) but fully niche-specific.

5 / 5

Total

19

/

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: 7 missing

Warning

referenced_paths_exist

Referenced path issues: 17 missing

Warning

Total

13

/

16

Passed

Repository
JetBrains/MPS
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.