Track a PLAN.md file as a progress dashboard, with milestones and deadlines
Updated 2026-10-14
Keep the plan where your coding agents already read and edit it: a Markdown file such as PLAN.md in the repository. Denly reads that file from your own machine and turns its checkboxes, milestones and dates into progress, status and overdue warnings, with no second tracker to keep in sync.
Denly is a control plane for coding agents (Claude Code, Codex, Cursor, Grok Build, Antigravity) that run on your own machines using your vendor subscription or API key. It manages tasks, plans and reviews across projects; Git-backed tasks can open pull requests, while no-Git projects end with a review of local changes. The Plan tracker is the part that answers “how far along is this project, and what is late?” from the plan file itself.
Why the plan lives in a file
An agent working in a repository can read and update a Markdown file in the same commit as the code it describes. The plan is versioned with the work, shows up in review like any other change, and needs no integration to stay current. What it lacks on its own is a view: a long checklist does not tell you which milestone is slipping. The tracker adds that view and changes nothing in the file.
What the tracker reads
| In the file | In the dashboard |
|---|---|
- [ ] and - [x] checkboxes | Done and remaining counts, and the percentage. Nothing else counts as progress. |
## Milestone: Name and ### Sprint: Name | A card per milestone with its sprints nested inside, each with its own progress |
Start: and Target: dates under a heading | Upcoming, Active, Overdue or Complete, and how much of the date range has passed |
| target: 2026-10-12 at the end of a task | The task is listed first once that date passes with the box unchecked |
ID: and Depend on: | Which milestones and sprints are ready to hand to an agent |
| Prose, status tables, story points | Left as written under Formatted plan. A plan with no checkboxes shows progress as unknown, not 0%. |
Set it up
- Add the project to Denly and run
denly install <project-id>on the machine that holds its checkout. - Commit a
PLAN.mdat the root of the repository or project folder. An owner or admin can point the tracker at another Markdown path instead. - Open the project in the dashboard. The runner checks the file at most every 30 seconds and the tracker appears at the bottom of the Project screen.
- Edit the file as usual. Checking a box and saving is enough; the dashboard picks up the new snapshot without a reload.
# Project plan
## Milestone: First release
ID: first-release
Target: 2026-11-01
### Sprint: Foundation
ID: foundation
Start: 2026-10-05
Target: 2026-10-16
- [x] Define the scope
- [ ] Build the prototype | target: 2026-10-12
### Sprint: Release preparation
ID: release-preparation
Depend on: foundation
Start: 2026-10-19
Target: 2026-10-30
- [ ] Review the interface
- [ ] Publish the releaseEvery structured line is optional. A plain checklist under ordinary headings already gets progress counts; milestones, dates and IDs add status and ordering on top.
Let an agent write the plan, then work through it
Ask an agent starts a plan-writing session with the runtime and model you choose: you describe what should be delivered and by when, and the agent writes the file in this format on your machine. It keeps completed work and asks when scope or dates are unclear instead of inventing them.
Handoff on a milestone or sprint opens the New task dialog with a
brief to finish that group. Once you create it, the task goes through your
normal plan approval, review and pull request. Handoff stays disabled until every group named in
Depend on has all of its checkboxes checked, so an agent cannot
start the release sprint while the foundation sprint still has open work.
What stays on your machine
The runner reads the file from your checkout and uploads a read-only snapshot; the repository itself is never uploaded. With workspace end-to-end encryption on, the snapshot is encrypted on the runner and only your browser can read it. Nothing is written back to the file from the dashboard. Plans are read on macOS and Linux runners today; a Windows runner reports the file as unavailable.
Read next
Plan tracker · Tasks & backlog · The coding agent pull request workflow: plan, approve, build, review, merge · One dashboard for coding agents across many projects and machines
Denly