Agent skill

Verification Loop

by Resgrid in Resgrid/Core

7-phase .NET verification pipeline with structured PASS/FAIL reporting.

Apache-2.0Auto-check: notesTesting & QA

Install Verification Loop

skills CLI
$ npx skills add Resgrid/Core --skill verification-loop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Resgrid/Core verification-loop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.forge/skills/verification-loop .claude/skills/verification-loop && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
verification-loop
GitHub stars
229
Token cost
~2.4k tokens
SKILL.md length
604 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
Apache-2.0

At a glance

7-phase .NET verification pipeline with structured PASS/FAIL reporting.

  • Works in 5 steps: Build is the minimum bar — Never mark a… → Automated checks before manual review —… → Short-circuit on critical failures — If… → …
  • Tasks that involve Quality gates
  • SKILL.md covers Core Principles, Patterns, Anti-patterns and Decision Guide
  • Calls dotnet and git

What it does

Verification Loop is an agent skill from Resgrid/Core. 7-phase .NET verification pipeline with structured PASS/FAIL reporting. Ensures every change is build-verified, diagnostics-clean, anti-pattern-free, test-passing, security-scanned, format-compliant, and diff-reviewed before marking work as complete. Load this skill when: "verify", "check everything", "run verification", "pre-PR check", "is this ready", "validate changes", "build and test", "quality gate", "pipeline check", "ready to merge".

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Quality gates. It works with .NET. The repository describes itself as: The Open Source Computer Aided Dispatch (CAD), Personnel, Shift Management, Automatic Vehicle Location (AVL) and Emergency Management Platform that powers Resgrid.com. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Quality gates

Example prompts

  • “verify”
  • “check everything”
  • “run verification”
  • “/verification-loop”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Build is the minimum bar — Never mark a task complete without a green dotnet build. If it doesn't compile, nothing else matters. A broken…
  2. Automated checks before manual review — Tools catch what humans miss. get_diagnostics finds nullability issues, detect_antipatterns…
  3. Short-circuit on critical failures — If the build fails, don't run tests. If tests fail, don't run formatting checks. Failing fast saves…
  4. Structured reporting — Every phase gets an explicit PASS, FAIL, or WARN status with details. No ambiguity. "It looks fine" is not a…
  5. Verification is iterative — A single pass rarely produces all-green. Fix the first failure, re-run from that phase, repeat until clean…

What it can do on your machine

Read from SKILL.md and the folder at commit a31015f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Verification Loop loads about 2.4k tokens when it runs. Until then it costs about 116 tokens; SKILL.md has 604 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~116
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:87
    cidental files (`.vs/`, `bin/`, `obj/`, `.env`, secrets)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Resgrid/Core at commit a31015f, republished under its Apache-2.0 licence (© Resgrid). 604 words, ~2,431 tokens.

