CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dotnet-inspect-compatibility

Compare .NET library versions for API breaks, implementation changes and static analysis shifts; follow exact API correspondence and history without treating comparisons as safe-upgrade verdicts.

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/compatibility/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is an exemplary dense, command-first skill: executable examples throughout, terse expert-level annotations, and explicit validation guidance for comparisons and boundary confirmation. Its only structural weakness is that everything lives inline in one ~100-line file, where a reference split could keep SKILL.md as a leaner overview.

DimensionReasoningScore

Conciseness

The body is lean and dense, assuming competence ('Incomplete or rejected comparisons are **not compared**, not "no changes."', 'Checkpoint transitions establish changes between probes, not the exact introduction version') with zero beginner padding; every sentence carries tool-specific information, matching the anchor-5 example's economy.

5 / 5

Actionability

Every section leads with copy-paste-ready commands using real flags and version ranges ('dnx dotnet-inspect -y -- diff --package System.Text.Json@9.0.0..10.0.0 --breaking', '--finding analysis.allocation --at first --at last'), covering the common cases of diffing, member tracking, analysis shifts, history, and boundary confirmation — fully executable.

5 / 5

Workflow Clarity

Task sections are clearly sequenced with explicit validation checkpoints ('Read completion, diagnostics and exit status', 'Confirm a candidate adjacent boundary with the native Finding comparison', 'walk backward from the bad version to a successful absence'), but there is no explicit error-recovery feedback loop (e.g., what to do after a rejected comparison), keeping it below anchor 5.

4 / 5

Progressive Disclosure

Five well-headed task sections with consistent structure and pointers to companion skills ('Load `skill decompiler` or `skill sourcelink`'), and no bundle files exist to reference; however, at ~100 inline lines, detail such as history flag semantics, the Finding outcome taxonomy, and '--at' grammar could be split into a reference file — good structure with minor organization gaps rather than the clean overview-plus-references split of anchor 5.

4 / 5

Total

18

/

20

Passed

Description

62%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 states concrete, domain-specific capabilities in third person with excellent distinctiveness, but it entirely lacks a 'when to use' trigger clause and misses common user vocabulary (NuGet, packages, breaking changes, upgrade). Adding an explicit 'Use when...' clause with natural synonyms would materially improve trigger quality and completeness.

Suggestions

Add an explicit trigger clause, e.g. 'Use when comparing .NET/NuGet package versions across an upgrade, checking for breaking API changes, or investigating when a behavior first appeared.'

Include natural synonyms users actually say — 'NuGet packages', 'breaking changes', 'upgrade', 'compatibility' — alongside the current '.NET library versions' and 'API breaks'.

Consider mentioning version-boundary location ('find the version where a change first appeared') since it is a headline capability of the body content.

DimensionReasoningScore

Specificity

Names the domain ('Compare .NET library versions') and several concrete actions ('API breaks, implementation changes and static analysis shifts', 'follow exact API correspondence and history'), but omits capabilities covered in the body such as version discovery and boundary location — minor gaps in coverage matching anchor 4 rather than comprehensive anchor 5.

4 / 5

Completeness

The 'what' is clear and concrete, but there is no 'Use when...' clause or equivalent trigger guidance; the trailing clause ('without treating comparisons as safe-upgrade verdicts') is behavioral guidance, not a 'when'. Per the rubric guideline, a missing explicit trigger caps completeness at 3.

3 / 5

Trigger Term Quality

'.NET library versions' and 'API breaks' are relevant natural terms, but common user phrasings like 'NuGet', 'packages', 'breaking changes', 'upgrade', and 'compatibility' are absent — more than 'a few natural terms missing', so it sits at anchor 3 rather than 4.

3 / 5

Distinctiveness Conflict Risk

The niche is narrow and distinct — .NET library version comparison with API correspondence semantics — with minimal realistic overlap against other skills, matching anchor 5 ('clear niche with distinct triggers; minimal conflict risk').

5 / 5

Total

15

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

richlander/dotnet-inspect

Path

skills/compatibility/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.