一键导入
plan-work
Decompose a chunk of the approved plan into a forward-only DAG of phases and tasks, write it to plan.edn, return a compact summary
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Decompose a chunk of the approved plan into a forward-only DAG of phases and tasks, write it to plan.edn, return a compact summary
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Review dimension for naming, idiom, comment debt, and AI tells against the codified per-language and prose standards. Invoked by reviewer agents over one module shard.
Recipe for writing C in the runtime, module placement and the ownership and control-flow discipline. Invoked by writer agents when a C unit is dispatched.
Recipe for writing Clojure, Functional Core / Imperative Shell at the function level (namespaces by domain), native wrappers, and the boundary discipline. Invoked when writing Clojure for the project.
Recipe for writing Elixir, pure functions in modules as the core and GenServer plus OTP as the shell, supervision trees, and NIF discipline for the C and Zig edge. Invoked when writing Elixir for the project.
Recipe for any English the agent produces in this project, commits, comments, docstrings, ADRs, design docs, skill bodies, changelog, error messages, project guides. Optimizes for terse, humanized prose with no em dashes and no AI tells. Invoke for any prose-writing activity.
Recipe for writing Zig, native bodies and edge wrappers, the allocator and lifetime discipline, and the hot-path rules. Invoked when writing or editing any Zig source.
| name | plan-work |
| description | Decompose a chunk of the approved plan into a forward-only DAG of phases and tasks, write it to plan.edn, return a compact summary |
| user-invocable | false |
Role: the planning specialty advance-plan dispatches before it drives.
Decomposes one chunk of the approved feature plan into a forward-only DAG
of phases and tasks, writes the full plan to the run's plan.edn, and
returns a compact summary. The big plan lives on disk; only the summary
rides back in context. It plans; it does not write source or dispatch
other agents.
Input: a named chunk of the approved feature plan, plus the run slug.
Output: the full plan at ~/.agentic-sdk/<project>/runs/<slug>/plan.edn and a
compact summary returned to the caller.
Read skills/shared/references/orchestration.md before planning; its
laws bind this work. Four applications matter here:
plan.edn, never into the return. The return is the phase list, the
task counts, the critical path, and the conflicts, nothing more. A
planner that returns the full plan defeats the reason it runs in a
sub-agent.:desc and the plan's :notes, and plan the task to settle it. Do
not stall on an open choice; the plan records the decision and moves
on.:done names check-security and the relevant verify lanes, not a
gate bolted on at the end.Assess what is landed. Do not trust the feature plan to tell you where the project is; read the ground truth:
jj log -r 'latest(::@, 40)' (or jj log over the repo) for the
commit history. The category-first messages map to the plan's
planned-commit lists; match them to see which slices and commits
already landed.~/.agentic-sdk/<project>/project.edn)
and the module subtrees on disk for which modules exist; the test
suites for which tests exist. A slice is landed when its modules
and its owning tests are present and its planned commits show in
the log, not when the plan lists it.:adr; treat a missing index as
[]) for decisions the chunk touches. A task that would contradict
an ADR is a conflict: record it in the plan's :notes and plan
around the ADR, never plan to violate it.Pick the chunk in dependency order. Take the chunk the caller
named. Confirm every dependency of every slice in it is landed, using
the feature plan's dependency graph. Never plan a phase whose
dependencies are not landed. If a named slice has an unlanded
dependency outside the chunk, record the gap in :notes and plan
only the runnable part.
Decompose into a forward-only DAG.
:id, a :title, its :deps
(phase ids that must land first), and its :tasks. Order phases
topologically so work flows one direction.For each task, name all fields:
:commit - the planned commit message, category-first per
write-commit (single line, capitalized, imperative, within 70
characters, no trailing period). Draw from the slice's
planned-commit list where one fits; author a new one in the same
form where the decomposition needs it.:agent - the specialist that executes it: writer for code and
tests, reviewer for a review pass.:skill - the recipe that specialist applies:
write-c, write-zig, write-clj, or write-elixir for the
active language (pure core, imperative shell, native wrappers)write-ui for view-spec, layout, hit-test, widget, and renderer
surfaceswrite-tests for any test layer (unit, property,
bounded-exhaustive, edge-value, negative-space, boundary fuzz,
integration and lifecycle, end-to-end)check-* recipe for a reviewer task (check-security,
check-correctness, check-performance, check-portability,
check-memory, and the rest of the active dimensions):deps - the task ids (and phase ids) that must land first. Tests
that state a spec land before the implementation that flips them
green; a wrapper lands before the test that calls real native code
through it.:done - the definition of done: which test layers from
references/pyramid.md prove the task, plus check-security and
the verify lanes where untrusted input or a native edge is
involved. Be specific: name the layers and lanes, not "tests
pass".Order so work flows one direction with minimal work in progress and no backtracking. A phase's last tasks are its verification and coverage floor.
Write plan.edn. Write the full plan to
~/.agentic-sdk/<project>/runs/<slug>/plan.edn (create the directory). This is
the ephemeral resume and execution artifact: ~/.agentic-sdk/<project>/runs/ is
gitignored; never commit it; it is never the hand-off medium (the
return is). The shape:
{:campaign "<slug>"
:chunk "the named chunk from the feature plan"
:assessed {:landed ["the slices and spikes already on the tip"]
:modules ["the module paths from project.edn"]
:adrs ["ADR titles the chunk touches"]}
:critical-path ["p1" "p2" "p4" "p7"]
:phases
[{:id "p1"
:title "Module scaffolding and deps"
:deps []
:tasks
[{:id "t1"
:desc "Add module paths and deps for the slice"
:commit "Scaffold: Add module paths and deps for the slice"
:agent "writer"
:skill "write-clj"
:deps []
:done ["cheap lane green"]}
{:id "t2"
:desc "Native body and wrapper for the decode edge"
:commit "Feat: Add native decode body and wrapper"
:agent "writer"
:skill "write-zig"
:deps ["t1"]
:done ["cheap lane green" "check-security" "leak lane"]}
;; ...
]}
;; ...
]
:notes ["an open choice the plan settled, recorded for the campaign"]}
Field contract: each phase has :id :title :deps :tasks; each
task has :id :desc :commit :agent :skill :deps :done.
:critical-path is the longest dependency chain by task id.
:assessed records what step 1 found. :notes holds open choices
made, ADR conflicts, and deferred work.
Return the compact summary only. Never return the full plan. Return:
<id> <title> - <task-count> tasks, deps <ids>no conflictsThe campaign holds this; the full plan stays on disk for the change-runners to read per phase.
Owns decomposing a chunk into a forward-only DAG and writing plan.edn.
change-runner owns executing one phase of that plan end to end. Does
not edit source; writer and editor do. Does not dispatch other
agents; advance-plan drives the campaign.
Return contract: the compact summary (one line per phase, totals,
critical path, conflicts or deferrals), then
PLAN ~/.agentic-sdk/<project>/runs/<slug>/plan.edn.
~/.agentic-sdk/<project>/artifacts/planning/tasks/
(dependency graph, deliverables, planned-commit lists, per-slice test
layers).skills/shared/references/orchestration.md (context as budget,
forward-only DAG, autonomy, the campaign flow this planner feeds).skills/shared/references/pyramid.md (the test taxonomy :done
fields name).verify-lanes; the write-<lang>, write-ui, and write-tests
recipes; the active check-* dimensions (what :done and :skill
fields cite).record-decision, for an open choice the plan settles that proves
architectural.