ai_member_xiaoyan/memory/2026-05-18.md

810 lines
34 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
---
## P4 短对话选择题批量改写([刘彦江]
### 问题
短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。
### 方案(刘彦江确认)
1. 三人对话 → 两人对话(一男一女)
2. 对话中嵌入名字互称:`Ben: Hi, Lucy. ...` / `Lucy: You're right, Ben. ...`
3. 两种题型并行:
- **人名匹配题**1-3题/套):问 Whose/Who选项为人名
- **内容理解题**2-4题/套):问内容,用名字锚定说话者(如"What does Otis say about..."
4. 不改考点和难度L1 B级
5. 答案A/B/C平均分配
6. 全部中文解析 + ability标签
### 改写结果
- 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz
- 改写范围9个QSID约85题
- 写入方式rewrite_p4_all.py → 先dry run验证 → 再write模式写回
- 一条021801因shell转义损坏Python curl直连修复
- 9/9 全部回读验证通过
### 待办
- ⚠️ 音频文件需重新录制旧mp3为三人口播新对话文本已改为两人
### 改写详细汇总
| QSID | 题数 | first题型(M/C) | second题型(M/C) | 答案分布(first/second) | 状态 |
|------|:--:|:--:|:--:|:--:|:--:|
| 021301 | 5+5 | 2/3 | 1/4 | A2B1C2 / A2B2C1 | ✅ |
| 021401 | 5+5 | 1/4 | 1/4 | A1B2C2 / A2B2C1 | ✅ |
| 021501 | 5+5 | 2/3 | 2/3 | A1B2C2 / A2B2C1 | ✅ |
| 021601 | 5+0 | 2/3 | — | A2B2C1 | ✅ |
| 021701 | 5+0 | 2/3 | — | A2B2C1 | ✅ |
| 021801 | 5+5 | 1/4 | 1/4 | A2B2C1 / A2B2C1 | ✅ |
| 022101 | 5+0 | 1/4 | — | A2B2C1 | ✅ |
| 032501 | 5+0 | 3/2 | — | A2B2C1 | ✅ |
| 032901 | 5+0 | 3/2 | — | A2B2C1 | ✅ |
# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
---
## P4 短对话选择题批量改写([刘彦江]
### 问题
短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。
### 方案(刘彦江确认)
1. 三人对话 → 两人对话(一男一女)
2. 对话中嵌入名字互称:`Ben: Hi, Lucy. ...` / `Lucy: You're right, Ben. ...`
3. 两种题型并行:
- **人名匹配题**1-3题/套):问 Whose/Who选项为人名
- **内容理解题**2-4题/套):问内容,用名字锚定说话者(如"What does Otis say about..."
4. 不改考点和难度L1 B级
5. 答案A/B/C平均分配
6. 全部中文解析 + ability标签
### 改写结果
- 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz
- 改写范围9个QSID约85题
- 写入方式rewrite_p4_all.py → 先dry run验证 → 再write模式写回
- 一条021801因shell转义损坏Python curl直连修复
- 9/9 全部回读验证通过
- ⚠️ **Bug发现**dry run 时 `pop("dialogue")` 污染了 first_qs 和 first_block["questionSet"] 的共享对象,导致 write 时 题目1 字段的【听力文本】为空
-**已修复**fix_p4_dialogue.py 从 rewrite 脚本源码提取对话,重写 题目1/题目2 字段
### 待办
- ⚠️ 音频文件需重新录制旧mp3为三人口播新对话文本已改为两人
### 改写详细汇总
| QSID | 题数 | first题型(M/C) | second题型(M/C) | 答案分布(first/second) | 状态 |
|------|:--:|:--:|:--:|:--:|:--:|
| 021301 | 5+5 | 2/3 | 1/4 | A2B1C2 / A2B2C1 | ✅ |
| 021401 | 5+5 | 1/4 | 1/4 | A1B2C2 / A2B2C1 | ✅ |
| 021501 | 5+5 | 2/3 | 2/3 | A1B2C2 / A2B2C1 | ✅ |
| 021601 | 5+0 | 2/3 | — | A2B2C1 | ✅ |
| 021701 | 5+0 | 2/3 | — | A2B2C1 | ✅ |
| 021801 | 5+5 | 1/4 | 1/4 | A2B2C1 / A2B2C1 | ✅ |
| 022101 | 5+0 | 1/4 | — | A2B2C1 | ✅ |
| 032501 | 5+0 | 3/2 | — | A2B2C1 | ✅ |
| 032901 | 5+0 | 3/2 | — | A2B2C1 | ✅ |
# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
---
## P4 短对话选择题批量改写([刘彦江]
### 问题
短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。
### 方案(刘彦江确认)
1. 三人对话 → 两人对话(一男一女)
2. 对话中嵌入名字互称:`Ben: Hi, Lucy. ...` / `Lucy: You're right, Ben. ...`
3. 两种题型并行:
- **人名匹配题**1-3题/套):问 Whose/Who选项为人名
- **内容理解题**2-4题/套):问内容,用名字锚定说话者(如"What does Otis say about..."
4. 不改考点和难度L1 B级
5. 答案A/B/C平均分配
6. 全部中文解析 + ability标签
### 改写结果
- 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz
- 改写范围9个QSID约85题
- 写入方式rewrite_p4_all.py → 先dry run验证 → 再write模式写回
- 一条021801因shell转义损坏Python curl直连修复
- 9/9 全部回读验证通过
- ⚠️ **Bug发现**dry run 时 `pop("dialogue")` 污染了 first_qs 和 first_block["questionSet"] 的共享对象,导致 write 时 题目1 字段的【听力文本】为空
-**已修复**fix_p4_dialogue.py 从 rewrite 脚本源码提取对话,重写 题目1/题目2 字段
### 待办
- ⚠️ 音频文件需重新录制旧mp3为三人口播新对话文本已改为两人
### 改写详细汇总
| QSID | 题数 | first题型(M/C) | second题型(M/C) | 答案分布(first/second) | 状态 |
|------|:--:|:--:|:--:|:--:|:--:|
| 021301 | 5+5 | 2/3 | 1/4 | A2B1C2 / A2B2C1 | ✅ |
| 021401 | 5+5 | 1/4 | 1/4 | A1B2C2 / A2B2C1 | ✅ |
| 021501 | 5+5 | 2/3 | 2/3 | A1B2C2 / A2B2C1 | ✅ |
| 021601 | 5+0 | 2/3 | — | A2B2C1 | ✅ |
| 021701 | 5+0 | 2/3 | — | A2B2C1 | ✅ |
| 021801 | 5+5 | 1/4 | 1/4 | A2B2C1 / A2B2C1 | ✅ |
| 022101 | 5+0 | 1/4 | — | A2B2C1 | ✅ |
| 032501 | 5+0 | 3/2 | — | A2B2C1 | ✅ |
| 032901 | 5+0 | 3/2 | — | A2B2C1 | ✅ |
# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
---
## P4 短对话选择题批量改写([刘彦江]
### 问题
短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。
### 方案(刘彦江确认)
1. 三人对话 → 两人对话(一男一女)
2. 对话中嵌入名字互称
3. 两种题型并行人名匹配题1-3题/套)+ 内容理解题(主体)
4. 不改考点和难度L1 B级答案均匀中文解析ability标签
### 改写结果
- 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz9个QSID ~85题
- rewrite_p4_all.py: 先dry run → write模式
- 一条021801shell转义损坏 → Python curl直连修复
- ⚠️ **Bugdry run 时 pop("dialogue") 污染 first_qs/first_block 共享对象 → write 时【听力文本】丢失**
-**已修复fix_p4_dialogue.py 提取对话重写题目1/题目2**
- 待办音频重录旧mp3三人口播 → 需两人)
### 改写汇总
| QSID | 题数 | 答案分布 | 状态 |
|------|:--:|:--:|:--:|
| 021301 | 5+5 | A2B1C2 / A2B2C1 | ✅ |
| 021401 | 5+5 | A1B2C2 / A2B2C1 | ✅ |
| 021501 | 5+5 | A1B2C2 / A2B2C1 | ✅ |
| 021601 | 5+0 | A2B2C1 | ✅ |
| 021701 | 5+0 | A2B2C1 | ✅ |
| 021801 | 5+5 | A2B2C1 / A2B2C1 | ✅ |
| 022101 | 5+0 | A2B2C1 | ✅ |
| 032501 | 5+0 | A2B2C1 | ✅ |
| 032901 | 5+0 | A2B2C1 | ✅ |
## 口语-P1 审校([刘彦江]
### 范围
QSID: 121301, 121401, 121501口语-P1-日常回答tblRGv7k4WH58Jgq
### 发现问题
- **121301**: 6题 ability 全空
- **121401**: ability 重复("听觉抓取关键信息"×2+ 标签偏向听力而非口语
- **121501**: 6题 ability 全空
- answer 为空 → 正常speaking_qa 参考回答在 explanation 内)
### 修复
- 全部补充/替换为口语向标签(语用表达能力等)
- 3/3 审校结果列更新为 `✅ OK | 2026-05-18 小研审校`
### Record ID 映射
| QSID | Record ID |
|------|-----------|
| 121301 | recvjW9RVwziwL |
| 121401 | recvjW9RVwGzba |
| 121501 | recvjW9RVwj4aQ |
---
## 听力-P1 图片选择题 生产+回填+审校([刘彦江]
### 范围
QSID: 121301, 121401, 121501听力-P1-图片选择题)
难度: L1 B级
### 词汇词库命中率
29个词中仅6个在L1/L2词库sofa, zoo, study, play, mat, mouth23个超纲。
业务负责人放行,优先生产,词库后补。
### 产出
| QSID | Record ID | 词表(first/second) | 答案分布 |
|------|-----------|------|:--:|
| 121301 | recvjWrIXVjkWY | home/house/sofa/cupboard/bedroom // zoo/hippo/bear/live | A2B2C1 ×2 |
| 121401 | recvjWrJos9LH7 | study/play/art/spell/letter // crayon/board/desk/schoolbag/handbag | A2B2C1 ×2 |
| 121501 | recvjWrJQ9Njnl | meet/friend/board game/ping-pong // body/head/mouth/ear | A2B2C1 ×2 |
### 审校通过
全部检查项合格jsonData结构、audio/image命名、答案分布、ability标签、中文解析、题目1/2字段。
### 待办
⚠️ 23个超纲词需后续补入L1词库home, house, cupboard, bedroom, hippo, bear, live, art, spell, letter, English, crayon, board, desk, schoolbag, handbag, meet, friend, board game, ping-pong, body, head, ear
---
## L1-S2-U18-L5 双龙会 台词润色审校([王璐辰]
### 背景
审查飞书知识库剧本表格「台词润色列」错误。文档为内嵌 Sheetblock_type 30需用 blocks API 才能发现。
### 审校结果
- 语法/拼写硬错误5处Rows 41, 55, 126, 153, 178
- 表达优化建议4处Rows 77, 84, 207, 63
- 一致性遗漏4行无润色 + dragon/Loong 混用不统一
- 润色质量好的部分:长句拆分、语法/拼写修正、知识点保留 ✓
### D列知识点统计
- 6个知识点class/fun/playground/English/Have fun with.../Over here.共20次
- English 在知识点列未标注但实际台词出现9次
### 交互模式收获
- 用户(王璐辰)偏好直接在 bitable 中写入统计表格而非仅输出文字/卡片 → 后续同类需求优先写入原表
# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
---
## P4 短对话选择题批量改写([刘彦江]
### 背景
短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。
### 方案(刘彦江确认)
1. 三人对话 → 两人对话(一男一女),对话中嵌入名字互称
2. 两种题型并行人名匹配题1-3题/套)+ 内容理解题(主体)
3. 不改考点和难度L1 B级答案均匀中文解析ability标签
### 改写结果
- 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz9个QSID ~85题
- rewrite_p4_all.py: 先dry run → write模式
- 一条021801shell转义损坏 → Python curl直连修复
- ⚠️ **Bugdry run 时 pop("dialogue") 污染 first_qs/first_block 共享对象 → write 时【听力文本】丢失**
-**已修复fix_p4_dialogue.py 提取对话重写题目1/题目2**
- 待办音频重录旧mp3三人口播 → 需两人)
### 改写汇总
| QSID | 题数 | 答案分布 | 状态 |
|------|:--:|:--:|:--:|
| 021301 | 5+5 | A2B1C2 / A2B2C1 | ✅ |
| 021401 | 5+5 | A1B2C2 / A2B2C1 | ✅ |
| 021501 | 5+5 | A1B2C2 / A2B2C1 | ✅ |
| 021601 | 5+0 | A2B2C1 | ✅ |
| 021701 | 5+0 | A2B2C1 | ✅ |
| 021801 | 5+5 | A2B2C1 / A2B2C1 | ✅ |
| 022101 | 5+0 | A2B2C1 | ✅ |
| 032501 | 5+0 | A2B2C1 | ✅ |
| 032901 | 5+0 | A2B2C1 | ✅ |
---
## 口语-P1 审校([刘彦江]
### 范围
QSID: 121301, 121401, 121501口语-P1-日常回答tblRGv7k4WH58Jgq
### 修复
- ability 全空/偏向听力 → 全部补充为口语向标签
- 3/3 审校结果列更新为 `✅ OK | 2026-05-18 小研审校`
### Record ID 映射
| QSID | Record ID |
|------|-----------|
| 121301 | recvjW9RVwziwL |
| 121401 | recvjW9RVwGzba |
| 121501 | recvjW9RVwj4aQ |
---
## 听力-P1 图片选择题 生产+回填+审校([刘彦江]
### 范围
QSID: 121301, 121401, 121501听力-P1-图片选择题L1 B级
29词中仅6个在词库23个超纲。业务负责人放行优先生产词库后补。
### 产出
| QSID | Record ID | 答案分布 |
|------|-----------|:--:|
| 121301 | recvjWrIXVjkWY | A2B2C1 ×2 |
| 121401 | recvjWrJos9LH7 | A2B2C1 ×2 |
| 121501 | recvjWrJQ9Njnl | A2B2C1 ×2 |
### 待办
⚠️ 23个超纲词需补入L1词库
---
## 图片文本输出([刘彦江]
### 背景
听力-P1 121301/121401/121501 选项图 prompt 需输出给图片生成人员。
### 飞书消息格式陷阱 🔴
直接输出 `[1-A-选项图彩图]:{"prompt":"..."}` 到飞书对话中,被飞书渲染引擎吃掉(方括号+JSON格式被当标签/链接处理),用户看不到内容。
**解决方案:必须用代码块(```)包裹或通过 message() 工具以编程方式发送。**
---
## 题型-能力标签映射([刘彦江]
### 背景
用户要求:把所有单元挑战题型与 45 个标准能力 tag 做映射。
### 能力标签源文件
- 路径: `business_knowledge/ability_tags.md`Vala 英语能力标签体系2026-05-13更新
- 45 个标准标签:听力(11)、口语(10)、阅读(13)、写作(11)
### ability 格式不统一问题(重要发现)🔴
提取过程中发现 ability 标签在 bitable jsonData 中存在两种不同格式和位置:
**格式A: JSON 数组(每题内部)**
```json
{"first": {"questionSet": [{"ability": ["听觉抓取关键信息", "多特征整合"]}]}}
```
适用题型:听力-P1/P2/P3/P4/P7阅读全7个口语全4个
**格式B: ¥¥ 分隔字符串(顶层)**
```json
{"first": {"ability": "听觉抓取关键信息¥¥多特征整合"}}
```
适用题型:听力-P5写作-P1/P2/P3
### 映射结果(修正后)
- **写作-P1** ✅ 有标签:短消息写作|邮件/便条、衔接与连贯|连词使用、描述性写作|人物与地点、描述性写作|场景与情绪、句型组织、问题解决|求助与建议(部分非标准标签名)
- **写作-P2** ⚠️ 格式不规范(模板残留):看图写故事,衔接与连贯、连词使用
- **写作-P3** ❌ 纯占位符 "xxxx",确实无标签
- **听力-P5** ✅ 有标签(¥¥格式补抓):听觉抓取关键信息、多特征整合
### 已修正的其他发现
- 口语-P1/P2/P3/P4 ability 标签已正确提取格式A路径
- 20 个未覆盖标签 = 45 标准标签中历史数据从未出现的(情绪/态度理解、长对话理解、图片对比、故事讲述、发音语调、写作全11个等
### 产出文件
- `business_knowledge/unit_challenge_type_ability_mapping.md` — 完整映射表(已修正)
- `/tmp/unit_challenge_ability_doc.md` — 对外分享版
---
## L1-S2-U18-L5 双龙会 台词润色审校([王璐辰]
### 审校结果
- 语法/拼写硬错误5处Rows 41, 55, 126, 153, 178
- 表达优化建议4处Rows 77, 84, 63, 207
- 一致性遗漏4行无润色 + dragon/Loong 混用不统一
- D列知识点6个知识点共20次
### 交互模式收获
- 用户(王璐辰)偏好直接在 bitable 中写入统计表格 → 后续同类需求优先写入原表
# 2026-05-18 工作日志
## 单元挑战全题型审核 + 修复
### 背景
[刘彦江] 要求对单元挑战全部20种题型审核重点解析不能纯英文、答案格式正确性。题目内容不修改。
### 审核结果
- 审核范围20张表、244条记录
- 答案格式:零问题
- 纯英文解析13处听力-P2 021901 ×10口语-P1 032701/032901口语-P2 032801
- 解析为空83处听力-P1 000001+110101~110401 ×50听力-P4 021701/022101/032501/032901 ×20共写作-P3复查后实际OK
### 修复执行
- 13条纯英文→中文化翻译通过模型翻译
- 70条空解析→从题目内容+ability关键词智能生成
- 全部通过 Python+curl 写回 bitable避免shell转义
- 写入后回读验证107条全部含中文零错误
### 审校结果列更新
- 格式:`✅ OK | 2026-05-18 小研审校` / `📝 空模板 | 2026-05-18 小研审校`
- 已更新18张表、241条记录
- 缺失列:写作-P2tblSAwlMumKoyjws、口语-P4tblsD2dxaRpLmkXD无「审校结果」列
### 经验
- 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文
- bitable curl 写回嵌套JSON时Python subprocess构造完整body比shell变量展开安全
- 听力-P1 000001 虽有5条first+5条second但确有题目内容不是纯占位按实际内容生成了解析
---
## P4 短对话选择题批量改写([刘彦江]
### 背景
短对话选择题用户只能听音频,无人名标签显示。三人对话中问题问"Whose/Who",用户无法分辨谁是谁。
### 方案(刘彦江确认)
1. 三人对话 → 两人对话(一男一女),对话中嵌入名字互称
2. 两种题型并行人名匹配题1-3题/套)+ 内容理解题(主体)
3. 不改考点和难度L1 B级答案均匀中文解析ability标签
### 改写结果
- 表:听力-P4-短对话选择题tblVmeDtBDKsAEfz9个QSID ~85题
- rewrite_p4_all.py: 先dry run → write模式
- 一条021801shell转义损坏 → Python curl直连修复
- ⚠️ **Bugdry run 时 pop("dialogue") 污染 first_qs/first_block 共享对象 → write 时【听力文本】丢失**
-**已修复fix_p4_dialogue.py 提取对话重写题目1/题目2**
- 待办音频重录旧mp3三人口播 → 需两人)
| QSID | 题数 | 答案分布 | 状态 |
|------|:--:|:--:|:--:|
| 021301 | 5+5 | A2B1C2 / A2B2C1 | ✅ |
| 021401 | 5+5 | A1B2C2 / A2B2C1 | ✅ |
| 021501 | 5+5 | A1B2C2 / A2B2C1 | ✅ |
| 021601 | 5+0 | A2B2C1 | ✅ |
| 021701 | 5+0 | A2B2C1 | ✅ |
| 021801 | 5+5 | A2B2C1 / A2B2C1 | ✅ |
| 022101 | 5+0 | A2B2C1 | ✅ |
| 032501 | 5+0 | A2B2C1 | ✅ |
| 032901 | 5+0 | A2B2C1 | ✅ |
---
## 口语-P1 审校([刘彦江]
### 范围
QSID: 121301, 121401, 121501口语-P1-日常回答tblRGv7k4WH58Jgq
### 修复
- ability 全空/偏向听力 → 全部补充为口语向标签
- 3/3 审校结果列更新为 `✅ OK | 2026-05-18 小研审校`
| QSID | Record ID |
|------|-----------|
| 121301 | recvjW9RVwziwL |
| 121401 | recvjW9RVwGzba |
| 121501 | recvjW9RVwj4aQ |
---
## 听力-P1 图片选择题 生产+回填+审校([刘彦江]
### 范围
QSID: 121301, 121401, 121501听力-P1-图片选择题L1 B级
29词中仅6个在词库23个超纲。业务负责人放行优先生产词库后补。
| QSID | Record ID | 答案分布 |
|------|-----------|:--:|
| 121301 | recvjWrIXVjkWY | A2B2C1 ×2 |
| 121401 | recvjWrJos9LH7 | A2B2C1 ×2 |
| 121501 | recvjWrJQ9Njnl | A2B2C1 ×2 |
### 待办
⚠️ 23个超纲词需补入L1词库
---
## 图片文本输出([刘彦江]
### 飞书消息格式陷阱 🔴
直接输出 `[1-A-选项图彩图]:{"prompt":"..."}` 到飞书对话中,被渲染引擎吃掉(方括号+JSON当标签处理用户看不到内容。
**解决方案:代码块包裹或 message() 工具发送。**
---
## 题型-能力标签映射([刘彦江]
### 背景
把所有单元挑战题型与 45 个标准能力 tag 做映射。
### 能力标签源文件
- 路径: `business_knowledge/ability_tags.md`Vala 英语能力标签体系2026-05-13更新
- 45 个标准标签:听力(11)、口语(10)、阅读(13)、写作(11)
### ability 格式不统一问题(重要发现)🔴
提取中发现 ability 存在两种不同格式/位置:
**格式A: JSON 数组(每题内部)**
```json
{"first": {"questionSet": [{"ability": ["听觉抓取关键信息", "多特征整合"]}]}}
```
适用:听力-P1/P2/P3/P4/P7阅读全7个口语全4个
**格式B: ¥¥ 分隔字符串(顶层)**
```json
{"first": {"ability": "听觉抓取关键信息¥¥多特征整合"}}
```
适用:听力-P5写作-P1/P2/P3
### 映射结果(修正后)
- **写作-P1** ✅ 有标签格式B短消息写作邮件/便条、衔接与连贯|连词使用、描述性写作|人物与地点、描述性写作|场景与情绪、句型组织、问题解决|求助与建议(部分非标准标签名)
- **写作-P2** ⚠️ 格式不规范(模板残留)
- **写作-P3** ❌ 纯占位符 "xxxx"
- **听力-P5** ✅ 有标签格式B补抓听觉抓取关键信息、多特征整合
- **20 个未覆盖标签** = 45 标准标签中历史数据从未出现的写作全11个、听力 情绪/态度理解+长对话理解、口语 图片对比+故事讲述+发音语调 等)
### 产出
- `business_knowledge/unit_challenge_type_ability_mapping.md` — 完整映射表
- `/tmp/unit_challenge_ability_doc.md` — 对外分享版(已发送文件 + 飞书文档)
---
## L1-S2-U18-L5 双龙会 台词润色审校([王璐辰]
### 审校结果
- 语法/拼写硬错误5处Rows 41, 55, 126, 153, 178
- 表达优化建议4处Rows 77, 84, 63, 207
- 一致性遗漏4行无润色 + dragon/Loong 混用不统一
- D列知识点6个知识点共20次
### 交互模式收获
- 用户(王璐辰)偏好直接在 bitable 中写入统计表格 → 后续同类需求优先写入原表
## [刘彦江] 口语-P4-看图识物 内容生产2026-05-18 19:34
### 生产范围3条记录全部双题组全部回填验证通过 ✅)
| ID | record_id | 题组1 | 题组2 | 状态 |
|----|-----------|-------|-------|------|
| 100001 | recvjYhcXkYXIM | 6题(颜色) | 5题(衣物) | ✅ |
| 110101 | recvjYhdvUxDgs | 6题(身体) | 6题(颜色) | ✅ |
| 110201 | recvjYhe4opOGm | 6题(食物) | 4题(动物) | ✅ |
### 题型结构
**口语-P4 (speaking_pic_recognize)**:
- textTitle: "Look and answer."
- 每词1题配1图白底中央展示单个物体/颜色)
- 颜色题: "What colour is it?",物体题: "What's this?"
- ability: 图文匹配
- explanation: 含回答要点、图片内容、能力、评估标准、回答指导
### 审校结果
- ✅ 全部27题 jsonData 结构完整、explanation 全中文、题目格式正确
- ✅ 题目集合ID一致、图片编号连续00-10/00-11/00-09
- ✅ 题目配置(人类可读)格式规范
- ⚠️ 口语-P4表无「审校结果」列无法标记审校状态
- 110101题组2 "colour"出现2次调色盘+彩虹)— 按规格生成
- 110201 "mice"(复数) 使用 "What are these?" 区分于 "mouse"(单数) 使用 "What's this?"
- 以下词汇未在L1词库中检索到词库仅160词/声称980词疑似文件不完整jacket, T-shirt, hair, monster, colour, bread, cake, candy, chocolate, ice cream, mice, mouse — 按用户指定词汇生产,未做替换
### Bitable信息
- App Token: CMHSbUUjka3TrUsaxxEc297ongf
- Table ID: tblsD2dxaRpLmkXD
- 操作方式: Python subprocess + curl避免shell转义
## [李应瑛] L1-S2-U17-L3 紧急拜访 组件配置2026-05-18 20:58
### 背景
李应瑛发送知识库关卡制作文档链接 `K6DIwFqpgi1SjZkEPS9cNESfn0d`,要求为剧本中的互动环节生成组件配置。
### 完成事项
- ✅ 读取文档完整内容剧本表Nr3Ovs 243行、知识点表zbfYO4、剧情摘要等5个子表
- ✅ 识别16个互动点对话朗读-配图、对话挖空、对话选择-配图、听力选择等其中10个H列已有配置
- ✅ 方案3both行159 H列文本配置 + LV1多维表格正式JSON
### H列配置行159
写入 `Nr3Ovs!H159`,内容包含任务标题「听听爷爷的来信」、情境引入、互动内容和后置对话。回读验证通过。
### LV1 多维表格 JSONID: 1217310
- **App Token:** `C7e9bzA1GaZ61FsTz87cEM8Ynoe`
- **Table:** LV1 (`tblH4xNpAmKJ7gEq`)
- **Record ID:** `recvjYze7B5cDQ`
- **cType:** `core_listening_choose`
- **题目组:** 2组Q1: Who will come to visit? → Grandfather / Q2: Who else is coming? → Grandmother
- **学习过程:** 3个重点句visit / grandmother / grandfather
- **音频来源:** 爷爷Justin念信剧本行160-163
- **写入方式:** Python subprocess + curl避免shell转义
### 待补充
| 项目 | 说明 |
|------|------|
| 图片素材 | 6张选项图 `1217310_option_00~05.png` 待配置 |
| kpListSentence/kpListVocab | 待填入Unit 1217对应的句型/单词知识ID |
| kpInfo.kpId | grandfather/grandmother/visit 的具体知识ID待确认 |
| 音频录制 | Justin念信4句音频待录制 |
### 互动组件脚本参考路径
- `business_knowledge/skills/core-content-json-standard/SKILL.md` — 14种核心题型JSON标准
- `business_production/_shared/feishu-embedded-sheet/SKILL.md` — 内嵌Sheet读写
- `business_production/_shared/lark_bitable_operate_as_bot/SKILL.md` — Bot身份多维表格操作
## [李应瑛] L1-S2-U17-L4 门关啦 组件配置2026-05-18 21:00
### 背景
李应瑛发送知识库文档 `SAadwW8YaiObl8k4op3c6vs8nqb`L1-S2-U17-L4 门关啦),要求根据组件类型生成配置,回填到 **F列**不同于L3的H列
### 文档结构
- Wiki token: `SAadwW8YaiObl8k4op3c6vs8nqb`
- Space ID: `7412143055920414722`
- Spreadsheet token: `It4AsFkC7hXHc4te9yUcyLHRnOe`
- Script sheet: `wMQVyV`202行×8列
- Knowledge points sheet: `eXTXJ8`6个知识点open, closed, door, home, 2个句型
- 列结构A=类型, B=配置信息, C=剧情描述, D=角色名, E=英文台词, **F=组件配置**, G=知识点, H=编剧台词
### 互动组件识别
- 16个互动组件ID 1217401-1217416全部F列为空
- 类型分布对话朗读×6、对话挖空×4、图片单选×1、对话选择×2、对话组句×2、看图拼词×1
- 知识点覆盖open/closed/door/home 及对应句型
### 写入方式
- Sheets v2 API PUT valuesrange 格式注意sheet_id不加引号
- 先试 `'wMQVyV'!F10` 报 "sheetId not found" → 修正为 `wMQVyV!F10` 成功
- 16/16 全部回读验证通过
### 脚本
`scripts/write_L4_F_configs.py`
---
## [李应瑛] L1-S2-U17-L5 笨蛋坏蛋英文生产2026-05-18 21:15
### 背景
李应瑛发送知识库文档 `U1zEwHZaaie07TkjmOOchurgnIh`L1-S2-U17-L5 笨蛋坏蛋?),要求"英文生产"。
### 文档结构与L3/L4不同
- Wiki token: `U1zEwHZaaie07TkjmOOchurgnIh`
- Spreadsheet token: `DCcKsLbrmhfXgrtB7N2c9GA4ntf`
- Script sheet: `wMQVyV`186行×9列
- Knowledge points sheet: `DCcKsLbrmhfXgrtB7N2c9GA4ntf_NtIcXt`
- 列结构A=类型, D=剧情描述, E=角色名, F=编剧台词English已填好, **G=组件配置**
- 知识点point, talk, understand, a lot of + `talk to...` / `I can/can't understand...`
### 交互模式差异
- L5 文档 B列/C列 为空,无详细组件类型标签(仅 A=互动/核心互动-口语)
- 编剧台词F列已全部填写英文
- 互动行的 User 台词含红色标注知识点词
### 完成事项
- 24个互动行全部生成G列配置组件类型推断听力挖空、朗读台词、口语表达
- 写入方式:同上 Sheets v2 API
- 24/24 全部回读验证通过
### 脚本
`scripts/write_L5_G_configs.py`