Spec-driven development
The spec is the contract
Work starts as a versioned spec whose acceptance criteria are executable checks. Agents implement against the spec file, and CI rejects any PR that does not reference a spec ID.
AI Coding & Build
We run agentic coding the way regulated teams run change control: a written spec, a human gate, an eval gate, and a provenance trailer on every generated line — so speed never costs you the audit trail.
Approach
Each control is a mechanism in the repository or CI, not a policy document. Remove one and the pipeline fails closed.
Spec-driven development
Work starts as a versioned spec whose acceptance criteria are executable checks. Agents implement against the spec file, and CI rejects any PR that does not reference a spec ID.
Agentic coding, human gates
Agents run on scoped branches with least-privilege tokens and no production credentials. Branch protection lets them open PRs but never merge; CODEOWNERS routes every AI-authored change to a named reviewer.
Cursor Rules governance
Rule files live in the repository, are reviewed like code, and pin architecture boundaries, banned APIs and secret handling. A CI check diffs them against the platform baseline so local edits cannot quietly weaken them.
Eval-gated merges
CI runs the golden-set eval suite on every PR and refuses merges whose score regresses beyond the tolerance band declared for that service; the score, the band and the failing cases are posted to the PR.
Provenance on every line
Every AI-authored hunk carries a commit trailer with model, prompt hash and reviewer. A post-merge job writes those trailers to the decision ledger, so any production line can be traced to the prompt that produced it.
Sandboxed agent runtime
Agents execute in ephemeral containers with egress allow-lists and read-only mounts outside the working tree; model calls leave through private endpoints and are logged, so a misbehaving agent is contained, not trusted.
Pipeline
Seven stages, two gates, two loops. Amber marks the gates: nothing passes them on an agent's say-so.
01 · Human
A versioned spec with acceptance criteria written as executable checks. Its ID is required in the branch name and the PR, or CI rejects the PR.
02 · Agent
The agent proposes a task graph, the files it will touch and the risks it sees; an engineer approves the plan before any code is generated.
03 · Agent
Agents work on a scoped branch with least-privilege tokens, no production credentials, and the repository's Cursor Rules loaded into every session.
04 · Reviewer
CODEOWNERS routes the PR to a named reviewer who approves the diff, not the summary. Branch protection lets agents open PRs but never merge them.
05 · CI
CI runs unit tests, the spec's acceptance checks and the golden-set eval suite. A score that regresses beyond the service's tolerance band fails the build.
06 · CI
Squash-merge produces a signed commit whose trailers record model, prompt hash, spec ID and reviewer for every AI-authored hunk.
07 · System
A post-merge job writes the trailers to the hash-chained decision ledger, so any line in production traces back to its prompt, reviewer and eval score.
Loops
Changes requested at the human gate, or an eval score below tolerance, send the work back to implementation with the reviewer's notes or the failing cases attached as context.
Tools constellation
Models, agents, media generators and builders all reach work through the Earp Orchestration Layer, which applies identity, guardrails and ledger logging the same way whichever vendor sits behind it.
Foundation Models · Coding · Agents · Data
Our primary model for agentic coding, spec drafting, long-context document review and structured extraction, called through private endpoints with every prompt hashed to the ledger.
Full entry in the tools indexCore
Earp Orchestration Layer
We install the spec template, Cursor Rules baseline, eval gate and provenance trailers in your repositories, then run the first features through them with your engineers.