Tasks

Table of Contents

Summary

In agile practice, a task is the unit of execution: one concrete, finishable piece of work carved out of a story, small enough that its progress is binary — not started, in hand, or done — rather than a percentage. Tasks are how a team turns an outcome into a sequence of changes someone can actually pick up.

In ORE Studio, a task is one pull request's worth of work inside a story. The hard rule — one task = one PR — gives every change a reviewable shape, a traceable record (the task's * PRs and * Review tables), and an honest state in the lifecycle machine. Tasks are deliberately small; anything bigger splits, or grows up into a story.

Detail

What a task is

A task names a concrete, completable change: the code, docs, or tooling delta plus the agile bookkeeping that travels with it. Its content contract — blurb, * Goal, * Status, * Acceptance, * Plan, * Notes, * PRs, * Review, * Result — is defined in Document types. Tasks are created during sprint planning when a story is decomposed (compass add task --parent-dir <story-dir>), or later via compass task new when a started story needs another.

During sprint execution a task runs the lifecycle BACKLOG → STARTED → (maybe BLOCKED → STARTED) → DONE, carried by compass task start and closed when its PR merges.

Sizing

Hard rule: one task = one PR. Soft limits per task:

  • ≤ ~10 files changed.
  • ≤ ~400 LOC delta.
  • One coherent concept — a reviewer can hold the change in their head.

Tasks exceeding any of these split into multiple tasks, or — if the work is genuinely one outcome and just large — promote to a story whose tasks are the natural decomposition.

Discovered tasks

Work surfaced mid-sprint lands as a discovered task in DISCOVERED state: at the sprint's inbox/ if it fits no existing story, or under the current story if it does. A discovered task must leave DISCOVERED within one orchestrator session — triaged into BACKLOG, converted to a backlog capture, or dropped (see lifecycle).

Ready and done

A task is ready to leave BACKLOG when its Goal and Acceptance are filled and its parent story exists.

A task is done when its PR is merged, * Result is filled, and the Status row's "Last touched" matches the close date.

See also

Emacs 29.1 (Org mode 9.6.6)