Evidence

PitWay checks work against declared verification, not vibes.

Three check types

Every acceptance criterion in a contract maps to one verification check of one of three types, defined in the contract's frontmatter:

  • command -- an actual shell command PitWay runs and records the result of.
  • manual -- a human-performed check, recorded by the developer.
  • review -- a review finding, recorded through milestone review.

Approval before execution

Command-type checks are hash-approved at milestone-confirm time via verification_approved_hash. PitWay never executes an unapproved, agent-authored command -- if the approved commands change, verify refuses on a hash mismatch until the contract is re-confirmed.

Recording evidence

pitway task-verify T001    # runs T001's own approved command
pitway verify M001         # runs every approved command-type check

Verification results live in their own verification-results.yaml, kept separate from the contract itself -- one authoritative source per fact, with no derived Git data (like commit SHAs) persisted; those are resolved from commit trailers instead.

Token usage: the same honesty

Usage is recorded only from what the runtime actually reports, never estimated -- usage: null renders as N/A rather than a guessed number. Usage accumulates across retries, and planning/QA usage is tracked separately from task usage, so nothing is double-counted. Milestone progress follows the same rule: no per-task percentages, only completed required tasks / total required tasks.