ai_member_xiaoyan/memory/2026-05-12.md

281 lines
19 KiB
Markdown
Raw 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-12 工作日志
## 会话记录
### 刘彦江 — 021301-021801 图片描述修正 + 技能更新09:35 ~ 09:45
- **问题:** 021301-021801 信息匹配题的图片描述缺少 `【Notice Type】` 标签,格式不符合参考规范
- **处理:**
1. 查询 bitable 获取6条记录当前图片描述tblCgfYDnnqwLfgH
2. 按每道题的上下文匹配对应的标识/通知类型标签(如 Show Poster、Wanted Notice、School Notice 等)
3. 批量更新6条记录的图片描述字段全部10个 `【Type】` 标签验证通过
4. 脚本:`scripts/fix_matchInfo_0213_0218_desc.py`
- **技能更新:** 将图片描述规范(格式要求、核心规则、参考示例、常用类型标签参考表)更新到 `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_info_match/SKILL.md`
- **规范要点:**
- 每张图片 → `图片材料文本:\n【Type】\nActual text`
- 图片必须是真实标识/通知(非标签式)
- L2 B级及以上图片文字需为完整陈述句3-5词+
### 刘彦江 — L1 配置表审校 + 技能沉淀11:50 ~ 12:10
- **数据源:** 飞书多维表格「互动知识点 - 句子」→「Level 1 配置表」(`Nq3Zb258aae7SRs2QfXcqsQYnxJ` / `tblTxGpf6GQ5c7DZ`)
- **ID 编码规则:** 7位 = 前2位(Season) + 中2位(Unit) + 后3位(序列号)
- 例: 1214001 = L1S2(12) + U14(14) + 001
- **审校记录 1214001 (You need to...) 发现:**
1. ❌ classificationInfo 值互换: cambridgeLevel=A1 vs cefrLevel=YLE与列字段反了
2. ❌ sentenceStructureSort 题2: 单词库有need无needs三单主语Otis语法错误
3. ⚠️ sentenceStructureClozeWordMcq: "put your toys" 省略 away 不够自然
- **技能沉淀:**
- 脚本: `scripts/audit_l1_config.py` — 7项自动检查
- SKILL.md: `skills/audit_l1_config/SKILL.md` — 含完整审校流程 + 4项人工审核清单
# 2026-05-12 工作日志
## 会话记录
### 刘彦江 — 021301-021801 图片描述修正 + 技能更新09:35 ~ 09:45
- **问题:** 021301-021801 信息匹配题的图片描述缺少 `【Notice Type】` 标签,格式不符合参考规范
- **处理:**
1. 查询 bitable 获取6条记录当前图片描述tblCgfYDnnqwLfgH
2. 按每道题的上下文匹配对应的标识/通知类型标签(如 Show Poster、Wanted Notice、School Notice 等)
3. 批量更新6条记录的图片描述字段全部10个 `【Type】` 标签验证通过
4. 脚本:`scripts/fix_matchInfo_0213_0218_desc.py`
- **技能更新:** 将图片描述规范(格式要求、核心规则、参考示例、常用类型标签参考表)更新到 `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_info_match/SKILL.md`
- **规范要点:**
- 每张图片 → `图片材料文本:\n【Type】\nActual text`
- 图片必须是真实标识/通知(非标签式)
- L2 B级及以上图片文字需为完整陈述句3-5词+
### 刘彦江 — L1 配置表审校 + 技能沉淀11:50 ~ 12:10
- **数据源:** 飞书多维表格「互动知识点 - 句子」→「Level 1 配置表」(`Nq3Zb258aae7SRs2QfXcqsQYnxJ` / `tblTxGpf6GQ5c7DZ`)
- **ID 编码规则:** 7位 = 前2位(Season) + 中2位(Unit) + 后3位(序列号)
- 例: 1214001 = L1S2(12) + U14(14) + 001
- **审校记录 1214001 (You need to...) 发现:**
1. ❌ classificationInfo 值互换: cambridgeLevel=A1 vs cefrLevel=YLE与列字段反了
2. ❌ sentenceStructureSort 题2: 单词库有need无needs三单主语Otis语法错误
3. ⚠️ sentenceStructureClozeWordMcq: "put your toys" 省略 away 不够自然
- **技能沉淀:**
- 脚本: `scripts/audit_l1_config.py` — 7项自动检查
- SKILL.md: `skills/audit_l1_config/SKILL.md` — 含完整审校流程 + 4项人工审核清单
### 刘彦江 — 1213001-1216010 批量审校 40 条12:10 ~ 14:00
- **范围:** L1S2 Units 13-16每单元 10 条,共 40 条
- **方法:** `scripts/audit_l1_config.py` 自动化扫描 → 误报排除 → 分类汇总 → 逐条审校回填
- **脚本修复(过程中):**
1. sentenceStructureSort 单词对比大小写误报 → 添加 normalize首字母大写 + 去标点)
2. ID 末尾空格敏感 → strip 比较
3. 句子朗读/跟读题误报 options/answer 缺失 → 跳过这两种题型
#### 审校结果汇总
- **🔴 系统性问题40/40100%** classificationInfo JSON 内 cambridgeLevel="A1" 与 cefrLevel="YLE" 值互换,列字段正确但 JSON 存储写反,疑似模板/formula 级别 bug
- **🟡 具体错误17/40**
- sentenceMeaningMeaning JSON 解析失败 × 101213004, 1213006, 1213010, 1214008, 1215005, 1216001, 1216004, 1216007, 1216008, 1216010后8题含中文引号冲突
- ID 字段末尾空格 × 31213001, 1215001, 1216001
- 看图选择题有CN无JSON × 31213008, 1215010, 1216005
- sentenceStructureSort 语法/格式错误 × 31213004(缺逗号clean Otis→clean, Otis), 1213005(bird?连写应拆为bird+?), 1214001(need→needs三单)
- 缺少 pointId 字段 × 11213001(sort 题2)
- **🟢 仅有系统性问题的 23 条:** 其余 23 条仅 classificationInfo 互换问题,其他题型均通过自动化检查
- **回填:** 全部 40 条审校结果已写入 bitable「审校结果」列逐条验证通过
- **脚本回填脚本:** `scripts/audit_batch_1213001_1216010.py`
# 2026-05-12 工作日志
## 会话记录
### 刘彦江 — 021301-021801 图片描述修正 + 技能更新09:35 ~ 09:45
- **问题:** 021301-021801 信息匹配题的图片描述缺少 `【Notice Type】` 标签,格式不符合参考规范
- **处理:**
1. 查询 bitable 获取6条记录当前图片描述tblCgfYDnnqwLfgH
2. 按每道题的上下文匹配对应的标识/通知类型标签(如 Show Poster、Wanted Notice、School Notice 等)
3. 批量更新6条记录的图片描述字段全部10个 `【Type】` 标签验证通过
4. 脚本:`scripts/fix_matchInfo_0213_0218_desc.py`
- **技能更新:** 将图片描述规范(格式要求、核心规则、参考示例、常用类型标签参考表)更新到 `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_info_match/SKILL.md`
- **规范要点:**
- 每张图片 → `图片材料文本:\n【Type】\nActual text`
- 图片必须是真实标识/通知(非标签式)
- L2 B级及以上图片文字需为完整陈述句3-5词+
### 刘彦江 — L1 配置表审校 + 技能沉淀11:50 ~ 12:10
- **数据源:** 飞书多维表格「互动知识点 - 句子」→「Level 1 配置表」(`Nq3Zb258aae7SRs2QfXcqsQYnxJ` / `tblTxGpf6GQ5c7DZ`)
- **ID 编码规则:** 7位 = 前2位(Season) + 中2位(Unit) + 后3位(序列号)
- 例: 1214001 = L1S2(12) + U14(14) + 001
- **审校记录 1214001 (You need to...) 发现:**
1. ❌ classificationInfo 值互换: cambridgeLevel=A1 vs cefrLevel=YLE与列字段反了
2. ❌ sentenceStructureSort 题2: 单词库有need无needs三单主语Otis语法错误
3. ⚠️ sentenceStructureClozeWordMcq: "put your toys" 省略 away 不够自然
- **技能沉淀:**
- 脚本: `scripts/audit_l1_config.py` — 7项自动检查
- SKILL.md: `skills/audit_l1_config/SKILL.md` — 含完整审校流程 + 4项人工审核清单
### 刘彦江 — 1213001-1216010 批量审校 40 条12:10 ~ 14:00
- **范围:** L1S2 Units 13-16每单元 10 条,共 40 条
- **方法:** `scripts/audit_l1_config.py` 自动化扫描 → 误报排除 → 分类汇总 → 逐条审校回填
- **脚本修复(过程中):**
1. sentenceStructureSort 单词对比大小写误报 → 添加 normalize首字母大写 + 去标点)
2. ID 末尾空格敏感 → strip 比较
3. 句子朗读/跟读题误报 options/answer 缺失 → 跳过这两种题型
#### 审校结果汇总(初版)
- **🔴 系统性问题40/40100%** classificationInfo JSON 内 cambridgeLevel="A1" 与 cefrLevel="YLE" 值互换
- **🟡 具体错误17/40**
- sentenceMeaningMeaning JSON 解析失败 × 101213004, 1213006, 1213010, 1214008, 1215005, 1216001, 1216004, 1216007, 1216008, 1216010
- ID 字段末尾空格 × 31213001, 1215001, 1216001
- 看图选择题有CN无JSON × 31213008, 1215010, 1216005
- sentenceStructureSort 语法/格式错误 × 31213004(缺逗号clean Otis→clean, Otis), 1213005(bird?连写应拆为bird+?), 1214001(need→needs三单)
- 缺少 pointId 字段 × 11213001(sort 题2)
- **🟢 仅有系统性问题的 23 条**
- **回填:** 全部 40 条审校结果已写入 bitable「审校结果」列逐条验证通过
- **脚本回填脚本:** `scripts/audit_batch_1213001_1216010.py`
### 刘彦江 — 审校结果修正 + 解析一致检查 + JSON 修复14:00 ~ 15:38
- **YLE↔A1 误报排除:** 刘彦江确认 YLE 与 A1 等级可互通classificationInfo 值互换不视为错误
- 全部 40 条审校结果已更新,移除 classificationInfo 互换相关告警
- 23 条变为 `✅ 通过`无其他问题17 条保留具体错误
- **解析与题目/答案对应性检查(人工审核项):**
- 检查题型:句意选择题 ×30、句子补全题、听句作答题、场景选择题、看图选择题
- 验证方法:提取 explanation 中的英文引句 vs question 中的英文句子、正则提取"空处应填X" vs options[answer]
- 结果:✅ **0 条实质性不对应**
- **10 条 sentenceMeaningMeaning JSON 修复:**
- **根因:** explanation 文本中的 ASCII `"` (U+0022) 被当作中文双引号使用JSON 解析器将其视为字符串终止符
- **修复策略:** 从「句意选择题」中文列提取英文原句和选项 → json.dumps 重建标准 JSON只修格式不修内容
- **1216007 特殊处理:** 原始 JSON 损坏严重,需从中文列完全重建
- **二次修复Q2 丢失问题):** 首次不完全修复导致 9 条记录的 Q2 被覆盖丢失,且 Q1 被 JSON 垃圾污染 → 从中文列全面重建 Q1+Q2
- **最终结果10/10 条记录 sentenceMeaningMeaning 均可 json.loads 正确解析,每条含 2 题,无残留垃圾数据**
- **受影响记录:** 1213004, 1213006, 1213010, 1214008, 1215005, 1216001, 1216004, 1216007, 1216008, 1216010
- **审校结果同步更新:** 移除所有 10 条的 `❌ JSON 解析失败` 标记
- **注意:** Q1 explanation 在重建时词表述可能微调(内容含义一致),如需精确原始 wording 可从中文列恢复后人工微调
## 经验教训
### bitable 写入需严格流程管控2026-05-12
- 批量更新 JSON 字段时必须:写入前完整提取原始数据 → 写入后逐字段 diff 验证 → 发现异常立即回滚
- 本次 JSON 修复中首次写入不完整导致 Q2 丢失,原因:修复脚本未正确处理多题 JSON 结构
- **教训:** 任何涉及 JSON 重建/修复的批量操作,先单条试运行验证通过后再批量执行,不可并行甩出多条
### sentenceMeaningMeaning 的 explanation 引号规范2026-05-12
- explanation 字段中的中文双引号极易被误用为 ASCII `"` (U+0022)
- 建议生产侧统一使用中文引号 `"` (U+201C) 和 `"` (U+201D),或在 explanation 写入前做引号归一化预处理
- 此类问题在常规 JSON 校验中不会被发现JSON 仍有概率合法,取决于引号出现位置),一旦出现在 JSON 字符串边界附近即导致全段解析失败
### 刘彦江 — 核心互动全题型 JSON 配置标准沉淀17:05 ~ 17:50
- **目标:** 从互动内容库遍历全部核心互动题型,提取 JSON 配置结构,沉淀为统一 Skill
- **方式:** 先写 `bitable-reader` 通用读取 Skill → 遍历 15 个 bitable → 归纳通用字段 → 分类录入各题型
#### 架构决策
- **统一入口,通用在上:** 一个 `core-content-json-standard` Skill 覆盖全部题型,不拆分为题型独立 Skill
- **五大分类:** 📖阅读(2) / 🎧听力(3) / 🗣口语(4) / ✏️写作(5) / 未完成(1)
- **通用字段提取:** ID/dataStatus/kpStatus/kpInfo/taskData 是所有题型共用的基础结构
#### 覆盖率
- 14 种题型已录入 ✅1 种无数据:口语探讨)
- 4 个一级板块:通用结构 / 题型专区 / 审校规则 / 扩展指南
- 每个题型cType + bitable 定位 + JSON 字段表 + 结构特点 + 与同类题型的差异说明
#### 发现
- 写作互动和邮件组句 cType 相同(`core_writing_questionMakeSentence`),通过 textInfo 区分素材
- 口语快答/妙问 JSON 结构几乎相同,差异在 prompt 配置和对话样例内容
- 合作阅读和合作听力的核心差异:`textData.text[]` ↔ `textData.audio[]`
- meaning 标签(合作阅读)为开放型自由文本,非受控词表
#### 产出文件
- `skills/bitable-reader/SKILL.md` — 通用 bitable 读取技能164行
- `skills/core-content-json-standard/SKILL.md` — 全题型 JSON 标准 v2.0393行
- `scripts/audit_core_reading_S0.py` — 合作阅读 S0 审校脚本(含审校发现)
# 2026-05-12 工作日志
## 会话记录
### 刘彦江 — 021301-021801 图片描述修正 + 技能更新09:35 ~ 09:45
- **问题:** 021301-021801 信息匹配题的图片描述缺少 `【Notice Type】` 标签
- **处理:** 批量更新6条记录的图片描述字段全部10个标签验证通过
- **脚本:** `scripts/fix_matchInfo_0213_0218_desc.py`
- **技能更新:** 图片描述规范写入 `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_info_match/SKILL.md`
### 刘彦江 — L1 配置表审校 + 技能沉淀11:50 ~ 12:10
- **数据源:** `Nq3Zb258aae7SRs2QfXcqsQYnxJ` / `tblTxGpf6GQ5c7DZ`
- **ID 编码:** 7位 = S(2位) + U(2位) + 序列号(3位)
- **技能沉淀:** `scripts/audit_l1_config.py` + `skills/audit_l1_config/SKILL.md`
### 刘彦江 — 1213001-1216010 批量审校 40 条12:10 ~ 14:00
- **范围:** L1S2 Units 13-16
- **脚本修复(过程中):** sort 大小写误报 / ID 末尾空格 / 朗读跟读题误报
- **结果:** 系统性 classificationInfo 互换(已标记不视为错误) + 17条具体错误 + 23条通过
- **脚本:** `scripts/audit_l1_config.py` + `scripts/audit_batch_1213001_1216010.py`
### 刘彦江 — 审校结果修正 + JSON 修复14:00 ~ 15:38
- **YLE↔A1 误报排除:** 确认等级互通40条审校结果已更新
- **解析与题目一致性检查:** ✅ 0条不对应
- **10 条 sentenceMeaningMeaning JSON 修复:**
- 根因explanation 中 ASCII `"` 被用作中文引号
- 修复策略演变:状态机拆分失败 → 正则重建 → 发现Q2丢失 → 从中文列完整重建
- 最终10/10 可正确解析,审校结果同步更新
- 受影响1213004/1213006/1213010/1214008/1215005/1216001/1216004/1216007/1216008/1216010
### 刘彦江 — 核心互动全题型 JSON 配置标准沉淀17:05 ~ 17:50
- **产出 Skill 1** `skills/bitable-reader/SKILL.md` — 通用 bitable 读取(任何 bitable 通用)
- **产出 Skill 2** `skills/core-content-json-standard/SKILL.md` v2.0 — 全题型 JSON 标准393行
- **架构:** 通用字段在前ID/kpInfo/taskData+ 5大题型分类📖阅读2 🎧听力3 🗣口语4 ✏写作5+ 审校规则 + 扩展指南
- **覆盖率:** 14/15 种题型(口语探讨 S0 无数据)
- **产出脚本:** `scripts/audit_core_reading_S0.py` — 合作阅读 S0 审校
## 经验教训
### bitable 写入需严格流程管控2026-05-12
- 批量更新 JSON写入前完整提取 → 写入后逐字段 diff → 异常立即回滚
- 首次修复多题 JSON 导致 Q2 丢失 → 先单条试跑验证再批量
### sentenceMeaningMeaning 引号规范2026-05-12
- explanation 中 ASCII `"` 与中文引号混用导致 JSON 解析失败
- 建议:生产侧统一用中文引号 `""`U+201C/D或写入前做引号归一化
### 写作互动 / 邮件组句 cType 相同2026-05-12
- 两者 cType 均为 `core_writing_questionMakeSentence`,通过 textInfo.textList[].type 区分素材
### 刘彦江 — 中互动全题型录入18:00 ~ 18:25
#### 发现
- **中互动结构高度统一:** 全部 27 类都用 `jsonData`(主配置)+ `kpInfo`(知识点绑定),没有核心互动那种多字段分散结构
- **6 大分类:** 🗨对话(7) / 📋信息(6) / 📦词汇(2) / 🖼图片选择(4) / 📝语法(3) / 🔧其他(5)
- **对话类公共字段:** cType, cId, title, resourceMapping, preDialog, imgShowTimingList
- 写作互动和邮件组句 cType 相同(`core_writing_questionMakeSentence`
#### 产出文件
- `skills/interactive-component-json/references/json_structure_guide.md` — 27 种中互动 jsonData 字段结构8736 bytes
- `skills/interactive-component-json/references/component_registry.md` — 核心互动部分从🔲更新为完整注册表(含 cType+bitable_token
-`skills/core-content-json-standard/SKILL.md` 双向关联
#### 覆盖率
- 核心互动15/15 ✅(口语探讨 S0 无数据已标注)
- 中互动27/27 ✅
- 关联文件3 个core-content-json-standard + component_registry + json_structure_guide
## 刘彦江 — 中互动+核心互动 回填任务18:37 待继续)
### 上下文
- 用户提供剧本文档: `https://makee-interactive.feishu.cn/wiki/YqzzwpjwjihK9YkyRhXccaqLnzu`
- 要求:识别文档中的 3 个中互动 + 1 个核心互动,回填到对应位置
- 上次已读取文档,找到 1 个核心互动标记第4幕 听力拖拽),但 3 个中互动标记不明显
- 用户让我"Continue"继续处理
### 当前状态
- 需要重新拉取文档,仔细识别所有互动标记
- 文档位于 space_id=7487521512283799556
- 上次发现的场景:太空故事 / 太空船起飞 / 小行星带 / 发光的星球 + 尾声
## 中互动+核心互动 回填任务 — 继续18:37
### 本轮 Session — 实际写入 bitable
上一轮已确认:文档中 4 个场景对应 4 个互动类型3中+1核标签已写入文档。但用户说的"回填到对应为止"指的是**写入 bitable 多维表格记录**,而非仅文档标签。
### 需要写入的 4 条记录
| 场景 | 互动类型 | cType | bitable_token |
|------|---------|-------|---------------|
| 第1幕 太空故事 | 对话朗读互动 | `mid_dialog_repeat` | `MuwubKXoSaJe55sO4k9c63VSnmh` |
| 第2幕 太空船起飞 | 对话互动 | `mid_sentence_dialogue` | `GH0hbBT0ZavkCesaVQ7c40Zfnub` |
| 第3幕 小行星带 | 指令互动 | `mid_vocab_instruction` | `UorxbVCNYaqpx3sOUdTcF6bUnAh` |
| 第4幕 发光的星球 | 听力拖拽 | `core_listening_drag` | `Uey8bhdLBa66TIsGrFBcIQKRnsg` |
### 下一步
1. 读取 4 个 bitable 的表结构(字段名)
2. 基于剧本内容和 JSON 结构标准,构造 jsonData/kpInfo 等字段
3. 调用 Bot API create_record 写入
4. 写后回读验证