Know what you
are about to merge
A convincing answer is not enough to accept a code change. Taso checks the diff against the declared task, recorded attempts and your policy—so the evidence, not the agent’s confidence, determines what is covered.
- Declare the purpose and steps of the work before an agent starts.
- Keep the task’s identity across agents, handoffs and retries.
- Check recorded attempts, finalization, capture quality and coverage of changed paths.
- Start in warn mode to see gaps. Adopt enforcement when your policy and recording are ready.
- Run the same verification against a local Git range or a GitHub pull request.
Work
What is the task, and what counts as accepted?
Control
What stays live, and what must stop?
Continuity
What survives when a worker changes?
Observation
What actually ran?
Team memory
How will the team retain signed history?
Your agents. Your acceptance rules.
Taso is a Rust CLI with signed declarations stored in Git refs, evidence carried through Git, and a policy-aware merge gate. It checks signatures and the exact result tree through Perusta’s canonical implementation. Repository policy can tighten the organization’s floor, not weaken it.
Use Claude Code, Codex or another harness without changing its prompts or tools. Taso wraps the work and judges its result; a separate recorder supplies the evidence.
Current scope: declaration, local execution and verification are implemented. Warn mode is the default. The recorder integration is tested with a stand-in; native Selko-to-Taso acceptance remains pending. Vartio’s shared history and baselines are planned, not prerequisites for the local gate.
- Built with
- Rust, Git refs, signed declarations and CI-compatible verdicts.
- Checks
- Policy, signatures, recorded attempts and changed-path coverage.
- On failure
- Reports named gaps; enforcement follows the configured policy.
- Boundary
- Judges evidence. Does not record activity or enforce runtime isolation.
# Initialize the repository.
taso init
# Declare work and use your existing agent.
taso run --new "update billing tests" --harness claude -- claude
# Without a recorder, this attempt is unrecorded.
taso status
taso op close
# Check the exact Git diff.
taso verify --base HEAD~1 --head HEAD
# Or resolve a GitHub pull request through gh.
taso verify --pr 418
# Warn mode is the default, not automatic blocking.