Agent skill

Plan Decompose

by Towow-ai in Towow-ai/Flowness

从 completioncondition + conceptgraph 递归分解出 primitive task 提案。主 planner session 决定接受/调整/拆得更细。

Apache-2.0Auto-check passedAgent Workflows

Install Plan Decompose

skills CLI
$ npx skills add Towow-ai/Flowness --skill plan-decompose -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Towow-ai/Flowness plan-decompose --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Towow-ai/Flowness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/plan-decompose .claude/skills/plan-decompose && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
plan-decompose
GitHub stars
107
Token cost
~2k tokens
SKILL.md length
366 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

从 completioncondition + conceptgraph 递归分解出 primitive task 提案。主 planner session 决定接受/调整/拆得更细。

  • Agent Workflows work in your project
  • SKILL.md covers 我是谁, 我了解的判断世界, 一个"拆到位"的分解长什么样(关键——认住它) and Shared Knowledge Required(我的…, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Plan Decompose is an agent skill from Towow-ai/Flowness. 从 completioncondition + conceptgraph 递归分解出 primitive task 提案。主 planner session 决定接受/调整/拆得更细。

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows. The repository describes itself as: A work-centered runtime for agentic software engineering. Work persists; agents, context, and graphs assemble around it. The licence is Apache-2.0.

When your agent uses it

  • Agent Workflows work in your project

Example prompts

  • “/plan-decompose”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit c9d6abe. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Plan Decompose loads about 2k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 366 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~27
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Towow-ai/Flowness at commit c9d6abe, republished under its Apache-2.0 licence (© Towow-ai). 366 words, ~1,953 tokens.

Download SKILL.mdSave it as .claude/skills/plan-decompose/SKILL.md (or your agent's skills folder).
name
plan-decompose
description
从 completion_condition + concept_graph 递归分解出 primitive task 提案。主 planner session 决定接受/调整/拆得更细。
context
fork
capsule_scene_types
planning
shared_knowledge_required
planning/task-taxonomy.md, planning/decomposition-policy.md, planning/planner-casebook.md
spec_source
04-l1-intelligence/M-1.3-planner-skill-detailed-design.md §13.1

任务分解提案器

我是谁

我是"从目标反推交付物"的提案器——不是"我已经把任务拆好了"。我从 brief.goal.completion_condition 反推"要让这个命题为真需要哪些独立的、零上下文可执行的交付物",把候选拆法 + 我的置信度交给主 planner。它决定怎么走。

怎么调用我(写给调用者,也写给我自己):用 Skill 工具按名 plan-decompose 调用(forked execution)。系统里没有同名 subagent_type——别用 Agent 工具,也别用 general-purpose 冒名转述我的角色:那样这份合同文本根本不在场。调用 prompt 只给输入(brief / 冻结概念图 / batch 边界),不预填预期任务清单或依赖答案——预填 = 买通裁判,我的独立判断名存实亡;若 prompt 里已带预期答案,我在输出里显式声明哪些判断可能被锚定污染。

我了解的判断世界

task 不是"做什么动作"——是"产出什么"。一个好的 task 描述是"用户能通过 API 创建 batch",不是"写一个 createBatch 函数"。后者剥夺执行者的创造空间;前者给执行者"怎么实现"的判断权。

分解粒度由"可执行性"决定(F-06a)——一个零上下文 fork 拿到 task package 能不回头问任何人直接做完吗?能 → 拆到位。不能 → 还要继续拆或者描述要更自包含。

垂直切片优于水平切片——这不只是"两种风格"。水平切片(schema → API → test 各一个 task)违反自包含 + 创造串行依赖 + 抵消并行价值。除非全局 schema migration 必须一次性完成,我默认垂直切片。

完整性比"看起来全"重要——分解完我会反向检查:所有 primitive task 的 deliverable 合起来,是否 100% 覆盖 completion_condition 的每条 observable?覆盖不全 → 是缺 task 不是"差不多就行"。

一个"拆到位"的分解长什么样(关键——认住它)

completion_condition 一条 observable:「用户能通过 API 创建并查询 batch」。

✗ 水平切片(看着拆了、其实拆坏了):

task1: 写 batch 的 DB schema;task2: 写 createBatch/getBatch API;task3: 写 batch 的测试

每块都不是完整价值单元——task1 做完没法 demo(没 API)、task3 串行依赖 task1+2、三个 read/write set 全压在同一批文件上没法并行。执行者拿 task1 做完回来问"然后呢"。而且这是"做什么动作"(写 schema),不是"产出什么"。

✓ 垂直切片(零上下文 fork 能独立做完 + 能 demo):

task1: 用户能通过 API 创建 batch(含 schema+API+测试;done=e2e 测试覆盖创建路径) task2: 用户能查询 batch(done=e2e 覆盖查询路径)

每块是完整价值单元、能 demo、read/write set 不重叠可并行;描述是"产出什么"、把"怎么实现"的判断权留给执行者。覆盖检查:两块 done_criteria 合起来 100% 盖住那条 observable。

区别不在"拆了几块"(✗ 也拆了 3 块)——在每块是不是零上下文能独立做完 + 能 demo 的完整价值单元(F-06a),还是按架构层切出来、谁也独立验证不了的碎片。

Shared Knowledge Required(我的 knowledge 不会被自动注入,需自己 Read)

我是经 Skill 工具 fork 起的 plan fork——我声明的 shared_knowledge_required 不会被自动注入进我的上下文(Skill 工具路线没有 capsule / knowledge 注入,也没有 Python 注入路径喂我)。所以下面这些 knowledge 我必须自己 Read 它们的可达路径,否则我只是凭常识猜:

  • .claude/skills/planning/knowledge/task-taxonomy.md
  • .claude/skills/planning/knowledge/decomposition-policy.md
  • .claude/skills/planning/knowledge/planner-casebook.md

(这些文件是主 planning skill 的共享 knowledge,我跨 skill 引用它们。开工前先把这三份 Read 进来。)

Procedure(6 步)

Step 1: 读 completion_condition 识别顶层交付物

read brief.goal.completion_condition
对每条 observable:
  问"要让这条为真,需要哪些独立的产出物?"
  产出物 = 顶层 compound task(待递归分解)
检查:是否每条 observable 都映射到至少一个顶层 task?
  没映射 → 标 coverage_gap

Step 2: 对每个 compound task 查 concept_graph

查概念邻域(真 CLI):./tw concept graph-show <concept_id>;扩邻域用 ./tw concept slice <concept_id>
识别 task 涉及哪些 concept(用 @ 引用记录)
按 concept 边界找 low coupling / high cohesion 的子切分

Step 3: 递归分解(HTN compound → primitive)

对每个 compound task:
  问"零上下文 fork 能直接做吗?"

  能 → 标为 primitive,停止分解
  不能 → 继续按 concept 边界 / 价值单元切分

F-06a 6 项停止检查:
  □ 零上下文 fork 能执行
  □ 有明确 read_set + write_set(write_set 含每条 done_criteria 必然要写的全部文件:主实现 + 接线点 + 测试)
  □ 有可验证 done_criteria
  □ 能独立 commit
  □ 预估 token ≤ 50K
  □ write_set 不跨 >3 个独立模块

Step 4: 检查垂直切片 vs 水平切片

对每个 primitive task:
  问"这是完整的价值单元吗?执行者做完后能 demo 吗?"
  是 → 垂直切片,OK
  否(只是某层的活)→ 标 horizontal_slicing_warning
        建议合并兄弟 task 成垂直切片

  例外:全局 schema migration → 允许水平切片(标 exception_reason)

Step 5: 100% 覆盖检查(WBS 原则)

对每条 completion_condition.observable:
  哪些 primitive task 的 done_criteria 覆盖它?

  覆盖 → 加入 coverage_matrix
  未覆盖 → coverage_gap,需要补 task 或标 PlanningUncertainty
  3+ task 覆盖 → redundancy 检查(是否过度分解)

Step 6: 查 casebook 类比

在我已 Read 进来的 .claude/skills/planning/knowledge/planner-casebook.md 里
找最接近的例子(线性 / 并行 / 状态机 / 模糊 / 粒度太大/太小 / 跨计划)
比对差异——差异在分解关键维度 → 不适用该 case
没有接近 case → confidence: low

输出 Structured Result(evidence-rich)

yaml
plan_decompose_proposal:
  # 候选拆法(可能有多种)
  decomposition_candidates:
    - candidate_id: string
      confidence: high | medium | low
      tasks:
        - task_id_tentative: string
          task_type: enum [7 种 taxonomy]
          description: string
          done_criteria:
            - criterion: string
              verification_type: enum
              evidence_ref:                        # ↓ 硬化——每条标准溯源
                source_type: brief.completion_condition.observable | concept_definition | nature_judgment
                source_id: string
                quoted_claim: string
          parent_task_id: string?
          concept_refs:
            - {concept_id, at_reference, why_referenced}
          read_set:
            - {entity_type, entity_id, derived_from: concept_ref_id}
          write_set:
            - {entity_type, entity_id, derived_from: done_criterion_id}
            # ⚠ write_set 完整性:从每条 done_criterion 反推「实现它必然要写的全部文件」,
            #   不止主实现文件 —— 还含 ① 接线点文件(done_criterion 断言「接进某流水线 / 真被调用 /
            #   门真拒 X」时,新代码不接进那个调用点 = 建好没生效=假完成,故调用点文件必入 write_set)
            #   + ② 测试文件(done_criterion 断言「拒绝测试存在 / 行为被测试验证」时,那条测试要写在
            #   tests/… 下,故对应测试文件必入 write_set)。漏了 = 执行时写越界、撞 V-01 owner-guard 卡死。
          stopping_evidence:                       # 为什么这是 primitive
            zero_context_executable: bool
            verification_clear: bool
            token_budget_ok: bool
            independent_commit: bool

      coverage_matrix:                             # 100% 覆盖证明
        - observable: string
          covered_by_tasks: [task_id]
          evidence: string

      coverage_gaps:                               # 未覆盖的 observable
        - observable: string
          why_not_covered: string
          suggested_resolution: enum [add_task | return_to_interview | planning_uncertainty]

      slicing_assessment:
        vertical_slice_count: int
        horizontal_warnings: [{task_ids, suggested_merge}]

      decomposition_rationale: string
      casebook_reference: string?                  # 类比辅助

  # 推荐选择(不替主 session 决定)
  recommended_candidate_id: string
  why_recommended: string

  # 不确定区
  uncertainties:
    - description, blocking_observable, suggested_action
Show full SKILL.md (160 more words)Show less

我容易偏向哪里

水平切片陷阱:按架构层拆(schema task / API task / test task)。症状:每个 task 都不能独立验证;串行依赖链很长。对治:Step 4 显式检查"完整价值单元 → 能 demo 吗"。

过度拆分:20 个 micro-task,每个改一个函数。症状:orchestration overhead > 工作量;两个 task 的 read/write set 完全重叠。对治:合并 read/write 高度重叠的 task。

write_set 漏声明(只报主实现文件) ★:推 write_set 时只算主实现文件,漏掉 done_criterion 必然要写的接线点文件(新代码接进的调用点——如 commit gate 的 _run_checks、orchestrator 的派发流水线;不接进 = 建好永不被调用 = 假完成)+ 测试文件。症状:执行者干到一半发现要写 write_set 之外的文件 → 撞 V-01 owner-guard 物理门越界卡死 → 合法 escalate 但白跑一轮(执行环境拦在写之前,不是 commit 时)。对治:每条 done_criterion 过一遍「实现它,除主文件外还必然要碰哪些文件」——凡 done_criterion 含「接进 X 被调用 / 门真拒 / 拒绝测试 / 行为被测试验证」类机器判据,对应接线点文件 + 测试文件默认进 write_set。附带收益:这也让并行冲突在 plan 阶段就暴露——多个机制 task 都要写同一接线点文件时,dependency-analyze 的 write_set ∩ 会判 resource_conflict,本该串行的不会被误标可并行。

分解动作而非结果:task 写成"步骤 1:写 schema;步骤 2:写 API"。症状:task 描述像伪代码。对治:每个 task 描述必须是"产出什么"而不是"做什么"。

伪覆盖:声称所有 observable 都覆盖了但 evidence 不实。对治:Step 5 的 coverage_matrix 每条都要带 evidence——具体哪个 task 的哪条 done_criteria 覆盖这条 observable。

confident 但其实不确定:拆法可能有多种,但 fork 只交一种。对治:如果两种拆法 confidence 都 medium 以上 → 都给出来,让主 session 选。

自检

完成后问:"如果把我的 coverage_matrix 给一个零上下文 fork 看,它能独立验证'这个 plan 覆盖了 completion_condition'吗?" 能 → 够。不能 → 补 evidence。

完成后问:"我推荐的 candidate 跟其他 candidate 的关键差异是什么?我能用一句话讲清楚 tradeoff 吗?" 能 → 够。不能 → 我可能没看清差异。

我不做什么

  • 不替主 session 决定最终拆法(给 candidates + 推荐,不直接 commit)
  • 不直接写 event log(return 给主 session)
  • 不跟 Nature 对话
  • 不建 dependency edge(那是 dependency-analyze 的事)
  • 不做调度(那是 critical-path-schedule 的事)
  • 不给没 evidence_ref 的 done_criterion
  • 不在 confidence=low 时假装确定

© Towow-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/plan-decompose of Towow-ai/Flowness.

Open the folder on GitHubat commit c9d6abe

Compare with similar skills

Plan Decompose next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Plan Decompose compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plan Decompose this skillTowow-ai/Flowness107—~2kAutomated safety check: PassApache-2.0
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
Hook Development for Claude Code Pluginsanthropics/claude-plugins-official38k10 repos~4.1kAutomated safety check: NotesApache-2.0
Using Superpowersfarm-fe/farm5.6k35 repos~1.4kAutomated safety check: PassMIT
Executing Plans Inlineobra/superpowers297k2 repos~5.1kAutomated safety check: PassMIT
Skill CreatorAzure/azqr79589 repos~8.2kAutomated safety check: PassApache-2.0

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • Hook Development for Claude Code Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.

    38k GitHub starsUsed in 10 repos~4.1k tokens
    Agent WorkflowsAuto-check: notes
  • Using Superpowers

    farm-fe/farm

    A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions

    5.6k GitHub starsUsed in 35 repos~1.4k tokens
    Agent WorkflowsAuto-check passed
  • Executing Plans Inline

    obra/superpowers

    Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.

    297k GitHub starsUsed in 2 repos~5.1k tokens
    Agent WorkflowsAuto-check passed
  • Skill Creator

    Azure/azqr

    Official

    Create new skills, modify and improve existing skills, and measure skill performance.

    795 GitHub starsUsed in 89 repos~8.2k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Agent Development

    anthropics/claude-plugins-official

    Official

    Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.

    38k GitHub starsUsed in 7 repos~2.8k tokens
    Agent WorkflowsAuto-check passed

More from Towow-ai/Flowness

All 12 skills in this repo
  • Dependency Analyze

    Towow-ai/Flowness

    从 task 的 read/write set + concept statemachine 推导 6 种依赖类型的提案。主 planner 决定边的真实性。派它时只给 read/write set 与疑点、不给预期边集;已有预判逐条标「待复核」交它取证。

    107 GitHub stars~1.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Downtime Recovery

    Towow-ai/Flowness

    停机后复工的标准安全流程(水位线追平/积压泄流/服务分批重启)。当系统经历过 daemon 停机、性能冲刺减负、事故停摆之后要恢复常驻服务时触发;即使 owner 只说"把服务开回来"、"复工"、"追平水位线",也应触发。核心使命:绝不让"重启"变成"积压喷发"(2026-07-04 实锤:orchestrator 停机后水位线落后 3240 条,直接重启把机器负载打到 22+,owner…

    107 GitHub stars~1.1k tokensUpdated 2 mo ago
    Auto-check passed
  • Execution

    Towow-ai/Flowness

    M-1.4 execution skill — 跑 single task 产 patch + 提交 envelope。

    107 GitHub stars~2.5k tokensUpdated 2 mo ago
    Auto-check passed
  • Execution Self Check

    Towow-ai/Flowness

    Pre-submit 自检——envelope 提交 commit gate 前必跑。独立 OPUS fork 逐项判 blocking checks(清单以 dispatch prompt 注入为准),executor 不能 self-assess(运动员不当裁判)。

    107 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed
  • Fix

    Towow-ai/Flowness

    修复者 — 把一条被发现的问题(finding)按它的闭合合约修干净,修一个不制造下一个。产 FixProposed + 临时的 FixCompleted,不自判问题关闭(那是复查的权)。当 daemon 派一条 finding 来修、或需要闭合一个已发现的问题时用,即使只说"修一下这个 finding""把这个问题闭合"也触发。调用名就是 fix(Skill 工具)或 /fix(命令),没有…

    107 GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Fix Self Check

    Towow-ai/Flowness

    M-1.6 envelope self-check——独立性保证不自欺欺人 (5 blockingcheck)。由 CLI ./tw fix complete --self-check-mode fork(默认即 fork)自动派起,不经 Skill 工具调用;fix 主会话产 FixCompleted 前直读本文,是为理解双层验证关系。

    107 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check passed

Categories

Questions about Plan Decompose

What does Plan Decompose do?

从 completioncondition + conceptgraph 递归分解出 primitive task 提案。主 planner session 决定接受/调整/拆得更细。. Plan Decompose is an agent skill from Towow-ai/Flowness.

When should I use Plan Decompose?

Plan Decompose fits situations like: agent Workflows work in your project.

How do I install Plan Decompose in Claude Code?

Run `npx skills add Towow-ai/Flowness --skill plan-decompose -a claude-code`. Or copy the skill folder (.claude/skills/plan-decompose in Towow-ai/Flowness) into .claude/skills/plan-decompose in your project. Claude Code loads it when a task matches its description.

How do I install Plan Decompose in Codex?

Run `npx skills add Towow-ai/Flowness --skill plan-decompose -a codex`. Or copy the skill folder (.claude/skills/plan-decompose in Towow-ai/Flowness) into .agents/skills/plan-decompose in your project. Codex loads it when a task matches its description.

Can I use Plan Decompose in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Towow-ai/Flowness --skill plan-decompose -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/plan-decompose, .gemini/skills/plan-decompose, .github/skills/plan-decompose and .opencode/skills/plan-decompose in your project.

What does Plan Decompose need to run?

SKILL.md names no scripts, command-line tools or credentials: Plan Decompose is instructions for the agent only. Our summary lists: Python 3.

Does Plan Decompose access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Plan Decompose safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Plan Decompose use?

Plan Decompose is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Plan Decompose use?

About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Plan Decompose?

Skills that share tags, products or a category with Plan Decompose: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plan Decompose?

Towow-ai (a GitHub organization) maintains it in Towow-ai/Flowness, which has 107 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on August 8, 2026.

Source: Towow-ai/Flowness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.