NeuroDock Task Fractionator

io.github.tlennon-ie由 GitHub 账号 tlennon-ie 发布v0.1.0更新于 Oct 24, 2026

Decompose a vague goal into atomic 5-90 minute tasks and surface the next safe action.

概览

AI 生成的概览

把模糊目标拆解为 5 至 90 分钟的原子任务,并选出下一步该做的唯一动作。

可以做什么
通过 stdio 提供两个工具。decompose(goal, time_budget?) 把一段自然语言目标拆成 5 至 90 分钟的原子任务,每个任务至少带一条验收标准、按依赖排序的序号和一组标签;该工具无状态,只返回列表而不保存。next_one(project) 只返回一个任务,附带简短理由和 0 到 1 之间的置信度,选取依赖均已完成的序号最小者。拆解在本地启发式完成,服务器内部不调用大模型。
适用场景
适合把庞大或模糊的计划转成具体、限时的步骤,并且用户只想要一个明确的下一个动作而不是完整计划时。适用于本地单用户流程,由调用方自行保存生成的任务。
运行要求
以 Python 包形式在本地通过 stdio 运行,用 uvx 启动。未声明任何认证、环境变量或请求头。next_one 从可插拔的任务源读取待办任务:默认的内存源需要调用方预先填充,图存储源目前只是占位实现并总是失败。可选环境变量 NEURODOCK_TASK_SOURCE 用于选择 memory 或 graph。
安装前请注意
next_one 依赖待办任务源:默认内存源只在进程内存中保存任务,使用前必须填充;图存储选项在当前版本总是抛出 COGNITIVE_GRAPH_UNAVAILABLE。decompose 无状态,调用方不保存就没有任何记录。目标文本和项目名被视为敏感数据且不会被记录日志,但该服务器是开发者预览版(v0.0.3),并明确说明仅支持内存模式。

安装

在 SourceWeft 中

  1. 打开 控制台中的 NeuroDock Task Fractionator,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

neurodock-mcp-task-fractionator

Local-first goal decomposition and single next-action selection, exposed as an MCP server.

Tools

decompose(goal, time_budget?)

Local-heuristic decomposition into atomic 5–90 minute tasks. Every task carries at least one acceptance criterion, a dependency-sorted sequence number, and a small bag of tags. Stateless: the server returns the list and does not persist it. Persistence is the caller's job via mcp-cognitive-graph.

  • goal — 5..500 character plain-language goal. Never logged.
  • time_budget — optional ISO 8601 duration (PT4H, P3D, PT2H30M). Unparseable input returns TIME_BUDGET_UNPARSEABLE. P3D is treated as 3 working blocks of 4 hours, not 72 hours, per ADR 0003 §3.

Errors: GOAL_REQUIRED, GOAL_TOO_LONG, TIME_BUDGET_UNPARSEABLE, BUDGET_INFEASIBLE, DEPENDENCY_CYCLE, ACCEPTANCE_CRITERIA_REQUIRED, DECOMPOSITION_UNAVAILABLE.

next_one(project)

Returns exactly one task — the single thing the user should do next — with a short reasoning paragraph and a confidence score in [0, 1].

  • project — 1..120 char project name (case-sensitive, no fuzzy match).
  • Pending tasks are read from a pluggable PendingTaskSource.
  • Selection: lowest sequence whose dependencies are all already complete in the pending set.

Errors: PROJECT_REQUIRED, NO_TASKS_AVAILABLE, ALL_TASKS_BLOCKED, COGNITIVE_GRAPH_UNAVAILABLE.

Quick start

bash
# From the repo rootuv syncuv run pytest packages/mcp-task-fractionator/tests/ -v
# Run the server over stdio (the MCP transport):uv run neurodock-mcp-task-fractionator

In-memory-only next_one (v0.0.3 caveat)

next_one reads pending tasks from a PendingTaskSource. v0.0.3 ships two implementations:

  • InMemoryPendingTaskSource — default, used by tests. Holds tasks in process memory. Build the server explicitly with this source and seed it before calling next_one:

    python
    from neurodock_mcp_task_fractionator import (    InMemoryPendingTaskSource, build_server,)
    source = InMemoryPendingTaskSource()source.add("founding-scope-rfc", [task_1, task_2, task_3])server = build_server(source=source)
  • CognitiveGraphPendingTaskSource — Phase 2 stub. Always raises COGNITIVE_GRAPH_UNAVAILABLE. Real wiring lands once the mcp-cognitive-graph Python client ships.

Selection via env var: NEURODOCK_TASK_SOURCE=memory|graph (default memory). Unknown values fall back to memory rather than crashing.

Privacy

Per ADR 0003 §7 the goal text and project name are treated as sensitive user data:

  • No remote calls. No LLM call inside the server.
  • Goal text is never logged at any level.
  • Validation errors reference field names, not user content.
  • The rationale paragraph is built from recognised vocabulary tokens only; it never embeds the user's original goal text verbatim.

A test (test_decompose.py::test_rationale_does_not_contain_goal_text) encodes the privacy invariant.

Development gates

bash
# Lint + format checkuv run ruff check packages/mcp-task-fractionator/uv run ruff format --check packages/mcp-task-fractionator/
# Strict type checkuv run mypy --strict packages/mcp-task-fractionator/src/
# Testsuv run pytest packages/mcp-task-fractionator/tests/ -v

All four must pass before a PR is mergeable.

Pointers

  • Architecture rationale: ADR 0003 — task-fractionator tool design.
  • The five-principles manifesto this server has to honour: MANIFESTO.md.
  • Sibling servers: mcp-chronometric (time, idle, breaks) and mcp-cognitive-graph (persistent state — where pending tasks will live).

来源:packages/mcp-task-fractionator/README.md,提交 2d9cac6

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分