agentsclimarketplace

Decompose task

Skill tlennon-ie/neurodock/.claude/skills/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

Install
npx -y skills add tlennon-ie/neurodock --skill decompose-task

Assembled 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:

  1. Decomposes the goal into 3–12 atomic tasks (hard cap 20).
  2. 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[].
  3. Returns the tasks array plus a rationale paragraph explaining the split.
  4. Does NOT persist anything — the caller is responsible for writing the result to mcp-cognitive-graph (see the record-fact skill) 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 minutes
  • PT3H — 3 hours
  • PT1H30M — 1 hour 30 minutes
  • P1D — 1 day
  • P3D — 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_budget was 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-formatter skill 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.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.