Saphan StudioDocs
Getting started

Design principles

Product invariants: a change that threatens one is escalated, never worked around.

Product invariants. A change that threatens one is escalated, never worked around.

PrincipleIn practice
Transport, not judgmentThe engine automates routing, artifact generation, and mechanics. It never automates a gate decision. No feature may auto-accept, auto-merge, or skip a gate.
A human decides, and the record shows itPlan approval, acceptance, merge, teardown are explicit human acts, recorded with the actor's name. A consultant — AI or human — may suggest; the suggestion and the decision are distinct recorded events, and an override is itself recorded.
Sanction binds change classes, never timeDelegated acceptance exists only under a named, pinned, human-owned policy scoped to explicit change classes. A timeout never grants an approval.
Git is the system of record for codeThe engine observes commits, branches and merges; it never pushes, merges on its own authority, or mutates remote git state. A stream is merged only when a real merge commit is observed — never because someone typed it.
Deterministic firstNo model call where ordinary code suffices. Every piece of engine work states its tier — deterministic, local model, frontier model — and "frontier by default" is treated as a design error. This is a cost principle and a safety one.
Capture, not inventLessons from incidents are structured into proposed rules; a human approves every promotion into standing practice, and provenance is preserved on each rule.
Secrets never propagateNo subsystem stores or transmits a secret value — names, paths and references only.
Proof, not declarationA claim in a run's return is backed by an artifact you can check — a diff, a test that fails when the guarded mechanism is broken, a named refusal. A green test that cannot detect the failure it guards is treated as zero protection.