CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dotnet-local-tools

Managing local .NET tools with dotnet-tools.json for consistent tooling across development environments and CI/CD pipelines.

Quality

67%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/local-tools/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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 skill body is highly actionable with concrete, executable commands and complete CI examples, and its troubleshooting section gives useful error-recovery feedback. However, it is significantly redundant (manifest and tool JSON repeated multiple times), explains concepts Claude already knows, and inlines per-tool and CI content that belongs in separate reference files, hurting token efficiency and organization.

Suggestions

Eliminate duplicate content: show the full manifest JSON once and drop the repeated JSON blocks in 'Best Practices' and 'Example: Complete Development Setup', which repeat earlier sections nearly verbatim.

Move the per-tool catalog (docfx, dotnet-ef, reportgenerator, incrementalist, csharpier) and CI/CD pipeline examples into reference files (e.g. references/tools.md, references/ci-cd.md) and link to them from SKILL.md.

Trim the 'What Are Local Tools?' concept explanation and the local-vs-global comparison table, which cover knowledge Claude already has, and cut the 'Best Practices' items that restate the Fields table.

DimensionReasoningScore

Conciseness

The body is noticeably verbose with several padded or duplicated sections: the full manifest JSON appears three times (format section, best practices, and 'Complete Development Setup'), each tool's JSON snippet appears twice, 'What Are Local Tools?' explains concepts Claude already knows, and 'Best Practices' largely repeats the Fields table. Specific version numbers (2.78.3, 9.0.0, etc.) are scattered throughout without being quarantined in a versions/deprecations section. This matches anchor 2 ('Noticeably verbose; several unnecessary explanations or padded sections') better than anchor 3's 'mostly efficient'.

2 / 5

Actionability

The guidance is fully executable and copy-paste ready: 'dotnet new tool-manifest', 'dotnet tool install docfx --version 2.78.3', 'dotnet tool restore', complete CI/CD YAML for GitHub Actions and Azure Pipelines, per-tool usage commands, and troubleshooting commands. Specific examples cover the common cases (setup, updates, listing, uninstalling, CI integration), matching the anchor 5 example.

5 / 5

Workflow Clarity

The setup sequence (create manifest, install tools, restore) is present, the closing 'Development workflow' example consolidates an ordered end-to-end flow, and the Troubleshooting section provides error-recovery feedback (tool not found, version conflicts, clearing cache). It falls short of anchor 5 because the workflow is spread across topic-based sections rather than one explicit validated sequence with checkpoints. No destructive/batch cap applies since these are idempotent tool operations.

4 / 5

Progressive Disclosure

The body has good section headers but is a ~470-line monolithic file with no external reference files at all; content that clearly belongs in separate files — the per-tool catalog with manifest snippets and the CI/CD pipeline examples — is fully inlined. This matches anchor 3 ('Some structure but could be better organized; content that should be separate is inline'). It cannot use the simple-skill exception since it far exceeds 50 lines.

3 / 5

Total

14

/

20

Passed

Description

53%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 identifies a specific, distinct niche (local .NET tool management via dotnet-tools.json) with a clear purpose, but it lacks an explicit 'Use when...' trigger clause and relies on a single generic verb ('Managing') instead of concrete actions, which limits its discoverability and completeness. Adding explicit trigger guidance and specific action verbs would move it into the top band.

Suggestions

Add an explicit trigger clause, e.g. 'Use when setting up or restoring .NET local tools, pinning tool versions, or when the user mentions dotnet tool restore, tool manifests, or dotnet-tools.json.'

Replace the generic verb 'Managing' with concrete actions such as 'Install, restore, update, and pin .NET local tools...'.

Include natural user phrases like 'dotnet tool restore', 'dotnet tool install', and 'tool manifest' as trigger terms for better keyword coverage.

DimensionReasoningScore

Specificity

The description names the domain concretely ('local .NET tools', 'dotnet-tools.json') and the purpose ('consistent tooling across development environments and CI/CD pipelines'), but the only action verb is the generic 'Managing' — no concrete actions like install, restore, or pin versions. It is more informative than anchor 2 ('Names the domain but actions are minimal or generic') yet falls short of anchor 4, which requires several specific actions.

3 / 5

Completeness

The 'what' is clear (managing local .NET tools via the dotnet-tools.json manifest), but there is no 'Use when...' clause or equivalent explicit trigger guidance — the 'when' is only weakly implied through 'for consistent tooling across development environments and CI/CD pipelines'. Per the judging guidelines, a missing explicit trigger clause caps completeness at 3.

3 / 5

Trigger Term Quality

Relevant keywords are present ('local .NET tools', 'dotnet-tools.json', 'CI/CD', 'development environments') but common natural phrases users would say are missing, such as 'dotnet tool restore', 'dotnet tool install', or 'tool manifest'. This matches anchor 3 ('Some relevant keywords but missing common variations or synonyms') rather than anchor 4's 'good keyword coverage'.

3 / 5

Distinctiveness Conflict Risk

The reference to 'dotnet-tools.json' and 'local .NET tools' pins a clear niche with low conflict risk, but the broad framing 'consistent tooling across development environments and CI/CD pipelines' leaves minor overlap with general .NET build, NuGet, or CI setup skills. This fits anchor 4 ('Mostly distinct; minor overlap risk') better than anchor 5's fully distinct triggers.

4 / 5

Total

13

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

Aaronontheweb/dotnet-skills

Path

skills/local-tools/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.