Operations

Make Your Agent Prove Its Own Work: Verification Skills (pstack)

Published

We built a verify skill for our own site, following pstack's five-job pattern: 9 checks, 116 pages crawled, 206 URLs, 0 broken, 11.7 s. Here's the setup and what broke on the first run.

Our verify skill checks a full AgentSpoon build in 11.7 seconds: 9 checks, 116 pages crawled, 206 URLs, 0 broken links, screenshot proof, then cleanup. Here's how we built it, plus the failure our first run caught. For anyone running a site, app or repo with an agent. Cost: an afternoon to set up, then one short run each time you check.

Credit: the idea and the skills are by Lauren Tan (@poteto), part of pstack. This page is our hands-on test on a copy of our real site.

Terminal output of our verify-agentspoon run: 9 of 9 checks passed in 11.71 seconds, 116 pages and 206 URLs crawled, 0 broken, evidence saved
Run 4 of our verify skill: 9/9 checks passed. Our screenshot, captured on our machine on 2026-10-18.

What you get

  • One command that builds the site, health-checks the local server, crawls every internal link, checks the content and saves screenshots as proof.
  • About 12 seconds per run on our test machine (9.4 s of that is the build itself).
  • A human still decides what to fix. The skill only reports problems, and it never deploys.

Tested on: 2026-10-18, our AgentSpoon box, against a copy of site/ and drafts/. Partial. We wrote the skill and ran it 4 times (the final run passed 9/9). We did not install pstack or run /create-verification-skill or /maintain-verification-skill in Grok Bot, and we didn't set up the daily routine.

The problem: "it compiles" isn't proof

An agent that says "done" after the build goes green hasn't shown you anything. The pstack guide opens its verification chapter with exactly that line, "'It compiles' is not evidence" (Verify the result and open a PR). The fix it proposes is to drive the real thing and capture what happened.

Lauren Tan's pstack guide, part 1: 7,314 likes and 17,185 bookmarks as of 2026-10-18. Original on X.

What a verification skill is

It's a skill that lives inside one project and tells the next agent exactly how to prove that project works. pstack's generator, create-verification-skill, says the skill must cover five jobs. In our words:

  1. Launch: start the app from clean, and define "ready" as actually usable, not just "the process answers".
  2. Doctor: one read-only check of whether this instance is worth testing.
  3. Drive: use the app the way a user would, with stable handles rather than screen coordinates.
  4. Evidence: capture the action and the resulting state, and save it somewhere that survives cleanup.
  5. Cleanup: stop only what this run started, and keep the evidence.

Next to the skill sits a features/ map: one file per user-facing feature, saying how a user reaches it, how the agent drives it, and what end state proves it works.

Step 1: Get the skills where your agent can load them

