How do I work a task?

Table of Contents

A task is a PR-sized unit of work inside a story. Tasks share the story's feature branch — they do not get their own branches. For the story-level branch-and-status recipe, see How do I start work on a story?.

Question

How do I pick up a task, record progress, and close it when the work is done?

Answer

Picking up a task (BACKLOG → STARTED)

  1. Open the task's .org file under doc/agile/versions/v0/sprint_NN/<story>/task_<slug>.org.
  2. Update the * Status table:
    • Change State from BACKLOG to STARTED.
    • Set Now to a one-line description of the first action.
    • Set Next to whatever follows the first action.
    • Update Last touched to today.
  3. Fill in * Plan if it is still the placeholder text. The plan is the implementation strategy — keep it short (bullet list, not prose). It is transient: distil key decisions into the parent story's * Decisions when the task closes, then clear it.
  4. Commit the status change on the story's feature branch:

    git add doc/agile/versions/v0/sprint_NN/<story>/task_<slug>.org
    git commit -m "[agile] Mark task <slug> STARTED"
    

During execution

  • Append findings, decisions, and blockers to * Notes as they occur — one bullet per entry, newest last.
  • Update Now / Next / Last touched whenever the task changes direction. These fields are the live status; keep them current.
  • If the task becomes blocked, set State to BLOCKED, fill Waiting on and Blocked since, and commit.

Closing a task (STARTED → DONE)

  1. Write the * Result section: what was built, what was verified, any gotchas a future reader needs. Factual and durable — no PR numbers (the git log has those).
  2. Update * Status:
    • Change State to DONE.
    • Clear Now / Waiting on / Next.
    • Update Last touched to today.
  3. Distil any plan decisions worth keeping into the parent story's * Decisions section, then clear * Plan in this file.
  4. Commit:

    git add doc/agile/versions/v0/sprint_NN/<story>/task_<slug>.org \
            doc/agile/versions/v0/sprint_NN/<story>/story.org
    git commit -m "[agile] Close task <slug>"
    

Abandoning a task (→ ABANDONED)

Set State to ABANDONED, add a one-line reason in * Notes, and commit. Do not delete the file — the history is useful.

Script

No script — pure status-table edits on the task and story files.

Tested by

Manual. Applied to every task in Sprint 18 and later.

See also

Emacs 29.1 (Org mode 9.6.6)