Verify · Taso

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.

What it does
  1. Declare the purpose and steps of the work before an agent starts.
  2. Keep the task’s identity across agents, handoffs and retries.
  3. Check recorded attempts, finalization, capture quality and coverage of changed paths.
  4. Start in warn mode to see gaps. Adopt enforcement when your policy and recording are ready.
  5. Run the same verification against a local Git range or a GitHub pull request.

Work

Taso

What is the task, and what counts as accepted?

Control

Ote

What stays live, and what must stop?

Continuity

Solu

What survives when a worker changes?

Observation

Selko

What actually ran?

Team memory

Vartio

How will the team retain signed history?

Component roles: Taso declares and judges work; Ote supervises live resources; Solu preserves the work; Selko records activity; Vartio’s team memory is planned. This is a responsibility map, not a completed integration.
How it works

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.