Kick off the Strategize stage. Spawns product-strategist (lead) with optional pricing-strategist support. Reads discovery + competitive briefs, outputs a strategy doc with falsifiable bets.
Installs into .claude/skills of the current project.
Are you the author of Pm Strategize?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/vandanaajaydubey111-pm-strategize)
---
name: pm-strategize
description: "Kick off the Strategize stage. Spawns product-strategist (lead) with optional pricing-strategist support. Reads discovery + competitive briefs, outputs a strategy doc with falsifiable bets."
---
## Codex host binding
- Treat references to Claude slash workflows as the equivalently named Codex skill.
- Before delegating to any specialist, read the `great-pm-runtime` skill and the selected packaged role file.
- Treat "invoke", "assign", "delegate", "spawn", and source Agent-tool instructions as a required Codex `spawn_agent` call with that role and a bounded assignment.
- For the spawn tool's `task_name` or `agent_name` identifier, replace canonical role-name hyphens with underscores (`query-refiner-pm` → `query_refiner_pm`). Keep canonical names unchanged in prompts, filenames, verdict logs, and user-facing output; this is an internal identifier mapping, not a role rename.
- Store every returned agent identifier. Never call a wait tool until a spawn has returned an identifier, and wait only on identifiers returned by successful spawns.
- If `spawn_agent` is unavailable or a spawn fails, report BLOCKED; do not impersonate the specialist or wait on an empty agent set.
- Resolve bundled paths from the installed GreatPM plugin root.
- Ignore Claude-only model aliases, colors, turn limits, and tool allowlists.
- Preserve GreatPM human gates, governance, state, and reporting contracts.
You are the great-pm `$pm-strategize` command. Stage 2 of the 6-stage loop.
## Parse arguments
- **`<initiative-slug>`** (required).
- **`--with-pricing`** (optional) → also spawn pricing-strategist for a
monetization angle.
## Pre-flight
```bash
SLUG="${1:?usage: $pm-strategize <initiative-slug> [--with-pricing]}"
ls .great-pm/PROJECT.md 2>/dev/null && echo "PROJECT_OK" || echo "NO_PROJECT"
ls .great-pm/drafts/discovery-brief-${SLUG}.md 2>/dev/null && echo "DISC_OK" || echo "NO_DISC"
ls .great-pm/drafts/competitive-brief-${SLUG}.md 2>/dev/null && echo "COMP_OK" || echo "NO_COMP"
mkdir -p .great-pm/drafts
```
If `NO_DISC` or `NO_COMP` → BLOCKED. Tell the user to run `$pm-discover` first.
## Operating procedure
0. **Step 0 — refine the user's query** (transparent Mode B). Invoke
`query-refiner-pm` with `$ARGUMENTS`. The refiner returns:
```
You typed: <original>
Refined to: <refined brief>
What changed: <one line>
Proceeding with refined. Reply "use original" to override.
```
Use the **refined** version as the brief for subsequent steps UNLESS
the user replies "use original". Log the refinement to
`.great-pm/refinements/$(date +%Y-%m-%d).log`. This wiring is
universal across great-pm commands per the gate-policy: explicit
discipline — you make the user's leverage visible while preserving
their ability to override.
1. **product-strategist** (always)
- Brief: read the discovery + competitive briefs. Author a strategy
doc with:
- The bet (one sentence, falsifiable).
- Why now (timing argument).
- The mechanism (how the bet works).
- The 3 strongest counter-arguments and the rebuttal.
- The "we are wrong if" condition (kill criterion).
- Output: `.great-pm/drafts/strategy-<slug>.md` using
`templates/STRATEGY-template.md`.
2. **pricing-strategist** (if `--with-pricing`)
- Brief: propose 2–3 monetization models, with willingness-to-pay
rationale per audience.
- Output: `.great-pm/drafts/pricing-plan-<slug>.md` using
`templates/PRICING-PLAN-template.md`.
3. Update PROJECT.md: stage `strategize` → complete. Next: `prioritize`.
4. **Suggest a $pm-review** on the strategy doc before $pm-prioritize:
```
Recommended: $pm-review .great-pm/drafts/strategy-<slug>.md --lens=strategy
```
(The strategy lens applies skeptical-triage — the bet must be
falsifiable and the strongest counter rebutted.)
## Reporting
- **DONE**: `DONE: $pm-strategize — strategy-<slug>.md ready[, pricing-plan-<slug>.md ready]. Suggested next: $pm-review --lens=strategy, then $pm-prioritize.`
- **BLOCKED**: missing discovery prereqs. tried + failed_because + need.
## Notes
- A strategy that can't fail isn't a strategy — it's a slogan. The
template forces the "we are wrong if" line.
- `pm-reviewer` is called explicitly here, not auto-invoked. Strategy
drafts often need 1–2 user-edit rounds before they're worth reviewing.