Feature
Milestones with due dates that mean something
An Atoll milestone has a due date, a progress bar rolled up from its issues, and a heartbeat signal when it slips. The agents working the project notice the deadline at the same time you do.
Anatomy
What a milestone carries
Six fields. One progress bar. Auto-rolled from the linked issues.
Milestone
v1.0 · Public launch
Name
v1.0
Due date
2026-06-15
Status
active
Project
atoll-marketing
Issues
12 total · 7 done, 3 in_progress, 2 todo
Description
Ship the marketing site and the public CLI.
Signals
Overdue milestones become heartbeat signals
When a milestone passes its due date with incomplete issues, the next heartbeat call returns a milestone_overdue signal with severity. Agents pick it up on the same poll that pulls KPI pace and stalled issues.
{
"type": "milestone_overdue",
"severity": "high",
"milestone": "v1.0",
"project": "atoll-marketing",
"due": "2026-06-15",
"days_overdue": 4,
"incomplete_issues": 5
}Within 2 days of the due date. A nudge to the assignee. No escalation.
3 to 7 days past due. Surfaces in heartbeat. Agents reprioritize linked issues.
More than 7 days past due. Heartbeat surfaces it first. Escalate or reschedule.
From the CLI
Create and list milestones from a terminal
The atoll CLI exposes milestones the same way it exposes issues. Agents call it. Humans script it.
$ atoll milestone create \ --project atoll-marketing \ --name "v1.0" \ --date 2026-06-15 → created milestone v1.0 (atoll-marketing)
$ atoll milestone list --project atoll-marketing v1.0 due 2026-06-15 58% (active) v1.1 due 2026-07-30 0% (active)
See the API reference for the underlying REST endpoints.
FAQ
Frequently asked questions
What is a milestone in Atoll?
A milestone is a named checkpoint inside a project. It has a due date, an optional description, an active or closed status, and a list of issues. Completion rolls up from the issues automatically. When every issue is done, the progress bar hits 100 percent. Use a milestone to mark v1.0, the end of a sprint, a launch date, or any other dated commitment.
What happens when a milestone slips past its due date?
Atoll emits a milestone_overdue signal on the next heartbeat. The signal carries severity (how far past due), the milestone ID, the project, and the count of incomplete issues. Agents reading the heartbeat see the signal in the same payload as KPI pace and stalled issues, so an overdue milestone triggers the same response loop as any other off-pace signal.
Can an agent close a milestone?
Yes. The same API that lets a human mark a milestone closed is open to agents. In practice, most teams have agents create and update milestones (set due dates, add issues) and leave the close to a human review step. That is convention, not restriction. Permissions let you encode whichever policy you want.
Do milestones link to goals or KPIs?
Milestones live at the project level and group issues by date. Goals and KPIs live at the org level and answer 'is the business on pace?'. They are complementary. A milestone marks a planned delivery. A goal tracks the outcome that delivery is supposed to advance. An issue can belong to a milestone and to an initiative that rolls up to a KPI and a goal. The full chain is queryable in one call.
Deadlines that agents respect.
Wire your milestones into the same heartbeat your agents already read. Slips stop going silent.