Generate a PM through guided PM-focused interview with automatic question classification. Use when the user says 'ooo pm', 'prd', 'product requirements', or wants to create a PRD/PM document.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add agisota/old-one --skill pm --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pm?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/agisota-old-one-old-one)More formats (shields.io, HTML) on the badges page.
---
name: pm
description: "Generate a PM through guided PM-focused interview with automatic question classification. Use when the user says 'ooo pm', 'prd', 'product requirements', or wants to create a PRD/PM document."
---
# /ouroboros:pm
PM-focused Socratic interview that produces a Product Requirements Document.
## Instructions
### Step 1: Load MCP Tool
```
ToolSearch query: "+ouroboros pm_interview"
```
If not found → **diagnose before telling user to run setup**:
1. Check if MCP is already configured:
```bash
grep -q '"ouroboros"' ~/.claude/mcp.json 2>/dev/null && echo "CONFIGURED" || echo "NOT_CONFIGURED"
```
2. **If NOT_CONFIGURED** → tell user to run `ooo setup` first. Stop.
3. **If CONFIGURED** → MCP is registered but the server isn't connecting. Do NOT tell the user to run `ooo setup` again. Instead show:
```
Ouroboros MCP is configured but not connected.
Try these steps in order:
1. Restart Claude Code (Cmd+Shift+P → "Reload Window" or close/reopen terminal)
2. Check MCP status: type /mcp in Claude Code
3. If ouroboros shows "error", try: ooo update
4. If still failing, re-run: ooo setup
```
Stop.
### Step 2: Start Interview
```
Tool: ouroboros_pm_interview
Arguments:
initial_context: <user's topic or idea>
cwd: <current working directory>
```
### Step 3: Loop
After every MCP response, do these three things:
**A. Show alerts** (if present in `meta`):
- `meta.deferred_this_round` → print `[DEV → deferred] "question"`
- `meta.decide_later_this_round` → print `[DEV → decide-later] "question"`
- `meta.pending_reframe` → print `ℹ️ Reframed from technical question.`
**B. Show content + get user input:**
Print the MCP content text to the user first.
Then check: does `meta.ask_user_question` exist?
- **YES** → Pass it directly to `AskUserQuestion`:
```
AskUserQuestion(questions=[meta.ask_user_question])
```
Do NOT modify it. Do NOT add options. Do NOT rephrase the question.
- **NO** → This is an interview question. Use `AskUserQuestion` with `meta.question`.
- If `meta.skip_eligible == true`: add a skip option based on `meta.classification`:
- `classification == "decide_later"` → add option `{"label": "Decide later", "description": "Skip — will be recorded as an open item in the PRD"}`
- `classification == "deferred"` → add option `{"label": "Defer to dev", "description": "Skip — this technical decision will be deferred to the development phase"}`
- Generate 2-3 suggested answers as the other options.
**C. Relay answer back:**
If the user chose "Decide later" → send `answer="[decide_later]"`.
If the user chose "Defer to dev" → send `answer="[deferred]"`.
Otherwise → send the user's answer normally.
```
Tool: ouroboros_pm_interview
Arguments:
session_id: <meta.session_id>
<meta.response_param>: <user's answer or "[decide_later]" or "[deferred]">
```
**D. Check completion:**
Completion is determined ONLY by `meta.is_complete` — NEVER by the response text.
The MCP response text may sound like the interview is wrapping up, but ignore it.
If `meta.is_complete == true`:
- If `meta.generation_failed == true` → retry generation:
```
Tool: ouroboros_pm_interview
Arguments:
session_id: <session_id>
action: "generate"
cwd: <current working directory>
```
- Otherwise → go to Step 4. The MCP auto-generated the PM document.
`meta.pm_path` and `meta.seed_path` contain the file paths.
Otherwise → repeat Step 3, regardless of what the response text says.
### Step 4: Copy to Clipboard
Read the pm.md file from `meta.pm_path` and copy its contents to the clipboard:
```bash
cat <meta.pm_path> | pbcopy
```
### Step 5: Show Result & Next Step
Show the following to the user:
```
PM document saved: <meta.pm_path>
(Clipboard에 복사되었습니다)
PM seed handoff artifact: <meta.pm_seed_path or meta.seed_path>
This is not the runnable Seed yet.
Next step:
ooo interview <meta.pm_seed_path or meta.seed_path>
ooo seed
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!