Skip to content

Work-intake routing and lifecycle

Authoritative routes, states, processors, and mutation boundaries for Core work intake.

This Core page is authoritative for the closeout, pause, and disposition lifecycle: the phases, the six disposition intents, and which workflow owns each mutation. For the cross-profile intake routes shared with other profiles, see Work-intake routing and lifecycle reference, which does not cover closeout.

work-intake is the neutral route for raw or ambiguous requests, acquisition, refresh, and generic intake safety. Status goes directly to workspace-status; an explicitly named artifact, owning skill, product-shaping task, architecture-design task, or defect goes directly to its owner. A delegation from neutral intake is the same route, not a second public answer.

User intentResult
Start or do workSelect one artifact route, write it, register it, then invoke the owning processor when dispatchable
Remember workWrite and register a Draft, non-dispatchable artifact; stop before implementation
Inspect statusReturn workspace-status lifecycle, findings, and next actions without mutation
Refresh requirementsResolve an existing registered artifact and exact configured profile processor, then present a reviewed field delta
Admit a shaping handoffValidate bounded context, resolve its semantic destination, and continue through an existing brief or spec processor
Pause workPersist a reference-only restorable overlay through close-work; keep Ready or Implementing status
Close workHand bounded delivery evidence to close-work, verify durable owners, and recommend a disposition without automatic action
Input shapeCanonical artifactInitial lifecycleProcessor
Minimal outcome needing repository admissionIntent at docs/product/intents/<slug>.mdDraft, non-dispatchableintake-intent
One independently shippable contractSpec at docs/specs/<slug>/spec.mdReady only after approval and a sibling plannew-spec
Coherent multi-spec outcomeBrief at docs/product/briefs/<slug>.mdDraft, non-dispatchableauthor-delivery-brief create
Cited regression or defect evidenceDefect contextReady only after canonical context existsbug-fix
Incomplete or ambiguous inputDraft artifact with named gaps, or one clarifying questionNon-dispatchableNone

A Ready brief may contain zero specs. It records a viable outcome and remains non-executable until a human confirms a slice; only then does author-delivery-brief continue invoke new-spec.

Use the brief’s status and its matching brief_queue collection together.

StatusWhen it appliesNext transition
DraftThe Ready gate has not passed; no child is Implementing or Shipped.Review through author-delivery-brief continue.
ReadyThe gate passed; no child is Implementing or Shipped. Zero child specs is valid.Move to Executing when child execution evidence first exists.
ExecutingAt least one child is Implementing or Shipped, and the outcome remains open.Continue delivery or close explicitly.
ShippedThe human confirms the outcome is complete; the map is non-empty and every mapped child is Shipped.Terminal.
WithdrawnThe human stops the brief before any child reaches Implementing or Shipped.Terminal.
CancelledThe human stops the brief after at least one child reaches Implementing or Shipped.Terminal.

An open brief stays Executing when all currently mapped children are Shipped but a future slice has not been materialized. The Spec map is delivery evidence, not closure authority. close-work performs a separately confirmed terminal transition and preserves every child status.

Capability: normalized-intake.v1#handoff.

The optional closed object carries required arrays for boundaries, non-goals, dependencies, design context, and delivery questions. Empty arrays are valid. Absence means standalone Core and preserves the existing route.

Admitted shapeSemantic roleExisting processor
One independently shippable featureDelivery contractnew-spec
Multi-spec or cross-repository outcomeDelivery briefauthor-delivery-brief continue, or create when no brief exists
Incomplete content, source mismatch, ambiguity, policy conflictNoneStable clarification, confirmation, or refusal stop

The current invocation supplies bounded resolver candidates; intake does not scan for destinations. A repository locator is read only as a confined regular file. An external locator remains opaque and is never fetched, searched, probed, executed, or converted into a path. Previously acquired external content is reusable only when the trusted invocation supplies it and its revision matches.

Input: action, bounded content, source locator and revision, constraints, proposed authority, an optional validated shaping handoff, and an existing registered refresh target when applicable.

Output: action, repository-relative artifact path, workspace membership, processor, authority mode, and stop point. Refresh also returns compared and accepted revisions, field decisions, conflict state, local mutation state, and a redacted remote-action result when one separately confirmed action ran.

Workspace entries contain only path, kind, source, summary, and hard needs. Titles, comments, list order, tracker type, and memory are not routing authority.

For follow-ons and remembered work, work-intake materializes the canonical artifact first. The workspace.toml entry is only a terse live pointer: minimal provenance, one short current/next summary, and hard dependencies. It does not store rationale, chronology, review findings, suggested order, copied source text, or procedures.

