How do I plan a sprint?

Table of Contents

Sprint planning operates on the current sprint document and the product backlog. For automated orchestration, use the agile-plan-sprint skill. For general backlog housekeeping without sprint selection, use How do I refine the backlog? first.

Question

How do I plan a sprint — set its mission, score backlog candidates against it, and promote selected captures into stories?

Answer

  1. Open the current sprint document and confirm or set the mission:

    ./projects/ores.compass/compass.sh list --type sprint --sort path | tail -3
    

    The * Mission must be a single sentence before scoring can proceed. If it reads (One sentence — what this sprint exists to achieve.) it is unset — agree on it with the user now.

  2. Note what is already committed — read the sprint's * Stories table. STARTED and BACKLOG stories are already in scope; do not re-select them.
  3. List next-bucket candidates:

    ./projects/ores.compass/compass.sh next
    
  4. Score each candidate on three axes — record results as a table before presenting to the user:

    Criterion Scoring guidance
    Fit Direct mission advance = high; tangential = low
    Size One sprint / one story = high; multi-sprint = low
    Ready No blockers, no unresolved dependencies = high
  5. Present the ranked candidates and get the user's confirmation on which to promote. Sprint scope is always the user's decision.
  6. Promote each confirmed capture to a story:

    a. Scaffold the story in the sprint folder, preserving the capture's :ID: with --id. Use compass add — it defaults --parent-dir to the current sprint automatically:

    projects/ores.compass/compass.sh add story \
      --slug <slug> \
      --id <capture-uuid> \
      --title "<title>" --description "<description>"
    

    Pass --parent-dir doc/agile/versions/v0/sprint_NN explicitly only if the story belongs to a sprint other than the current one.

    b. Remove the capture from the backlog:

    git rm doc/agile/product_backlog/next/<slug>.org
    

    c. Fill in the story's * Goal, * Acceptance, and at least one task skeleton.

  7. Add each promoted story to the sprint's * Stories table:

    | [[id:<uuid>][<title>]] | BACKLOG | YYYY-MM-DD | | <one-line theme> |
    
  8. Commit:

    git add doc/agile/versions/v0/sprint_NN/ \
            doc/agile/product_backlog/ \
            doc/agile/versions/v0/sprint_NN/sprint.org
    git commit -m "[agile] Sprint NN — promote N stories from backlog"
    

After planning, use How do I start work on a story? to move the first story from BACKLOG → STARTED and create its feature branch.

Script

No single script — the agile-plan-sprint Claude Code skill orchestrates this procedure interactively.

Tested by

Manual. Run once per sprint, at the start of the planning phase.

See also

Emacs 29.1 (Org mode 9.6.6)