/plan-to-beads — translate plan → executable memory
Bead space is different from plan space. A beautiful plan does not automatically produce a good bead graph. Treat this as a translation problem: every rich-in-context element in the plan must end up embedded in a bead, so a fresh agent can execute the bead without reopening the plan.
Plan file: $ARGUMENTS (e.g.
.flywheel/plans/2026-04-20-async-validation-hybrid.md).
Prompt
Use the verbatim prompt at .flywheel/prompts/plan-to-beads.md.
Point it at $ARGUMENTS.
What "good" looks like
Each new bead in .beads/beads.jsonl must have:
idwith prefixfg-(numbering continues from the last existing bead; preservefg-0).descriptionrich enough to execute without the plan — embed rationale, acceptance criteria, failure modes, invariants touched.testspopulated with concrete unit and e2e obligations.- correct
depends_on/blocksedges. labelsthat reflect subsystem (core,executor,tools,models,permissions,sandbox,persistence,ui, …).priorityon P0–P4 (0 = critical, 4 = backlog).
What NOT to do
- Don't write pseudo-beads in a markdown document. Edit
.beads/beads.jsonldirectly. - Don't simplify. If unsure, include more context in the description, not less.
- Don't lose features during translation. Run Operator 4
(plan-to-beads transfer audit) afterwards:
.flywheel/operators/4-plan-to-beads-transfer-audit.md.
After
Run /polish-beads 4–6 times before any implementation.