- commit
- 0ca1920
- parent
- b51ee40
- author
- im_wower
- date
- 2026-03-29 02:59:22 +0800 CST
docs: add T-BUG-030 fix baa fence with attributes not extracted Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 files changed,
+121,
-0
+121,
-0
1@@ -0,0 +1,121 @@
2+# Task T-BUG-030:修复 baa 代码块带属性时提取失败
3+
4+## 状态
5+
6+- 当前状态:`待开始`
7+- 规模预估:`S`
8+- 依赖任务:无
9+- 建议执行者:`均可`(一行改动)
10+
11+## 直接给对话的提示词
12+
13+读 `/Users/george/code/baa-conductor/tasks/T-BUG-030.md` 任务文档,完成开发任务。
14+
15+## 当前基线
16+
17+- 仓库:`/Users/george/code/baa-conductor`
18+- 分支基线:`main`
19+- 提交:`b51ee40`
20+
21+## 分支与 worktree(强制)
22+
23+- 分支名:`bug/baa-fence-attribute`
24+- worktree 路径:`/Users/george/code/baa-conductor-baa-fence-attribute`
25+
26+开工步骤:
27+
28+1. `cd /Users/george/code/baa-conductor`
29+2. `git worktree add ../baa-conductor-baa-fence-attribute -b bug/baa-fence-attribute main`
30+3. `cd ../baa-conductor-baa-fence-attribute`
31+
32+完成后提交与推送(由执行者完成,不要合并):
33+
34+1. 在 worktree 里提交所有变更(包括更新后的任务文档)
35+2. `git push -u origin bug/baa-fence-attribute`
36+
37+## 目标
38+
39+修复当 AI 输出带属性的 baa 代码块(如 `` ```baa id="xxx" ``)时,extract 提取器无法识别的问题。
40+
41+## 背景
42+
43+ChatGPT 输出的 baa 代码块会自带 `id` 属性:`` ```baa id="p4k2vt" ``。当前 `extractBaaInstructionBlocks` 用精确匹配 `=== "baa"` 判断语言标记,导致带属性的代码块被跳过。
44+
45+ingest 日志证据:
46+```json
47+{
48+ "raw_text": "```baa id=\"p4k2vt\"\n@conductor::status\n```",
49+ "blocks_count": 0,
50+ "status": "ignored_no_instructions"
51+}
52+```
53+
54+## 必须完成
55+
56+### 1. 修复 extract.ts
57+
58+**文件**:`apps/conductor-daemon/src/instructions/extract.ts` 第 36 行
59+
60+**当前代码**:
61+```typescript
62+isBaa: (match[1] ?? "").trim() === "baa",
63+```
64+
65+**修复为**:
66+```typescript
67+isBaa: /^baa(?:\s|$)/u.test((match[1] ?? "").trim()),
68+```
69+
70+这样以下格式都能匹配:
71+- `` ```baa `` — 标准格式
72+- `` ```baa id="xxx" `` — ChatGPT 带 id
73+- `` ```baa title="test" `` — 带其他属性
74+
75+### 2. 补充测试
76+
77+在现有的 extract 测试中(如果有)或新建测试中,验证:
78+- `` ```baa `` 正常提取 ✓
79+- `` ```baa id="p4k2vt" `` 正常提取 ✓
80+- `` ```javascript `` 不被提取 ✓
81+- `` ```baa-ext `` 不被提取(baa 后面紧跟非空白字符不应匹配) ✓
82+
83+## 允许修改的目录
84+
85+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/instructions/extract.ts`
86+- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/instructions/` (测试文件)
87+
88+## 验收标准
89+
90+- `raw_text` 为 `` ```baa id="xxx"\n@conductor::status\n``` `` 时,`blocks_count` 为 1
91+- 现有测试全部通过
92+- `` ```baa-ext `` 不误匹配
93+
94+## 推荐验证命令
95+
96+- `cd /Users/george/code/baa-conductor-baa-fence-attribute && pnpm build`
97+- `cd /Users/george/code/baa-conductor-baa-fence-attribute && pnpm test`
98+
99+## 执行记录
100+
101+> 以下内容由执行任务的 AI 填写,创建任务时留空。
102+
103+### 开始执行
104+
105+- 执行者:
106+- 开始时间:
107+- 状态变更:`待开始` → `进行中`
108+
109+### 完成摘要
110+
111+- 完成时间:
112+- 状态变更:`进行中` → `已完成`
113+- 修改了哪些文件:
114+- 核心实现思路:
115+- 跑了哪些测试:
116+
117+### 执行过程中遇到的问题
118+
119+> 记录执行过程中遇到的阻塞、环境问题、临时绕过方案等。合并时由合并者判断是否需要修复或建新任务。
120+
121+### 剩余风险
122+