用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill plan-decompose命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | plan-decompose |
| description | > Use when this capability is needed. |
Last updated: DATE
Convert an approved plan.md into a set of task files that another agent
(or a future you) can execute one at a time without re-reading the whole
plan each time.
Given docs/ephemeral/plans/<plan-dir>/plan.md, produce:
<plan-dir>/tasks/backlog/NN-<short-name>.md — one file per task<plan-dir>/tasks/done/ — empty directory (tasks move here when finished)<plan-dir>/tasks/README.md — dependency DAG, task table, workflowEach task is self-contained: the executor should only need the task file plus the referenced plan lines, never the whole plan.
docs/development-workflow.md).Required:
plan.md (or the directory containing it).Optional:
<plan-dir>/tasks/backlog/<plan-dir>/tasks/README.md<plan-dir>/tasks/done/Use Read on the plan top-to-bottom. Never decompose from a summary. Every
task must cite exact line numbers in the plan, and only a full read gives
you those.
Look for these structural signals, in order:
Phase 1, Phase 2a,
Change 4b. These usually map 1:1 to tasks.A single-phase plan with one cohesive change becomes one task. Do not fragment a five-line fix into three tasks just to hit a count.
Size heuristic: context-window fit, not wall-clock time. A good task is one that can be implemented end-to-end inside a single ~150K-token context window — meaning the executing agent can hold, at the same time:
If the combined footprint would blow past ~150K tokens, the task is too big — split it. Typical splits: separate data model from consumers, separate loader from rules, separate code change from deploy + verify, separate config/rule additions from the engine code that evaluates them.
Conversely, if two adjacent tasks together are comfortably under the budget and share most of the same files and tests, merge them — two overhead-heavy tasks are worse than one cohesive one.
When in doubt, estimate: count edited source files × rough LOC, plus test files × rough LOC, plus the cited plan range. If that number is already more than a third of the budget before the agent even starts reasoning, split.
For each task, identify which other tasks must complete first. Common reasons:
Dependencies go into the task file's **Dependencies:** line and into
the tasks/README.md dependency DAG.
Keep dependencies minimal. Over-serializing the graph blocks work that could have run in parallel. Config-only or doc-only tasks rarely depend on anything.
Hard rule — serialize generator and dependency-mutating tasks.
Per-task worktrees (see
workflow-management.md)
isolate normal source edits, but some operations are globally ordered
and unsafe to parallelize even with isolation. The project's exact
serialize-true signal list lives in
docs/workflow-management.md —
consult it and adjust per the stack.
Common families (fill in concrete examples for your stack):
| Family | Serialize because |
|---|---|
| Code generators (IDL stubs, ORM models, schema-derived code) | Generated files diverge silently across parallel worktrees. |
| Migration revisions | Each worktree picks the same "next" revision; second commit lands with a wrong parent, no conflict to catch it. |
| Dependency manifest / lockfile edits | Package-manager caches and virtualenvs are often shared across worktrees; parallel installers corrupt them. |
Tag such tasks with serialize: true plus explicit upstream and
downstream edges so the orchestrator runs them solo in the main
checkout. If two tasks both need the same generator run, merge them
or split the generator step into its own task both depend on.
Emit a **Likely files:** line in the task header. This is a
scheduling hint, not a contract — the executor is bound by In
scope, not this list, and the orchestrator only uses it to bias
pairing (prefer disjoint file sets per round).
Valid values: a list of concrete paths the plan names, or the literal
unknown (common and preferred) when the file set only becomes clear
after reading the code. Empty = unknown. Never guess — an inaccurate
hint is worse than an absent one because the orchestrator schedules
against it.
For every task, apply the project's test-authoring contract (see
docs/how-to-write-tests.md):
TestXxx_Foo with a test number),
copy the numbers and names verbatim — that is the contract between
plan and task.docs/how-to-run-tests.md.If the plan has a "Documentation Updates" section, split it per task. If
not, infer from the change surface using the project's Documentation Map
in CLAUDE.md. Common signals:
| Change signal | Doc to update |
|---|---|
| New source file | docs/source-map.md |
| New build target / command | CLAUDE.md (Build Commands) |
| New config / rule / schema | project-specific reference doc |
| New subsystem / behavior | docs/architecture.md |
| New gotcha / foot-gun | docs/gotchas.md |
| New deploy step / env var | docs/deploy-playbook.md |
| New API endpoint / field | docs/api-reference.md |
| New test file or tier | docs/testing.md + docs/how-to-write-tests.md |
| Security-relevant change | docs/security.md |
Use the template in references/task-template.md.
Every field is required unless the template marks it optional. No "see
plan for details" handwaves except for the exact plan line range.
Naming: NN-<kebab-short-name>.md where NN is two-digit zero-padded
and matches execution order (01, 02, 03...). Keep names short but
unambiguous: 03-ring-buffer-size-bump.md beats 03-phase2b.md.
Optional context packs. For any task a fresh
task-executor subagent would not be
able to finish from the task file + cited plan lines alone, also emit a
sibling backlog/NN-<name>.context.md file and reference it from the
task's header block. The pack is a focused starter context, not a
dump. Include only what the executor legitimately cannot re-derive
cheaply on its own:
Do not put into a context pack:
Grep in under a minuteCLAUDE.md or architecture.mdConfig-only and trivial tasks almost never need a context pack. Multi-file refactors, tasks with non-obvious cross-references, and final E2E tasks usually do. When in doubt, skip it — the orchestrator can always write one at spawn time.
Use the template in references/readme-template.md.
It must include:
# | Task | Phase | Priority | StatusBefore declaring done, delegate the full set of task files to the pragmatic agent and ask it to stress-test:
Apply the agent's feedback before finishing. Do not ship a task set the pragmatic agent has objections to.
Every file in tasks/backlog/ follows the template in
references/task-template.md. The
mandatory sections are:
# Task NN: <Short Title>serialize: true|false (default
false; set true for generator / dep-mutating tasks per Step 3),
and Likely files: hint per Step 3.5 (explicit file list or the
literal unknown).See references/readme-template.md.
The task set passes only when all of these are true:
docs/how-to-run-tests.md.serialize: true. Every
generator-run and manifest-edit task has the tag and an explicit
ordering dependency. No such task is buried inside a "normal"
implementation task.unknown). Every task has
a Likely files line. A guess is worse than unknown.When done, report (under 200 words):
tasks/README.mddocs/workflow-management.md —
plan/task decision rules this skill implementsdocs/how-to-write-tests.md —
test-design contract every task must honor.claude/agents/pragmatic.md — review agent
that must approve the task set before declaring donereferences/task-template.md — exact task
file structure with placeholdersreferences/readme-template.md — exact
tasks/README.md structureSource: extractumio/extractum-skills — distributed by TomeVault.