The brief is a sealed contract
Before any work starts, the brief pins every input by hash and declares done, cannot-be-done, budget, scope and commands. It is identified by the digest of itself.
Everything on this page holds for any agent, person or AI. For an AI agent, the workspace is a sandbox, the timebox is a token budget and a handoff is a new session; for a person, they are a scoped task, a deadline and a new hire.
Everything the run may use, and everything it must achieve, is fixed before the run begins. Each part is marked read-only or writable. The brief never carries its own digest, so it is final the moment it exists.
inputsread- spec @ sha256:a07d… tree @ sha256:4f0c…
- Inputs, pinned by content hash A moving reference changes the premise mid-run. A pin makes the run reproducible, and lets a new rule arrive later without moving the ground under it.
entry- spec.accepted ∧ lease.held
- Required entry states The states the work requires of what it consumes — not a list of what came before it.
done- retry.backoff ∧ retry.capped ∧ tests.pass
- The completion rule The definition of done, as conditions a tool can evaluate. Nobody has to take the agent's word for it.
cannot- provider.limit.unknown → blocked
- The cannot-be-completed rule When to stop and say the goal is unreachable. Process models are rich in failure states; almost none declares this in advance.
budget- 45 min
- A budget, at the 80% horizon A timebox, sized against the task length the agent finishes four times in five — never the length it finishes half the time.
scopewrite- src/sync/retry/
- The writable scope The exact region this run may write. Everything else it may at most read.
commands- fs.write test.run act.propose
- The commands the activity requires Intersected with what the actor holds, this is the whole surface the run ever sees.
estimate- 30 min · reconsider ×1.5
- An estimate, with its reconsideration factor A bound ends a run. Crossing the estimate factor asks the issuer — never the agent doing it — whether the work is still right.
nonce- 9b2e…
- A nonce, shared with the yield So a yield from one run cannot be replayed as the outcome of another.
Identity · the digest of the brief itself, timeout included
brief A
every other field — identical
budget · timeout 45 min
sha256:5c1f 0e92 a4d7 …
brief B
every other field — identical
budget · timeout 4 h
sha256:e83a 71bc 0f26 …
Same fields, one different timeout: two digests, two different pieces of work. A short run can never take a cache hit from a long one and answer a question it was never asked.
An agent knows what it is doing, knows when it is done, and has a legitimate way to say it cannot finish.
The budget is a timebox, sized against the task length the agent completes four times in five, not the length it completes half the time. Measured on AI agents, the first is four to ten times shorter than the second; Big work becomes small, checkable tasks explains why that matters. A budget is a fuse, not a decision: exhausting it ends the run, while crossing the estimate factor puts a question to the issuer.
Who accepts a brief. A brief needs the owner’s acceptance if and only if it is cascading, irreversible, frame-extending or intent-bearing. Otherwise its issuer accepts it, at any depth. A brief cascades if it will be decomposed further, so an agent that issues a leaf sub-brief accepts it, and a sub-brief that branches reaches the owner however deep it sits.
Why the owner sees the briefs that branch
A leaf brief issues no children, so it is multiplied by nothing. A brief that branches is multiplied by everything beneath it. The test is computable from the plan, and the result is that the owner sees the briefs that branch, not the ones that work. Irreversible acts and rule changes affect the whole tree, so they resolve to the owner too.
Assurance at depth comes from independent oversight sampling, not from acceptance: whoever accepts hundreds of briefs accepts none of them carefully (Bainbridge, Ironies of Automation). Oversight is orthogonal to delegation, so an audit never runs through the chain that produced the work.
Latitude is earned from the record, not assumed: an actor’s briefs stay issuer-accepted until its track record warrants more — the pattern behind Google’s readability review, Chromium’s committer levels and the Linux kernel’s maintainer trust.
Prior art
The triple of brief, run and yield is well precedented: in-toto layouts and link metadata, SLSA build definitions and run details, and Bazel’s Action and ActionResult in the remote execution API. Bazel reached the timeout rule independently: the timeout is part of an action’s identity, or the cache answers the wrong question.
The cannot-be-completed rule is the unusual field. Process metamodels describe failure states richly, but almost none declares in advance when to give up. The vocabulary comes from multi-agent systems and design by contract.