agentleFS
codewithmukeshcodewithmukesh/dotnet-claude-kit/skills/verify/SKILL.md

verify

Skill808 starsChanged 4 months agoMITView on GitHub

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.

  • Reads credentials

188 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use instinct-export, instinct-import and 9 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • TheKREATORSSkill

    instinct-export

    Export instincts from project/global scope to a file

    Also in 3 projects that use this

  • TheKREATORSSkill

    instinct-import

    Import instincts from file or URL into project/global scope

    Also in 3 projects that use this

  • AviadPSkill

    risk-assess

    Assess the risk and blast radius of a proposed code change before implementing it. Evaluates CI impact, framework-wide vs localized scope, rollback path, and identifies blindspots. Use when user says "what's the risk", "is this safe", "assess the impact", "risk assess", "blast radius", or before applying framework-wide or CI-affecting changes. Do NOT use for code quality review (use code-quality) or plan validation (use design-validator).

    Also in 3 projects that use this

  • AaravChadhaSkill

    secure

    Security review with a confidence gate - a finding exists only with a concrete exploit scenario and a high/medium/low confidence rating; everything else goes to a worth-hardening list, never inflated. Sweeps five surfaces: auth gates, secrets hygiene, injection and unsafe sinks, unsafe deserialization/crypto/transport, and LLM tool-use trust boundaries. Reports only, never fixes. Use when the user asks for a security review or to check vulnerabilities, secrets, or auth.

    Also in 3 projects that use this

  • ArvorCoSkill

    specify

    Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec.

    Also in 10 projects that use this

  • Jurel89Skill

    ai-slop-cleaner

    Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode

    Also in 4 projects that use this

  • +1 more from TheKREATORS

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 167 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After completing a feature, bug fix, or major refactor

    line 39
  2. Distinctive:

    Before creating a pull request -- non-negotiable, full pipeline

    line 40
  3. Distinctive:

    After merging upstream changes or updating dependencies

    line 41
  4. Distinctive:

    When the user says "verify", "check everything", "is this ready", "run all checks"

    line 42
  5. Distinctive:

    When in doubt, run all 7. Extra phases cost minutes.

    line 58
  6. Distinctive:

    If the build fails, STOP. Report errors and fix before continuing -- nothing downstream is meaningful on code that does not compile.

    line 69
  7. Very specific:

    Use the Roslyn MCP get_diagnostics tool, scoped to changed files/projects (full solution for cross-cutting changes).

    line 76
  8. Very specific:

    Use the Roslyn MCP detect_antipatterns tool on changed files (full project for broad changes).

    line 86
  9. Distinctive:

    If no test project exists: SKIP with a recommendation to add tests.

    line 102

“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/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?"

PhaseToolWhat It CatchesCritical
1. Builddotnet buildCompilation errors, missing referencesYes
2. Diagnosticsget_diagnostics (MCP)New analyzer warnings, nullability issuesFAIL on new errors
3. Antipatternsdetect_antipatterns (MCP)async void, sync-over-async, DateTime.Now, moreNo
4. Testsdotnet testFailing tests, regressionsYes
5. Securitydotnet list package --vulnerable + scanSecrets, SQL injection, missing auth, vulnerable packagesFAIL on critical/high
6. Formatdotnet format --verify-no-changesStyle drift, formatting inconsistenciesNo
7. Diff Reviewgit diff analysisAccidental changes, debug leftovers, TODOsNo

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:

ScenarioPhasesNotes
Feature complete / Pre-PR / new endpointAll 7No shortcuts
Bug fix1, 2, 4Add a test first if none covers it
After refactor1, 2, 3, 4Correctness focus; add 5-7 if security-sensitive
Dependency update1, 4, 5Build, tests, vulnerability scan
Config or test-only change1, 4Build and test
Formatting only6Format 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)

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)

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

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

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)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.