State and transition reference¶
Use this reference when an agent cannot continue, an operation is rejected, or reported state does not match the expected project situation. It describes the public state returned by Workbench and the transitions available through its native operations.
Project selectors¶
The project has two current selectors:
acceptedDesignIdidentifies the one accepted DesignRevision, when one exists.focusedWorkIdidentifies the one focused Work, when one exists.
No Work is focused while accepting a successor design or adopting that design into suspended work. This is an intentional consistency boundary, not a request for the user to edit state.
DesignRevision states¶
| State | Meaning | Public transition |
|---|---|---|
candidate |
Proposed immutable design awaiting acceptance | design propose creates it |
accepted |
Current normative design | design accept selects it |
superseded |
Former accepted Design or amended candidate retained as immutable history | Derived by successor acceptance or candidate amendment |
rejected |
Candidate explicitly rejected without changing accepted authority | design reject |
replaced |
Legacy decoded status | No new v0.2.8 transition creates it |
design propose and design amend require a focused Work and capture exact declared Markdown bytes
from its private Design workspace. The accepted parent, Work binding, identity, digest, and candidate
amendment status are derived. Initial acceptance keeps that Work focused and binds it to the initial
Design. Successor acceptance requires focus to be cleared; ancestor-bound Work remains suspended
until explicit adoption. Editing or deleting a live draft after proposal cannot change, invalidate,
or silently replace the immutable candidate stored in SQLite.
Work states¶
| State | Meaning | Entry transitions |
|---|---|---|
active |
Work is eligible to be focused; focusedWorkId identifies the one currently performed |
work start, work focus, or work resume |
suspended |
Work retained with an explicit return condition | work suspend |
completed |
Readiness passed and exactly one matching completion record was committed | work complete |
withdrawn |
Outcome ended unsuccessfully under an effective User Correction | work withdraw |
Important transitions:
| Situation | Required operation | Result | Common rejection |
|---|---|---|---|
| Start a new outcome | work start |
New Work becomes focused; it binds the accepted Design or retains an empty baseline before initial Design | Another Work is focused |
| Pause current work | work suspend |
Work becomes suspended and records a non-empty resume condition | Named Work is not focused |
| Continue retained work | work resume or work focus |
Suspended/active Work becomes focused | Resume lacks a non-empty satisfaction statement and at least one current same-Work/Design basis entry; another Work is focused; or successor adoption is required |
| Move retained Work to a successor design | work adopt-design |
Design binding changes; Work remains unfocused | Work was not suspended, successor is not a descendant, or requester is not responsible |
| Transfer agent responsibility | work handoff |
Responsible agent run changes; Work and evidence boundary remain | Work is not focused or successor is already responsible |
| Complete | work complete |
Work becomes completed, focus clears, and the exact completion-input digest is recorded atomically | Derived readiness is false |
| End without success | work withdraw |
Work becomes withdrawn and focus clears | No effective same-Work User Correction authorizes withdrawal |
Implementation Plan states¶
| State | Meaning |
|---|---|
candidate |
Immutable proposed Plan with no Task authority yet |
current |
The one materialized Plan for the Work's adopted Design |
superseded |
Historical Plan replaced atomically during materialization |
plan propose/replace captures exact private Plan-source bytes and the complete Design delta.
plan materialize requires current selected Claim receipts, makes only the candidate head current,
and creates or reopens the exact derived Task graph in the same state transition. A candidate alone
does not change productive authority.
Current Context¶
context returns a bounded projection for the next action. When Work is focused it can contain:
- the accepted DesignRevision and focused Work;
- required unfinished Tasks;
- applicable Command Profiles;
- effective user corrections;
- relevant KPT entries;
- unresolved accepted findings;
- missing or stale acceptance evidence;
- missing or stale Lean receipts; and
- changed declared design sources.
Command evidence is current only while its Profile, resolved command, target, and every declared input still match the observations recorded by the run. Evidence without recorded input observations is retained as history but is not current.
Superseded entries and superseded designs remain in history but do not re-enter Current Context by
text similarity. Repeated categories are bounded; use paginated history or entity lookup for older
records.
Readiness gaps¶
ready is false if any of these current conditions holds:
- the accepted Design or current Plan/source archive is incomplete or inconsistent;
- a required Task remains open, or the exact Task-bound evidence used to close it is no longer current;
- an acceptance criterion lacks current evidence of the declared kind;
- a selected Lean claim lacks a current kernel-accepted receipt;
- a user correction remains effective; or
- an accepted finding lacks current resumed-review verification.
The response identifies the corresponding gaps. Correct the underlying project result or use the applicable semantic operation; never change private database rows to remove a gap.
Ledger entry currentness¶
Tasks, profiles, executions, artifact observations, corrections, KPT, reviews, findings, dispositions, verifications, proof receipts, handoffs, and design adoptions are typed ledger entries. Workbench generates their order and Work/Design/scope binding.
An entry superseded by a later same-kind, same-bound entry remains history but is excluded from the current projection. Evidence also stops counting when its target snapshot changes, its producing profile is replaced, its Work/Design binding is no longer current, or its proof input changes.