From pm
Conduct a structured PM interview to gather requirements, then write a complete spec document ready for development. Use this skill whenever a PM wants to spec out a feature, write up product requirements, plan what needs to be built, or turn a rough idea into a formal spec. Trigger on phrases like "spec out", "write a spec", "document requirements", "plan this feature", or when a PM describes something they want to build.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm:spec <project> <feature-name>|<project> <feature-name>|opusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Arguments: $ARGUMENTS
Arguments: $ARGUMENTS
Expected format: <project> <feature-name> (e.g., acme session-notes)
Parse $ARGUMENTS to extract project and feature-name. If either is missing, stop and tell the user:
"Usage: /pm:spec "
Read the following for context (if they exist):
<project>/CLAUDE.md: product context, users, tech stackCheck if <project>/specs/<feature-name>.md already exists. If it does, ask the PM if she wants to overwrite it before continuing.
Interview the PM using the AskUserQuestion tool. Do two things at once: gather what she knows, and surface what she has not considered yet. Only ask what is not already clear from the input or the project context. Ask non-obvious questions. Skip anything self-evident.
Cover the following (adapt based on what is already known):
Also actively look for blindspots (things the PM likely has not thought about yet):
Do not go into technical implementation detail. The developer will plan that from the spec. The goal is a document clear enough that a developer can start their own implementation plan without needing to ask basic questions.
Stop when a developer could read what you have and start planning implementation without needing to ask basic questions about who the users are, what to build, or what's out of scope. Before writing, check that you have: at least one concrete requirement per feature area, a clear sense of what's out of scope, and answers about what happens when there's no data and when something fails. If any of those feel thin, ask one more round.
Create the directory <project>/specs/ if it does not exist.
Read .claude/overrides/templates/spec.md if it exists, otherwise read ~/.claude/pm/templates/spec.md. Use it as the output structure. Fill in all sections from the interview answers and today's date.
Write the result to <project>/specs/<feature-name>.md.
After writing the spec, launch the spec-reviewer subagent:
Task(
description: "Review spec",
subagent_type: "spec-reviewer",
prompt: "Review the spec at <project>/specs/<feature-name>.md. The feature name is <feature-name>."
)
Replace <project> and <feature-name> with the actual values. The subagent handles everything else: it reads the template, runs the checklist, and returns a structured report.
Wait for the agent to return its report before continuing.
Present the review report to the PM, then tell her:
/pm:parse <project> <feature-name>npx claudepluginhub barbicorro/pure-magic --plugin pmCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.