| name | ooo |
| description | Run the Ouroboros specification-first development loop: reduce ambiguity with a Socratic interview, freeze an immutable seed/spec, execute against that contract, verify before claiming success, and keep looping until completion is actually verified. Use when the user wants spec-first clarification, immutable requirements, drift-aware implementation, or a persistent completion loop that should keep going until tests / checks / acceptance criteria pass. Triggers on: ooo, ouroboros, interview, seed, run workflow, evaluate, evolve, ooo ralph, specification first, socratic interview, ambiguity reduction, persistent completion.
|
| allowed-tools | Read Write Bash Grep Glob WebFetch Agent |
| metadata | {"tags":"ooo, ouroboros, specification-first, socratic, interview, seed, evaluate, evolve, loop, completion, nine-minds, double-diamond, convergence, drift, multi-platform, mcp, plugin","platforms":"Claude Code, Codex CLI, Gemini CLI, OpenCode","keyword":"ooo","version":"0.29.0","source":"Q00/ouroboros","license":"MIT"} |
ooo — Ouroboros Specification-First Workflow
Stop prompting. Start specifying.
ooo is the portable Ouroboros method for spec-first development:
Interview → Seed → Execute → Evaluate → Evolve
↓
ooo ralph
(persist until verified)
Installation
Plugin (recommended for Claude Code)
claude plugin marketplace add Q00/ouroboros
pip
pip install ouroboros-ai
pip install ouroboros-ai[all]
Skill (any platform)
npx skills add https://github.com/akillness/oh-my-skills --skill ooo
Setup runtimes
ouroboros setup
ouroboros setup --runtime claude
ouroboros setup --runtime codex
ouroboros setup --runtime opencode --opencode-mode plugin
When to use
- Vague request needs a Socratic interview before coding starts
- Requirements should become an immutable seed/spec before implementation
- Task needs a verify-before-done loop, not a one-shot answer
- You want to keep going until completion is actually verified
- Measure drift against the original contract
- Repeated failures need structured unstuck step instead of blind retries
Do not use when
- Task is mainly platform setup or runtime commands →
omc / omx / ohmg
- Task is mainly permission posture, sandbox, trust folders → (configure via
ouroboros setup)
- Task needs integrated project ledgers + plan review + cleanup workflow →
jeo
- Task is only pre-implementation landscape research →
survey
Core commands
Interview — clarify before coding
ouroboros init start "build a task management CLI"
ouroboros init start --resume <interview-id>
ouroboros init list
Ambiguity gate
- Greenfield: Goal 40% + Constraints 30% + Success 30%
- Brownfield: Goal 35% + Constraints 25% + Success 25% + Context 15%
- Do not move to seed until Ambiguity ≤ 0.2
Seed — freeze the spec
After interview completes, a seed.yaml is generated in .ouroboros/seeds/.
goal: "Build a CLI task manager with SQLite persistence"
constraints:
- "Python 3.12+"
- "No external HTTP dependencies"
acceptance_criteria:
- "CRUD operations work end-to-end"
- "All unit tests pass"
Run — execute against the seed
ouroboros run workflow <seed.yaml>
ouroboros run workflow <seed.yaml> --sequential
ouroboros run workflow <seed.yaml> --no-qa
ouroboros run resume [execution-id]
Options
| Flag | Purpose |
|---|
-o/-O | Enable/disable orchestrator (default: on) |
--runtime | Override runtime backend |
-s | Execute acceptance criteria sequentially |
-n | Dry-run: validate without executing |
--no-qa | Skip post-execution QA evaluation |
Evaluate — verify before done
Three-stage gate:
- Mechanical — lint, tests, build, typecheck, coverage
- Semantic — acceptance criteria and goal alignment
- Consensus — optional multi-model agreement
ouroboros status executions
ouroboros status execution <execution-id> --events
Drift thresholds
| Range | Status |
|---|
| 0.00–0.15 | Excellent |
| 0.15–0.30 | Acceptable — watch closely |
| 0.30+ | Correct course before continuing |
Ralph — persistent completion loop
ouroboros run workflow seed.yaml
ouroboros run resume
Loop contract:
- execute
- verify (mechanical + semantic)
- record failure evidence
- adjust
- continue until verified or capped
Evolve — continuous refinement
Runs when the ontology or solution shape is still changing.
ouroboros run workflow seed.yaml
Stop condition: convergence similarity ≥ 0.95
Cancel
ouroboros cancel execution <id>
ouroboros cancel execution --all
ouroboros cancel execution --reason "requirements changed"
Config
ouroboros config show
ouroboros config show orchestrator
ouroboros config backend claude
ouroboros config backend codex
ouroboros config set orchestrator.permission_mode allowedTools
ouroboros config validate
Status & TUI
ouroboros status health
ouroboros status executions -n 20
ouroboros tui monitor
ouroboros tui monitor --backend slt
TUI keyboard shortcuts
| Key | Screen |
|---|
1 | Dashboard — phase progress, drift meter, cost |
2 | Execution — details, timeline, phase outputs |
3 | Logs — filterable log viewer |
4 | Debug — state inspector, raw events |
s | Session selector |
e | Lineage view |
p/r | Pause / resume |
q | Quit |
Unstuck mode
When repeated attempts fail, choose a deliberate persona instead of retrying blindly.
| Persona | When |
|---|
contrarian | Repeated similar failures |
simplifier | Too many options / paralysis |
researcher | Missing evidence |
hacker | Need momentum |
architect | Wrong foundation |
Nine agents in the pool: Socratic Interviewer, Ontologist, Seed Architect, Seed Closer, Semantic Evaluator, Consensus Reviewer, Evaluator, QA Judge, plus domain-specific specialists.
MCP server
ouroboros mcp serve
ouroboros mcp serve --transport sse --port 8080
ouroboros mcp info
claude mcp add ouroboros -- uvx --from ouroboros-ai[mcp] ouroboros mcp serve
Available MCP tools
ouroboros_execute_seed — execute a seed specification
ouroboros_session_status — get session status
ouroboros_query_events — query event history
Environment variables
| Variable | Purpose |
|---|
ANTHROPIC_API_KEY | Claude backend |
OPENAI_API_KEY | LiteLLM / Codex |
OPENROUTER_API_KEY | OpenRouter |
OUROBOROS_AGENT_RUNTIME | Override runtime |
OUROBOROS_LLM_BACKEND | Override LLM backend |
OUROBOROS_AGENT_PERMISSION_MODE | Permission mode |
Configuration files
| File | Location |
|---|
config.yaml | ~/.ouroboros/ |
credentials.yaml | ~/.ouroboros/ (chmod 600) |
ouroboros.db | ~/.ouroboros/ — SQLite event store |
ouroboros.log | ~/.ouroboros/logs/ |
Operating rules
- Clarify before coding — do not move to seed until ambiguity ≤ 0.2
- Freeze the seed — do not rewrite the contract mid-run
- Measure drift against the original seed, not latest chat rationale
- Verify before done — tests, checks, and acceptance criteria matter more than confidence
- Treat failure as data — every failed loop feeds the next attempt
- Keep runtime ownership separate — platform hooks belong in
omc / omx / ohmg
Examples
ouroboros init start "build a REST API with auth"
ouroboros run workflow .ouroboros/seeds/seed_<hash>.yaml
ouroboros status executions
ouroboros run workflow seed.yaml
ouroboros run resume
ouroboros tui monitor
ouroboros uninstall --keep-data
Source: Q00/ouroboros v0.29.0 — MIT License