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 compass-agile-plan-sprint skill. For general backlog housekeeping without sprint selection, use How do I refine the backlog? first.

1. Question

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

2. 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.

3. Script

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

4. Tested by

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

5. See also

Emacs 29.3 (Org mode 9.6.15)