원클릭으로
planning
Decompose a confirmed contract into an atomic task DAG with wave ordering. Every task cites one or more contract criterion ids.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Decompose a confirmed contract into an atomic task DAG with wave ordering. Every task cites one or more contract criterion ids.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | planning |
| description | Decompose a confirmed contract into an atomic task DAG with wave ordering. Every task cites one or more contract criterion ids. |
This skill produces anvil/plan.yml as a task DAG with wave ordering. An atomic task is one that produces one diff that one Verify pass can score. Every task names the contract criterion id(s) it is accountable for; tasks without citations are invalid and do not execute. Waves are topologically sorted: a task in wave k depends only on tasks in waves strictly less than k.
Invoking the Anvil CLI: the CLI is cli/anvil.js inside the plugin directory, NOT on PATH. Use node "$CLAUDE_PLUGIN_ROOT/cli/anvil.js" <subcommand> ... for every invocation.
Invoked by the orchestrator after anvil/contract.yml is confirmed. Not invoked from user prompts directly. If the contract is edited after the plan is written, this skill is re-invoked to regenerate the plan from scratch.
Steps 1 and 4 run in the orchestrator's main thread. Steps 2 and 3 (decomposition + YAML authoring) are dispatched to a fresh subagent. The orchestrator holds only the confirmed contract and the written anvil/plan.yml file. It never holds the decomposition reasoning.
anvil/contract.yml exists and validates (node "$CLAUDE_PLUGIN_ROOT/cli/anvil.js" contract --validate anvil/contract.yml exits 0). If it does not, route back to contracting; planning does not run against an unconfirmed contract.plan-drafter agent (defined at agents/plan-drafter.md) using the Task tool. Pass in the briefing: the repository path and the path to anvil/contract.yml. The subagent reads the contract, decomposes the work into an atomic task DAG with wave ordering, writes anvil/plan.yml, runs anvil plan --validate, and returns exactly one sentence. Do NOT decompose or write the YAML inline in the orchestrator thread - the orchestrator's context stays clean.details.rule string to the user and stop.anvil/plan.yml). It does not re-read the whole plan for every subsequent dispatch; it reads individual task records as the executing skill requests them.Reject the following shortcuts:
If any of these conditions obtain, the plan is rejected:
criterion_ids (failure-taxonomy row 26: Spec-to-plan drift).depends_on edge (failure-taxonomy row 17: Cross-task architectural drift).plan-drafter agent (failure-taxonomy row 16: Context-window collapse).Before saving the plan, run in order:
node "$CLAUDE_PLUGIN_ROOT/cli/anvil.js" plan --validate anvil/plan.yml --contract anvil/contract.yml exits 0.criterion_ids array.topologicalWaves, produces one wave per distinct wave integer and contains no cycles.k > 0 has a depends_on whose members are tasks in waves < k.On verify or judge fail, append a non-null lesson to the Ledger and re-queue the task. Null lessons are refused; the task escalates instead.
Dispatch one fresh subagent per plan task inside a per-task git worktree. Capture diff and tool output; never carry state across dispatches.
Author a machine-readable contract before execution. Produces anvil/contract.yml with four verification-level slots per criterion and Ledger-sourced counter-examples.
Bootstrap loader for the DG-Anvil plugin. Enumerates the five primitives, seven skills, five commands, and the core loop. Loaded at session-start.
Meta-skill governing every change to any skill file. Requires a RED-then-GREEN subagent pressure transcript before a skill change is accepted.
Dispatch the Court on evidence-only inputs (contract + diff + verify output + confidence). The Court is not a persona; it is a structured adjudicator.