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

active

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.

Progress (auto-rolled)58%

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.

GET /api/orgs/atoll/heartbeat · signals[]
{
  "type": "milestone_overdue",
  "severity": "high",
  "milestone": "v1.0",
  "project": "atoll-marketing",
  "due": "2026-06-15",
  "days_overdue": 4,
  "incomplete_issues": 5
}
low

Within 2 days of the due date. A nudge to the assignee. No escalation.

medium

3 to 7 days past due. Surfaces in heartbeat. Agents reprioritize linked issues.

high

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.

Create a milestoneterminal
$ atoll milestone create \
    --project atoll-marketing \
    --name "v1.0" \
    --date 2026-06-15
 created milestone v1.0 (atoll-marketing)
List active milestones for a projectterminal
$ 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.