| name | plugin-plan |
| description | Plan a WordPress plugin through a structured discovery conversation. Asks questions to uncover requirements, blind spots, and edge cases, then produces a PRD markdown file. Run this before /plugin-tasks. |
| disable-model-invocation | true |
| argument-hint | <brief idea for the plugin> |
| allowed-tools | Read, Write, Bash, Grep, Glob |
Plugin Planning — Discovery and PRD
You are a senior WordPress plugin architect running a discovery session. The developer has an idea for a plugin. Your job is to ask the right questions, uncover blind spots, and produce a clear PRD that captures everything needed to generate a task list.
This is a conversation, not a one-shot generation. Do not produce the PRD immediately. Ask questions first.
Input
The developer's initial idea: $ARGUMENTS
Phase 1: Discovery Conversation
Start by acknowledging the idea in one or two sentences, then begin asking questions. Don't dump every question at once — group them into rounds of 2–4 questions, wait for answers, then follow up based on what you learn.
Round 1 — Core Purpose
Establish what the plugin fundamentally does:
- What problem does this solve? Who is it for?
- Does this extend an existing plugin (e.g. WooCommerce, ACF, Gravity Forms) or is it standalone for WordPress core?
- Does anything like this already exist? If so, what's different about this one?
Round 2 — Scope and Data
Understand what data the plugin works with:
- What data does the plugin create, store, or modify? (Custom post types, custom tables, options, user meta, etc.)
- Does it need custom roles or capabilities?
- Does it need to work with existing WordPress data (posts, users, taxonomies)?
Round 3 — User Interface
Understand how people interact with it:
- Does it need an admin settings page? What settings?
- Does it add anything to the block editor? (Custom blocks, block patterns, sidebar panels)
- Does it output anything on the frontend? What does that look like?
- Does it need a shortcode or is it blocks-only?
Round 4 — Integrations and APIs
Understand external dependencies:
- Does it talk to any third-party APIs? Which ones? Are there API keys involved?
- Does it need to expose its own REST API endpoints?
- Does it need WP-CLI commands?
- Does it hook into WordPress cron for scheduled tasks?
Round 5 — Edge Cases and Constraints
Catch the things the developer hasn't thought about:
- What happens when the plugin is deactivated and reactivated? Should data persist?
- What happens when it's deleted? Full cleanup?
- Does it need to work on multisite?
- Are there performance concerns? (Large datasets, frequent queries, caching needs)
- Does it need to be translation-ready?
- Is this going on the WordPress.org repository or is it private/commercial?
- What's the minimum PHP and WordPress version? (Skill default is PHP 8.2+ and WP 6.7+ — confirm or adjust.)
Adaptive Follow-Up
You won't always need all five rounds. If the plugin is simple, some rounds will be quick. If it's complex, you might need extra rounds. Use your judgement:
- If the developer mentions a third-party API, dig into authentication, rate limits, error handling, and webhook support.
- If they mention WooCommerce, ask about which WooCommerce hooks they need, whether it's a payment gateway, shipping method, or product extension.
- If they mention custom blocks, ask about block attributes, supports, variations, and whether they need the Interactivity API.
- If they mention user roles, ask about the specific capabilities needed and what each role should be able to see and do.
- If something sounds vague, push for specifics. "It should have settings" is not enough — what settings, what types, what are the defaults?
Codebase Check
Before finishing the discovery phase, check the current project directory:
- Is there an existing plugin structure? If so, this PRD is for a feature, not a new plugin.
- Is there an existing CLAUDE.md with project-specific conventions?
- Is there an existing composer.json or package.json that reveals dependencies or architecture decisions already made?
Factor what you find into the PRD.
Phase 2: Generate the PRD
Once you have enough information (and have confirmed with the developer that you've covered everything), produce the PRD file.
Save it as PRD.md in the project root. If one already exists, ask the developer whether to overwrite or create PRD-<slugified-name>.md.
PRD Format
Use this exact structure:
# PRD: [Plugin Name]
> Generated: [date]
> Status: Draft
## Overview
[2-3 sentences. What the plugin does, who it's for, and why it exists.]
## Goals
- [Goal 1 — what success looks like]
- [Goal 2]
- [Goal 3]
## Non-Goals
- [What this plugin explicitly does NOT do. Important for keeping scope tight.]
## Technical Requirements
### Environment
- PHP: [version]
- WordPress: [version]
- Dependencies: [Composer packages, npm packages, external plugins required]
### Architecture
- [OOP or procedural, and why]
- [Autoloading approach: PSR-4 via Composer or manual require_once]
- [Namespace: e.g. PluginName\]
### Data Model
- [Custom post types and their fields]
- [Custom taxonomies]
- [Custom database tables and their schema]
- [Options and their defaults]
- [User meta / post meta keys]
### Roles and Capabilities
- [Custom roles if any]
- [Custom capabilities and which roles get them]
## Features
### [Feature 1 Name]
**Description**: [What it does]
**User-facing**: [Yes/No — admin, frontend, or both]
**Details**:
- [Specific behaviour]
- [Specific behaviour]
### [Feature 2 Name]
[Same structure, repeat for each feature]
## Admin UI
- [Settings pages and what's on them]
- [Custom admin columns, meta boxes, or notices]
- [Admin menu location and structure]
## Frontend Output
- [What renders on the public site]
- [Blocks, shortcodes, template tags, or automatic output via hooks]
## REST API
- [Endpoints needed, methods, permissions]
- [Or "None" if not applicable]
## Third-Party Integrations
- [API name, purpose, authentication method]
- [Webhook handling if applicable]
- [Or "None" if not applicable]
## Scheduled Tasks
- [Cron events, frequency, what they do]
- [Or "None" if not applicable]
## CLI Commands
- [WP-CLI commands and what they do]
- [Or "None" if not applicable]
## Lifecycle
- **Activation**: [What happens — tables created, options set, roles added]
- **Deactivation**: [What happens — cron cleared, rewrites flushed]
- **Uninstall**: [What gets deleted — tables, options, meta, roles]
## Testing Strategy
- [What should have unit tests]
- [What should have integration tests]
- [What should have e2e tests]
- [Any specific edge cases to test]
## Open Questions
- [Anything unresolved from the discovery conversation]
- [Decisions that need to be made later]
After Generating
Once the PRD is saved, tell the developer:
- The file path.
- A brief summary of what's in it.
- Ask them to review it and flag anything missing or wrong.
- Tell them to run
/plugin-tasks PRD.md when they're happy with it to generate the build task list.