Agent skill · software engineering · aaronontheweb

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.

Why this skill is useful

Adds specific commands and patterns for detecting reward hacking in .NET code that the AI wouldn't reliably generate on its own.

What it needs

Requires dotnet installed locally. About 5k tokens when loaded. Last updated 2026-07-03. 1,095 stars on the source repository.

What this skill does

Slopwatch: LLM Anti-Cheat for .NET When to Use This Skill Use this skill constantly. Every time an LLM (including Claude) makes changes to: C# source files (.cs) Project files (.csproj) Props files (Directory.Build.props, Directory.Packages.props) Test files Run slopwatch to validate the changes don't introduce "slop." What is Slop? "Slop" refers to shortcuts LLMs take that make tests pass or builds succeed without actually solving the underlying problem. These are reward hacking behaviors - the LLM optimizes for apparent success rather than real fixes. Common Slop Patterns Pattern Example Why It's Bad --------- --------- -------------- Disabled tests [Fact(Skip="flaky")] Hides failures instead of fixing them Warning suppression #pragma warning disable CS8618 Silences compiler without fixing issue Empty catch blocks catch (Exception) { } Swallows errors, hides bugs Arbitrary delays await Task.Delay(1000); Masks race conditions, makes tests slow Project-level suppression <NoWarn>CS1591</NoWarn> Disables warnings project-wide CPM bypass Version="1.0.0" inline Undermines central package management Never accept these patterns. If an LLM introduces slop, reject the change and require a proper fix. --- Installation As a Local Tool (Recommended) Add to .config/dotnet-tools.json: Then restore: As a Global Tool --- First-Time Setup: Establish a Baseline Before using slopwatch on an existing project, create a baseline of current issues: Why baseline? Legacy code may have existing issues. The baseline ensures slopwatch only catches new slop being introduced, not pre-existing technical debt. --- Usage During LLM Sessions After Every Code Change Run slopwatch after any LLM-generated code modification: When Slopwatch Flags an Issue Do not ignore it. Instead: 1. Understand why the LLM took the shortcut 2. Request a proper fix - be specific about what's wrong 3. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills aaronontheweb/slopwatch

View the source on GitHub

Browse the @skills marketplace