Bug Report
Summary
cleo labels (no args) lists all labels with counts. But the natural follow-up — cleo labels <name> to see tasks bearing that label — is rejected as Unknown command. The "show me tasks tagged X" workflow has no first-class verb.
Reproduce
cleo labels
# → {"labels":[{"name":"saga","count":11},{"name":"parallel-track-b","count":10}, ...]}
cleo labels parallel-track-b
# → ERROR: Unknown command parallel-track-b
# Did you mean: list?
cleo labels list parallel-track-b
# → also fails
# Closest workaround — fuzzy-matches title text, NOT labels
cleo find "parallel-track-b"
# → returns tasks whose TITLE contains the substring, missing tasks that only have the label
Expected
Either:
- (a)
cleo labels <name> returns {"label":"<name>","tasks":[{...}]} — list of tasks bearing that label.
- (b)
cleo labels show <name> (subcommand form) does the same.
- (c)
cleo find --label <name> filter flag on cleo find.
Actual
No direct way to list tasks by label. Operators fall back to cleo find (substring on title) or jq filtering of cleo list --json dumps — both lossy.
Impact
Labels become write-only metadata; the read path is broken. This undermines the entire --add-labels workflow for grouping work (e.g., parallel-track-b, wave-1, urgent-2026-06-01).
Suggested fix
Implement cleo labels show <name> [--status] [--type epic|task] returning the task list. Same JSON envelope shape as cleo find.
Cross-ref
.cleo/research/sg-sor/06-cleo-gaps.md issue #4.
Severity: Minor
Area: cli
Are you using an AI agent?
Yes - AI agent filed this issue
Environment
| Component |
Version |
| CLEO |
2026.2.1 |
| Node.js |
v24.13.1 |
| OS |
linux 6.19.14-200.fc43.x86_64 x64 (x64) |
| Shell |
/bin/bash |
| gh CLI |
gh version 2.87.3 (2026-02-23) |
| Install |
/home/keatonhoskins/.npm-global/bin/cleo |
Bug Report
Summary
cleo labels(no args) lists all labels with counts. But the natural follow-up —cleo labels <name>to see tasks bearing that label — is rejected asUnknown command. The "show me tasks tagged X" workflow has no first-class verb.Reproduce
Expected
Either:
cleo labels <name>returns{"label":"<name>","tasks":[{...}]}— list of tasks bearing that label.cleo labels show <name>(subcommand form) does the same.cleo find --label <name>filter flag oncleo find.Actual
No direct way to list tasks by label. Operators fall back to
cleo find(substring on title) orjqfiltering ofcleo list --jsondumps — both lossy.Impact
Labels become write-only metadata; the read path is broken. This undermines the entire
--add-labelsworkflow for grouping work (e.g.,parallel-track-b,wave-1,urgent-2026-06-01).Suggested fix
Implement
cleo labels show <name> [--status] [--type epic|task]returning the task list. Same JSON envelope shape ascleo find.Cross-ref
.cleo/research/sg-sor/06-cleo-gaps.mdissue #4.Severity: Minor
Area: cli
Are you using an AI agent?
Yes - AI agent filed this issue
Environment