How do I refine the backlog?

Table of Contents

Backlog refinement operates on the product backlog — the next/=|=deferred and next/=|=deferred/ capture buckets under doc/agile/product_backlog/. For automated orchestration, use the agile-refine-backlog skill. For sprint selection specifically, use How do I plan a sprint?.

Question

How do I tidy the product backlog — pruning stale captures, sharpening vague ones, and re-prioritising between next/=|=deferred and next/=|=deferred/?

Answer

  1. List both buckets:

    ./projects/ores.compass/compass.sh next
    ./projects/ores.compass/compass.sh deferred
    
  2. For each capture, apply the VBCD checklist:
    • V — Valid? Is the need still real? If the work shipped or the idea was abandoned, mark ABANDONED in the capture's status table and commit.
    • B — Bucket? Does it belong in next/=|=deferred (next version) or next/=|=deferred/ (longer horizon)? Move by renaming the file; :ID: stays unchanged.
    • C — Clear? Is the title a complete thought and the description specific enough to act on? Sharpen both in place if not.
    • D — Duplicate? Is a similar capture already in the backlog? Merge by absorbing content into the richer one and marking the absorbed one ABANDONED.
  3. File new captures that surface during the review:

    projects/ores.compass/compass.sh add capture \
      --parent-dir doc/agile/product_backlog/next \
      --slug <slug> \
      --title "<title>" --description "<one-liner>"
    

    Use --parent-dir doc/agile/product_backlog/deferred for longer-horizon items.

  4. Move items between buckets:

    git mv doc/agile/product_backlog/next/<slug>.org \
           doc/agile/product_backlog/deferred/<slug>.org
    
  5. Commit the sweep:

    git add doc/agile/product_backlog/
    git commit -m "[agile] Backlog refinement — next/deferred housekeeping"
    

Healthy backlog heuristics

  • Next bucket ≤ 20 items. More than that signals drift — push low-priority items to deferred.
  • Every next capture has a one-line #+description a newcomer could act on.
  • No capture has been untouched for more than two sprints without a decision.

Script

No single script — the agile-refine-backlog Claude Code skill orchestrates this procedure interactively.

Tested by

Manual. Run at the start of each sprint planning cycle or whenever the next bucket exceeds 20 items.

See also

Emacs 29.1 (Org mode 9.6.6)