Speclinecanon 3.1.0HandbookFor agents ↗
Reference · Boundaries

The boundaries

Scrum rations human time; Shape Up rations risk. Specline rations judgment. Three rules govern writing a spec, and one governs keeping the record — everything else is implementation. (A named decider budget, a coupling ceiling, and staleness timers exist too, but they govern unattended and parallel builds — an experimental, opt-in part of the canon; see below.)

Writing rules

One sitting judgment-only

A spec must be small enough that the PO can read and judge the contract in a single review sitting. Human attention is the appetite unit — appetite governs the spec's reviewability, not the build's size. A large atomic build with a tight spec is eligible. If you can't review it in one pass, split it or decompose it (parent-map); slugs are cheap.

Falsifiable or draft specline · advisory

Every acceptance check must be settleable the same way twice; "Improve the dashboard" names nothing anyone can settle. An item only a person can settle is marked under a ### human sub-heading. Specline surfaces an unfalsifiable or absent acceptance as advisory — it's the decider's call, not a block.

Intent over description advisory · spec-critic

Documentation records what code cannot say: goals, non-goals, rejected options, evidence, rules, boundaries. Once code exists it is the source of truth for mechanics, and prescribed mechanics then compete with it and go stale — the same reason the decider's go belongs to git, not a field: don't model what another source of truth owns. This is a tradeoff, not a law, and it isn't measured. A pre-build spec with no code yet may legitimately carry worked mechanics. So Specline flags it as advice; the decider decides.

The record rule

Never delete a decision specline · integrity

An approved slug is permanent and archive is immutable: when something ships, a knowledge doc lands and the spec is archived; when it is killed, it is archived with a one-line tombstone. Nothing is bare-deleted. This is the one rule the integrity checks exist to protect, and the reason every approved slug resolves forever.

▸

Two enforcers, one rule set. Specline is deterministic — it checks structure (Falsifiable or draft, the record rule). Meaning — one-sitting sizing, mechanics-creep — is judgment, and lives at the two human gates (approve, accept). Specline adds assurance, not validity.

Experimental — unattended & parallel builds

Experimental — in force only when specline.yml setsunattended: true. Off by default; nothing here is checked or listed until you turn it on.

The Coupling Ceiling specline · warn

A spec plus everything its relations force an agent to load must fit under the repo's pinned ceiling with room left to think — measured once, at shaping time, as a structural property, not a runtime budget. With million-token windows the binding constraint isn't fitting but signal quality: irrelevant forced loads degrade a frontier model's output. Read a breach as "too entangled" — slice it or decouple it.

Staleness specline · advisory

building and blocked each carry a stale_after date — the point past which an untouched build is presumed abandoned, not the point it is discarded. Going stale flags the spec: Specline warns so a human notices an abandoned build — it never blocks. Exit is an explicit reshape (a fresh approving merge) or kill.

The Decider Budget specline · advisory

A named decider may have at most 3 specs in building and 6 in active states (building | blocked) at once, per-repo override allowed. Agent capacity is not the constraint; the decider's queue is. WIP limits on humans, not on machines — Specline warns over the ceiling, never blocks.