An agent discipline framework

Define the work.
Enforce your standards.
Detect drift.

Artifacts define what the work must deliver. Packs encode the standards it must follow. Recipes generate known-good starting points. The gate verifies the result.

›_ gate
backstop gate
$ backstop gate
Pack integrity8 packs lockedpass
Artifactsschemas and lineage validpass
Engineering standards0 new findingspass
Testspromised tests exist and passpass
Coveragethreshold metpass
Contractsdeclared signatures presentpass
Requirementsimplementation coverage completepass
Baseline0 net-new violationspass
PASS0 unresolved findingsexit 0
01

Define the work

Find problems before implementation.

Proactive work moves from bundle to spec to plan. Reactive work moves from issue to plan. Both paths converge on a validated plan before source code changes.

Backstop checks that the chain is complete and that implementation evidence traces to the requirements it claims to satisfy.

01Bundle
02Spec
03Plan
04Implementation
Smaller scopeIssuePlan
Requirements trace to implementation evidence
02

Enforce your standards

Turn team decisions into rules.

A rule is an engineering decision that can be checked mechanically. Architecture boundaries, test expectations, dependency policy, and approved implementation patterns all qualify.

Encode the decision once in a versioned pack. Agents run it while they work. CI runs the same gate before integration.

Rules carry claims plus positive and negative fixtures. The pack must prove that each rule accepts compliant code and rejects violations before the rule is trusted.

If it has to be right, it must be deterministic.

backstop-core / installed policy8 packs locked
backstop-core-architecture/package-boundaries

Backstop Core packages import only declared architectural dependencies.

backstop-self/no-baked-tool-exec

Tool names come from pack data, not string literals baked into the binary.

go-substantiveness/hollow-test-go

A Go test with no assertion-shaped call is hollow.

Author timeImmediate correction
CIBinding verification
03

Detect drift

Make “done” verifiable.

Standards drift is measured against a baseline. Existing debt remains visible without blocking adoption, but touched code loses its grandfathering and new violations fail the gate.

Requirements drift is checked independently. Delivered requirements need implemented-spec coverage. Completed artifacts must still be backed by their mandated tests. A status is a claim about reality, and the gate can contradict it.

Agents make mistakes. Don’t let them slide.

StandardsBaseline ratchet
FindingBaselineScopeResult
package-boundariespresentuntouchedgrandfathered
go-core-no-init-functionspresenttouchedblocked
no-baked-tool-execabsentnewblocked
RequirementsTraceability and status
Delivered requirementcovered by an implemented spec
verified
×
Updated requirementspec pins an older major/minor
blocked
×
Completed artifactmandated test is absent
blocked
Drift detectedgate failed · exit 1

Composable by design

Use the framework.
Or use the parts.

The pieces reinforce one another, but they can be adopted separately. Use the control surface that matches the problem you need to solve.

01

Full framework

Artifacts + packs + recipes + gates

Define the work, scaffold the implementation, enforce the standards, and verify that the result still matches the promise.

02

Artifact workflow

Use the whole chain or the artifact types you need

Make requirements, plans, decisions, and completion claims schema-valid and traceable without adopting code-policy packs.

03

Standards enforcement

Packs + gate

Install versioned rules, run them during development, and make the same result binding in CI.

04

Deterministic scaffolding

Recipe packs

Apply a pinned recipe to create a project, pipeline, component, or configuration without adopting enforcement rules.

If it’s green, it ships.

Make green mean something.

Read the docs