Decompose task
Break a vague goal into 3–12 atomic 5–90 minute tasks with acceptance criteria and dependencies via mcp-task-fractionator. The acceptance bar is "I can start now".From its SKILL.md
npx -y skills add tlennon-ie/neurodock --skill decompose-taskAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.1 KB, as published. Nobody here has run it
decompose-task
Wrapper for the decompose tool on the local mcp-task-fractionator
server. Takes a goal and returns an ordered list of atomic tasks the user
can pick up cold.
Authoritative schema: packages/mcp-task-fractionator/schemas/decompose.schema.json.
Design rationale: docs/decisions/0003-task-fractionator-tool-design.md
("goblin-style" decomposition; acceptance bar is I can start this right
now without thinking).
When to use
- The user states a goal that is bigger than a single task ("ship the founding-scope RFC by Friday").
- A planner skill needs structured sub-tasks to schedule.
- The user is staring at a vague item and cannot start.
Do NOT use for:
- Tasks already small enough (a single email reply).
- Strategic planning over weeks/months — this tool caps total estimated_minutes at the decompose-level budget, not a roadmap.
What it does
Calls mcp__neurodock-task-fractionator__decompose. The server:
- Decomposes the goal into 3–12 atomic tasks (hard cap 20).
- Each task gets:
id(UUIDv4),title,description,estimated_minutes(5–90),acceptance_criteria[](≥1),dependencies[](refs to sibling ids),sequence(1-indexed total order),tags[]. - Returns the
tasksarray plus arationaleparagraph explaining the split. - Does NOT persist anything — the caller is responsible for writing
the result to mcp-cognitive-graph (see the
record-factskill) if persistence is desired.
How to invoke
Minimal:
{
"goal": "ship the founding-scope RFC by Friday"
}
With a time budget (ISO 8601 duration — natural language is rejected):
{
"goal": "fix the chronometric idle-status consent bug",
"time_budget": "PT3H"
}
Common time_budget values:
PT30M— 30 minutesPT3H— 3 hoursPT1H30M— 1 hour 30 minutesP1D— 1 dayP3D— 3 days
If the budget cannot fit a credible task list, the server returns
BUDGET_INFEASIBLE rather than silently truncating.
Output shape (excerpt)
{
"tasks": [
{
"id": "c1e4d2a8-7b3f-4f9a-9c1e-2d3a4b5c6d7e",
"title": "Draft the manifesto section",
"description": "Write packages/.../manifesto.md covering ...",
"estimated_minutes": 45,
"acceptance_criteria": [
"File exists at the named path",
"Section headings match plan.md §2"
],
"dependencies": [],
"sequence": 1,
"tags": ["writing"]
}
],
"rationale": "Split into draft, review, publish because ..."
}
The "I can start now" acceptance bar
Per ADR 0003: every returned task must be small enough that an ADHD-prone
user can pick it up cold without further planning. If a task's
description uses words like "consider", "think about", or "explore",
that is the server's bug — the task is not atomic. Surface the issue;
do not paper over it.
Errors
GOAL_REQUIRED— empty goal.GOAL_TOO_LONG— over 500 chars (itself a hyperfocus signal — split the goal first).TIME_BUDGET_UNPARSEABLE—time_budgetwas not ISO 8601.BUDGET_INFEASIBLE— no credible task list fits the budget.ACCEPTANCE_CRITERIA_REQUIRED— internal; means the model produced a task with no criteria. Retry.DEPENDENCY_CYCLE— internal; retry.
Limitations
- Stateless. The task list is gone the moment you discard the response.
Persist via
record-fact(predicate: "depends_on"for the edges) if you want it back tomorrow. - Task estimates are LLM-generated and tend optimistic. The
hyperfocus-formatterskill applies a 1.5x buffer when the user shows distress signals; this server does not. - Cross-response dependencies are not modelled —
dependencies[]references siblings only.
Voice
When showing the task list, lead with sequence 1 — "start here". Do not present the rationale before the tasks; the user wants the next action, not the meta-explanation. Save the rationale for a collapsible follow-up.