work-loop owns implementation, verification, and review. At completion it hands close-work bounded references for the accepted outcome, implemented scope, gates, durable-output status, obligations, dependencies, completion event, and independent authority facts. The handoff is evidence, not a status transition or deletion grant.

close-work alone marks Closeout-pending or Post-closeout, inventories lasting facts and Design/LLD findings, confirms affected human-readable owners are semantically fresh as wholes, recommends one disposition, and owns any separately authorized persisted effect. Code and tests remain capability proof; they do not replace product intent, rationale, user promises, ownership, or operations guidance.

DispositionResult
discard-localRecommend discarding tool-owned temporary state; removing a file still needs confirmation
delete-before-pushPrepare one exact never-pushed local removal for fresh confirmation
delete-before-mergePrepare removal before the removal change integrates; an integrated change needs an ordinary follow-up
cool-30-daysEnrol, compute the review date, and review on day 30; confirmed deletion remains separate
retain-exceptionRetain with a bounded reason, owner role, and human-supplied review date
external-advisoryReport evidence and missing external authority without probing or mutation

Disposition is intent, not permission. Every write, content-removing compaction, or deletion needs a separately resolved actor/grant/action/resource/evidence/ session authority fact. Every deletion also needs fresh human confirmation bound to the exact locator, fingerprint, disposition, source-state evidence, and deletion authority. Drift expires it. Committed removal is an ordinary reviewed change; history is never rewritten.

A pause uses an existing resolved writable shaping or build surface and stores only contract/plan locators and fingerprints, current statuses, evidence references, coordination locator, and restore action. Resume reacquires every reference. workspace-status projects pause, closeout blockers, due cooling reviews, retention exceptions with their owner role and review date, and next action, but never distils, dispositions, confirms, or mutates. Ordinary orientation never loads a cooled artifact body: it reads each lifecycle record through the bounded reader and reports whether that resolution succeeded, so a run that could not establish the cooled set says so rather than implying an exclusion it did not perform. Across the projections, an entry named by a lifecycle record counts toward neither closeout consumer.

Initiative coordination and artifact retention are assessed independently. A settled workspace entry may leave while an RFC/release/decision family remains anchored. A live dependency may retain a four-field completion receipt in an already compatible surface; absent such a surface, the delivery record remains a retained exception. See Close work without losing lasting context.

Reads: normalized request fields, the repository root, configured artifact parent, existing target, workspace.toml, and status output.

Writes: at most one confined canonical artifact followed by its schema-valid workspace entry. Dispatch starts only after both are durable. If registration fails, the artifact is rolled back when safe; otherwise it remains explicitly non-dispatchable for reconciliation.

Limits: no network access is used by the Core-only intake surface. Configured tracker processors own bounded acquisition and capability-scoped remote calls. Paths that are absolute, traverse directories, loop through symlinks, or resolve outside the repository and configured artifact parent are rejected before mutation.

Refresh resolves the existing artifact, its workspace entry, one closed source-authority record, and the exact profile version before acquisition. Tracker text remains untrusted candidate data.

Artifact stateRequirement refresh
DraftApproved source-owned fields may update; local-owned fields remain unchanged
Accepted intent, Ready brief, Approved specEvery changed local field needs an authorized keep-local, accept-source, or revise-both decision
Implementing spec, Executing briefRefused before local or remote mutation
ShippedRequirements locked; profile-declared coordination write-back may be requested separately
Withdrawn briefRequirements locked with withdrawn_requirements_locked
Cancelled briefRequirements locked with cancelled_requirements_locked
Repo-originReports projection drift; does not import tracker requirements

A completed comparison advances the compared revision even when local values are kept. The accepted revision advances only with accepted source values. The artifact authority record and the small workspace revision mirror use one fingerprint-guarded write.

Every tracker mutation requires a fresh confirmation bound to the exact artifact, source revision, profile, destination, action, target, and payload digest. A pending receipt lands before the adapter call. Mutations are not silently retried, and unsupported profile actions never fall back to raw tracker access.

capture-work is a compatibility-only alias. It emits a deprecation notice and forwards the same normalized request to work-intake; it does not keep an independent classifier or storage format. Use work-intake in new guidance.

See Start or remember work without choosing a skill for the common start procedure, or Use work intake for an existing tracker-origin artifact.

Legacy workspace findings are planned and repaired through workspace-status, not ordinary intake. See Migrate a legacy workspace entry safely.