- Plan
- One folder per project.
plan.yaml holds the goal, the definition of done, the deadline, the budget, and the tasks. log.md records decisions. Generated files (schedule.yaml, gantt.md, briefs/) are views: edit plan.yaml, then regenerate them.
- Tasks
- A unit of work with an objective, inputs, named outputs, acceptance criteria, an estimate range, a budget, and a retry limit. A task with all-zero estimates is a milestone.
- Owners
- Each task has one
assignee from roster.yaml. A roster entry can be a bot, a cloud agent, or a human, with capabilities, a capacity (how many tasks it can run at once), and an optional cost.
- Dependencies
- “This waits for that.” A bare task id means finish-to-start. Start-to-start, finish-to-finish, and start-to-finish also work, with optional lag hours. Cycles are rejected.
- Critical path
- The critical path method assumes unlimited assignees and finds the chain of tasks with zero slack. In the Mermaid chart those tasks are marked
crit.
- Slack
- How long a task can slip before it delays the finish: its latest start minus its earliest start. Zero slack means the task is critical.
- Ready queue
- Tasks whose dependencies are done, that haven’t started, and that don’t need a person.
ready computes it fresh every time.
- Gates
- Points where work must stop for a check. There are two kinds: the Accuracy gate before
done, and human gates before anything that can’t be undone.
- Accuracy done-gate
- A task is done only when Accuracy’s attestation says pass, every criterion is met in the task’s own words, and the output hashes match the manifest.
complete is the only command that writes done.
- Human gates
needs_human: true parks a task under awaiting_human. Holding is the safe default, and anything the gate doesn’t block keeps moving. Irreversible work must be gated.
- Calibration
- Everyone estimates a bit wrong in a consistent direction. After a task is done, the factor is actual over likely hours, weighted by
n / (n + 3) toward 1.0 and clamped to 0.5–2.0. apply-calibration stores the result next to your raw estimate and never replaces it.
- Replan
- When reality slips, work already running keeps its start and only unstarted tasks move. Changing the goal, the deliverables, or the deadline stays a human decision.