Authorize
A human types APPROVE on a real TTY, binding contract, source, and resolved executable hashes with an expiry.
Local run assurance · release candidate
One approved run. One receipt. No silent second launch.
Flight ops for consequential local agent campaigns — human TTY approval, exclusive workspace lease, mandatory postflight, and a tamper-evident certificate. Not a sandbox. Not a scheduler.
The wedge
Agents draft scripts and launch jobs. They are terrible at proving which code and binary actually ran — or at refusing a duplicate worker after a crash.
A human types APPROVE on a real TTY, binding contract, source, and resolved executable hashes with an expiry.
One workspace-wide execution lease. Exactly one mutating lifecycle step at a time — no parallel workers, no silent second launch.
Postflight asserts outcomes and issues a certificate. Successors refuse an unpostflighted or failed predecessor.
Core lifecycle
Campaign steps that refuse to skip the paperwork.
Interactive TTY approval binds contract + provenance. Agents must not type APPROVE.
Recheck approval freshness, provenance, outputs, predecessor, and the workspace lease before launch.
Execute the declared argument vector once (shell=False), within wall-clock and capture bounds.
Assert exit code, required outputs, and declared checks. Issue the certificate required before a successor.
Rehash live contract, source, runtime, outputs, and the SHA-256 hash-chained event log against the receipt.
Feature set
Narrow promise. Explicit non-goals. The CLI is the enforcement boundary.
Interactive approval with expiry. Refuses pipes/CI without a real terminal. Marketplace plugins cannot approve for you.
Contract, source roots, and resolved executable hashes are bound into the approval document and rechecked at launch.
POSIX fcntl lease serializes approve / preflight / run / postflight across the whole workspace.
Atomic JSON state writes. A run ID cannot be reused after execution starts.
Successors require a valid postflighted predecessor. Failed or missing certificates block advancement.
Append-only SHA-256 hash-chained event log plus a verifiable local certificate after successful postflight.
Exit code, output existence/SHA, JSON field equality, and source-unchanged assertions — hashed into the receipt.
Read-only 127.0.0.1 guide for phase and evidence. It cannot approve or execute. No remote service.
Cursor and Codex integrations help draft and drive the lifecycle. They stay constrained adapters to the local CLI.
Use cases
Best fit: small teams already letting agents operate long-running local jobs.
Prove the approved source and interpreter ran, required outputs appeared with declared fields, and the next campaign step waited for a certified predecessor.
Gate eval jobs so provenance drift, duplicate workers, and “looks done” handoffs cannot silently advance a campaign.
One exclusive run under recorded config and source hashes — then a certificate before the successor strategy step.
Keep human approval in the terminal while agents prepare contracts; reconstruct what was authorized after an incident.
Let the agent draft, validate, run, postflight, and verify. You keep the only gate that matters: type APPROVE.
Locally reconstructable receipts for consequential steps. Useful evidence today — not a compliance product yet.
Honest boundary
A green postflight means declared assertions passed under recorded provenance — not that the scientific or engineering claim is true. Pair with containers when you need isolation.
Get started
Success metric: first verified local receipt — not marketplace impressions.
# Install (dev bootstrap recommended)
git clone https://github.com/darashkevich/runspecimen
cd runspecimen
sh scripts/bootstrap_dev.sh
# Host + contract checks
runspecimen doctor --workspace .
runspecimen validate --workspace . --contract examples/demo_contract.json
# Lifecycle (human TTY required for approve; dashboard cannot approve or run)
runspecimen approve --workspace . --contract examples/demo_contract.json
runspecimen preflight --workspace . --contract examples/demo_contract.json
runspecimen run --workspace . --contract examples/demo_contract.json
runspecimen postflight --workspace . --contract examples/demo_contract.json
runspecimen verify --workspace . --contract examples/demo_contract.json \
--campaign-id demo-campaign --run-id run-001
Optional visibility only: runspecimen dashboard --workspace . --contract examples/demo_contract.json --open
binds to loopback, is read-only, and cannot approve or execute a run.