A typechecker for your issue tracker. A checked acceptance criterion must cite a commit SHA that exists in git, evidence that resolves — or ztrack check fails. Schema defined in Zod.
npx ztrack init"All tests pass, feature complete" — and the commit it cited never existed. Your tracker recorded the claim with perfect fidelity and verified nothing. ztrack treats task management like source code: it has a fmt, a lint, and a check. check is a real typechecker.
Lint errors are fixed by editing text.
Type errors are fixed by producing evidence.
The task schema is defined in Zod. Rules are organized into categories, each with a depth dial — like turning up strictness in a typechecker.
A checked acceptance criterion must cite a commit SHA that exists in git and is an ancestor of HEAD, evidence files that resolve, screenshots/videos that exist. ~160 deterministic rules.
Point it at Linear, Jira, or GitHub Issues. It's a verification layer, not a migration — only validated state syncs back up.
Categories: well-formed, sourced, code, visual, behavioral. init is green with just git + a PR host. Claims above your level are counted, never silently dropped.
MCP tool surface, a CI gate, and a stop-hook that blocks an agent's turn until check is green. Agents fix-and-retry a typechecker until it passes.
Every other tool sits on one side of the line: it records what the agent claims, or it scores outputs and forgets. ztrack is the system of record where "done" is a verified state transition.
| Records claim | Validates structure | Verifies evidence of "done" | |
|---|---|---|---|
| Linear / Jira | ✓ | shape only | — |
| Beads / Backlog.md | ✓ | partial | — |
| spec-kit / OpenSpec | ✓ | prose shape | — |
| Eval / observability | ephemeral | — | scores outputs |
| ztrack | ✓ | ✓ | ✓ |
ztrack runs our own autonomous agent fleet in production — it's what we use to ship real code. Every release re-proves in CI that a fabricated commit SHA fails the check. Apache-2.0.