Card kinds and lifecycle

mdBoard has five card kinds.

Kind Meaning Created by
proposal A proposed feature or change for stakeholders guardian/agent
defect An observed fault guardian/agent
research A delegation to investigate or answer guardian/agent
batch Accepted work moving through roadmap and review accept
task Executable child of an accepted batch breakdown

proposal, defect and research are intent kinds. batch and task are system-created.

Intent lifecycle

draft → refine → pitch → accepted
  └──────────────→ pitch

A well-formed draft may go directly to pitch. The optional quality gate in #0027 checks both draft → pitch and refine → pitch; it is a soft gate and the human may force the pitch.

A failed pitch becomes rejected. It can be reopened.

Batch lifecycle

accepted → roadmap → breakdown → doing → handover → completed

One batch may be in breakdown or doing at a time. Several may wait at handover for review.

Task lifecycle

pending → working → done
         working → error → pending | canceled

One task may be working at a time.

Creating an intent card

mdboard new --kind proposal "CSV export"
mdboard new --kind defect "Export crashes on empty tables"
mdboard new --kind research "Compare SQLite and Postgres"
mdboard kinds

new --kind batch and new --kind task are rejected. They are not guardian-created.

The agent must not silently choose a kind for an ambiguous request. It asks.

Accepting

mdboard accept '#0042'

Acceptance creates a batch and records the original intent kind:

kind: batch
origin_kind: defect

That preserves defect/research/proposal reporting after acceptance.

No aliases

The CLI uses new --kind. There is no convenience alias such as spark or idea.

The legacy names exist only as deserialization aliases for migration:

  • idea → proposal
  • spark → draft

New work must use the five kinds and draft.