Verification-first · v1.7.0

Stop trusting AI.
Start verifying it.

Zurdo is a CLI that drives AI coding agents through your PRD and independently verifies every acceptance criterion. The agent's own claims are never consulted — tests, checks, and builds decide when work is actually done.

zsh — zurdorunning
Bring your own CLI
ClaudeAnthropic
CodexOpenAI
CopilotGitHub
The trusted workflow

From intent to proof — on machine time

Your agent writes the code. Zurdo owns the verdict. Every task flows through an independent verification loop before it can be marked done.

Developer
writes a PRD
PRD
tasks + acceptance criteria
Agent
Claude · Codex · Copilot
Zurdo
independent verification loop
Hints
shell · http · grep · structural
Verified
proven, not claimed
Why Zurdo

AI agents shouldn't grade their own homework

Today's coding agents are great at producing code — and terrible at proving it works. They report success, then you find the regressions in review.

Today's AI coding tools
  • Generate code
  • Verify correctness
  • Enforce engineering standards
  • Prevent regressions
  • Validate production readiness

Generation is solved. Verification isn't. A green “done” from the model tells you nothing about whether the tests pass or the build compiles.

The Zurdo loop
  1. 1
    Pre-flight
    Check acceptance criteria against the tree before any agent runs.
  2. 2
    Invoke
    Shell out to your agent CLI to modify the working tree.
  3. 3
    Verify independently
    Zurdo runs every hint itself. Agent claims are never consulted.
  4. 4
    Retry or stall
    Feed back failures, or halt when the agent stops converging.
“The agent's own claims about what it did are never consulted.”
— Zurdo docs, How it works
Capabilities

An execution platform, not a chatbot

Everything Zurdo does exists to make one thing true: a task is only complete when the evidence says so.

Independent Verification

The agent's own claims are never consulted. Zurdo runs the hints itself and decides pass or fail from the evidence.

Bring Your Own CLI

Provider-agnostic by design. Shells out to Claude, Codex, or Copilot on your PATH — no SDKs, no credentials to hand over.

10 Objective Hint Types

Acceptance criteria as machine-checkable hints: shell, http, grep, file-exists, and more. Exit code 0 or it didn't happen.

Structural Verification

The Lumen code index proves symbols, references, and callers exist across Rust, Python, Go, and TypeScript — not just text matches.

Stall Detection & Lessons

Fingerprints failing iterations. When an agent repeats itself, the reasoner intervenes or halts the task before burning spend.

Crash-Safe State & Resume

Every prompt, diff, and verdict persists in .zurdo/<slug>/. Kill it mid-run, resume exactly where it stopped.

Governance & Frozen Paths

Declare paths agents must not touch — any change to a frozen path fails the iteration. No auto-commits; version control stays yours.

Scriptable & CI-Ready

Deterministic exit codes and JSON reports. Drops into any pipeline or script — no daemon, no lock-in.

Objective verification

Acceptance criteria, as code

Write criteria as machine-checkable hints. Zurdo runs them itself — shell, HTTP, grep, and structural checks against the Lumen index. Exit code 0, or the task doesn't pass.

prds/oauth-login.md10 hint types
[shell: cargo test]passes if exit code is 0
[http: GET /health -> 200]probes a live endpoint
[grep: pattern in file]asserts code is present
[file-exists: dist/app.js]build output exists
[no-grep: TODO in src]asserts code is absent
[manual]out-of-band human review
[symbol: fn login in auth.rs]definition exists (Lumen)
[references: … within …]symbol is referenced (Lumen)
core structural · Lumen
zurdo verify · task 1/30/6
cargo test — 214 passing
cargo clippy — no warnings
tsc --noEmit — types ok
GET /auth/callback → 302
trivy fs — 0 criticals
cargo build --release
verifying…
The difference

Traditional agents vs. Zurdo

Every agent can write code. The gap is everything that happens after the code is written.

CapabilityTraditional
agents
Zurdo
Writes code
Runs acceptance criteria itself
Verdict from evidence, not self-report
Structural code verification
Provider-agnostic (bring your own CLI)
Frozen-path enforcement
Crash-safe resume
Stall detection & halt on no-progress
Architecture

A run, end to end

Zurdo parses your PRD into a dependency-ordered task list and runs each task through the same loop — persisting every prompt, diff, and verdict so any run can be resumed or audited.

Developerwrites a PRDZurdo CLIparse · validate · orchestrateDependency-ordered tasksrun sequentiallyPER-TASK VERIFICATION LOOPPre-flightcheck treeInvoke agentclaude · codexIndependentverificationretry · or halt on stall.zurdo/<slug>/prompts · diffs · verdictsTask verifiedproven, not claimed
Deterministic
No API calls from Zurdo — it uses your CLI's own auth.
Crash-safe
State in .zurdo/<slug>/ · lock file · resume on restart.
Auditable
Baseline diff, per-criterion provenance, run report.
Trust model

Yours to run, nothing to surrender

Zurdo is closed-source, distributed as signed binaries — and free to download and use. It's built to sit inside real engineering environments without asking for your keys.

macOS (Apple Silicon) · Linux x86_64 & aarch64

Free to download and use

Install via Homebrew or a release tarball. No account, no signup, no seat.

Runs on your machine

Local-first execution. Your code and your working tree never leave your box.

No credentials to hand over

Zurdo makes no API calls of its own — it reuses the auth your agent CLI already has.

No git automation

Zurdo never commits or branches for you. Version control stays entirely under your control.

Documentation

Read the documentation

The docs are the source of truth — grammar, hints, configuration, and the operating rhythm. Everything you need to author a PRD and run it.

Verification-first engineering

Build software you can actually trust.

Let AI write the code. Let Zurdo prove it works. Every task, every criterion, every run.