Spokes.wiki Search About
Blog Posting source ↗ source url updated Thu Jul 23 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

Building verification loops in Claude Code with skills (Anthropic)

Delba de Oliveira, Anthropic, 22 Jul 2026. First-party (T1) how-to for the exact thing this spoke had only theorized: turning the repetitive manual checks you run after Claude writes code into skills Claude runs on itself. A verification loop is defined plainly as “an iterative process where Claude checks and attempts to fix the work.”

The move

The observation is small and correct: you keep re-correcting the same class of issue after each implementation. Rather than catch it by hand every time, encode the check as a skill — a SKILL.md under .claude/skills/, frontmatter (name, description, allowed-tools) plus plain-English instructions — and Claude performs the check, and the fix, without you in the loop.

# .claude/skills/verify-log-hygiene/SKILL.md
---
name: verify-log-hygiene
description: Check that error logs include request ID…
allowed-tools: [Read, Edit, Grep]
---
[verification instructions]

The worked examples are ordinary production hygiene, which is the point: reject a DB migration that drops a column without a backfill; verify a frontend change end-to-end; check that error logs never include request bodies. The value is that the check runs the same way every time instead of depending on whether the reviewer remembered it.

Four activation patterns: standalone (invoke manually for a cross-cutting check), embedded (fires automatically as part of a related workflow), chained (one skill calls the next), and on every PR (as a gate via GitHub Actions).

Where it sits in the spoke

This is the concrete, Claude-Code-native floor under two abstractions already here.

loop-engineering‘s verification corollary says a loop is only as good as its feedback signal, and the value migrates to cheap faithful checks the loop can run each iteration — this post is how you author one of those checks as a portable skill rather than bespoke per-repo code. It joins the output-grounded-verification family (ai-job-search reading its own PDF, watch-skill watching its own screen recording) with the most mundane and reusable member: grep the diff against a written rule.

And it is the inside-the-loop complement to agent-evals. Both gate on a check; the difference is altitude. Harness (harness-agent-dlc) scores the agent’s output at the delivery boundary — an eval dataset, a pass/fail gate in CD. This runs the check during the coding session, self-correcting before a PR exists, and its “on every PR” pattern is exactly where the two meet: the same verification, promoted from inner-loop skill to pipeline gate. The spoke now has both ends of “grade the work, don’t trust the run.”

Structurally it is one more instance of the spoke’s core thesis — capability encoded as markdown a skill runtime executes (agentskills-spec, anthropic-skills) — pointed at verification specifically, and first-party confirmation that Anthropic sees the skill format as the delivery vehicle for it.

Read with care

It is a vendor how-to for the vendor’s own product: no measurement that skill-encoded checks catch more than ad-hoc review, and the failure mode is unstated — a plain-English check the model applies inconsistently is exactly the nondeterminism harness-agent-dlc warns evals exist to catch, so a verification skill arguably wants its own eval. The pattern is sound and the examples are real; the effectiveness is asserted.

loop-engineering · agent-evals · agent-loops-verification · watch-skill · agentskills-spec · anthropic-skills · agent-guardrails · harness-agent-dlc