agentleFS
atomicinnovationatomicinnovation/accelerator/skills/planning/create-plan/SKILL.md

create-plan

Skill34 starsChanged 51 days agoMITView on GitHub

Create detailed implementation plans through interactive, iterative

39 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use codebase-migrate, support-ticket-triage and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • ComposioHQSkill

    codebase-migrate

    Run large codebase migrations and multi-file refactors. Uses the Composio CLI to coordinate issue tracking, batched PRs, and CI verification while the agent executes the transforms locally across hundreds of files.

    Also in 5 projects that use this

  • ComposioHQSkill

    support-ticket-triage

    Triage customer support tickets/emails/chats into categories, priority, and next action; draft responses and create reproducible steps; use for Zendesk/Intercom/Help Scout exports or pasted threads.

    Also in 5 projects that use this

  • corticalstackSkill

    iterate-plan

    Revise an existing implementation plan in flow/plans/ based on feedback, researching when needed. Explicit-only; run only when invoked via /iterate-plan or explicitly asked.

    Also in 4 projects that use this

  • hebertzhuSkill

    develop-web-game

    Use when building or iterating on a web game and you need a tight implement-test-observe loop; prefer the bundled Playwright client, inspect screenshots and text state, and validate every meaningful change before moving on.

    Also in 3 projects that use this

  • petestewartSkill

    datadog-logs

    Query Datadog logs via the Logs Search API v2. Use when the user asks to "check the logs", "search logs", "find errors in Datadog", "look up logs for", "show me production logs", "check for errors", "search Datadog", or any request involving log search, error investigation, or production debugging that requires Datadog log data.

    Also in 3 projects that use this

  • +7 more from ComposioHQ

The file

Show its rules and text

We split this skill into the rules it gives an agent

46 rules. 0 are common, 44 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 37 edited versions we read keep these.

  • 44

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If no "Agent Names" section appears above, use these defaults: accelerator:reviewer, accelerator:codebase-locator, …

    line 17
  2. Distinctive:

    When this command is invoked:

    line 32
  3. Distinctive:

    If a file path or work item reference was provided as a parameter, skip the default message

    line 36
  4. Distinctive:

    IMPORTANT: Use the Read tool WITHOUT limit/offset parameters to read entire files

    line 69
  5. Distinctive:

    CRITICAL: DO NOT spawn sub-tasks before reading these files yourself in the main context

    line 71
  6. Distinctive:

    NEVER: read files partially - if a file is mentioned, read it completely

    line 73
  7. Distinctive:

    Before asking the user any questions, use specialized agents to research in parallel:

    line 76
  8. Distinctive:

    Use the {codebase locator agent} agent to find all files related to the work item or task

    line 79
  9. Distinctive:

    Use the {codebase analyser agent} agent to understand how the current implementation works

    line 81
  10. Distinctive:

    If relevant, use the {documents locator agent} agent to find any existing documents about this feature

    line 83
  11. Distinctive:

    After research tasks complete, read ALL files they identified as relevant

    line 95
  12. Distinctive:

    Read them FULLY into the main context

    line 96
  13. Distinctive:

    Only ask questions that you genuinely cannot answer through code investigation.

    line 121
  14. Distinctive:

    After getting initial clarifications:

    line 126
  15. Distinctive:

    DO NOT just accept the correction

    line 130
  16. Distinctive:

    Read the specific files/directories they mention

    line 132
  17. Distinctive:

    Only proceed once you've verified the facts yourself

    line 133
  18. Distinctive:

    Create multiple Task agents to research different aspects concurrently

    line 139
  19. Distinctive:

    Use the right agent for each type of research:

    line 140
  20. Distinctive:

    Look for integration points and dependencies

    line 161
  21. Distinctive:

    Wait for ALL sub-tasks to complete: before proceeding

    line 165
  22. Distinctive:

    Get feedback on structure: before writing details

    line 205
  23. Distinctive:

    Before writing the plan file, capture metadata and substitute the unified base fields into the template's frontmatter block:

    line 228
  24. Distinctive:

    Substitute: every field below with the indicated value:

    line 234
  25. Distinctive:

    only: when it has a value, and omit it entirely otherwise (do not carry the empty placeholder through).

    line 255
  26. Distinctive:

    Write the file with the substituted frontmatter block.

    line 276
  27. Very specific:

    Validate the frontmatter: after writing, run corpus frontmatter validate over the plan you just wrote:

    line 278
  28. Distinctive:

    If it exits non-zero, the plan document violates the canonical frontmatter standard.

    line 285
  29. Distinctive:

    Add/remove scope items

    line 308
  30. Distinctive:

    Ask "why" and "what about"

    line 318
  31. Distinctive:

    Don't assume - verify with code

    line 319
  32. Distinctive:

    Don't write the full plan in one shot

    line 323
  33. Distinctive:

    Read all context files COMPLETELY before planning

    line 330
  34. Distinctive:

    Write measurable success criteria with clear automated vs manual distinction

    line 333
  35. Distinctive:

    Consider migration and rollback

    line 339
  36. Distinctive:

    Use TodoWrite to track planning tasks

    line 345
  37. Distinctive:

    Update todos as you complete research

    line 346
  38. Distinctive:

    If you encounter open questions during planning, STOP

    line 351
  39. Distinctive:

    Do NOT write the plan with unresolved questions

    line 353
  40. Distinctive:

    Every decision must be made before finalizing the plan

    line 355
  41. Distinctive:

    Start with schema/migration

    line 399
  42. Distinctive:

    Start with data model

    line 408
  43. Distinctive:

    When spawning research sub-tasks:

    line 422
  44. Distinctive:

    Wait for all tasks to complete: before synthesizing

    line 439
  45. Distinctive:

    If a sub-task returns unexpected results, spawn follow-up tasks

    line 442
  46. Distinctive:

    Don't accept results that seem incorrect

    line 444

