mtarcure/claude-vibe-squad
GitHub: mtarcure/claude-vibe-squad
一个基于tmux和文件系统邮箱的多模型AI指挥中心,通过协调者将任务路由到五个部门主管,实现跨模型协作与对抗性审查。
Stars: 1 | Forks: 0

# claude-vibe-squad
**一个多模型 AI 指挥中心。一个对话伙伴(“Chrono”)将工作路由到 5 个部门主管——每个都是不同模型的不同 CLI——在各自的终端面板中持久运行。基于邮箱通信,订阅计费,对 vibecoder 友好。**
`v1.1` · `5 个部门主管` · `4 个模型家族` · `文件系统邮箱` · `订阅认证(无 API 密钥)` · `多模型对抗性审查` · `AGPL-3.0`
## v1.1 — 工具使用与纪律 (2026-05-03)
有关 v1.1 的完整更改,请参阅 [CHANGELOG.md](./CHANGELOG.md)。亮点:
- **专家工具感知** — 全部 39 个专家文件现在都列举了经过验证的 MCP / 原生 CLI 功能 / 技能 / API,并附带每个主管 CLI 的验证矩阵。不再默认使用 WebFetch。验证器 (`bin/validate-specialists.sh`) 可捕获配置偏移。
- **每个面板的工作量/思考层级默认设置** — `bin/launch-squad.sh` 现在为 chrono+security 面板设置 `--model opus --effort xhigh`,为 coding 面板设置 `-c model_reasoning_effort=high`,为 content 面板设置 `--model gemini-3.1-pro-preview`(隐式思考),为 sysmgmt 面板设置 `--model sonnet --effort high`,为 research 面板设置 `--thinking`。
- 位于 `_state/capability-inventory-2026-05-02.md` 的 **能力清单** — 实时验证的每个 CLI 标志 + MCP + 功能的清单。专家文件只引用 `verified: yes` 的条目。
- **拓扑 B 追踪逻辑** — Chrono 现在会在 `current.md` 中跟踪待处理的抄送给其他主管的线程,并暴露超过 2 小时的停滞情况。
- **MCP 毕业机制 N=3 本能循环** — `bin/spawn-specialist.sh` 将常规签名写入 `_state/patterns.jsonl`;`bin/graduation-scan.sh`(每周)将命中 ≥3 次不同参与的例程作为创建自定义 MCP 的候选。需操作员把关,不自动构建脚手架。
- **4 个新日志流** — `specialist-log.jsonl`(每次生成的元数据,完整保真度),`tool-calls.jsonl`(尽力的 stdout-grep),`errors.jsonl`(每晚聚合器),`patterns.jsonl`(常规签名)。
- **2 项新技能 (REMAKE 策略)** — `smart-contract-audit-checklist`(来源:tamjid0x01 + cryptofinlabs),`bounty-platform-report-format`(HackerOne / Bugcrowd / Code4rena)。
### 参考文档
- [生命周期规则](./shared/lifecycle.md) — 9 项规范规则 + 每个面板的工作量默认设置
- [API 目录](./shared/api-catalog.md) — 映射到专家的已验证 API/功能
- [操作员设置](./chrono/operator-setup.md) — 路由规则,包括跨主管的直发带抄送示例
- [规格说明](./docs/specs/2026-05-02-vibe-squad-v1.1-tool-utilization.md) — 多模型 GREEN,修订版 2
- [实施计划](./docs/plans/2026-05-02-vibe-squad-v1.1-tool-utilization-plan.md) — 11 个阶段的 24 项任务
## ⚡ 它能为你带来什么
每个要点以**直白的语言说明你能得到什么**开头。技术细节随后附上,供好奇者参考。
- **一次对话,五个专家在后台工作** — 你只需与 Chrono 对话。当工作需要主管的领域时,Chrono 会通过文件系统邮箱进行分发,你其他终端面板会自动接收。无需切换面板,无需手动传递上下文。*实现方式:`scripts/send-task.sh` 将原子的 `TASK-
.md` 写入目标主管的 `inbox/`,然后 `tmux send-keys -l` 唤醒目标主管的 CLI 面板。主管处理完毕后,写入 `outbox/`,由 Chrono 轮询响应。*
- **四个 AI 供应商,全部采用订阅计费** — Claude Max, ChatGPT Plus, Gemini Personal OAuth, Kimi login。启动器会在每个面板中取消设置 `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `GEMINI_API_KEY` / `GOOGLE_API_KEY`,以便每个 CLI 回退到其 OAuth/钥匙串路径。支付固定费用,而非按 token 计费。*实现方式:`bin/launch-squad.sh` 的 AUTH_PREFIX 导出在所有面板中取消设置;`scripts/python/*.py` 在任何子进程调用之前使用 `oauth_env()` 辅助函数。*
- **每个主管从其当前工作目录下的文件加载身份** — Codex 自动加载 `AGENTS.md`,Claude 自动加载 `CLAUDE.md`,Gemini 自动加载 `GEMINI.md`。我们将每个部门的 `LEAD.md` 符号链接到相应的名称,因此只需在该目录中打开相应的 CLI 即可成为主管。无需提示词模板。*实现方式:`departments/coding/AGENTS.md → LEAD.md`,`departments/security/CLAUDE.md → LEAD.md` 等。Kimi 没有按当前工作目录加载的约定,因此它的第一条消息会说“阅读 `LEAD.md` 并遵照执行”。*
- **模式从不自动触发** — 赏金 / 项目 / 内容 / 事件 / 研究 / 分流 / 维护模式只在你发话时才会启动。粘贴了 URL?Chrono 会*建议*一个模式并等待你的“同意”。没有会意外触发的短语匹配。*实现方式:`shared/routing.md` 列出了具体的信号触发器(URL 模式、文件扩展名、斜杠命令);`shared/modes/*.md` 定义了工作流;没有明确同意,任何工作流都不会触发。*
- **审查者家族 ≠ 编写者家族 — 内置对抗性审查** — 当专家运行验证时,审查者必须来自不同的模型家族。如果 Codex 编写,则由 Claude 或 Gemini 审查。能捕获在同家族循环中未被发现的单模型盲点。*实现方式:`bin/verify.sh --writer --output ` 将任务分派给 `scripts/python/verify.py` 中匹配的审查链。被 `bin/dream-light.sh`(Gemini 记日志 → Codex 审查)和任何处于阶段边界的模式使用。*
- **模式不能自行声明完成** — Vibecoding-check 是一个具有 4 级严重性阶梯(PASS → AUTOFIX → RETRY → OPERATOR-SURFACE)的模式退出验证器。每次运行的通用检查:是否存在操作员批准,声明的工件是否存在,引用是否可解析,修改的代码中没有 `TODO/FIXME/XXX`,所有阶段标签是否已发出。*实现方式:`bin/vibecoding-check.sh` 包装了 `scripts/python/vibecoding_check.py`。所有 4 个层级均已通过冒烟测试。*
- **持久的终端会话,绝不从零开始** — 所有 5 个主管 CLI 都位于一个命名的 tmux 会话中。使用 `Ctrl-b d` 分离,回来时再重新连接。会话可以跨夜甚至跨天存活 — 只有重启 Mac 才会终止它们。*实现方式:`bin/launch-squad.sh` 创建一个名为 `squad` 的 6 窗口 tmux 会话;每个窗口都预配置了 PATH + 认证环境变量 + 介绍提示。*
- **夜深人静时自动运行** — 一个 launchd 任务会运行 doctor 健康检查、播客和供应商博客的 RSS 源扫描、kimi 摘要的博客简报、播客标题卡、多模型梦想阶段(gemini 记日志 → codex 对抗性审查)、大脑清理知识图谱扫描、跨 5 个赏金平台的浏览器 CDP 保活,并合成早间简报。(HTML 抓取和完整的音频转录仅部分实现 — RSS 路径是目前日常使用的路径。)*实现方式:`bin/run-nightly.sh` 通过 `launchd/com.claudevibesquad.nightly.plist` 编排 8 个阶段;`bin/run-weekly.sh` 在周日扩展了深度梦想 + 跨源合成 + 周报。*
- **Doctor 展示真正重要的问题** — CLI 存在状态、MCP 注册、Secrets 来源、Vault 可访问性、浏览器 CDP 状态、磁盘剩余空间、tmux 状态、token 消耗代理(工件量 vs 7 天平均值)、MCP 重试风暴检测、过期的 `.tmp` 碎片、分发量 + 收件箱积压、长时间运行的 CLI 进程。问题会浮现在早间简报中;警告保留在 doctor 日志中。*实现方式:`bin/doctor.sh` 12 节报告 + 位于 `_state/doctor-logs/-summary.json` 的 JSON 摘要。*
- **Dreaming 只提议,不应用** — Dream 系统记录每日活动 (gemini),接受对抗性审查 (codex),如果设置了 `mode: propose`,它会将结构化的提案卡提取到 `_state/dream-proposals/`。早间简报会展示待处理的提案;你可以通过编辑每个文件的 `status:` 字段来批准或拒绝。没有静默的知识图谱突变。*实现方式:带有隐私脱敏(电子邮件、API 密钥、常见的 secret 模式)的 `scripts/python/dream_light.py`。`mode: shadow`(默认)仅记录日志。*
- **订阅计费在每一层都受到保护** — 无头调用会在调用任何 CLI 之前丢弃 API-key 环境变量。自动唤醒系统(邮箱 → tmux send-keys)使主管保持空闲,直到工作到来 — 它们不会在等待时消耗配额。ElevenLabs Scribe 转录受 `--enable-transcription`(按分钟付费)控制,因此不会产生意外支出。*实现方式:每个 Python pipeline 中的 `oauth_env()`;`--enable-transcription` 标志默认关闭。*
- **Markdown 贯穿始终** — 模式工作流、专家角色、主管身份、邮箱消息、Dream 日志、简报 — 全都是 Obsidian 兼容 vault 中人类可读的 markdown。通过阅读文件来审计你的 AI 的一天,而不是解析 JSON。*实现方式:Vault 根目录是一个 Obsidian 库。每个分发的任务和每个回复都是一个带有 YAML frontmatter 的 markdown 文件,你可以进行 grep / 编辑 / 链接。*
## 🌳 架构

三个层级:
1. **你** 只与 **Chrono** 对话(squad 的窗口 0)
2. **Chrono** 通过邮箱路由到 **5 个部门主管** 之一
3. **主管** 分派他们各自的 **专家**(子角色)并合成结果
| 部门 | CLI | 模型家族 | 负责范围 |
|------------|-----|--------------|------|
| **Coding** | `codex` | OpenAI | 实现、重构、代码审查、部署 |
| **Security** | `claude` | Anthropic | 赏金猎取、威胁建模、安全审计、漏洞利用开发 |
| **Content** | `gemini` | Google | 内容创作、营销资产、编辑、多模态 |
| **SysMgmt** | `claude` | Anthropic | 基础设施、流程、日常维护、doctor、Dream 策划 |
| **Research** | `kimi` | Moonshot | 深度调查、信息综合、学习、大上下文分析 |
每个主管有 5–14 名专家 (`departments//specialists/*.md`)。跨领域专家(规划者、怀疑论者、总结者、vibecoding-check、提示词工程师、分流员)位于 `shared/specialists/` 中。
## 📬 邮箱流程

```
You: "let's audit this contract "
│
▼
Chrono confirms intent → calls scripts/send-task.sh security /tmp/task.md
│
▼
send-task.sh:
1. atomic write → departments/security/inbox/TASK-.md
2. tmux send-keys → squad:security pane (auto-nudge)
│
▼
Security Lead (Claude) picks up:
inbox/ → active/ → process → outbox/-response.md → archive/
│
▼
Chrono polls outbox at start of every operator turn
│
▼
Response synthesized → surfaced in your next reply
```
全程采用原子写入 (`temp + fsync + rename`)。即使发生崩溃,也不会出现部分状态损坏。
## 🎭 多模型验证

审查者家族必须与编写者家族不同:
| 编写者 | 默认审查链(第一个可用) |
|--------|------------------------------------------|
| Claude | Codex → Gemini → Kimi |
| Codex | Claude → Gemini → Kimi |
| Gemini | Claude → Codex → Kimi |
| Kimi | Claude → Codex → Gemini |
被用于:
- **dream-light** — gemini 日志 → codex 对抗性审查(捕获 gemini 的过度行为)
- **vibecoding-check** 层级 3 — 对模棱两判断案例的单 codex 审查
- **bin/verify.sh** — 在任何模式下的阶段边界调用此脚本
## 🚀 快速开始
```
# 先决条件:macOS、Homebrew,全部 4 个 CLI 已安装并登录
brew install tmux uv jq # core tooling
# 安装并登录各个 CLI:
# claude (Claude Code), codex (OpenAI), gemini (Gemini CLI), kimi (Moonshot)
# 将 squad 克隆到你的 Obsidian vault 目录中
cd ~
git clone https://github.com/mtarcure/claude-vibe-squad.git Obsidian-Claude-Vibe-Squad
cd Obsidian-Claude-Vibe-Squad
# (可选)安装 nightly automation
bash bin/install-routines.sh
# 启动 squad
bash bin/launch-squad.sh
# Attach
tmux attach -t squad
```
启动器会自动启动每个 CLI。你将进入窗口 0 (chrono),其中 Claude Code 已经运行,并带有一个 **5 格侧边栏** 显示每个主管的实时状态(当前焦点、上次交付、邮箱计数、活动脉冲、SLA)。在左侧开始与 Chrono 对话 — 右侧会自动更新。试试 *"where are we"* — Chrono 会读取 `chrono/current.md`、早间简报和每个主管的 `current.md` 来总结状态。
每个主管也有自己独立的 tmux 窗口,带有完整的 CLI,可通过 `Ctrl-b + ` 访问:
- 窗口 1 (coding):Codex
- 窗口 2 (security):Claude
- 窗口 3 (content):Gemini
- 窗口 4 (sysmgmt):Claude
- 窗口 5 (research):Kimi — 首次切换到它时,请粘贴 *"Read LEAD.md and follow it as your role identity."*(Kimi 没有按当前工作目录自动加载的约定)。
使用 `Ctrl-b d` 分离。会话会继续运行。如果你想让 chrono 窗口占满全宽,可以使用 `bash bin/sidebar-off.sh` 关闭侧边栏。
## 🎯 模式
模式是在操作员同意后触发的预定义工作流。没有基于短语匹配的自动触发。
| 模式 | 主要主管 | 何时启用 |
|------|--------------|----------------|
| **bounty** | Security | 漏洞赏金工作 — 猎取、利用、验证、提交发现 |
| **project** | Coding | 构建或交付软件项目;规格说明 → 计划 → 实现 → 审查 |
| **content** | Content | 写作、编辑、营销资产、品牌语调工作 |
| **research** | Research | 深度调查、多源综合、构建阅读列表 |
| **incident** | SysMgmt | 需要立即分流的活跃错误或中断 |
| **maintenance** | SysMgmt | 常规清理、知识图谱清理、订阅审计 |
| **triage** | (任意) | 范围不明确 — 弄清楚适用哪种模式 |
每个模式对应一个 `shared/modes/.md` 文件(60–200 行),并在 `shared/mode-profiles//.md` 中附带目标类型配置文件(例如,bounty 中的 Web 应用 vs. 智能合约等)。
## 🌙 夜间自动化
一个 launchd 任务会在你睡觉时每晚运行:
| 阶段 | 作用 |
|-------|--------------|
| **doctor** | CLI 存在状态、MCP 注册、浏览器 CDP、磁盘、tmux 状态、token 消耗代理、病理检测(重试风暴、失控进程) |
| **browser-keep-alive** | 探测 Chrome 的 CDP 调试端口,列出 5 个赏金平台的标签页,标记过期的会话 |
| **system-cleanup** | brew + npm + pip 缓存清理,/tmp 清理(>7天),runs/ 归档(>30天) |
| **brain-cleanup** | Vault 扫描孤立笔记、损坏的 markdown 链接、重复的 H1、空白存根 |
| **feed-sweep** | 跨播客(3 个节目)+ 供应商博客(Anthropic, OpenAI, DeepMind, xAI)的 RSS + HTML 抓取,带有频率审计 |
| **content-processing** | kimi 摘要的博客简报、播客标题卡(完整的 ElevenLabs Scribe 转录受 `--enable-transcription` 控制) |
| **dream-light** | gemini 记录 24h 活动 → codex 对抗性审查 → 可选的 `mode: propose` 提取结构化的提案卡 |
| **morning-brief** | 综合所有内容:doctor 状态、新内容、带有审查结论的 dream 洞察、待处理的提案、活跃的模式 |
周日早晨,**每周深度运行** 会增加 7 天窗口的 dream 传递、订阅审计(所有 4 个 CLI 的认证健康状况)、模式归档(>60天)、kimi 跨源合成(“AI 那一周”)以及一份周报。
## 🔐 认证模型 — 订阅,而非 API
Squad 中的每个付费 CLI 都有订阅。但如果在 shell 中设置了相应的环境变量,每个都会默认为 API-key 计费。启动器和 Python pipeline 都会在调用任何 CLI 之前丢弃这些环境变量。
| CLI | 订阅 | 丢弃的环境变量 |
|-----|--------------|------------------|
| `claude` | Max plan (OAuth keychain) | `ANTHROPIC_API_KEY` |
| `codex` | ChatGPT login | `OPENAI_API_KEY` |
| `gemini` | personal OAuth | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
| `kimi` | `kimi login` | (无 — 已经是仅限 OAuth) |
你使用自己的订阅。除非你明确启用转录(ElevenLabs Scribe 的 `--enable-transcription` — 按分钟付费),否则 Squad 绝不会通过 API 密钥计费。
## 🧰 开箱内容
```
~/Obsidian-Claude-Vibe-Squad/
├── README.md ← you are here
├── CLAUDE.md ← vault-level system rules (auto-loaded by Claude inside vault)
├── chrono/ ← Chrono coordinator pane
│ ├── SOUL.md ← Chrono's identity
│ ├── CLAUDE.md ← auto-loaded by Claude in chrono/
│ └── current.md ← runtime state
├── departments/ ← 5 Department Leads
│ ├── coding/ (Codex — AGENTS.md → LEAD.md)
│ ├── security/ (Claude — CLAUDE.md → LEAD.md)
│ ├── content/ (Gemini — GEMINI.md → LEAD.md)
│ ├── sysmgmt/ (Claude — CLAUDE.md → LEAD.md)
│ └── research/ (Kimi — LEAD.md, loaded via first message)
├── shared/ ← cross-cutting workflows + specialists
│ ├── protocol.md ← mailbox message format
│ ├── routing.md ← mode triggers + cross-Lead rules
│ ├── modes/ ← 7 mode workflows
│ ├── mode-profiles/ ← 15 target-type profiles
│ ├── specialists/ ← 6 cross-cutting (vibecoding-check, planner, skeptic, etc.)
│ └── mailbox/ ← cross-Lead message templates
├── bin/ ← runner scripts
│ ├── launch-squad.sh ← create the tmux session
│ ├── run-nightly.sh ← orchestrates 8 phases
│ ├── run-weekly.sh ← Sunday deep run
│ ├── doctor.sh ← health checks
│ ├── feed-sweep.sh ← RSS + html-scrape
│ ├── content-processing.sh ← summarize / transcribe new items
│ ├── dream-light.sh ← multi-model journal pass
│ ├── morning-brief.sh ← synthesize the brief
│ ├── vibecoding-check.sh ← mode-exit verifier
│ ├── verify.sh ← multi-model adversarial review
│ ├── browser-keep-alive.sh ← CDP probe for bounty sessions
│ ├── brain-cleanup.sh ← KG light sweep
│ ├── system-cleanup.sh ← caches + /tmp + archives
│ └── install-routines.sh ← installs launchd plist
├── scripts/
│ ├── send-task.sh ← Chrono's dispatch helper
│ ├── bootstrap-mcps.sh ← register chrono MCPs across CLIs (optional)
│ └── python/ ← Python implementations (uv + PEP 723 inline deps)
├── _state/ ← runtime artifacts (gitignored)
│ ├── feed-config.yaml ← RSS sources + cadence rules
│ ├── dream-config.yaml ← privacy allowlist + skip conditions
│ ├── morning-briefs/ ← daily output
│ ├── doctor-logs/ ← daily health
│ ├── dream-logs/ ← daily journal + review
│ ├── dream-proposals/ ← pending proposals (when mode=propose)
│ ├── blog-summaries/ ← kimi-synthesized briefs
│ ├── podcast-briefs/ ← headline cards
│ └── runs/ ← mode runs (manifests + phase logs)
└── launchd/
└── com.claudevibesquad.nightly.plist
```
## ⚙️ 配置
`_state/` 中的两个 YAML 文件:
- **`feed-config.yaml`** — RSS URL、预期频率、每个来源的处理器。在此处添加你自己的播客/博客。
- **`dream-config.yaml`** — dream 系统可以扫描的路径、排除模式(secrets、财务、私人日记)、阈值、模式(`shadow` / `propose` / `aggressive`)。
Squad 在每个 CLI 的内置工具上运行良好。如果你有自己的 MCP 服务器(例如,vault MCP、research MCP、内容生成 MCP),`bin/bootstrap-mcps.sh` 可以通过一个命令在 Codex / Gemini / Kimi 中注册它们。没有该注册,主管仍然可以工作 — 只是它们不会有基于 MCP 的功能。MCP 集成是选择加入的;当未找到 MCP 源时,脚本会优雅退出。
## 🤝 理念
- **对 Vibe-coder 友好** — 命令最少,以对话为主。你永远不需要记住语法。
- **对离开者友好** — 模式在硬性关卡暂停,从不基于时间暂停。在赏金任务中途睡着,回来后继续。
- **透明的状态** — 每次分派、每次回复、每个 dream 都是一个你可以 grep 的 markdown 文件。
- **可组合,不神奇** — 邮箱是文件。唤醒是 `tmux send-keys`。验证器是一个 Python 脚本。没有任何东西是隐藏的。
- **订阅优先** — 你的 Max / Plus / OAuth 计划是基础。API 只是后备。
- **默认对抗性** — 单模型的输出在高风险工作中不被信任。审查者家族 ≠ 编写者家族。
- **没有静默的知识图谱突变** — dream 只提议;由操作员批准。
## 📜 许可证
[AGPL-3.0](LICENSE).
**为那些想像操作控制面板而不是像聊天机器人一样运行 AI 的操作员而构建。**
标签:AGPL协议, AI助手集群, AI工作流, AI开发工具, AI指挥中心, AI编程, AI路由, ChatGPT, Claude, Codex, CVE检测, DLL 劫持, DNS解析, Gemini, Kimi, MCP, OAuth认证, Promptflow, PyRIT, Shell脚本, tmux, Vibe Coder, 任务分发, 任务调度, 命令行界面, 多智能体系统, 多模型AI, 多模型审查, 多模型管理, 多模型编排, 大语言模型, 安全审查, 对抗性审查, 工具利用, 应用安全, 开源项目, 异构模型协作, 推理模型, 提示词工程, 数字取证, 文件系统邮箱, 无API密钥, 日志流, 智能体调度, 模型上下文协议, 模型推理能力, 深度思考, 策略决策点, 终端分屏, 终端复用, 能力清单, 自动化脚本, 自动化运维, 订阅计费, 跨模型协作, 进程间通信, 逆向工具, 防御加固