Discuss a feature, draft an implementation plan, and review it through isolated passes
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/write-plan/SKILL.mdThis workflow runs on every host in the shared agent harness (Claude Code, OMP, Codex, OpenCode, Antigravity).
$ARGUMENTS is the text the user passed when invoking this skill. Treat it as empty when nothing was passed.Dispatch(...) block below starts one fresh subagent that runs the named specialist (agent=), with prompt as its entire task and description as its label. Wait for it to finish and act only on its final report. Map the block to the host's subagent tool:
Task/Agent) with subagent_type set to the agent value and model="opus".task tool with one task item whose agent is the agent value and whose task text is the prompt.~/.agents/harness/agents/<agent>.toml and follow its developer_instructions as your complete role.", followed by the prompt text.model="opus" asks for the strongest available model. On a host that cannot choose a model per dispatch, use the session's model.AskUserQuestion in Claude Code, ask in OMP). Otherwise ask in chat and wait for the answer.Guide the user from an idea or spec to a reviewed, step-by-step implementation plan ready for the implement-plan skill.
The process has two modes: interactive discussion (you talk to the user), and isolated review passes (fresh sub-agents each handle one concern).
If $ARGUMENTS is provided, read it as requirements context (spec, user stories, discovery notes, or a rough plan).
AGENTS.md or CLAUDE.md files in relevant directories.Ask questions to narrow the scope. Focus on:
Keep asking until you have enough to write a precise plan. The user signals readiness by saying something like "OK", "let's go", "write it", "that's enough", etc.
Write the plan to plans/YYYY-MM-DD_slug.md where:
YYYY-MM-DD is today's dateslug is a short kebab-case name derived from the feature (e.g., user-auth, api-pagination)Create the plans/ directory if it doesn't exist.
The plan should cover:
That list is a set of concerns, not a section layout: cover them in whatever shape fits the change. One formatting rule: unless the project documents a wrapping convention of its own, write each paragraph as a single line, without hard wrapping. A wrapped paragraph reflows when one word changes, so a one-word correction shows up as ten changed lines in the diff, and the plan is meant to be reviewed in a pull request like any other file.
Tell the user the plan path when done. From this point on, $PLAN_PATH refers to the path of the plan file you just created.
Display:
--- Pass 1: Plan Review ---
Checking for gaps, wrong assumptions, and integration risks...Spawn a sub-agent:
Dispatch(
agent="sdd-plan-reviewer",
model="opus",
description="Review plan for gaps",
prompt="
Plan to review: $PLAN_PATH
"
)Report what was found/fixed to the user.
Display:
--- Pass 2: Plan Standards ---
Checking plan against project coding and testing standards...Spawn a sub-agent:
Dispatch(
agent="sdd-plan-standards",
model="opus",
description="Check plan standards",
prompt="
Plan to review: $PLAN_PATH
"
)Report what was found/fixed to the user.
Display:
--- Pass 3: Due Diligence ---
Web-verifying external facts and surfacing decisions that need your judgment...Spawn a sub-agent:
Dispatch(
agent="sdd-plan-diligence",
model="opus",
description="Due-diligence pass",
prompt="
Plan to vet: $PLAN_PATH
"
)Present both buckets (### FIXED and ### REQUIRES YOUR JUDGMENT) to the user verbatim: never drop, merge, or reword a finding. You may append a short annotation to an individual item that was already settled during the discussion (e.g. "already decided in discussion: you accepted this risk with mitigation X"), since you alone hold the discussion context and the isolated agent cannot know what the user already chose. The agent's original text always stays visible above your annotation. Show REQUIRES YOUR JUDGMENT prominently.
Display:
--- Pass 4: Step Breakdown ---
Splitting plan into implementation steps...Spawn a sub-agent:
Dispatch(
agent="sdd-step-breakdown",
model="opus",
description="Break plan into steps",
prompt="
Plan to process: $PLAN_PATH
"
)Handle the breakdown's output:
implement-plan skill.Display:
--- Plan Ready ---
Plan: $PLAN_PATH
Steps: N total
Review the plan and adjust as needed (manually or with my help).
When ready, run the implement-plan skill on: $PLAN_PATHThen:
REQUIRES YOUR JUDGMENT: repeat the diligence agent's REQUIRES YOUR JUDGMENT items as the things to resolve before implementing. If that bucket was empty, say so.implement-plan skill.
~/.agents/harness/agents/sdd-standards-enforcer.toml, "Discover commit conventions"): project instruction-file rules first, then a commit skill or command, then commitlint/commitizen config. Stage ONLY the plan file (never git add -A or git add .) and commit following that convention, and never use git commit --no-verify: pre-commit hooks must run. If nothing more specific is discovered, fall back to docs(plans): add <slug>.implement-plan skill still works on the uncommitted file.~/.agents/skills/implement-plan/references/workflow.md: upstream workflow guide, including failure paths and how to resume an interrupted run.~/.agents/skills/implement-plan/references/design-decisions.md: upstream rationale for the isolated passes.phatblat/dotfiles
4d65cab
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.