前言
上一篇介绍了 dev-orchestra 能做什么。 这一次,我们真正把它装进只有 Claude Code 的环境里用一用。
- 阅读大约需要 5 分钟,动手试大约需要 10 分钟
- 前提是没有安装 Codex(配合 Codex 使用留到下一篇)
dev-orchestra 已在 GitHub 上开源(MIT 许可证)。如果觉得有用,给个 Star 我会很开心。
需要准备的东西
| 东西 | 备注 |
|---|---|
| Claude Code | 事先完成登录 |
| Python 3.11 或更高版本 | 只用标准库就能运行 |
| git | 用来获取要审查的差异 |
不需要 API 密钥。直接使用 Claude Code 的登录状态。
步骤
1. 安装
在终端里执行 2 行命令。
claude plugin marketplace add istb16/dev-orchestra
claude plugin install dev-orchestra@dev-orchestra
在 Claude Code 内部输入下面的内容,效果相同。
/plugin marketplace add istb16/dev-orchestra
/plugin install dev-orchestra@dev-orchestra
安装之后,在新打开的会话中就可以使用了。
2. 首次使用时选择预设
第一次发出使用 dev-orchestra 的请求时,它会发现还没有配置,先展示当前的配置,然后询问你选哪个预设。
预设就是选择“把钱(token)花在哪里”,一共有 3 个。
| 预设 | 一句话概括 |
|---|---|
quality | 多用强力模型。质量优先 |
standard | 拿不准就选它。兼顾质量与成本的均衡型 |
fast | 以轻量模型为主。速度与成本优先 |
预设的具体内容会在本系列后半部分详细介绍,这里先用 standard 往下进行。
首次设置时,还会询问回复所使用的语言。如果选择日语,Claude Code 的用户设置中会加入一个“用日语回复”的 hook。
3. 确认只用 Claude 组建
这是我最希望你看一看的地方。
在没有安装 Codex 的机器上选择 standard,得到的配置如下(dev-orchestra 1.0.0 中 config show 的节选)。
Preset: standard (implicit; fitted to claude)
note: codex not found on PATH: reviewer seat 2 (general) went to claude as claude-general-2 (sonnet)
Architect
claude / fable / latest
Implementer
claude / opus / latest
Reviews
1. claude / opus / latest / general / claude-general
2. claude / sonnet / latest / general / claude-general-2
3. claude / sonnet / latest / security / claude-security (opus when high-risk)
4. claude / sonnet / latest / test / claude-test
原本应该分给 Codex 的审查员席位,被自动替换成了 Claude(sonnet)。 这样就不会出现按未安装的 CLI 来配置、导致每次审查都失败的情况。
- 设计用
fable,实现用opus:按角色分配不同的模型 - 审查员有 4 位。全都是 Claude,但它们是作为不带有实现时对话内容的独立进程运行的
- 这 4 位审查员的角色也各不相同:
general(通用)、security和test
4. 确认已准备就绪
为保险起见,我请代理“运行 dev-orchestra 的 doctor”来检查环境。Claude Code 部分的输出如下(节选)。
Claude Code (claude)
Installed: yes
Model selection: supported
Models (cli-help): fable, opus, sonnet
Read-only runs: enforced by --permission-mode plan --disallowed-tools Edit,Write,NotebookEdit --tools Read,Grep,Glob --strict-mcp-config --restricted
Read-only runs: enforced 的意思是:设计角色和审查角色以只读方式运行,这一点由 Claude Code 的标志位强制保证。并不是拜托它们“请不要修改”,而是压根就没有把能修改的工具交给它们。
最后如果显示 No problems found.,就说明准备完成了。
5. 用一句话提出请求
接下来只要像平时一样跟它说话就行。
用已配置的工作流实现这个 issue
给这个函数写测试,并跑一遍多模型审查
想让实现角色运行测试,需要先把测试命令加到
.claude/settings.json的permissions.allow里(例如Bash(npm test:*))。不加的话,shell 命令不会自动执行。
它会根据请求的大小,只运行必要的环节。对于较大的请求,流程如下。
- 设计:写出计划,并询问“是否按这个计划进行”
- 批准:你读完计划回答 OK 之后,才进入实现(不会擅自推进)
- 实现 → 测试
- 审查:4 位审查员互不查看对方的结果,各自审查同一份差异
- 分类处理 → 修复 → 重新测试
- 最终报告
最终报告会以类似下面的形式返回(示例)。
Tests ✓ 12 passed
Reviews 4/4 ✓
Triage 5 findings → 2 accepted, 2 rejected, 1 duplicate
Models architect Claude/fable, implementer + fixer Claude/opus
Changed src/calc.py, tests/test_calc.py
Remaining none
连哪些意见被采纳、哪些被驳回都会报告出来,所以如果有在意的意见,可以追问理由。
由于要运行多位审查员,token 的消耗会比只用一个 AI 完成时更多。建议先从小的请求开始尝试。
仅限 Claude Code 的功能与限制
这里整理了在 Claude Code 上使用时值得了解的要点(截至 dev-orchestra 1.0.0;详情见 providers.md)。
| 内容 | |
|---|---|
| 优点:只读强制最为严格 | 设计和审查只使用 Read / Grep / Glob 这 3 个工具,也不使用 MCP |
| 优点:用名称指定模型 | 写上 opus / sonnet / fable,就会使用该系列的最新模型 |
| 优点:设计可以接着上次继续 | 修改计划时,可以沿用之前设计阶段的对话(在已验证的 Claude Code 版本上) |
注意:设计和审查中,你自己的 permissions.deny 不起作用 | 因为用户、项目、本地的设置(settings.json)一个都不会读取。设计角色和审查员能读取仓库内的任何文件,所以要把隐藏机密文件的规则转移到 managed settings(下面说明) |
| 注意:实现角色不会自动执行 shell 命令 | 要运行测试,需要把测试命令(例如 Bash(npm test:*))加到 .claude/settings.json 的 permissions.allow 中 |
| 不可用:旧版 Claude Code 上设计和审查无法运行 | 在缺少所需标志位的版本上,doctor 会显示 NOT ENFORCEABLE 并停止运行 |
用 managed settings 隐藏 .env
managed settings 是面向管理员的设置文件。用户和项目的设置无法覆盖它,而且在运行设计角色和审查员时使用 --restricted 也仍会加载它。
| 操作系统 | 位置 |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-settings.json |
| Linux / WSL | /etc/claude-code/managed-settings.json |
| Windows | C:\Program Files\ClaudeCode\managed-settings.json(写入需要管理员权限) |
想让模型无法读取 .env 之类的文件,可以这样写。
{
"permissions": {
"deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)"]
}
}
位置可能会随 Claude Code 的版本而变化。请在官方文档中确认。
总结
- 安装到 Claude Code 只需 2 行命令。不需要 API 密钥
- 首次使用时只需选择预设。拿不准就选
standard - 即使没有 Codex,审查员也会自动只用 Claude 组建
- 设计和审查由 Claude Code 的标志位强制为只读
- 之后只要用一句话提出请求。计划得到你的批准之前,不会进入实现
- 如果想运行测试,要在
.claude/settings.json中允许测试命令 - 设计和审查中
permissions.deny不起作用。把隐藏.env等文件的规则转移到 managed settings
详细用法整理在 README 中。 下一篇,我们来试试 Codex。
新版本发布时的更新方法,整理在更新 dev-orchestra中。
本系列的文章可以在“dev-orchestra”文章列表中集中阅读。
GitHub: istb16/dev-orchestra(给个 Star 就是对我的鼓励)
相关文章
重新组合 dev-orchestra 的审查者与角色
介绍如何为 dev-orchestra 的每个角色(role)指定模型、如何选择审查者的侧重点,以及能提议领域专家角色的 config suggest-roles。我还把故意埋了 bug 的改动交给 9 位审查者,测了测增加人数会带来什么变化。
比较 dev-orchestra 的预设 quality / standard / fast
我在 3 种环境(只有 Claude Code、只有 Codex、两者都有)中实际展开了 dev-orchestra 初始设置里可选的预设 quality / standard / fast,并进行了比较。这里总结各角色的模型、审查者人数和成本削减程度有何不同,以及该选哪一个。
在 Antigravity 中试用 dev-orchestra
我也在 Antigravity 中装上了 dev-orchestra。作为对话的地方可以正常使用,但把设计和审查交给 Antigravity CLI(agy)是有限制的。这里整理了能做什么、不能做什么,以及我推荐的用法。