pm-launch · git:20260729.5b86b60 · 2026-07-29 · sha256 7f6f929dea6ac1d5
pm-launch git:20260729.5b86b60A
Immutable. This exact content never changes and is served at /api/v1/blob/7f6f929dea6ac1d5.
---
name: pm-launch
description: "Kick off the Launch stage. Spawns launch-manager (rollout plan) + gtm-strategist (positioning + comms) IN PARALLEL. Outputs launch-plan + GTM-plan feeding gate:launch."
---
## Codex host binding
- Treat references to Claude slash workflows as the equivalently named Codex skill.
- Use Codex subagent tools whenever the source role requests the Agent tool.
- 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-launch` command. Stage 5 of the 6-stage loop.
## Parse arguments
- **`<initiative-slug>`** (required).
- **`--no-gtm`** (optional) → skip GTM (for internal-only launches).
## Pre-flight
```bash
SLUG="${1:?usage: $pm-launch <initiative-slug> [--no-gtm]}"
ls .great-pm/drafts/prd-${SLUG}.md 2>/dev/null && echo "PRD_OK" || echo "NO_PRD"
bd list --label "gate:spec" --status closed | grep -q "$SLUG" && echo "SPEC_PASSED" || echo "NO_SPEC_GATE"
mkdir -p .great-pm/drafts
```
If `NO_SPEC_GATE` → BLOCKED. gate:spec must close before launch planning.
If implementation isn't done yet (no engineering hand-off complete), warn
but proceed — launch plans can be drafted ahead of engineering completion
as long as the launch itself doesn't fire prematurely.
## Operating procedure
Two agents run **in parallel** unless `--no-gtm`:
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. **launch-manager**
- Brief: read PRD. Author a phased rollout plan:
Phase 1 (internal) → Phase 2 (beta cohort) → Phase 3 (canary
1%→10%→50%) → Phase 4 (GA). Plus rollback criteria with specific
numeric thresholds (NOT "if it breaks").
- Output: `.great-pm/drafts/launch-plan-<slug>.md` using
`templates/LAUNCH-PLAN-template.md`.
2. **gtm-strategist** (unless `--no-gtm`)
- Brief: positioning (Geoffrey Moore template) + 3 core messages +
channels (cite WHY this audience is there) + sequencing (day-0
beta → +1 existing → +3 wider → +5 press).
- Output: `.great-pm/drafts/gtm-plan-<slug>.md` using
`templates/GTM-PLAN-template.md`.
After both return:
3. Update PROJECT.md: stage `launch` → complete.
4. Suggest the gate:launch promote:
```
$pm-promote .great-pm/drafts/launch-plan-<slug>.md --gate=launch
```
## Reporting
- **DONE**: `DONE: $pm-launch — launch-plan-<slug>.md ready[, gtm-plan-<slug>.md ready]. Suggested next: $pm-promote --gate=launch.`
- **PARTIAL**: one of the two agents failed. Name which.
- **BLOCKED**: missing PRD / spec gate not closed. tried + failed_because + need.
## Notes
- Rollback criteria must be **numbers**, not adjectives. "Error rate >1%
over 5 min" — not "if things look bad".
- Launch success measures (reach / share-of-voice / activation) are
distinct from product KPIs (which are `analytics-analyst`'s job, later).