- 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
+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+- 还有哪些剩余风险
+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