Structured development workflows using /brainstorm, /write-plan, and /execute-plan patterns...
Use this skill to turn vague or risky engineering work into a bounded execution plan with scope, sequencing, checkpoints, verification, and handoff. It owns planning depth, execution shape, and multi-agent guardrails, not system design, PRD authoring, or branch-policy decisions.
| Task | Use |
|---|---|
| Plan structures and artifacts | references/planning-templates.md, assets/template-work-item-ticket.md, assets/template-milestone-checkpoint.md, assets/template-dor-dod.md |
| Platform-specific workflow mapping | references/platform-workflows.md, ../ai-agents/references/agent-delivery-methods.md |
| Guardrails for parallelism, sessions, and recovery | references/operational-checklists.md, references/session-patterns.md, references/session-scope-budgeting.md, ../ai-agents/references/context-rotation-and-state.md |
| Spec-driven tooling landscape (GitHub Spec Kit, Kiro, BMAD) | references/spec-driven-dev-landscape.md |
| Test-context planning | ../qa-agent-testing/references/coding-agent-regression-testing.md |
| Source map | data/sources.json |
development planning request
-> confirm goal, scope, success criteria, and missing inputs
-> choose planning depth: trivial, lightweight, full contract, or spec-driven
-> define dependencies, ownership, sequence, verification, and rollback
-> choose execution shape
+-- sequential -> overlapping files or moving interfaces
+-- waves -> independent file ownership and stable interfaces
-> run batches with validation between waves
-> checkpoint decisions in durable artifacts
-> hand off done, not done, checked, and next action
| Complexity | Depth | Artifact | Trigger |
|---|---|---|---|
| Single-file, obvious outcome | trivial | none or one-liner | direct execution |
| Multi-step, clear scope | low | goal + steps + verification | 2-5 files, no shared interfaces |
| Multi-file, overlapping interfaces | medium | full plan contract with file ownership | 3+ files, schema or API changes |
| Multi-agent, long-horizon, or spec-required | high | spec β design β tasks β implementation | production-touching, unknown dependencies |
| Choose spec-driven | Choose prototype-first |
|---|---|
| Spec required before agent execution (Kiro, Spec Kit workflow) | Throwaway scaffold, demo, or unknown-unknowns spike |
| Multi-agent handoffs with acceptance criteria | Single-session, one dev, no handoffs |
| Requirements must survive context resets | Goal will change within the same session |
| AI agent downstream will re-parse the contract | Human drives all decisions interactively |
Over-planning burns time; under-planning creates rework.
Judgment call: the deciding question is not "how big is this task" but "is the missing information discoverable by more upfront analysis, or only by executing and observing?" If a spike, prototype, or a single read-only exploration pass would resolve the open question faster than writing a fuller plan contract, do that first and treat the plan as provisional until it returns. Choosing planning depth from task size alone, while ignoring where the actual uncertainty lives, produces plans that are either padded with guesses on the unknowable parts or confidently wrong on the one thing that mattered.
AI coding agents shift the bottleneck from typing speed to decision quality, review bandwidth, and verification cost. Estimating in story points or hours calibrated to human typing speed will misprice the work:
/plan (added Jan 2026), Shift+Tab twice, or --permission-mode plan at startup./ultraplan hands the plan off to a cloud session that runs multiple agents in parallel and returns a structured plan for review β it is a research-preview feature gated to paid plans, not a "slower but deeper" mode. Verify current requirements (subscription tier, CLI version) before recommending it, since research-preview gating changes fast.depends_on, shared-interface definitions, and one validation pass between wavesScope creep is easier to catch early than to unwind late. Check for these signals at every checkpoint:
Response: do not silently absorb the addition into the current session. Name it explicitly, then either (a) re-scope the plan contract and tell the human what changed and why, or (b) split it into a follow-up milestone and keep the current session's original success criteria intact. Absorbing scope without renegotiating the contract is how a bounded task becomes an unbounded one.
Plans default to markdown, but multi-step plans intended for human review often outgrow markdown's usefulness. Choose deliberately:
Cost: HTML plan generation is 2β4Γ slower than markdown and produces noisy version-control diffs. The tradeoff is worth it for read-once human-facing plans; not worth it for agent-consumed context.
For exploration plans (multi-option, mockup-heavy), HTML's grid layout with per-option tradeoff labels outperforms a linear markdown bullet list. For multi-step implementation plans handed off to an agent, keep the acceptance criteria in a parseable table or code block even inside an HTML artifact β the implementation agent needs binary, extractable success conditions.
For interactive plan artifacts (drag-drop prioritization, form-based config), always end with a "copy as markdown / JSON / prompt" export button so the human's UI manipulation closes back into pasteable text. See ../docs-ai-prd/SKILL.md#output-format-html-vs-markdown-for-spec-artifacts for the full format-selection table.
Source: Thariq, Using Claude Code: The Unreasonable Effectiveness of HTML (Claude Code team, 2026-05-08).
source -> tests context for the affected areaFor agent runs spanning hours or days (goal-mode loops, scheduled Routines, multi-session refactors), in-memory compaction is not sufficient β the agent loses coherence on the timescale of long-running work. Force state to the filesystem using role-separated markdown files. Two patterns exist, optimized for different domains. Pick by domain, do not blend them.
| Your work is⦠| Use this variant | Why |
|---|---|---|
| Exploratory β running experiments, searching architectures, trying many options, learning from dead ends | Hayduk 3-file | Curated EXPERIMENTS.md separates re-readable history from append-only scratchpad; agent reasons about past attempts |
| Bounded product building β known target, ambiguity must be resolved upfront, then execute coherently | Watts 4-file | STANDARDS.md and PROGRESS.md keep multi-agent execution aligned across context resets |
The patterns are not contradictory β they target different shapes of long-horizon work. If a run is exploratory in early stages and execution-heavy later, you can transition from the Hayduk variant to the Watts variant; do not run both simultaneously.
| File | Role | Lifecycle |
|---|---|---|
PLAN.md |
High-level plan + intended direction. Seedable with human-provided initial ideas. | Read often; rewritten when direction shifts |
EXPERIMENTS.md |
Curated table of attempts: title, what was tried, what happened, why it did or didn't work. The re-readable history. | Append-only with periodic curation; entries earn their place |
EXPERIMENT_NOTES.md |
Chronological scratchpad: raw thoughts as the agent runs. The audit trail. | Append-only, never curated |
Key invariant: EXPERIMENTS.md is for re-reading (by both agent and human), EXPERIMENT_NOTES.md is for write-only logging. Conflating them is the failure mode.
Source: Chris Hayduk (OpenAI), Using Codex Goals Effectively (2026-05-11), reporting on multi-day Codex /goal runs for ML architecture search.
| File | Role | Lifecycle |
|---|---|---|
GOAL.md |
Top-level objective written after a heavy interview/clarification phase. The thing being built, not the path to it. | Stable; rewritten only when scope genuinely shifts |
STANDARDS.md |
Non-negotiable code-quality standards, conventions, and acceptance criteria the agent and its subagents must respect | Mostly stable; updated when standards evolve |
IMPLEMENT.md |
Workflow instructions: how to delegate (implementer + reviewer subagents), how to verify work, when to spawn parallel teams, what passes a review | Stable; updated when the orchestration recipe changes |
PROGRESS.md |
Continuously updated log of decisions made, work completed, milestones passed | Append-only; new agents read this first to inherit context |
New agents (or new context windows after compaction) read all four files before acting, inheriting both the what (GOAL + STANDARDS) and the how (IMPLEMENT + PROGRESS). The split prevents orchestrator-vs-subagent drift across long runs.
Source: Jarrod Watts, You Need More Than a Ralph Loop (2026-05-07), packaged as the long-running-agent-skill on GitHub (includes git-worktrees parallelization for subagent teams).
Watts's critical addition: invest heavily before the loop in an interview phase that surfaces 20β50 clarifying questions. Ambiguity in the prompt compounds across iterations β each loop's output becomes the next loop's input, so one underspecified decision direction-shifts everything downstream.
The interview phase is brainstorming/clarification work, not journaling. Use the superpowers:brainstorming skill (invoke via the Skill tool; it is a plugin skill, not a file in this repo) or an equivalent /interview-style command to drive question-led discovery before any long-horizon run. The questions force the human to make decisions instead of leaving them implicit; the resulting GOAL.md or PLAN.md is dramatically tighter than what a single-prompt seed produces.
Scope note: this mechanic targets underspecified ad hoc requests from a human β the setup phase above, or any planning intake where the goal is still fuzzy. It does not apply to agent-to-agent work inside an already-scoped skill or task packet (fresh-context workers, wave-based delegation, orchestrator-to-subagent handoff) β those contexts already carry a bounded contract and should not re-run an interview loop against another agent. For batched clarification across a multi-member team, see ../agents-subagents/references/clarification-questions-protocol.md instead β that protocol collects up to ~3 questions per member and dedupes them into one relay to the human; it is a different mechanic (batched, multi-agent) from the one below (sequential, single-agent-to-human).
When the request is underspecified, do not open with an open-ended clarifying-question list. Instead:
This is a sharper alternative to batching every clarifying question into one message: an attached guess gives the human something to react to instead of a blank field to fill in, and the falsifiable stop test (predicting the next three reactions) replaces "I think I've asked enough" with a checkable condition.
Source: Addy Osmani, interview-me skill, commit 7676817, MIT license. Extracted 2026-08-09.
assets/ already cover these../ai-coding-agents-tasks/SKILL.md#goal-mode-loops-codex-goal-and-analogues-2026-05../agents-swarm-orchestration/SKILL.mdsuperpowers:brainstorming skill../agents-subagents/references/clarification-questions-protocol.mdGate before invoking any foundation below: Each foundation has a
When to Apply/When to Skipsection. If your task matches a skip-condition, route to the foundation it names instead β don't pull in primitives the task doesn't need.
Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.