Skill5.8k repo starsupdated 4d ago
interview
Socratic interview to crystallize vague requirements
Install in Claude Code
Copygit clone --depth 1 https://github.com/Q00/ouroboros /tmp/interview && cp -r /tmp/interview/skills/interview ~/.claude/skills/interviewThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# /ouroboros:interview
Socratic interview to crystallize vague requirements into clear specifications.
## Required Skill Capabilities
- `ask_user` — ask human-judgment questions through the active runtime's user-question surface.
- `inspect_code` — answer repo-local factual questions from exact local files before asking the user.
- `call_mcp` — use Ouroboros MCP tools for persistent interview state and seed generation.
- `run_lateral_review` — invoke lateral thinking subagents before milestone turns and direct-answer synthesis.
- `web_research` — fetch current external facts only when the interview genuinely depends on them.
- `run_shell` — run bounded local commands for version checks and repository inspection.
- `refine_answer` — confirm structured interpretations of free-text answers before forwarding them.
- `maintain_ledger` — keep ambiguity, gates, and unresolved decisions visible in the main session.
- `run_closure_gate` — audit readiness locally even when MCP reports `seed-ready`.
- `restate_goal` — restate the goal and require explicit approval before seed generation.
## Non-Skippable Gates
- Refine free-text answers that carry scope, constraints, or decisions.
- Maintain a visible ambiguity ledger in the main session.
- Treat MCP `seed-ready` as permission to audit closure, not as completion.
- Apply Seed Closer criteria before suggesting or running seed generation.
- Run the Restate gate before seed generation.
- Require explicit user approval before suggesting or running seed generation.
## Usage
```
ooo interview [topic]
/ouroboros:interview [topic]
```
**Trigger keywords:** "interview me", "clarify requirements"
## Instructions
When the user invokes this skill:
### Step 0: Version Check (runs before interview)
Before starting the interview, check if a newer version is available:
```bash
# 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`).
- If a newer version exists, ask the user through the active runtime's `ask_user` capability:
```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 interview", "description": "Continue with current version"}
],
"multiSelect": false
}]
}
```
- If "Update now":
- On Claude-plugin installs only:
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.
- On non-Claude runtimes, skip Claude plugin commands and proceed directly to the package-manager step for `ouroboros-ai`; do not require Claude-only commands or tools.
3. Detect the user's Python package manager and upgrade the MCP server:
- Check which tool installed `ouroboros-ai` by running these in order:
- `uv tool list 2>/dev/null | grep "^ouroboros-ai "` → if found, use `uv tool upgrade ouroboros-ai`
- `pipx list 2>/dev/null | grep "^ ouroboros-ai "` → if found, use `pipx upgrade ouroboros-ai`
- Otherwise, print: "Also upgrade the MCP server: `pip install --upgrade ouroboros-ai`" (do NOT run pip automatically)
4. Tell the user: "Updated! Restart your session to apply, then run `ooo interview` again."
- If "Skip": proceed immediately.
- If versions match, the check fails (network error, timeout, rate limit 403/429), or parsing fails/returns empty: **silently skip** and proceed.
Then choose the execution path:
### Step 0.5: Load MCP Tools (Required before Path A/B decision)
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before deciding between Path A and Path B.**
1. Use the active runtime's tool-discovery capability to find and load the interview MCP tool:
```
tool discovery query: "+ouroboros interview"
```
This searches for tools with "ouroboros" in the name related to "interview".
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_interview` (with a plugin prefix). After runtime tool discovery returns, the tool becomes callable.
3. If the tool is callable — already exposed, or loaded by discovery — proceed to **Path A**.
An empty discovery result for an already-exposed tool is expected, not a failure.
Proceed to **Path B** only if the tool is genuinely absent (no Ouroboros MCP server).
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
**CRITICAL — deferred-schema guard (prevents "Invalid tool parameters"):**
This skill makes `ouroboros_*` MCP calls across multiple turns, 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. If you call any `ouroboros_*` MCP tool
while its schema is not loaded in the **current** turn, the runtime rejects the
call with **"Invalid tool parameters"** before it ever reaches the server.
Therefore: **immediately before EVERY `ouroboros_*` MCP call in this skill, re-run
the tool-discovery load query for the specific MCP tool you are about to call**
(idempotentMore from this repository
autoSkill
Automatically converge from goal to A-grade Seed and execute it
brownfieldSkill
Scan and manage brownfield repository/worktree defaults for interviews
cancelSkill
Cancel stuck or orphaned executions
ouroboros-configSkill
Open or drive the Ouroboros settings GUI (browser, TUI, or conversational fallback)
evaluateSkill
Evaluate execution with three-stage verification pipeline
evolveSkill
Start or monitor an evolutionary development loop
ouroboros-helpSkill
Full reference guide for Ouroboros commands and agents
oooSkill
Start Ouroboros onboarding. Use when the user sends bare `ooo`, asks to start Ouroboros, or is using Ouroboros for the first time.