pstack is a set of skill folders, each with a SKILL.md file. How you install them depends on where your agent runs:

  • Cursor: run /add-plugin pstack, then /setup-pstack (Flavio Copes's walkthrough).
  • Claude Code, Codex, Pi, OpenCode and others: use the standalone mirror, npx skills add backnotprop/pstack (mirror README). The README doesn't list Grok Bot as a target.
  • Grok Bot: Lauren's Dr Eggbot page on the Grok Bot Marketplace says pstack is "available as a packed plugin". On first run after you import the bot, it runs /setup-pstack. Unverified: we haven't imported it, so we can't yet say where pstack appears in Grok Bot's settings. Owner screenshots are coming.
Import Dr Eggbot from the Grok Bot Marketplace. Then tell me which pstack skills you can see, and whether create-verification-skill and maintain-verification-skill are among them. Don't change any of my other bots.

✅ You should see: the Bot lists create-verification-skill and maintain-verification-skill among its skills. (Unverified. Owner screenshots are coming.)

Step 2: Generate (or hand-write) the verify skill

With pstack loaded, run the generator inside your project. It reads the repo, writes verify-<app>/SKILL.md plus features/, and only asks you about what it can't see in the code.

/create-verification-skill for this repo. The surface is the built static site served locally. Prove the reader's path: home page, a recipe page, language switch. Keep evidence in evidence/<timestamp>/.

We didn't have pstack loaded, so we wrote verify-agentspoon by hand following the same rules. It's a one-page SKILL.md, a three-feature map, and one script.

File list and SKILL.md of our verify-agentspoon test skill, showing the Launch, Doctor, Drive, Evidence and Cleanup sections
Our hand-written test skill and its feature map. Our screenshot, 2026-10-18.

✅ You should see: a verify-<app>/ folder whose SKILL.md has Launch, Doctor, Drive, Evidence and Cleanup sections, and a features/README.md that lists 3–5 features.

Step 3: Prove it once end to end, and fix what breaks

The generator's own rule: "A generated skill that was never executed is a draft, not a deliverable." So we ran ours.

python3 verify-agentspoon/scripts/verify.py
Terminal output of our first run: 7 checks passed, then a headless Chrome screenshot timed out after 60 seconds and the run aborted without cleanup
Before: run 1. The first 7 checks passed, then headless Chrome timed out after 60 seconds, and the run crashed before cleanup. Our screenshot, 2026-10-18.

⚠️ If it fails: ours did, three times.

  • Run 1: crashed with TimeoutExpired ... timed out after 60 seconds. It left the local server and the temp build folder running, which is exactly the residue pstack says cleanup must remove after every failed run. Fix: cleanup now runs even when a step crashes.
  • Run 2: 8/9. Our page picker grabbed /en/ instead of a recipe page.
  • Run 3: 8/9 in 55.9 s, because Chrome hung on /. That page is an instant (meta-refresh) redirect to /en/, so the fix was to screenshot /en/ directly.
  • Run 4: 9/9 in 11.7 s. That's the hero image at the top.
Our AgentSpoon recipe page as captured by the verify run's headless browser
Evidence from run 4: the recipe page as the headless browser rendered it from the local build. Our screenshot, 2026-10-18.

✅ You should see: a RESULT n/n checks passed line, an evidence folder that still exists after cleanup, and no leftover server or temp folder.

Step 4: Keep it honest with a daily routine

Apps change, and the feature map goes stale. maintain-verification-skill ends each pass with one of three outcomes:

  • clean
  • changed: one PR of proven fixes to the skill
  • blocked: says what stopped it

It edits only the verification skill's own folder, never product code. If the app itself is broken, it reports a product bug.

Every weekday at 7:00, run /maintain-verification-skill on <REPO>. Tell me the outcome (clean, changed or blocked) in one line. If blocked, say exactly why. Never edit product code. If a feature is broken, report it as a product bug.

✅ You should see: the routine listed with its next run time, and a one-line outcome after each run. Every routine run uses part of your plan's usage (see Cut Your Grok Bot Usage). (Owner shot needed: the Routines panel with Test and Run history.)

Bonus: Dr Eggbot as the janitor

Dr Eggbot is Lauren's Grok Bot that designs other bots. Its marketplace page describes:

  • Intake: it asks a few preference questions, then creates the bot. Coding bots get the poteto-mode bar.
  • First run: it runs /create-verification-skill when a real repo is present and no verify skill exists yet.
  • Two standing health checks:
  • transcript-healthcheck: a friction scan on weekdays at 8:44 PT.
  • routine-healthcheck: a token and waste audit on Mondays at 8:49 PT.
  • Approval: both checks stay quiet when there's nothing to propose, and it creates nothing until you choose.

When a user asked how to review which bots need tuning or retiring, Lauren replied that Dr Eggbot "has routines that do this". We haven't run it ourselves.

When not to bother

Flavio Copes's deep dive makes the point well: moving a date or fixing one sentence doesn't need the full machinery, and several agents on frontier models add up fast. Use a verify skill for things you'll check again and again: a site build, a release, a migration.

Sources

Frequently asked questions

Did you run /create-verification-skill itself?

No. pstack isn't installed on our Grok Bot account. We wrote our skill by hand, following the generator's published rules, and ran that.

Can a maintenance pass change my app's code?

No. Per its SKILL.md, /maintain-verification-skill only edits the verification skill's own folder. It reports product bugs instead of fixing them.

Does Dr Eggbot run my verify skill?

Its marketplace page says it runs /create-verification-skill on first run when there's a real repo and no verify-* skill yet. It also keeps two health-check routines. We haven't imported it.

pstackverificationskillsroutines