Tasks & Progress
Tasks are the atomic units of work in Monday Morning. They live in two places: inside a spec’s implementation.md (most common), or as standalone files in .mm/tasks/ for one-off work that doesn’t belong to a spec.
Tasks within specs
Section titled “Tasks within specs”Every spec has an implementation.md file that lists tasks under three sections:
## Completed- [x] T1: Database schema migration
## In Progress- [ ] T2: Build API endpoints - [ ] T2-1: GET /users endpoint - [ ] T2-2: POST /users endpoint
## Backlog- [ ] T3: Write integration tests- [ ] T4: Update API documentationTasks use standard markdown checkboxes. When a task is finished, it moves to ## Completed with - [x]. Subtasks (indented checkboxes) let you break larger tasks into steps.
Section headers
Section titled “Section headers”The parser recognizes exactly these section names:
| Section | Meaning |
|---|---|
## Completed | Finished tasks |
## In Progress | Tasks being actively worked on |
## Backlog | Tasks planned but not started |
Use ## (two hashes). Three hashes (### ) will not be recognized by the progress tracker.
Task completion
Section titled “Task completion”You have two ways to mark a task done:
- Edit the file directly — change
- [ ]to- [x]and move the line under## Completed. - Use the MCP tool — call
mm_complete_taskwith the spec path and task title. This handles the file edit, runs any configured tests, and triggers progress rollup automatically.
# The mm_complete_task tool handles:# 1. Mark the task as [x] in implementation.md# 2. Run project tests (unless force: true)# 3. Check if all spec tasks are done# 4. Update feature progress if applicableThe tool-based approach is what Claude Code agents use during /mm:spec-start. It ensures tests pass before marking work complete.
Standalone tasks
Section titled “Standalone tasks”Not everything belongs in a spec. Quick fixes, maintenance chores, and one-off items go in .mm/tasks/ as individual markdown files:
.mm/tasks/├── tasks.md # Dashboard (auto-maintained)├── fix-login-redirect-05-12-2026.md # Individual task file└── update-deps-05-10-2026.md # Another task fileEach standalone task file follows this format:
---title: Fix Login Redirectcategory: Bug Fixpriority: Highstatus: pendingcreated: 2026-05-12updated: 2026-05-12---
# Fix Login Redirect
**Category:** Bug Fix**Priority:** High**Status:** Pending
## DescriptionThe login page redirects to /dashboard even when the user came from /settings.
## Checklist- [ ] Reproduce the issue- [ ] Fix redirect logic to use return URL- [ ] Add regression testImportant: Each standalone task must be its own file. Don’t just add a line to tasks.md — the dashboard file is a summary view, not the source of truth for individual tasks.
Progress tracking
Section titled “Progress tracking”Monday Morning calculates progress at three levels:
| Level | How it’s calculated |
|---|---|
| Task | Binary — - [x] is done, - [ ] is not |
| Spec | Percentage of [x] tasks out of total tasks in implementation.md |
| Feature | Percentage of completed specs out of total linked specs |
Progress updates are immediate. When you check off the last task in a spec, the spec is marked complete. When the last spec in a feature finishes, the feature is marked complete.
What you see in the desktop app
Section titled “What you see in the desktop app”The kanban board shows a progress bar on each spec card — a visual indicator of how many tasks are checked off. Feature groupings show aggregate progress across all their linked specs.
Time estimates
Section titled “Time estimates”You can optionally add time estimates to tasks:
- [ ] T3: Write integration tests (2h)- [ ] T4: Update API documentation (30m)Estimates are informational — they don’t affect progress calculations but can help with planning.
Related
Section titled “Related”- Specs & Workflow — how specs organize tasks into a structured lifecycle
- The .mm/ Data Model — where tasks live in the file system