“Common” is measured: kept by at least 6 in 10 of the 37 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Implementation Plan

!accelerator config context --skill create-plan --fail-safe !accelerator config agents --fail-safe

If no "Agent Names" section appears above, use these defaults: accelerator:reviewer, accelerator:codebase-locator, accelerator:codebase-analyser, accelerator:codebase-pattern-finder, accelerator:documents-locator, accelerator:documents-analyser, accelerator:web-search-researcher.

Plans directory: !accelerator config path plans --fail-safe Work items directory: !accelerator config path work --fail-safe

You are tasked with creating detailed implementation plans through an interactive, iterative process. You should be skeptical, thorough, and work collaboratively with the user to produce high-quality technical specifications.

Initial Response

When this command is invoked:

  1. Check if parameters were provided:
  • If a file path or work item reference was provided as a parameter, skip the default message
  • Immediately read any provided files FULLY
  • Begin the research process
  1. If no parameters provided, respond with:
I'll help you create a detailed implementation plan. Let me start by understanding what we're building.

Please provide:
1. The task/work item description (or reference to a work item file)
2. Any relevant context, constraints, or specific requirements
3. Links to related research or previous implementations

I'll analyze this information and work with you to create a comprehensive plan.

Tip: You can also invoke this command with a work item file directly: `/create-plan @meta/work/eng-1234.md` (where the work items directory is shown above)
For deeper analysis, try: `/create-plan think deeply about @meta/work/eng-1234.md`

Then wait for the user's input.

Process Steps

Step 1: Context Gathering & Initial Analysis

  1. Read all mentioned files immediately and FULLY:
  • Work item files in the configured work items directory
  • Research documents
  • Related implementation plans
  • Any JSON/data files mentioned
  • IMPORTANT: Use the Read tool WITHOUT limit/offset parameters to read entire files
  • CRITICAL: DO NOT spawn sub-tasks before reading these files yourself in the main context
  • NEVER read files partially - if a file is mentioned, read it completely
  1. Spawn initial research tasks to gather context: Before asking the user any questions, use specialized agents to research in parallel:
  • Use the {codebase locator agent} agent to find all files related to the work item or task
  • Use the {codebase analyser agent} agent to understand how the current implementation works
  • If relevant, use the {documents locator agent} agent to find any existing documents about this feature

These agents will:

  • Find relevant source files, configs, and tests
  • Identify the specific directories to focus on
  • Trace data flow and key functions
  • Return detailed explanations with file:line references
  1. Read all files identified by research tasks:
  • After research tasks complete, read ALL files they identified as relevant
  • Read them FULLY into the main context
  • This ensures you have complete understanding before proceeding
  1. Analyze and verify understanding:
  • Cross-reference the work item requirements with actual code
  • Identify any discrepancies or misunderstandings
  • Note assumptions that need verification
  • Determine true scope based on codebase reality
  1. Present informed understanding and focused questions:

    Based on the work item and my research of the codebase, I understand we need to [accurate summary].
    
    I've found that:
    - [Current implementation detail with file:line reference]
    - [Relevant pattern or constraint discovered]
    - [Potential complexity or edge case identified]
    
    Questions that my research couldn't answer:
    - [Specific technical question that requires human judgment]
    - [Business logic clarification]
    - [Design preference that affects implementation]

    Only ask questions that you genuinely cannot answer through code investigation.

Step 2: Research & Discovery

After getting initial clarifications:

  1. If the user corrects any misunderstanding:
  • DO NOT just accept the correction
  • Spawn new research tasks to verify the correct information
  • Read the specific files/directories they mention
  • Only proceed once you've verified the facts yourself
  1. Create a research todo list using TodoWrite to track exploration tasks
  2. Spawn parallel sub-tasks for comprehensive research:
  • Create multiple Task agents to research different aspects concurrently
  • Use the right agent for each type of research:

