write-plan
Create detailed, execution-ready implementation plans for complex or high-risk changes without coding. Use for ExecPlan-style work, multi-hour changes, significant refactors, migrations, resumable phase checklists, and work that should be handed off to execute-plan with clear validation.
What this skill does
# Write Plan ## Overview Produce a complete, self-contained implementation plan that can be executed by `execute-plan` with minimal ambiguity, even after `/clear` or by another agent. This skill is for planning only: - Do not implement code - Do not modify production files (except plan artifacts) ## Workflow ### Step 1: Contextualize Load only the project context relevant to the requested change: - If `docs/SUMMARY.md` exists, read it first. - Load only task-relevant detail docs. - Prioritize `Code Standard` docs for implementation conventions. - If docs conflict with code or user intent, use the available input/question tool before broad changes. Then inspect only the code areas relevant to the requested change. Capture: - User-visible purpose and expected outcome - Existing patterns to follow - Constraints and dependencies - Files, modules, commands, and docs that orient the executor - Risks, assumptions, and unknowns ### Step 2: Initialize Plan Artifacts 1. Create: `docs/.plans/YYMMDD-HHmm-<plan-slug>/` 2. Create: - `SUMMARY.md` - one phase file per implementation phase with naming convention `phase-XX-<name>.md` 3. Add `research/` only if needed. #### Rules: - Use timestamp commands from the shared General Principles for folder and document timestamps. ### Step 3: Clarify Requirements Ask clarifying questions to resolve any ambiguity in the request. Focus on: - Scope and boundaries - Success criteria - Constraints and non-goals - Priorities and trade-offs #### Rules: - If requirements are already clear or come from the brainstorm context, no need the confirmation step. - Use input/question tool for gathering answers, context. - State assumptions explicitly in `SUMMARY.md`. If multiple interpretations of the request exist, list them and ask — never pick silently. ### Step 4: Define Strategy and Phases Design a phased strategy that is safe and verifiable. Each phase should have: - A clear objective - The complexity and risk level appropriate to the phase with values: `S`, `M`, `L`, `XL` - Ordered tasks - Verification commands - Observable acceptance criteria and exit criteria Granularity rule: - Tasks should be small, concrete, and typically 2-10 minutes each. - Prefer phases that can be resumed safely. Document idempotency, recovery notes, or rollback constraints for risky work. ### Step 5: Research (Only if Needed) Research is optional and should be proportional to uncertainty. Preferred order: 1. Existing project docs and code 2. Existing skills and local references 3. External references (only if available in the current environment) If external research capability is unavailable, proceed with local evidence and explicitly list assumptions and open questions. Document findings in: - `docs/.plans/YYMMDD-HHmm-<plan-slug>/research/<topic>.md` ### Step 6: Write Plan Content ## `SUMMARY.md` format Follow the template inside `references/summary-template.md` The summary must be a living plan, not a static proposal. Include empty sections for execution-time updates: progress, surprises/discoveries, decision log, and outcomes/retrospective. These sections give `execute-plan` a stable place to record what changed and why. ## `phase-XX-<name>.md` format Follow the template inside `references/phase-template.md` ### Step 7: Review and Refine Before presenting the plan, verify: - Paths are exact and consistent - Phase order is logical - Tasks are actionable (no vague steps) - Verification is defined for each phase - Acceptance criteria are observable - Risks/assumptions are explicit - Plan is executable without hidden context from the current chat Then present for user review. If multiple viable approaches exist, present options and ask for one of: (use input/question tool for selection) - **Confirm**: approve current plan for execution - **Confirm and Visualize**: approve current plan and create a source-adjacent visualization in the same session - **Validate**: refine via additional clarifying questions If the user chooses **Confirm and Visualize**: 1. Use the current `write-plan` session context and the plan artifacts just created. 2. Do not restart project context loading or rediscover background that is already available in the session. 3. Follow the `visualize` skill output convention for plan folders: - `docs/.plans/YYMMDD-HHmm-<plan-slug>/visualize.html` - `docs/.plans/YYMMDD-HHmm-<plan-slug>/visualize-assets/` 4. Copy the fixed visualization theme into the adjacent assets folder. 5. Verify the visualization enough to confirm the HTML, local CSS link, Mermaid import, source metadata, and primary content blocks are present. 6. Then continue to the normal handoff. ### Step 8: Handoff End with: Plan `<relative_path_to_plan>/SUMMARY.md` is ready. Make new session and use `execute-plan` `<relative_path_to_plan>/SUMMARY.md` to execute it. If visualization was created, also include: Visualization `<relative_path_to_plan>/visualize.html` is ready. ## Rules - Never automatically implement or execute the code change in the same session. Optional plan visualization is allowed only after user selection and only for the plan artifacts. - Prefer explicit file paths and concrete commands - Align with project standards and existing architecture - Keep plans self-contained, deterministic, and resumable. A fresh agent should be able to continue from the plan folder alone. - **Plan the minimum viable change:** No speculative phases, no "just in case" abstractions, no flexibility that wasn't requested. If a plan can be 3 phases instead of 6, make it 3. Every task should trace directly to a stated requirement. - If the write-plan request comes from a brainstorm session, we can skip many steps like gathering documents, clarifying requirements, and researching, because those should have been covered in the brainstorm session. In that case, we can directly start from Step 4: Define Strategy and Phases, using the information from the brainstorm session as context.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.