Progress reports from derived data
The principle
Progress is never entered by a human or a tool — it's computed from task counts. Complete tasks and the numbers roll up automatically: task → module → milestone → project. A status report is therefore just a read, never a write.
The read
curl "https://pm.blarass.com/v1/progress?project_id=<project-uuid>" \
-H "Authorization: Bearer <key>"Or from an agent:
{ "tool": "get_project_progress", "arguments": { "project_id": "…" } }The dated view (timeline)
curl "https://pm.blarass.com/v1/roadmap?project_id=<project-uuid>&from=2026-09-01&to=2026-10-31" \
-H "Authorization: Bearer <key>"Milestones ordered by target_date (undated last), each with total_tasks / done_tasks / progress_pct — a ready-made status table for stakeholders.
Recipe: weekly status update
- Pull
/v1/progress?project_id=…— the roll-up. - Pull
/v1/tasks?project_id=…&status=in_progress— what's moving. - Pull
/v1/tasks?project_id=…&assignee=meif reporting narrowly. - Compose the report. If your coding agent is writing the update, it has all three endpoints over MCP already — zero extra integration.
Related: Blockers · Comments workflow