For deeper investigation:

  • {codebase locator agent} - To find more specific files (e.g., "find all files that handle [specific component]")
  • {codebase analyser agent} - To understand implementation details (e.g., "analyze how [system] works")
  • {codebase pattern finder agent} - To find similar features we can model after

For historical context:

  • {documents locator agent} - To find any research, plans, or decisions about this area
  • {documents analyser agent} - To extract key insights from the most relevant documents

Each agent knows how to:

  • Find the right files and code patterns
  • Identify conventions and patterns to follow
  • Look for integration points and dependencies
  • Return specific file:line references
  • Find tests and examples
  1. Wait for ALL sub-tasks to complete before proceeding
  2. Present findings and design options:
    Based on my research, here's what I found:
    
    **Current State:**
    - [Key discovery about existing code]
    - [Pattern or convention to follow]
    
    **Design Options:**
    1. [Option A] - [pros/cons]
    2. [Option B] - [pros/cons]
    
    **Open Questions:**
    - [Technical uncertainty]
    - [Design decision needed]
    
    Which approach aligns best with your vision?

Step 3: Plan Structure Development

Once aligned on approach:

  1. Create initial plan outline:
    Here's my proposed plan structure:
    
    ## Overview
    [1-2 sentence summary]
    
    ## Implementation Phases:
    1. [Phase name] - [what it accomplishes]
    2. [Phase name] - [what it accomplishes]
    3. [Phase name] - [what it accomplishes]
    
    Does this phasing make sense? Should I adjust the order or granularity?
  2. Get feedback on structure before writing details

Step 4: Detailed Plan Writing

After structure approval:

  1. Write the plan to !accelerator config path plans --fail-safe``/YYYY-MM-DD-ENG-XXXX-description.md
  • Format: YYYY-MM-DD-ENG-XXXX-description.md where:
    • YYYY-MM-DD is today's date
    • ENG-XXXX is the work item number (omit if no work item)
    • description is a brief kebab-case description
  • Examples:
    • With work item: 2025-01-08-ENG-1478-parent-child-tracking.md
    • Without work item: 2025-01-08-improve-error-handling.md
  1. Use this template structure:

!accelerator config template plan --fail-safe

Step 5: Populate frontmatter

Before writing the plan file, capture metadata and substitute the unified base fields into the template's frontmatter block:

  1. Invoke accelerator corpus metadata derive to obtain Current Date/Time (UTC):, Current Revision:, and Repository Name:.
  2. Substitute every field below with the indicated value:

    • type: ← plan
    • id: ← the filename stem (the file path computed above without .md), always quoted as a YAML string
    • title: ← the H1 title {Feature/Task Name} Implementation Plan
    • date: ← the Current Date/Time (UTC): value
    • author: ← the author resolved per the standard chain (config → VCS user → prompt)
    • producer: ← create-plan
    • status: ← draft
    • work_item_id: ← the linked work item as a typed-linkage ref "work-item:NNNN". Fill in this form when invoked with a work item argument; otherwise omit the key entirely (do not carry an empty placeholder).
    • revision: ← the Current Revision: value
    • repository: ← the Repository Name: value
    • last_updated: ← the same Current Date/Time (UTC): value
    • last_updated_by: ← the same value resolved for author
    • schema_version: ← 1 (bare integer)

    Optional linkage/lifecycle keys are omit-by-default: the template shows each as ""/[], but write a key into the artifact only when it has a value, and omit it entirely otherwise (do not carry the empty placeholder through). By default a new plan draft names none of them.

    • parent: ← the owning work item as a typed-linkage ref ("work-item:NNNN"). Fill when the plan is owned by a work item; otherwise omit the key.
    • blocks: ← list of typed-linkage refs to plans this plan blocks (["plan:NNNN", ...]). Fill when blocking edges are explicit; otherwise omit the key.
    • blocked_by: ← list of typed-linkage refs to plans that block this one. Prefer writing the canonical blocks: on the other side; emit blocked_by: only when the canonical side cannot be written, and omit it otherwise.
    • derived_from: ← list of typed-linkage refs to research this plan was informed by (["codebase-research:NNNN", ...]). Fill when the plan derives from research; otherwise omit the key.
    • relates_to: ← list of typed-linkage refs to related artifacts. Fill when relationships are explicit; otherwise omit the key.
    • reviewer: ← name/email of the plan reviewer. Leave for review-plan to fill; omit the key on a fresh draft until the plan is reviewed.
  3. Write the file with the substituted frontmatter block.

