.claude/skills/pm-plan/SKILL.md
Plan new work by creating issues or feature requests from a natural language description. Researches the domain online, analyzes the codebase for context, and decomposes complex descriptions into multiple entities when sensible. Use when the user describes work needed, a bug to fix, a feature to add, or says things like "we need...", "there's a problem with...", "I want to add...", "plan out...", or "let's track...". Also triggers for vague requests that need clarification before becoming actionable work items.
npx skillsauth add pinkroosterai/PinkRoosterMcp pm-planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform a natural language description into well-structured tracking entities (issues and/or feature requests). The goal is to produce entities that are detailed enough for /pm-scaffold to generate realistic work packages from — so invest in understanding the problem space before creating anything.
pwdmcp__pinkrooster__get_project_status with projectPath set to the directory aboveprojectIdBefore asking questions or creating anything, build context from two sources:
Calibrate the depth of exploration to the request:
Simple bug reports (clear error message, known location, reproduction steps): Quick lookup — a single Grep/Glob to confirm the affected file exists. Spend under a minute here. The goal is just to populate affectedComponent accurately, not to diagnose the root cause.
Moderate requests (CRUD addition, extend existing feature): Targeted exploration — find the existing pattern to follow, note the relevant files and conventions. A few Grep/Glob calls.
Complex features (new system, integration, cross-cutting concern): Deep exploration — understand the relevant architectural layers, existing infrastructure that can be reused, and how the feature fits into the current design. Use Grep/Glob and Read to trace through related code.
In all cases:
$ARGUMENTSLoad current items to avoid duplicates and understand project context:
mcp__pinkrooster__get_issue_overview with projectId and stateFilter: "Active" + "Inactive"mcp__pinkrooster__get_feature_requests with projectId and stateFilter: "Active" + "Inactive"If a closely matching item already exists, surface it to the user before creating anything new.
For non-trivial work — especially new features, integrations, or unfamiliar domains — use online research to inform the planning. This produces better descriptions, more accurate scoping, and catches edge cases early.
When to research:
When to skip:
How to research:
WebSearch with targeted queries about the technology/patternWebFetch to pull relevant documentation pagesFold research findings into the entity description — mention relevant libraries, standards, common pitfalls, or architectural considerations discovered.
Analyze $ARGUMENTS and determine whether this is a single item or multiple distinct items.
If decomposing, present the breakdown to the user for confirmation before creating anything. Use the AskUserQuestion tool:
[{label: "Create all", description: "Create all {N} items as described"}, {label: "Adjust", description: "Let me modify the breakdown first"}, {label: "Keep as one", description: "Create a single item instead"}]If the user selects "Adjust", ask what they'd like to change and iterate.
For each item (whether single or decomposed), determine the type:
Issue indicators (create an Issue):
Feature Request indicators (create a Feature Request):
If ambiguous, use the AskUserQuestion tool:
[{label: "Bug/Issue", description: "Something broken, slow, or insecure"}, {label: "Feature/Enhancement", description: "A new capability or improvement"}]Issue types:
BugRegressionPerformanceIssueSecurityVulnerabilityTechnicalDebtFeature categories:
FeatureEnhancementImprovementCriticalMajorMinorTrivialCriticalHighLowMediumAfter classification but before creation, check if anything important is missing or ambiguous. Ask concisely — combine related questions into a single AskUserQuestion call rather than asking one at a time.
Worth clarifying:
Not worth asking about:
/pm-scaffold will figure out from the codebaseIf the description is clear and specific, skip this step entirely.
Present the full plan using the AskUserQuestion tool:
For a single item:
[{label: "Create", description: "Proceed"}, {label: "Adjust", description: "Change something first"}, {label: "Cancel", description: "Don't create"}]For multiple items:
[{label: "Create all", description: "Create all {N} items"}, {label: "Select", description: "Let me pick which ones to create"}, {label: "Cancel", description: "Don't create anything"}]Call mcp__pinkrooster__create_or_update_issue with:
projectIdname: concise, descriptive titledescription: comprehensive description incorporating codebase context and research findings. Include: what's wrong, where it manifests, impact, and any relevant technical context discovered during analysisissueType: mapped typeseverity: mapped severitypriority: mapped priorityaffectedComponent: if identifiable from codebase analysisstepsToReproduce: if the description includes or implies reproduction stepsCall mcp__pinkrooster__create_or_update_feature_request with:
projectIdname: descriptive title following pattern {Feature}: {qualifier}description: comprehensive specification incorporating research findings. Include: what the feature does, why it matters, how it fits with existing functionality, and any technical considerations discoveredcategory: mapped categorypriority: mapped prioritybusinessValue: derived from the "why" — who benefits and what becomes possibleuserStories: array of structured stories extracted from the description [{"role": "...", "goal": "...", "benefit": "..."}]. Derive 2-4 stories covering distinct user roles or capabilities. Make them concrete and specific.requester: "Claude Code" (or user name if known)Before each create call, check against the deduplication list from Step 2.
Exact duplicate (same bug, same feature, same scope): Do not create a new entity. Surface the existing item to the user and suggest next steps (scaffold, refine, or update it).
Partial overlap (existing item covers part of the scope, or the new request expands on it): Prefer updating the existing entity over creating a new one. Call the update endpoint with projectId + the existing entity's ID + expanded fields. This avoids fragmentation — one well-maintained item is better than two overlapping ones.
Use the AskUserQuestion tool to confirm:
[{label: "Update existing", description: "Expand {existingId} with the new details (recommended)"}, {label: "Create new", description: "Create a separate item — the scope is different enough"}, {label: "Skip", description: "The existing item already covers this"}]No match: Proceed silently.
## Created {count} Item(s)
| # | Type | ID | Name | Priority |
|---|------|----|------|----------|
| 1 | {Issue/FR} | {entityId} | {name} | {priority} |
| ... |
### Research Applied
- {key finding 1 from online research, if any}
- {key finding 2, if any}
### Next Steps
- **Refine** (FRs): `/pm-refine-fr {frId}` — add user stories and detail
- **Scaffold**: `/pm-scaffold {entityId}` — create implementation work package
- **Triage**: `/pm-triage` — review priorities across all items
- **Status**: `/pm-status` — project overview
Use the AskUserQuestion tool:
Build options based on what was created:
If Scaffold: Delegate to /pm-scaffold {entityId}
If Refine: Delegate to /pm-refine-fr {frId}
If Triage: Delegate to /pm-triage
If Done: Close with a summary of entity IDs for future reference
/pm-triage after creation to help prioritizetools
Verify acceptance criteria for a phase or entire work package. Runs verification based on each criterion's method (AutomatedTest, Manual, AgentReview) and records results via the MCP tool.
development
Diagnose the root cause of a bug, error, crash, or unexpected behavior. Traces through code, logs, services, database state, and git history to find why something is broken. Researches error messages online for known issues. Produces a diagnosis with evidence and suggested fix. Use when the user reports a problem, error message, stack trace, test failure, or says things like "why is this happening", "this is broken", "I'm getting an error", "something's wrong with...", "debug this", or "figure out why...".
development
Review and prioritize open issues and feature requests. Analyzes severity, age, and codebase impact to recommend priority adjustments and next steps.
tools
Show project status dashboard with issue/FR/WP counts, active items, blocked items, and priority next actions. Use when the user asks about project status, progress, what's happening, what needs attention, or what to work on.