Write a product RFC (Request for Comments) on a proposed strategic direction or architectural product decision. Forces 2–3 options + costs + reversibility BEFORE you commit.
Installs into .claude/skills of the current project.
Are you the author of Pm Rfc?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/vandanaajaydubey111-pm-rfc)
---
name: pm-rfc
description: "Write a product RFC (Request for Comments) on a proposed strategic direction or architectural product decision. Forces 2–3 options + costs + reversibility BEFORE you commit."
---
## 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-rfc` command. Draft a product RFC on the proposed topic so the call is made with eyes open.
## 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. **Parse the topic** from `$ARGUMENTS`. If too vague to frame → ask one clarifying question, then proceed.
2. **Spawn `tradeoff-arbiter`** to surface 2–3 honest options, each with:
- What it gets
- What it costs (scope, time, resources, debt, vendor lock-in)
- Reversibility (Type-1 / Type-2)
- Confidence
3. **Spawn `pm-reviewer`** to stress-test the recommended option via `skeptical-triage` if the call is contested.
4. **Compose** the RFC at `.great-pm/drafts/RFC-<slug>.md` with this exact shape:
```markdown
# RFC — <topic>
Date: <YYYY-MM-DD>
Status: PROPOSED
## Problem
<One paragraph: what decision is being made, why now.>
## Options
### Option A — <name>
What we get: <one line>
What it costs: <scope / time / resources / debt>
Reversibility: Type-1 (one-way door) | Type-2 (two-way door)
Confidence: <low | medium | high>
### Option B — <name>
...
### Option C — Do nothing
(Always include — often a real choice.)
## Recommendation
<option> because <reason>. Confidence: <level>.
## Signal that would flip the recommendation
<one-line>
## Open questions for the human
1. <question>
## Decision: PENDING HUMAN APPROVAL
```
5. **Surface** the RFC to the user. **STOP** for the call.
## Output
A structured RFC ready for the human to approve, reject, or amend. Never auto-approved.
## Reporting
- **DONE**: `DONE: RFC drafted on <topic> — <N> options, recommendation: <option>.` artifact: the RFC path.
- **BLOCKED**: when the topic is too vague to frame even one option.
## Notes
- An RFC for a Type-1 decision (irreversible) deserves extra attention — pm-reviewer must run skeptical-triage.
- "Do nothing" is always a real option — never silently dropped.