[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10894":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":9,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},10894,"ouroboros","Q00\u002Fouroboros","Q00","Agent OS: Stop prompting. Start specifying.",null,"https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros","Python",4519,448,14,0,78,147,557,234,29.96,false,"main",[24,25,26],"ai-agent","mcp","agent-os","2026-06-12 02:02:28","\u003Cp align=\"right\">\n  \u003Cstrong>English\u003C\u002Fstrong> | \u003Ca href=\".\u002FREADME.ko.md\">한국어\u003C\u002Fa> | \u003Ca href=\".\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cbr\u002F>\n  ◯ ─────────── ◯\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fimages\u002Fouroboros.png\" width=\"520\" alt=\"Ouroboros\">\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Cstrong>O U R O B O R O S\u003C\u002Fstrong>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  ◯ ─────────── ◯\n  \u003Cbr\u002F>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Stop prompting. Start specifying.\u003C\u002Fstrong>\n  \u003Cbr\u002F>\n  \u003Csub>Agent OS for replayable, specification-first AI coding workflows\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fouroboros-ai\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fouroboros-ai?color=blue\" alt=\"PyPI\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Factions\u002Fworkflows\u002Ftest.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FQ00\u002Fouroboros\u002Ftest.yml?branch=main\" alt=\"Tests\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green\" alt=\"License\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#quick-start\">Quick Start\u003C\u002Fa> ·\n  \u003Ca href=\"#why-ouroboros\">Why\u003C\u002Fa> ·\n  \u003Ca href=\"#what-you-get\">Results\u003C\u002Fa> ·\n  \u003Ca href=\"#the-loop\">How It Works\u003C\u002Fa> ·\n  \u003Ca href=\"#commands\">Commands\u003C\u002Fa> ·\n  \u003Ca href=\"#from-wonder-to-ontology\">Philosophy\u003C\u002Fa>\n\u003C\u002Fp>\n\n**Turn a vague idea into a verified, working codebase -- across Claude Code, Codex CLI, OpenCode, and Hermes.**\n\nOuroboros is an Agent OS for AI coding: a local-first runtime layer that turns\nnon-deterministic agent work into a replayable, observable, policy-bound\nexecution contract. It replaces ad-hoc prompting with a structured\nspecification-first workflow: interview, crystallize, execute, evaluate,\nevolve.\n\n---\n\n## Why Ouroboros?\n\nMost AI coding fails at the **input**, not the output. The bottleneck is not AI capability -- it is human clarity.\n\n| Problem       | What Happens                     | Ouroboros Fix                                 |\n| :------------ | :------------------------------- | :-------------------------------------------- |\n| Vague prompts | AI guesses, you rework           | Socratic interview exposes hidden assumptions |\n| No spec       | Architecture drifts mid-build    | Immutable seed spec locks intent before code  |\n| Manual QA     | \"Looks good\" is not verification | 3-stage automated evaluation gate             |\n\n---\n\n## Quick Start\n\n**Install** — one command, everything auto-detected:\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FQ00\u002Fouroboros\u002Fmain\u002Fscripts\u002Finstall.sh | bash\n```\n\n**Build** — open your AI coding agent and go:\n\n```\n> ooo interview \"I want to build a task management CLI\"\n```\n\n> Works with Claude Code, Codex CLI, GitHub Copilot CLI, OpenCode, Hermes, Gemini, and Kiro CLI. The installer detects Claude Code, Codex CLI, and Hermes CLI automatically and registers the MCP server. For OpenCode, Kiro, or GitHub Copilot CLI, run `ouroboros setup --runtime \u003Copencode|kiro|copilot>` after installation. The Copilot CLI runtime live-discovers its model catalog via the GitHub Copilot models API and lets you pick a default during setup.\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Kiro CLI quick start\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\npip install 'ouroboros-ai[claude]'\nouroboros setup            # detects Kiro CLI and registers MCP server\n```\n\nSet runtime in `.env`:\n```\nOUROBOROS_RUNTIME=kiro\n```\n\nThen use `ooo` commands inside a Kiro CLI session.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>GitHub Copilot CLI quick start\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\ngh auth login                                # one-time GitHub auth (used for live model discovery)\npipx install 'ouroboros-ai[mcp]'             # or: uv tool install 'ouroboros-ai[mcp]'\nouroboros setup --runtime copilot            # discovers models live, picks a default,\n                                             # registers MCP server in ~\u002F.copilot\u002Fmcp-config.json\n```\n\nRestart your Copilot CLI session, then use `ooo` commands inside it. Hyphenated Anthropic model IDs (`claude-opus-4-6`) used elsewhere in your config are auto-mapped to the dotted Copilot form (`claude-opus-4.6`) at runtime, so existing configs keep working when you switch backends.\n\nSee the [GitHub Copilot CLI runtime guide](.\u002Fdocs\u002Fruntime-guides\u002Fcopilot.md) for full details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Other install methods\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n**Claude Code plugin only** (no system package):\n```bash\nclaude plugin marketplace add Q00\u002Fouroboros && claude plugin install ouroboros@ouroboros\n```\nThen run `ooo setup` inside a Claude Code session.\n\n**pip \u002F uv \u002F pipx**:\n```bash\npip install ouroboros-ai                # base\npip install ouroboros-ai[claude]        # + Claude Code deps\npip install ouroboros-ai[litellm]       # + LiteLLM multi-provider\npip install ouroboros-ai[mcp]           # + MCP server\u002Fclient support\npip install ouroboros-ai[tui]           # + Textual terminal UI\npip install ouroboros-ai[all]           # everything (claude + litellm + mcp + tui + dashboard)\nouroboros setup                         # configure runtime\n```\n\nLegacy compatibility: `ouroboros-ai[dashboard]` is still accepted as a compatibility alias while extras migrate.\n\nSee runtime guides: [Claude Code](.\u002Fdocs\u002Fruntime-guides\u002Fclaude-code.md) · [Codex CLI](.\u002Fdocs\u002Fruntime-guides\u002Fcodex.md) · [Hermes](.\u002Fdocs\u002Fruntime-guides\u002Fhermes.md) · [OpenCode](.\u002Fdocs\u002Fruntime-guides\u002Fopencode.md) · [Kiro CLI](.\u002Fdocs\u002Fruntime-guides\u002Fkiro.md) · [Gemini CLI](.\u002Fdocs\u002Fruntime-guides\u002Fgemini.md) · [GitHub Copilot CLI](.\u002Fdocs\u002Fruntime-guides\u002Fcopilot.md)\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Uninstall\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\nouroboros uninstall\n```\n\nRemoves all configuration, MCP registration, and data. See [UNINSTALL.md](.\u002FUNINSTALL.md) for details.\n\n\u003C\u002Fdetails>\n\n> **Python >= 3.12 required.** See [pyproject.toml](.\u002Fpyproject.toml) for the full dependency list.\n\n---\n\n## What You Get\n\nAfter one loop of the Ouroboros cycle, a vague idea becomes a verified codebase:\n\n| Step          | Before                  | After                                                                   |\n| :------------ | :---------------------- | :---------------------------------------------------------------------- |\n| **Interview** | *\"Build me a task CLI\"* | 12 hidden assumptions exposed, ambiguity scored to 0.19                 |\n| **Seed**      | No spec                 | Immutable specification with acceptance criteria, ontology, constraints |\n| **Evaluate**  | Manual review           | 3-stage gate: Mechanical (free) -> Semantic -> Multi-Model Consensus    |\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>What just happened?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```\ninterview  ->  Socratic questioning exposed 12 hidden assumptions\nseed       ->  Crystallized answers into an immutable spec (Ambiguity: 0.15)\nrun        ->  Executed via Double Diamond decomposition\nevaluate   ->  3-stage verification: Mechanical -> Semantic -> Consensus\n```\n\n> Use `ooo \u003Ccmd>` inside your AI coding agent session, or `ouroboros init start`, `ouroboros run seed.yaml`, etc. from the terminal.\n\nThe serpent completed one loop. Each loop, it knows more than the last.\n\n\u003C\u002Fdetails>\n\n---\n\n## How It Compares\n\nAI coding tools are powerful -- but they solve the **wrong problem** when the input is unclear.\n\n|                     | Vanilla AI Coding                        | Ouroboros                                                                       |\n| :------------------ | :--------------------------------------- | :------------------------------------------------------------------------------ |\n| **Vague prompt**    | AI guesses intent, builds on assumptions | Socratic interview forces clarity *before* code                                 |\n| **Spec validation** | No spec -- architecture drifts mid-build | Immutable seed spec locks intent; Ambiguity gate (\u003C= 0.2) blocks premature code |\n| **Evaluation**      | \"Looks good\" \u002F manual QA                 | 3-stage automated gate: Mechanical -> Semantic -> Multi-Model Consensus         |\n| **Rework rate**     | High -- wrong assumptions surface late   | Low -- assumptions surface in the interview, not in the PR review               |\n\n---\n\n## The Loop\n\nThe ouroboros -- a serpent devouring its own tail -- is not decoration. It IS the architecture:\n\n```\n    Interview -> Seed -> Execute -> Evaluate\n        ^                           |\n        +---- Evolutionary Loop ----+\n```\n\nEach cycle does not repeat -- it **evolves**. The output of evaluation feeds back as input for the next generation, until the system truly knows what it is building.\n\n| Phase         | What Happens                                                          |\n| :------------ | :-------------------------------------------------------------------- |\n| **Interview** | Socratic questioning exposes hidden assumptions                       |\n| **Seed**      | Answers crystallize into an immutable specification                   |\n| **Execute**   | Double Diamond: Discover -> Define -> Design -> Deliver               |\n| **Evaluate**  | 3-stage gate: Mechanical ($0) -> Semantic -> Multi-Model Consensus    |\n| **Evolve**    | Wonder *(\"What do we still not know?\")* -> Reflect -> next generation |\n\n> *\"This is where the Ouroboros eats its tail: the output of evaluation*\n> *becomes the input for the next generation's seed specification.\"*\n> -- `reflect.py`\n\nConvergence is reached when ontology similarity >= 0.95 -- when the system has questioned itself into clarity.\n\n### Ralph: The Loop That Never Stops\n\n`ooo ralph` runs the evolutionary loop persistently -- across session boundaries -- until convergence is reached. Each step is **stateless**: the EventStore reconstructs the full lineage, so even if your machine restarts, the serpent picks up where it left off.\n\n```\nRalph Cycle 1: evolve_step(lineage, seed) -> Gen 1 -> action=CONTINUE\nRalph Cycle 2: evolve_step(lineage)       -> Gen 2 -> action=CONTINUE\nRalph Cycle 3: evolve_step(lineage)       -> Gen 3 -> action=CONVERGED\n                                                +-- Ralph stops.\n                                                    The ontology has stabilized.\n```\n\n---\n\n## Commands\n\nInside AI coding agent sessions, use `ooo \u003Ccmd>` skills. From the terminal, use the `ouroboros` CLI.\n\n| Skill (`ooo`)    | CLI equivalent                                                    | What It Does                                                 |\n| :--------------- | :---------------------------------------------------------------- | :----------------------------------------------------------- |\n| `ooo setup`      | `ouroboros setup`                                                 | Register runtime and configure project (one-time)            |\n| `ooo interview`  | `ouroboros init start`                                            | Socratic questioning -- expose hidden assumptions            |\n| `ooo auto`       | `ouroboros auto`                                                  | Goal → A-grade Seed → execution handoff with bounded loops   |\n| `ooo seed`       | *(generated by interview)*                                        | Crystallize into immutable spec                              |\n| `ooo run`        | `ouroboros run seed.yaml`                                         | Execute via Double Diamond decomposition                     |\n| `ooo evaluate`   | *(via MCP)*                                                       | 3-stage verification gate                                    |\n| `ooo evolve`     | *(via MCP)*                                                       | Evolutionary loop until ontology converges                   |\n| `ooo unstuck`    | *(via MCP)*                                                       | 5 lateral thinking personas when you are stuck               |\n| `ooo status`     | `ouroboros status executions` \u002F `ouroboros status execution \u003Cid>` | Session tracking + (MCP-only) drift detection                |\n| `ooo resume-session` | `ouroboros resume`                                           | List in-flight sessions and re-attach commands              |\n| `ooo cancel`     | `ouroboros cancel execution [\u003Cid>\\|--all]`                        | Cancel stuck or orphaned executions                          |\n| `ooo ralph`      | *(via MCP)*                                                       | Persistent loop until verified                               |\n| `ooo tutorial`   | *(interactive)*                                                   | Interactive hands-on learning                                |\n| `ooo help`       | `ouroboros --help`                                                | Full reference                                               |\n| `ooo pm`         | *(via MCP)*                                                       | PM-focused interview + PRD generation                        |\n| `ooo qa`         | *(via skill)*                                                     | General-purpose QA verdict for any artifact                  |\n| `ooo update`     | `ouroboros update`                                                | Check for updates + upgrade to latest                        |\n| `ooo brownfield` | *(via skill)*                                                     | Scan and manage brownfield repo\u002Fworktree defaults            |\n| `ooo publish`    | *(skill\u002Fruntime surface; uses `gh` CLI)*                          | Publish a Seed as GitHub Epic\u002FTask issues for team workflows |\n\n> Not all skills have direct CLI equivalents. Some (`evaluate`, `evolve`, `unstuck`, `ralph`, `publish`) are available through agent skills, runtime rules, or MCP tools rather than a direct `ouroboros \u003Csubcommand>` shell command.\n> `\u002Fresume` is reserved for Claude Code's built-in session picker; use `ooo resume-session` for Ouroboros in-flight sessions.\n\nSee the [CLI reference](.\u002Fdocs\u002Fcli-reference.md) for full details.\n\n---\n\n## The Nine Minds\n\nNine agents, each a different mode of thinking. Loaded on-demand, never preloaded:\n\n| Agent                    | Role                               | Core Question                                       |\n| :----------------------- | :--------------------------------- | :-------------------------------------------------- |\n| **Socratic Interviewer** | Questions-only. Never builds.      | *\"What are you assuming?\"*                          |\n| **Ontologist**           | Finds essence, not symptoms        | *\"What IS this, really?\"*                           |\n| **Seed Architect**       | Crystallizes specs from dialogue   | *\"Is this complete and unambiguous?\"*               |\n| **Evaluator**            | 3-stage verification               | *\"Did we build the right thing?\"*                   |\n| **Contrarian**           | Challenges every assumption        | *\"What if the opposite were true?\"*                 |\n| **Hacker**               | Finds unconventional paths         | *\"What constraints are actually real?\"*             |\n| **Simplifier**           | Removes complexity                 | *\"What's the simplest thing that could work?\"*      |\n| **Researcher**           | Stops coding, starts investigating | *\"What evidence do we actually have?\"*              |\n| **Architect**            | Identifies structural causes       | *\"If we started over, would we build it this way?\"* |\n\n---\n\n## Under the Hood\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Architecture overview -- Python >= 3.12\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```\nsrc\u002Fouroboros\u002F\n+-- bigbang\u002F        Interview, ambiguity scoring, brownfield explorer\n+-- routing\u002F        PAL Router -- 3-tier cost optimization (1x \u002F 10x \u002F 30x)\n+-- execution\u002F      Double Diamond, hierarchical AC decomposition\n+-- evaluation\u002F     Mechanical -> Semantic -> Multi-Model Consensus\n+-- evolution\u002F      Wonder \u002F Reflect cycle, convergence detection\n+-- resilience\u002F     4-pattern stagnation detection, 5 lateral personas\n+-- observability\u002F  3-component drift measurement, auto-retrospective\n+-- persistence\u002F    Event sourcing (SQLAlchemy + aiosqlite), checkpoints\n+-- orchestrator\u002F   Runtime abstraction layer (Claude Code, Codex CLI, OpenCode, Hermes)\n+-- core\u002F           Types, errors, seed, ontology, security\n+-- providers\u002F      LiteLLM adapter (100+ models)\n+-- mcp\u002F            MCP client\u002Fserver integration\n+-- plugin\u002F         Plugin system (skill\u002Fagent auto-discovery)\n+-- tui\u002F            Terminal UI dashboard\n+-- cli\u002F            Typer-based CLI\n```\n\n**Key internals:**\n- **PAL Router** -- Frugal (1x) -> Standard (10x) -> Frontier (30x) with auto-escalation on failure, auto-downgrade on success\n- **Drift** -- Goal (50%) + Constraint (30%) + Ontology (20%) weighted measurement, threshold \u003C= 0.3\n- **Brownfield** -- Auto-detects config files across multiple language ecosystems\n- **Evolution** -- Up to 30 generations, convergence at ontology similarity >= 0.95\n- **Stagnation** -- Detects spinning, oscillation, no-drift, and diminishing returns patterns\n- **Agent OS runtime** -- Replayable execution contract across capability discovery, policy, directives, event journal, and agent processes\n- **Runtime backends** -- Pluggable abstraction layer (`orchestrator.runtime_backend` config) with first-class support for Claude Code, Codex CLI, OpenCode, and Hermes; same workflow spec, different execution engines\n\nSee [Architecture](.\u002Fdocs\u002Farchitecture.md) for the full design document.\n\n\u003C\u002Fdetails>\n\n---\n\n## From Wonder to Ontology\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>The philosophical engine behind Ouroboros\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> *Wonder -> \"How should I live?\" -> \"What IS 'live'?\" -> Ontology*\n> -- Socrates\n\nEvery great question leads to a deeper question -- and that deeper question is always **ontological**: not *\"how do I do this?\"* but *\"what IS this, really?\"*\n\n```\n   Wonder                          Ontology\n\"What do I want?\"    ->    \"What IS the thing I want?\"\n\"Build a task CLI\"   ->    \"What IS a task? What IS priority?\"\n\"Fix the auth bug\"   ->    \"Is this the root cause, or a symptom?\"\n```\n\nThis is not abstraction for its own sake. When you answer *\"What IS a task?\"* -- deletable or archivable? solo or team? -- you eliminate an entire class of rework. **The ontological question is the most practical question.**\n\nOuroboros embeds this into its architecture through the **Double Diamond**:\n\n```\n    * Wonder          * Design\n   \u002F  (diverge)      \u002F  (diverge)\n  \u002F    explore      \u002F    create\n \u002F                 \u002F\n* ------------ * ------------ *\n \\                 \\\n  \\    define       \\    deliver\n   \\  (converge)     \\  (converge)\n    * Ontology        * Evaluation\n```\n\nThe first diamond is **Socratic**: diverge into questions, converge into ontological clarity. The second diamond is **pragmatic**: diverge into design options, converge into verified delivery. Each diamond requires the one before it -- you cannot design what you have not understood.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Ambiguity Score: The Gate Between Wonder and Code\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nThe Interview does not end when you feel ready -- it ends when the **math** says you are ready. Ouroboros quantifies ambiguity as the inverse of weighted clarity:\n\n```\nAmbiguity = 1 - Sum(clarity_i * weight_i)\n```\n\nEach dimension is scored 0.0-1.0 by the LLM (temperature 0.1 for reproducibility), then weighted:\n\n| Dimension                                                     | Greenfield | Brownfield |\n| :------------------------------------------------------------ | :--------: | :--------: |\n| **Goal Clarity** -- *Is the goal specific?*                   |    40%     |    35%     |\n| **Constraint Clarity** -- *Are limitations defined?*          |    30%     |    25%     |\n| **Success Criteria** -- *Are outcomes measurable?*            |    30%     |    25%     |\n| **Context Clarity** -- *Is the existing codebase understood?* |     --     |    15%     |\n\n**Threshold: Ambiguity \u003C= 0.2** -- only then can a Seed be generated.\n\n```\nExample (Greenfield):\n\n  Goal: 0.9 * 0.4  = 0.36\n  Constraint: 0.8 * 0.3  = 0.24\n  Success: 0.7 * 0.3  = 0.21\n                        ------\n  Clarity             = 0.81\n  Ambiguity = 1 - 0.81 = 0.19  \u003C= 0.2 -> Ready for Seed\n```\n\nWhy 0.2? Because at 80% weighted clarity, the remaining unknowns are small enough that code-level decisions can resolve them. Above that threshold, you are still guessing at architecture.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Ontology Convergence: When the Serpent Stops\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nThe evolutionary loop does not run forever. It stops when consecutive generations produce ontologically identical schemas. Similarity is measured as a weighted comparison of schema fields:\n\n```\nSimilarity = 0.5 * name_overlap + 0.3 * type_match + 0.2 * exact_match\n```\n\n| Component        | Weight | What It Measures                                   |\n| :--------------- | :----: | :------------------------------------------------- |\n| **Name overlap** |  50%   | Do the same field names exist in both generations? |\n| **Type match**   |  30%   | Do shared fields have the same types?              |\n| **Exact match**  |  20%   | Are name, type, AND description all identical?     |\n\n**Threshold: Similarity >= 0.95** -- the loop converges and stops evolving.\n\nBut raw similarity is not the only signal. The system also detects pathological patterns:\n\n| Signal                  | Condition                                        | What It Means                      |\n| :---------------------- | :----------------------------------------------- | :--------------------------------- |\n| **Stagnation**          | Similarity >= 0.95 for 3 consecutive generations | Ontology has stabilized            |\n| **Oscillation**         | Gen N ~ Gen N-2 (period-2 cycle)                 | Stuck bouncing between two designs |\n| **Repetitive feedback** | >= 70% question overlap across 3 generations     | Wonder is asking the same things   |\n| **Hard cap**            | 30 generations reached                           | Safety valve                       |\n\n```\nGen 1: {Task, Priority, Status}\nGen 2: {Task, Priority, Status, DueDate}     -> similarity 0.78 -> CONTINUE\nGen 3: {Task, Priority, Status, DueDate}     -> similarity 1.00 -> CONVERGED\n```\n\nTwo mathematical gates, one philosophy: **do not build until you are clear (Ambiguity \u003C= 0.2), do not stop evolving until you are stable (Similarity >= 0.95).**\n\n\u003C\u002Fdetails>\n\n---\n\n## Contributing\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\ncd ouroboros\nuv sync --all-groups && uv run pytest\n```\n\n[Issues](https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fissues) · [Discussions](https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fdiscussions) · [Contributing Guide](.\u002FCONTRIBUTING.md)\n\n---\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=Q00\u002Fouroboros&type=Date#gh-light-mode-only\">\n  \u003Cimg src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Q00\u002Fouroboros&type=Date&theme=light\" alt=\"Star History Chart\" width=\"100%\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=Q00\u002Fouroboros&type=Date#gh-dark-mode-only\">\n  \u003Cimg src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Q00\u002Fouroboros&type=Date&theme=dark\" alt=\"Star History Chart\" width=\"100%\" \u002F>\n\u003C\u002Fa>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Cem>\"The beginning is the end, and the end is the beginning.\"\u003C\u002Fem>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Cstrong>The serpent does not repeat -- it evolves.\u003C\u002Fstrong>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Ccode>MIT License\u003C\u002Fcode>\n\u003C\u002Fp>\n","Ouroboros 是一个面向AI编码的代理操作系统，旨在将非确定性的代理工作转化为可重放、可观测且受策略约束的执行合约。它通过结构化的先规范后执行的工作流程（包括访谈、明确化、执行、评估和进化）取代了临时提示，支持从模糊想法到验证过的可用代码库的转变。该项目使用Python编写，适合需要提高AI编码效率和质量的场景，如开发任务管理CLI等应用。Ouroboros能与Claude Code、Codex CLI、OpenCode及Hermes等多种AI编码代理工具集成，特别适用于希望减少因输入不明确导致的编码失败情况，增强架构稳定性和自动评估过程的开发者。",2,"2026-06-11 03:30:41","trending"]