list --specs shows open beads only and there is no --linked/--unlinked filter, so spec and tracker triage is one call per item
- Dominant language
- TypeScript
- Stars
- 79
- Forks
- 9
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 42
Description
## Summary
`tbd list --specs` groups only open beads, and `list` has no `--linked` / `--unlinked` filter. Both gaps make spec triage and tracker triage one-call-per-item work.
## What happened
- A spec with every bead closed and a spec that was never decomposed look the same in `--specs` output, and a spec with zero beads does not appear at all. Finding the ten `active/` plans with no open bead meant diffing a directory listing against the grouped output, then `tbd list --all --spec --count` per file to learn whether any bead ever existed.
- `--specs` prints whatever `spec_path` the beads carry, including paths whose file no longer exists, with no marker; a listing showed 60 "specs" under `done/` and `archive/` that were really open beads carrying stale paths.
- Finding epics with no tracker link is only possible by reading the `would create` line of `tbd --dry-run integration sync`. `tbd list --json` does not include `extensions`, so the link cannot be filtered on.
## Suggested change
- `tbd specs status`: one row per spec file under the specs tree with lifecycle folder, open / closed bead counts, unchecked-checkbox count, and a marker for paths that beads reference but that do not exist.
- `tbd list --linked [provider]` and `--unlinked`, and `extensions` (or at least the link key) in `--json` output.
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 with the `tbd specs status` and `tbd list` command entry points, including `--json` output and integration sync behavior. Define the spec rows, lifecycle and missing-path markers, linked/unlinked filtering, and the link data exposed in JSON; done means spec triage and tracker triage no longer require one call per item.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100