TaskMajor MCP. Coordinate your tasks. Execute with precision.
TaskMajor demonstrates solid naming conventions (verb_noun pattern across all 28 tools) and comprehensive descriptions (avg ~150 chars, well above 10-char minimum). However, critical gaps emerge: input schemas are present but lack detailed type information for complex objects (UdaConfig, ContextDTO, TaskQueryFilters, TaskInputDTO are referenced but not expanded with field-level schemas); parameter descriptions are generic ('A UdaConfig object specifying...' without field details); output schemas are entirely undocumented; error handling is basic (generic fail/ok wrappers without recovery guidance); and no tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. The codebase shows good intent (whitelist-based registration, structured DTOs) but falls short of production-grade tool definition quality. Baseline: 549 production tools average 194-char descriptions and 100% have documented return types, TaskMajor has descriptions but no return schema documentation.
[ALWAYS] Create via task_input; use Inbox if unsure and resolve dates first. Prompt: capture_workflow.
Define or update a User Defined Attribute (UDA). Args: uda_config: A UdaConfig object specifying name, uda_type, label, and optional default/values. Returns: Confirmation or error message.
Create or update a TaskWarrior context. A context is a named filter applied globally to all task queries. The filter is applied to both read and write operations. Args: context: A ContextDTO object specifying name, read_filter, and write_filter. Returns: Confirmation or error message.
Delete a TaskWarrior context. Args: name: Name of the context to delete. Returns: Confirmation or error message.
[CRITICAL] Soft-delete only mistakes or duplicates, not completed work. Prompt: capture_workflow.
Delete a User Defined Attribute (UDA). ⚠ Warning: deleting a UDA will discard its value on all existing tasks. Args: name: The UDA key to delete. Returns: Confirmation or error message.
Complex object parameters (UdaConfig, ContextDTO, TaskQueryFilters, TaskInputDTO) lack field-level schema documentation. LLMs cannot infer which fields are required, their types, or valid values.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., task_id from add_task result). Baseline: 100% of A+ tools document return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Agents cannot distinguish safe from dangerous operations without explicit hints.
Error handling uses generic fail/ok wrappers without recovery guidance. Errors like 'Failed to define UDA' do not tell LLMs what to do next or whether to retry.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Mark finished work done; use delete_task only for mistakes or duplicates. Prompt: capture_workflow.
[CRITICAL][MANUAL ONLY] Alias of sync; use only after user confirmation. Prompt: sync_workflow.
Return the current TaskWarrior configuration: timezone and UDAs. Use this to inspect the current setup before making changes.
[ALWAYS] List projects before inventing a new name. Prompt: organization_guide.
Summarize counts by status, project, and priority for dashboards or reviews. Prompt: review_workflow.
[ALWAYS] List tags before inventing one; +@ tags are contexts. Prompt: context_tags.
Fetch one task with full details before edit, done, or delete. Prompt: capture_workflow.
List UDAs before setting custom fields; check whether energy exists. Prompt: energy_uda.
List all defined TaskWarrior contexts and indicate which is active. Returns: dict with 'active' (str|None) and 'contexts' (list of {name, read_filter, write_filter, active}).
Pick the next actionable task from pending work; filter when needed. Prompt: capture_workflow.
Search tasks by project, priority, status, due date, or tags; prefer +@ tags over native contexts. Prompts: organization_guide, context_tags.
[ALWAYS] Log unexpected tool failures with exact args and error text. Prompt: error_reporting.
[ALWAYS] Resolve any add/update date before saving; catches risky syntax. Prompt: date_syntax.
Activate a TaskWarrior context. All subsequent task queries will be filtered by this context. Args: name: Name of the context to activate.
Set the timezone in the configuration. Args: timezone: IANA timezone name (e.g. 'Europe/Paris', 'America/New_York', 'UTC'). Returns: Confirmation message.
Start the one task you are actively doing; stop it when switching. Prompt: capture_workflow.
Stop the active task when pausing or switching work. Prompt: capture_workflow.
[CRITICAL][MANUAL ONLY] Sync only after user confirmation; never auto-call. Prompt: sync_workflow.
[ALWAYS] Check sync health and configuration before any manual sync. Prompt: sync_workflow.
Deactivate the current TaskWarrior context. Queries will no longer be filtered.
[ALWAYS] Update via task_input; change at least one field and resolve dates first. Prompt: organization_guide.
[ALWAYS] Validate user-supplied dates before add/update. Prompt: date_syntax.
Pagination parameters (limit, offset) present in query_tasks but no total_count or next_cursor returned. Large result sets risk context window exhaustion.