К основному содержанию
скилл CX Codex

verify · codewithmukesh — скилл для Claude Code: проверка .NET

Запускает проверку .NET-проекта перед ревью: сборку, тесты, безопасность, форматирование и анализ изменений.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add codewithmukesh/dotnet-claude-kit --skill verify -a claude-code
Открыть на GitHub

Что делает verify

Скилл проводит последовательную проверку .NET-проекта из 7 этапов. Он проверяет сборку, диагностику анализаторов, антипаттерны, тесты, уязвимости пакетов, форматирование и git diff.

Для сборки используются dotnet build, для тестов — dotnet test, а формат проверяется через dotnet format --verify-no-changes. Этапы диагностики и антипаттернов вызывают инструменты Roslyn MCP get_diagnostics и detect_antipatterns. Отчёт показывает PASS, WARN или FAIL по каждому этапу.

Ошибка сборки или тестов останавливает дальнейшую проверку, потому что результаты следующих шагов уже не будут показательными. Для Roslyn-проверок нужен MCP: если он не подключён, это повод проверить конфигурацию до запуска полного контура.

Какие задачи решает

  • проверить сборку .NET-проекта перед ревью
  • найти новые предупреждения анализаторов
  • выявить async void и синхронное ожидание задач
  • проверить пакеты на уязвимости
  • обнаружить лишние изменения в git diff

Примеры запросов агенту

  • /verify
  • Проверь все этапы перед созданием PR.
  • Какие проверки запустить после обновления зависимостей?

Как установить verify

1Через Skills CLI (Vercel)

npx skills add codewithmukesh/dotnet-claude-kit --skill verify -a claude-code

2Вручную: положить файлы

~/.claude/skills/verify/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/verify/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о verify

Как установить verify в Claude Code?

Выполните npx skills add codewithmukesh/dotnet-claude-kit --skill verify -a claude-code, затем повторите npx skills add codewithmukesh/dotnet-claude-kit --skill verify -a claude-code. Скилл размещается в ~/.claude/skills/verify/SKILL.md.

Что делает verify?

Скилл запускает 7 этапов проверки .NET-кода: от сборки и тестов до сканирования безопасности, проверки формата и ревью изменений. Для каждого этапа он формирует статус PASS, WARN или FAIL.

Почему verify прекращает работу после ошибки сборки или тестов?

Сборка и тесты отмечены как критические этапы. При их сбое скилл останавливает конвейер и предлагает сначала исправить найденную проблему.

Исходный текст

SKILL.md · MIT
---
name: verify
description: >
  Run a comprehensive 7-phase verification pipeline for .NET projects: build,
  analyzers, antipattern detection, tests, security, formatting, and diff
  review. Each phase produces PASS/FAIL with actionable output and the pipeline
  short-circuits on critical failures. Also the authority on verification
  strategy: which phases to run for a given change, quality gates, and
  fix-and-retry loops. Use when: "verify", "check everything", "is this ready",
  "pre-PR check", "run all checks", "quality gate", "verification strategy",
  "which checks should run", or after completing a feature or refactor.
---

# /verify -- 7-Phase Verification Pipeline

## What

Runs a sequential, 7-phase verification pipeline that catches issues at every level --
from compiler errors to subtle antipatterns to formatting drift. Each phase produces
an explicit PASS, WARN, or FAIL with details. "It looks fine" is not a verification
result; a table of statuses is. Critical failures (Phase 1 build, Phase 4 tests)
short-circuit the pipeline because later phases cannot produce meaningful results
on broken code.

The pipeline answers one question: **"Is this code ready for review?"**

| Phase | Tool | What It Catches | Critical |
|-------|------|-----------------|----------|
| 1. Build | `dotnet build` | Compilation errors, missing references | Yes |
| 2. Diagnostics | `get_diagnostics` (MCP) | New analyzer warnings, nullability issues | FAIL on new errors |
| 3. Antipatterns | `detect_antipatterns` (MCP) | async void, sync-over-async, `DateTime.Now`, more | No |
| 4. Tests | `dotnet test` | Failing tests, regressions | Yes |
| 5. Security | `dotnet list package --vulnerable` + scan | Secrets, SQL injection, missing auth, vulnerable packages | FAIL on critical/high |
| 6. Format | `dotnet format --verify-no-changes` | Style drift, formatting inconsistencies | No |
| 7. Diff Review | `git diff` analysis | Accidental changes, debug leftovers, TODOs | No |

## When

- After completing a feature, bug fix, or major refactor
- Before creating a pull request -- non-negotiable, full pipeline
- After merging upstream changes or updating dependencies
- When the user says "verify", "check everything", "is this ready", "run all checks"
- As the final step before marking a task complete

