CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dotnet-slopwatch

Use Slopwatch to detect LLM reward hacking in .NET code changes. Run after every code modification to catch disabled tests, suppressed warnings, empty catch blocks, and other shortcuts that mask real problems.

Quality

85%

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

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 highly actionable, well-sequenced operational guide with executable commands, hook integration, and CI examples covering the common cases. Its weaknesses are redundancy (the baseline-override policy appears in three places) and a monolithic structure that inlines CI and rule detail a reference file could hold.

Suggestions

Consolidate the baseline-override policy into one section: 'Updating the Baseline (Rare)', the 'Philosophy' items, and the 'When to Override (Almost Never)' table repeat the same third-party/generated-code/rate-limit justifications; merge them and keep a single invalid-reasons list.

Move the GitHub Actions and Azure Pipelines YAML into a references/ci-integration.md file and link to it, slimming the main body and giving the skill a clear one-level-deep reference structure.

Trim the 'What is Slop?' prose and the Philosophy section to a few lines; the patterns table already conveys the definitions, and the closing goal statement largely repeats the opening motivation.

DimensionReasoningScore

Conciseness

Most of the body is efficient commands, tables, and config snippets, but the override/baseline-update policy is restated three times ('Updating the Baseline (Rare)' justification examples, the 'Philosophy' section's items 3-4, and the 'When to Override (Almost Never)' table), so roughly 40 lines could be consolidated. This matches 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than 4's 'minor instances'.

3 / 5

Actionability

Everything is copy-paste ready: exact dotnet tool install manifests, slopwatch init/analyze commands with all flags (--fail-on warning, --hook, --stats, --output json), a complete .claude/settings.json hook, GitHub Actions and Azure Pipelines YAML, config.json examples, and a worked example of responding to a flagged issue. This matches the 'fully executable; copy-paste ready' anchor.

5 / 5

Workflow Clarity

The sequence (install -> baseline init -> analyze after every change -> respond to flags -> update baseline only with documented justification) is explicit, with validation feedback loops ('Verify the fix doesn't introduce different slop'; the hook makes 'Claude see the error and can fix it immediately') and a numbered response procedure for flagged issues. This matches the top anchor with explicit checkpoints and error-recovery loops.

5 / 5

Progressive Disclosure

No bundle files exist and the 290-line body is well-sectioned with clear headers and a Quick Reference, matching 'good structure; most content appropriately placed'. It stays below 5 because the skill exceeds the simple-skill exception and inlines CI/CD pipeline configs and detection-rule detail that could live in one-level-deep reference files.

4 / 5

Total

17

/

20

Passed

Description

83%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 that clearly states both what the skill does and when to run it, with concrete .NET-specific slop patterns as triggers. Main gaps are missing common synonyms ('C#', 'slop') and a broad 'after every code modification' trigger that could collide with general code-review skills.

DimensionReasoningScore

Specificity

The description names the domain ('.NET code changes') and several concrete detection targets ('disabled tests, suppressed warnings, empty catch blocks'), matching the 'several specific actions; minor gaps' anchor. It falls short of 5 because all actions are variants of a single detect/catch capability and 'other shortcuts that mask real problems' is generic.

4 / 5

Completeness

It explicitly answers both: what ('detect LLM reward hacking in .NET code changes... catch disabled tests, suppressed warnings, empty catch blocks') and when ('Run after every code modification'), with concrete trigger phrasing matching the top anchor. The missing-'Use when' cap does not apply because explicit trigger guidance is present.

5 / 5

Trigger Term Quality

Natural keywords like 'LLM reward hacking', '.NET', 'disabled tests', 'suppressed warnings', and 'empty catch blocks' give good coverage, matching the 'good keyword coverage; a few natural terms missing' anchor. Common variations users would say ('C#', 'slop', 'skipped tests', '.cs') are absent, keeping it below 5.

4 / 5

Distinctiveness Conflict Risk

The LLM anti-cheat/.NET slop-detection niche is clearly distinct, but 'Run after every code modification' is a broad trigger that overlaps with general code-review, lint, and test-quality skills, matching the 'mostly distinct; minor overlap risk' anchor rather than 5's minimal conflict risk.

4 / 5

Total

17

/

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/slopwatch/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.