[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Q00--ouroboros":3,"tool-Q00--ouroboros":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":32,"env_os":98,"env_gpu":99,"env_ram":99,"env_deps":100,"category_tags":112,"github_topics":114,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":127,"updated_at":128,"faqs":129,"releases":157},6531,"Q00\u002Fouroboros","ouroboros","Stop prompting. Start specifying.","Ouroboros 是一款专为 AI 编程助手设计的“规范优先”工作流引擎，旨在帮助用户将模糊的想法转化为经过验证的可运行代码。它并不直接生成代码，而是作为用户与 Claude Code、Codex CLI 等 AI 运行时之间的智能中间层，通过“访谈、固化、执行、评估、演进”的结构化流程，取代传统低效的随意提示词交互。\n\n许多 AI 编程项目失败并非因为模型能力不足，而是源于人类需求表达不清。Ouroboros 精准解决了这一痛点：它通过苏格拉底式的引导访谈挖掘潜在假设，利用不可变的种子规范锁定架构意图以防偏离，并引入三阶段自动化评估机制替代主观的人工检查，从而大幅减少返工和架构漂移。\n\n这款工具非常适合希望提升 AI 编程产出质量的开发者、技术团队以及需要严谨工程落地的研究人员。其独特亮点在于支持通过 OpenClaw 集成到 Slack 或 Discord 等聊天平台，让团队协作更流畅；同时提供灵活的插件化安装方式，能自动适配多种主流 AI 编程环境。Ouroboros 让 AI 编程从“碰运气”变为可控的工程实践，帮助使用者更清晰地定义问题，更可靠地获得结果。","\u003Cp align=\"right\">\n  \u003Cstrong>English\u003C\u002Fstrong> | \u003Ca href=\".\u002FREADME.ko.md\">한국어\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cbr\u002F>\n  ◯ ─────────── ◯\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_readme_4abdc10d7011.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>Specification-first workflow engine for AI coding agents\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---\n\n> **New: OpenClaw Integration** — Ouroboros now runs inside chat platforms via [OpenClaw](.\u002Fdocs\u002Fguides\u002Fopenclaw-channel-workflow.md).\n> Install the skill, connect MCP, and your team can run `ooo` commands directly from Slack, Discord, or any OpenClaw-supported channel.\n>\n> ```bash\n> clawhub install ouroboros\n> openclaw mcp set ouroboros '{\"command\":\"uvx\",\"args\":[\"--from\",\"ouroboros-ai[mcp]\",\"ouroboros\",\"mcp\",\"serve\"]}'\n> ```\n\n---\n\n**Turn a vague idea into a verified, working codebase -- with any AI coding agent.**\n\nOuroboros sits between you and your AI runtime (Claude Code, Codex CLI, or others). It replaces ad-hoc prompting with a structured specification-first workflow: interview, crystallize, execute, evaluate, evolve.\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, and OpenCode. The installer detects Claude Code and Codex CLI automatically and registers the MCP server. For OpenCode, run `ouroboros setup --runtime opencode` after installation.\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) · [OpenCode](.\u002Fdocs\u002Fruntime-guides\u002Fopencode.md)\n\nChat platform integration (OpenClaw \u002F Slack \u002F Discord):\n```bash\nclawhub install ouroboros                    # install OpenClaw skill\nopenclaw mcp set ouroboros '{\"command\":\"uvx\",\"args\":[\"--from\",\"ouroboros-ai[mcp]\",\"ouroboros\",\"mcp\",\"serve\"]}'\n```\n> If `openclaw mcp set` is not recognized, run `openclaw update` to get the latest version.\n\nGuide: [Channel workflow integration](.\u002Fdocs\u002Fguides\u002Fopenclaw-channel-workflow.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 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 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 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\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)\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- **Runtime backends** -- Pluggable abstraction layer (`orchestrator.runtime_backend` config) with first-class support for Claude Code and Codex CLI; 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\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_readme_936d227b88b7.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_readme_4769f616a1da.png\" 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","\u003Cp align=\"right\">\n  \u003Cstrong>English\u003C\u002Fstrong> | \u003Ca href=\".\u002FREADME.ko.md\">한국어\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cbr\u002F>\n  ◯ ─────────── ◯\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_readme_4abdc10d7011.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>停止随意提问，开始明确规范。\u003C\u002Fstrong>\n  \u003Cbr\u002F>\n  \u003Csub>面向 AI 编码代理的规范优先工作流引擎\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\">快速入门\u003C\u002Fa> ·\n  \u003Ca href=\"#why-ouroboros\">为什么选择它\u003C\u002Fa> ·\n  \u003Ca href=\"#what-you-get\">你能得到什么\u003C\u002Fa> ·\n  \u003Ca href=\"#the-loop\">工作原理\u003C\u002Fa> ·\n  \u003Ca href=\"#commands\">常用命令\u003C\u002Fa> ·\n  \u003Ca href=\"#from-wonder-to-ontology\">哲学理念\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n> **新功能：OpenClaw 集成** — Ouroboros 现在可以通过 [OpenClaw](.\u002Fdocs\u002Fguides\u002Fopenclaw-channel-workflow.md) 在聊天平台上运行。\n> 安装技能并连接 MCP 后，你的团队可以直接从 Slack、Discord 或任何支持 OpenClaw 的频道中使用 `ooo` 命令。\n>\n> ```bash\n> clawhub install ouroboros\n> openclaw mcp set ouroboros '{\"command\":\"uvx\",\"args\":[\"--from\",\"ouroboros-ai[mcp]\",\"ouroboros\",\"mcp\",\"serve\"]}'\n> ```\n\n---\n\n**将模糊的想法转化为经过验证的可用代码库——无论使用哪种 AI 编码代理。**\n\nOuroboros 位于你和你的 AI 运行时（Claude Code、Codex CLI 等）之间。它用结构化的规范优先工作流取代了随意的提示方式：访谈、凝练、执行、评估、迭代。\n\n---\n\n## 为什么选择 Ouroboros？\n\n大多数 AI 编码失败的原因在于 **输入**，而非输出。瓶颈并不在于 AI 的能力，而在于人类表达的清晰度。\n\n| 问题 | 发生的情况 | Ouroboros 的解决方案 |\n|:--------|:-------------|:--------------|\n| 模糊的提示 | AI 会猜测，最终需要反复修改 | 苏格拉底式访谈揭示隐藏的假设 |\n| 缺乏规范 | 架构在开发过程中逐渐偏离 | 不可变的初始规范在编码前锁定意图 |\n| 手动 QA | “看起来不错”并不代表真正验证 | 三阶段自动化评估流程 |\n\n---\n\n## 快速入门\n\n**安装** — 一条命令，自动检测所有依赖：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FQ00\u002Fouroboros\u002Fmain\u002Fscripts\u002Finstall.sh | bash\n```\n\n**构建** — 打开你的 AI 编码代理即可开始：\n\n```\n> ooo interview \"我想构建一个任务管理 CLI\"\n```\n\n> 支持 Claude Code、Codex CLI 和 OpenCode。安装程序会自动检测 Claude Code 和 Codex CLI，并注册 MCP 服务器。对于 OpenCode，请在安装后运行 `ouroboros setup --runtime opencode`。\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>其他安装方法\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n**仅 Claude Code 插件版**（无需系统包）：\n```bash\nclaude plugin marketplace add Q00\u002Fouroboros && claude plugin install ouroboros@ouroboros\n```\n然后在 Claude Code 会话中运行 `ooo setup`。\n\n**pip \u002F uv \u002F pipx**：\n```bash\npip install ouroboros-ai                # 基础包\npip install ouroboros-ai[claude]        # + Claude Code 依赖\npip install ouroboros-ai[litellm]       # + LiteLLM 多提供商支持\npip install ouroboros-ai[mcp]           # + MCP 服务器\u002F客户端支持\npip install ouroboros-ai[tui]           # + Textual 终端 UI\npip install ouroboros-ai[all]           # 全部功能（Claude + Litellm + MCP + TUI + 控制面板）\nouroboros setup                         # 配置运行时\n```\n\n旧版兼容性：`ouroboros-ai[dashboard]` 仍作为兼容别名被接受，同时其他扩展功能正在逐步迁移。\n\n查看运行时指南：[Claude Code](.\u002Fdocs\u002Fruntime-guides\u002Fclaude-code.md) · [Codex CLI](.\u002Fdocs\u002Fruntime-guides\u002Fcodex.md) · [OpenCode](.\u002Fdocs\u002Fruntime-guides\u002Fopencode.md)\n\n聊天平台集成（OpenClaw \u002F Slack \u002F Discord）：\n```bash\nclawhub install ouroboros                    # 安装 OpenClaw 技能\nopenclaw mcp set ouroboros '{\"command\":\"uvx\",\"args\":[\"--from\",\"ouroboros-ai[mcp]\",\"ouroboros\",\"mcp\",\"serve\"]}'\n```\n> 如果 `openclaw mcp set` 命令未被识别，请运行 `openclaw update` 以获取最新版本。\n\n指南：[频道工作流集成](.\u002Fdocs\u002Fguides\u002Fopenclaw-channel-workflow.md)\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>卸载\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\nouroboros uninstall\n```\n\n此命令会移除所有配置、MCP 注册以及相关数据。详细信息请参阅 [UNINSTALL.md](.\u002FUNINSTALL.md)。\n\n\u003C\u002Fdetails>\n\n> **需 Python >= 3.12。** 完整依赖列表请参见 [pyproject.toml](.\u002Fpyproject.toml)。\n\n---\n\n## 你能得到什么\n\n经过一轮 Ouroboros 流程后，一个模糊的想法就会变成一个经过验证的代码库：\n\n| 步骤 | 之前 | 之后 |\n|:-----|:-------|:------|\n| **访谈** | *“给我做一个任务 CLI”* | 揭示 12 个隐藏假设，歧义度降至 0.19 |\n| **种子** | 无规范 | 不可变的规范，包含验收标准和约束条件 |\n| **评估** | 手动审查 | 三阶段门控：机械检查（免费）→ 语义检查 → 多模型共识 |\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>刚才发生了什么？\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```\ninterview  ->  苏格拉底式提问揭示了 12 个隐藏假设\nseed       ->  将答案凝练为不可变的规范（歧义度：0.15）\nrun        ->  通过双钻石分解执行\nevaluate   ->  三阶段验证：机械检查 → 语义检查 → 多模型共识\n```\n\n> 可以在 AI 编码代理会话中使用 `ooo \u003Ccmd>`，或直接在终端中运行 `ouroboros init start`、`ouroboros run seed.yaml` 等命令。\n\n这条蛇完成了一次循环。每一次循环，它都比上一次更了解情况。\n\n\u003C\u002Fdetails>\n\n---\n\n## 对比分析\n\nAI 编码工具功能强大——但在输入不清晰的情况下，它们解决的是 **错误的问题**。\n\n| | 原始 AI 编码 | Ouroboros |\n|:--|:------------------|:---------|\n| **模糊的提示** | AI 根据猜测构建代码 | 苏格拉底式访谈在编码前强制澄清意图 |\n| **规范验证** | 无规范——架构在开发过程中偏离 | 不可变的初始规范锁定意图；歧义度门控（≤ 0.2）阻止过早生成代码 |\n| **评估** | “看起来不错”\u002F手动 QA | 三阶段自动化门控：机械检查 → 语义检查 → 多模型共识 |\n| **返工率** | 高——错误假设往往在后期才暴露 | 低——假设在访谈阶段就被发现，而不是在 PR 审查时 |\n\n---\n\n## 循环\n\n衔尾蛇——一条吞食自己尾巴的蛇——并非装饰，它本身就是架构：\n\n```\n    访谈 -> 种子 -> 执行 -> 评估\n        ^                           |\n        +---- 进化循环 ----+\n```\n\n每个周期都不会重复，而是**进化**。评估的输出会作为下一代的输入返回，直到系统真正明白它在构建什么。\n\n| 阶段 | 发生什么 |\n|:------|:-------------|\n| **访谈** | 苏格拉底式提问揭示隐藏假设 |\n| **种子** | 答案凝结成不可变的规范 |\n| **执行** | 双钻模型：发现 -> 定义 -> 设计 -> 交付 |\n| **评估** | 三阶段门控：机械验证（$0）-> 语义验证 -> 多模型共识 |\n| **进化** | 怀疑 *(\"我们还有什么不知道的？\")* -> 反思 -> 下一代 |\n\n> *\"这就是衔尾蛇咬住自己尾巴的地方：评估的输出*\n> *成为下一代种子规范的输入。\"*\n> -- `reflect.py`\n\n当本体论相似度 ≥ 0.95 时，收敛就达到了——这时系统已经通过自我质疑变得清晰明了。\n\n### 拉尔夫：永不停歇的循环\n\n`ooo ralph` 持续运行进化循环——跨会话边界——直到收敛为止。每一步都是**无状态的**：事件存储会重建完整的 lineage，因此即使你的机器重启，这条蛇也会从它停止的地方继续前进。\n\n```\n拉尔夫第1轮：evolve_step(lineage, seed) -> 第1代 -> action=CONTINUE\n拉尔夫第2轮：evolve_step(lineage)       -> 第2代 -> action=CONTINUE\n拉尔夫第3轮：evolve_step(lineage)       -> 第3代 -> action=CONVERGED\n                                                +-- 拉尔夫停止。\n                                                    本体论已稳定。\n```\n\n---\n\n## 命令\n\n在 AI 编码代理会话中，使用 `ooo \u003Ccmd>` 技能。在终端中，则使用 `ouroboros` CLI。\n\n| 技能 (`ooo`) | CLI 对应 | 它的作用 |\n|:---------------|:---------------|:-------------|\n| `ooo setup` | `ouroboros setup` | 注册运行时并配置项目（一次性） |\n| `ooo interview` | `ouroboros init start` | 苏格拉底式提问——揭示隐藏假设 |\n| `ooo seed` | *(由访谈生成)* | 凝结成不可变规范 |\n| `ooo run` | `ouroboros run seed.yaml` | 通过双钻分解执行 |\n| `ooo evaluate` | *(通过 MCP)* | 三阶段验证门控 |\n| `ooo evolve` | *(通过 MCP)* | 进化循环，直到本体论收敛 |\n| `ooo unstuck` | *(通过 MCP)* | 当你卡住时使用的五种横向思维角色 |\n| `ooo status` | `ouroboros status executions` \u002F `ouroboros status execution \u003Cid>` | 会话跟踪 + （仅限 MCP）漂移检测 |\n| `ooo cancel` | `ouroboros cancel execution [\u003Cid>\\|--all]` | 取消卡住或孤立的执行 |\n| `ooo ralph` | *(通过 MCP)* | 持续循环，直到验证完成 |\n| `ooo tutorial` | *(交互式)* | 互动式实践学习 |\n| `ooo help` | `ouroboros --help` | 完整参考 |\n| `ooo pm` | *(通过 MCP)* | 以 PM 为中心的访谈 + PRD 生成 |\n| `ooo qa` | *(通过技能)* | 适用于任何工件的一般性 QA 结论 |\n| `ooo update` | `ouroboros update` | 检查更新并升级到最新版本 |\n| `ooo brownfield` | *(通过技能)* | 扫描和管理旧代码库的默认设置 |\n| `ooo publish` | *(技能\u002F运行时界面；使用 `gh` CLI)* | 将种子发布为 GitHub Epic\u002FTask 问题，用于团队工作流 |\n\n> 并非所有技能都有直接的 CLI 对应命令。其中一些（`evaluate`、`evolve`、`unstuck`、`ralph`、`publish`）是通过代理技能、运行时规则或 MCP 工具提供的，而不是直接通过 `ouroboros \u003C子命令>` 的 shell 命令。\n\n完整详情请参阅 [CLI 参考](.\u002Fdocs\u002Fcli-reference.md)。\n\n---\n\n## 九种思维\n\n九个代理，每一种代表一种不同的思维方式。按需加载，从不预加载：\n\n| 代理 | 角色 | 核心问题 |\n|:------|:-----|:--------------|\n| **苏格拉底式访谈者** | 仅提问，从不构建。 | *\"你在假设什么？\"* |\n| **本体论者** | 寻找本质，而非症状 | *\"这到底是什么？\"* |\n| **种子架构师** | 从对话中提炼规范 | *\"这是否完整且无歧义？\"* |\n| **评估者** | 三阶段验证 | *\"我们建对了吗？\"* |\n| **反叛者** | 质疑每一个假设 | *\"如果相反的情况成立呢？\"* |\n| **黑客** | 寻找非常规路径 | *\"哪些约束实际上是真实的？\"* |\n| **简化者** | 去除复杂性 | *\"最简单可行的是什么？\"* |\n| **研究者** | 停止编码，开始调查 | *\"我们到底有什么证据？\"* |\n| **架构师** | 识别结构性原因 | *\"如果我们重新开始，还会这样构建吗？\"* |\n\n---\n\n## 内部机制\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>架构概览 —— Python >= 3.12\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```\nsrc\u002Fouroboros\u002F\n+-- bigbang\u002F        访谈、歧义评分、旧代码库探索者\n+-- routing\u002F        PAL 路由器 —— 三层成本优化（1x \u002F 10x \u002F 30x）\n+-- execution\u002F      双钻模型、分层 AC 分解\n+-- evaluation\u002F     机械验证 -> 语义验证 -> 多模型共识\n+-- evolution\u002F      怀疑 \u002F 反思循环、收敛检测\n+-- resilience\u002F     四种停滞模式检测、五种横向思维角色\n+-- observability\u002F  三组件漂移测量、自动回顾\n+-- persistence\u002F    事件溯源（SQLAlchemy + aiosqlite）、检查点\n+-- orchestrator\u002F   运行时抽象层（Claude Code、Codex CLI）\n+-- core\u002F           类型、错误、种子、本体论、安全\n+-- providers\u002F      LiteLLM 适配器（100+ 模型）\n+-- mcp\u002F            MCP 客户端\u002F服务器集成\n+-- plugin\u002F         插件系统（技能\u002F代理自动发现）\n+-- tui\u002F            终端 UI 仪表盘\n+-- cli\u002F            基于 Typer 的 CLI\n```\n\n**关键内部组件：**\n- **PAL 路由器** —— 节俭（1x）-> 标准（10x）-> 前沿（30x），失败时自动升级，成功时自动降级\n- **漂移** —— 目标（50%）+ 约束（30%）+ 本体论（20%）加权测量，阈值 ≤ 0.3\n- **旧代码库** —— 自动检测多种语言生态系统的配置文件\n- **进化** —— 最多 30 代，本体论相似度 ≥ 0.95 时收敛\n- **停滞** —— 检测空转、振荡、无漂移和收益递减等模式\n- **运行时后端** —— 可插拔的抽象层（`orchestrator.runtime_backend` 配置），对 Claude Code 和 Codex CLI 提供一流支持；使用相同的流程规范，但执行引擎不同\n\n完整设计文档请参阅 [架构](.\u002Fdocs\u002Farchitecture.md)。\n\n\u003C\u002Fdetails>\n\n---\n\n## 从疑惑到本体论\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Ouroboros 背后的哲学引擎\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> *疑惑 -> “我该如何生活？” -> “‘生活’究竟是什么？” -> 本体论*\n> -- 苏格拉底\n\n每一个伟大的问题都会引向一个更深层次的问题——而这个更深层次的问题总是**本体论**性质的：不是“我该怎么做？”，而是“这到底是什么？”。\n\n```\n   疑惑                          本体论\n“我想要什么？”    ->    “我想要的东西到底是什么？”\n“构建一个任务 CLI”   ->    “什么是任务？什么是优先级？”\n“修复认证漏洞”   ->    “这是根本原因，还是症状？”\n```\n\n这并不是为了抽象而抽象。当你回答“什么是任务？”——可删除还是可归档？个人任务还是团队任务？——你就能消除整整一类重复工作。**本体论问题是最实际的问题。**\n\nOuroboros 通过**双菱形模型**将这一理念融入其架构中：\n\n```\n    * 疑惑          * 设计\n   \u002F  (发散)      \u002F  (发散)\n  \u002F    探索      \u002F    创造\n \u002F                 \u002F\n* ------------ * ------------ *\n \\                 \\\n  \\    定义       \\    交付\n   \\  (收敛)     \\  (收敛)\n    * 本体论        * 评估\n```\n\n第一个菱形是**苏格拉底式的**：先发散提出问题，再收敛到本体论层面的清晰理解。第二个菱形则是**务实的**：在设计选项上发散，最终收敛到经过验证的交付成果。每个菱形都依赖于前一个菱形——如果你没有真正理解问题，就无法进行有效的设计。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>模糊度评分：连接疑惑与代码的门槛\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n面试并不会在你觉得准备好了时结束——它会在**数学计算**表明你已准备妥当时才结束。Ouroboros 将模糊度量化为加权清晰度的倒数：\n\n```\n模糊度 = 1 - 总和(清晰度_i * 权重_i)\n```\n\n每个维度由 LLM 打分（0.0 至 1.0，温度设为 0.1 以保证一致性），然后按权重计算：\n\n| 维度           | 全新项目 | 既有项目 |\n|:---------------|:--------:|:--------:|\n| **目标清晰度** —— *目标是否具体？* | 40% | 35% |\n| **约束清晰度** —— *限制条件是否明确？* | 30% | 25% |\n| **成功标准** —— *结果是否可衡量？* | 30% | 25% |\n| **上下文清晰度** —— *是否理解现有代码库？* | -- | 15% |\n\n**阈值：模糊度 ≤ 0.2**——只有达到这一标准，才能生成种子代码。\n\n```\n示例（全新项目）：\n\n  目标：0.9 * 0.4  = 0.36\n  约束：0.8 * 0.3  = 0.24\n  成功：0.7 * 0.3  = 0.21\n                        ------\n  清晰度             = 0.81\n  模糊度 = 1 - 0.81 = 0.19  ≤ 0.2 -> 可生成种子代码\n```\n\n为什么是 0.2？因为在加权清晰度达到 80% 时，剩余的未知因素已经足够小，可以在代码层面进一步澄清。如果超过这个阈值，你就仍在对架构进行猜测。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>本体论收敛：当巨蛇停止时\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n进化循环不会无限进行下去。当连续几代产生的本体论结构完全相同时，循环就会停止。相似性通过比较各代模式字段的加权得分来衡量：\n\n```\n相似性 = 0.5 * 名称重叠 + 0.3 * 类型匹配 + 0.2 * 完全一致\n```\n\n| 组件         | 权重 | 衡量内容                     |\n|:-------------|:----:|:-----------------------------|\n| **名称重叠** | 50%  | 两代之间是否存在相同的字段名？ |\n| **类型匹配** | 30%  | 共享字段的类型是否相同？     |\n| **完全一致** | 20%  | 字段的名称、类型和描述是否完全相同？ |\n\n**阈值：相似性 ≥ 0.95**——循环收敛并停止进化。\n\n但仅靠原始相似度并不足以判断。系统还会检测一些异常模式：\n\n| 信号         | 条件                           | 含义                         |\n|:-------------|:-------------------------------|:-----------------------------|\n| **停滞**     | 连续三代相似性 ≥ 0.95          | 本体论已稳定               |\n| **振荡**     | 第 N 代 ≈ 第 N-2 代（周期为 2） | 卡在两种设计方案之间反复切换 |\n| **重复反馈** | 连续三代中问题重叠率 ≥ 70%     | 疑惑始终围绕相同问题       |\n| **上限**     | 达到 30 代                     | 安全保护机制               |\n\n```\n第 1 代：{任务，优先级，状态}\n第 2 代：{任务，优先级，状态，截止日期}     -> 相似性 0.78 -> 继续迭代\n第 3 代：{任务，优先级，状态，截止日期}     -> 相似性 1.00 -> 收敛\n```\n\n两个数学门槛，一种哲学理念：**在不够清晰之前不要构建代码（模糊度 ≤ 0.2），在不够稳定之前不要停止进化（相似性 ≥ 0.95）。**\n\n\u003C\u002Fdetails>\n\n---\n\n## 贡献指南\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\ncd ouroboros\nuv sync --all-groups && uv run pytest\n```\n\n[问题](https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fissues) · [讨论](https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fdiscussions) · [贡献指南](.\u002FCONTRIBUTING.md)\n\n---\n\n## 星级历史\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\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_readme_936d227b88b7.png\" alt=\"星级历史图表\" 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\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_readme_4769f616a1da.png\" alt=\"星级历史图表\" width=\"100%\" \u002F>\n\u003C\u002Fa>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Cem>\"开始即是结束，结束即是开始。\"\u003C\u002Fem>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Cstrong>巨蛇不会重复——它会进化。\u003C\u002Fstrong>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Ccode>MIT 许可证\u003C\u002Fcode>\n\u003C\u002Fp>","# Ouroboros 快速上手指南\n\nOuroboros 是一个“规范优先”的 AI 编码代理工作流引擎。它通过苏格拉底式访谈、生成不可变规范、执行代码和多阶段评估，将模糊的想法转化为经过验证的代码库，解决 AI 编码中“输入不清晰”的核心痛点。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (WSL2 推荐)\n*   **Python 版本**：**Python >= 3.12** (必需)\n*   **AI 运行时**：支持以下任一工具（安装脚本会自动检测）：\n    *   Claude Code\n    *   Codex CLI\n    *   OpenCode\n*   **网络环境**：需要能够访问 GitHub 和 PyPI。如果下载缓慢，建议配置国内 pip 镜像源。\n\n## 安装步骤\n\n### 方法一：一键自动安装（推荐）\n\n运行以下命令，脚本将自动检测系统环境、安装依赖并注册 MCP 服务器：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FQ00\u002Fouroboros\u002Fmain\u002Fscripts\u002Finstall.sh | bash\n```\n\n> **注意**：如果您使用 OpenCode，安装完成后需额外运行 `ouroboros setup --runtime opencode` 进行配置。\n\n### 方法二：手动安装 (pip\u002Fuv)\n\n如果您希望手动控制依赖或使用虚拟环境：\n\n```bash\n# 安装基础包\npip install ouroboros-ai\n\n# 或者安装包含所有功能的全量包 (推荐)\npip install 'ouroboros-ai[all]'\n\n# 初始化配置\nouroboros setup\n```\n\n## 基本使用\n\n安装完成后，Ouroboros 将作为技能插件集成到您的 AI 编码代理中。\n\n### 1. 启动工作流\n\n打开您的 AI 编码代理终端（如 Claude Code），输入以下命令开始一个新项目。这将触发苏格拉底式访谈，帮您理清需求：\n\n```text\n> ooo interview \"I want to build a task management CLI\"\n```\n\n### 2. 工作流自动执行\n\n系统将按以下步骤自动运行：\n1.  **Interview (访谈)**：通过提问暴露隐藏假设，消除歧义。\n2.  **Seed (播种)**：生成包含验收标准和约束的不可变规范文件 (`seed.yaml`)。\n3.  **Run (执行)**：基于规范自动生成代码。\n4.  **Evaluate (评估)**：执行三阶段自动化验证（机械检查 -> 语义分析 -> 多模型共识）。\n\n### 3. 持续进化 (可选)\n\n如果需要让系统自我迭代直到完美收敛，可以运行：\n\n```text\n> ooo ralph\n```\n\n此命令会启动持久化循环，自动修复问题并优化代码，直到本体论相似度达到 0.95 以上。\n\n### 常用命令速查\n\n在 AI 代理会话中使用 `ooo \u003Ccommand>`，或在系统终端使用 `ouroboros \u003Ccommand>`：\n\n| 操作 | AI 代理内命令 | 说明 |\n| :--- | :--- | :--- |\n| **初始化** | `ooo interview \"\u003C想法>\"` | 开始需求访谈并生成规范 |\n| **执行** | `ooo run` | 根据规范执行代码生成 |\n| **评估** | `ooo evaluate` | 运行自动化质量门禁 |\n| **状态** | `ooo status` | 查看当前执行状态和漂移检测 |\n| **帮助** | `ooo help` | 查看完整命令参考 |","某初创团队的技术负责人急需在两天内构建一个具备用户认证和数据看板功能的内部任务管理 CLI 工具，以应对即将到来的产品演示。\n\n### 没有 ouroboros 时\n- **需求模糊导致返工**：开发者仅凭“做个任务管理系统”的模糊指令让 AI 编码，结果 AI 自行猜测技术栈，生成的代码缺少核心的权限验证模块，不得不反复手动修补。\n- **架构中途漂移**：在漫长的多轮对话中，AI 逐渐偏离最初的设计意图，数据库结构与设计文档不一致，导致后期集成时出现严重的数据兼容问题。\n- **缺乏自动化验收**：交付前只能靠人工肉眼检查代码，“看起来能跑”就被视为完成，直到演示现场才暴露出关键路径上的逻辑漏洞。\n\n### 使用 ouroboros 后\n- **苏格拉底式访谈明确需求**：运行 `ooo interview` 命令后，ouroboros 引导开发者通过问答挖掘出“需要基于角色的访问控制”等隐藏假设，将模糊想法转化为精确的需求规格书。\n- **不可变规格锁定意图**：在写第一行代码前，ouroboros 生成并冻结了种子规格文档，确保后续所有 AI 生成的代码都严格遵循既定架构，杜绝了设计漂移。\n- **三阶段自动评估门禁**：代码生成后，ouroboros 自动执行单元测试、集成测试和规格一致性检查，只有全部通过的代码才会被合并，确保交付即可用。\n\nouroboros 通过将“提示词工程”升级为“规格驱动开发”，把人类从反复纠正 AI 的琐事中解放出来，专注于定义正确的业务目标。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FQ00_ouroboros_55febcd3.png","Q00","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FQ00_4fbdec18.png","@zep-us Tech Lead\r\n\r\n","@zep-us","seoul",null,"JqOnly","https:\u002F\u002Fwpti.dev","https:\u002F\u002Fgithub.com\u002FQ00",[82,86,90],{"name":83,"color":84,"percentage":85},"Python","#3572A5",97.4,{"name":87,"color":88,"percentage":89},"Rust","#dea584",2.4,{"name":91,"color":92,"percentage":93},"Shell","#89e051",0.3,2220,205,"2026-04-11T00:00:12","MIT","Linux, macOS, Windows","未说明",{"notes":101,"python":102,"dependencies":103},"该工具是一个工作流引擎，主要用于协调现有的 AI 编码代理（如 Claude Code、Codex CLI），而非直接运行大型本地模型，因此 README 中未提及具体的 GPU 或内存硬件需求。安装脚本可自动检测环境。支持通过 pip、uv 或 pipx 安装，并提供多种可选依赖包（如 claude、litellm、mcp、tui 等）以适配不同功能需求。",">=3.12",[104,105,106,107,108,109,110,111],"ouroboros-ai","SQLAlchemy","aiosqlite","LiteLLM","Textual (可选)","Claude Code (可选运行时)","Codex CLI (可选运行时)","OpenClaw (可选集成)",[113,35,14,52,13],"其他",[115,116,117,118,119,120,121,122,123,124,125,126],"claude-code","ai-agent","codex-cli","devtools","evaluation","llm","mcp","multi-agent","prompt-engineering","python","spec-driven-development","workflow-automation","2026-03-27T02:49:30.150509","2026-04-11T15:13:25.733310",[130,135,140,144,149,153],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},29530,"为什么运行 `claude` 命令后 CPU 使用率飙升且生成大量 Python 进程？","这是由于 LiteLLM 库（v1.82.7 和 v1.82.8 版本）遭受了供应链攻击。恶意代码会在 Python 启动时自动执行，导致无限生成进程并窃取环境变量。\n\n解决方案：\n1. Ouroboros 项目已移除对 litellm 的依赖（见 PR #196）。\n2. 如果您在 2026 年 3 月 10 日之后安装了 `ouroboros-ai`，您的环境可能已受损。\n3. 仅更新 Ouroboros 无法清除已安装的恶意文件，建议检查并清理 Python 环境中的 litellm 相关文件或重建虚拟环境。\n4. 核心插件功能（Claude Code \u002F Codex MCP server）本身不使用 litellm，但需确保依赖环境中没有残留的恶意版本。","https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fissues\u002F195",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},29531,"如何在非标准项目（如没有 pyproject.toml 的 Odoo 或 Django 项目）中让 ArtifactCollector 正确收集文件？","此前版本要求项目根目录必须包含 `pyproject.toml`、`setup.py` 或 `package.json`，导致无这些文件的项目无法收集源码。\n\n修复方案（已在最新版本中应用）：\n1. 现在支持识别 `.git`、`Cargo.toml`、`go.mod` 等多种项目标记文件。\n2. 修复了 `_project_dir_from_artifact` 函数，现在能正确匹配 `File:` 前缀（此前仅支持 `Write:` 和 `Edit:`）。\n3. 确保您的 artifact 中使用标准的 `File: \u002Fpath\u002Fto\u002Fcode.py` 格式，收集器将自动向上查找最近的项目根目录标记。","https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fissues\u002F230",{"id":141,"question_zh":142,"answer_zh":143,"source_url":139},29532,"设置 `trigger_consensus=true` 后，为什么 Stage 3 共识评估仍未运行？","这是一个已修复的逻辑缺陷。此前代码中，Stage 3 的运行被硬编码为受限于 Stage 2 的分数阈值（0.80），导致即使设置了 `trigger_consensus=true`，若 Stage 2 得分低于 0.80，共识阶段也会被跳过。\n\n修复方案：\n1. 当前代码库已更新 `EvaluationContext`，包含 `trigger_consensus: bool = False` 字段。\n2. 该标志现在通过 `TriggerType.MANUAL_REQUEST` 直接传递给 `ConsensusTrigger`，从而绕过 Stage 2 的分数门槛。\n3. 请确保升级到包含此修复的最新版本，即可在 Stage 2 低分时强制触发三模型共识评估。",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},29533,"直接在 Claude Code 会话中运行 `ooo run` 时，为什么子代理无法使用父会话的 MCP 工具（如 GitHub 工具）？","这是因为直接调用 `ouroboros_execute_seed` 时，默认不会继承父会话的 MCP 工具管理器，子代理只能使用默认工具集（Read, Write, Bash 等）。\n\n现状与变通：\n1. 嵌套委托执行（nested delegation）已通过 `PreToolUse` 钩子完美支持工具继承。\n2. 对于直接发起的执行，目前子代理可能会回退到使用 `curl` 等 Bash 命令来调用 API，而不是直接使用注册的 MCP 工具。\n3. 建议关注后续更新以获取直接执行时的工具继承功能，或在脚本中显式处理 API 调用作为临时方案。","https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fissues\u002F181",{"id":150,"question_zh":151,"answer_zh":152,"source_url":148},29534,"在并行运行多个 AC（Agent Controller）时遇到 Chrome 配置文件冲突怎么办？","并行运行多个需要浏览器操作的 AC 会导致 Chrome 配置文件争用问题。\n\n推荐解决方案：\n1. **顺序执行设计**：遵循官方指南，将依赖浏览器的任务设计为顺序执行，避免并发冲突。\n2. **使用 openchrome**：推荐使用 [openchrome](https:\u002F\u002Fgithub.com\u002Fshaun0927\u002Fopenchrome) 浏览器 MCP 服务器。它设计为运行单个 Chrome 进程并管理 N 个并行标签页，专门解决此类配置文件争用问题，适合需要高并发浏览器操作的场景。",{"id":154,"question_zh":155,"answer_zh":156,"source_url":134},29535,"如何确认我的环境是否受到 LiteLLM 供应链攻击的影响？","请根据以下标准自查：\n1. **受影响时间**：如果您在 2026 年 3 月 23 日（或文档提到的 3 月 10 日）之后安装或更新了 Ouroboros (稳定版 v0.25.1 或测试版 v0.26.0b4)，则可能受到影响。\n2. **安全状态**：如果您在此日期之前安装且此后未重新安装或升级，则是安全的。\n3. **检查方法**：检查您的 Python 环境中是否存在 `litellm_init.pth` 恶意文件，或查看是否安装了 litellm v1.82.7\u002Fv1.82.8 版本。\n4. **注意**：仅仅更新 Ouroboros 不会自动删除已植入的恶意 `.pth` 文件，可能需要手动清理或重建环境。",[158,163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253],{"id":159,"version":160,"summary_zh":161,"released_at":162},206007,"v0.28.3","## 变更内容\n\n### 功能\n- **feat(mcp):** 添加 HTTP\u002FSSE\u002F可流式传输的 HTTP 传输支持 (#339)\n- **feat(orchestrator):** 配置检查点存储 + 公开 API 上下文 (#338)\n\n### 性能\n- **perf(#344):** 降低 Claude 适配器中的每次调用开销 (#348)\n- **perf(#345):** 优化歧义评分器的令牌使用，并强制执行格式错误限制 (#349)\n\n### 错误修复\n- **fix(cli):** 澄清 TUI 安装指南 (#355)\n- **fix(mcp):** 在组合根中注册 ACTreeHUDHandler (#340)\n- **fix(interview):** 将闭包激活与自动补全的启用条件分离 (#342)\n- **fix:** 对 FastMCP 传输路径强制执行安全检查 (#337)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.28.2...v0.28.3\n\n\n## 变更内容\n* feat(orchestrator): 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F338 中配置检查点存储 + 公开 API 上下文\n* fix: 由 @Sathvik-1007 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F337 中对 FastMCP 传输路径强制执行安全检查\n* fix(interview): 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F342 中将闭包激活与自动补全的启用条件分离\n* feat(mcp): 由 @Sathvik-1007 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F339 中添加 HTTP\u002FSSE\u002F可流式传输的 HTTP 传输支持\n* fix(mcp): 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F340 中在组合根中注册 ACTreeHUDHandler\n* perf(#345): 由 @shaun0927 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F349 中优化歧义评分器的令牌使用，并强制执行格式错误限制\n* perf(#344): 由 @shaun0927 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F348 中降低 Claude 适配器中的每次调用开销\n* fix(cli): 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F355 中澄清 TUI 安装指南\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.28.2...v0.28.3","2026-04-10T17:33:34",{"id":164,"version":165,"summary_zh":166,"released_at":167},206008,"v0.28.2","## 变更内容\n\n### 错误修复\n- 修复网关以 `cwd=\u002F` 启动服务器时 MCP 服务器崩溃的问题（#335 后续）\n\n### 重构\n- 对齐 PMSeed 和 pm.md 字段，以保持一致性（#314）\n\n### 文档\n- 在文档中为 `uvx` 的 MCP 服务器设置命令添加 `[mcp]` 标记\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.28.1...v0.28.2\n\n\n## 变更内容\n* refactor(pm): 对齐 PMSeed 和 pm.md 字段，由 @cohemm 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F314 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.28.1...v0.28.2","2026-04-07T16:26:05",{"id":169,"version":170,"summary_zh":171,"released_at":172},206009,"v0.28.1","## 变更内容\n\n### 错误修复\n- 修复(mcp)：修复 uvx MCP 设置中缺少 mcp 依赖的问题 (#335)\n- 修复(openclaw)：强化网关集成，包括环境变量加载、代码库回退机制以及数据库整合 (#336)\n\n### 文档更新\n- 文档：完成 OpenCode 运行时文档的所有指南 (#333) (#334)\n- 文档：为 mcp set 命令添加 openclaw 更新说明 (#332)\n- 文档：将 PM 模式横幅替换为 OpenClaw 集成 (#330)\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.28.0...v0.28.1\n\n\n## 变更内容\n* 文档：由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F330 中将 PM 模式横幅替换为 OpenClaw 集成\n* 文档：由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F332 中为 mcp set 命令添加 openclaw 更新说明\n* 文档：由 @Sathvik-1007 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F334 中完成 OpenCode 运行时文档的所有指南 (#333)\n* 修复(openclaw)：由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F336 中强化网关集成\n* 修复 uvx MCP 设置中缺少 mcp 依赖的问题，由 @PLPeeters 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F335 中完成\n\n## 新贡献者\n* @PLPeeters 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F335 中做出了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.28.0...v0.28.1","2026-04-07T13:42:01",{"id":174,"version":175,"summary_zh":176,"released_at":177},206010,"v0.28.0","## 变更内容\n\n### 功能\n- 为 LLM 补全添加 OpenCode 运行时适配器 (#324)\n- 减少第三方运行时依赖 (#316)\n- 添加 OpenClaw 频道工作流脚手架 (#323)\n\n### 错误修复\n- 防止在大型 SQLite 数据库上 MCP 启动超时 (#326)\n- 防止 SessionStart 的 stdout 污染 Claude 上下文 (#322)\n- 在 measure_drift 处理程序中防范可选参数为 None 的情况 (#325)\n- 加强 OpenCode 的 stdin 关闭及 skill_path 上下文管理器 (#329)\n\n### 文档\n- 澄清用户如何在支持的各个运行时上调用 `ooo publish` (#307)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.27.2...v0.28.0\n\n\n## 变更内容\n* 新特性(提供商): 为 LLM 补全添加 OpenCode 运行时适配器 (#164) 由 @Sathvik-1007 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F324 中实现\n* 新特性(#274): 减少第三方运行时依赖 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F316 中实现\n* 修复(#304): 防止在大型 SQLite 数据库上 MCP 启动超时 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F326 中实现\n* 修复(钩子): 防止 SessionStart 的 stdout 污染 Claude 上下文 由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F322 中实现\n* 修复(MCP): 在 measure_drift 处理程序中防范可选参数为 None 的情况 由 @lifrary 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F325 中实现\n* 新特性: 在 Ouroboros 端添加 OpenClaw 频道工作流脚手架 由 @hackertaco 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F323 中实现\n* 修复(提供商): 加强 OpenCode 的 stdin 关闭及 skill_path 上下文管理器 (#328) 由 @Sathvik-1007 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F329 中实现\n* 文档: 澄清 `ooo publish` 的可用位置及其运行方式 由 @shaun0927 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F307 中实现\n\n## 新贡献者\n* @Sathvik-1007 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F324 中做出了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.27.2...v0.28.0","2026-04-06T17:46:00",{"id":179,"version":180,"summary_zh":181,"released_at":182},206011,"v0.27.2","## 变更内容\n\n### 功能\n- 递归 AC 自动机分解 + `ac_tree_hud` MCP 工具 (#319)\n\n### Bug 修复\n- 改进 Claude SDK 失败时的评估错误诊断 (#313)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.27.1...v0.27.2\n\n\n## 变更内容\n* 新增特性：递归 AC 自动机分解 + ac_tree_hud MCP 工具，由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F319 中实现\n* 改进 Claude SDK 失败时的评估错误诊断，由 @cohemm 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F313 中实现\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.27.1...v0.27.2","2026-04-06T16:20:03",{"id":184,"version":185,"summary_zh":186,"released_at":187},206012,"v0.27.1","## 变更内容\n\n### 功能\n- 添加 PATH 4 研究插曲，用于访谈中期的探索 (#294)\n- 为 LLM 补全功能添加 Gemini CLI 适配器 (#315) — 由 @kostakost2 提供\n\n### 错误修复\n- 将 trigger_consensus 连接到流水线，并扩展项目根目录检测功能 (#317)\n- 解决作业跟踪中的双重后台处理问题，并区分轮询选项 (#318)\n- 在 JSON 规范化过程中保持 CompletionResponse 的不可变性 (#309)\n- 在 QA\u002F评估错误中包含回溯信息 (#308)\n- 移除已废弃的 OUROBOROS_WEB_SEARCH_TOOL 提示信息 (#292)\n- 将访谈状态中的同步文件 I\u002FO 包装到 asyncio.to_thread 中 (#291)\n\n### 性能优化\n- 并行化歧义评分和问题生成 (#293)\n- 当早期完成不可能时，跳过歧义评分 (#290)\n\n## 贡献者\n* @kostakost2 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F315 中做出了首次贡献\n* @shaun0927 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F290、https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F291、https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F292、https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F293、https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F294 中做出贡献\n* @ouroboros-agent[bot] 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F308、https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F309 中做出贡献\n* @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F317、https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F318 中做出贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.27.0...v0.27.1","2026-04-04T18:19:22",{"id":189,"version":190,"summary_zh":191,"released_at":192},206013,"v0.27.0","## 变更内容\n\n### 功能特性\n- **MCP 桥接** — 实现服务器间 MCP 通信，支持在 `ooo run` 种子中使用外部工具 (#278, #279, #280, #281)\n  - 自动发现 `~\u002F.ouroboros\u002Fmcp_servers.yaml` 文件，用于上游 MCP 服务器配置\n  - 通过 `ExecuteSeedHandler` → `OrchestratorRunner` 流程注入 `mcp_manager`\n  - 将桥接集成到进化执行器中，以便在 `ooo evolve` 中使用外部工具\n  - 加强传输生命周期管理，实现正确的回滚和对称清理\n- **`ooo publish` 技能** — 将种子规范转换为结构化的 GitHub 问题 (#261)\n\n### 错误修复\n- 修复评估中的 `error_max_turns` 问题，将 `max_turns` 从 1 提升至 20 (#277)\n- 修复 Claude Code CLI 适配器在 CLI 返回散文而非 JSON 时的重试逻辑 (#276)\n\n### 致谢\n\nMCP 桥接功能由 **@shaun0927** 在 PR #263、#264、#265 和 #268 中设计并实现。这些 PR 经过变基后合并为 #278–#281，以解决冲突，但代码完全出自他手。他还贡献了 `ooo publish` 技能 (#261)。\n\n**@jcfernandez-890825** 提供了一份独立的端到端测试报告，验证了包含 Chrome DevTools MCP 的完整桥接链路，这让我们更有信心正式发布。他们还提交了最初的议题 (#181)，并贡献了一个早期方案 (#237)。\n\n**@yevheniikravchuk** 修复了评估处理器中 `max_turns` 的错误配置 (#277)，从而解决了评估过程中出现的 `error_max_turns` 失败问题。\n\n感谢各位让本次发布成为可能。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.6...v0.27.0","2026-04-01T15:40:47",{"id":194,"version":195,"summary_zh":196,"released_at":197},206014,"v0.26.6","## 变更内容\n\n### 错误修复\n- **TUI 会话完成**：发出 `execution.terminal` 事件，以便 TUI 正确识别会话已完成 (#272)\n- **子进程安全**：防止子进程泄漏、叉死攻击和环境污染 (#271)\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.5...v0.26.6\n\n\n## 变更内容\n* 修复(#269)：防止子进程泄漏、叉死攻击和环境污染，由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F271 中实现\n* 修复(tui)：发出 execution.terminal 事件，使 TUI 能够识别会话完成，由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F272 中实现\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.5...v0.26.6","2026-03-30T18:33:23",{"id":199,"version":200,"summary_zh":201,"released_at":202},206015,"v0.26.5","## 变更内容\n\n### 功能\n- PM 采访现在会将 DECIDE_LATER 问题返回给用户，而不是自动跳过 (#238)\n\n### 错误修复\n- 容忍非 JSON 格式的 QA 判决响应 (#236)\n- 修复提供者中的适配器超时、工具策略和工厂 max_turns 设置 (#259)\n- 修复 PM 向可运行的 Seed 工作流的交接问题 (#252)\n- 在 PM 中遵守配置的采访适配器后端设置 (#245)\n- 修复 Codex 会话的恢复重试问题 (#249)\n- 使 CLI 补全评分与 PM 中的 MCP 流程保持一致 (#256)\n- 在 PM 中使用配置的澄清模型 (#243)\n- 修复安装程序的 MCP 入口，使其与 EXTRAS 选择（uv `--with` 标志用于 `[all]`\u002F`[claude]`\u002Fbase）相匹配\n- 修复安装程序的 pip 回退机制，以使用检测到的 Python 可执行文件\n\n### 维护\n- 将 PMSeed 字段与 prd.md 输出对齐 (#258)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.4...v0.26.5\n\n\n## 变更内容\n* 修复(#240): 使用配置的澄清模型进行 pm 操作，由 @ouroboros-agent[bot] 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F243 中完成\n* 修复(#244): 保持 pm 日志可见，同时不破坏输入内容，由 @srausser 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F247 中完成\n* 功能(pm): 将 DECIDE_LATER 问题返回给用户，而不是自动跳过，由 @cohemm 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F238 中完成\n* 修复(pm): 使 CLI 补全评分与 MCP 流程保持一致，由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F256 中完成\n* [codex] 修复 Codex 会话的恢复重试问题，由 @srausser 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F249 中完成\n* 修复(#242): 在 pm 中遵守配置的采访适配器后端设置，由 @srausser 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F245 中完成\n* 修复 PM 向可运行的 Seed 工作流的交接问题，由 @srausser 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F252 中完成\n* 修复(提供者): 适配器超时、工具策略和工厂 max_turns 设置，由 @Q00 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F259 中完成\n* 重构(pm): 将 PMSeed 字段与 prd.md 输出对齐，由 @cohemm 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F258 中完成\n* 修复(#235): 容忍非 JSON 格式的 QA 判决响应，由 @ouroboros-agent[bot] 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F236 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.4...v0.26.5","2026-03-30T12:58:39",{"id":204,"version":205,"summary_zh":206,"released_at":207},206016,"v0.26.4","## 变更内容\n\n### Bug 修复\n- 当缺少 `litellm` extra 时，显示安装指引 (#246，修复 #239)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.3...v0.26.4\n\n\n## 变更内容\n* fix(#239): 当缺少 litellm extra 时，显示安装指引，由 @srausser 在 https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F246 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.3...v0.26.4","2026-03-29T00:14:33",{"id":209,"version":210,"summary_zh":211,"released_at":212},206017,"v0.26.3","## What's Changed\n\n### Features\n- Add `ouroboros uninstall` and `ouroboros config backend` CLI commands (#220)\n\n### Bug Fixes\n- Handle null `failed_attempts` in lateral think (#234)\n- Degrade gracefully on `claude_code` JSON output (#232)\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.2...v0.26.3\n\n\n## What's Changed\n* feat(cli): add ouroboros uninstall and config backend commands by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F220\n* fix(#212): degrade gracefully on claude_code JSON output by @ouroboros-agent[bot] in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F232\n* fix(#233): handle null failed_attempts in lateral think by @ouroboros-agent[bot] in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F234\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.2...v0.26.3","2026-03-27T19:17:10",{"id":214,"version":215,"summary_zh":216,"released_at":217},206018,"v0.26.2","## What's Changed\n* feat(evolution): graceful shutdown on SIGINT (#169) by @hackertaco in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F172\n* Improve GitHub issue intake and repository safety guidance by @hackertaco in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F81\n* fix(install): add [claude] extra to ouroboros-ai references (#217) by @hackertaco in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F218\n* fix(#214): prefer .\u002Fmvnw for Maven wrapper projects by @ouroboros-agent[bot] in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F219\n* fix(brownfield): sort by rowid and conditional Recommended label by @cohemm in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F222\n* Enforce task worktrees for mutating workflows by @srausser in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F198\n* fix(interview): prevent ambiguity score override on seed generation by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F224\n* fix(worktree): harden lock lifecycle and remove monkey-patch shim by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F226\n* docs: add missing commands to help & READMEs + PM mode announcement by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F225\n* Add raw verification artifacts for post-run QA by @srausser in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F213\n* fix(setup): break MCP setup infinite loop and fix stale args across install paths by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F227\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.1...v0.26.2","2026-03-26T17:13:22",{"id":219,"version":220,"summary_zh":221,"released_at":222},206019,"v0.26.1","## What's Changed\n\n### Bug Fixes\n- **PM handler**: Use LLM adapter factory instead of hardcoded ClaudeAgentAdapter\n- **Install**: Let user choose runtime instead of defaulting to Codex\n- **Install**: Add marketplace update before plugin install\n\n### Maintenance\n- Align import paths with InterviewHandler convention\n- Fix import sorting in pm_handler\n- Point install.sh URL to main branch\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0...v0.26.1\n\n\n## What's Changed\n* fix(pm): use LLM adapter factory instead of hardcoded ClaudeAgentAdapter by @cohemm in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F211\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0...v0.26.1","2026-03-25T15:29:45",{"id":224,"version":225,"summary_zh":226,"released_at":227},206020,"v0.26.0","## What's Changed in v0.26.0\n\n### 🚀 Features\n- **PM Interview Engine & Brownfield Management** — Socratic PM interview flow with brownfield codebase analysis (#191) by @cohemm\n- **Codex CLI Runtime Support** — Runtime-agnostic execution with Codex CLI adapter, parallel executor, and heartbeat monitoring\n- **Interview Redesign** — MCP question generator + main session router with breadth\u002Fclosure personas (#178, #136)\n- **Evaluation Enhancement** — Reward hacking risk detection in Stage 2 semantic evaluation (#174)\n- **Version Automation** — Automated version sync, install UX, and update flow (#194)\n- **Setup Command** — Codex artifact installation and MCP server registration during setup\n- **llms.txt** — Context7-style model context files for LLM consumption\n- **Runtime-agnostic Packaging** — Optional extras and standalone setup with platform support docs\n\n### 🐛 Bug Fixes\n- Fix session status display in workflow monitor (#192, #207)\n- Prevent recursive MCP startup loop on Windows (#206)\n- Sanitize stale runtime_status on terminal sessions (#188, #205)\n- Pin litellm\u003C=1.82.6 for supply chain attack mitigation\n- Fix interview completion gate on ambiguity score (#187)\n- Restore delegated execution context after rebase\n- Robust JSON extraction for LLM responses with prose preamble\n- Align MCP plugin launcher with setup\u002Finstall paths (uvx --from ouroboros-ai)\n- Fix undefined litellm guard in count_tokens\n- Preserve QA evidence for decomposed ACs (#201) by @srausser\n- Fix Phase 0 default backend and ambiguity parsing (#200) by @srausser\n\n### 📖 Documentation\n- Complete docs restructure: runtime guides (Claude Code, Codex), config reference, evaluation pipeline, evolution loop\n- Remove stale ontological framework and ghost CLI command references\n- Add findings registry for contributing guide\n- Platform support and runtime capability matrix\n\n### 🔧 Maintenance\n- Packaged agents as source of truth (moved from repo root to src\u002Fouroboros\u002Fagents\u002F)\n- MCP tool split-out: authoring, brownfield, evaluation, evolution, execution, job, PM, query handlers\n- Security policy (SECURITY.md)\n- Ruff format\u002Flint CI enforcement\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.25.2...v0.26.0\n\n## What's Changed\n* feat: PM interview engine + brownfield management (rebased) by @cohemm in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F191\n* Fix Phase 0 default backend and ambiguity parsing by @srausser in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F200\n* Preserve QA evidence for decomposed ACs by @srausser in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F201\n* Release 0.26.0 by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F209\n\n## New Contributors\n* @cohemm made their first contribution in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F191\n* @srausser made their first contribution in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F200\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.25.2...v0.26.0\n","2026-03-25T12:52:41",{"id":229,"version":230,"summary_zh":231,"released_at":232},206021,"v0.26.0b7","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0b6...v0.26.0b7","2026-03-24T15:58:31",{"id":234,"version":235,"summary_zh":236,"released_at":237},206022,"v0.26.0b6","## What's Changed\n* feat(version): automate version sync, install UX, and update flow by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F194\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0b5...v0.26.0b6","2026-03-24T15:46:10",{"id":239,"version":240,"summary_zh":241,"released_at":242},206023,"v0.26.0b5","> **This is a beta release.** Install with: `pip install ouroboros-ai==0.26.0b5`\n\n## What's Changed\n\n### Security\n- **Remove litellm dependency** — PyPI supply chain attack mitigation (merged from main v0.25.2)\n\n### Features\n- PM interview engine + brownfield management (#191)\n- Beta version update automation\n\n### Bug Fixes\n- Fix missing `Result` import in PM CLI commands\n- Fix ruff lint issues\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0b4...v0.26.0b5\n\n\n## What's Changed\n* feat: PM interview engine + brownfield management (rebased) by @cohemm in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F191\n* fix(security): make litellm optional to mitigate supply chain attack by @hackertaco in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F196\n\n## New Contributors\n* @cohemm made their first contribution in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F191\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0b4...v0.26.0b5","2026-03-24T15:09:51",{"id":244,"version":245,"summary_zh":246,"released_at":247},206024,"v0.25.2","## What's Changed\n\n### Security\n- **Remove litellm dependency** — PyPI supply chain attack mitigation (#195)\n\n### Build\n- hatch-vcs dev builds on every push (#183)\n- Strip local version identifiers for PyPI compatibility\n- Show dev version in GitHub Actions annotations\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.25.1...v0.25.2\n\n\n## What's Changed\n* feat(build): hatch-vcs dev builds on every push by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F183\n* fix(security): make litellm optional to mitigate supply chain attack by @hackertaco in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F196\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.25.1...v0.25.2","2026-03-24T14:22:41",{"id":249,"version":250,"summary_zh":251,"released_at":252},206025,"v0.26.0b4","> **This is a beta release.** Install with: `pip install ouroboros-ai==0.26.0b4`\n\n## What's Changed\n\n### Features\n- Agent runtime abstraction with Codex CLI runtime support\n- Runtime-agnostic packaging with optional extras and standalone setup\n- Reward hacking risk detection in Stage 2 semantic evaluation (#174)\n- Runtime-agnostic orphan detection with WAL mode and retry\n- Interview breadth and closure personas (#136)\n- Packaged agents as source of truth (#136)\n- Codex artifact installation and MCP server registration in setup\n- `hatch-vcs` dev builds on every push (#183)\n\n### Bug Fixes\n- Inherit parent MCP tools in delegated runs (#180)\n- Restore delegated execution context after rebase onto main\n- Interview redesign as MCP question generator + main session router (#178)\n- Comprehensive AC tree and runtime reliability fixes\n- Preserve runtime overrides and resume handles\n- Robust JSON extraction for LLM responses with prose preamble\n- Prevent recursive MCP server spawning via `_OUROBOROS_NESTED` sentinel\n- Security: allow seed paths from `~\u002F.ouroboros\u002F` in addition to cwd\n- Build: strip local version identifiers for PyPI compatibility\n\n### Documentation\n- Runtime-agnostic specification-first engine documentation\n- Add llms.txt and llms-full.txt for Context7-style model context\n- Fix CLI command references and audit findings (#162)\n- Korean README with Codex CLI and pip install sections\n\n### Maintenance\n- Handler split: `definitions.py` refactored into 6 focused modules\n- AgentRuntime protocol with `runtime_backend`, `working_directory`, `permission_mode` properties\n- RuntimeHandle backend normalization with `__post_init__`\n- Rebased onto main (ef54b9b) for latest build infrastructure\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.26.0b3...v0.26.0b4\n\n\n## What's Changed\n* feat(build): hatch-vcs dev builds on every push by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F183\n* fix(interview): gate completion on ambiguity score to prevent deadlock by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F187\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.25.1...v0.26.0b4","2026-03-23T19:29:55",{"id":254,"version":255,"summary_zh":256,"released_at":257},206026,"v0.25.1","## What's Changed\n* fix(consensus): honest model names in Stage 3 fallback (#161) by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F163\n* fix(#168): ignore pending generations in convergence by @ouroboros-agent[bot] in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F171\n* fix(#176): inherit parent MCP tools in delegated runs by @Q00 in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F180\n\n## New Contributors\n* @ouroboros-agent[bot] made their first contribution in https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fpull\u002F171\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FQ00\u002Fouroboros\u002Fcompare\u002Fv0.25.0...v0.25.1","2026-03-22T19:26:59"]