Download SKILL.mdSave it as .claude/skills/verification-loop/SKILL.md (or your agent's skills folder).
name
verification-loop
description
7-phase .NET verification pipeline with structured PASS/FAIL reporting. Ensures every change is build-verified, diagnostics-clean, anti-pattern-free, test-passing, security-scanned, format-compliant, and diff-reviewed before marking work as complete. Load this skill when: "verify", "check everything", "run verification", "pre-PR check", "is this ready", "validate changes", "build and test", "quality gate", "pipeline check", "ready to merge".

Verification Loop

Core Principles

  1. Build is the minimum bar — Never mark a task complete without a green dotnet build. If it doesn't compile, nothing else matters. A broken build wastes every subsequent phase's time.

  2. Automated checks before manual review — Tools catch what humans miss. get_diagnostics finds nullability issues, detect_antipatterns catches DateTime.Now usage, and dotnet test proves behavior. Run all of these before eyeballing code.

  3. Short-circuit on critical failures — If the build fails, don't run tests. If tests fail, don't run formatting checks. Failing fast saves time and keeps the feedback loop tight. Fix the most fundamental issue first.

  4. Structured reporting — Every phase gets an explicit PASS, FAIL, or WARN status with details. No ambiguity. "It looks fine" is not a verification result. A table with statuses is.

  5. Verification is iterative — A single pass rarely produces all-green. Fix the first failure, re-run from that phase, repeat until clean. The loop is the point.

Patterns

7-Phase Verification Pipeline

Execute phases in order. Short-circuit on CRITICAL failures (Phase 1 and Phase 4).

Phase 1: Build (CRITICAL)

dotnet build --no-restore

Status: PASS (0 errors) / FAIL (N errors) Short-circuit: If FAIL, stop all subsequent phases. Fix build errors first. Note: Capture warning count even on PASS — new warnings are tracked in Phase 2.

Phase 2: Diagnostics

MCP: get_diagnostics(scope: "file", path: each changed file)
MCP: get_diagnostics(scope: "project", path: changed project)

Status: PASS (0 new warnings) / WARN (N new warnings) / FAIL (new errors) Check: Compare against baseline — only flag NEW warnings introduced by the current changes. Common findings: CS8600 (null reference), CS8602 (dereference of nullable), CS0219 (unused variable).

Phase 3: Anti-pattern Scan

MCP: detect_antipatterns(file: each changed file)

Status: PASS (0 anti-patterns) / WARN (N anti-patterns found) Catches: async void, sync-over-async, new HttpClient(), DateTime.Now, broad catch, logging string interpolation, missing CancellationToken, EF queries without AsNoTracking.

Phase 4: Tests (CRITICAL)

dotnet test --no-build

Status: PASS (all green) / FAIL (N failures) Short-circuit: If FAIL, stop remaining phases. Fix failing tests before proceeding. Note: If no test project exists, status is SKIP with a recommendation to add tests.

Phase 5: Security Scan

dotnet list package --vulnerable --include-transitive

Scan changed files for: hardcoded secrets, connection strings, API keys. Check: OWASP patterns in new code (SQL injection, XSS, missing auth attributes). Status: PASS / WARN (medium/low findings) / FAIL (critical/high vulnerabilities)

Phase 6: Format Compliance

dotnet format --verify-no-changes

Status: PASS (no changes needed) / FAIL (formatting violations found) Fix: Run dotnet format and include formatting changes in the commit.

Phase 7: Diff Review

git diff --stat
git diff

Status: PASS (changes match intent) / WARN (unexpected files changed) Check:

  • No accidental files (.vs/, bin/, obj/, .env, secrets)
  • No unrelated changes mixed in
  • Commit scope matches the task description
  • No debug code (Console.WriteLine, #if DEBUG blocks in production paths)
Show full SKILL.md (186 more words)Show less
Structured Report Format

After running all phases, produce a verification report:

markdown
## Verification Report

| Phase | Status | Details |
|-------|--------|---------|
| 1. Build | PASS | 0 errors, 2 warnings (pre-existing) |
| 2. Diagnostics | WARN | CS8600 in OrderService.cs:47 — possible null reference |
| 3. Anti-patterns | PASS | 0 anti-patterns in changed files |
| 4. Tests | PASS | 42 passed, 0 failed, 0 skipped |
| 5. Security | PASS | No vulnerable packages, no secrets detected |
| 6. Format | PASS | No formatting violations |
| 7. Diff Review | PASS | 3 files changed, all match task scope |

**Overall: PASS (with warnings)**

### Action Items
- [ ] Fix CS8600 in OrderService.cs:47 — add null check or use null-forgiving operator with justification
Fix-and-Retry Loop

When a phase fails, follow this exact sequence:

1. IDENTIFY — Which phase failed? What's the specific error?
2. FIX — Make the minimal change to resolve the issue
3. RE-RUN — Start from the failed phase (not from Phase 1, unless the fix changed code)
   Exception: If the fix involved code changes, re-run from Phase 1 (build)
4. REPEAT — Until all phases pass or you've identified an issue that needs user input

EXAMPLE:
Phase 4 fails: OrderServiceTests.CreateOrder_ReturnsCreated fails with 404
  → Fix: Route was "/orders" but test expected "/api/orders"
  → Re-run from Phase 1 (code changed) → Build PASS → Phase 4 PASS
  → Continue Phase 5, 6, 7
Pre-PR Verification

Before creating any pull request, run the full 7-phase pipeline. This is non-negotiable.

PRE-PR CHECKLIST:
1. All 7 phases PASS (warnings acceptable only if pre-existing)
2. No new warnings introduced
3. All new code has corresponding tests
4. Diff review confirms changes match the PR description
5. No TODO comments left unresolved (or tracked in issues)

Only after all 7 phases pass:
→ Create the PR with the verification report as part of the PR description
Quick Verification

For minor changes (typo fix, config change, documentation), run a subset:

QUICK VERIFICATION (3 phases):
Phase 1: dotnet build
Phase 4: dotnet test
Phase 6: dotnet format --verify-no-changes

Use when:
- Single-line bug fix with existing test coverage
- Configuration change
- Documentation-only change
- Dependency version bump (also add Phase 5 for security)
Post-Refactor Verification

After structural refactoring, focus on correctness:

POST-REFACTOR VERIFICATION (4 phases):
Phase 1: dotnet build — refactors often break compilation
Phase 2: get_diagnostics — refactors often introduce new warnings
Phase 3: detect_antipatterns — refactors can accidentally introduce anti-patterns
Phase 4: dotnet test — the ultimate refactor validation

Skip Phase 5-7 unless the refactor touches security-sensitive code or public APIs.

Anti-patterns

Skipping Verification Entirely
# BAD — "it compiles in my head"
"I've made the changes. The code looks correct. Let me create the PR."
# No build run, no tests, no diagnostics — hope-driven development

# GOOD — verify before declaring done
"Let me run the verification pipeline before we create the PR."
→ Phase 1: Build PASS → Phase 2: Diagnostics PASS → ... → Phase 7: PASS
"All 7 phases passed. Creating the PR now."
Running All Phases When Build Fails
# BAD — wasting time on downstream checks
Phase 1: Build FAIL (3 errors)
Phase 2: Running diagnostics anyway...
Phase 3: Running anti-pattern scan...
Phase 4: Running tests... (they'll fail because build failed)

# GOOD — short-circuit and fix
Phase 1: Build FAIL (3 errors)
→ STOP. Fix the 3 build errors first.
→ Re-run from Phase 1.
Ignoring Warnings
# BAD — "warnings are just suggestions"
Phase 2: 12 new CS8600 warnings introduced
"These are just warnings, not errors. Moving on."
# Three weeks later: NullReferenceException in production

# GOOD — treat new warnings as failures
Phase 2: 12 new CS8600 warnings introduced
"12 new nullability warnings detected. Fixing before proceeding."
→ Add null checks or non-nullable assertions with justification
→ Re-run Phase 2: 0 new warnings. PASS.
Manual-Only Verification
# BAD — reading code instead of running tools
"Let me read through OrderService.cs... looks good to me."
# Missed: DateTime.Now on line 23, async void on line 67, CS8600 on line 91

# GOOD — tools first, then human judgment
→ detect_antipatterns: Found DateTime.Now (line 23), async void (line 67)
→ get_diagnostics: CS8600 on line 91
"Found 3 issues via automated analysis. Fixing all three before manual review."
Cherry-Picking Phases
# BAD — only running the phases you think are relevant
"It's just a service change, I'll skip the security scan."
# The service change added a raw SQL query with string concatenation

# GOOD — full pipeline for non-trivial changes
When in doubt, run all 7 phases. The cost of running extra phases is minutes.
The cost of missing a security issue is days of incident response.

Decision Guide

ScenarioPhasesNotes
Feature completeAll 7Full pipeline, no shortcuts
Bug fix (with test)1, 2, 4Build, diagnostics, tests
Bug fix (no test)1, 2, 3, 4Add a test, then verify
Formatting only6Format check is sufficient
Dependency update1, 4, 5Build, tests, security
Pre-PRAll 7Non-negotiable full pipeline
After refactor1, 2, 3, 4Focus on correctness
Config change1, 4Build and test
New endpoint addedAll 7Full pipeline including security
Test-only changes1, 4Build and run the new tests
Performance optimization1, 2, 3, 4Correctness first, benchmark separately
CI failure investigationRun the failing phase locallyReproduce, fix, verify

© Resgrid, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .forge/skills/verification-loop of Resgrid/Core.

Open the folder on GitHubat commit a31015f

Compare with similar skills

Verification Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Verification Loop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Verification Loop this skillResgrid/Core229—~2.4kAutomated safety check: NotesApache-2.0
Verify Tests Catch the Bugdotnet/maui23k—~2.7kAutomated safety check: PassMIT
Code Completionfacioquo/stock-indicators-dotnet1.2k—~1.2kAutomated safety check: PassApache-2.0
Verifycodewithmukesh/dotnet-claude-kit751—~2kAutomated safety check: NotesMIT
Mcaf Dotnet Resharper Cltmanagedcode/Storage138—~1.5kAutomated safety check: PassMIT
Quality CImanagedcode/dotnet-skills486—~2.1kAutomated safety check: PassMIT

Similar skills

  • Official

    Confirms that newly added tests actually fail without the fix, auto-detecting UI, device, unit or XAML tests and running the matching runner.

    23k GitHub stars~2.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Code Completion

    facioquo/stock-indicators-dotnet

    Quality gates for finishing work in this repository — dead-code cleanup, Roslynator and dotnet format fixes, markdownlint, build, unit tests, documentation, and Obsolete migration shims — with the…

    1.2k GitHub stars~1.2k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Verify

    codewithmukesh/dotnet-claude-kit

    Run a comprehensive 7-phase verification pipeline for .NET projects: build, analyzers, antipattern detection, tests, security, formatting, and diff review.

    751 GitHub stars~2k tokensUpdated 2 mo ago
    Testing & QAAuto-check: notes
  • Mcaf Dotnet Resharper Clt

    managedcode/Storage

    Use the free official JetBrains ReSharper Command Line Tools for .NET repositories.

    138 GitHub stars~1.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Quality CI

    managedcode/dotnet-skills

    Set up or refine open-source .NET code-quality gates for CI: formatting, .editorconfig, SDK analyzers, third-party analyzers, coverage, mutation testing, architecture tests, and security scanning.

    486 GitHub stars~2.1k tokensUpdated today
    Testing & QAAuto-check passed
  • ScottPlot Full Build

    ScottPlot/ScottPlot

    Build the full ScottPlot 5 solution only for solution-wide validation or changes affecting controls, demos, sandboxes, workloads, or platform projects. For…

    6.8k GitHub stars~154 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from Resgrid/Core

All 23 skills in this repo
  • 80 20 Review

    Resgrid/Core

    Focus code review effort on the 20% of code that causes 80% of issues.

    229 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Autonomous Loops

    Resgrid/Core

    Autonomous iteration loops for .NET development: build-fix, test-fix, refactor, and scaffold loops.

    229 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Learning Log

    Resgrid/Core

    Auto-document insights and discoveries during development sessions.

    229 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Logging

    Resgrid/Core

    Observability for .NET 10 applications. An agent skill from Resgrid/Core.

    229 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Model Selection

    Resgrid/Core

    Strategic Codex model selection for .NET development workflows.

    229 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Model Selection

    Resgrid/Core

    Strategic Claude model selection for .NET development workflows.

    229 GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Verification Loop

What does Verification Loop do?

7-phase .NET verification pipeline with structured PASS/FAIL reporting. Verification Loop is an agent skill from Resgrid/Core.NET verification pipeline with structured PASS/FAIL reporting.

When should I use Verification Loop?

Verification Loop fits situations like: tasks that involve Quality gates.

How do I install Verification Loop in Claude Code?

Run `npx skills add Resgrid/Core --skill verification-loop -a claude-code`. Or copy the skill folder (.forge/skills/verification-loop in Resgrid/Core) into .claude/skills/verification-loop in your project. Claude Code loads it when a task matches its description.

How do I install Verification Loop in Codex?

Run `npx skills add Resgrid/Core --skill verification-loop -a codex`. Or copy the skill folder (.forge/skills/verification-loop in Resgrid/Core) into .agents/skills/verification-loop in your project. Codex loads it when a task matches its description.

Can I use Verification Loop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Resgrid/Core --skill verification-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verification-loop, .gemini/skills/verification-loop, .github/skills/verification-loop and .opencode/skills/verification-loop in your project.

What does Verification Loop need to run?

Going by SKILL.md and its folder, Verification Loop needs the command-line tools its instructions call (dotnet and git).

Does Verification Loop access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Verification Loop safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Verification Loop use?

Verification Loop is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Verification Loop use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Verification Loop?

Skills that share tags, products or a category with Verification Loop: Verify Tests Catch the Bug (dotnet/maui, 23k stars), Code Completion (facioquo/stock-indicators-dotnet, 1.2k stars), Verify (codewithmukesh/dotnet-claude-kit, 751 stars) and Mcaf Dotnet Resharper Clt (managedcode/Storage, 138 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Verification Loop?

Resgrid (a GitHub organization) maintains it in Resgrid/Core, which has 229 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 7, 2026.

Source: Resgrid/Core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.