### Which Phases to Run

Full pipeline is the default. For scoped changes, run a subset:

| Scenario | Phases | Notes |
|----------|--------|-------|
| Feature complete / Pre-PR / new endpoint | All 7 | No shortcuts |
| Bug fix | 1, 2, 4 | Add a test first if none covers it |
| After refactor | 1, 2, 3, 4 | Correctness focus; add 5-7 if security-sensitive |
| Dependency update | 1, 4, 5 | Build, tests, vulnerability scan |
| Config or test-only change | 1, 4 | Build and test |
| Formatting only | 6 | Format check is sufficient |

When in doubt, run all 7. Extra phases cost minutes; a missed security issue costs
days of incident response. Never cherry-pick phases because a change "looks safe".

## How

### Phase 1: Build (CRITICAL -- short-circuits)

```bash
dotnet build --no-restore --verbosity quiet
```

- If the build fails, STOP. Report errors and fix before continuing -- nothing
  downstream is meaningful on code that does not compile.
- Capture the warning count even on PASS; new warnings are tracked in Phase 2.
- Output: PASS (0 errors) or FAIL (with error list)

### Phase 2: Diagnostics

Use the Roslyn MCP `get_diagnostics` tool, scoped to changed files/projects
(full solution for cross-cutting changes). Compare against baseline -- flag only
NEW warnings introduced by the current changes. Common findings: CS8600/CS8602
(nullability), CS0219 (unused variable).

Output: PASS (0 new) / WARN (new warnings) / FAIL (new errors). Treat new
warnings as work -- today's CS8600 is next month's production NullReferenceException.

### Phase 3: Antipattern Detection

Use the Roslyn MCP `detect_antipatterns` tool on changed files (full project for
broad changes). Catches: `async void`, sync-over-async (`.Result`,
`.GetAwaiter().GetResult()`), `new HttpClient()`, `DateTime.Now`/`UtcNow` instead
of `TimeProvider`, broad `catch (Exception)`, string interpolation in logging,
missing `CancellationToken`, EF read queries without `AsNoTracking`.

Output: PASS (0 findings) / WARN (findings) / FAIL (critical antipatterns)

### Phase 4: Tests (CRITICAL -- short-circuits)

```bash
dotnet test --no-build --verbosity quiet
```

- Full suite, or scoped to affected test projects for large solutions.
- Any failing test is a FAIL -- no exceptions. Stop and fix before later phases.
- If no test project exists: SKIP with a recommendation to add tests.

Output: PASS (all green) or FAIL (failing test names + error messages)

### Phase 5: Security Scan

```bash
dotnet list package --vulnerable --include-transitive
```

Then review changed files for: hardcoded secrets/connection strings/API keys,
SQL injection (raw SQL without parameterization), missing `[Authorize]` on
endpoints that need it, permissive CORS, missing input validation, disabled
HTTPS or certificate validation.

Output: PASS / WARN (medium/low findings) / FAIL (critical/high vulnerabilities)

### Phase 6: Format Check

```bash
dotnet format --verify-no-changes --verbosity quiet
```

Reports drift without auto-fixing. To resolve, run `dotnet format` and include
the changes in the commit. If no `.editorconfig` exists, note it as a recommendation.

Output: PASS / WARN (with file list)

### Phase 7: Diff Review

Analyze `git diff --stat` and `git diff` (staged + unstaged) for:
- Accidental or unrelated file changes (`.vs/`, `bin/`, `obj/`, `.env`, secrets)
- Debug leftovers (`Console.WriteLine`, `#if DEBUG` in production paths)
- Unresolved TODO/HACK/FIXME markers
- Scope mismatch -- changes must match the task/PR description

Output: PASS (clean, matches intent) / WARN (with findings)

### Fix-and-Retry Loop

A single pass rarely produces all-green. The loop is the point:

1. **IDENTIFY** -- which phase failed, and the specific error
2. **FIX** -- make the minimal change that resolves it
3. **RE-RUN** -- from Phase 1 if the fix changed code; otherwise from the failed phase
4. **REPEAT** -- until all phases pass, or an issue needs user input

### Final Summary

```
## Verification Results

| Phase | Result | Details |
|-------|--------|---------|
| 1. Build | PASS | 0 errors, 0 warnings |
| 2. Diagnostics | PASS | 0 new diagnostics |
| 3. Antipatterns | WARN | 1 missing CancellationToken |
| 4. Tests | PASS | 47 passed, 0 failed |
| 5. Security | PASS | No findings |
| 6. Format | PASS | Clean |
| 7. Diff Review | WARN | 1 TODO marker found |

**Verdict: READY FOR REVIEW** (with 2 non-blocking warnings)
```

