内容
# toto-wolff
<img width="1280" height="699" alt="tyk2eiagrizd1" src="https://github.com/user-attachments/assets/a130343c-26a3-4f88-a366-ac5671557f03" />
克劳德代码的持久化人工智能治理。每项架构决策都经过多个AI模型的审议,并写入本地文件。每个代码更改在执行开始前都会根据安全检查清单进行规划。会话关闭时不会有任何信息丢失。
克劳德代码会话默认情况下是无状态的 - 在一个会话中做出的决策在下一个会话中就会丢失。toto-wolff解决了这个问题:一个MCP服务器,运行多模型审议工作流,将每个裁决写入本地保险库中的纯Markdown文件,并让后续会话可以继续上一次会话的内容。
---
## 快速入门
```bash
git clone https://github.com/ray-aqno/Toto-Wolff ~/toto-wolff
cd ~/toto-wolff
pnpm install && pnpm -r build
./setup
```
打开任何克劳德代码会话并运行您的第一个审议:
/council this: what is the highest-risk technical decision our team is about to make?
完成后,检查您的保险库:
```bash
ls ~/.toto/vault/Council/Congressional-Records/
# YYYY-MM-DD-*.md ← your first ruling on file
```
该文件是永久的。它在会话期间、重启后仍然存在,并且可以从终端进行grep。治理循环是活跃的。
**是否想将保险库指向现有的Obsidian保险库?** 每项裁决、计划和发布记录都是纯Markdown文件 - 它将自动出现在您的图表和搜索中:
```bash
TOTO_VAULT_PATH="/path/to/your/obsidian/vault" ./setup
```
**不熟悉术语?** 请参阅下面的[概念]部分,了解您将遇到的所有内容的纯英文定义。
---
## 概念
如果您是该项目的新手,以下是您将看到的术语。
**P10 - 10的幂规则**
NASA JPL的10条安全关键软件规则:有界循环,无递归,每个函数有断言,零警告。toto-wolff将其作为执行前规划合同应用。在编写任何代码之前,会生成P10计划,分析所有10条规则,并发送到Opus审批。如果Opus设置`status: blocked`,则执行暂停,直到阻止解除。可以将其视为在跑道前强制执行的飞行检查。
**委员会 - 分层审议**
用于工程决策的三层AI链。克劳德·海库以“侦察员”的身份快速运行 - 两个并行代理,廉价地测试假设并查找边缘情况。克劳德·奏鸣曲以“分析师”的身份运行 - 结构化风险和实施分析。克劳德·作品担任主席,只阅读侦察员和分析师的压缩简报,然后发布裁决、责成提供更多信息或发布有条件的决定。输出是**国会记录** - 带YAML前置信息的Markdown文件,写入您的保险库。每个会话后都是永久的、可grep的和版本受控的。
**内阁 - 发布门控**
三个独立的作品代理,每个都有不同的角色,共同审查发布。任何一个席位都可以否决。角色是:
- **Garry Tan** - 产品和市场真相。提问:这值得发布吗?版本号与实际构建的版本号是否匹配?真正的用户会关心吗?
- **Richard Feynman** - 基本原理的正确性。提问:我们在哪里自欺欺人?有什么声称但未经验证?如果我们实际测试它,现实会说什么?
- **Andrej Karpathy** - 工程执行。提问:它真的有效吗?它是最简单的解决方案吗?什么会在3点钟凌晨出现故障?基础是否稳固?
这些不是审美选择。每个角色都强制执行不同的故障模式:Garry Tan捕获范围蔓延和版本不诚实;Feynman捕获正确性剧场;Karpathy捕获工程债务伪装成发布。内阁仅在标记的发布中召开 - 而不是在每次提交。
**参议院 - 堆叠委员会和内阁**
当决策足够大,需要同时进行审议和发布门控时,按顺序运行它们: `/council` 达成裁决,然后 `/cabinet` 批准发布。内部称为“参议院” - 完整的立法栈。当以下情况时,您将选择它:标记主版本,逆转先前的委员会裁决或发布某些东西,其中单个故障模式(产品,正确性或工程)将真正昂贵。对于例行工作,仅 `/council` 或 `/cabinet` 足够。
**信号存储 - 以过去的决策为基础的未来计划**
每次委员会裁决和P10计划都是一个信号:证据表明您的团队已经推理了一个特定的模式(架构决策记录,已批准的计划)。信号存储是 `~/.toto/vault/Signals/` 目录中的类型化Markdown文件。在生成新的P10计划之前, `score_confidence` - 一个确定性函数,而不是模型调用 - 检查是否有至少两个不同日期的信号存在于相同的模式中,且主题重叠(Jaccard相似度≥50%)。 **高置信度** 表示计划以 `confidence_tier: HIGH` 印章继续。 **低置信度** 停止,显示不合格的内容,并提示 `/council` 会话以生成缺失的证据。 `toto backfill` 从现有的ADR(架构决策记录 - 记录技术决策原因的Markdown文件)和P10计划中为信号存储添加种子。
**保险库**
本地纯Markdown文件目录,带有YAML前置信息。无需数据库或运行进程即可读取。每个委员会裁决,P10计划,内阁记录和信号都存储在这里。保险库是真相的来源:可grep,可区分,可在任何文本编辑器中编辑。
格式与[Obsidian](https://obsidian.md)原生兼容。如果您已经使用Obsidian,请将`TOTO_VAULT_PATH`指向现有的保险库,每个裁决,计划和内阁记录将自动出现在您的图表,反向链接和搜索中。这是推荐的设置 - 治理记录成为您第二大脑的一部分,而不是隔离目录。
`TOTO_VAULT_PATH`未设置时的默认位置: `~/.toto/vault` (一个独立目录,不需要Obsidian)。
**Karpathy指南 - 执行合同**
四条规则,源自Andrej Karpathy关于软件工艺的公开著作,用于规范每个P10阶段的实施。P10控制结构;Karpathy控制执行。规则是:(1)编码前思考 - 陈述假设,呈现模糊性,不要在错误解释上继续;(2)优先考虑简单性 - 解决阶段所需的最低代码,没有推测性内容;(3)外科手术更改 - 只修改授权阶段的内容,提及但不修复范围外的问题;(4)目标驱动执行 - 将每个阶段映射到可验证的成功标准,并循环直到满足,而不是仅仅因为它“看起来正确”。在任何克劳德代码会话中以`/karpathy`命令提供。
**gstack**
一个可选的克劳德代码技能运行器,由Garry Tan构建,提供`/council`,`/p10`和`/cabinet`斜线命令作为交互式工作流。toto-wolff无需gstack即可工作 - MCP服务器工具(`council_run`,`p10_plan`)以编程方式涵盖相同的范围。如果使用gstack,斜线命令会触发完整的多个代理链,并自动将记录写入您的保险库。
---
## 您获得的内容
- 每次 `/council` 会话后, `~/.toto/vault/Council/Congressional-Records/` 中会有一个 **国会记录 `.md`**
- 编写代码前, `~/.toto/vault/P10-Plans/` 中会有一个 **P10计划 `.md`**
- 每次发布门控后, `~/.toto/vault/Cabinet/` 中会有一个 **内阁记录 `.md`**
- `~/.toto/vault/Signals/` 中的 **信号存储** ,将过去的裁决反馈到未来的计划中 - `toto backfill` 从现有的ADR和P10计划中为其添加种子
- `http://127.0.0.1:3099/dashboard` 上的 **实时仪表盘** ,显示会话计数,阻止的计划和保险库记录,并带有SSE支持的实时统计数据
- 带有9个命令的 **`toto` CLI** ,用于保险库搜索,审计,医生和交互式维修壁聊天,支持 `toto radio`
---
## 先决条件
- macOS或Linux,bash ≥ 3.2,git
- 已安装并认证的[克劳德代码CLI](https://claude.ai/code) (`claude --version` 退出0)
- Node.js 24+ 和 pnpm 11.5.1+ (`node --version`, `pnpm --version`)
- 以下之一:
- `ANTHROPIC_API_KEY` - 个人Anthropic API密钥
- `ANTHROPIC_AUTH_TOKEN` + `ANTHROPIC_BASE_URL` - 企业代理(例如Manifest)
> **API成本:** 每个完整的 `/council` 会话运行6个Anthropic API调用(2个Haiku侦察员+ 2个Sonnet分析师+ 1个Sonnet简报+ 1个Opus裁决)。按标准费率估算为0.10美元-0.30美元每个会话。
---
## 何时使用每个技能
| 情况 | 技能 | 为什么 |
|-----------|-------|-----|
| 非显而易见的架构决策 | `/council` | 6次调用强制执行多个视角;Opus根据简报做出裁决,而不是噪音 |
| 即将根据计划编写代码 | `/p10` | Opus必须批准符合P10的计划,然后才能触及任何文件 |
| 实现已批准的P10阶段 | `/karpathy` | 四个执行不变性:先思考,最简单的解决方案,手术范围,根据成功标准验证后继续 |
| 标记发布 | `/cabinet` | 三个独立的Opus席位;任何否决权都阻止发布 |
| 主要版本,逆转裁决或高风险发布 | `/council` 然后 `/cabinet` (参议院) | 完整的审议+发布门控顺序 |
| 持续会话上下文 | 首先 `toto backfill` | 为信号存储添加种子,以便置信度评分有证据可循 |
---
## 命令
| 命令 | 功能 | 示例 |
|---------|-------------|---------|
| `toto init` | 连接保险库目录和 `~/.claude/CLAUDE.md` 符号链接 | `toto init` |
| `toto doctor` | 检查先决条件,凭证和保险库健康状况 | `toto doctor` |
| `toto whoami` | 从保险库配置中打印身份 | `toto whoami` |
| `toto search` | 跨保险库记录进行全文搜索 | `toto search "auth boundary"` |
| `toto last` | 显示最近的委员会或P10记录 | `toto last council` |
| `toto audit` | 保险库完整性检查 - 计数,过期条目,矛盾 | `toto audit` |
| `toto dashboard` | 在浏览器中打开 `http://127.0.0.1:3099/dashboard` | `toto dashboard` |
| `toto radio` | 交互式维修壁聊天;通过Anthropic API流式传输 | `toto radio` |
| `toto backfill` | 将ADR/和P10-Plans/摄入Signals/ - 幂等,安全重试 | `toto backfill` |
---
## MCP工具
在 `~/.claude.json` 中注册MCP服务器下的 `mcpServers["toto-wolff"]` 。然后这些工具在每个克劳德代码会话中都可用:
| 工具 | 功能 |
|------|-------------|
| `vault_write` | 将记录(委员会会议,P10计划,信号)写入保险库 |
| `vault_search` | 跨保险库记录进行全文搜索 |
| `council_run` | 运行多代理委员会会议;将国会记录写入保险库 |
| `p10_plan` | 生成P10执行前计划;Opus仲裁者批准 |
| `dashboard_status` | 返回保险库统计数据(`councilCount`,`p10Count`,`blockedCount`) |
| `score_confidence` | 计划来源的确定性高/低置信度等级 - 不是模型推理 |
启动服务器:
```bash
node packages/mcp-server/dist/index.js # 绑定到127.0.0.1:3099
```
覆盖端口:
```bash
TOTO_MCP_PORT=4000 node packages/mcp-server/dist/index.js
```
服务器公开这些只读HTTP端点(仅限环回,不从外部机器访问):
| 端点 | 功能 |
|----------|-------------|
| `GET /dashboard` | 渲染的HTML仪表盘 |
| `GET /dashboard/events` | 保险库统计数据的SSE流 |
| `GET /dashboard/record` | 提供原始保险库记录文件(`?type=council&file=...`) |
| `GET /vault/signal` | 查询信号存储 |
| `GET /vault/reversed` | 按逆时间顺序排列的保险库记录 |
---
## 信号循环
`toto backfill` 读取您的 `ADR/` 和 `P10-Plans/` 保险库目录,并写入带有 `pattern` 和 `topic_tags` 字段的 `Signals/` 记录。在生成新的P10计划之前, `score_confidence` 检查是否有≥ 2个不同日期的记录存在于相同的模式中,且主题Jaccard相似度≥50%。 **高置信度** 自动继续带有 `confidence_tier: HIGH` 印章。 **低置信度** 停止,显示不合格项,并请求 `/council` 会话以生成缺失的证据。运行 `toto backfill` 一次设置完成后,再次运行以添加新的裁决。
---
## 工作原理
pnpm工作区中的五个软件包。 `packages/core` 拥有共享类型,错误类和三个服务: `VaultService` (读取/写入扁平Markdown + YAML前置信息文件,无数据库), `CouncilService` (Haiku侦察员→ Sonnet分析→通过 `createAnthropicClient()` 的Opus裁决)和 `P10Service` (Skeptic侦察员 + Minimalist侦察员→ Sonnet草稿→带有8规则门的Opus仲裁者)。 `packages/mcp-server` 公开6个MCP工具和8个HTTP端点,绑定到 `127.0.0.1:3099` - 仅限环回,无LAN暴露。 `packages/cli` 是 `toto` 二进制文件。 `packages/dashboard` 生成服务器渲染的HTML;运行时无React,无构建步骤。 `packages/personas` 包含 `./setup --role engineering` 角色交换的工程角色。其他角色(devops,data,r-and-d)将在v1.1.0中发布。
保险库是真相的来源:带有YAML前置信息的 `.md` 文件目录,提交到git后每次写入。每个裁决都是可grep,可区分的,并且可以在任何文本编辑器中编辑 - 读取时不需要运行进程。
---
## 配置
| 变量 | 默认值 | 用途 |
|----------|---------|---------|
| `TOTO_VAULT_PATH` | `~/.toto/vault` | 保险库目录路径 - 将此设置为您的Obsidian保险库以获得最佳结果 |
| `TOTO_MCP_PORT` | `3099` | MCP服务器端口 |
| `ANTHROPIC_API_KEY` | - | 个人Anthropic API密钥(选项A) |
| `ANTHROPIC_AUTH_TOKEN` | - | 企业/代理令牌(选项B) |
| `ANTHROPIC_BASE_URL` | - | 与 `ANTHROPIC_AUTH_TOKEN` 配合使用(选项B) |
选项A和选项B是互斥的。如果同时设置, `ANTHROPIC_API_KEY` 优先。
将 `TOTO_VAULT_PATH` 设置为您的Obsidian保险库路径以获得推荐的设置,或者将其保留为空以使用 `~/.toto/vault` 作为独立目录。共享团队保险库(多用户,git支持)是v1.1.0的路线图项目 - v1.0.0中的保险库是单用户本地存储。
---
## 贡献
参见 [CONTRIBUTING.md](CONTRIBUTING.md)。在打开PR之前运行完整的门控:
```bash
pnpm typecheck && pnpm test && pnpm -r build
```
我们运行 `/council` 进行架构决策,并在PR描述中包含国会记录链接。
---
## 许可证
MIT - Copyright (c) 2026 Rayyan Aquino