Bulk update refuses --parent and --spec, so a spec move is three commands and N single calls
- Dominant language
- TypeScript
- Stars
- 79
- Forks
- 9
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 42
Description
## Summary
`tbd update … --parent X` and `… --spec PATH` are refused in the bulk form. Both are needed in bulk far more often than the fields that are allowed.
## What happened
```
$ tbd update p-aaaa p-bbbb p-cccc --parent p-epic
Error: Cannot use --parent when updating multiple issues. These apply to a single issue;
use `tbd close`/`tbd reopen` for status changes. Bulk update supports shared fields:
--priority, --assignee, --delegate, --hold, --type, --add-label, --remove-label, --due, --defer.
```
During one reconciliation pass:
- re-parenting the 12 children of a retired epic onto its replacement took 12 calls
- moving 17 plan specs between lifecycle folders left 165 beads pointing at the old paths, and repointing them took 165 single calls at roughly a second each
Both had to be shell loops, which the skill text itself says never to write ("if you are about to shell-loop or pipe around tbd, stop; the bulk or filter form exists"). Here it does not.
## Suggested change
1. Accept `--parent` and `--spec` in the bulk form. Both are shared-value fields exactly like `--priority`.
2. A `tbd spec move ` command that does the three things a move always needs together: `git mv` the file, rewrite inbound Markdown links (the `specs//` fragment form and bare or `./` sibling links), and repoint every bead whose `spec_path` names the old file. Today the third step is invisible when skipped and corrupts the next reconciliation (a bead pointing at a missing file reads as a never-decomposed spec).
Environment: tbd 0.8.1, Node v24.19.0, macOS 26 (Darwin 25.5), Linear integration enabled. Repository scale when observed: 7,156 beads, 137 open epics, 171 tracker links, about 110 plan specs in `active/`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the bulk form of `tbd update` and the handling of `--parent`, `--spec`, and `spec_path`. Then inspect how plan-spec links and files are represented before evaluating the proposed `tbd spec move` behavior. Done means bulk updates accept both shared fields and a move keeps the file, inbound links, and bead references consistent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, markdown, typescript
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100