tk3.biz
返回博客列表

在 Claude Code 中装上 dev-orchestra,用一句话推动开发

前言

上一篇介绍了 dev-orchestra 能做什么。 这一次,我们真正把它装进只有 Claude Code 的环境里用一用。

  • 阅读大约需要 5 分钟,动手试大约需要 10 分钟
  • 前提是没有安装 Codex(配合 Codex 使用留到下一篇)

dev-orchestra 已在 GitHub 上开源(MIT 许可证)。如果觉得有用,给个 Star 我会很开心。

→ github.com/istb16/dev-orchestra

需要准备的东西

东西备注
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 命令不会自动执行。

它会根据请求的大小,只运行必要的环节。对于较大的请求,流程如下。

  1. 设计:写出计划,并询问“是否按这个计划进行”
  2. 批准:你读完计划回答 OK 之后,才进入实现(不会擅自推进)
  3. 实现 → 测试
  4. 审查:4 位审查员互不查看对方的结果,各自审查同一份差异
  5. 分类处理 → 修复 → 重新测试
  6. 最终报告

最终报告会以类似下面的形式返回(示例)。

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
WindowsC:\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 就是对我的鼓励)

相关文章