Goal-driven agent coordination engine — Goals → Board → Executor wired to Claude agents, with an MCP catalog, OAuth-aware installer, per-goal MCP scoping, knowledge base, and live chat.
Helix demonstrates solid tool design with clear naming conventions (verb_noun pattern), comprehensive parameter schemas, and detailed descriptions. All 10 tools have explicit JSON schemas with typed properties and descriptions. However, output schemas are not documented, error handling lacks recovery guidance, and some parameter descriptions could be more prescriptive about constraints and formats. The tool set is well-composed with minimal overlap and clear single responsibilities.
Approve a needs_review task — flips it to done, runs verification, spawns onDone chain. Equivalent to the Approve button on the Board.
Create a new task on this goal's board. The task spec must include definitionOfDone; verification defaults to manual. Write the recipe into `description` — that is the prompt body the agent will see. Auto-embeds goalContext. Use `scheduledFor` for tasks that should wait (reminders, delayed follow-ups).
Decline a needs_review task with feedback. Moves it back to backlog with the feedback attached so the agent sees it on the retry.
Permanently delete a task. Use sparingly — history is lost. Preferred alternative for "not doing this" is a decline.
Fetch the current goal — title, status, counts, agent type, context markdown, linked MCPs.
Fetch the full row for one task — payload, definitionOfDone, verification, review history, artifacts. Use before updating or declining.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields without knowing response structure. get_task, list_tasks, get_goal, read_knowledge lack documented return types.
Error handling lacks recovery guidance. Handlers return bare error objects (e.g., {error: 'Task not found'}) without suggesting next steps. LLMs cannot self-correct without actionable error messages.
Parameter constraints under-specified. 'type' in create_task and update_task accepts free-form strings with no enum or pattern. 'priority' accepts numbers 1-5 but lacks min/max constraints in schema. 'scheduledFor' accepts ISO-8601 or relative offsets but format not formally declared.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
List tasks on this goal's board. Use to answer "what's in backlog?", "what needs review?", etc. Returns a compact row per task.
Read a knowledge entry by slug. Returns the markdown. Use to check voice guides, product facts, seeded lists before drafting tasks.
Overwrite this goal's free-form context (markdown or JSON). Use to record decisions, constraints, or learnings that shape future tasks.
Patch fields on an existing task. Cannot set status to done directly — use approve_task or decline_task for lifecycle transitions.
Destructive operations (delete_task) lack confirmation/dry-run pattern. No requiresConfirm flag set; tool auto-executes. Agents can permanently delete tasks without user approval.
Pagination not implemented for list_tasks. Default limit=50 is reasonable, but no cursor/offset or total_count returned. Large boards may require multiple calls; no guidance on how to iterate.