/superpm - one PM request, a verified artifact
One PM ask -> capture intent -> diverge by domain -> the smallest useful artifact -> an
independent critic checks it against the framework and the real decision -> stop.
68 PM frameworks live in reference/; this file routes the ask and names the loop. For a
one-paragraph note you could write directly, skip the skill.
Principles
- Serve the real decision. Name the decision the artifact drives before drafting; a
framework filled in for its own sake is waste.
- Smallest useful artifact. Only the frameworks the decision needs - no bolted-on
SWOT/persona/roadmap when the ask was one pricing call.
- Ground claims in evidence. Numbers, quotes, segments come from the user's data, docs, or
named assumptions - never invented.
- Surface hidden assumptions. The critic names unstated assumptions and missing pieces as
risks - never present an assumption as fact.
- Ask only when genuinely ambiguous. Read the repo/docs/data first; interview only
load-bearing, user-only choices (
reference/intent.md).
- Hard stops. Irreversible or outward-facing actions (publish, send, post, share
externally) need explicit consent.
- Trace the chain. EXECUTE -> FLOW -> STORYBOARD -> PACKAGE share the 기능명세 (SPEC) as one
source of truth (
reference/model.md); a flow node or screen callout with no SPEC is never
invented. Derived artifacts come from the spec, not beside it.
Intent capture - signal to domain
Read the request and route to one domain (the artifact named usually decides it). When the ask
spans domains, pick the primary deliverable and pull supporting frameworks from the others. When
the ask is to plan a buildable thing end-to-end (기획하자 / 개발하고 싶어, no single artifact
named), route to PLAN - a stepped session over the chain, not one artifact (reference/plan.md).
| Signal in the request |
Domain |
Reference |
| 기획하자 / 이거 개발하고 싶어 / 기획 도와줘 / plan this feature end-to-end / PRD부터 화면까지 |
PLAN (session) |
reference/plan.md |
| brainstorm ideas / risky assumptions / opportunity tree / prioritize features / customer interview / metrics |
DISCOVER |
reference/discover.md |
| product strategy / vision / value proposition / lean or business model / monetization / pricing / SWOT / PESTLE / Porter / Ansoff |
STRATEGY |
reference/strategy.md |
| PRD / OKRs / roadmap / sprint plan / retro / pre-mortem / user or job stories / stakeholder map / prioritization framework / red-team a plan |
EXECUTE |
reference/execute.md |
| user flow / 유저플로우 / flowchart / screen-to-screen flow / 화면 흐름 / 분기·상태 전이 |
FLOW |
reference/flow.md |
| 화면설계서 / 기능명세 / 스토리보드 / screen design doc / screen spec / wireframe / UI spec |
STORYBOARD |
reference/storyboard.md |
| implementation package / 구현 패키지 / 통합 산출물 번들 / export bundle / hand off to devs |
PACKAGE |
reference/package.md |
| personas / segments / customer journey / market sizing (TAM/SAM/SOM) / competitor analysis / sentiment |
RESEARCH |
reference/research.md |
| SQL from a question / cohort analysis / A/B test read-out |
ANALYTICS |
reference/analytics.md |
| go-to-market / beachhead / ICP / growth loops / GTM motion / battlecard |
GTM |
reference/gtm.md |
| marketing ideas / positioning / value-prop statements / product name / North Star metric |
GROWTH |
reference/growth.md |
| review or tailor a resume / draft an NDA or privacy policy / proofread |
TOOLKIT |
reference/toolkit.md |
| document an AI-built app / shipping artifacts / intended-vs-implemented gap |
AI-SHIP |
reference/ai-ship.md |
The domain decides which reference loads; the loop is the same for all. Cross-cutting: asks
about what the market/customers want (demand, trends, voice of customer) ground the artifact
in reference/signal.md first.
The loop - Capture, Frame, Draft, Critic, Deliver
Capture. Classify and record one line - Domain: <X> | Artifact: <Y> | Decision it serves: <Z> - even when nothing is ambiguous. If genuinely underspecified, run the
reference/intent.md gate (<=5 questions, one batched round, a recommended answer per
question). Resolve doc/data-answerable questions by reading, not asking.
Frame. Extend that line into the artifact's ## Intent block: classification, the real
decision, and the completion bar (what "done and trustworthy" looks like for this
framework). This block is the contract the critic checks against.
Draft. Load reference/<domain>.md and apply the named framework. Use the user's real
inputs; mark gaps as explicit assumptions. Smallest useful artifact - no filler frameworks.
Critic (independent). Run reference/critic.md. Independence is mechanical: if the
harness supports subagents, hand a fresh one only the ## Intent block + the draft;
otherwise switch stance and read cold. Red-team all four checks: missing framework sections,
unsupported claims, dodged decisions, unvalidated assumptions - each emitted as a risk. Do not
self-congratulate a draft to green.
Deliver. Fold blockers and gaps back in; leave user-owned risks in a ## Critic block.
Response shape: artifact -> remaining risks -> one line on what was checked against what ->
the one natural next artifact in the chain (DISCOVER -> STRATEGY -> EXECUTE -> FLOW ->
STORYBOARD -> PACKAGE; GTM/GROWTH for launch; ANALYTICS measures any) - offer it, don't start
it. Inline by default; write
files when multi-page or multi-file (STORYBOARD/PACKAGE: always files, default
templates/workspace.html - the interactive SSOT canvas) and report paths.
Outward/irreversible steps wait for explicit consent.
For a PLAN session (reference/plan.md), run this loop once per stage
(EXECUTE -> FLOW -> STORYBOARD -> PACKAGE), gating for the user after each and carrying the running
SSOT JSON forward; the whole chain is the deliverable, ending in workspace.html + a PACKAGE.
Follow-up turns
The loop is per-artifact, not per-message. On iteration:
- Substantive change (new claim, section, or decision) -> re-Draft, re-run the critic on the
delta only.
- Tone / format / length-only edits -> no critic re-run.
- New artifact or new domain -> new loop from Capture. "Another idea / different one" in
DISCOVER follows the idea-proposal batch rule (
reference/discover.md).
- Keep the loaded domain reference; do not re-read it each turn.
Shared references
The domain table above routes domain-specific reading. Load these only when needed:
| Read |
When |
reference/intent.md |
Capture: unresolved choices that only the user can answer |
reference/critic.md |
Independent review against the artifact's intent |
reference/signal.md |
Current market/customer evidence; uses last30days if installed |
reference/model.md |
Shared SPEC identifiers, entities, sync rules R1-R6, and validation codes for FLOW/STORYBOARD/PACKAGE |
templates/ |
Artifact scaffolds, including the shared templates/workspace.html canvas |
Output language
Write the artifact in the user's language. Keep framework names, metric names, and
machine-checked anchors (SQL, identifiers, file paths) in their canonical form.
1---2name: superpm3description: Produce product planning, strategy, research, analytics, and launch artifacts with independent critique. Includes PRDs, roadmaps, user flows, screen specs, implementation handoffs, and resume or policy-document review.4---56# /superpm - one PM request, a verified artifact78One PM ask -> capture intent -> diverge by domain -> the smallest useful artifact -> an9independent critic checks it against the framework and the real decision -> stop.101168 PM frameworks live in `reference/`; this file routes the ask and names the loop. For a12one-paragraph note you could write directly, skip the skill.1314## Principles1516- **Serve the real decision.** Name the decision the artifact drives before drafting; a17 framework filled in for its own sake is waste.18- **Smallest useful artifact.** Only the frameworks the decision needs - no bolted-on19 SWOT/persona/roadmap when the ask was one pricing call.20- **Ground claims in evidence.** Numbers, quotes, segments come from the user's data, docs, or21 named assumptions - never invented.22- **Surface hidden assumptions.** The critic names unstated assumptions and missing pieces as23 risks - never present an assumption as fact.24- **Ask only when genuinely ambiguous.** Read the repo/docs/data first; interview only25 load-bearing, user-only choices (`reference/intent.md`).26- **Hard stops.** Irreversible or outward-facing actions (publish, send, post, share27 externally) need explicit consent.28- **Trace the chain.** EXECUTE -> FLOW -> STORYBOARD -> PACKAGE share the 기능명세 (SPEC) as one29 source of truth (`reference/model.md`); a flow node or screen callout with no SPEC is never30 invented. Derived artifacts come from the spec, not beside it.3132## Intent capture - signal to domain3334Read the request and route to one domain (the artifact named usually decides it). When the ask35spans domains, pick the primary deliverable and pull supporting frameworks from the others. When36the ask is to **plan a buildable thing end-to-end** (기획하자 / 개발하고 싶어, no single artifact37named), route to **PLAN** - a stepped session over the chain, not one artifact (`reference/plan.md`).3839| Signal in the request | Domain | Reference |40|---|---|---|41| 기획하자 / 이거 개발하고 싶어 / 기획 도와줘 / plan this feature end-to-end / PRD부터 화면까지 | **PLAN** (session) | `reference/plan.md` |42| brainstorm ideas / risky assumptions / opportunity tree / prioritize features / customer interview / metrics | **DISCOVER** | `reference/discover.md` |43| product strategy / vision / value proposition / lean or business model / monetization / pricing / SWOT / PESTLE / Porter / Ansoff | **STRATEGY** | `reference/strategy.md` |44| PRD / OKRs / roadmap / sprint plan / retro / pre-mortem / user or job stories / stakeholder map / prioritization framework / red-team a plan | **EXECUTE** | `reference/execute.md` |45| user flow / 유저플로우 / flowchart / screen-to-screen flow / 화면 흐름 / 분기·상태 전이 | **FLOW** | `reference/flow.md` |46| 화면설계서 / 기능명세 / 스토리보드 / screen design doc / screen spec / wireframe / UI spec | **STORYBOARD** | `reference/storyboard.md` |47| implementation package / 구현 패키지 / 통합 산출물 번들 / export bundle / hand off to devs | **PACKAGE** | `reference/package.md` |48| personas / segments / customer journey / market sizing (TAM/SAM/SOM) / competitor analysis / sentiment | **RESEARCH** | `reference/research.md` |49| SQL from a question / cohort analysis / A/B test read-out | **ANALYTICS** | `reference/analytics.md` |50| go-to-market / beachhead / ICP / growth loops / GTM motion / battlecard | **GTM** | `reference/gtm.md` |51| marketing ideas / positioning / value-prop statements / product name / North Star metric | **GROWTH** | `reference/growth.md` |52| review or tailor a resume / draft an NDA or privacy policy / proofread | **TOOLKIT** | `reference/toolkit.md` |53| document an AI-built app / shipping artifacts / intended-vs-implemented gap | **AI-SHIP** | `reference/ai-ship.md` |5455The domain decides which reference loads; the loop is the same for all. Cross-cutting: asks56about *what the market/customers want* (demand, trends, voice of customer) ground the artifact57in `reference/signal.md` first.5859## The loop - Capture, Frame, Draft, Critic, Deliver60611. **Capture.** Classify and record one line - `Domain: <X> | Artifact: <Y> | Decision it62 serves: <Z>` - even when nothing is ambiguous. If genuinely underspecified, run the63 `reference/intent.md` gate (<=5 questions, one batched round, a recommended answer per64 question). Resolve doc/data-answerable questions by reading, not asking.65662. **Frame.** Extend that line into the artifact's `## Intent` block: classification, the real67 decision, and the completion bar (what "done and trustworthy" looks like for this68 framework). This block is the contract the critic checks against.69703. **Draft.** Load `reference/<domain>.md` and apply the named framework. Use the user's real71 inputs; mark gaps as explicit assumptions. Smallest useful artifact - no filler frameworks.72734. **Critic (independent).** Run `reference/critic.md`. Independence is mechanical: if the74 harness supports subagents, hand a fresh one only the `## Intent` block + the draft;75 otherwise switch stance and read cold. Red-team all four checks: missing framework sections,76 unsupported claims, dodged decisions, unvalidated assumptions - each emitted as a risk. Do not77 self-congratulate a draft to green.78795. **Deliver.** Fold blockers and gaps back in; leave user-owned risks in a `## Critic` block.80 Response shape: artifact -> remaining risks -> one line on what was checked against what ->81 the one natural next artifact in the chain (DISCOVER -> STRATEGY -> EXECUTE -> FLOW ->82 STORYBOARD -> PACKAGE; GTM/GROWTH for launch; ANALYTICS measures any) - offer it, don't start83 it. Inline by default; write84 files when multi-page or multi-file (STORYBOARD/PACKAGE: always files, default85 `templates/workspace.html` - the interactive SSOT canvas) and report paths.86 Outward/irreversible steps wait for explicit consent.8788For a **PLAN session** (`reference/plan.md`), run this loop once per stage89(EXECUTE -> FLOW -> STORYBOARD -> PACKAGE), gating for the user after each and carrying the running90SSOT JSON forward; the whole chain is the deliverable, ending in `workspace.html` + a PACKAGE.9192## Follow-up turns9394The loop is per-artifact, not per-message. On iteration:9596- Substantive change (new claim, section, or decision) -> re-Draft, re-run the critic on the97 delta only.98- Tone / format / length-only edits -> no critic re-run.99- New artifact or new domain -> new loop from Capture. "Another idea / different one" in100 DISCOVER follows the idea-proposal batch rule (`reference/discover.md`).101- Keep the loaded domain reference; do not re-read it each turn.102103## Shared references104105The domain table above routes domain-specific reading. Load these only when needed:106107| Read | When |108|---|---|109| `reference/intent.md` | Capture: unresolved choices that only the user can answer |110| `reference/critic.md` | Independent review against the artifact's intent |111| `reference/signal.md` | Current market/customer evidence; uses `last30days` if installed |112| `reference/model.md` | Shared SPEC identifiers, entities, sync rules R1-R6, and validation codes for FLOW/STORYBOARD/PACKAGE |113| `templates/` | Artifact scaffolds, including the shared `templates/workspace.html` canvas |114115## Output language116117Write the artifact in the user's language. Keep framework names, metric names, and118machine-checked anchors (SQL, identifiers, file paths) in their canonical form.