Verdicts: **READY FOR REVIEW** (all PASS, or only non-blocking WARNs) or
**NEEDS FIXES** (any FAIL, with specific remediation steps). For pre-PR runs,
include the verification report in the PR description.

## Example

```
User: /verify

Claude: Running 7-phase verification pipeline...

Phase 1: Build ............ PASS (0 errors)
Phase 2: Diagnostics ...... PASS (0 new warnings)
Phase 3: Antipatterns ..... WARN
  - src/Features/Orders/CreateOrder.cs:42 -- DateTime.Now usage, use TimeProvider
Phase 4: Tests ............ PASS (23 passed, 0 failed, 0 skipped)
Phase 5: Security ......... PASS
Phase 6: Format ........... PASS
Phase 7: Diff Review ...... PASS

Verdict: READY FOR REVIEW (1 non-blocking warning)

Recommendation: Replace DateTime.Now with TimeProvider on line 42 before
merging. Not blocking, but it will fail the antipattern check in CI.
```

## Related

- `/build-fix` -- Auto-fix build errors when Phase 1 fails
- `/code-review` -- Multi-dimensional review once verification passes
- `/health-check` -- Whole-project graded assessment (beyond this change set)

© codewithmukesh · MIT · codewithmukesh/dotnet-claude-kit

Похожие скиллы

Всё по теме «Тесты и QA» →

Сначала — verify от других авторов.

verify react Проверяет код перед коммитом в репозиторий React. Запускает форматирование, линтер, проверку типов Flow и тесты. CX Codex +1 1 200установок verify Yeachan-Heo Скилл превращает «должно работать» в проверяемые доказательства: что запускали, что прошло, что осталось непроверенным. CX Codex +1 647установок find-untested-sources dotnet Находит файлы исходного кода без тестов через статический анализ AST без сборки проекта. Пригодится агенту перед генерацией тестов, чтобы составить точный список пробелов. CX Codex +1 3 100установок openspec-verify-change openspec Сверяет написанный код со спецификациями, задачами и архитектурой OpenSpec перед архивацией изменения. Пригодится при финальной приёмке задач. CX Codex +1 3 500установок audit-verify-explain-grade-5 MengTo Скилл заставляет агента проверить работу по фактам, а потом объяснить результат простыми словами. Пригодится, когда нужно разобрать чужой фикс или отчёт о тестах. CX Codex +1 1 400установок ponytail-review DietrichGebert Скилл проверяет изменения глубже обычного diff: читает связанный код, ищет ошибки, риски, проблемы нагрузки и недостающие тесты. Пригодится для ревью PR и коммитов. CX Codex +1 57 000установок ponytail-audit DietrichGebert Проверяет репозиторий и ранжирует ошибки, риски и лишний код. Подойдёт, если нужен разовый разбор без автоматических правок. CX Codex +1 45 400установок code-review-excellence Seth Hobson Скилл помогает разбирать pull request по этапам, находить ошибки и давать конкретную обратную связь. Подойдёт для ревью кода и настройки командных стандартов. CX Codex 30 193установок

Из того же набора46

ddd Скилл для тактических паттернов Domain-Driven Design в .NET: агрегаты, value objects, доменные события, строго типизированные ID и репозитории для агрегатов. CX Codex +1 2 900установок clean-architecture Скилл для .NET-проектов: раскладывает код по четырём слоям, следит за направлением зависимостей и подсказывает, где живут use case-хендлеры. CX Codex +1 3 000установок code-review Многоуровневое ревью .NET-кода: Roslyn MCP ищет антипаттерны и диагностику, а ручная проверка идёт по зонам риска. CX Codex +1 2 800установок project-setup Подбирает стек технологий для проектов на .NET: базу данных, авторизацию, кеш и очереди. Пригодится на старте архитектурного выбора или ревизии зависимостей. CX Codex +1 2 800установок instinct-system Фиксирует паттерны, правки пользователя и находки в файлах проекта. Нужен, когда агенту надо учиться на повторяющихся решениях. CX Codex +1 2 800установок container-publish Собирает OCI-образы прямо из dotnet publish /t:PublishContainer, без Dockerfile. Пригодится, когда проект на .NET 10 надо упаковать в контейнер и запушить в реестр. CX Codex +1 2 800установок workflow-mastery Набор практик и готовых конфигураций для ускорения разработки на .NET в Claude Code. Помогает настроить параллельные сессии через git worktree, циклы верификации и лимиты контекста. CX Codex +1 2 800установок aspire Помогает настроить .NET Aspire для локального запуска сервисов, ресурсов и обнаружения сервисов. Нужен при работе с AppHost и общими настройками сервисов. CX Codex +1 2 800установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой