Tp plan
Generate a plan.md from detailed-design.md — a sequenced list of implementation tasks, each with test criteria, ready for /tp-phase-implement.From its SKILL.md
npx -y skills add CurtisThe/three-pillars-plugin --skill tp-planAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.6 KB, as published. Nobody here has run it
Phase Plan
Turn a detailed design into a concrete, executable task list.
Argument: {design-name} (required) — must match an existing directory under three-pillars-docs/tp-designs/.
Prerequisites
three-pillars-docs/tp-designs/{design-name}/detailed-design.mdmust exist. If not, tell the user to run/tp-design-detail {design-name}first and stop.
Steps
-
Run first-run preflight per skills/_shared/first-run.md.
-
Run collaboration preflight per
skills/_shared/collaboration.mdwithphase: "plan". This verifies the branch and refreshes the lock for this design. Honor--force-takeoverif passed. -
Read both
design.mdanddetailed-design.mdfrom the design directory. -
Check upstream dependency status: Read the
## Dependenciessection ofdesign.md(or## Upstream Design Dependenciesindetailed-design.md). For each named dependency, look up its status in the Design Inventory table ofthree-pillars-docs/product_roadmap.md. If any dependency has a NO-GO verdict or is still in-progress ("Spiking", "Designed", "Planned"), warn the user with specific context:Dependency warning:
{dependency-name}is currently{status}. This design declares it as a dependency. Proceeding with planning may produce a plan that can't be implemented if the dependency doesn't resolve. If the dependency is "Done — NO-GO", include the spike's verdict reason if available from the roadmap prose. Do not block — the user may have good reasons to proceed. If the roadmap doesn't exist or the design has no Dependencies section, skip this step silently. -
Read the implementation order from detailed-design.md. This is your skeleton.
-
Break each phase into discrete tasks. Each task must be:
- Small enough to implement in a single red-green-refactor cycle (typically one function or one class method)
- Independently testable — completing the task means tests pass
- Ordered — later tasks can depend on earlier ones, but not vice versa
-
Write
three-pillars-docs/tp-designs/{design-name}/plan.mdusing this exact format. If design.md carries aweight-classfrontmatter block, stamp the same class onto plan.md (viaweight_class.py'swrite_classor the---\nweight-class: <class>\n---block directly at the top — the class propagates from design.md to every generated artifact):
# <Design Name> — Implementation Plan
## Phase 1: <Phase Name> (~Nk)
### Task 1.1: <Task Title>
**File**: `<path/to/file>` (new|modify)
**Test**: `<path/to/test_file> <test identifier>`
**Red**: Write test that <describes what the test asserts>.
**Green**: Implement <describes minimal implementation>.
**Refactor**: <optional — what to clean up, or "None expected">.
**Done when**: <concrete exit criteria — test passes, type checks, etc.>
### Task 1.2: <Task Title>
...
## Phase 2: <Phase Name> (~Nk)
...
Per-phase budget annotation. Each phase header carries a (~Nk) token-budget annotation — a rough estimate of the tokens implementing that phase will cost. Keep each phase under the per-phase cap of 200k: when /tp-run-full-design drives the plan it dispatches every plan phase under a single phase-implement slot, whose 200k soft budget comes from that orchestrator's static budget table (skills/tp-run-full-design/SKILL.md → ## Per-slot budget table). Reference that table value as the authoritative source rather than re-deriving the number here — if the slot budget changes, this annotation target tracks it. A phase whose estimate exceeds 200k should be split into smaller phases so each fits one dispatch. The annotation is a sizing hint (for the human reviewer and for the orchestrator's pre-split decision), not a hard gate this skill enforces.
- Confirm the plan with the user. Walk through it briefly. Adjust if they want to reorder, split, or drop tasks.
- Commit the artifact per
skills/_shared/commit-after-work.md. Artifact paths to stage:three-pillars-docs/tp-designs/{design-name}/plan.mdthree-pillars-docs/tp-designs/{design-name}/lock.json(rolled into the same commit) Commit message:Plan: {design-name}.
- Tell the user the next step is
/tp-phase-implement {design-name}.
Rules
- Validate
{design-name}perskills/_shared/validate-name.md. - Respect the lock per
skills/_shared/collaboration.md— the preflight step can refuse to proceed if another developer holds this design. - Every task MUST have a test. No "write boilerplate" or "create empty file" tasks.
- Cap per-file test size at planning time (caps:
CLAUDE.md§File Size Limits): a task whose test additions would push a test file past the soft-warn names a split — tests distributed across files by unit/scenario. The plan emits split files, never monoliths. - Tasks within a phase can run in parallel (no interdependencies). Tasks across phases are sequential.
- Keep task count realistic — a phase of 3-7 tasks is healthy. More than 10 suggests the phase should split.
- Each phase header carries a
(~Nk)budget annotation and should stay under the 200k per-phase cap — thephase-implementslot budget from tp-run-full-design's static budget table. Split any phase whose estimate exceeds it. - The plan is the contract for
/tp-phase-implement. Be precise enough that an agent can execute each task without ambiguity. - Check for existing
plan.mdand ask before overwriting. - Don't start implementing — stop after writing the plan.
Auto Mode
This skill is a Shape B (Generator) per skills/_shared/auto-mode.md. In --auto it derives the task breakdown from detailed-design.md without prompting the user.
Differences from interactive mode:
- Skip step 7 (the user-confirmation walk-through). Self-review the plan against
detailed-design.md: every Implementation Order item should map to at least one task; phases should match (or merge/split) the design's implementation order; each task should remain implementable in a single red-green-refactor cycle. No external approval. - Overwrite an existing
plan.mdwithout asking (the rule above defers to--auto). Prior content is replaced; git history is the rollback path. - Lock conflict ⇒ BLOCKED, never
--force-takeoverprompt. Follow Rule 5 inauto-mode.md: append a BLOCKED entry todecisions.mdand exit non-zero. The orchestrator escalates.
Log derivation choices to three-pillars-docs/tp-designs/{design-name}/decisions.md using the canonical init/append snippet in skills/_shared/auto-mode.md (Initialization + append section). One Decision Entry per non-trivial choice, prefixed [tp-plan]:
- Which Implementation Order items map to which phases/tasks — note the mapping when it's anything other than 1:1.
- Any merges or splits — when two design items collapse into one task, or one design item expands into several tasks, log both the choice and the rationale.
- Confidence: High when the design's Implementation Order section is explicit and the mapping is mechanical; Medium when a judgment call (e.g., grouping two related items into one phase) is required; Low when the design under-specifies and you had to invent structure (flag for human review).
In --auto, the plan is committed without user confirmation; decisions.md is the audit trail and the rollback signal — every derivation choice must be logged before the commit step.