The server provides 8 well-named, verb-first tools with structured schemas and clear descriptions. Most parameters have types and descriptions, and tool annotations (destructiveHint, readOnlyHint) are present. However, several parameters lack descriptions, some schemas are incomplete (missing required field on optional params), output schemas are not documented, and error handling guidance is minimal. The task-matching logic via substring/ID hybrid is clever but not fully explained. This is solidly Fair-to-Good (upper-C/lower-B territory), better than median community servers but with clear gaps preventing A-tier status.
Add a new task under a priority heading
Claim a task by stamping it with an agent identity
Remove a completed task block from TASKS.md
Append research notes to a blocked task
Pick the next task across configured or listed workspaces
List tasks from TASKS.md with optional filters
Pick the highest-priority unblocked task or target one
Output schemas not documented. Tools return task objects or lists, but LLM has no schema for the response structure (fields, types, nested objects). This forces the LLM to infer output shape and risks misinterpretation of chained results.
Query parameter behavior (task ID vs substring matching priority) not fully explained. The description 'Task ID or summary substring to match. Exact IDs win before summary matches.' is terse. LLMs may not understand fallback behavior or how to handle ambiguous matches.
No error handling guidance. Tools likely fail on malformed queries, missing files, or conflicting claims, but error responses are not documented. LLM cannot distinguish retryable vs fatal errors or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Remove a stale agent claim from a task line
Parameter descriptions missing or incomplete for optional fields. E.g., 'task_id' in pick_task says 'Exact **ID** metadata value to target' but doesn't explain what happens if the ID doesn't exist, or whether omitting it enables fallback to tag/priority logic.
add_task has many optional fields with no guidance on defaults or mutual exclusivity. E.g., if 'files' and 'acceptance' are omitted, what does the output task look like? Are they mutually exclusive with 'details'?
No pagination support on list_tasks or find_next_task_across_workspaces. If a workspace has hundreds of tasks, the entire list is returned, blowing the context window and risking OOM or timeouts.