Skip to Content
Cheat Sheet/groom-backlog

/groom-backlog

Walk the whole backlog, decide what’s ready for execution, and populate the Ready column with the next 2–5 tickets — the prioritization pass that keeps /work-ticket fed.

When to use it

Run this in the morning before kicking off work, or whenever the Ready column thins out below ~2 tickets. The command launches the backlog-prioritizer agent, which reads the strategic context (docs/PRODUCT-REQUIREMENTS.md, docs/PRODUCT-ROADMAP.md), counts tickets by status, scores backlog items using Cost-of-Delay ÷ Duration, checks the top candidates against Definition of Ready (4 Power Sections + safety class + effort estimate + priority), and promotes the top 2–5 to Ready.

It also enforces a scope check on every promotion: if a candidate ticket touches more than 3 unrelated files, has more than one major branch point in its happy path, or is XL-effort, the agent flags it for decomposition into child tickets rather than pushing it through as-is. This is the cheapest place to catch oversized tickets — much cheaper than discovering it mid-implementation.

Don’t use this for single-ticket triage on a brand-new request — that’s /create-ticket territory. Grooming operates on the existing backlog; it doesn’t create new tickets.

How it fits

Inputs are the existing backlog plus strategic context. Outputs are a populated Ready column and a decomposition pass on any oversized candidates.

What it does (quick)

  • Counts tickets by status; flags bottlenecks (e.g., too many In Review, Ready column empty)
  • Reads PRD and roadmap to align prioritization with current phase
  • Scores backlog candidates with CD3 (Cost of Delay ÷ Duration)
  • Verifies Definition of Ready on top candidates: 4 Power Sections, effort estimate, priority, exactly one safety:* label
  • Flags scope issues — promotes only single-PR-sized tickets; decomposes oversized ones into children
  • Moves the top 2–5 well-defined tickets to Ready
  • /create-ticket — upstream; this command grooms what /create-ticket produced
  • /sprint-status — the read-only sibling that observes board health without modifying anything
  • /work-ticket — downstream; consumes the Ready column this command populated
  • /drain — autonomous variant that runs /work-ticket against the whole Ready column overnight

Canonical spec: .claude/commands/groom-backlog.md

Last updated on