baa-conductor

git clone 

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
A tasks/T-BUG-030.md
+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+