Skip to content

Topic Lifecycle

A topic is the canonical home for one major iteration line of authority-bearing or high-risk work. This page covers the topic's state machine — coarse lifecycle (proposal → ongoing → pending → closed) plus fine-grained wave states plus separate true-close status.

For the operational flow of how work moves through this state machine, see Topic Workflow.

The Coarse Lifecycle

StateMeaning
proposalPre-active planning
ongoingActive execution
pendingPaused; awaiting evidence or external trigger
closedNo longer the active workstream

State is recorded in topic.yaml. Folder location follows state; folder moves alone are not the state evidence — topic.yaml is.

Fine-Grained States

Beyond the coarse roots, finer machine states exist:

Fine stateCoarse
design_onlyproposal / ongoing
implementation_readyongoing
implementation_activeongoing
true_close_pendingpending / closed
true_closedclosed
revokedclosed (but revocable)
supersededclosed

Fine-grained states are observable through topic artifacts and through audit records.

Movement Rules

Allowed transitions:

Source → DestinationNotes
proposal → ongoingRequires preflight, one selected next target, bounded stop line, consumed inputs, expected closeout checks, explicit forbidden reopenings
ongoing → pendingRequires no active implementation wave, explicit pending-note with reopen criteria or close trigger
pending → ongoingResume work; new wave admission required
ongoing → closedWave-level closeout for all closed waves; topic-level closeout records final disposition
pending → closedSame as ongoing → closed
proposal → closedClosing without implementation
closed → ongoingExplicit reopen required (not casual edit)
ongoing → proposalRe-planning from active state

Forbidden:

  • Parallel topic copies (one canonical copy at a time).

Wave States

Inside a topic, waves have their own state machine.

Wave stateTerminal?
candidateno
preflight_draftno
preflight_admittedno
implementation_admittedno
implementation_activeno
needs_revisionno
overflowedno (requires explicit continuation or revision)
continuation_packet_openno
closedyes
retiredyes
supersededyes

A retired or superseded wave is not dispatchable. An overflowed wave is not silently normalized to closed — overflow continuation requires explicit admission.

True Close

True close is distinct from topic state being closed. A topic can be folder-closed without being true-closed; true close requires a separate audit recording that the closure was independently verified.

current_true_close_statusMeaning
not_startedTrue close not attempted
pendingTrue close in progress
true_closedTrue close passed
revokedA passed true close was later revoked by independent audit
supersededTrue close superseded by a later admission

Passed true close may itself be revoked by a later independent audit; revoked true close requires follow-up lineage. This is what allowed the previous public docs topic to true-close machine-side and then be remediated when human acceptance failed.

Five Closure Layers

The full closeout discipline has five distinct evidence surfaces:

LayerWhat it covers
Context closureA context has reached a stable planning stop line
Wave closeoutOne admitted wave reached its stop line with bounded evidence (four closure dimensions)
Pending holdThe topic waits without active development but retains explicit reopen or close criteria
Topic closeoutThe topic is no longer the active workstream
True closeThe topic is independently audited as finished

These five must remain distinct. Collapsing wave closeout into topic closeout, or treating topic closeout as true close, loses information.

Reader Scenario: A Topic's Full Arc

A topic that ran a substantive AI-coding initiative might look like:

PhaseWhat happened
proposalTopic created; initial design
proposal → ongoingPreflight done; wave admitted
ongoingMultiple waves run sequentially; each closed
ongoing → pendingAwaiting external dependency / user acceptance
pending → ongoingExternal dependency satisfied; new wave admitted
ongoing → closedAll waves closed; topic-level closeout
closed (true_close_status: not_started)Folder closed but true close not yet recorded
true_close_pending → true_closedIndependent audit verifies true close

The state arc is observable through topic.yaml and audit records.

Reader Scenario: A Closed Topic Reopened

A closed topic is re-encountered later with a serious issue.

  1. Closed topic exists. True closed.
  2. Independent audit reveals issue. True close should not have passed.
  3. True close revoked. current_true_close_status: revoked.
  4. Follow-up lineage required. A new topic admits the remediation; lineage links back to the revoked true close.
  5. Original topic stays in closed state with the revocation record; new topic does the remediation.

The revocation does not erase history; it adds a typed evidence record.

Reader Scenario: Pending With Close Trigger

A topic finishes its planned waves but cannot true-close yet — human acceptance is required.

  1. All waves closed. Wave-level closure for each.
  2. Pending state entered. topic.yaml.state: pending.
  3. Pending-note records close_trigger. "User explicitly accepts the rendered docs."
  4. Reopen criteria explicit. "User reports docs still inadequate; admit remediation wave under this topic."
  5. User reviews. Either accepts (move to true-close path) or surfaces blockers (admit new wave).

The pending-note is the structured wait. There is no implicit "this is just sitting here."

Source Basis

Nimi AI open world platform documentation.