spawn_dev.py: add a --bd flag, --issue is GitHub-int-only and can't name a bd-native chunk nf-1owx ← Beads

closed priority 2 task spawn-dev-bd-flag tooling-gap
What's wrong

tools/office/spawn_dev.py --issue (line ~1833) is declared type=int — it only accepts a plain GitHub issue number. Design 011 T8 flipped bd to be authoritative for possession repo-wide: new work is filed directly with bd create, has no GitHub twin, and its id looks like nf-758.1, not an int. There is no --bd/--task flag as an alternative.

Why this matters

The office's own /assign command (nf-office repo) spawns a dev with spawn_dev.py <topic> --issue <primary-issue> to hand it its first chunk. For any post-flip, bd-native task (no external_ref: gh-<n>), this call has no way to name the chunk — --issue physically cannot take a bd id. The current workaround is --kickoff-file with hand-written text naming the bd id directly, which works but bypasses spawn_dev.py's own preamble()/adoption_lines() chunk-naming logic (the "Your chunk is issue #N (labelled session:X, active)" sentence, build_kickoff) entirely for every bd-native assignment going forward.

Prescription

Add a --bd <id> flag (string, e.g. nf-758.1) alongside --issue <n>, mutually exclusive with it. Wire it through the same path --issue takes today (preamble()'s issue parameter and its "Your chunk is issue #N" sentence, build_kickoff) but naming the bd id and using bd's own verbs (./dev.py claim <bd-id>) in the generated instruction text instead of the GitHub-labelled-issue sentence. Legacy --issue <n> should keep working unchanged for any remaining pre-flip issue still referenced by its GitHub number via external_ref.

Test plan

spawn_dev.py <topic> --bd nf-758.1 --dry-run prints a kickoff naming the bd id and dev.py claim, not a GitHub issue sentence. spawn_dev.py_test.py's existing --issue coverage stays green; add the --bd equivalent alongside it.

Dependencies

None.

Comments

jcantsp-bot · 2026-08-20T09:01:39Z

CLAIM

Working nf-1owx: add --bd <id> flag to tools/office/spawn_dev.py as a bd-native alternative to the existing GitHub-int-only --issue flag, mutually exclusive, wired through preamble()/build_kickoff so a bd-native chunk gets a kickoff sentence naming the bd id and dev.py claim instead of a GitHub issue sentence. --issue stays unchanged for legacy GitHub-numbered issues.

Add a comment