auto
Automatically converge from goal to A-grade Seed and execute it
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.
$ npx -y skills add Q00/ouroboros --skill pm --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pmContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
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."
PM-focused Socratic interview that produces a Product Requirements Document.
Before starting the PM interview, check if a newer version is available:
# Fetch latest release tag from GitHub (timeout 3s to avoid blocking) curl -s --max-time 3 https://api.github.com/repos/Q00/ouroboros/releases/latest | grep -o '"tag_name": "[^"]*"' | head -1
Compare the result with the current version in the active runtime's local plugin metadata (for Claude installs this is `.claude-plugin/plugin.json`).
{
"questions": [{
"question": "Ouroboros <latest> is available (current: <local>). Update before starting?",
"header": "Update",
"options": [
{"label": "Update now", "description": "Update plugin to latest version (restart required to apply)"},
{"label": "Skip, start PM interview", "description": "Continue with current version"}
],
"multiSelect": false
}]
}1. Run `claude plugin marketplace update ouroboros` via the active runtime's `run_shell` capability (refresh marketplace index). If this fails, tell the user "⚠️ Marketplace refresh failed, continuing…" and proceed. 2. Run `claude plugin update ouroboros@ouroboros` via the active runtime's `run_shell` capability (update plugin/skills). If this fails, inform the user and stop — do NOT proceed to the package-manager step.
3. Detect the user's Python package manager and upgrade the MCP server:
4. Tell the user: "Updated! Restart your session to apply, then run `ooo pm` again."
tool discovery query: "+ouroboros pm_interview"
**CRITICAL — deferred-schema guard (prevents "Invalid tool parameters"):** This is a multi-turn loop and each turn runs in a fresh tool context. A deferred tool's schema loaded on one turn is NOT guaranteed to still be loaded on the next. Calling `ouroboros_pm_interview` while its schema is unloaded in the **current** turn makes the runtime reject it with **"Invalid tool parameters"** every message. Therefore **re-run `tool discovery query: "+ouroboros pm_interview"` immediately before EVERY `ouroboros_pm_interview` call** below (idempotent — a no-op if already loaded). If the load ever returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), follow the not-found diagnosis below instead of retrying the failing call.
If not found → fail closed without inspecting or mutating `~/.claude/mcp.json`. Standalone Claude SDK setup requires MCP 1.x and cannot activate the Ouroboros MCP 2 server with its configured backend. Explain:
The PM interview MCP tool is unavailable in this runtime. Configure a supported CLI-backed host with: ouroboros setup --runtime <codex|opencode|kiro|copilot|hermes> Then restart that host and retry ooo pm. Claude SDK profiles ([claude] and [claude-sdk]) stay on MCP 1.x; the separate [mcp] server uses [claude-cli]. Do not combine both MCP majors or add a direct Python fallback.
Stop.
Tool: ouroboros_pm_interview Arguments: initial_context: <user's topic or idea> cwd: <current working directory>
**This response carries the first question, so Step 3 applies to it** — including the fan-out in 3-A2. The first question is the one most likely to be answered from memory, so it is the last one to skip evidence on.
Apply this to **every** MCP response that carries a question, including the one Step 2 returned and any question a resume plans anew.
**Batched turns (RFC #2222).** A response may carry one to three questions at once: `meta.question_batch` lists them and `meta.question_advisories` carries one advisory envelope per question, each with its own `question_advisory_subagents` and `question_advisory_fanout_id`. Treat every question of the turn exactly as a single question is treated below, with these batch mechanics:
across all questions, in a single parallel batch. Never leave a question's lanes undispatched: every question shown keeps its evidence.
envelope's `question_advisory_fanout_id` and `question_advisory_result_correlation_key`; one `ouroboros_submit_fanout_results` call per envelope.
`answers: [{question, answer}, ...]`, one entry per question the turn asked, each naming its own exact question text. One call records the turn, so collect every answer first — and never auto-answer, auto-defer, or decide-later one on the user's behalf to complete the set. The server
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro and more.
Repo: Q00/ouroboros
Automatically converge from goal to A-grade Seed and execute it
Scan and manage brownfield repository/worktree defaults for interviews
Open or drive the Ouroboros settings GUI (browser, TUI, or conversational fallback)
Evaluate execution with three-stage verification pipeline