Validate the frontmatter: after writing, run corpus frontmatter validate over the plan you just wrote:

accelerator corpus frontmatter validate --file <path>

If it exits non-zero, the plan document violates the canonical frontmatter standard; report the emitted violation and fix the frontmatter before completing.

Step 6: Sync and Review

  1. Present the draft plan location:
    I've created the initial implementation plan at:
    `{configured plans directory}/YYYY-MM-DD-ENG-XXXX-description.md`
    
    Please review it and let me know:
    - Are the phases properly scoped?
    - Are the success criteria specific enough?
    - Any technical details that need adjustment?
    - Missing edge cases or considerations?
  2. Iterate based on feedback - be ready to:
  • Add missing phases
  • Adjust technical approach
  • Clarify success criteria (both automated and manual)
  • Add/remove scope items
  1. Continue refining until the user is satisfied

Important Guidelines

  1. Be Skeptical:
  • Question vague requirements
  • Identify potential issues early
  • Ask "why" and "what about"
  • Don't assume - verify with code
  1. Be Interactive:
  • Don't write the full plan in one shot
  • Get buy-in at each major step
  • Allow course corrections
  • Work collaboratively
  1. Be Thorough:
  • Read all context files COMPLETELY before planning
  • Research actual code patterns using parallel sub-tasks
  • Include specific file paths and line numbers
  • Write measurable success criteria with clear automated vs manual distinction
  • automated steps should use make whenever possible
  1. Be Practical:
  • Focus on incremental, testable changes
  • Consider migration and rollback
  • Think about edge cases
  • Include "what we're NOT doing"
  1. Track Progress:
  • Use TodoWrite to track planning tasks
  • Update todos as you complete research
  • Mark planning tasks complete when done
  1. No Open Questions in Final Plan:
  • If you encounter open questions during planning, STOP
  • Research or ask for clarification immediately
  • Do NOT write the plan with unresolved questions
  • The implementation plan must be complete and actionable
  • Every decision must be made before finalizing the plan

Success Criteria Guidelines

Always separate success criteria into two categories:

  1. Automated Verification (can be run by execution agents):
  • Commands that can be run: make test, npm run lint, etc.
  • Specific files that should exist
  • Code compilation/type checking
  • Automated test suites
  1. Manual Verification (requires human testing):
  • UI/UX functionality
  • Performance under real conditions
  • Edge cases that are hard to automate
  • User acceptance criteria

Format example:

### Success Criteria:

#### Automated Verification:

- [ ] Database migration runs successfully: `make migrate`
- [ ] All unit tests pass: `go test ./...`
- [ ] No linting errors: `golangci-lint run`
- [ ] API endpoint returns 200: `curl localhost:8080/api/new-endpoint`

#### Manual Verification:

- [ ] New feature appears correctly in the UI
- [ ] Performance is acceptable with 1000+ items
- [ ] Error messages are user-friendly
- [ ] Feature works correctly on mobile devices

Common Patterns

For Database Changes:

  • Start with schema/migration
  • Add store methods
  • Update business logic
  • Expose via API
  • Update clients

For New Features:

  • Research existing patterns first
  • Start with data model
  • Build backend logic
  • Add API endpoints
  • Implement UI last

For Refactoring:

  • Document current behavior
  • Plan incremental changes
  • Maintain backwards compatibility
  • Include migration strategy

Sub-task Spawning Best Practices

When spawning research sub-tasks:

  1. Spawn multiple tasks in parallel for efficiency
  2. Each task should be focused on a specific area
  3. Provide detailed instructions including:
  • Exactly what to search for
  • Which directories to focus on
  • What information to extract
  • Expected output format
  1. Be EXTREMELY specific about directories:
  • Include the full path context in your prompts
  1. Specify read-only tools to use
  2. Request specific file:line references in responses
  3. Wait for all tasks to complete before synthesizing
  4. Verify sub-task results:
  • If a sub-task returns unexpected results, spawn follow-up tasks
  • Cross-check findings against the actual codebase
  • Don't accept results that seem incorrect

Example of spawning multiple tasks:

# Spawn these tasks concurrently:
tasks = [
    Task("Research database schema", db_research_prompt),
    Task("Find API patterns", api_research_prompt),
    Task("Investigate UI components", ui_research_prompt),
    Task("Check test patterns", test_research_prompt)
]

Example Interaction Flow

User: /create-plan
Assistant: I'll help you create a detailed implementation plan...

User: We need to add parent-child tracking for Claude sub-tasks. See {work_dir}/eng-1478.md
Assistant: Let me read that work item file completely first...

[Reads file fully]

Based on the work item, I understand we need to track parent-child relationships for events in the webhook daemon. Before I start planning, I have some questions...

[Interactive process continues...]

!accelerator config instructions create-plan --fail-safe

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.