CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

crap-analysis

Analyze code coverage and CRAP (Change Risk Anti-Patterns) scores to identify high-risk code. Use OpenCover format with ReportGenerator for Risk Hotspots showing cyclomatic complexity and untested code paths.

Quality

72%

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/crap-analysis/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 highly actionable with complete, executable configuration and commands for the entire CRAP-analysis workflow, and the workflow order is easy to follow. It is weakened by missing validation/verification steps in the batch workflow, padded explanatory sections and duplicated tables, and a monolithic structure that inlines CI and exclusion detail instead of using reference files.

Suggestions

Add explicit validation checkpoints, e.g. verify `TestResults/**/coverage.opencover.xml` exists before running reportgenerator, and a fix-and-retry loop if test collection fails.

Trim the "Why CRAP Matters" section, the cyclomatic/NPath definitions, and merge the duplicated threshold/exclusion tables into one each.

Move the GitHub Actions and Azure Pipelines YAML and the exclusion-pattern details into reference files (e.g. references/ci-github.md), keeping SKILL.md as a lean overview with clearly signaled one-level-deep links.

DimensionReasoningScore

Conciseness

Most content is operational (runsettings XML, commands, CI YAML), but there is unnecessary material: the "Why CRAP Matters" explanation bullets, definitions of cyclomatic/NPath complexity Claude already knows, and duplicated tables ("Recommended Standards" vs "Project Standards", and "What Gets Excluded" restating the runsettings comments). Not 2 because the padding is limited rather than pervasive; not 4 because several sections could be trimmed or merged.

3 / 5

Actionability

Everything needed to execute is present and copy-paste ready: a complete coverage.runsettings XML, the .config/dotnet-tools.json manifest, exact `dotnet test`/`dotnet reportgenerator` commands, full GitHub Actions and Azure Pipelines YAML, and a one-liner Quick Reference covering the whole workflow. The common cases (collect, report, interpret, enforce in CI) are all covered with runnable commands.

5 / 5

Workflow Clarity

The sequence (setup runsettings → install ReportGenerator → run tests → generate report → interpret hotspots → set thresholds/CI) is clear and reinforced by the Quick Reference, but validation checkpoints are missing or implicit: there is no check that coverage.opencover.xml was produced before invoking reportgenerator, no error-recovery loop, and the `rm -rf coverage/ TestResults/` cleanup and batch test runs have no verification steps. Per the guideline capping batch-operation workflows without validation, this cannot exceed 3.

3 / 5

Progressive Disclosure

The single ~380-line file is well-sectioned with headers and has no nested references, but content that plausibly belongs in separate files is inlined (full CI pipeline YAML for two platforms, the exclusion-pattern details) and there are no bundled reference files to offload detail to. Not 4 because the SKILL.md is a long monolith rather than an overview pointing to deeper material.

3 / 5

Total

14

/

20

Passed

Description

66%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 specific and tool-anchored, naming OpenCover, ReportGenerator, and Risk Hotspots, which gives it a distinct identity and good trigger terms. Its main weakness is the absence of any "Use when..." trigger guidance, capping completeness at 3, plus a few missing natural synonyms like "test coverage".

Suggestions

Add an explicit trigger clause, e.g. "Use when evaluating .NET test coverage, identifying risky code before refactoring, or setting coverage thresholds for CI".

Include natural synonyms and variants users would say, such as "test coverage", "coverage report", or ".NET", to broaden trigger-term coverage.

Mention the setup/threshold/CI-enforcement capabilities the body actually covers so the description's action list is comprehensive.

DimensionReasoningScore

Specificity

"Analyze code coverage and CRAP ... scores", "identify high-risk code", and "Use OpenCover format with ReportGenerator for Risk Hotspots" are several concrete actions with named tools and formats. Not 5 because the description omits capabilities the skill body covers (coverage setup, thresholds, CI/CD integration), leaving minor gaps in coverage.

4 / 5

Completeness

The "what" is clearly and concretely stated (analyze coverage and CRAP scores, identify high-risk code), but there is no "Use when..." clause or equivalent explicit trigger guidance — "Use OpenCover format with ReportGenerator" describes how, not when. Per the judging guideline, a missing trigger clause caps completeness at 3.

3 / 5

Trigger Term Quality

Natural trigger terms like "code coverage", "CRAP", "high-risk code", "cyclomatic complexity", and "untested code paths" are present and would be said by a user needing this skill. Not 5 because common synonyms and variants such as "test coverage", "coverage report", or ".NET" are missing.

4 / 5

Distinctiveness Conflict Risk

"CRAP", "OpenCover", "ReportGenerator", and "Risk Hotspots" establish a clear niche unlikely to trigger the wrong skill. Not 5 because "Analyze code coverage" leaves minor overlap risk with a generic coverage-reporting or test-running skill.

4 / 5

Total

15

/

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/crap-analysis/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.