01
A typed phase loop, not vibes
The agent moves through six typed phases — plan, specify, execute, diagnose, validate, report — each handled by a role-bounded agent. Every phase carries a Zod-typed evidence gate that acts like an eval-style verifier, so it can't advance without producing the artifact the next phase needs. A long-horizon run stays auditable from start to finish.
02
A typed protocol between intent and execution
User intent lives in a mutable spec. The moment it's committed, it freezes into an immutable, content-hashed input package that every downstream tool consumes. Upstream of the freeze, anything can change; downstream, every change is a new auditable version — and the same bytes always replay to the same result.
03
Sandboxed tool execution, never on the host
Every tool runs inside a Docker image with a strict workspace mount and a command-policy admission gate. Same images locally via Docker Compose, same images in production on AWS Batch / ECS — one debugging surface in both places.
04
Fail-closed guard rails
Destructive or open-world tool calls pass through an admission reviewer that defaults to deny when the context is thin. When a run breaks, a dedicated diagnose phase inspects the failure and proposes a recovery — and every recovery is journaled, so a retry can't quietly re-introduce the same bug.
05
Memory that means something
A durable, tiered memory layer (user, project, org) stores domain gotchas, validated precedents, and project patterns. The agent stops relearning the same lesson on every project, which compounds across long-horizon work.
06
Grounded research, not just chat
A research step reads technical literature, vendor docs, and the agent's own memory, then synthesizes a grounded answer that streams back with provenance pointing at the real sources it used.