# dotnet-slopwatch

Скилл отслеживает уловки нейросетей при правке кода C#: пропуск упавших тестов, скрытие предупреждений и пустые блоки catch. Он запускает утилиту slopwatch для защиты проекта от фиктивных правок.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 552 установки · ★ 1238
- Автор: Aaronontheweb
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/slopwatch/SKILL.md
- Обновлён: 2026-10-11
- HTML: https://affpapa.org/nevibecode/skills/dotnet-slopwatch

## Что делает

Скилл анализирует изменения в файлах `.cs`, проектах `.csproj` и конфигурациях `Directory.Build.props`. Он ищет приёмы оптимизации под тесты, когда агент формально добивается сборки или прохождения проверок, но фактически маскирует ошибку. Под проверку попадают директивы `#pragma warning disable`, атрибуты `[Fact(Skip="...")]`, пустые секции `catch` и искусственные задержки `Task.Delay`.

Для работы скилла требуется установленная утилита `Slopwatch.Cmd`, которую добавляют глобально через `dotnet tool install --global Slopwatch.Cmd` или локально в `.config/dotnet-tools.json`. Перед началом работы на существующей кодовой базе необходимо сформировать файл `.slopwatch/baseline.json` командой `slopwatch init`. Без этой базовой фиксации инструмент станет ругаться на старый технический долг вместо новых изменений.

Проверку можно автоматизировать прямо в Claude Code, прописав команду `slopwatch analyze -d . --hook` в событие `PostToolUse` настроек `.claude/settings.json`. Флаг `--hook` анализирует только изменённые файлы из git и возвращает ошибку, заставляя агента сразу исправить код. Отдельные правила вроде предупреждений компилятора SW002 можно переопределять в `.slopwatch/config.json`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill dotnet-slopwatch -a claude-code
```
```bash
npx skills add Aaronontheweb/dotnet-skills --skill slopwatch -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/slopwatch/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/slopwatch/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill slopwatch -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/slopwatch/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill slopwatch -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/slopwatch/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Aaronontheweb/dotnet-skills slopwatch
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/slopwatch/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill slopwatch -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Aaronontheweb/dotnet-skills --path skills/slopwatch
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/slopwatch/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill slopwatch -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/slopwatch/SKILL.md

## Когда брать
- блокировать отключение тестов через атрибуты `Skip` и `Ignore`
- находить подавление предупреждений компилятора через `#pragma warning disable`
- отслеживать пустые блоки `catch`, проглатывающие исключения
- предотвращать обход централизованного управления пакетами в файлах проектов
- валидировать незакоммиченные правки через хук `PostToolUse`

## Примеры запросов агенту
- «Запусти `slopwatch analyze --fail-on warning`, чтобы проверить последние правки.»
- «Выполни `slopwatch init`, чтобы создать базовый слепок для существующих файлов проекта.»
- «Настрой хук `slopwatch analyze -d . --hook` в конфигурации `.claude/settings.json`.»

## Похожие
- [dotnet-design-pattern-review](https://affpapa.org/nevibecode/skills/dotnet-design-pattern-review.md) — скилл · 11609 установок
- [dotnet-xunit](https://affpapa.org/nevibecode/skills/dotnet-xunit.md) — скилл · 613 установок
- [dotnet-best-practices](https://affpapa.org/nevibecode/skills/dotnet-best-practices.md) — скилл · 15752 установки
- [analyzing-dotnet-performance](https://affpapa.org/nevibecode/skills/analyzing-dotnet-performance.md) — скилл · 4900 установок
- [dotnet-patterns](https://affpapa.org/nevibecode/skills/dotnet-patterns.md) — скилл · 4600 установок
- [dotnet-backend-patterns](https://affpapa.org/nevibecode/skills/dotnet-backend-patterns.md) — скилл · 19076 установок

Из того же набора: [aaronontheweb/dotnet-skills](https://affpapa.org/nevibecode/by/aaronontheweb/dotnet-skills.md) — 32 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
