loopflow 0.12.4

Run steps and flows with coding agents
Documentation
---
description: Promote a project into a resident child wave.
action_style: procedural
---
Promote the named project. The seed names the project slug and its parent wave.

## Contract

A project becomes a wave only when it needs its own live thread and cadence.
Memory inherits from the parent; chat does not. Promotion moves the pen: after
this flow, the parent receives authored reports rather than overhearing the
child's work.

## Work

1. Read the source with `lf pm show --wave <parent> --project <slug> --json --no-sync`,
   plus the parent's `GOAL.md` and current memory. Refuse a missing Project or
   an existing `wave/<slug>/GOAL.md`.
2. Create `wave/<slug>/GOAL.md`. Preserve the Project definition as the child
   objective, then add valid GOAL frontmatter with a cadence suited to the bet.
   Use a weekly pursue cadence when the Project gives no sharper signal.
3. Create an empty `wave/<slug>/MEMORY.md`. Never copy parent memory: the
   runtime inherits it through `parent_wave_id`.
4. Initialize the child's Linear Initiative with `lf pm init --wave <slug>`,
   recreate the measured bet there with `lf pm project create`, and move every
   source task with `lf pm task move --id <id> --wave <slug> --project <slug>`.
   Only after the child snapshot is complete, remove the duplicate parent bet
   with `lf pm project archive --wave <parent> --project <slug>`.
6. Add a child `Process` instruction requiring its first pass to report the
   newly owned definition and KRs in its own thread, then publish that concise
   report to the parent with `lf radio pub --parent`.

The command's mechanical postflight links the registry ancestry, launches the
child residency, waits for `.wave-endpoint`, and sends the bootstrap message
that starts this first pass. Do not launch a second wave process or impersonate
the child from the promotion flow. The child's resulting report is the
checkable proof that the new mind can speak across the boundary on purpose.