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 分