jlevy / jlevy/tbd

list --specs shows open beads only and there is no --linked/--unlinked filter, so spec and tracker triage is one call per item

Open
#271 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.