Skip to content
Back to skills

Verify Work

ASecurity

verify, verify last, verify my work, did that work, check the change, confirm the fix, verify the change, verify before pushing, self-verify, validate the change, did the fix work, check what I just did, generate verify gate, prove it works

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 23, 2026
ai-agentspythonrustshellbashnodegitsecurity

Works with

  • mcp

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add SVerITG/Metis --skill verify-work --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verify Work?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Verify Work
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sveritg-verify-work/badge)](https://www.skillsdirectory.com/skills/sveritg-verify-work)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Verify Work
description: "verify, verify last, verify my work, did that work, check the change, confirm the fix, verify the change, verify before pushing, self-verify, validate the change, did the fix work, check what I just did, generate verify gate, prove it works"
effort: normal
complexity: standard
---

## Purpose

The **in-the-moment generate→verify gate** — the working-loop version of `/metis-self-reflexion`. After a change is made, this runs the **external signals** on the work just done — deterministic checks first, then an independent skeptic — *before* trusting it's done.

This exists because the research is unambiguous: an LLM **cannot reliably judge its own work without an external signal** and often degrades when it tries ([Huang et al. 2310.01798](https://arxiv.org/abs/2310.01798)); the fix is to *run the signal* and have an *independent verifier* ([CRITIC 2305.11738](https://arxiv.org/abs/2305.11738); Reflexion). Metis's own 2026-06-04 audit proved it — an unverified pass reported 25 false failures.

## Metis's three-tier reflexion loop (where this fits)

1. **Always (cheap):** the post-tool hook syntax-checks every code edit; `write_reflexion()` after substantive runs.
2. **High-stakes (this skill):** code changes and factual claims get the full generate→verify gate below.
3. **Periodic (drift):** `/metis-self-reflexion` — the quarterly multi-stream audit.

## When to use

Before saying "done" or pushing, after any code change; when asked "did that actually work?"; or as the gate Metis runs on its own substantive output.

## What to do when invoked

**Step 1 — Identify the work.** `git status --porcelain` and `git --no-pager diff --stat` (staged + unstaged). Classify the changed files: Python (`.py`), shell (`.sh`), hook (`.mjs`), MCP-server code (`system/mcp-server/src/...`), dashboard/templates (`system/app-py/...`), docs/config only.

**Step 2 — Run the deterministic external signals (the floor).** Only the relevant ones; report each result verbatim:
- Changed `.py` → `python -m py_compile <file>` for each; if app/MCP logic, run nearby unit tests: `"$HOME/.local/share/metis-mcp/.venv/bin/python" -m pytest tests/unit -q`.
- Changed `.sh` → `bash -n <file>`.
- Changed `.mjs` → `node --check <file>`.
- **MCP-server code** → `bash tools/reinstall-mcp.sh` then `bash tools/test-mcp.sh` (expect `HEALTHY`); remind the user to `/mcp` reconnect.
- **Dashboard code / templates** → `export METIS_RC_ROOT="$(pwd)"; bash tests/functional/run_metis_promises.sh` (it self-starts the dashboard); expect **0 🔴 FAIL**.
- Docs/config only → skip the heavy checks; note that.
A failing signal means **NOT verified** — fix it and re-run. Do not proceed to Step 3 with a red signal.

**Step 3 — Independent skeptic pass (the verifier — do not self-grade).** Spawn ONE fresh sub-agent, ideally a **different model** (`Agent(subagent_type="Explore", model="sonnet", ...)`), with the diff and this brief:
> "Adversarially review this change. Try to find a real bug, an unhandled edge case, a regression, or a way it silently fails. Default to skeptical. Check the actual code, don't assume. Return concrete issues with file:line, OR 'no issues found' and exactly what you checked."

Relay only its *confirmed*, concrete issues. The agent that wrote the code never grades itself (self-preference bias).

**Step 4 — Verdict.**
- ✅ **VERIFIED** — every deterministic signal passed AND the skeptic found nothing real. State exactly what was run (the proof).
- ⚠️ **ISSUES** — list each with file:line and a one-line **acceptance test** ("how we'll know it's fixed"). Do **not** say "done".

**Step 5 — Record (when part of an agent run).** `write_reflexion()` with the verification outcome. Promote a lesson to memory only if a real issue was found and fixed (verified) — never promote unconfirmed self-critique.

## The one rule

**Never trust the first answer on anything that has an external signal available — run the signal.** That single principle is the whole of the self-correction literature, applied to the work you just did.

## Collaboration

Software Engineer (the fix), Critic (adversarial review), Cybersecurity / Data Guardian (security-sensitive diffs). Escalate to `/metis-self-reflexion` if the change is system-wide.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.