baa-conductor

git clone 

commit
a6e3a34
parent
87c6087
author
im_wower
date
2026-03-28 02:45:33 +0800 CST
docs: add task card for missing 003
2 files changed,  +116, -1
A tasks/T-MISSING-003.md
+114, -0
  1@@ -0,0 +1,114 @@
  2+# Task T-MISSING-003:补齐 Phase 1 的 browser.claude target
  3+
  4+## 直接给对话的提示词
  5+
  6+读 `/Users/george/code/baa-conductor/tasks/T-MISSING-003.md` 任务文档,完成开发任务。
  7+
  8+如需补背景,再读:
  9+
 10+- `/Users/george/code/baa-conductor/bugs/MISSING-003-browser-target-blocked-in-phase1.md`
 11+- `/Users/george/code/baa-conductor/plans/BAA_INSTRUCTION_SYSTEM.md`
 12+- `/Users/george/code/baa-conductor/tasks/TASK_OVERVIEW.md`
 13+
 14+## 当前基线
 15+
 16+- 仓库:`/Users/george/code/baa-conductor`
 17+- 分支基线:`main`
 18+- 提交:`87c6087`
 19+- 开工要求:必须先从当前 `main` 新建任务分支,再开始开发;禁止直接在 `main` 上修改。功能任务分支名必须以 `feat/` 开头,缺陷任务分支名必须以 `bug/` 开头。
 20+
 21+## 必须创建的新分支名
 22+
 23+- `feat/phase1-browser-claude-target`
 24+
 25+## 目标
 26+
 27+让 Phase 1 指令系统正式接受 `@browser.claude`,并把 `send` / `current` 路由到现有本地浏览器接口。
 28+
 29+## 背景
 30+
 31+当前 `browser.final_message`、Claude final-message relay 和本地 `/v1/browser/claude/*` HTTP 面都已经存在,但 BAA instruction Phase 1 仍然在 policy 层直接拒绝 `browser.*` target。这导致浏览器目标虽然底层能力已经有了,上层指令系统却无法正式调用,主链路仍然缺一段。
 32+
 33+## 涉及仓库
 34+
 35+- `/Users/george/code/baa-conductor`
 36+
 37+## 范围
 38+
 39+- 放开 `browser.claude` 的 Phase 1 target 支持
 40+- 为 `send` / `current` 增加 instruction route
 41+- 补最小自动化回归测试
 42+
 43+## 路径约束
 44+
 45+优先只在 instruction policy / router / 现有测试入口里完成,不要顺手扩到 `browser.chatgpt`、`browser.gemini`、插件协议或新的 browser target 设计。
 46+
 47+## 推荐实现边界
 48+
 49+建议优先做:
 50+
 51+- `policy.ts` 放开 `browser.claude`
 52+- `policy.ts` 的工具白名单补 `send`、`current`
 53+- `router.ts` 明确把 `@browser.claude::send` 映射到 `POST /v1/browser/claude/send`
 54+- `router.ts` 明确把 `@browser.claude::current` 映射到 `GET /v1/browser/claude/current`
 55+- `send` 至少支持字符串 prompt;如支持 JSON object,也只做最小映射
 56+- 在 `apps/conductor-daemon/src/index.test.js` 补回归
 57+
 58+## 允许修改的目录
 59+
 60+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/instructions/policy.ts`
 61+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/instructions/router.ts`
 62+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/index.test.js`
 63+
 64+## 尽量不要修改
 65+
 66+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/local-api.ts`
 67+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/firefox-ws.ts`
 68+- `/Users/george/code/baa-conductor/plugins/baa-firefox/`
 69+- `/Users/george/code/baa-conductor/tests/browser/`
 70+
 71+## 必须完成
 72+
 73+### 1. 放开 Phase 1 target / tool
 74+
 75+- `browser.claude` 不再被 policy 直接拒绝
 76+- `send` / `current` 不再被 tool 白名单直接拒绝
 77+
 78+### 2. 接到现有本地浏览器接口
 79+
 80+- `@browser.claude::send::<prompt>` 能路由到现有 `POST /v1/browser/claude/send`
 81+- `@browser.claude::current` 能路由到现有 `GET /v1/browser/claude/current`
 82+- route 的参数校验要明确,不接受含糊的隐式格式
 83+
 84+### 3. 补自动化回归
 85+
 86+- 覆盖 `browser.claude::send` 的正向路由
 87+- 覆盖 `browser.claude::current` 的正向路由
 88+- 覆盖至少一个通过 `BaaInstructionCenter` 真正执行到 browser route 的场景
 89+
 90+## 需要特别注意
 91+
 92+- 不要顺手放开 `browser.chatgpt` 或其他 `browser.*` target
 93+- 不要把这张卡扩成完整多平台 browser target 设计
 94+- 保持现有 `conductor/system` 的 Phase 1 行为不回归
 95+- 如果 `send` 支持 JSON object,保持映射规则简单、可测试、可解释
 96+
 97+## 验收标准
 98+
 99+- `@browser.claude::send` 不再因为 `unsupported_target` / `unsupported_tool` 被拒绝
100+- `@browser.claude::current` 不再因为 `unsupported_target` / `unsupported_tool` 被拒绝
101+- 现有 `/v1/browser/claude/send` 与 `/v1/browser/claude/current` 合同被 instruction route 复用
102+
103+## 推荐验证命令
104+
105+- `node --test /Users/george/code/baa-conductor/apps/conductor-daemon/src/index.test.js`
106+- `git diff --check`
107+
108+## 交付要求
109+
110+完成后请说明:
111+
112+- 修改了哪些文件
113+- 核心实现思路是什么
114+- 跑了哪些测试
115+- 还有哪些剩余风险
M tasks/TASK_OVERVIEW.md
+2, -1
 1@@ -17,7 +17,7 @@
 2 
 3 - `已完成`:见 [`./archive/README.md`](./archive/README.md)
 4 - `当前 TODO`:
 5-  - 下一张主线任务卡待新建
 6+  - [`T-MISSING-003.md`](./T-MISSING-003.md):补齐 Phase 1 的 `browser.claude` target
 7 - `待处理缺陷`:见 [`../bugs/README.md`](../bugs/README.md)
 8 - `低优先级 TODO`:`4318/status-api` 兼容层删旧与解耦
 9 
10@@ -52,6 +52,7 @@
11   - 默认超长策略改成前 `200` 行 + `超长截断`
12 - `2026-03-28`:`T-BUG-015`、`T-BUG-016`、`T-BUG-017` 已完成并归档到 [`./archive/README.md`](./archive/README.md)
13 - `2026-03-28`:`T-BUG-018` 已完成并归档到 [`./archive/README.md`](./archive/README.md)
14+- `2026-03-28`:当前活跃任务卡为 [`T-MISSING-003.md`](./T-MISSING-003.md),用于补齐 Phase 1 的 `browser.claude` target
15 
16 ## 当前主线收口情况
17