Q00/ouroboros

GitHub: Q00/ouroboros

一款 Claude Code 插件,通过苏格拉底式提问和本体论分析,在 AI 写代码前将模糊需求转化为经过验证的规格说明。

Stars: 1228 | Forks: 117


◯ ─────────── ◯

Ouroboros

O U R O B O R O S

◯ ─────────── ◯

停止 Prompting。开始 Specifying。
一款 Claude Code 插件,在 AI 编写任何代码之前,将模糊的想法转化为经过验证的 Spec。

PyPI Tests License

快速开始 · 哲学 · 原理 · 命令 · Agent

Ouroboros 是一个**Spec-First 的 AI 开发系统**。它应用苏格拉底式提问和本体论分析来揭示你隐藏的假设——在编写任何一行代码之前。 大多数 AI 编码的失败源于**输入**,而非输出。瓶颈不在于 AI 的能力,而在于人类的清晰度。Ouroboros 修复的是人,而不是机器。 ## 从 Wonder 到 Ontology 这是 Ouroboros 背后的哲学引擎。每一个伟大的问题都会引出一个更深层的问题——而那个更深层的问题总是**本体论层面的**:不是*“我该怎么做?”*,而是*“这到底 **IS**(是)什么?”* ``` Wonder Ontology 💡 🔬 "What do I want?" → "What IS the thing I want?" "Build a task CLI" → "What IS a task? What IS priority?" "Fix the auth bug" → "Is this the root cause, or a symptom?" ``` 这不是为了抽象而抽象。当你回答“一个任务到底 **IS**(是)什么?”时——是可删除还是可归档?是个人还是团队?——你就消除了一整个类别的返工。**本体论问题就是最实际的问题。** Ouroboros 通过**双菱形(Double Diamond)**将这一点嵌入其架构中: ``` ◇ Wonder ◇ Design ╱ (diverge) ╱ (diverge) ╱ explore ╱ create ╱ ╱ ◆ ──────────── ◆ ──────────── ◆ ╲ ╲ ╲ define ╲ deliver ╲ (converge) ╲ (converge) ◇ Ontology ◇ Evaluation ``` 第一个菱形是**苏格拉底式的**:发散成问题,收敛成本体论的清晰度。第二个菱形是**务实的**:发散成设计方案,收敛成经过验证的交付物。每个菱形都需要前一个——你无法设计你尚未理解的东西。 ## 快速开始 **Step 1 — 安装插件**(在你的终端中): ``` claude plugin marketplace add Q00/ouroboros claude plugin install ouroboros@ouroboros ``` **Step 2 — 运行设置**(在 Claude Code 会话内): ``` # 启动 Claude Code,然后输入: ooo setup ``` **Step 3 — 开始构建:** ``` ooo interview "I want to build a task management CLI" ```
刚刚发生了什么? ``` ooo interview → Socratic questioning exposed 12 hidden assumptions ooo seed → Crystallized answers into an immutable spec (Ambiguity: 0.15) ooo run → Executed via Double Diamond decomposition ooo evaluate → 3-stage verification: Mechanical → Semantic → Consensus ``` Ouroboros 完成了一个循环。每一个循环,它都比上一个知道得更多。
## 循环 Ouroboros——一条吞噬自己尾巴的蛇——不仅仅是装饰。它**就是**架构本身: ``` Interview → Seed → Execute → Evaluate ↑ ↓ └──── Evolutionary Loop ────┘ ``` 每一个循环都不是简单的重复——它在**进化**。评估的输出作为下一代输入的反馈,直到系统真正知道它在构建什么。 | Phase | 发生了什么 | |:------|:-------------| | **Interview(访谈)** | 苏格拉底式提问揭示隐藏的假设 | | **Seed(种子)** | 答案结晶为不可变的 Spec | | **Execute(执行)** | 双菱形:探索 → 定义 → 设计 → 交付 | | **Evaluate(评估)** | 3 阶段门控:机械 ($0) → 语义 → 多模型共识 | | **Evolve(进化)** | Wonder *(“我们仍然不知道什么?”)* → 反思 → 下一代 | 当 Ontology 相似度 ≥ 0.95 时,即达到收敛——此时系统通过自我提问达到了清晰。 ### Ralph:永不停歇的循环 `ooo ralph` 持续运行进化循环——跨越会话边界——直到达到收敛。每一步都是**无状态**的:EventStore 重构完整的谱系,所以即使你的机器重启,Ouroboros 也会从它中断的地方继续。 ``` Ralph Cycle 1: evolve_step(lineage, seed) → Gen 1 → action=CONTINUE Ralph Cycle 2: evolve_step(lineage) → Gen 2 → action=CONTINUE Ralph Cycle 3: evolve_step(lineage) → Gen 3 → action=CONVERGED ✓ └── Ralph stops. The ontology has stabilized. ``` ### 歧义度分数:Wonder 与代码之间的门槛 Interview 并不是在你觉得准备好时结束——而是在**数学**表明你准备好时结束。Ouroboros 将歧义量化为加权清晰度的倒数: ``` Ambiguity = 1 − Σ(clarityᵢ × weightᵢ) ``` 每个维度由 LLM 评分 0.0–1.0(temperature 设为 0.1 以确保可复现性),然后加权: | 维度 | Greenfield(绿地项目) | Brownfield(棕地项目) | |:----------|:----------:|:----------:| | **目标清晰度** — *目标是否具体?* | 40% | 35% | | **约束清晰度** — *限制是否已定义?* | 30% | 25% | | **成功标准** — *结果是否可衡量?* | 30% | 25% | | **上下文清晰度** — *是否理解现有代码库?* | — | 15% | **阈值:歧义度 ≤ 0.2** —— 只有达到这个标准,才能生成 Seed。 ``` Example (Greenfield): Goal: 0.9 × 0.4 = 0.36 Constraint: 0.8 × 0.3 = 0.24 Success: 0.7 × 0.3 = 0.21 ────── Clarity = 0.81 Ambiguity = 1 − 0.81 = 0.19 ≤ 0.2 → ✓ Ready for Seed ``` 为什么是 0.2?因为在 80% 的加权清晰度下,剩下的未知项足够小,代码层面的决策可以解决它们。高于这个阈值,你仍然是在猜测架构。 ### Ontology 收敛:当 Ouroboros 停下时 进化循环不会永远运行。当连续几代产生本体论上相同的 Schema 时,它就会停止。相似度通过 Schema 字段的加权比较来衡量: ``` Similarity = 0.5 × name_overlap + 0.3 × type_match + 0.2 × exact_match ``` | 组件 | 权重 | 衡量内容 | |:----------|:------:|:-----------------| | **名称重叠** | 50% | 两代中是否存在相同的字段名称? | | **类型匹配** | 30% | 共享字段是否具有相同类型? | | **精确匹配** | 20% | 名称、类型和描述是否都完全相同? | **阈值:相似度 ≥ 0.95** —— 循环收敛并停止进化。 但原始相似度并不是唯一的信号。系统还会检测病态模式: | 信号 | 条件 | 含义 | |:-------|:----------|:--------------| | **停滞** | 连续 3 代相似度 ≥ 0.95 | Ontology 已稳定 | | **振荡** | 第 N 代 ≈ 第 N-2 代(周期为 2 的循环) | 卡在两种设计之间反复跳动 | | **重复反馈** | 跨 3 代 ≥ 70% 的问题重叠 | Wonder 正在问同样的事情 | | **硬上限** | 达到 30 代 | 安全阀 | ``` Gen 1: {Task, Priority, Status} Gen 2: {Task, Priority, Status, DueDate} → similarity 0.78 → CONTINUE Gen 3: {Task, Priority, Status, DueDate} → similarity 1.00 → CONVERGED ✓ ``` 两个数学门槛,一个哲学:**不清晰就不构建(歧义度 ≤ 0.2),不稳定就不停止进化(相似度 ≥ 0.95)。** ## 命令 | 命令 | 作用 | |:--------|:-------------| | `ooo setup` | 注册 MCP server(一次性) | | `ooo interview` | 苏格拉底式提问 → 揭示隐藏假设 | | `ooo seed` | 结晶化为不可变的 Spec | | `ooo run` | 通过双菱形分解执行 | | `ooo evaluate` | 3 阶段验证门控 | | `ooo evolve` | 进化循环直到 Ontology 收敛 | | `ooo unstuck` | 5 种横向思维角色,助你摆脱困境 | | `ooo status` | 偏移检测 + 会话追踪 | | `ooo ralph` | 持续循环直到验证通过 | | `ooo tutorial` | 交互式动手学习 | | `ooo help` | 完整参考 | ## 九个心智(The Nine Minds) 九个 Agent,每种代表一种不同的思维模式。按需加载,从不预加载: | Agent | 角色 | 核心问题 | |:------|:-----|:--------------| | **Socratic Interviewer(苏格拉底式访谈者)** | 只提问。从不构建。 | *“你在假设什么?”* | | **Ontologist(本体论者)** | 寻找本质,而非症状 | *“这到底 **IS**(是)什么?”* | | **Seed Architect(种子架构师)** | 从对话中结晶出 Spec | *“这是否完整且无歧义?”* | | **Evaluator(评估者)** | 3 阶段验证 | *“我们构建的东西对吗?”* | | **Contrarian(反对者)** | 挑战每一个假设 | *“如果反面是真的会怎样?”* | | **Hacker(黑客)** | 寻找非常规路径 | *“哪些约束实际上是真实的?”* | | **Simplifier(简化者)** | 消除复杂性 | *“能用的最简单的东西是什么?”* | | **Researcher(研究者)** | 停止编码,开始调查 | *“我们实际拥有什么证据?”* | | **Architect(架构师)** | 识别结构性原因 | *“如果我们从头开始,我们会这样构建吗?”* | ## 底层原理
18 个 packages · 166 个模块 · 95 个测试文件 · Python 3.14+ ``` src/ouroboros/ ├── bigbang/ Interview, ambiguity scoring, brownfield explorer ├── routing/ PAL Router — 3-tier cost optimization (1x / 10x / 30x) ├── execution/ Double Diamond, hierarchical AC decomposition ├── evaluation/ Mechanical → Semantic → Multi-Model Consensus ├── evolution/ Wonder / Reflect cycle, convergence detection ├── resilience/ 4-pattern stagnation detection, 5 lateral personas ├── observability/ 3-component drift measurement, auto-retrospective ├── persistence/ Event sourcing (SQLAlchemy + aiosqlite), checkpoints ├── orchestrator/ Claude Agent SDK integration, session management ├── core/ Types, errors, seed, ontology, security ├── providers/ LiteLLM adapter (100+ models) ├── mcp/ MCP client/server for Claude Code ├── plugin/ Claude Code plugin system ├── tui/ Terminal UI dashboard └── cli/ Typer-based CLI ``` **关键内部组件:** - **PAL Router** — 节约型 (1x) → 标准 (10x) → 前沿 (30x),失败自动升级,成功自动降级 - **Drift(偏移)** — 目标 (50%) + 约束 (30%) + Ontology (20%) 加权测量,阈值 ≤ 0.3 - **Brownfield(棕地)** — 扫描 12+ 种语言生态系统中的 15 种配置文件类型 - **Evolution(进化)** — 最多 30 代,在 Ontology 相似度 ≥ 0.95 时收敛 - **Stagnation(停滞)** — 检测空转、振荡、无偏移和收益递减模式
## 实时监控 (TUI) Ouroboros 包含一个用于实时工作流监控的**终端仪表盘**。在单独的终端中运行它,同时执行 `ooo run` 或 `ooo evolve`: ``` # 安装并启动 uvx --from ouroboros-ai ouroboros tui monitor # 或者如果已在本地安装 uv run ouroboros tui monitor ``` | 键 | 屏幕 | 你看到的 | |:---:|:-------|:-------------| | `1` | **仪表盘** | Phase 进度、验收标准树、实时状态 | | `2` | **执行** | 时间线、Phase 输出、详细事件 | | `3` | **日志** | 可过滤的日志查看器,带基于级别的着色 | | `4` | **调试** | 状态检查器、原始事件、配置 | ## Star 历史 Star History Chart Star History Chart

“始即是终,终即是始。”

Ouroboros 不重复——它进化。

MIT License

标签:AI辅助开发, Claude插件, Python, Socratic法, 代码生成前验证, 元编程, 思维链, 提示词工程, 敏捷开发, 无后门, 本体论, 策略决策点, 结构化思维, 自动化编程, 规格说明书生成, 软件架构, 逆向工具, 需求分析, 需求工程