{ "version": 1, "updatedAt": "2026-06-23T02:51:54.388Z", "entries": { "memory:memory/2026-05-07.md:57:74": { "key": "memory:memory/2026-05-07.md:57:74", "path": "memory/2026-05-07.md", "startLine": 57, "endLine": 74, "source": "memory", "snippet": "3. **第三轮(用户要求重新发送三份文件后重算):** 最终确认 **表1有但表2表3都没有 = 255个** - **第三轮详细统计:** - 三表共有:230 - 表1 ∩ 表2:492 - 表1 ∩ 表3:448 - 表2 ∩ 表3:427 - 表1有,表2没有:472(其中217个表3也有) - 最终:255个 - **关键发现:** - 表1(分类词表)覆盖了大量基础生活词汇,表3(L1词表)覆盖了其中的448个 - 最终的255个独有词主要集中在:抽象名词(advantage, attitude, courage)、学术/学科词汇(composition, grammar, pronunciation)、专业/特定领域词(cancer, clone, industry)等偏中高难度的词汇 - 表1和表3有大量重叠(448个),说明两个L1级别的词表覆盖范围高度一致 - 从上一轮260变成255(差5个),差异主要来自表2/表3重新解析后个别单词的增删 - **输出文件:** `/root/.openclaw/workspace-xiaoyan/output/单词对比结果_最终版.xlsx` - Sheet 1:255个单词完整清单(序号+单词+中文释义) - Sheet 2:全部统计指标汇总 - **用户 user_id:** `58fd6864`(租户级) - **发送消息时踩坑记录:** ou_xxx 是 open_id 非 user_id,Bot 缺少 contact:user.id:readonly 权限", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 2.662124996650623, "maxScore": 1, "firstRecalledAt": "2026-05-07T08:48:55.437Z", "lastRecalledAt": "2026-06-09T06:52:09.582Z", "queryHashes": [ "c2c576894acd", "dca4eb1f24b7", "84038f5c3181" ], "recallDays": [ "2026-05-07", "2026-05-21", "2026-06-09" ], "conceptTags": [ "学术/学科词汇", "专业/特定领域词", "差异主要来自表2/表3重新解析后个别单词的增删", "user-id", "ou-xxx", "open-id", "user.id", "第三" ] }, "memory:memory/2026-05-07.md:215:235": { "key": "memory:memory/2026-05-07.md:215:235", "path": "memory/2026-05-07.md", "startLine": 215, "endLine": 235, "source": "memory", "snippet": "3. He is (4) Japan. → from(男孩穿和服,背景富士山) 4. She is a (7). → student(女孩背书包进校门) - **JSON 结构:** questionSetID=020102, category=writing, type=writing_pic_qa - **关键教训:** - 初版设计错误:让学手写 Anna/China 等非知识点词,被用户纠正 - 初版 questionDesc \"She is a (7) girl.\" 不自然,修正为 \"She is a (7).\" - writing_pic_qa 题型核心考察点:知识点词本身(am/from),而非题干已知信息 - 挖空字母数标记(如(4))必须与答案单词字母数一致 - **词库缺口发现:** L1和L2词库均缺失人称代词(I/you/he/she)、be动词(am/is/are)、介词(from)、国家名等基础功能词,写题时先绕过词汇校验硬性约束 ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 单元挑战新增3个题型(已完结) - 详见上文 11:19-11:28 记录 ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 写作看图回答题 \"I am ready / Thank you\" 样题生产 - **时间:** 15:53 ~ 15:55 - **需求:** 使用知识点 \"I am ready! / Thank you for...\" 再生产一套", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-08T01:18:18.412Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "390d35f8d143", "be437071312f", "12653110bb68", "ab90b7e9cde8", "3ac726b21876" ], "recallDays": [ "2026-05-08", "2026-05-11", "2026-05-25", "2026-05-26", "2026-06-10" ], "conceptTags": [ "writing-pic-qa", "anna/china", "am/from", "i/you/he/she", "am/is/are", "19-11", "japan", "男孩" ] }, "memory:memory/2026-05-07.md:199:219": { "key": "memory:memory/2026-05-07.md:199:219", "path": "memory/2026-05-07.md", "startLine": 199, "endLine": 219, "source": "memory", "snippet": "### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 写作看图回答题 \"I am... / I am from...\" 样题生产 - **时间:** 15:38 ~ 15:52 - **需求:** 使用知识点 \"I am... / I am from...\" 生产一套写作看图回答题(writing_pic_qa) - **状态:** ✅ 已完成,用户确认 - **题型级别:** L2(因L1词库缺少所有代词/be动词/介词/国家名) - **难度:** A级 - **题量:** 4小题 - **核心原则(用户明确):** 1. 挖空必须是考察知识点本身的单词(am/from/student),不是手写姓名/国名等附带信息 2. 只能为1个单词挖空,不能两个及以上 3. 正确模式示例:`I (2) Anna.` → 挖空am,数字标记字母数 4. 图片提供语境线索(名牌→am,地标→from国家,书包→student),学生填写核心知识点词 - **输出文件:** `output/writing_pic_qa_I_am_from_020102.json` - **题目清单:** 1. I (2) Anna. → am(女孩指着名牌,图片语境提示姓名已给出) 2. I am (4) China. → from(女孩站在长城前,国家名已给出) 3. He is (4) Japan. → from(男孩穿和服,背景富士山) 4. She is a (7). → student(女孩背书包进校门) - **JSON", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-08T01:18:18.412Z", "lastRecalledAt": "2026-05-26T01:58:13.120Z", "queryHashes": [ "390d35f8d143", "be437071312f", "12653110bb68", "4010d52c12f3", "ab90b7e9cde8" ], "recallDays": [ "2026-05-08", "2026-05-11", "2026-05-25", "2026-05-26" ], "conceptTags": [ "writing-pic-qa", "因l1词库缺少所有代词/be动词/介词/国家名", "am/from/student", "不是手写姓名/国名等附带信息", "彦江", "写作", "回答", "生产" ] }, "memory:memory/2026-05-07.md:1:20": { "key": "memory:memory/2026-05-07.md:1:20", "path": "memory/2026-05-07.md", "startLine": 1, "endLine": 20, "source": "memory", "snippet": "# 2026-05-07 工作日志 ## 会话记录 ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 单元挑战新增3个题型 - **时间:** 11:19 ~ 11:28 - **需求:** 单元挑战新增3个题型:阅读看图回答题(reading_pic_qa)、阅读看图判断题(reading_pic_judge)、写作看图回答题(writing_pic_qa) - **状态:** ✅ 已完成题型规范落地 - **交付内容:** 1. 创建3个题型SKILL.md: - `reading/common/reading_pic_qa/SKILL.md` — 阅读看图回答题(共享大图+多题Yes/No判断) - `reading/common/reading_pic_judge/SKILL.md` — 阅读看图判断题(每题独立配图+Yes/No判断) - `writing/common/writing_pic_qa/SKILL.md` — 写作看图回答题(看图+提示答案开头+填空) 2. 更新 `MEMORY.md` 全题型阶段归属规则 3. 明确题型JSON结构、难度等级(A/B/C/D四级)、能力标签、校验规则 - **关键决策:** 3个题型均为 L1&L2 共用,通过难度参数区分阶段;reading_pic_qa 共享大图,reading_pic_judge 每题独立配图 ### 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e) — 单词表对比请求", "recallCount": 17, "dailyCount": 0, "groundedCount": 0, "totalScore": 17, "maxScore": 1, "firstRecalledAt": "2026-05-08T01:18:18.412Z", "lastRecalledAt": "2026-06-17T02:48:55.170Z", "queryHashes": [ "390d35f8d143", "fd4c9b7de37b", "be437071312f", "0e27779653c1", "5c08c6f8788a", "4ab75020b1ab", "7ca0207f1308", "d592c9ed5e0a", "5f858a7d5e0b", "ab90b7e9cde8", "fbf96ac9320e", "bd790c7e2a35", "7de89d94cd21", "e679709051aa", "3ac726b21876", "b4c6fff5854a", "256e24aaac90" ], "recallDays": [ "2026-05-08", "2026-05-09", "2026-05-11", "2026-05-12", "2026-05-14", "2026-05-17", "2026-05-26", "2026-05-28", "2026-05-29", "2026-06-10", "2026-06-17" ], "conceptTags": [ "reading-pic-qa", "reading-pic-judge", "writing-pic-qa", "创建3个题型skill.md", "多题yes/no判断", "yes/no判断", "memory.md", "a/b/c/d四级" ] }, "memory:memory/2026-04-13.md:1:5": { "key": "memory:memory/2026-04-13.md:1:5", "path": "memory/2026-04-13.md", "startLine": 1, "endLine": 5, "source": "memory", "snippet": "## 2026-04-13 12:28 [童瑶需求] 读取飞书文档https://makee-interactive.feishu.cn/wiki/QkY5wkcZYindgzkv5O0cpApRnzh内L1S1_Unit 11【其他需求】中所有的图片,并根据【描述】列的ID重命名为\"ID.png\" [执行结果] 完成35张图片的提取和重命名,保存到unit11_final_images/目录下,包含L1-L5全级别教研图、选项图,全部符合命名规则。", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-11T02:19:37.985Z", "lastRecalledAt": "2026-05-11T02:19:37.985Z", "queryHashes": [ "6f88450e9f9b" ], "recallDays": [ "2026-05-11" ], "conceptTags": [ "id.png", "保存到unit11-final-images/目录下", "包含l1-l5全级别教研图", "需求", "https", "makee", "interactive.feishu.cn", "wiki" ] }, "memory:memory/2026-05-08.md:33:55": { "key": "memory:memory/2026-05-08.md:33:55", "path": "memory/2026-05-08.md", "startLine": 33, "endLine": 55, "source": "memory", "snippet": "**图片资源新规:** - 每个题组共享一张图(非每题独立配图) - 产出 JSON 同时输出图片描述 prompt(英文,卡通简线条风格) - prompt 写入 bitable `图片描述` 列,格式 `{\"first\": \"...\", \"second\": \"...\"}` **通用化写入流程:** - 单元挑战全题型适用:定位 bitable 表 → 创建/更新记录 → 写入 `题目集合 ID` + `jsonData` + `图片描述` - 各题型仅 jsonData 结构不同,写入流程统一 **重写文件:** - `business_production/单元挑战/skills/unit_challenge/questions/writing/common/writing_pic_qa/SKILL.md`(11节完整规范) - `business_production/单元挑战/skills/unit_challenge/questions/writing/writing_pic_qa/SKILL.md`(简化为快速入口) **bitable 更新:** 已将新 JSON(每题组1图2题)+ 图片描述写入 `recviZlAxxXlAb` ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 图片描述格式修正 - **时间:** 09:46 ~ 09:51 - **修正:** 用户给出中文样例格式,要求图片描述从英文 prompt 改为纯中文结构化列表 - **新格式:** 编号 `1.` / `2.` 自上而下,每段", "recallCount": 15, "dailyCount": 0, "groundedCount": 0, "totalScore": 15, "maxScore": 1, "firstRecalledAt": "2026-05-11T02:19:37.985Z", "lastRecalledAt": "2026-06-18T04:36:05.631Z", "queryHashes": [ "6f88450e9f9b", "be437071312f", "11ea0881b126", "08b6f3142a2b", "d3bb2a2fd2ad", "688d2dceca9d", "37d5e066d57f", "e637236fe74b", "14d903a64d04", "ab90b7e9cde8", "240a6a5dca41", "7e6aa000abdb", "9018e8896dcd", "3ac726b21876", "533765637e65" ], "recallDays": [ "2026-05-11", "2026-05-13", "2026-05-18", "2026-05-20", "2026-05-25", "2026-05-26", "2026-06-02", "2026-06-10", "2026-06-18" ], "conceptTags": [ "创建/更新记录", "图片", "资源", "共享", "一张", "每题", "独立", "同时" ] }, "memory:memory/2026-05-08.md:1:23": { "key": "memory:memory/2026-05-08.md:1:23", "path": "memory/2026-05-08.md", "startLine": 1, "endLine": 23, "source": "memory", "snippet": "### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — writing_pic_qa 样题生产 \"I am / I am going to / I am ready / Thank you for\" - **时间:** 09:26 ~ 09:34 - **需求:** 生产 writing_pic_qa A级样题,ID=000001,2题组各2小题 - **状态:** ✅ 已完成,已写入飞书多维表格 - **目标表格:** 单元挑战 → 写作-P3-看图回答题 (tblFc9TVl2PeM2tg),record_id=recviZlAxxXlAb - **题目清单:** 题组1 (first): 1. I (2) a student. → am(女孩穿校服举手,考察be动词am) 2. I am (5) to school. → going(男孩背书包走向校门,考察going) 题组2 (second): 3. I am (5)! → ready(男孩穿泳衣戴泳镜,考察状态词ready) 4. Thank you (3) the book. → for(女孩接书微笑,考察介词for) - **核心修正(用户反馈):** 1. 挖空必须考察知识点核心词,非附带信息(you → for) 2. 不能挖空题干已有信息(如姓名/国家名),只挖知识点词本身 3. 只能为1个单词挖空 4. question与questionDesc人称必须一致(统一改为 What does [角色] say? → 第一人称直接", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-11T02:37:23.203Z", "lastRecalledAt": "2026-05-11T02:37:23.203Z", "queryHashes": [ "be437071312f" ], "recallDays": [ "2026-05-11" ], "conceptTags": [ "writing-pic-qa", "写作-p3-看图回答题", "record-id", "如姓名/国家名", "彦江", "生产", "going", "ready" ] }, "memory:memory/2026-05-11.md:39:55": { "key": "memory:memory/2026-05-11.md:39:55", "path": "memory/2026-05-11.md", "startLine": 39, "endLine": 55, "source": "memory", "snippet": "- `基础信息表达|个人信息问答` — 姓名/年龄/家庭/外貌类 - `表达喜好与理由` — 偏好/观点/意愿类 - `过去经历描述|Past Activities` — 过去事件类 - `互动应答|问答交流` — 社交场景类 - `信息交换|双向问答` — 物品归属/需求类 - 未使用标签(属看图/发音题型专用):图片描述类(3个)、图片对比、故事讲述、发音与语调 - **分类逻辑**:基于关键词匹配(what do you say → 互动应答; what did you/last → 过去经历; favorite/like/want → 喜好; name/age/from/family → 个人信息; whose/need → 信息交换) ### 刘彦江 — reading_matchInfo 阅读信息匹配题(4套: 010901/011001/011101/011201,18:55 ~ 19:15) - **需求:** 4套 reading_matchInfo,L2 A级,能力标签 标识与通知理解|标识 & 通知 - 每套 first=5q + second=5q,每题含 questionImage/question/options/answer/ability/explanation - **表:** 阅读-P1-信息匹配题(tblCgfYDnnqwLfgH) - **自动化问题:** 该表存在异步自动化,创建后会将 jsonData 改写为模板壳(减少题量+覆盖 ability) - **解决方案:** 两阶段延迟写入(先创建空记录→等35s让", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-12T01:33:44.968Z", "lastRecalledAt": "2026-05-12T01:41:17.155Z", "queryHashes": [ "4ab75020b1ab", "7ca0207f1308" ], "recallDays": [ "2026-05-12" ], "conceptTags": [ "姓名/年龄/家庭/外貌类", "偏好/观点/意愿类", "物品归属/需求类", "属看图/发音题型专用", "you/last", "favorite/like/want", "name/age/from/family", "whose/need" ] }, "memory:memory/2026-05-11.md:20:43": { "key": "memory:memory/2026-05-11.md:20:43", "path": "memory/2026-05-11.md", "startLine": 20, "endLine": 43, "source": "memory", "snippet": "- **需求:** 2套 reading_pic_qa,L2 A级,能力标签 图文判断|句图一致性 - 每套5+5道 Y/N 判断,3Y2N平衡,4-7词陈述句 - **状态:** ✅ 已完成,2套全部入库 + 图片描述回填验证通过 - **脚本:** `scripts/batch_reading_pic_qa_2.py` | ID | 题组1 | 题组2 | record_id | |----|-------|-------|-----------| | 010701 | notebook/star/folder/diary/contact | friendly/crazy/brilliant/kind/afraid | recvjiQuGtsVp8 | | 010801 | uncle/aunt/grandma/neighbour/pet | expensive/entrance/upstairs/downstairs/toast | recvjiQvc8EsB8 | - 表:阅读-P7-看图回答题(tblweY65jGBiwSdt) - 当前该表累计:11条记录(000001~010801,含reading_pic_judge类型 4 条及其他) ### 刘彦江 — 口语-P1-日常回答 ability 标签填充(18:15 ~ 18:25) - **需求:** 从能力标签名称图片中,选择与已生成题目契合的标签填入 jsonData - 表:口语-P1-日常回答(tblRGv7k4WH58Jgq),26条有效记录,185道题 - **状态:** ✅ 全部完成 - *", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-12T01:33:44.968Z", "lastRecalledAt": "2026-05-12T01:33:44.968Z", "queryHashes": [ "4ab75020b1ab" ], "recallDays": [ "2026-05-12" ], "conceptTags": [ "reading-pic-qa", "y/n", "4-7词陈述句", "record-id", "uncle/aunt/grandma/neighbour/pet", "阅读-p7-看图回答题", "含reading-pic-judge类型", "口语-p1-日常回答" ] }, "memory:memory/2026-05-11.md:66:83": { "key": "memory:memory/2026-05-11.md:66:83", "path": "memory/2026-05-11.md", "startLine": 66, "endLine": 83, "source": "memory", "snippet": "1. 图片应是**真实标识/通知**(非标签式),如零售楼层导览那种 2. 图片上的文字**至少为一句话**,L2 A级难度,不能只有一个词 - **处理:** 4 套 reading_matchInfo 全部重新设计(题目+图片描述),两阶段延迟写入 - **新record_ids:** recvjj2Nuw9MJd / recvjj2NZz75zb / recvjj2Ov8Stks / recvjj2OX0Dmo5 - **改进要点:** - 每张图改为真实通知/标识,如 \"TRAINS to the NORTH. Go to Platform 3.\" - 图片文字至少 1 句完整陈述,含足够信息供阅读提取 - 题目围绕通知/标识内容提问,考察学生从标识中抓取关键信息的能力 ### 刘彦江 — reading_matchInfo 阅读信息匹配题(6套L2 B级: 021301-021801,19:30 ~ 19:45) - **需求:** 6套 reading_matchInfo,L2 B级,能力标签 标识与通知理解|标识 & 通知 - **B级规范:** 文本3-5词短句,图片为同类差异,简单对应;每张图是真实的标识/通知(非标签式) - **状态:** ✅ 全部完成(两阶段延迟写入策略,避免自动化覆盖) - **脚本:** `scripts/batch_reading_matchInfo.py` | ID | 题组1 | 题组2 | record_id | |----|-------|-------|-----------| | 021301 |", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-12T01:41:17.155Z", "lastRecalledAt": "2026-05-12T01:41:17.155Z", "queryHashes": [ "7ca0207f1308" ], "recallDays": [ "2026-05-12" ], "conceptTags": [ "真实标识/通知", "reading-matchinfo", "新record-ids", "每张图改为真实通知/标识", "题目围绕通知/标识内容提问", "021301-021801", "文本3-5词短句", "每张图是真实的标识/通知" ] }, "memory:memory/2026-05-11.md:51:68": { "key": "memory:memory/2026-05-11.md:51:68", "path": "memory/2026-05-11.md", "startLine": 51, "endLine": 68, "source": "memory", "snippet": "- **自动化问题:** 该表存在异步自动化,创建后会将 jsonData 改写为模板壳(减少题量+覆盖 ability) - **解决方案:** 两阶段延迟写入(先创建空记录→等35s让自动化完成→PUT jsonData),010901/011201 修复后验证通过 | ID | 题组1 | 题组2 | record_id | |----|-------|-------|-----------| | 010901 | north/east/south/west/exit(方向标识) | businessman/job/letter/call/guard(职场) | recvjiYAHtp05c | | 011001 | beat/dancer/drum/player/work(音乐体育) | aged/good-looking/mistake/weakness/be good at(人物描述) | recvjiXLdt5itq | | 011101 | dangerous/badly/worst/steal/run away(危险) | minute/close/kilometre/second/away(时间距离) | recvjiXLOOWMsq | | 011201 | summer/winter/Earth/holiday/term(季节) | examination/plus/minus/biology/study(学校) | recvjiYBd8Mejs | - **脚本:** `scripts/batch_reading_matchInfo.py` - *", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-12T01:41:17.155Z", "lastRecalledAt": "2026-05-12T01:41:17.155Z", "queryHashes": [ "7ca0207f1308" ], "recallDays": [ "2026-05-12" ], "conceptTags": [ "010901/011201", "record-id", "north/east/south/west/exit", "beat/dancer/drum/player/work", "dangerous/badly/worst/steal/run", "summer/winter/earth/holiday/term", "自动", "问题" ] }, "memory:memory/2026-05-12.md:206:226": { "key": "memory:memory/2026-05-12.md:206:226", "path": "memory/2026-05-12.md", "startLine": 206, "endLine": 226, "source": "memory", "snippet": "- **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:写入前完整提取", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-13T03:09:54.362Z", "lastRecalledAt": "2026-05-25T01:44:48.649Z", "queryHashes": [ "f151bc633ad1", "a0932e0e2749", "3f9471df9e50", "d13d58b4704a", "37d5e066d57f" ], "recallDays": [ "2026-05-13", "2026-05-15", "2026-05-19", "2026-05-22", "2026-05-25" ], "conceptTags": [ "10/10", "skills/bitable-reader/skill.md", "v2.0", "id/kpinfo/taskdata", "14/15", "scripts/audit-core-reading-s0.py", "sentencemeaningmeaning", "修复" ] }, "memory:memory/2026-04-30.md:50:63": { "key": "memory:memory/2026-04-30.md:50:63", "path": "memory/2026-04-30.md", "startLine": 50, "endLine": 63, "source": "memory", "snippet": "格式: 【任务标题】【情境引入】【互动内容】【互动反馈】【后置对话】。目标词用$...$包裹,选项为图片区域编号(00/01/02)。 #### 5. 对话选择 (1条) — 规则: 参考 teaching_config 示例格式 + mid_dialog_choose prompt | ID | 任务标题 | 选项 | 知识点 | |---|---------|------|--------| | 1115514 | 判断蕃茄的好坏 | It is a good one. / It is a bad one. | one | 格式: 【任务标题】【资源配置】【情境引入】【互动内容】【后置对话】。互动内容含要求+选项+反馈。 ### 关键经验 - **组件配置列位置变更**: 本轮操作中发现sheet新增了「配置信息」列(C列),导致组件配置从F列移至G列。后续操作需先确认列结构。 - **Bot身份操作**: 所有飞书 sheet 写入均使用 Bot 身份(App ID: cli_a931175d41799cc7),Feishu API Token: t-g1044ubUXXMPFXBW75RILL7YZKRGAKQGWWDV2R3D - **对话选择组件**: 无独立 SKILL.md,需参照 interactive-component-json 的 prompt_registry.py 中 mid_dialog_choose 模板 + bitable 中已有的 teaching_config 示例格式", "recallCount": 4, "dailyCount": 0, "groundedCount": 0, "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-05-13T03:09:54.362Z", "lastRecalledAt": "2026-06-16T04:20:48.039Z", "queryHashes": [ "f151bc633ad1", "71e44ea68b09", "f53c9769e692", "db84c41f4b84" ], "recallDays": [ "2026-05-13", "2026-05-28", "2026-06-01", "2026-06-16" ], "conceptTags": [ "00/01/02", "teaching-config", "mid-dialog-choose", "cli-a931175d41799cc7", "skill.md", "interactive-component-json", "prompt-registry.py", "格式" ] }, "memory:memory/2026-04-30.md:23:41": { "key": "memory:memory/2026-04-30.md:23:41", "path": "memory/2026-04-30.md", "startLine": 23, "endLine": 41, "source": "memory", "snippet": "| 8 | 对话朗读 | 我来刷漆吧 | Let me paint it. | 格式: 【任务标题】【资源配置】【情景引入】【互动内容】【后置对话】。情景引入和后置对话默认「无」。 #### 2. 对话挖空 (2条) — 规则: dialogue-fill-in-blanks-config | ID | 任务标题 | 挖空句 | 正确选项 | 干扰项 | 知识点 | |---|---------|--------|---------|--------|--------| | 9 | 告诉May这刷子是我的 | It is ___. | mine | May | mine | | 11 | 给稻草人John画张脸 | We need to ___ a face on John! | paint | make | paint | 格式: 【任务标题】【资源配置】【情境引入】【互动内容】【互动反馈】【后置对话】。挖空句结尾标注(音频),选项标注(正确),反馈台词贴合剧情。 #### 3. 对话组句 (3条) — 规则: dialogue-sentence-building-config | ID | 任务标题 | 答案 | 选项词 | 知识点 | |---|---------|------|-------|--------| | 10 | 制止BoBo拿我的刷子 | BoBo stop, it is mine! | BoBo/stop/it/is/mine | mine | | 12 | 告诉May我也有一顶帽子 | I have one too! | I/have/one/", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-13T03:09:54.362Z", "lastRecalledAt": "2026-05-13T03:09:54.362Z", "queryHashes": [ "f151bc633ad1" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "dialogue-fill-in-blanks-config", "bobo/stop/it/is/mine", "i/have/one", "对话", "朗读", "我来", "let", "paint" ] }, "memory:memory/2026-04-02.md:1:16": { "key": "memory:memory/2026-04-02.md:1:16", "path": "memory/2026-04-02.md", "startLine": 1, "endLine": 16, "source": "memory", "snippet": "# 2026-04-02 工作日志 ## 【规则沉淀】对话台词优化通用规则(来自11-4棒球单元案例) ### 适用场景:所有英语教研内容对话台词润色、优化、修改 --- #### 核心修改规则 1. **精简原则**:删除所有冗余重复表述(重复提到的核心名词如baseball可省略,前文已交代的背景信息不再重复) 2. **口语化原则**:所有台词符合日常对话习惯,避免书面化、生硬的表达,适当增加语气词(Haha、Oops、Uh-oh、Oh boy等) 3. **拆分原则**:长度超过8个单词的长句拆分为2-3个短句,每句对应一个动作/情绪节点,增强交互节奏 4. **情绪匹配原则**:台词语气严格匹配角色当前情绪(惊讶时拆分句子加问号,欢呼时用短词,失落时用省略号) 5. **场景适配原则**:可通过动画/画面表达的内容,不再用台词重复表述,减少信息冗余 --- #### 统一风格标准 整体风格定位:低龄友好、活泼生动、节奏感强、代入感高 - 单句最长不超过10个单词,核心知识点相关句子不超过7个单词 - 每个角色的台词符合其人设(Matt阳光直率、Tom活泼有趣、Amber骄傲好胜) - 对话节奏快,每2-3句台词对应一个剧情节点或互动环节", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-13T03:18:48.153Z", "lastRecalledAt": "2026-05-13T03:18:48.153Z", "queryHashes": [ "633af3858f54" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "来自11-4棒球单元案例", "uh-oh", "长度超过8个单词的长句拆分为2-3个短句", "每句对应一个动作/情绪节点", "可通过动画/画面表达的内容", "每2-3句台词对应一个剧情节点或互动环节", "工作", "日志" ] }, "memory:memory/2026-05-13.md:88:108": { "key": "memory:memory/2026-05-13.md:88:108", "path": "memory/2026-05-13.md", "startLine": 88, "endLine": 108, "source": "memory", "snippet": "### kids-english-script-production 触发机制 - [刘彦江] 要求增加防误触发 - 更新文件: - `business_production/剧本翻译/skills/kids-english-script-production/assets/skill.yml` — 注册描述 - `business_production/剧本翻译/skills/kids-english-script-production/SKILL.md` — 新增触发方式章节 - 触发指令:`/英文台词 --feishu-url <链接> --stage ` (命令触发,推荐) - 短语触发:消息含\"英文台词生产\" - 不会触发:仅含\"翻译\"/\"台词\"/\"英文\" (防误匹配) ## 刘彦江 — 课程组件生产/审校/回填技能创建 ### script-component-production 技能 - 路径:`business_production/课程组件/skills/script-component-production/` - 覆盖:27种中互动 + 14种核心互动组件类型 - 6节点流程:读取文档→解析Sheet→识别组件行→匹配组件类型→LLM生成JSON→审校→回填 - 触发:`/组件配置 --feishu-url <链接>` (命令触发,推荐) - 防误触发:仅含\"互动\"/\"配置\"/\"JSON\"不触发 - 与 /英文台词 技能协作:先英文台词回填列F,后组件配置回填列G - 创建文件: - `SKILL.md` — 完整技能文档(", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-13T07:40:28.541Z", "lastRecalledAt": "2026-05-13T07:40:28.541Z", "queryHashes": [ "3beb30f546c9" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "kids-english-script-production", "feishu-url", "课程组件生产/审校/回填技能创建", "script-component-production", "skill.md", "kids", "english", "script" ] }, "memory:memory/2026-05-13.md:71:92": { "key": "memory:memory/2026-05-13.md:71:92", "path": "memory/2026-05-13.md", "startLine": 71, "endLine": 92, "source": "memory", "snippet": "## 刘彦江 — 教学大纲文档结构解析 + 英文台词回填 + skill触发机制 ### S1/S2 大纲文档结构 - 文档:https://makee-interactive.feishu.cn/wiki/IOmNwV55Si6JTykCAM5c1HM1nSd - 类型:独立电子表格,含 2 个子表 - S1 大纲:264行×22列,Unit 0~12,2行冻结表头 - S2 大纲:204行×22列,Unit 13~18 - 列结构:A=Unit / B=Lesson / C~F=Vocabulary(知识模块/单词/词性/词义) / G~I=Sentences(知识模块/句型/例句) / J~V=未使用 - 每Unit有 Lesson 1~5,每行=一条词汇+可选句型(知识模块维度独立) ### 英文台词生产并回填:L1-S2-U17-L3 紧急拜访 - 文档:https://makee-interactive.feishu.cn/wiki/FkKgw4jBPix9lNkRemLcSwYOnid - spreadsheet_token: DA7csROG6hmnQMt59oScOLRfnWc, sheet: Nr3Ovs - 知识点:grandmother, grandfather, visit, today + 句型 Today is... / ...visit+sb - 操作:清空列F → 按MEMORY.md对话台词优化规则重新生产116条 → 写入并验证通过 - 规则应用:知识点保留/精简/口语化(收缩)/拆分(>8词)/情绪匹配/正向引导(mad→up", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-13T07:40:28.541Z", "lastRecalledAt": "2026-05-13T07:40:28.541Z", "queryHashes": [ "3beb30f546c9" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "s1/s2", "知识模块/单词/词性/词义", "知识模块/句型/例句", "l1-s2-u17-l3", "spreadsheet-token", "按memory.md对话台词优化规则重新生产116条", "知识点保留/精简/口语化", "情绪匹配/正向引导" ] }, "memory:memory/2026-05-13.md:105:115": { "key": "memory:memory/2026-05-13.md:105:115", "path": "memory/2026-05-13.md", "startLine": 105, "endLine": 115, "source": "memory", "snippet": "- 与 /英文台词 技能协作:先英文台词回填列F,后组件配置回填列G - 创建文件: - `SKILL.md` — 完整技能文档(触发/流程/组件类型速查/审校项/使用示例) - `assets/skill.yml` — 技能注册(依赖 interactive-component-json/core-content-json-standard 等) - `assets/component_rules.yaml` — 组件类型自动匹配信号规则 - `assets/review_checklist.yaml` — 15项审校清单(ID/字段/题型/知识点/选项/高亮/反馈/超纲等) ### 已更新文件 - `component-design/SKILL.md` — 增加触发方式章节(防误触发) - `kids-english-script-production/assets/skill.yml` + `SKILL.md` — 增加 /英文台词 触发(上轮)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-13T07:40:28.541Z", "lastRecalledAt": "2026-05-13T07:40:28.541Z", "queryHashes": [ "3beb30f546c9" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "skill.md", "触发/流程/组件类型速查/审校项/使用示例", "assets/skill.yml", "assets/component-rules.yaml", "assets/review-checklist.yaml", "id/字段/题型/知识点/选项/高亮/反馈/超纲等", "component-design/skill.md", "英文" ] }, "memory:memory/2026-05-13.md:1:33": { "key": "memory:memory/2026-05-13.md:1:33", "path": "memory/2026-05-13.md", "startLine": 1, "endLine": 33, "source": "memory", "snippet": "# 2026-05-13 工作记忆 ## 王璐辰 — 剧本台词润色审校 ### 审校#1: L1-S2-U18-L1 中国周 - 文档:https://makee-interactive.feishu.cn/wiki/PgWrwllW2ikQKgkLTYKcmKFonXc - 🔴 必须修改 4 项(行70句子过长、行72 you→your、行157 It this→Is this、行159全角?) - 🟡 建议关注 9 项 | ⚠️ 缺失润色 2 项(行47图片单选4、行185核心听力17) ### 审校#2: L1-S2-U18-L2 登龙秘笈 - 文档:https://makee-interactive.feishu.cn/wiki/KNAZwTYXsib2Ijk6BrGciRelnSf - 🔴 必须修改 1 项(行120空格缺失) - 🟡 建议关注:全文 dragon/loong 混用 - ⚠️ 缺失润色 2 项 ### 格式约定 [王璐辰确认] 后续\"审校\"请求默认输出格式: 1. 表格概况(行数/覆盖) 2. 🔴 必须修改 → 表格列出(行号/角色/问题/当前值/建议修改) 3. 🟡 建议关注 → 表格列出 4. ⚠️ 缺失项(如有) 5. ✅ 整体评价 # 2026-05-13 工作记忆 ## 王璐辰 — 剧本台词润色审校 ### 审校#1: L1-S2-U18-L1 中国周 - 文档:https://makee-interactive.feishu.cn/wiki/PgWrwllW2ikQKgkLTYKcmKFonXc - 🔴 必须修改", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-13T09:14:31.249Z", "lastRecalledAt": "2026-05-13T09:14:31.249Z", "queryHashes": [ "4906de25dd2a" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "l1-s2-u18-l1", "l1-s2-u18-l2", "dragon/loong", "行数/覆盖", "行号/角色/问题/当前值/建议修改", "工作", "记忆", "剧本" ] }, "memory:memory/2026-05-12.md:189:209": { "key": "memory:memory/2026-05-12.md:189:209", "path": "memory/2026-05-12.md", "startLine": 189, "endLine": 209, "source": "memory", "snippet": "- **脚本:** `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 ~", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-13T09:14:31.249Z", "lastRecalledAt": "2026-05-21T07:31:52.322Z", "queryHashes": [ "4906de25dd2a", "0e7edf653be7", "03b71fab8fb9" ], "recallDays": [ "2026-05-13", "2026-05-17", "2026-05-21" ], "conceptTags": [ "scripts/audit-l1-config.py", "skills/audit-l1-config/skill.md", "1213001-1216010", "13-16", "脚本", "scripts", "fix-matchinfo-0213-0218-desc.py", "技能" ] }, "memory:memory/2026-05-12.md:92:113": { "key": "memory:memory/2026-05-12.md:92:113", "path": "memory/2026-05-12.md", "startLine": 92, "endLine": 113, "source": "memory", "snippet": "- 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) - **范围:** L1", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-13T09:14:31.249Z", "lastRecalledAt": "2026-05-22T07:04:01.804Z", "queryHashes": [ "4906de25dd2a", "0e7edf653be7", "4b36721edd0f", "03b71fab8fb9", "d13d58b4704a" ], "recallDays": [ "2026-05-13", "2026-05-17", "2026-05-21", "2026-05-22" ], "conceptTags": [ "3-5词", "scripts/audit-l1-config.py", "skill.md", "skills/audit-l1-config/skill.md", "1213001-1216010", "以上", "图片", "文字" ] }, "memory:memory/2026-05-12.md:1:20": { "key": "memory:memory/2026-05-12.md:1:20", "path": "memory/2026-05-12.md", "startLine": 1, "endLine": 20, "source": "memory", "snippet": "# 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", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-13T13:40:33.965Z", "lastRecalledAt": "2026-05-14T02:49:02.264Z", "queryHashes": [ "11ea0881b126", "08b6f3142a2b", "d592c9ed5e0a" ], "recallDays": [ "2026-05-13", "2026-05-14" ], "conceptTags": [ "021301-021801", "按每道题的上下文匹配对应的标识/通知类型标签", "图片必须是真实标识/通知", "3-5词", "工作", "日志", "会话", "记录" ] }, "memory:memory/2026-05-12.md:36:52": { "key": "memory:memory/2026-05-12.md:36:52", "path": "memory/2026-05-12.md", "startLine": 36, "endLine": 52, "source": "memory", "snippet": "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", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-13T13:40:33.965Z", "lastRecalledAt": "2026-05-13T13:40:41.646Z", "queryHashes": [ "11ea0881b126", "08b6f3142a2b" ], "recallDays": [ "2026-05-13" ], "conceptTags": [ "按每道题的上下文匹配对应的标识/通知类型标签", "图片必须是真实标识/通知", "3-5词", "查询", "bitable", "获取", "记录", "当前" ] }, "memory:memory/2026-05-12.md:170:193": { "key": "memory:memory/2026-05-12.md:170:193", "path": "memory/2026-05-12.md", "startLine": 170, "endLine": 193, "source": "memory", "snippet": "- 每个题型: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.0(393行) - `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`", "recallCount": 6, "dailyCount": 0, "groundedCount": 0, "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-14T02:49:02.264Z", "lastRecalledAt": "2026-05-29T00:23:17.392Z", "queryHashes": [ "d592c9ed5e0a", "5f858a7d5e0b", "34bf2e5fbdee", "3f9471df9e50", "d13d58b4704a", "bd790c7e2a35" ], "recallDays": [ "2026-05-14", "2026-05-17", "2026-05-19", "2026-05-22", "2026-05-29" ], "conceptTags": [ "口语快答/妙问", "textdata.text", "textdata.audio", "skills/bitable-reader/skill.md", "v2.0", "scripts/audit-core-reading-s0.py", "021301-021801", "ctype" ] }, "memory:memory/2026-05-12.md:76:95": { "key": "memory:memory/2026-05-12.md:76:95", "path": "memory/2026-05-12.md", "startLine": 76, "endLine": 95, "source": "memory", "snippet": "- **脚本回填脚本:** `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 配置表审校 + 技", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-14T02:49:02.264Z", "lastRecalledAt": "2026-05-19T03:08:27.099Z", "queryHashes": [ "d592c9ed5e0a", "5f858a7d5e0b", "34bf2e5fbdee" ], "recallDays": [ "2026-05-14", "2026-05-17", "2026-05-19" ], "conceptTags": [ "021301-021801", "按每道题的上下文匹配对应的标识/通知类型标签", "图片必须是真实标识/通知", "3-5词", "脚本", "回填", "scripts", "audit-batch-1213001-1216010" ] }, "memory:memory/2026-05-07.md:354:368": { "key": "memory:memory/2026-05-07.md:354:368", "path": "memory/2026-05-07.md", "startLine": 354, "endLine": 368, "source": "memory", "snippet": "- **需求:** 将 020102(I am...)和 020103(I am ready / Thank you)两套题合并为一个 `{first:..., second:...}` JSON,统一 questionSetID=0000001 - **状态:** ✅ 已完成 - **核心考点分析(用户强调):** 需分析每个句型的核心考点(孩子最容易犯错的地方),挖空对准核心考点 - I am/from 组:am(系动词第一人称)、from(介词选择)、student(a+名词结构) - Thank you for 组:for(介词选择,非 you)、helping(for+动名词,非 help/to help) - **输出文件:** `output/writing_pic_qa_combined.json` ### 刘彦江 — 组件配置-json 请求(L1-S2-U13-L4 沙漠之花) - **时间:** 16:45 ~ 17:51 - **文档:** `https://makee-interactive.feishu.cn/wiki/K5E1wzwk7it9t7kXvcbc6Xugnhc` - **状态:** ⚠️ 未完成 — pipeline 识别到 0 组件 - **根因:** 剧本文档的13个组件数据存储在 markdown 内联表格中(lark-table,5列×36行),而非内嵌 Sheet。当前 pipeline 的 parse_script 只从内嵌 Sheet 读取组件数据,不支持 markdown 表格组件解析 - **已识别组件(ma", "recallCount": 18, "dailyCount": 0, "groundedCount": 0, "totalScore": 18, "maxScore": 1, "firstRecalledAt": "2026-05-15T07:13:08.147Z", "lastRecalledAt": "2026-06-15T03:47:58.328Z", "queryHashes": [ "08364c8746ab", "4f08741ab4fd", "6a1144a866c9", "65b539c56ec3", "19c873a71799", "47f8c15000b2", "612fa3b04b06", "d6a04b711fd9", "8742c0bf4e2b", "eb0902db0156", "229e5d3943bb", "f53c9769e692", "5d025e291984", "472b243ec77c", "fd4c8aca2cb6", "5319f16d7a0d", "bab77e938a4a", "1bc1a108c5c8" ], "recallDays": [ "2026-05-15", "2026-05-17", "2026-05-18", "2026-05-21", "2026-05-25", "2026-05-28", "2026-06-01", "2026-06-04", "2026-06-09", "2026-06-10", "2026-06-15" ], "conceptTags": [ "am/from", "help/to", "组件配置-json", "l1-s2-u13-l4", "lark-table", "parse-script", "需求", "ready" ] }, "memory:memory/2026-04-22.md:1:8": { "key": "memory:memory/2026-04-22.md:1:8", "path": "memory/2026-04-22.md", "startLine": 1, "endLine": 8, "source": "memory", "snippet": "[李应瑛 2026-04-22 提出要求] 所有需要包含对话的内容(如剧本、互动组件等)必须要有【后置对话】字段,无后置对话时填写“无”。 [李应瑛 2026-04-22 确认规则] 剧本内嵌表格组件填写位置规则:仅当表格第一列(A列)明确标注为对话类类型(对话朗读/对话挖空/对话选读/对话组句等)时,才在同一行的H列(【组件】列)填写对应的组件内容,其他类型行(TL/场景/角色/图片/非对话类等)无需填写。 [李应瑛 2026-04-22 确认格式规则] 对话类组件字段换行规则:每个结构单独占一行,格式为: 【任务标题】xxx 【情境引入】xxx 【互动内容】xxx 【后置对话】xxx 单元格内使用\\n作为换行符实现,后续所有组件均遵循此格式。", "recallCount": 17, "dailyCount": 0, "groundedCount": 0, "totalScore": 17, "maxScore": 1, "firstRecalledAt": "2026-05-15T07:13:08.147Z", "lastRecalledAt": "2026-06-15T03:47:58.328Z", "queryHashes": [ "08364c8746ab", "4f08741ab4fd", "6a1144a866c9", "19c873a71799", "47f8c15000b2", "612fa3b04b06", "d6a04b711fd9", "8742c0bf4e2b", "eb0902db0156", "229e5d3943bb", "5d025e291984", "472b243ec77c", "fd4c8aca2cb6", "5319f16d7a0d", "bab77e938a4a", "d3a0a49a8920", "1bc1a108c5c8" ], "recallDays": [ "2026-05-15", "2026-05-17", "2026-05-18", "2026-05-21", "2026-05-25", "2026-05-28", "2026-06-01", "2026-06-04", "2026-06-09", "2026-06-10", "2026-06-12", "2026-06-15" ], "conceptTags": [ "对话朗读/对话挖空/对话选读/对话组句等", "tl/场景/角色/图片/非对话类等", "提出", "要求", "所有", "需要", "包含", "对话" ] }, "memory:memory/2026-04-30.md:1:27": { "key": "memory:memory/2026-04-30.md:1:27", "path": "memory/2026-04-30.md", "startLine": 1, "endLine": 27, "source": "memory", "snippet": "# 2026-04-30 工作日志 ## 李应瑛 — L1-S2-U15-L5 剧本组件配置生产 ### 文档信息 - **剧本**: 另一个BoBo 副本 - **Wiki**: https://makee-interactive.feishu.cn/wiki/HSSRwUqxSi8p51k6FtIcA7UAn8y - **Spreadsheet Token**: SD3Fs2zv8hM5evtHA5Nc7UjQncd - **Sheet ID**: wMQVyV - **Sheet 列结构**(注意:中间新增了\"配置信息\"列C,组件配置列从F移至G): - A: 类型, B: ID, C: 配置信息, D: 剧情描述, E: 角色名, F: 英文台词, G: 组件配置, H: 知识点, I: 编剧台词 ### 已完成组件配置 #### 1. 对话朗读 (6条) — 规则: dialogue-reading-config | ID | 类型 | 任务标题 | 互动内容 | |---|------|---------|---------| | 1 | 对话朗读-配图 | 给May看照片 | I have a photo. | | 2 | 对话朗读-配图 | 指认照片中的房子 | Look at this one. | | 3 | 对话朗读-配图 | 告诉May这是我的房子 | This house is mine. | | 4 | 对话朗读 | 赞叹May有一个农场 | You have a farm! | | 7 | 对话朗读 | 夸May刷漆刷得好 | You", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-17T05:52:07.611Z", "lastRecalledAt": "2026-06-23T02:51:54.388Z", "queryHashes": [ "65b539c56ec3", "77cfbe459e1d", "63eeac46a47c" ], "recallDays": [ "2026-05-17", "2026-06-23" ], "conceptTags": [ "l1-s2-u15-l5", "dialogue-reading-config", "对话朗读-配图", "工作", "日志", "u15", "剧本", "配置" ] }, "memory:memory/2026-05-12.md:137:149": { "key": "memory:memory/2026-05-12.md:137:149", "path": "memory/2026-05-12.md", "startLine": 137, "endLine": 149, "source": "memory", "snippet": "- **根因:** 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 验证 → 发现异常立即回滚", "recallCount": 10, "dailyCount": 0, "groundedCount": 0, "totalScore": 10, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:25.325Z", "lastRecalledAt": "2026-05-28T03:07:46.098Z", "queryHashes": [ "6b577a0b3971", "3069a934195d", "68f309fb88a7", "d8cc1fcace47", "a17120169039", "45858b28edec", "79988fa9a90d", "eef3a2e282db", "6e1ba3a5e963", "cf60b3f6d17d" ], "recallDays": [ "2026-05-18", "2026-05-25", "2026-05-26", "2026-05-28" ], "conceptTags": [ "json.dumps", "10/10", "json.loads", "根因", "explanation", "文本", "中的", "ascii" ] }, "memory:memory/2026-05-17.md:19:41": { "key": "memory:memory/2026-05-17.md:19:41", "path": "memory/2026-05-17.md", "startLine": 19, "endLine": 41, "source": "memory", "snippet": "- `raw_content` API 不暴露此类嵌入 Sheet,需通过 blocks API 查找 `block_type=30` 的 grid_column 节点来发现 sheet token - 该文档含 2 个嵌入 Sheet:`zbfYO4`(知识点区)和 `Nr3Ovs`(243 行 × 8 列脚本表) ### 已完成的组件回填(14/14 对话组件) | 组件类型 | 数量 | 所用 skill | |---------|:--:|-----------| | 对话朗读 | 6 | dialogue-reading-config | | 对话朗读-配图 | 2 | dialogue-reading-config | | 对话挖空 | 2 | dialogue-fill-in-blanks-config | | 对话挖空-配图 | 1 | dialogue-fill-in-blanks-config | | 对话选择-配图 | 1 | dialogue-choose-config | | 对话选读 | 1 | **dialogue-selective-reading-config(新建)** | | 对话组句 | 1 | dialogue-sentence-building-config | ### Skill 库补全 - **新建 skill**:`~/.openclaw/workspace-xiaoyan/skills/dialogue-selective-reading-config/SKILL.md` - 格式来源:`dialogue-inter", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:25.325Z", "lastRecalledAt": "2026-05-29T00:23:17.392Z", "queryHashes": [ "eb45753e9aa6", "09344f87b646", "bd790c7e2a35" ], "recallDays": [ "2026-05-18", "2026-05-21", "2026-05-29" ], "conceptTags": [ "raw-content", "block-type", "grid-column", "14/14", "dialogue-reading-config", "对话朗读-配图", "dialogue-fill-in-blanks-config", "对话挖空-配图" ] }, "memory:memory/2026-05-14.md:1:29": { "key": "memory:memory/2026-05-14.md:1:29", "path": "memory/2026-05-14.md", "startLine": 1, "endLine": 29, "source": "memory", "snippet": "## [刘彦江] 单元挑战听力审校(2026-05-14 10:23) ### 审校范围 单元挑战多维表格(App Token: `CMHSbUUjka3TrUsaxxEc297ongf`)听力部分 P1-P7,排除P3。 ### 审校结果 - 总记录数:90条(含空记录),有内容54条 - ✅ 通过:45条 | 🔴 需修改:9条 ### 🔴 需修改记录 | 表 | record_id | 问题 | |---|---|---| | P4-短对话选择 | recvjufM76lEsW | 题目集合ID不匹配: field=021501, jsonData=032901 | | P4-短对话选择 | recvjufM76lRHQ | 题目集合ID不匹配: field=021801, jsonData=173601 | | P7-听力拖拽 | recv9G4M8EitVx | ability用¥¥分隔, 应为逗号 | | P7-听力拖拽 | recvhYCmybrzzx | second[0].ability为空 | | P7-听力拖拽 | recviZIWmT91yS | QSID=\"L1\"异常, 题目1/2文本字段空 | | P7-听力拖拽 | recvj5t2UBNxx3 | second[0].ability为空 | | P1-图片选择 | recuUjgbwn3Lkm | explanation过短 | | P1-图片选择 | recuXeaDe2DMco | explanation过短(4处) | | P1-图片选择 | recv2vIWOdExGi | exp", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:35.690Z", "lastRecalledAt": "2026-05-18T02:42:52.167Z", "queryHashes": [ "6f2558e71aa6", "88190dc3b5bc" ], "recallDays": [ "2026-05-18" ], "conceptTags": [ "p1-p7", "record-id", "p4-短对话选择", "p7-听力拖拽", "题目1/2文本字段空", "p1-图片选择", "彦江", "单元" ] }, "memory:memory/2026-05-14.md:24:47": { "key": "memory:memory/2026-05-14.md:24:47", "path": "memory/2026-05-14.md", "startLine": 24, "endLine": 47, "source": "memory", "snippet": "- `scripts/audit_unit_challenge_listening.py` — 第1轮基础审校(结构/字段完整性) - `scripts/audit_unit_challenge_listening_v2.py` — 第2轮深度审校(能力标签/内容一致性) - `scripts/write_audit_results_v3.py` — 结果写回bitable(Python直接调API) ### 注意事项 - P6 表格部分记录 dataStatus 为 None(非\"0\"),已手动补写 - 写入脚本直接使用 Python requests 调飞书 API,绕过 bash 脚本,避免 shell 变量转义和阻塞问题 ## [刘彦江] 单元挑战听力审校修复(2026-05-14 10:30) ### 已修复 9 条 | # | 表 | record_id | 修复内容 | |---|-----|-----------|----------| | 1 | P7 | recv9G4M8EitVx | ability ¥¥→逗号 + explanation ¥¥→分号 | | 2 | P7 | recvhYCmybrzzx | second ability补全(复用first)+ explanation补充 | | 3 | P7 | recvj5t2UBNxx3 | second ability补全(复用first) | | 4 | P4 | recvjufM76lEsW | QSID字段 021501→032901(统一为jsonData内部值) | | 5 |", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:35.690Z", "lastRecalledAt": "2026-05-18T02:42:35.690Z", "queryHashes": [ "6f2558e71aa6" ], "recallDays": [ "2026-05-18" ], "conceptTags": [ "结构/字段完整性", "能力标签/内容一致性", "record-id", "scripts", "基础", "结构", "完整性", "深度" ] }, "memory:memory/2026-05-14.md:42:71": { "key": "memory:memory/2026-05-14.md:42:71", "path": "memory/2026-05-14.md", "startLine": 42, "endLine": 71, "source": "memory", "snippet": "| 6 | P7 | recviZIWmT91yS | QSID \"L1\"→\"L1-TBD-REVIEW\";标记需人工审核(first/second内容重复) | | 7 | P1 | recuUjgbwn3Lkm | 标记为占位数据(QSID=000001) | | 8 | P1 | recuXeaDe2DMco | explanation优化:通用模板→带选项字母的版本 | | 9 | P1 | recv2vIWOdExGi | explanation优化:通用模板→带选项字母的版本 | ### 需人工跟进 - recviZIWmT91yS: QSID需确认正确值,first/second内容重复(都是park场景),文本字段空 ## [刘彦江] 第二轮修复(2026-05-14 10:40) ### 修复内容 | # | 表 | record_id | 修复内容 | |---|-----|-----------|----------| | 1 | P4 | recvjufM76hNv5 | JSON清理重写(原解析报错) | | 2 | P4 | recvjufM76eMKs | QSID 021701→032901 | | 3 | P1 | recuVgdFqcW20X | explanation补全 | | 4 | P1 | recvj1lf9upJNH | explanation补全 | | 5 | P1 | recvj1lfsXqshG | explanation已OK(无须改) | | 6 | P4 | recvjufM76o6of | explanati", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:52.167Z", "lastRecalledAt": "2026-05-18T02:42:52.167Z", "queryHashes": [ "88190dc3b5bc" ], "recallDays": [ "2026-05-18" ], "conceptTags": [ "l1-tbd-review", "first/second内容重复", "record-id", "recviziwmt91ys", "qsid", "tbd", "review", "标记" ] }, "memory:memory/2026-05-18.md:23:29": { "key": "memory:memory/2026-05-18.md:23:29", "path": "memory/2026-05-18.md", "startLine": 23, "endLine": 29, "source": "memory", "snippet": "- 缺失列:写作-P2(tblSAwlMumKoyjws)、口语-P4(tblsD2dxaRpLmkXD)无「审校结果」列 ### 经验 - 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文 - bitable curl 写回嵌套JSON时,Python subprocess构造完整body比shell变量展开安全 - 听力-P1 000001 虽有5条first+5条second,但确有题目内容,不是纯占位,按实际内容生成了解析", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:52.167Z", "lastRecalledAt": "2026-05-18T02:42:52.167Z", "queryHashes": [ "88190dc3b5bc" ], "recallDays": [ "2026-05-18" ], "conceptTags": [ "写作-p2", "口语-p4", "写作-p3", "听力-p1", "缺失", "写作", "tblsawlmumkoyjws", "口语" ] }, "memory:memory/2026-05-18.md:1:27": { "key": "memory:memory/2026-05-18.md:1:27", "path": "memory/2026-05-18.md", "startLine": 1, "endLine": 27, "source": "memory", "snippet": "# 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条记录 - 缺失列:写作-P2(tblSAwlMumKoyjws)、口语-P4(tblsD2dxaRpLmkXD)无「审校结果」列 ### 经验 - 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文 - bitable curl 写回嵌套JSON时,Python subprocess构造完整body比shell变量展开安全", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-18T02:42:52.167Z", "lastRecalledAt": "2026-05-21T02:47:43.415Z", "queryHashes": [ "88190dc3b5bc", "2a58080272be", "e3188fdd52d6", "8ccf25e60418", "f76487d76697" ], "recallDays": [ "2026-05-18", "2026-05-19", "2026-05-21" ], "conceptTags": [ "听力-p2", "口语-p1", "032701/032901", "口语-p2", "听力-p1", "听力-p4", "021701/022101/032501/032901", "共写作-p3复查后实际ok" ] }, "memory:memory/2026-05-14.md:123:144": { "key": "memory:memory/2026-05-14.md:123:144", "path": "memory/2026-05-14.md", "startLine": 123, "endLine": 144, "source": "memory", "snippet": "## [刘彦江] 写作+口语 C级 032501-032901 生产(2026-05-14 15:42) ### 生产内容(10条) | # | 表 | QSID | record_id | 题型 | 主题 | 难度 | |---|-----|------|-----------|------|------|------| | 1 | 写作-P1 | 032501 | recvjzXjMKAQ4i | 邮件组句 | 鼓励朋友参加音乐会 | C | | 2 | 写作-P1 | 032601 | recvjzXklYIE05 | 邮件组句 | 给老师写感谢信 | C | | 3 | 写作-P1 | 032701 | recvjzXkYnsQ8r | 邮件组句 | 描述咖啡馆和遇到的人 | C | | 4 | 写作-P1 | 032801 | recvjzXlxz4r3i | 邮件组句 | 科学项目求助 | C | | 5 | 写作-P1 | 032901 | recvjzXm5yEXBY | 邮件组句 | 妈妈的生日派对 | C | | 6 | 口语-P1 | 032501 | recvjzWP7IcA8O | 日常回答 | 观点转变与过去习惯 | C | | 7 | 口语-P1 | 032701 | recvjzWPQc5JZW | 日常回答 | 好奇心与想法改变 | C | | 8 | 口语-P1 | 032901 | recvjzWQr0Kif7 | 日常回答 | 团队合作与沟通 | C | | 9 | 口语-P2 | 032601 | recvjzWR07LSna |", "recallCount": 7, "dailyCount": 0, "groundedCount": 0, "totalScore": 7, "maxScore": 1, "firstRecalledAt": "2026-05-18T11:35:06.740Z", "lastRecalledAt": "2026-05-25T08:53:31.758Z", "queryHashes": [ "2a58080272be", "e3188fdd52d6", "8ccf25e60418", "f76487d76697", "e8e31d8a03aa", "d8cc1fcace47", "12653110bb68" ], "recallDays": [ "2026-05-18", "2026-05-19", "2026-05-21", "2026-05-25" ], "conceptTags": [ "032501-032901", "record-id", "写作-p1", "口语-p1", "口语-p2", "彦江", "写作", "口语" ] }, "memory:memory/2026-05-14.md:64:93": { "key": "memory:memory/2026-05-14.md:64:93", "path": "memory/2026-05-14.md", "startLine": 64, "endLine": 93, "source": "memory", "snippet": "| 10 | P5 | recvjuiypW7mZY | 补审校结果(之前漏写) | | 11 | P4 | recvjufM76frUP | 缺second题组→人工确认豁免 | | - | P7 | recviZIWmT91yS | ⏭️ 人工确认跳过 | ### 最终状态 - ✅ 通过 48条 | ⏭️ 跳过 2条 | 🔴 0条 - 全部有内容的记录审校通过 ## [刘彦江] 写作+口语题目生产(2026-05-14 12:10) ### 生产内容(6条) | # | 表 | QSID | record_id | 题型 | first | second | |---|-----|------|-----------|------|-------|--------| | 1 | 写作-P1-邮件回复 | 021801 | recvjz5GeTe9aB | writing_email | 6句排序 | — | | 2 | 写作-P1-邮件回复 | 021901 | recvjz5GE2LKi9 | writing_email | 7句排序 | — | | 3 | 写作-P1-邮件回复 | 022001 | recvjz5H3s5k8y | writing_email | 6句排序 | — | | 4 | 口语-P2-话题讨论 | 021801 | recvjz5Hs8gpCJ | speaking_topic | 5题 | 5题 | | 5 | 口语-P1-日常回答 | 021901 | recvjz5HSdc0nZ | speaking_qa | 4题 | 4题", "recallCount": 7, "dailyCount": 0, "groundedCount": 0, "totalScore": 7, "maxScore": 1, "firstRecalledAt": "2026-05-18T11:35:06.740Z", "lastRecalledAt": "2026-05-26T01:58:13.120Z", "queryHashes": [ "2a58080272be", "e3188fdd52d6", "8ccf25e60418", "f76487d76697", "e8e31d8a03aa", "d8cc1fcace47", "ab90b7e9cde8" ], "recallDays": [ "2026-05-18", "2026-05-19", "2026-05-21", "2026-05-25", "2026-05-26" ], "conceptTags": [ "record-id", "写作-p1-邮件回复", "writing-email", "口语-p2-话题讨论", "speaking-topic", "口语-p1-日常回答", "speaking-qa", "recvjuiypw7mzy" ] }, "memory:memory/2026-05-14.md:138:165": { "key": "memory:memory/2026-05-14.md:138:165", "path": "memory/2026-05-14.md", "startLine": 138, "endLine": 165, "source": "memory", "snippet": "| 10 | 口语-P2 | 032801 | recvjzWRISLiD9 | 话题讨论 | 挑战与习惯管理 | C | ### 落款多样化 - Yours truly, Sam / Warm regards, Lucy / Kind regards, Emma / Gratefully, Tom / With love, Jessica ### 图片描述(口语-P2) - 032601: 梦想与未来(仰望星空、选择困难、职业海报、老师写\"梦想\") - 032801: 挑战与习惯(作业压力、游戏打到深夜、考试不及格、图书馆讨论) ### 写作表字段名 - 写作-P1 字段为\"题目1\"(非\"题目1 完整配置\"),口语-P1 使用\"题目1热词\"/\"题目2热词\" ## [刘彦江] 口语-P1 explanation 全量补充(2026-05-14 16:01) ### 背景 口语-P1-日常回答表(tblRGv7k4WH58Jgq)共39条记录,其中23条历史记录的171道题目 explanation 字段为空。 ### 补齐结果 - 更新记录:23条 → 全部写回成功 - 生成 explanation:171题 - 最终验证:258题全通过(0空、0偏短) - 新增3条(032501/032701/032901)在前序批次中已含完整 explanation,本次未改动 ### 生成规则 按 ability 标签分类匹配模板生成中文解析: - 基础信息表达|个人信息问答 → 细分:年龄/姓名/家庭/外貌/物品位置 - 表达喜好与理由 → 喜好+because原因引导", "recallCount": 4, "dailyCount": 0, "groundedCount": 0, "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-05-18T11:35:06.740Z", "lastRecalledAt": "2026-05-21T02:47:43.415Z", "queryHashes": [ "2a58080272be", "e3188fdd52d6", "8ccf25e60418", "f76487d76697" ], "recallDays": [ "2026-05-18", "2026-05-19", "2026-05-21" ], "conceptTags": [ "口语-p2", "写作-p1", "口语-p1", "口语-p1-日常回答表", "032501/032701/032901", "年龄/姓名/家庭/外貌/物品位置", "口语", "recvjzwrislid9" ] }, "memory:memory/2026-05-13.md:1:29": { "key": "memory:memory/2026-05-13.md:1:29", "path": "memory/2026-05-13.md", "startLine": 1, "endLine": 29, "source": "memory", "snippet": "## [刘彦江] 单元挑战口语写作内容生产(2026-05-13 21:40) ### 生产范围(10条记录,全部单题组,全部回填验证通过 ✅) | ID | 写作-P1 | 口语-P1 | 写作-P2 | 口语-P2 | 状态 | |----|---------|---------|---------|---------|------| | 011301 | ✅ 邮件回复 | ✅ 日常回答 | - | - | 全部通过 | | 011401 | ✅ 邮件回复 | ✅ 日常回答 | - | - | 全部通过 | | 011501 | ✅ 邮件回复 | ✅ 日常回答 | - | - | 全部通过 | | 011701 | ✅ 邮件回复 | ✅ 日常回答 | - | - | 全部通过 | | 011601 | - | - | ✅ 看图写作 | ✅ 话题讨论 | 全部通过 | ### 题型结构总结 **写作-P1 (writing_email)**: - 6句段落排序(含3句知识点作为范文核心句) - 能力标签:短消息写作|邮件/便条, 衔接与连贯|连词使用 - 场景:火灾求助/宠物照顾/惊喜派对/故事分享 **口语-P1 (speaking_qa)**: - 4个引导问题,每问引导1个知识点句型 - 能力标签:基础信息表达|个人信息问答, 表达喜好与理由, 互动应答|问答交流 - 问题设计引导关键词:外貌描述/主动帮忙/耐心等待/购物清单 **写作-P2 (writing_picWrite)**: - 6句故事排序(含3句知识点作为故事核心句) - 能力标签:叙述故", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-18T11:35:06.740Z", "lastRecalledAt": "2026-05-25T01:45:24.016Z", "queryHashes": [ "2a58080272be", "e3188fdd52d6", "8ccf25e60418", "f76487d76697", "e8e31d8a03aa" ], "recallDays": [ "2026-05-18", "2026-05-19", "2026-05-21", "2026-05-25" ], "conceptTags": [ "写作-p1", "口语-p1", "写作-p2", "口语-p2", "writing-email", "邮件/便条", "火灾求助/宠物照顾/惊喜派对/故事分享", "speaking-qa" ] }, "memory:memory/2026-05-18.md:702:726": { "key": "memory:memory/2026-05-18.md:702:726", "path": "memory/2026-05-18.md", "startLine": 702, "endLine": 726, "source": "memory", "snippet": "- 颜色题: \"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:5", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-19T03:08:27.099Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "34bf2e5fbdee", "3f9471df9e50", "19f5f93f3465", "9018e8896dcd", "113e8be33943" ], "recallDays": [ "2026-05-19", "2026-06-04", "2026-06-10" ], "conceptTags": [ "00-10/00-11/00-09", "口语-p4表无", "词库仅160词/声称980词", "t-shirt", "l1-s2-u17-l3", "颜色", "what", "colour" ] }, "memory:memory/2026-05-18.md:672:707": { "key": "memory:memory/2026-05-18.md:672:707", "path": "memory/2026-05-18.md", "startLine": 672, "endLine": 707, "source": "memory", "snippet": "- `/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图(白底中央展", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-19T03:08:27.099Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "34bf2e5fbdee", "3f9471df9e50", "19f5f93f3465", "9018e8896dcd", "113e8be33943" ], "recallDays": [ "2026-05-19", "2026-06-04", "2026-06-10" ], "conceptTags": [ "l1-s2-u18-l5", "语法/拼写硬错误", "dragon/loong", "口语-p4-看图识物", "record-id", "口语-p4", "speaking-pic-recognize", "tmp" ] }, "memory:memory/2026-05-07.md:337:356": { "key": "memory:memory/2026-05-07.md:337:356", "path": "memory/2026-05-07.md", "startLine": 337, "endLine": 356, "source": "memory", "snippet": "| 对话挖空 | 1213314 | 画面左右各半:左边猴子站草地上生气 + 右边猴子在树林中开心 | | 对话朗读 | 1213315 | 画面左右各半:左边蜥蜴站草地上生气 + 右边蜥蜴在沙子里开心 | | 对话朗读 | 1213316 | 画面左右各半:左边斑马站沙子上生气 + 右边斑马在草地上开心 | | 对话朗读 | 1213317 | 河马/熊/猴子/蜥蜴/山羊/鸭子都很高兴的合照 | --- ## 经验教训(跨会话通用) ### replace_range 使用规范 - **必须精确定位单个 `` 标签**,不能用跨多行的范围定位 - **定位字符串应包含行ID标记**(如 `对话朗读1213401`)以确保唯一性 - **每次替换前先 fetch 确认当前文档结构**,避免基于缓存数据操作 - **替换后立即验证**表格结构完整性(行数、各列是否对齐) - 如果意外损坏表格,可用缓存的原始 fetch 数据重建 ### 刘彦江 — writing_pic_qa 两套题拼接合并 - **时间:** 16:08 ~ 16:30 - **需求:** 将 020102(I am...)和 020103(I am ready / Thank you)两套题合并为一个 `{first:..., second:...}` JSON,统一 questionSetID=0000001 - **状态:** ✅ 已完成 - **核心考点分析(用户强调):** 需分析每个句型的核心考点(孩子最容易犯错的地方),挖空对准核心考点", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-19T03:08:27.099Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "34bf2e5fbdee", "4010d52c12f3", "113e8be33943" ], "recallDays": [ "2026-05-19", "2026-05-26", "2026-06-10" ], "conceptTags": [ "河马/熊/猴子/蜥蜴/山羊/鸭子都很高兴的合照", "replace-range", "lark-td", "writing-pic-qa", "对话", "挖空", "画面", "左右" ] }, "memory:memory/2026-05-18.md:793:810": { "key": "memory:memory/2026-05-18.md:793:810", "path": "memory/2026-05-18.md", "startLine": 793, "endLine": 810, "source": "memory", "snippet": "- 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`", "recallCount": 6, "dailyCount": 0, "groundedCount": 0, "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-20T06:31:39.981Z", "lastRecalledAt": "2026-06-01T10:44:19.887Z", "queryHashes": [ "688d2dceca9d", "d05a0257d44b", "e637236fe74b", "14d903a64d04", "240a6a5dca41", "229e5d3943bb" ], "recallDays": [ "2026-05-20", "2026-05-21", "2026-05-25", "2026-05-26", "2026-06-01" ], "conceptTags": [ "can/can", "b列/c列", "互动/核心互动-口语", "24/24", "scripts/write-l5-g-configs.py", "script", "sheet", "wmqvyv" ] }, "memory:memory/2026-05-08.md:18:38": { "key": "memory:memory/2026-05-08.md:18:38", "path": "memory/2026-05-08.md", "startLine": 18, "endLine": 38, "source": "memory", "snippet": "4. question与questionDesc人称必须一致(统一改为 What does [角色] say? → 第一人称直接引语) - **JSON wrapper格式:** `{\"first\": 题组1完整JSON, \"second\": 题组2完整JSON}` - **输出文件:** `output/writing_pic_qa_000001_sample.json` ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — writing_pic_qa 生产流程标准化 + SKILL 重写 - **时间:** 09:34 ~ 09:46 - **需求:** 将完整生产流程补充到 SKILL.md,强化核心规则 - **状态:** ✅ 已完成 **核心规则强化(用户明确):** 1. **挖空 = 考察句型结构本身**,不是复述图片信息(如 Thank you for → 挖 for 而非 you) 2. **考察多样化**:同句型覆盖多种搭配(for + 名词 / for + 动名词、be + 身份 / be + 状态词等) 3. **语言难度匹配欧标 A1-A2**(Starters/Movers) 4. **题干不千篇一律**:question 随语境微调(如 \"What does she say about herself?\" / \"Where does she say she is going?\" / \"What does she say to her friend?\") **图片资源新规:** - 每个题组共享一", "recallCount": 10, "dailyCount": 0, "groundedCount": 0, "totalScore": 10, "maxScore": 1, "firstRecalledAt": "2026-05-20T06:31:39.981Z", "lastRecalledAt": "2026-06-16T04:20:48.039Z", "queryHashes": [ "688d2dceca9d", "e637236fe74b", "14d903a64d04", "240a6a5dca41", "a455c766229c", "ff8454ebcc30", "9c790f74fc5b", "71e44ea68b09", "9018e8896dcd", "db84c41f4b84" ], "recallDays": [ "2026-05-20", "2026-05-25", "2026-05-26", "2026-05-28", "2026-06-10", "2026-06-16" ], "conceptTags": [ "writing-pic-qa", "skill.md", "a1-a2", "starters/movers", "question", "questiondesc", "人称", "必须" ] }, "memory:memory/2026-05-18.md:440:486": { "key": "memory:memory/2026-05-18.md:440:486", "path": "memory/2026-05-18.md", "startLine": 440, "endLine": 486, "source": "memory", "snippet": "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 需输出给图片生成人员。 #", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-20T06:31:39.981Z", "lastRecalledAt": "2026-06-17T02:46:36.014Z", "queryHashes": [ "688d2dceca9d", "e637236fe74b", "d8cc1fcace47", "240a6a5dca41", "40d2770a9103" ], "recallDays": [ "2026-05-20", "2026-05-25", "2026-05-26", "2026-06-17" ], "conceptTags": [ "口语-p1-日常回答", "全空/偏向听力", "3/3", "听力-p1", "听力-p1-图片选择题", "121301/121401/121501", "qsid", "口语" ] }, "memory:memory/2026-05-18.md:583:633": { "key": "memory:memory/2026-05-18.md:583:633", "path": "memory/2026-05-18.md", "startLine": 583, "endLine": 633, "source": "memory", "snippet": "| 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 图片选择题 生产+回填+审校([刘彦江]) ### 范围 QS", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-20T06:31:39.981Z", "lastRecalledAt": "2026-06-17T02:47:04.085Z", "queryHashes": [ "688d2dceca9d", "e637236fe74b", "240a6a5dca41", "40d2770a9103", "71edaa30f808" ], "recallDays": [ "2026-05-20", "2026-05-25", "2026-05-26", "2026-06-17" ], "conceptTags": [ "口语-p1", "口语-p1-日常回答", "全空/偏向听力", "3/3", "听力-p1", "qsid", "答案", "分布" ] }, "memory:memory/2026-05-12.md:108:126": { "key": "memory:memory/2026-05-12.md:108:126", "path": "memory/2026-05-12.md", "startLine": 108, "endLine": 126, "source": "memory", "snippet": "- **方法:** `scripts/audit_l1_config.py` 自动化扫描 → 误报排除 → 分类汇总 → 逐条审校回填 - **脚本修复(过程中):** 1. sentenceStructureSort 单词对比大小写误报 → 添加 normalize(首字母大写 + 去标点) 2. ID 末尾空格敏感 → strip 比较 3. 句子朗读/跟读题误报 options/answer 缺失 → 跳过这两种题型 #### 审校结果汇总(初版) - **🔴 系统性问题(40/40,100%):** classificationInfo JSON 内 cambridgeLevel=\"A1\" 与 cefrLevel=\"YLE\" 值互换 - **🟡 具体错误(17/40):** - sentenceMeaningMeaning JSON 解析失败 × 10:1213004, 1213006, 1213010, 1214008, 1215005, 1216001, 1216004, 1216007, 1216008, 1216010 - ID 字段末尾空格 × 3:1213001, 1215001, 1216001 - 看图选择题有CN无JSON × 3:1213008, 1215010, 1216005 - sentenceStructureSort 语法/格式错误 × 3:1213004(缺逗号clean Otis→clean, Otis), 1213005(bird?连写应拆为bird+?), 1214001(need→needs三单)", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-20T11:03:34.460Z", "lastRecalledAt": "2026-05-21T02:47:59.335Z", "queryHashes": [ "81867276810d", "4b36721edd0f" ], "recallDays": [ "2026-05-20", "2026-05-21" ], "conceptTags": [ "scripts/audit-l1-config.py", "句子朗读/跟读题误报", "options/answer", "40/40", "17/40", "语法/格式错误", "方法", "scripts" ] }, "memory:memory/2026-05-12.md:64:83": { "key": "memory:memory/2026-05-12.md:64:83", "path": "memory/2026-05-12.md", "startLine": 64, "endLine": 83, "source": "memory", "snippet": "3. 句子朗读/跟读题误报 options/answer 缺失 → 跳过这两种题型 #### 审校结果汇总 - **🔴 系统性问题(40/40,100%):** classificationInfo JSON 内 cambridgeLevel=\"A1\" 与 cefrLevel=\"YLE\" 值互换,列字段正确但 JSON 存储写反,疑似模板/formula 级别 bug - **🟡 具体错误(17/40):** - sentenceMeaningMeaning JSON 解析失败 × 10:1213004, 1213006, 1213010, 1214008, 1215005, 1216001, 1216004, 1216007, 1216008, 1216010(后8题含中文引号冲突) - ID 字段末尾空格 × 3:1213001, 1215001, 1216001 - 看图选择题有CN无JSON × 3:1213008, 1215010, 1216005 - sentenceStructureSort 语法/格式错误 × 3:1213004(缺逗号clean Otis→clean, Otis), 1213005(bird?连写应拆为bird+?), 1214001(need→needs三单) - 缺少 pointId 字段 × 1:1213001(sort 题2) - **🟢 仅有系统性问题的 23 条:** 其余 23 条仅 classificationInfo 互换问题,其他题型均通过自动化检查 - **回填:** 全部 40 条审校结果", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-20T11:03:34.460Z", "lastRecalledAt": "2026-05-20T11:03:34.460Z", "queryHashes": [ "81867276810d" ], "recallDays": [ "2026-05-20" ], "conceptTags": [ "句子朗读/跟读题误报", "options/answer", "40/40", "疑似模板/formula", "17/40", "语法/格式错误", "句子", "朗读" ] }, "memory:memory/2026-05-12.md:48:68": { "key": "memory:memory/2026-05-12.md:48:68", "path": "memory/2026-05-12.md", "startLine": 48, "endLine": 68, "source": "memory", "snippet": "- **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(首", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-20T11:03:34.460Z", "lastRecalledAt": "2026-05-22T07:04:01.804Z", "queryHashes": [ "81867276810d", "4b36721edd0f", "d13d58b4704a" ], "recallDays": [ "2026-05-20", "2026-05-21", "2026-05-22" ], "conceptTags": [ "scripts/audit-l1-config.py", "skill.md", "skills/audit-l1-config/skill.md", "1213001-1216010", "13-16", "编码", "规则", "season" ] }, "memory:memory/2026-05-18.md:305:346": { "key": "memory:memory/2026-05-18.md:305:346", "path": "memory/2026-05-18.md", "startLine": 305, "endLine": 346, "source": "memory", "snippet": "## 口语-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, mouth),23个超纲。 业务负责人放行,优先生产,词库后补。 ### 产出 | QSID | Record ID | 词表(first/seco", "recallCount": 7, "dailyCount": 0, "groundedCount": 0, "totalScore": 7, "maxScore": 1, "firstRecalledAt": "2026-05-20T11:03:34.460Z", "lastRecalledAt": "2026-06-17T02:47:04.085Z", "queryHashes": [ "81867276810d", "12653110bb68", "ff0d0637f255", "f525b14a0c5b", "b4c55d54be2f", "40d2770a9103", "71edaa30f808" ], "recallDays": [ "2026-05-20", "2026-05-25", "2026-06-09", "2026-06-15", "2026-06-17" ], "conceptTags": [ "口语-p1", "口语-p1-日常回答", "speaking-qa", "全部补充/替换为口语向标签", "3/3", "听力-p1", "听力-p1-图片选择题", "29个词中仅6个在l1/l2词库" ] }, "memory:memory/2026-05-20.md:55:65": { "key": "memory:memory/2026-05-20.md:55:65", "path": "memory/2026-05-20.md", "startLine": 55, "endLine": 65, "source": "memory", "snippet": "- **结果**:16个组件中 15成功 / 0失败 / 1跳过(看图拼词 1217413 未注册) ### Bug修复:parse_script.py cId提取fallback - **现象**:pipeline 识别到 0 个组件行 - **根因**:本文档的 cId(如 1217408)嵌入在 B 列(配置信息)而非 A 列(类型)。`extract_component_id` 只从类型列提取 cId,找不到就返回 None - **修复**:在 `parse_component_rows` 中新增 fallback — 当 comp_info 为 None 时,从 config_info 列(B列)提取 cId - **修改文件**:`business_production/组件配置/interactive-component-json/scripts/parse_script.py` ### 待处理 - 「看图拼词」类型需注册到 `match_component.py` 后才能生成 JSON", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-21T02:47:59.335Z", "lastRecalledAt": "2026-06-10T03:52:28.180Z", "queryHashes": [ "09344f87b646", "92e62f6b8e3a", "0924e1755b1c" ], "recallDays": [ "2026-05-21", "2026-05-26", "2026-06-10" ], "conceptTags": [ "parse-script.py", "extract-component-id", "parse-component-rows", "comp-info", "config-info", "match-component.py", "结果", "成功" ] }, "memory:memory/2026-05-12.md:238:264": { "key": "memory:memory/2026-05-12.md:238:264", "path": "memory/2026-05-12.md", "startLine": 238, "endLine": 264, "source": "memory", "snippet": "- 写作互动和邮件组句 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 个中互动标记不明显 - 用户让我", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-21T02:47:59.335Z", "lastRecalledAt": "2026-05-26T06:08:47.532Z", "queryHashes": [ "09344f87b646", "92e62f6b8e3a" ], "recallDays": [ "2026-05-21", "2026-05-26" ], "conceptTags": [ "bitable-token", "15/15", "27/27", "core-content-json-standard", "component-registry", "json-structure-guide", "写作", "互动" ] }, "memory:memory/2026-05-17.md:38:47": { "key": "memory:memory/2026-05-17.md:38:47", "path": "memory/2026-05-17.md", "startLine": 38, "endLine": 47, "source": "memory", "snippet": "- **更新**:`~/.openclaw/workspace-xiaoyan/skills/task-router/component_configs.yaml` — dialogue_selective_reading 配置从占位格式更新为实际格式 ### 关键技术点 - **嵌入 Sheet 写入**:使用 feishu-embedded-sheet 技能,通过 curl 调用 `sheets/v2/spreadsheets/{token}/values` 批量 PUT - **多行写入验证**:写入后按行回读确认每行 H 列内容完整性 - **Shell 转义**:component 内容含多行文本+特殊字符时,用 Python subprocess 传 curl 避免 shell 变量展开破坏数据 ### 未处理行 - R181 信息拼词、R188 信息组句 — 不属于 6 类对话组件,需单独处理", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-21T02:47:59.335Z", "lastRecalledAt": "2026-05-26T06:08:47.532Z", "queryHashes": [ "09344f87b646", "92e62f6b8e3a" ], "recallDays": [ "2026-05-21", "2026-05-26" ], "conceptTags": [ "router", "dialogue-selective-reading", "feishu-embedded-sheet", "sheets/v2/spreadsheets", "更新", "openclaw", "xiaoyan", "skills" ] }, "memory:memory/2026-05-20.md:40:59": { "key": "memory:memory/2026-05-20.md:40:59", "path": "memory/2026-05-20.md", "startLine": 40, "endLine": 59, "source": "memory", "snippet": "3. **后置对话禁止重复下行台词**:如下行是 User 的后续台词,后置对话不能复制,统一用「无」 4. **组件配置权威文档**:`WD6LwyWNtip8M8k0RWxcbJDcnxe`(飞书知识库 - 教研生产配置、修改规范) ## [李应瑛] 组件配置正确流程纠正 - **纠正**:不应手动往 wiki 文档 C 列写文本格式配置,正确做法是用 pipeline 脚本 - **正确流程**: ``` cd /root/.openclaw/workspace-xiaoyan/business_production/组件配置/interactive-component-json && \\ python3 scripts/pipeline.py \"\" --send-to gc9f72ff ``` - **Pipeline 6 步**:读取飞书文档 → 解析剧本sheet → 匹配组件类型 → LLM生成jsonData/kpInfo → 写入本地SQLite → 生成HTML报告发送给童瑶 - **Skill 目录**:`business_production/组件配置/interactive-component-json/` ## [李应瑛] L1-S2-U17-L4 门关啦 — Pipeline 组件配置生产 - **文档**: SAadwW8YaiObl8k4op3c6vs8nqb | **Spreadsheet**: It4AsFkC7hXHc4te9yUcyLHRnOe - **结果**:16个组件中 15成功 / 0失败", "recallCount": 4, "dailyCount": 0, "groundedCount": 0, "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-05-21T02:47:59.335Z", "lastRecalledAt": "2026-06-10T03:52:28.180Z", "queryHashes": [ "09344f87b646", "92e62f6b8e3a", "d70b515b4a03", "0924e1755b1c" ], "recallDays": [ "2026-05-21", "2026-05-26", "2026-06-02", "2026-06-10" ], "conceptTags": [ "scripts/pipeline.py", "wiki-url", "send-to", "llm生成jsondata/kpinfo", "l1-s2-u17-l4", "对话", "禁止", "重复" ] }, "memory:memory/2026-05-12.md:222:242": { "key": "memory:memory/2026-05-12.md:222:242", "path": "memory/2026-05-12.md", "startLine": 222, "endLine": 242, "source": "memory", "snippet": "- 批量更新 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-com", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-21T02:47:59.335Z", "lastRecalledAt": "2026-05-26T06:08:47.532Z", "queryHashes": [ "09344f87b646", "92e62f6b8e3a" ], "recallDays": [ "2026-05-21", "2026-05-26" ], "conceptTags": [ "201c/d", "textinfo.textlist", "skills/interactive-com", "批量", "更新", "完整", "提取", "逐字" ] }, "memory:memory/2026-05-07.md:71:88": { "key": "memory:memory/2026-05-07.md:71:88", "path": "memory/2026-05-07.md", "startLine": 71, "endLine": 88, "source": "memory", "snippet": "- Sheet 1:255个单词完整清单(序号+单词+中文释义) - Sheet 2:全部统计指标汇总 - **用户 user_id:** `58fd6864`(租户级) - **发送消息时踩坑记录:** ou_xxx 是 open_id 非 user_id,Bot 缺少 contact:user.id:readonly 权限,最终通过 lark-cli 其他接口获取到 user_id = 58fd6864 - **备注:** 李应瑛不在负责人配置中,不在完整权限用户列表中。当前请求属于教研内容分析,已先接单处理。 # 2026-05-07 工作日志 ## 会话记录 ### 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e) — 单词表三轮对比(已完结) - **时间:** 10:39 ~ 11:24 - **需求:** 对比三份单词表,找出\"表1有但表2和表3都没有\"的单词。 - **状态:** ✅ 已完成,结果已交付用户,最终结果 255 个单词,经多次验证(包括用户重新发送文件后重算)结果一致。 - **文件:** - 表1:.doc 文件(分类主题单词表,14个大类,970个单词) - 表2:.xlsx 文件(LV2词表,1,329个单词,含「LV2-单词」「LV2上单词占用情况」「LV2下单词占用情况」「LV2S3」四个sheet) - 表3:.xlsx 文件(L1词表,845个单词,含「单词表-LV1(上)」「单词表-LV1(下)」「单词表-备用」三个sheet合并去重) - **对比过程(共四轮验证):**", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-21T07:31:52.322Z", "lastRecalledAt": "2026-06-17T02:17:21.800Z", "queryHashes": [ "dca4eb1f24b7", "fcca27e77e74", "84038f5c3181", "5f16a7426a41", "7c761b49b948" ], "recallDays": [ "2026-05-21", "2026-06-09", "2026-06-17" ], "conceptTags": [ "user-id", "ou-xxx", "open-id", "user.id", "lark-cli", "lv2-单词", "单词表-lv1", "单词表-备用" ] }, "memory:memory/2026-05-20.md:1:31": { "key": "memory:memory/2026-05-20.md:1:31", "path": "memory/2026-05-20.md", "startLine": 1, "endLine": 31, "source": "memory", "snippet": "# 2026-05-20 工作日志 ## [童瑶] L1-S2-U17-L2 迟到的包裹 — 英文台词润色 - 134行对话台词全部润色完成,写入H列 - S2标准:句长≤8词、英式拼写、口语化、知识点保留 - 详情见 `business_production/英文台词/memory/2026-05-20.md` ## [童瑶] L1-S2-U17-L1 摩托怪客 — 组件配置JSON - 16个互动组件,14个成功生成JSON,2个跳过 - 跳过:图片无序多选(注册表无匹配)、阅读理解(核心互动未注册) - HTML报告已通过飞书Bot发送给童瑶 ## [童瑶] L1-S2-U17-L4 捉迷藏 — 组件生产(第111行起) - **文档**: SAadwW8YaiObl8k4op3c6vs8nqb | **Sheet**: wMQVyV | **Spreadsheet**: It4AsFkC7hXHc4te9yUcyLHRnOe - 从第111行起识别9个互动组件,全部完成F列回填,最终验证通过 - 最终组件行及对应关系: | 行号 | 组件类型 | 组件ID | |------|---------|--------| | 111 | 对话选择-配图 | 1217408 | | 119 | 对话选择-配图 | 1217409 | | 127 | 对话挖空-配图 | 1217410 | | 130 | 对话组句-配图 | 1217411 | | 141 | 对话组句-配图 | 1217412 | | 150 | 看图拼词 | 1217413 | | 166 | 对话", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-21T07:31:52.322Z", "lastRecalledAt": "2026-05-29T02:33:30.526Z", "queryHashes": [ "03b71fab8fb9", "62070213f719", "4aa0ef719160" ], "recallDays": [ "2026-05-21", "2026-05-27", "2026-05-29" ], "conceptTags": [ "l1-s2-u17-l2", "l1-s2-u17-l1", "l1-s2-u17-l4", "对话选择-配图", "对话挖空-配图", "对话组句-配图", "工作", "日志" ] }, "memory:memory/2026-05-12.md:122:138": { "key": "memory:memory/2026-05-12.md:122:138", "path": "memory/2026-05-12.md", "startLine": 122, "endLine": 138, "source": "memory", "snippet": "- **🟢 仅有系统性问题的 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(只修格式,不修内容)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-22T07:04:01.804Z", "lastRecalledAt": "2026-05-22T07:04:01.804Z", "queryHashes": [ "d13d58b4704a" ], "recallDays": [ "2026-05-22" ], "conceptTags": [ "解析与题目/答案对应性检查", "json.dumps", "系统", "问题", "回填", "全部", "结果", "bitable" ] }, "memory:memory/2026-05-08.md:51:73": { "key": "memory:memory/2026-05-08.md:51:73", "path": "memory/2026-05-08.md", "startLine": 51, "endLine": 73, "source": "memory", "snippet": "- **修正:** 用户给出中文样例格式,要求图片描述从英文 prompt 改为纯中文结构化列表 - **新格式:** 编号 `1.` / `2.` 自上而下,每段含 `风格:` / `场景:` / `角色特征 - 动作 ;` - **无 JSON 包裹**,纯文本写入 bitable `图片描述` 列 - **已同步更新**:SKILL.md 4.2 节、bitable `recviZlAxxXlAb` 的图片描述字段 ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — writing_pic_qa 批量样题生产(6 Unit) - **时间:** 10:10 ~ 10:34 - **需求:** 一次生产 6 套 writing_pic_qa A级样题,全部写入 bitable - **状态:** ✅ 已完成(6套/24题,全部回读验证通过) **题目清单:** | ID | 题组1 句型 | 题组2 句型 | record_id | |----|-----------|-----------|-----------| | 010101 | Let's… / I'm happy to… | We will… / I will try my best. | recviZwiQUsgAD | | 010201 | I'm sorry for… / I feel nervous about… | What do you think about…? / Let's try… | recviZwjjFyBRi | | 010301 |", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T01:44:48.649Z", "lastRecalledAt": "2026-05-25T01:44:48.649Z", "queryHashes": [ "37d5e066d57f" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "skill.md", "4.2", "writing-pic-qa", "6套/24题", "record-id", "修正", "用户", "中文" ] }, "memory:memory/2026-05-12.md:258:281": { "key": "memory:memory/2026-05-12.md:258:281", "path": "memory/2026-05-12.md", "startLine": 258, "endLine": 281, "source": "memory", "snippet": "- 需要重新拉取文档,仔细识别所有互动标记 - 文档位于 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.", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T01:44:48.649Z", "lastRecalledAt": "2026-05-25T01:44:48.649Z", "queryHashes": [ "37d5e066d57f" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "space-id", "bitable-token", "mid-dialog-repeat", "mid-sentence-dialogue", "mid-vocab-instruction", "core-listening-drag", "需要", "重新" ] }, "memory:memory/2026-05-14.md:162:188": { "key": "memory:memory/2026-05-14.md:162:188", "path": "memory/2026-05-14.md", "startLine": 162, "endLine": 188, "source": "memory", "snippet": "按 ability 标签分类匹配模板生成中文解析: - 基础信息表达|个人信息问答 → 细分:年龄/姓名/家庭/外貌/物品位置 - 表达喜好与理由 → 喜好+because原因引导 - 互动应答|问答交流 → 场景化(感谢/道歉/邀请/请求/规则) - 信息交换|双向问答 → 饮食/计划类交流 - 过去经历描述|Past Activities → 过去时态描述引导 ### 脚本 - `scripts/fill_speaking_expl.py` — 读取全表 → 匹配能力标签 → 生成→ PUT写回 ## [刘彦江] 单元挑战写作-P1 审校与修复(2026-05-14 17:00) ### 审校范围 写作-P1-邮件回复表(tblDizCeLgkKPFd3) ### 审校结果 - 总记录:17条 - ✅ 通过:9条 | ✅ 已修复:4条 | ✅ 通过(C级):2条 | ⚠️ 占位数据:1条 | (空记录:1条) ### 修复明细 | QSID | record_id | 修复前 | 修复后 | |------|-----------|--------|--------| | 032701 | recvjzXkYnsQ8r | answerSet=[], ability=[], expl=\"\" | answerSet=[0..7], ability=写作+衔接+描述, expl=完整 | | 032901 | recvjzXm5yEXBY | answerSet=[], ability=[], expl=\"\" | answerSet=[0..7], ability=写", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T01:45:24.016Z", "lastRecalledAt": "2026-05-25T01:45:24.016Z", "queryHashes": [ "e8e31d8a03aa" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "年龄/姓名/家庭/外貌/物品位置", "感谢/道歉/邀请/请求/规则", "饮食/计划类交流", "scripts/fill-speaking-expl.py", "单元挑战写作-p1", "写作-p1-邮件回复表", "record-id", "ability" ] }, "memory:memory/2026-05-18.md:23:49": { "key": "memory:memory/2026-05-18.md:23:49", "path": "memory/2026-05-18.md", "startLine": 23, "endLine": 49, "source": "memory", "snippet": "- 缺失列:写作-P2(tblSAwlMumKoyjws)、口语-P4(tblsD2dxaRpLmkXD)无「审校结果」列 ### 经验 - 写作-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 小研审", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T04:13:09.891Z", "lastRecalledAt": "2026-05-25T04:13:09.891Z", "queryHashes": [ "dd04402cc3a8" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "写作-p2", "口语-p4", "写作-p3", "听力-p1", "听力-p2", "口语-p1", "032701/032901", "口语-p2" ] }, "memory:memory/2026-05-18.md:542:570": { "key": "memory:memory/2026-05-18.md:542:570", "path": "memory/2026-05-18.md", "startLine": 542, "endLine": 570, "source": "memory", "snippet": "- 审核范围: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条记录 - 缺失列:写作-P2(tblSAwlMumKoyjws)、口语-P4(tblsD2dxaRpLmkXD)无「审校结果」列 ### 经验 - 写作-P3 解析在 questionList 嵌套层级,初审误判为空,复查后确认含中文 - bitable curl 写回嵌套JSON时,Python subprocess构造完整body比shell变量展开安全 - 听力-P1 000001 虽有5条first+5条second,但确有题目内容,不是纯占位,按实际内容生成了解析 --- ## P4 短对话选择题批量改写([刘彦江]) ### 背景 短对话选择题用户只能听音频,无人名标", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T04:13:09.891Z", "lastRecalledAt": "2026-05-25T04:13:09.891Z", "queryHashes": [ "dd04402cc3a8" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "听力-p2", "口语-p1", "032701/032901", "口语-p2", "听力-p1", "听力-p4", "021701/022101/032501/032901", "共写作-p3复查后实际ok" ] }, "memory:memory/2026-05-18.md:653:680": { "key": "memory:memory/2026-05-18.md:653:680", "path": "memory/2026-05-18.md", "startLine": 653, "endLine": 680, "source": "memory", "snippet": "{\"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,", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T04:13:09.891Z", "lastRecalledAt": "2026-05-25T04:13:09.891Z", "queryHashes": [ "dd04402cc3a8" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "听力-p1/p2/p3/p4/p7", "听力-p5", "写作-p1/p2/p3", "写作-p1", "邮件/便条", "写作-p2", "写作-p3", "情绪/态度理解" ] }, "memory:memory/2026-05-18.md:479:508": { "key": "memory:memory/2026-05-18.md:479:508", "path": "memory/2026-05-18.md", "startLine": 479, "endLine": 508, "source": "memory", "snippet": "直接输出 `[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 ### 映射结果(修正后)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T08:47:02.076Z", "lastRecalledAt": "2026-05-25T08:47:02.076Z", "queryHashes": [ "d8cc1fcace47" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "1-a-选项图彩图", "json格式被当标签/链接处理", "题型-能力标签映射", "2026-05-13更新", "听力-p1/p2/p3/p4/p7", "听力-p5", "写作-p1/p2/p3", "直接" ] }, "memory:memory/2026-05-18.md:620:663": { "key": "memory:memory/2026-05-18.md:620:663", "path": "memory/2026-05-18.md", "startLine": 620, "endLine": 663, "source": "memory", "snippet": "| 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", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T08:47:02.076Z", "lastRecalledAt": "2026-05-25T08:47:02.076Z", "queryHashes": [ "d8cc1fcace47" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "1-a-选项图彩图", "题型-能力标签映射", "2026-05-13更新", "存在两种不同格式/位置", "听力-p1/p2", "qsid", "record", "答案" ] }, "memory:memory/2026-05-07.md:263:280": { "key": "memory:memory/2026-05-07.md:263:280", "path": "memory/2026-05-07.md", "startLine": 263, "endLine": 280, "source": "memory", "snippet": "- **操作:** 用户多次发送新版表1/表2,结果在246~442之间波动,最终确认需使用正确的文件(分类主题词表 vs 考试大纲词表不同) ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 写作看图回答题 \"I am... / I am from...\" 样题生产 - **时间:** 15:38 ~ 15:52 - **需求:** 使用知识点 \"I am... / I am from...\" 生产一套写作看图回答题(writing_pic_qa) - **状态:** ✅ 已完成,用户确认 - **题型级别:** L2(因L1词库缺少所有代词/be动词/介词/国家名) - **难度:** A级,4小题 - **核心原则(用户明确):** 1. 挖空必须是考察知识点本身的单词(am/from/student),不是手写姓名/国名等附带信息 2. 只能为1个单词挖空 3. 正确模式:`I (2) Anna.` → 挖空am,数字标记字母数 4. 图片提供语境线索,学生填写核心知识点词 - **输出文件:** `output/writing_pic_qa_I_am_from_020102.json` - **关键教训:** writing_pic_qa 核心考察知识点词本身(am/from),而非题干已知信息;挖空字母数标记必须与答案单词字母数一致 - **词库缺口发现:** L1和L2词库均缺失人称代词、be动词、介词、国家名等基础功能词 ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5c", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T08:53:31.758Z", "lastRecalledAt": "2026-05-25T08:53:31.758Z", "queryHashes": [ "12653110bb68" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "用户多次发送新版表1/表2", "writing-pic-qa", "因l1词库缺少所有代词/be动词/介词/国家名", "am/from/student", "不是手写姓名/国名等附带信息", "am/from", "ou-5af74c1fb96042e33cc0f16b5c", "操作" ] }, "memory:memory/2026-05-07.md:230:253": { "key": "memory:memory/2026-05-07.md:230:253", "path": "memory/2026-05-07.md", "startLine": 230, "endLine": 253, "source": "memory", "snippet": "- **需求:** 使用知识点 \"I am ready! / Thank you for...\" 再生产一套 writing_pic_qa - **状态:** ✅ 已完成 - **难度:** A级,4小题,L2级别 - **核心设计:** 延续上一套原则——只挖空知识点核心词,图片提供语境线索 - **输出文件:** `output/writing_pic_qa_ready_thank_020103.json` - **题目清单:** 1. I am (5). → ready(男孩背书包站门口,准备上学) 2. Thank (3) for the gift. → you(女孩接过礼物盒微笑) 3. He is (5) for dinner. → ready(男孩坐餐桌前等开饭) 4. Thank (3) for the help. → you(男孩接书表示感谢) - **设计思路:** 两个知识点各出现2次(reinforcement),变场景不变核心搭配 # 2026-05-07 工作日志 ## 会话记录 ### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — 单元挑战新增3个题型 - **时间:** 11:19 ~ 11:28 - **需求:** 单元挑战新增3个题型:阅读看图回答题(reading_pic_qa)、阅读看图判断题(reading_pic_judge)、写作看图回答题(writing_pic_qa) - **状态:** ✅ 已完成题型规范落地 - **交付内容:** 创建3个题型SKILL.md;更", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T08:53:31.758Z", "lastRecalledAt": "2026-05-25T08:53:31.758Z", "queryHashes": [ "12653110bb68" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "writing-pic-qa", "reading-pic-qa", "reading-pic-judge", "创建3个题型skill.md", "需求", "使用", "知识", "ready" ] }, "memory:memory/2026-05-14.md:108:129": { "key": "memory:memory/2026-05-14.md:108:129", "path": "memory/2026-05-14.md", "startLine": 108, "endLine": 129, "source": "memory", "snippet": "| first | 4 | I eat a sandwich for breakfast. | [0]=A | 显性事实理解|单句信息点抓取 | | first | 5 | This is my red suitcase. | [0]=A | 显性事实理解|单句信息点抓取 | | second | 1 | Look at my new clothes. | [0]=A | 显性细节理解|物品特征辨识 | | second | 2 | My dad works at the airport. | [0]=A | 显性细节理解|数字/时间/地点 | | second | 3 | The pirate has a black eye patch. | [0]=A | 显性事实理解|单句信息点抓取 | | second | 4 | I need my passport to go abroad. | [0]=A | 显性细节理解|物品功能辨识 | | second | 5 | I like eating cheese very much. | [0]=A | 显性细节理解|物品特征辨识 | ### 备注 - 10题答案全部为[0](A选项),由用户给定的听力文本-图片映射决定 - second Q1 \"clothes\"→卫衣 需区分 clothes/shoes/hat 范畴 - `question`字段为P1正确的字段名(非content) - `optionsImage`字段保留None(图片资源由上游管理) - 题目1/题目2文本字段已同步填充听力文本 ## [刘彦江] 写作+", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-25T08:53:31.758Z", "lastRecalledAt": "2026-05-25T08:53:31.758Z", "queryHashes": [ "12653110bb68" ], "recallDays": [ "2026-05-25" ], "conceptTags": [ "数字/时间/地点", "由用户给定的听力文本-图片映射决定", "clothes/shoes/hat", "题目1/题目2文本字段已同步填充听力文本", "first", "eat", "sandwich", "breakfast" ] }, "memory:memory/2026-05-07.md:86:107": { "key": "memory:memory/2026-05-07.md:86:107", "path": "memory/2026-05-07.md", "startLine": 86, "endLine": 107, "source": "memory", "snippet": "- 表2:.xlsx 文件(LV2词表,1,329个单词,含「LV2-单词」「LV2上单词占用情况」「LV2下单词占用情况」「LV2S3」四个sheet) - 表3:.xlsx 文件(L1词表,845个单词,含「单词表-LV1(上)」「单词表-LV1(下)」「单词表-备用」三个sheet合并去重) - **对比过程(共四轮验证):** 1. 第一轮(表1 vs 表2):表1有但表2没有 = 502个 2. 第二轮(结果 vs 表3):排除表3也有后 = 260个 3. 第三轮(用户重发三份文件后重算):最终 = 255个 4. 第四轮(用户单独替换新表3后验证):结果不变,确认 = 255个 - **最终统计:** - 三表共有:230 - 表1 ∩ 表2:492 - 表1 ∩ 表3:448 - 表2 ∩ 表3:427 - 最终:255个 - **关键技术点:** - .doc 文件使用 catdoc 解析(非 libreoffice/antiword) - .xlsx 文件使用 openpyxl 读取,多 sheet 合并去重 - 过滤了缩写词(CD, DVD, TV, Mr, Mrs, Ms 等) - 处理了复数变体映射(geese→goose 等) - 用户 user_id = `58fd6864`(租户级),发送消息时踩坑:ou_xxx 是 open_id 非 user_id - **输出文件:** `/root/.openclaw/workspace-xiaoyan/output/单词对比结果_最终版.x", "recallCount": 5, "dailyCount": 0, "groundedCount": 0, "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-25T09:34:43.114Z", "lastRecalledAt": "2026-06-17T02:17:21.800Z", "queryHashes": [ "4baebc80709c", "c538777b9257", "6bf54cd79bb2", "5f16a7426a41", "7c761b49b948" ], "recallDays": [ "2026-05-25", "2026-06-11", "2026-06-17" ], "conceptTags": [ "lv2-单词", "单词表-lv1", "单词表-备用", "libreoffice/antiword", "user-id", "ou-xxx", "open-id", "xlsx" ] }, "memory:memory/2026-05-26.md:130:156": { "key": "memory:memory/2026-05-26.md:130:156", "path": "memory/2026-05-26.md", "startLine": 130, "endLine": 156, "source": "memory", "snippet": "## 英文台词生产 [童瑶] — L1-S2-U20 全系列 ### L1-S2-U20-L1 冠军计划 - **文档:** `EbkUwEjaticOkHknf0icsQ2Yn4Q` | Sheet `6aqvM2` - 对话 148 行,写入 E 列 ✅ ### L1-S2-U20-L2 发球大战 - **文档:** `BvSyw1vlfiwCr5kjkPmcUYXynZd` | Sheet `wMQVyV` - 对话 135 行,写入 F 列 ✅ ### L1-S2-U20-L3 曲棍球练习赛 - **文档:** `MrsAwcYq2iCy7Tkk3dkclS0mnlg` | Sheet `6aqvM2` - 对话 149 行,28 行修改,写入 F 列 ✅ - 知识点:hockey/interesting/one/try + `have a try`/`One...the other...` ### L1-S2-U20-L4 网球明星 - **文档:** `GT4awLQx9iOfWHk00ZFcHQzbnzT` | Sheet `wMQVyV` - 对话 112 行,26 行修改,写入 F 列 ✅ - 知识点:tennis/tennis racket/bounce/wave + `wave(s) to`/`Hit the ball!` ### L1-S2-U20-L5 足球接力赛 - **文档:** `VEGwwoVdTiFu00koNoOc1MGhnec` | Sheet `AV1gO0` - 对话 137 行,28 行修改,写入 F 列 ✅ - 知识点:", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-26T06:03:09.115Z", "lastRecalledAt": "2026-05-26T06:03:16.405Z", "queryHashes": [ "a455c766229c", "ff8454ebcc30", "9c790f74fc5b" ], "recallDays": [ "2026-05-26" ], "conceptTags": [ "l1-s2-u20", "l1-s2-u20-l1", "l1-s2-u20-l2", "l1-s2-u20-l3", "hockey/interesting/one/try", "l1-s2-u20-l4", "tennis/tennis", "racket/bounce/wave" ] }, "memory:memory/2026-05-26.md:101:139": { "key": "memory:memory/2026-05-26.md:101:139", "path": "memory/2026-05-26.md", "startLine": 101, "endLine": 139, "source": "memory", "snippet": "- 已写入多维表格(写作-P2-看图写作 tblSAwlMumKoyjws)recvjvzPZlNglS - ⚠️ 该文档仅含P1旧题解析,021601未写入文档 ## 写作P1 旧题解析文档回填 [刘彦江] - 文档:https://makee-interactive.feishu.cn/wiki/CS8Ww2XaSiFwhakQenycRU5ZnYf - 16条解析全部转为三步JSON格式,lark-cli v1 replace_range整章节替换 - 021301/021801/022201/022401已随场景更新同步更新文档解析 ## 已写入题目汇总 | 题号 | 表 | record_id | 文档 | |------|-----|-----------|:----:| | 021301 | P1 | recvjvzb | ✅ | | 021401 | P1 | recvjvzLzeri3I | ✅ | | 021601 | P2-picWrite | recvjvzPZlNglS | N/A | | 021801 | P1 | recvjz5GeTe9aB | ✅ | | 022101 | P1 | recvjzbjJpJO0D | ✅ | | 022201 | P1 | recvjzbkvoOgvy | ✅ | | 022401 | P1 | recvjzblXOJ7Fs | ✅ | ## 待确认 - 022001:最终版已出(句子替换+选项打乱),待刘彦江确认 ## 图片审校 [刘彦江] - 阅读材料\"My First Adventure Race\"", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-26T06:03:09.115Z", "lastRecalledAt": "2026-05-26T06:03:16.405Z", "queryHashes": [ "a455c766229c", "ff8454ebcc30", "9c790f74fc5b" ], "recallDays": [ "2026-05-26" ], "conceptTags": [ "写作-p2-看图写作", "lark-cli", "replace-range整章节替换", "record-id", "p2-picwrite", "n/a", "表格", "写作" ] }, "memory:memory/2026-05-21.md:65:75": { "key": "memory:memory/2026-05-21.md:65:75", "path": "memory/2026-05-21.md", "startLine": 65, "endLine": 75, "source": "memory", "snippet": "- **对话选择 vs 对话选读**:前者有对错判断(正确选项标注),后者开放表达(无正确选项,每选项均带反馈) - **对话挖空**:`___` 必需三下划线,选项2-3个,反馈角色非 User - **对话组句**:选项为独立单词/短语,答案填完整正确句,必须有辅助信息 - **看图说话 v2.0**:结构最复杂,包含导览配置(任务标题/背景/描述/知识)+ 对话配置(角色/背景/Q&A/通过规则/示例对话) - **-配图后缀**:资源配置需添加 `图片时机:互动内容\\n互动反馈\\n\\n音频载体:Pioneer Band` #### 写入脚本模式 - G 列写入使用 Python subprocess + curl(避免 shell 转义) - SST = spreadsheet_token, SID = sheet_id(格式 `SST!G{row}:G{row}`) - 写入后必须回读验证内容完整性", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-27T07:13:41.815Z", "lastRecalledAt": "2026-05-27T07:13:49.225Z", "queryHashes": [ "f6d66a16b50f", "cec81ed5e38f", "9954089951e2" ], "recallDays": [ "2026-05-27" ], "conceptTags": [ "选项2-3个", "选项为独立单词/短语", "v2.0", "任务标题/背景/描述/知识", "角色/背景/q", "a/通过规则/示例对话", "spreadsheet-token", "sheet-id" ] }, "memory:memory/2026-05-07.md:41:64": { "key": "memory:memory/2026-05-07.md:41:64", "path": "memory/2026-05-07.md", "startLine": 41, "endLine": 64, "source": "memory", "snippet": "- **备注:** 李应瑛不在负责人配置中,不在完整权限用户列表中。当前请求属于教研内容分析,已先接单处理,后续如有敏感数据查询需求需按权限规则处理。 # 2026-05-07 工作日志 ## 会话记录 ### 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e) — 单词表对比请求(三轮对比) - **时间:** 10:39 ~ 11:18 - **需求:** 对比三份单词表,找出\"表1有但表2和表3都没有\"的单词。 - **状态:** 已完成三轮对比,结果已交付用户。最终版已发送。 - **文件:** - 表1:.doc 文件(分类主题单词表,14个大类,970个单词) - 表2:.xlsx 文件(LV2词表,1,329个单词) - 表3:.xlsx 文件(L1词表,845个单词,含「单词表-LV1(上)」「单词表-LV1(下)」「单词表-备用」三个sheet合并去重) - **三轮对比过程:** 1. **第一轮(表1 vs 表2):** 表1有但表2没有 = 502个 2. **第二轮(结果 vs 表3):** 第一轮结果中表3也有 = 242个,最终表1独有 = 260个 3. **第三轮(用户要求重新发送三份文件后重算):** 最终确认 **表1有但表2表3都没有 = 255个** - **第三轮详细统计:** - 三表共有:230 - 表1 ∩ 表2:492 - 表1 ∩ 表3:448 - 表2 ∩ 表3:427 - 表1有,表2没有:472(其中217个表3也有) - 最终:255", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-27T07:13:41.815Z", "lastRecalledAt": "2026-05-27T07:13:41.815Z", "queryHashes": [ "f6d66a16b50f" ], "recallDays": [ "2026-05-27" ], "conceptTags": [ "单词表-lv1", "单词表-备用", "备注", "不在", "负责", "配置", "完整", "权限" ] }, "memory:memory/2026-05-07.md:151:169": { "key": "memory:memory/2026-05-07.md:151:169", "path": "memory/2026-05-07.md", "startLine": 151, "endLine": 169, "source": "memory", "snippet": "- **需求:** 单元挑战新增3个题型:阅读看图回答题(reading_pic_qa)、阅读看图判断题(reading_pic_judge)、写作看图回答题(writing_pic_qa) - **状态:** ✅ 已完成题型规范落地 - **交付内容:** 创建3个题型SKILL.md;更新 MEMORY.md 全题型阶段归属规则 - **关键决策:** 3个题型均为 L1&L2 共用,通过难度参数区分阶段 ### 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e) — 单词表三表对比(最终完结) - **时间:** 10:39 ~ 11:44 - **需求:** 对比三份单词表,找出\"表1有但表2和表3都没有\"的单词。 - **状态:** ✅ 已完成,用户多次编辑文件后重新对比,最终确认结果 = **246个** - **文件(最终版):** - 表1:.doc(分类主题单词表,14大类,970个单词) - 表2:.xlsx(LV2词表,1,438个单词,含「LV2-单词」「LV2上单词占用情况」「LV2下单词占用情况」「LV2S3」「LV2词表大全」五个sheet) - 表3:.xlsx(L1词表,845个单词,含「单词表-LV1(上)」「单词表-LV1(下)」「单词表-备用」三个sheet合并去重) - **多轮迭代历程:** 1. 初版(旧表2/表3):260 2. 重发三份后重算:255 3. 替换新表3:255(不变) 4. 替换新表2(新增「LV2词表大全」):257 5. **用户编辑文件后要求", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-27T07:13:41.815Z", "lastRecalledAt": "2026-05-27T07:13:41.815Z", "queryHashes": [ "f6d66a16b50f" ], "recallDays": [ "2026-05-27" ], "conceptTags": [ "reading-pic-qa", "reading-pic-judge", "writing-pic-qa", "创建3个题型skill.md", "memory.md", "lv2-单词", "单词表-lv1", "单词表-备用" ] }, "memory:memory/2026-05-18.md:740:770": { "key": "memory:memory/2026-05-18.md:740:770", "path": "memory/2026-05-18.md", "startLine": 740, "endLine": 770, "source": "memory", "snippet": "- **音频来源:** 爷爷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句音频待录制 | ### 互动组件脚本参考路径 - `skills/core-content-json-standard/SKILL.md` — 14种核心题型JSON标准 - `skills/feishu-embedded-sheet/SKILL.md` — 内嵌Sheet读写 - `skills/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: `SAadwW8YaiObl8k", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-27T07:13:57.033Z", "lastRecalledAt": "2026-05-27T07:13:57.033Z", "queryHashes": [ "62070213f719" ], "recallDays": [ "2026-05-27" ], "conceptTags": [ "剧本行160-163", "1217310-option-00", "05.png", "kplistsentence/kplistvocab", "1217对应的句型/单词知识id", "kpinfo.kpid", "grandfather/grandmother/visit", "l1-s2-u17-l4" ] }, "memory:memory/2026-05-18.md:766:797": { "key": "memory:memory/2026-05-18.md:766:797", "path": "memory/2026-05-18.md", "startLine": 766, "endLine": 797, "source": "memory", "snippet": "- 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 values,range 格式注意: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` - Spreads", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-27T07:13:57.033Z", "lastRecalledAt": "2026-05-27T07:13:57.033Z", "queryHashes": [ "62070213f719" ], "recallDays": [ "2026-05-27" ], "conceptTags": [ "1217401-1217416", "open/closed/door/home", "sheet-id不加引号", "16/16", "scripts/write-l4-f-configs.py", "l1-s2-u17-l5", "与l3/l4不同", "script" ] }, "memory:memory/2026-05-21.md:39:56": { "key": "memory:memory/2026-05-21.md:39:56", "path": "memory/2026-05-21.md", "startLine": 39, "endLine": 56, "source": "memory", "snippet": "subprocess.run(['curl', '-X', 'PUT', url, '-H', f'Authorization: Bearer {token}', ...]) ``` - 关键:读取后立即备份原始数据,写完后回读验证完整性 ### 5. 解析生成规则 - 每道题的解析需包含:听力原文引用 → 答案对应 → 关键特征 → 冗余排除/语用推理 - first 和 second 的解析需分别定制,不可复制模板 - 干扰抑制类题目:标注冗余信息类型(位置/情绪/动作/大小等) - 否定纠错类题目:标注否定信号词和身份替换逻辑 - 跨句整合类题目:标注需整合的信息来源和推理路径 ### 6. 剧本内嵌 Sheet 组件配置回填(刘彦江) - 文档:L1-S2-U17-L5 笨蛋坏蛋?(wiki token `U1zEwHZaaie07TkjmOOchurgnIh`) - 内嵌 Sheet `wMQVyV`,剧本表 265 行 × 9 列(A=类型, B=ID, C=配置整理, D=剧情描述, E=角色名, F=英文台词, G=组件配置, H=知识点, I=编剧台词) - 共 17 个互动行:对话朗读-配图(6) / 对话朗读(1) / 对话挖空-配图(1) / 对话挖空(4) / 对话选择-配图(1) / 对话选读(2) / 对话组句-配图(1) / 对话组句(1) / 看图说话(1) #### 组件类型 A 列取值与技能映射(新增类型) | A列类型 | 对应技能 | 备注 | |---------|---------|------|", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-27T07:13:57.033Z", "lastRecalledAt": "2026-05-27T07:13:57.033Z", "queryHashes": [ "62070213f719" ], "recallDays": [ "2026-05-27" ], "conceptTags": [ "备份", "subprocess.run", "冗余排除/语用推理", "位置/情绪/动作/大小等", "l1-s2-u17-l5", "对话朗读-配图", "对话挖空-配图", "对话选择-配图" ] }, "memory:memory/2026-05-28.md:46:62": { "key": "memory:memory/2026-05-28.md:46:62", "path": "memory/2026-05-28.md", "startLine": 46, "endLine": 62, "source": "memory", "snippet": "- B级规则:听力句子 5-8 词(均 7 词),每组 3 张同类物品不同属性图片 - 能力标签:显性事实理解|关键词识别 ×2 + 基础语境理解|场景/物品/动作识别 ## 梁辰(user_id: ou_28f02dcada1193913cfbb6310f8daf07)— HTML 诊断页面教研规则 JS 文件 - 用户有一个 L1 关卡诊断工作台 HTML 页面(部署在腾讯云空间),当前只做数量级统计,缺少教研规则校验 - 需求:提供可嵌入 HTML 的前端 JS 校验规则文件,使诊断有据可依 - 输出:`output/l1_pedagogy_rules.js`(42KB),包含 8 个校验维度: 1. 词汇超纲检测(基于 L1/L2 词库) 2. 英式拼写检测(color→colour 等 115 组映射) 3. Markdown 标记检测(`**`/`#`/`>` 等) 4. 标点规范检测(全角混入、`~`、`!!!`) 5. 题型-阶段匹配校验(20 种题型对应的 L1/L2 阶段映射) 6. 台词质量分析(句子长度、负面评价) 7. 知识点曝光度 8. 句型合规检测 - 接入方式:`` + 调用 `PedagogyRules.validate(summary, level)` - 数据源:L1 词库 147 词(过滤 enabled=true)、L2 词库 52 词、L1 句型 8 个、L2 句型(从 437MB bitable 导出中提取唯一结", "recallCount": 17, "dailyCount": 0, "groundedCount": 0, "totalScore": 17, "maxScore": 1, "firstRecalledAt": "2026-05-29T00:23:17.391Z", "lastRecalledAt": "2026-06-23T02:16:32.659Z", "queryHashes": [ "c1d4076205e1", "4aa0ef719160", "e30c130b9d1d", "7e6aa000abdb", "094bfb865b29", "6568231ab2d7", "3ac726b21876", "867f7264cd0e", "5f16a7426a41", "7c761b49b948", "f7926d356e13", "341edb569d53", "533765637e65", "367cd3303e1d", "fc0ce35c5668", "fecfc20c077f", "8d35216cc8bc" ], "recallDays": [ "2026-05-29", "2026-06-01", "2026-06-02", "2026-06-10", "2026-06-17", "2026-06-18", "2026-06-22", "2026-06-23" ], "conceptTags": [ "5-8", "场景/物品/动作识别", "user-id", "output/l1-pedagogy-rules.js", "l1/l2", "题型-阶段匹配校验", "l1-pedagogy-rules.js", "pedagogyrules.validate" ] }, "memory:memory/2026-05-11.md:1:25": { "key": "memory:memory/2026-05-11.md:1:25", "path": "memory/2026-05-11.md", "startLine": 1, "endLine": 25, "source": "memory", "snippet": "### 刘彦江 — reading_pic_judge 看图判断题批量生产(4套,17:28 ~ 17:35) - **需求:** 4套 reading_pic_judge,L1 A级,能力标签 图文匹配 - **题型特点:** 每题独立配图(questionImage),first/second双题组包裹 - **状态:** ✅ 已完成,4套全部入库+图片描述回填验证通过 - **脚本:** `scripts/batch_reading_pic_judge.py`、`scripts/update_pic_judge_descriptions.py` | ID | 题组1 | 题组2 | Y/N | 图片描述 | |----|-------|-------|-----|---------| | 121301 | home/house/sofa/cupboard/bedroom | zoo/hippo/bear/jeans/sock | 3Y2N | ✅ 596chars | | 121401 | student/school/teacher/crayon/board | mat/letter/desk/schoolbag/handbag | 3Y2N | ✅ 562chars | | 121501 | body/head/mouth/ear/friend | camera/boy/girl/skateboarding/skateboard | 3Y2N | ✅ 553chars | | 121601 | summer/autumn/winter/cold/spring |", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-29T00:23:17.392Z", "lastRecalledAt": "2026-06-17T02:48:55.170Z", "queryHashes": [ "bd790c7e2a35", "b4c6fff5854a", "256e24aaac90" ], "recallDays": [ "2026-05-29", "2026-06-17" ], "conceptTags": [ "reading-pic-judge", "first/second双题组包裹", "y/n", "home/house/sofa/cupboard/bedroom", "zoo/hippo/bear/jeans/sock", "body/head/mouth/ear/friend", "summer/autumn/winter/cold/spring", "彦江" ] }, "memory:memory/2026-05-21.md:52:67": { "key": "memory:memory/2026-05-21.md:52:67", "path": "memory/2026-05-21.md", "startLine": 52, "endLine": 67, "source": "memory", "snippet": "- 共 17 个互动行:对话朗读-配图(6) / 对话朗读(1) / 对话挖空-配图(1) / 对话挖空(4) / 对话选择-配图(1) / 对话选读(2) / 对话组句-配图(1) / 对话组句(1) / 看图说话(1) #### 组件类型 A 列取值与技能映射(新增类型) | A列类型 | 对应技能 | 备注 | |---------|---------|------| | 对话朗读 / 对话朗读-配图 | dialogue-reading-config | -配图需加图片时机和音频载体 | | 对话挖空 / 对话挖空-配图 | dialogue-fill-in-blanks-config | 同上 | | 对话选择 / 对话选择-配图 | dialogue-choose-config | 同上 | | **对话选读** | dialogue-selective-reading-config | 开放表达,无正确选项,每选项必带反馈 | | **对话组句** | dialogue-sentence-building-config | 单词排序组句,含答案+辅助信息 | | **看图说话** | dialogue-image-description-config | 导览配置+对话配置,含Q&A/通过规则/示例对话 | #### 类型区别关键点 - **对话选择 vs 对话选读**:前者有对错判断(正确选项标注),后者开放表达(无正确选项,每选项均带反馈) - **对话挖空**:`___` 必需三下划线,选项2-3个,反馈角色非 User - **对话组句**:选项为独立", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-05-29T00:23:17.392Z", "lastRecalledAt": "2026-05-29T00:23:17.392Z", "queryHashes": [ "bd790c7e2a35" ], "recallDays": [ "2026-05-29" ], "conceptTags": [ "对话朗读-配图", "对话挖空-配图", "对话选择-配图", "对话组句-配图", "dialogue-reading-config", "dialogue-fill-in-blanks-config", "dialogue-choose-config", "a/通过规则/示例对话" ] }, "memory:memory/2026-05-26.md:130:166": { "key": "memory:memory/2026-05-26.md:130:166", "path": "memory/2026-05-26.md", "startLine": 130, "endLine": 166, "source": "memory", "snippet": "## 英文台词生产 [童瑶] — L1-S2-U20 全系列 ### L1-S2-U20-L1 冠军计划 - **文档:** `EbkUwEjaticOkHknf0icsQ2Yn4Q` | Sheet `6aqvM2` - 对话 148 行,写入 E 列 ✅ ### L1-S2-U20-L2 发球大战 - **文档:** `BvSyw1vlfiwCr5kjkPmcUYXynZd` | Sheet `wMQVyV` - 对话 135 行,写入 F 列 ✅ ### L1-S2-U20-L3 曲棍球练习赛 - **文档:** `MrsAwcYq2iCy7Tkk3dkclS0mnlg` | Sheet `6aqvM2` - 对话 149 行,28 行修改,写入 F 列 ✅ - 知识点:hockey/interesting/one/try + `have a try`/`One...the other...` ### L1-S2-U20-L4 网球明星 - **文档:** `GT4awLQx9iOfWHk00ZFcHQzbnzT` | Sheet `wMQVyV` - 对话 112 行,26 行修改,写入 F 列 ✅ - 知识点:tennis/tennis racket/bounce/wave + `wave(s) to`/`Hit the ball!` ### L1-S2-U20-L5 足球接力赛 - **文档:** `VEGwwoVdTiFu00koNoOc1MGhnec` | Sheet `AV1gO0` - 对话 137 行,28 行修改,写入 F 列 ✅ - 知识点:", "recallCount": 6, "dailyCount": 0, "groundedCount": 0, "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-29T02:33:30.526Z", "lastRecalledAt": "2026-06-22T02:56:35.364Z", "queryHashes": [ "4aa0ef719160", "f7926d356e13", "341edb569d53", "367cd3303e1d", "fc0ce35c5668", "fecfc20c077f" ], "recallDays": [ "2026-05-29", "2026-06-18", "2026-06-22" ], "conceptTags": [ "l1-s2-u20", "l1-s2-u20-l1", "l1-s2-u20-l2", "l1-s2-u20-l3", "hockey/interesting/one/try", "l1-s2-u20-l4", "tennis/tennis", "racket/bounce/wave" ] }, "memory:memory/2026-05-25.md:283:302": { "key": "memory:memory/2026-05-25.md:283:302", "path": "memory/2026-05-25.md", "startLine": 283, "endLine": 302, "source": "memory", "snippet": "- 14 阶段 4 科目全部重写,目标文档: `W5Vjw2fLiiCqfck0Mfzc0xkrnte` - L2 阶段1-2 阅读/写作从\"无\"补为实际技能点(刘彦江确认\"L2 阶段1-2 阅读和写作都是有题型的\") - L1 阶段1 阅读/写作也从\"无\"补为实际技能点 - 0 个\"无\",全量覆盖 - 生成脚本: `tmp/build_skill_points.py` ## 生产覆盖范围修正 [刘彦江] - L1 生产到 **U16**(非 U33) - L2 生产到 **U29**(非 U16) - 已同步更新 `business_knowledge/单元挑战全貌.md` ## 单元挑战全貌文档 [刘彦江] - 创建 `business_knowledge/单元挑战全貌.md` - 覆盖九大板块:业务定位、阶段划分、题型体系(18种)、能力标签(45个)、生产流程(ID规则/标准/写入陷阱)、审校体系(7+4项检查)、生产覆盖现状、模块关联、快速链接 ## L1/L2 难度等级映射 [刘彦江] ✅已确认 - L1-A: Starters入门+基础 (U1-U16) | L1-B: Starters达标 (U17-U24) | L1-C: Movers入门+基础 (U25-U40) | L1-D: Movers达标 (U41-U48) - L2-A: Flyers入门+基础 (U1-U12) | L2-B: Flyers达标 (U13-U18) | L2-C: KET入门+基础 (U19-U30) | L2-D: KET强化+高位+达标 (U31-U48) - 已写入", "recallCount": 9, "dailyCount": 0, "groundedCount": 0, "totalScore": 9, "maxScore": 1, "firstRecalledAt": "2026-05-29T02:33:30.526Z", "lastRecalledAt": "2026-06-22T02:56:35.364Z", "queryHashes": [ "4aa0ef719160", "20f6c2d072df", "068db47fdc05", "6568231ab2d7", "617d5faf5a33", "f7926d356e13", "341edb569d53", "367cd3303e1d", "fecfc20c077f" ], "recallDays": [ "2026-05-29", "2026-06-08", "2026-06-10", "2026-06-18", "2026-06-22" ], "conceptTags": [ "阶段1-2", "阅读/写作从", "阅读/写作也从", "tmp/build-skill-points.py", "business-knowledge/单元挑战全貌.md", "id规则/标准/写入陷阱", "l1/l2", "l1-a" ] }, "memory:memory/2026-05-25.md:118:137": { "key": "memory:memory/2026-05-25.md:118:137", "path": "memory/2026-05-25.md", "startLine": 118, "endLine": 137, "source": "memory", "snippet": "- 生成脚本: `tmp/build_skill_points.py` ## 生产覆盖范围修正 [刘彦江] - L1 生产到 **U16**(非 U33) - L2 生产到 **U29**(非 U16) - 已同步更新 `business_knowledge/单元挑战全貌.md` ## 单元挑战全貌文档 [刘彦江] - 创建 `business_knowledge/单元挑战全貌.md` - 覆盖九大板块:业务定位、阶段划分、题型体系(18种)、能力标签(45个)、生产流程(ID规则/标准/写入陷阱)、审校体系(7+4项检查)、生产覆盖现状、模块关联、快速链接 ## L1/L2 难度等级映射 [刘彦江] ✅已确认 - L1-A: Starters入门+基础 (U1-U16) | L1-B: Starters达标 (U17-U24) | L1-C: Movers入门+基础 (U25-U40) | L1-D: Movers达标 (U41-U48) - L2-A: Flyers入门+基础 (U1-U12) | L2-B: Flyers达标 (U13-U18) | L2-C: KET入门+基础 (U19-U30) | L2-D: KET强化+高位+达标 (U31-U48) - 已写入 `business_knowledge/单元挑战全貌.md` §5.3 # 2026-05-25 工作日志 ## 组件配置 pipeline:单独重试 cId=1217214 - [童瑶] 请求单独重试 pipeline 中的失败组件 cId=1217214(听力拖拽 / core_listenin", "recallCount": 9, "dailyCount": 0, "groundedCount": 0, "totalScore": 9, "maxScore": 1, "firstRecalledAt": "2026-05-29T02:33:30.526Z", "lastRecalledAt": "2026-06-22T02:56:35.364Z", "queryHashes": [ "4aa0ef719160", "20f6c2d072df", "068db47fdc05", "6568231ab2d7", "617d5faf5a33", "f7926d356e13", "341edb569d53", "367cd3303e1d", "fecfc20c077f" ], "recallDays": [ "2026-05-29", "2026-06-08", "2026-06-10", "2026-06-18", "2026-06-22" ], "conceptTags": [ "tmp/build-skill-points.py", "business-knowledge/单元挑战全貌.md", "id规则/标准/写入陷阱", "l1/l2", "l1-a", "u1-u16", "l1-b", "u17-u24" ] }, "memory:memory/2026-05-28.md:60:66": { "key": "memory:memory/2026-05-28.md:60:66", "path": "memory/2026-05-28.md", "startLine": 60, "endLine": 66, "source": "memory", "snippet": "8. 句型合规检测 - 接入方式:`` + 调用 `PedagogyRules.validate(summary, level)` - 数据源:L1 词库 147 词(过滤 enabled=true)、L2 词库 52 词、L1 句型 8 个、L2 句型(从 437MB bitable 导出中提取唯一结构) - 技术注意:L2_pattern_list.json 体积 437MB(1,082,450 条记录),直接嵌入前端不可行,已提取唯一句型结构后嵌入 - 所有 6 个测试用例通过 - 用户后续想尝试其他对接方式(API 模式 / 飞书 Bot 联动 / CI 集成)", "recallCount": 11, "dailyCount": 0, "groundedCount": 0, "totalScore": 11, "maxScore": 1, "firstRecalledAt": "2026-05-29T02:33:30.526Z", "lastRecalledAt": "2026-06-23T02:16:32.659Z", "queryHashes": [ "4aa0ef719160", "e30c130b9d1d", "7e6aa000abdb", "094bfb865b29", "6568231ab2d7", "3ac726b21876", "867f7264cd0e", "5f16a7426a41", "7c761b49b948", "533765637e65", "8d35216cc8bc" ], "recallDays": [ "2026-05-29", "2026-06-01", "2026-06-02", "2026-06-10", "2026-06-17", "2026-06-18", "2026-06-23" ], "conceptTags": [ "l1-pedagogy-rules.js", "pedagogyrules.validate", "l2-pattern-list.json", "句型", "检测", "方式", "script", "src" ] }, "memory:memory/2026-05-29.md:1:14": { "key": "memory:memory/2026-05-29.md:1:14", "path": "memory/2026-05-29.md", "startLine": 1, "endLine": 14, "source": "memory", "snippet": "## [梁晨] L1 Pedagogy Rules v4.0.0 交付 - 在 v3 基础上新增 5 个校验维度(来自 16 个教研 skill 规则提取): 6. 组件合规性(12 种题型规则,来自 11 个 dialogue/info config skills) 7. 字段完整性(7 项自动检查,来自 audit_l1_config) 8. 掌握度预测(W_i×M_i 加权公式,来自 knowledge-mastery-calculator) 9. 格式规范(标题/Markdown/标点/英式拼写/价值观,来自全量文本规范) 10. 语法检测(三单/主谓一致/双重否定,来自 audit_l1_config) - 输出:`output/l1_pedagogy_rules_v4.js`(59KB) - 数据:L1 147 词、L2 52 词、L1 8 句型、L2 1 句型、89 组英式拼写映射、12 种题型规则 - 已通过飞书 Bot 发送给梁晨 - API 兼容 v3:不加 options 参数即为原行为;加 component/componentExposures 启用新维度 - 能力边界:内容质量诊断(第一层筛选),不是全链路归因(看不到 UX/服务端/学生侧因素)", "recallCount": 12, "dailyCount": 0, "groundedCount": 0, "totalScore": 12, "maxScore": 1, "firstRecalledAt": "2026-06-02T01:49:17.841Z", "lastRecalledAt": "2026-06-23T02:16:32.659Z", "queryHashes": [ "7e6aa000abdb", "094bfb865b29", "3ac726b21876", "867f7264cd0e", "5f16a7426a41", "7c761b49b948", "f7926d356e13", "341edb569d53", "533765637e65", "367cd3303e1d", "fecfc20c077f", "8d35216cc8bc" ], "recallDays": [ "2026-06-02", "2026-06-10", "2026-06-17", "2026-06-18", "2026-06-22", "2026-06-23" ], "conceptTags": [ "v4.0.0", "dialogue/info", "audit-l1-config", "w-i", "m-i", "knowledge-mastery-calculator", "标题/markdown/标点/英式拼写/价值观", "三单/主谓一致/双重否定" ] }, "memory:memory/2026-05-28.md:35:49": { "key": "memory:memory/2026-05-28.md:35:49", "path": "memory/2026-05-28.md", "startLine": 35, "endLine": 49, "source": "memory", "snippet": "- 答案设为[2](英语的),与申报 adj. 英文的不符,应为[0] - 🟡 rubber (1218116):释义题例句\"an eraser made of rubber\"解释的是橡胶材料,非橡皮擦工具 - 🟡 Chinese(n.) (1218113):例句\"Chinese food\"中 Chinese 是形容词非名词,与题目义项\"中文\"不符 - 🟢 fun (1218119):解析末尾多余一个 `\"` - 🟢 eraser (1218111):`\"an eraser表示\"` 缺少空格 ## 武钰涵 — 听力-P1-图片选择题生产 - 题目集合 ID: 121601,难度 B级(L1 第3-4阶段,Starters 3) - 知识点验证:10个词中仅 run(v.) 在 L1 词库,feet(foot 的复数)可视为已有,其余 8 个(bus, taxi, trousers, shorts, winter, snow, cold, bee)不在 L1/L2 词库 - 用户指示直接生产,已按 SKILL 规范生成 2 个题组(各5题),含听力文本、图片描述、正确答案、能力标签 - 已按 bitable 配置格式输出完整 jsonData + 题目完整配置 + 图片描述 - B级规则:听力句子 5-8 词(均 7 词),每组 3 张同类物品不同属性图片 - 能力标签:显性事实理解|关键词识别 ×2 + 基础语境理解|场景/物品/动作识别 ## 梁辰(user_id: ou_28f02dcada1193913cfbb6310f8daf07)— HTML 诊断页面", "recallCount": 8, "dailyCount": 0, "groundedCount": 0, "totalScore": 8, "maxScore": 1, "firstRecalledAt": "2026-06-02T01:49:17.841Z", "lastRecalledAt": "2026-06-23T02:16:32.659Z", "queryHashes": [ "7e6aa000abdb", "094bfb865b29", "3ac726b21876", "867f7264cd0e", "5f16a7426a41", "7c761b49b948", "533765637e65", "8d35216cc8bc" ], "recallDays": [ "2026-06-02", "2026-06-10", "2026-06-17", "2026-06-18", "2026-06-23" ], "conceptTags": [ "听力-p1-图片选择题生产", "第3-4阶段", "l1/l2", "5-8", "场景/物品/动作识别", "user-id", "答案", "英语" ] }, "memory:memory/2026-05-18.md:791:810": { "key": "memory:memory/2026-05-18.md:791:810", "path": "memory/2026-05-18.md", "startLine": 791, "endLine": 810, "source": "memory", "snippet": "- 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`", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-02T01:49:17.841Z", "lastRecalledAt": "2026-06-02T01:49:17.841Z", "queryHashes": [ "7e6aa000abdb" ], "recallDays": [ "2026-06-02" ], "conceptTags": [ "can/can", "b列/c列", "互动/核心互动-口语", "24/24", "scripts/write-l5-g-configs.py", "wiki", "token", "u1zewhzaaie07tkjmoochurgnih" ] }, "memory:memory/2026-05-12.md:141:155": { "key": "memory:memory/2026-05-12.md:141:155", "path": "memory/2026-05-12.md", "startLine": 141, "endLine": 155, "source": "memory", "snippet": "- **最终结果: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 写入前做引号归一化预处理", "recallCount": 8, "dailyCount": 0, "groundedCount": 0, "totalScore": 8, "maxScore": 1, "firstRecalledAt": "2026-06-04T03:23:22.968Z", "lastRecalledAt": "2026-06-23T02:17:17.970Z", "queryHashes": [ "defa0daee9d7", "92343053bee2", "302eafc578a7", "666912b77eb8", "8b8c93a101f0", "a051b817dda7", "0ae754ed0ea5", "ec8098bc9476" ], "recallDays": [ "2026-06-04", "2026-06-17", "2026-06-23" ], "conceptTags": [ "10/10", "json.loads", "重建/修复的批量操作", "最终", "结果", "记录", "sentencemeaningmeaning", "均可" ] }, "memory:memory/2026-05-12.md:132:143": { "key": "memory:memory/2026-05-12.md:132:143", "path": "memory/2026-05-12.md", "startLine": 132, "endLine": 143, "source": "memory", "snippet": "- 检查题型:句意选择题 ×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 解析失败` 标记", "recallCount": 8, "dailyCount": 0, "groundedCount": 0, "totalScore": 8, "maxScore": 1, "firstRecalledAt": "2026-06-04T03:23:22.968Z", "lastRecalledAt": "2026-06-23T02:17:17.970Z", "queryHashes": [ "defa0daee9d7", "92343053bee2", "302eafc578a7", "666912b77eb8", "8b8c93a101f0", "a051b817dda7", "0ae754ed0ea5", "ec8098bc9476" ], "recallDays": [ "2026-06-04", "2026-06-17", "2026-06-23" ], "conceptTags": [ "json.dumps", "10/10", "json.loads", "检查", "选择", "句子", "作答", "场景" ] }, "memory:memory/2026-05-11.md:78:89": { "key": "memory:memory/2026-05-11.md:78:89", "path": "memory/2026-05-11.md", "startLine": 78, "endLine": 89, "source": "memory", "snippet": "- **状态:** ✅ 全部完成(两阶段延迟写入策略,避免自动化覆盖) - **脚本:** `scripts/batch_reading_matchInfo.py` | ID | 题组1 | 题组2 | record_id | |----|-------|-------|-----------| | 021301 | actor/beard/different/brave/neighbour(人物) | dinner/cooking/fire/album/diary(生活) | recvjjk7oAT1YN | | 021401 | plan/repair/newspaper/backpack/seat(日程) | garden/melon/water/plant/summer(自然) | recvjjk7TU4ZFs | | 021501 | visitor/welcome/invite/laugh/guest(社交) | mistake/instruction/reason/technology/brush(学习) | recvjjk8mju8ou | | 021601 | record/event/enter/return/sort(管理) | handbag/camera/gate/wheel/entrance(场所) | recvjjk8Q5ZMIu | | 021701 | driver/street/market/guidebook/shopping(出行) | machine/draw/basketball/bookcase/invention(活动) | r", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-04T09:21:44.866Z", "lastRecalledAt": "2026-06-04T09:21:44.866Z", "queryHashes": [ "3d95a503721c" ], "recallDays": [ "2026-06-04" ], "conceptTags": [ "record-id", "dinner/cooking/fire/album/diary", "garden/melon/water/plant/summer", "record/event/enter/return/sort", "状态", "全部", "完成", "阶段" ] }, "memory:memory/2026-05-26.md:161:187": { "key": "memory:memory/2026-05-26.md:161:187", "path": "memory/2026-05-26.md", "startLine": 161, "endLine": 187, "source": "memory", "snippet": "- 文档:`https://makee-interactive.feishu.cn/wiki/XoGZwgrRMiGk9vkYNWmcegs9nyh`(L1-S2-U19-L1 客厅游戏) - Bot当前无该知识空间权限,无法写入 - 已完成 5 个组件配置文本生成,待权限恢复后写入 G 列 ### 修正格式规范(用户指定) - 不含【组件ID】字段 - 【互动内容】顶部加「题目:选择正确的单词补全句子」 - 挖空用 `___`(3个下划线) - 选项后加「辅助信息」行(如 `afternoon 意为下午`) - 【后置对话】缺省写「空」,不用「无」 - 【互动反馈】正确:「正确:无」;错误:「错误 角色名: 台词」 - 任务标题和反馈需贴合剧情 - 有【教研图】的组件:资源配置需写「图片时机」 ### 5个组件配置摘要 | ID | 句子 | 正确答案 | 干扰项 | 图片时机 | |----|------|---------|--------|---------| | 1219102 | This ___ , we go to space! | afternoon | evening | 无 | | 1219105 | This ___ is the captain's seat! | armchair | sofa | 互动内容 | | 1219110 | Push the ___ , Dad! | armchair | table | 互动内容 | | 1219111 | The ___ is a glowing star! | lamp | armchair |", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-04T09:21:44.866Z", "lastRecalledAt": "2026-06-04T09:21:44.866Z", "queryHashes": [ "3d95a503721c" ], "recallDays": [ "2026-06-04" ], "conceptTags": [ "l1-s2-u19-l1", "https", "makee", "interactive.feishu.cn", "wiki", "xogzwgrrmigk9vkynwmcegs9nyh", "u19", "客厅" ] }, "memory:memory/2026-05-27.md:1:16": { "key": "memory:memory/2026-05-27.md:1:16", "path": "memory/2026-05-27.md", "startLine": 1, "endLine": 16, "source": "memory", "snippet": "# 2026-05-27 工作日志 ## 人员信息确认 - [刘彦江确认] 聂锦学(ou_71503fc7fca3337ab9efafd9f6c4a243)— 教研老师 - [刘彦江确认] 武钰涵(ou_a4aaa641585b38d1042608b9b7f05a17)— 教研老师 - clowbot(ou_1c460dbc9b19ac68b2a2e39671588dfb)— 机器人 ## 工作记录 - [聂锦学] 词汇题型难度分级分析:完成全部16种词汇题型的1-3级难度归类,含分级标准和理由说明 ## 词汇题型难度分级 — 修订版(聂锦学反馈后) - 分级标准:L1单步操作 / L2两步推理 / L3两步+强干扰 - L1(6): 词义选择、拼写判断、发音判断、拼写输入、朗读单词、单词朗读翻译 - L2(7): 反义选择、句中词义、词义分类、搭配选择、句中词拼写、同义选择、句中词听辨 - L3(3): 词义辨析(近义词)、词形转换、词形应用(形近词)", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-06-05T03:37:55.029Z", "lastRecalledAt": "2026-06-17T02:47:04.085Z", "queryHashes": [ "37de464adb17", "71edaa30f808" ], "recallDays": [ "2026-06-05", "2026-06-17" ], "conceptTags": [ "完成全部16种词汇题型的1-3级难度归类", "工作", "日志", "人员", "信息", "确认", "彦江", "教研" ] }, "memory:memory/2026-05-12.md:61:80": { "key": "memory:memory/2026-05-12.md:61:80", "path": "memory/2026-05-12.md", "startLine": 61, "endLine": 80, "source": "memory", "snippet": "- **脚本修复(过程中):** 1. sentenceStructureSort 单词对比大小写误报 → 添加 normalize(首字母大写 + 去标点) 2. ID 末尾空格敏感 → strip 比较 3. 句子朗读/跟读题误报 options/answer 缺失 → 跳过这两种题型 #### 审校结果汇总 - **🔴 系统性问题(40/40,100%):** classificationInfo JSON 内 cambridgeLevel=\"A1\" 与 cefrLevel=\"YLE\" 值互换,列字段正确但 JSON 存储写反,疑似模板/formula 级别 bug - **🟡 具体错误(17/40):** - sentenceMeaningMeaning JSON 解析失败 × 10:1213004, 1213006, 1213010, 1214008, 1215005, 1216001, 1216004, 1216007, 1216008, 1216010(后8题含中文引号冲突) - ID 字段末尾空格 × 3:1213001, 1215001, 1216001 - 看图选择题有CN无JSON × 3:1213008, 1215010, 1216005 - sentenceStructureSort 语法/格式错误 × 3:1213004(缺逗号clean Otis→clean, Otis), 1213005(bird?连写应拆为bird+?), 1214001(need→needs三单) - 缺少 pointId 字段 × 1:", "recallCount": 4, "dailyCount": 0, "groundedCount": 0, "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-06-09T07:21:33.704Z", "lastRecalledAt": "2026-06-15T03:59:02.486Z", "queryHashes": [ "ff0d0637f255", "f525b14a0c5b", "b4c55d54be2f", "f782e3076a6a" ], "recallDays": [ "2026-06-09", "2026-06-15" ], "conceptTags": [ "句子朗读/跟读题误报", "options/answer", "40/40", "疑似模板/formula", "17/40", "语法/格式错误", "脚本", "修复" ] }, "memory:memory/2026-05-12.md:101:121": { "key": "memory:memory/2026-05-12.md:101:121", "path": "memory/2026-05-12.md", "startLine": 101, "endLine": 121, "source": "memory", "snippet": "3. ⚠️ sentenceStructureClozeWordMcq: \"put your toys\" 省略 away 不够自然 - **技能沉淀:** - 脚本: `scripts/audit_l1_config.py` — 7项自动检查 - SKILL.md: `business_production/_shared/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/40,100%):** classificationInfo JSON 内 cambridgeLevel=\"A1\" 与 cefrLevel=\"YLE\" 值互换 - **🟡 具体错误(17/40):** - sentenceMeaningMeaning JSON 解析", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-06-09T07:21:33.704Z", "lastRecalledAt": "2026-06-09T07:22:27.500Z", "queryHashes": [ "ff0d0637f255", "f525b14a0c5b" ], "recallDays": [ "2026-06-09" ], "conceptTags": [ "scripts/audit-l1-config.py", "skill.md", "business-production", "shared/audit-l1-config/skill.md", "1213001-1216010", "13-16", "句子朗读/跟读题误报", "options/answer" ] }, "memory:memory/2026-05-18.md:783:810": { "key": "memory:memory/2026-05-18.md:783:810", "path": "memory/2026-05-18.md", "startLine": 783, "endLine": 810, "source": "memory", "snippet": "--- ## [李应瑛] 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_", "recallCount": 4, "dailyCount": 0, "groundedCount": 0, "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-06-09T07:21:33.704Z", "lastRecalledAt": "2026-06-18T04:36:05.631Z", "queryHashes": [ "ff0d0637f255", "f525b14a0c5b", "9018e8896dcd", "533765637e65" ], "recallDays": [ "2026-06-09", "2026-06-10", "2026-06-18" ], "conceptTags": [ "l1-s2-u17-l5", "与l3/l4不同", "can/can", "b列/c列", "互动/核心互动-口语", "24/24", "scripts/write", "u17" ] }, "memory:memory/2026-05-12.md:164:187": { "key": "memory:memory/2026-05-12.md:164:187", "path": "memory/2026-05-12.md", "startLine": 164, "endLine": 187, "source": "memory", "snippet": "- **五大分类:** 📖阅读(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 标签(合作阅读)为开放型自由文本,非受控词表 #### 产出文件 - `business_production/_shared/bitable-reader/SKILL.md` — 通用 bitable 读取技能(164行) - `business_knowledge/skills/core-content-json-standard/SKILL.md` — 全题型 JSON 标准 v2.0(393行) - `scripts/audit_core_reading_S0.py` — 合作阅读 S0", "recallCount": 8, "dailyCount": 0, "groundedCount": 0, "totalScore": 8, "maxScore": 1, "firstRecalledAt": "2026-06-09T08:37:12.232Z", "lastRecalledAt": "2026-06-11T10:31:50.633Z", "queryHashes": [ "91bf4d50e5a2", "b8853a0aafcc", "113e8be33943", "9573fdf60768", "70a3284bc0c5", "78420d02cc4d", "c538777b9257", "6bf54cd79bb2" ], "recallDays": [ "2026-06-09", "2026-06-10", "2026-06-11" ], "conceptTags": [ "口语快答/妙问", "textdata.text", "textdata.audio", "business-production", "shared/bitable-reader/skill.md", "v2.0", "scripts/audit-core-reading-s0.py", "五大" ] }, "memory:memory/2026-05-12.md:214:236": { "key": "memory:memory/2026-05-12.md:214:236", "path": "memory/2026-05-12.md", "startLine": 214, "endLine": 236, "source": "memory", "snippet": "- **产出 Skill 2:** `business_knowledge/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) ###", "recallCount": 7, "dailyCount": 0, "groundedCount": 0, "totalScore": 7, "maxScore": 1, "firstRecalledAt": "2026-06-09T08:37:12.232Z", "lastRecalledAt": "2026-06-11T10:31:50.633Z", "queryHashes": [ "91bf4d50e5a2", "b8853a0aafcc", "9573fdf60768", "70a3284bc0c5", "78420d02cc4d", "c538777b9257", "6bf54cd79bb2" ], "recallDays": [ "2026-06-09", "2026-06-10", "2026-06-11" ], "conceptTags": [ "v2.0", "id/kpinfo/taskdata", "14/15", "scripts/audit-core-reading-s0.py", "201c/d", "textinfo.textlist", "skill", "business-knowledge" ] }, "memory:memory/2026-05-12.md:234:254": { "key": "memory:memory/2026-05-12.md:234:254", "path": "memory/2026-05-12.md", "startLine": 234, "endLine": 254, "source": "memory", "snippet": "#### 发现 - **中互动结构高度统一:** 全部 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) - 与 `business_knowledge/skills/core-content-json-standard/SKILL.md` 双向关联 #### 覆盖率 - 核心互动:15/15 ✅(口语探讨 S0 无数据已标注) - 中互动:27/27 ✅ - 关联文件:3 个(core-content-json-standard + com", "recallCount": 8, "dailyCount": 0, "groundedCount": 0, "totalScore": 8, "maxScore": 1, "firstRecalledAt": "2026-06-09T08:37:12.232Z", "lastRecalledAt": "2026-06-11T10:31:50.633Z", "queryHashes": [ "91bf4d50e5a2", "b8853a0aafcc", "9573fdf60768", "70a3284bc0c5", "0924e1755b1c", "78420d02cc4d", "c538777b9257", "6bf54cd79bb2" ], "recallDays": [ "2026-06-09", "2026-06-10", "2026-06-11" ], "conceptTags": [ "bitable-token", "15/15", "27/27", "core-content-json-standard", "发现", "互动", "结构", "高度" ] }, "memory:memory/2026-05-25.md:49:64": { "key": "memory:memory/2026-05-25.md:49:64", "path": "memory/2026-05-25.md", "startLine": 49, "endLine": 64, "source": "memory", "snippet": "- [刘彦江] 要求将写作P1 021301~032901共16条ID的explanation简化 - 标准:先称呼→按写作要求匹配正文→最后署名,格式类似\"先称呼Dear Lucy,再按三个要求匹配正文:相册失踪对应...在哪丢的对应...请求帮忙找对应...最后署名\" - 已逐条输出15条解析(021301按样例略过),列表:021401, 021501, 021701, 021801, 021901, 022001, 022101, 022201, 022301, 022401, 032501, 032601, 032701, 032801, 032901 - 022101特殊:按故事逻辑排列(非写作要求匹配),因该题无编号要求而是按叙事顺序排列句子 ## L1/L2 能力图谱梳理 [刘彦江] ⏳待确认 - [刘彦江] 分享了wiki文档 https://makee-interactive.feishu.cn/wiki/TFB9wJm4IilkCekyFdzcc42on6d - 要求:梳理L1 6阶段+L2 8阶段听说读写tag类型和考点,在@刘彦江的位置输出方案 - 已输出四部分方案框架(见对话),用户尚未确认: 1. 各阶段听/说/读/写能力分布表格(汇总表 + 14阶段×4科目tag) 2. 单项目卡描述(≤100字,4条分别覆盖听/说/读/写) 3. 能力考察项(小标题≤12字,每条≤70字,总≤280字,以听力Movers为例) 4. 单能力项描述(≤210字,以\"单句信息点抓取\"为例) - 待用户确认格式和内容方向后,再写入文档 ## 能力", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:19:54.974Z", "lastRecalledAt": "2026-06-10T02:20:12.701Z", "queryHashes": [ "7de89d94cd21", "e679709051aa", "9018e8896dcd" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "l1/l2", "各阶段听/说/读/写能力分布表格", "4条分别覆盖听/说/读/写", "彦江", "要求", "写作", "explanation", "简化" ] }, "memory:memory/2026-05-25.md:225:243": { "key": "memory:memory/2026-05-25.md:225:243", "path": "memory/2026-05-25.md", "startLine": 225, "endLine": 243, "source": "memory", "snippet": "- 要求:梳理L1 6阶段+L2 8阶段听说读写tag类型和考点,在@刘彦江的位置输出方案 - 已输出四部分方案框架(见对话),用户尚未确认: 1. 各阶段听/说/读/写能力分布表格(汇总表 + 14阶段×4科目tag) 2. 单项目卡描述(≤100字,4条分别覆盖听/说/读/写) 3. 能力考察项(小标题≤12字,每条≤70字,总≤280字,以听力Movers为例) 4. 单能力项描述(≤210字,以\"单句信息点抓取\"为例) - 待用户确认格式和内容方向后,再写入文档 ## 能力图谱固定文案回填完成 [刘彦江] - 文档: https://makee-interactive.feishu.cn/wiki/W5Vjw2fLiiCqfck0Mfzc0xkrnte - 严格按照L1/L2阶段分配文档的\"阶段目标\"描述 - 回填内容: - L1: 阶段1听口 / 阶段2听口阅 / 阶段3-6听口阅写 - L2: 阶段1-8听口阅写 - 各阶段描述均对齐文档设定的阶段目标(如L1阶段1:基础字母识别关键词抓取, 阶段3:数字/时间细节抓取同义替换识别等) - 格式: 每阶段下听力/口语/阅读/写作各一段≤210字描述 ## 能力图谱考察项文档写入完成 [刘彦江] ✅已完成 - 文档: https://makee-interactive.feishu.cn/wiki/W5Vjw2fLiiCqfck0Mfzc0xkrnte (考察项描述目录) - 14 阶段 14 张表全部填充:L1 阶段1-6 + L2 阶段1-8", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:19:54.974Z", "lastRecalledAt": "2026-06-10T02:20:12.701Z", "queryHashes": [ "7de89d94cd21", "e679709051aa", "9018e8896dcd" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "各阶段听/说/读/写能力分布表格", "4条分别覆盖听/说/读/写", "严格按照l1/l2阶段分配文档的", "阶段3-6听口阅写", "阶段1-8听口阅写", "数字/时间细节抓取同义替换识别等", "每阶段下听力/口语/阅读/写作各一段", "阶段1-6" ] }, "memory:memory/2026-05-25.md:214:228": { "key": "memory:memory/2026-05-25.md:214:228", "path": "memory/2026-05-25.md", "startLine": 214, "endLine": 228, "source": "memory", "snippet": "- 替代方案:用飞书 Drive API `DELETE /open-apis/drive/v1/files/{doc_token}?type=docx` 删除文件(不归入回收站) - 验证:删除后再次查询 node → 131005 \"not found\",确认已移除 ## 写作P1 16条解析简化输出 [刘彦江] - [刘彦江] 要求将写作P1 021301~032901共16条ID的explanation简化 - 标准:先称呼→按写作要求匹配正文→最后署名,格式类似\"先称呼Dear Lucy,再按三个要求匹配正文:相册失踪对应...在哪丢的对应...请求帮忙找对应...最后署名\" - 已逐条输出15条解析(021301按样例略过),列表:021401, 021501, 021701, 021801, 021901, 022001, 022101, 022201, 022301, 022401, 032501, 032601, 032701, 032801, 032901 - 022101特殊:按故事逻辑排列(非写作要求匹配),因该题无编号要求而是按叙事顺序排列句子 ## L1/L2 能力图谱梳理 [刘彦江] ⏳待确认 - [刘彦江] 分享了wiki文档 https://makee-interactive.feishu.cn/wiki/TFB9wJm4IilkCekyFdzcc42on6d - 要求:梳理L1 6阶段+L2 8阶段听说读写tag类型和考点,在@刘彦江的位置输出方案 - 已输出四部分方案框架(见对话),用户尚未确认: 1. 各阶段听/说/读/写能力分布", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:19:54.974Z", "lastRecalledAt": "2026-06-10T02:20:12.701Z", "queryHashes": [ "7de89d94cd21", "e679709051aa", "9018e8896dcd" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "open-apis/drive/v1/files", "doc-token", "l1/l2", "各阶段听/说/读/写能力分布", "替代", "方案", "drive", "api" ] }, "memory:memory/2026-05-25.md:74:91": { "key": "memory:memory/2026-05-25.md:74:91", "path": "memory/2026-05-25.md", "startLine": 74, "endLine": 91, "source": "memory", "snippet": "- 14 阶段 14 张表全部填充:L1 阶段1-6 + L2 阶段1-8 - 考察项格式:考察项名称 + 描述,不标注题型来源(括号内Part编号等) - 表格格式:3列(单项 / 考察项 / 考察项描述),单项列使用rowspan合并 ### 生产数据 vs 设计文档的差异 - **设计文档不可信**:L1/L2 阶段分配文档(Jjd8wghbeidXt2kDFaPcU09wnzc / D9EFwVC9Gi9nCAk4heec2qYCnwe)与实际生产不一致 - 实际生产数据来源:生产文档「单元挑战旧题目解析待补充 ID 整理」(CS8Ww2XaSiFwhakQenycRU5ZnYf) - Part→题型映射来源于多维表格 (App Token: CMHSbUUjka3TrUsaxxEc297ongf) - 关键差异:L1阶段1实际有阅读(P7)和写作(P3),不是设计文档声称的「仅听力+口语」 - 生产数据覆盖范围有限:L1 仅到 ~U33 (032901),L2 仅到 ~U16 (121601) - 无生产数据的阶段(L1阶段5-6, L2阶段4-8)使用设计文档 + 题型递进规律推算 ### 飞书 lark-table 写入注意事项 - rowspan 在飞书 markdown 回写时会被自动剥离 - 表格写入后单项列会逐行重复显示而非合并单元格(飞书原生限制) - 写入前需 extract 原始文档的 S1 表格,再与生成的新表格拼接后 overwrite ### Part→题型映射速查(来自多维表格 CMHSbUUjka3TrUsaxxEc297ongf)", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:20:22.635Z", "lastRecalledAt": "2026-06-10T02:20:22.635Z", "queryHashes": [ "6568231ab2d7" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "阶段1-6", "阶段1-8", "l1/l2", "l1阶段5-6", "l2阶段4-8", "lark-table", "阶段", "全部" ] }, "memory:memory/2026-05-25.md:240:256": { "key": "memory:memory/2026-05-25.md:240:256", "path": "memory/2026-05-25.md", "startLine": 240, "endLine": 256, "source": "memory", "snippet": "- 格式: 每阶段下听力/口语/阅读/写作各一段≤210字描述 ## 能力图谱考察项文档写入完成 [刘彦江] ✅已完成 - 文档: https://makee-interactive.feishu.cn/wiki/W5Vjw2fLiiCqfck0Mfzc0xkrnte (考察项描述目录) - 14 阶段 14 张表全部填充:L1 阶段1-6 + L2 阶段1-8 - 考察项格式:考察项名称 + 描述,不标注题型来源(括号内Part编号等) - 表格格式:3列(单项 / 考察项 / 考察项描述),单项列使用rowspan合并 ### 生产数据 vs 设计文档的差异 - **设计文档不可信**:L1/L2 阶段分配文档(Jjd8wghbeidXt2kDFaPcU09wnzc / D9EFwVC9Gi9nCAk4heec2qYCnwe)与实际生产不一致 - 实际生产数据来源:生产文档「单元挑战旧题目解析待补充 ID 整理」(CS8Ww2XaSiFwhakQenycRU5ZnYf) - Part→题型映射来源于多维表格 (App Token: CMHSbUUjka3TrUsaxxEc297ongf) - 关键差异:L1阶段1实际有阅读(P7)和写作(P3),不是设计文档声称的「仅听力+口语」 - 生产数据覆盖范围有限:L1 仅到 ~U33 (032901),L2 仅到 ~U16 (121601) - 无生产数据的阶段(L1阶段5-6, L2阶段4-8)使用设计文档 + 题型递进规律推算 ### 飞书 lark-table 写入注意事项 - rowspan 在飞书 markdown", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:20:22.635Z", "lastRecalledAt": "2026-06-10T02:20:22.635Z", "queryHashes": [ "6568231ab2d7" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "每阶段下听力/口语/阅读/写作各一段", "阶段1-6", "阶段1-8", "l1/l2", "l1阶段5-6", "l2阶段4-8", "lark-table", "格式" ] }, "memory:memory/2026-05-26.md:218:226": { "key": "memory:memory/2026-05-26.md:218:226", "path": "memory/2026-05-26.md", "startLine": 218, "endLine": 226, "source": "memory", "snippet": "| 139 | 1219215 | 对话朗读 | 朗读job相关台词 | | 157 | 1219216 | 对话朗读 | 朗读句式相关台词 | | 169 | 1219217 | 对话表达 | 展示团队成就 | ### 技术备忘 - **lark-cli docs +fetch markdown** 可检测到内嵌 Sheet 标签(``),比 RAW content API 更可靠 - U19-L2 文档的RAW content未显示sheet标签,但lark-cli markdown输出中包含两个内嵌sheet - 组件生产(结构化文本)vs 组件配置-json(JSON管线)是两个不同流程,需根据用户指令区分", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:20:27.209Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "113e8be33943" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "lark-cli", "u19-l2", "但lark-cli", "组件配置-json", "对话", "朗读", "job", "相关" ] }, "memory:memory/2026-05-26.md:198:223": { "key": "memory:memory/2026-05-26.md:198:223", "path": "memory/2026-05-26.md", "startLine": 198, "endLine": 223, "source": "memory", "snippet": "- **Spreadsheet token:** `Mt4rsAj8ehtA1ztetACc0HGWnMb` | Sheet `wMQVyV` - **知识点:** astronaut / job / great / also / I have a/an... / We also need... - **17/17 全部写入 H 列 ✅** | Row | ID | 类型 | 任务标题 | |-----|-----|------|----------| | 14 | 1219201 | 图片多选 | 宇航员套装识别 | | 27 | 1219202 | 对话朗读 | 朗读job相关台词 | | 37 | 1219203 | 图片单选 | 识别宇航员服 | | 43 | 1219204 | 对话朗读 | 朗读also相关台词 | | 61 | 1219205 | 对话挖空 | 询问Dad的工作 | | 65 | 1219206 | 对话朗读 | 朗读job相关台词 | | 78 | 1219207 | 对话挖空 | User自豪地介绍自己 | | 83 | 1219208 | 对话朗读 | 朗读great相关台词 | | 91 | 1219209 | 对话组句 | User发现自己也有工作 | | 103 | 1219210 | 看图拼词 | 拼写任务卡片 | | 114 | 1219211 | 对话朗读 | 朗读句式相关台词 | | 118 | 1219212 | 对话组句 | 向爸妈展示计划 | | 123 | 1219213 | 对话组句 | 提议进行演习 | | 135", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:20:27.209Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "113e8be33943" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "a/an", "17/17", "spreadsheet", "token", "mt4rsaj8ehta1ztetacc0hgwnmb", "sheet", "wmqvyv", "知识" ] }, "memory:memory/2026-05-12.md:34:50": { "key": "memory:memory/2026-05-12.md:34:50", "path": "memory/2026-05-12.md", "startLine": 34, "endLine": 50, "source": "memory", "snippet": "- **问题:** 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位 = 前", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T02:20:27.209Z", "lastRecalledAt": "2026-06-10T02:20:27.209Z", "queryHashes": [ "113e8be33943" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "021301-021801", "按每道题的上下文匹配对应的标识/通知类型标签", "图片必须是真实标识/通知", "3-5词", "问题", "信息", "匹配", "图片" ] }, "memory:memory/2026-05-28.md:19:37": { "key": "memory:memory/2026-05-28.md:19:37", "path": "memory/2026-05-28.md", "startLine": 19, "endLine": 37, "source": "memory", "snippet": "- 用户提交第二批 20 个 L1 词汇知识点审校 - 校验结果:16个超纲(仅 read/ruler/write/pencil 4个在库) - 内容问题: - 🔴 10个词条格式不统一(``` 包裹 + 中英文无空格):read, line, Chinese(adj.), perfect, eraser, Chinese(n.), write, rubber, playground, English(adj.) - 🔴 Chinese(n.) 例句语法错误:\"My neighbour is Chinese who cooks\" → 应改为 \"My neighbour is Chinese and cooks\" - 🔴 China 例句冗余:\"Chinese food from China\" - 🔴 read 释义与词库不一致:申报\"阅读,读懂\",词库仅\"阅读\" - 🟡 eraser/rubber 双重申报,内容几乎一致,建议二选一 ## 武钰涵 — 词汇巩固题审校(批次1: 20词×3题=60题) - 仅发现1个错误:home (1217116) 释义题答案设为[2](家庭),应为[0](回家,在家),与用户申报的词性 adv. 一致 - 其余59题通过 ## 武钰涵 — 词汇巩固题审校(批次2: 20词×3题=60题) - 🔴 English (1218118): - 释义题解析为 LLM 兜底拒答占位文本:\"请你提供具体的题目和对应正确答案内容...\" - 答案设为[2](英语的),与申报 adj. 英文的不符,应为[0] -", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T03:52:13.443Z", "lastRecalledAt": "2026-06-10T03:52:13.443Z", "queryHashes": [ "92034bab1861" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "read/ruler/write/pencil", "eraser/rubber", "用户", "提交", "第二", "词汇", "知识", "结果" ] }, "memory:memory/2026-06-08.md:17:27": { "key": "memory:memory/2026-06-08.md:17:27", "path": "memory/2026-06-08.md", "startLine": 17, "endLine": 27, "source": "memory", "snippet": "- 图片时机根据有实际内容(非「无」)的 section 动态列出(如「互动内容」「情境引入 互动内容 互动反馈」) - 图片时机和音频载体禁止同时存在 ### 已更新文件 - `business_production/组件生产/skills/component-design/SKILL.md` → v1.3.0 - `business_production/组件生产/skills/script-component-production/SKILL.md` → v1.2.0 ### 已执行操作 - L1-S2-U21-L2 运输小队:全量修正(辅助信息、资源配置、互动反馈、情境引入/后置对话去重、配图资源配置) - L1-S2-U21-L1 寻人启事:组件配置流水线 16/16 成功", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-10T03:52:28.180Z", "lastRecalledAt": "2026-06-10T03:52:28.180Z", "queryHashes": [ "0924e1755b1c" ], "recallDays": [ "2026-06-10" ], "conceptTags": [ "v1.3.0", "v1.2.0", "l1-s2-u21-l2", "情境引入/后置对话去重", "l1-s2-u21-l1", "16/16", "图片", "时机" ] }, "memory:memory/2026-05-12.md:181:203": { "key": "memory:memory/2026-05-12.md:181:203", "path": "memory/2026-05-12.md", "startLine": 181, "endLine": 203, "source": "memory", "snippet": "- `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` + `business_production/_shared/audit_l1_config/SKILL.md` ### 刘彦江 — 1213001-1216010 批量审校 40 条(12:10 ~ 14:00) -", "recallCount": 4, "dailyCount": 0, "groundedCount": 0, "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-06-11T10:31:34.088Z", "lastRecalledAt": "2026-06-17T02:48:55.170Z", "queryHashes": [ "c538777b9257", "6bf54cd79bb2", "b4c6fff5854a", "256e24aaac90" ], "recallDays": [ "2026-06-11", "2026-06-17" ], "conceptTags": [ "scripts/audit-core-reading-s0.py", "021301-021801", "scripts/audit-l1-config.py", "business-production", "shared/audit-l1-config/skill.md", "1213001-1216010", "scripts", "audit-core-reading-s0" ] }, "memory:memory/2026-05-12.md:199:216": { "key": "memory:memory/2026-05-12.md:199:216", "path": "memory/2026-05-12.md", "startLine": 199, "endLine": 216, "source": "memory", "snippet": "- **脚本修复(过程中):** 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:** `business_production/_shared/bitable-reader/SKILL.md` — 通用 bitable 读取(任何 bitable 通用) - **产出", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-06-11T10:31:34.088Z", "lastRecalledAt": "2026-06-11T10:31:50.633Z", "queryHashes": [ "c538777b9257", "6bf54cd79bb2" ], "recallDays": [ "2026-06-11" ], "conceptTags": [ "scripts/audit-l1-config.py", "10/10", "business-production", "shared/bitable-reader/skill.md", "脚本", "修复", "过程", "sort" ] }, "memory:memory/2026-05-07.md:309:330": { "key": "memory:memory/2026-05-07.md:309:330", "path": "memory/2026-05-07.md", "startLine": 309, "endLine": 330, "source": "memory", "snippet": "- **操作:** 按 dialogue-fill-in-blanks-config skill 规范填充 - **填充内容:** | ID | 任务标题 | 挖空内容 | 知识点 | |----|---------|---------|--------| | 1213404 | 说说Dan现在的情绪 | Your dad is very ___. (angry/happy) | angry | | 1213405 | 提议去问问爸爸 | ___'s ask your dad! (Let/Lot) | Let... do... | | 1213407 | 看看排班表上谁值班 | Everyone is ___ ___. (on duty tomorrow/on duty today) | ...is on duty today/tomorrow | - **再次踩坑:** 第一次 replace_range 用于1213404时范围再次漏掉了1213405行,需额外恢复 ### 童瑶 (ou_5035ff24ee54432c5da9d5909c2f410b) — 新文档教研图提取 - **时间:** ~16:52 - **文档:** `NcpBwlmfBilUFdkJaWRctXirn2g`(makee-interactive 知识空间) - **需求:** 从【剧情内容】中找到所有需要【教研图】的互动 - **结果:** 共14个互动需要教研图(详见下方) #### 教研图清单(文档 NcpBwlmfBilUFdkJaWRctXirn2g) | 互动类", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-15T03:36:14.103Z", "lastRecalledAt": "2026-06-15T03:36:14.103Z", "queryHashes": [ "ac36a2c51c42" ], "recallDays": [ "2026-06-15" ], "conceptTags": [ "dialogue-fill-in-blanks-config", "angry/happy", "let/lot", "tomorrow/on", "today/tomorrow", "replace-range", "makee-interactive", "操作" ] }, "memory:memory/2026-05-08.md:90:117": { "key": "memory:memory/2026-05-08.md:90:117", "path": "memory/2026-05-08.md", "startLine": 90, "endLine": 117, "source": "memory", "snippet": "### 刘彦江 (ou_5af74c1fb96042e33cc0f16b5ca02cf4) — writing_pic_qa 规则优化(3项) - **时间:** 10:34 ~ 10:45 - **状态:** ✅ 已完成 **1. 能力标签修正(L2 Unit0-6 阶段):** - 旧:`\"ability\": [\"图文匹配\"]` - 新:`\"ability\": [\"简短作答\", \"一词答案\"]` - 已批量更新 bitable 全部 7 条记录(000001 + 010101~010601) **2. 挖空方向规则(问句型知识点):** - 当知识点是问句(如 What should we do?),挖空在**问句**上,答句作为已知信息完整给出 - 示例:`\"What (6) we do? We should go home now.\"` → 挖空 should(不是挖答句 go) - 已写入 SKILL.md 3.1 节 **3. 阶段变化原则(新增):** - L2 Unit0-6(当前):1词挖空 / 2小题/题组 / 能力标签「简短作答|一词答案」 - 后续阶段:挖空变短语/句子 / 题组变4小题 / 能力标签待补充 - 已写入 SKILL.md 3.4 节 + 九、十两节重写 **SKILL.md 更新摘要:** - 3.1 节:新增问句型挖空方向规则 - 3.4 节:新增阶段变化原则表格 - 5.1 节:JSON 样例中 ability 全部改为 `[\"简短作答\", \"一词答案\"]` - 5.2 节:ability 字段说明改为 L2 Unit0-6", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-06-15T03:58:35.454Z", "lastRecalledAt": "2026-06-15T04:00:59.281Z", "queryHashes": [ "b4c55d54be2f", "f782e3076a6a", "36f3e1797d6f" ], "recallDays": [ "2026-06-15" ], "conceptTags": [ "writing-pic-qa", "unit0-6", "skill.md", "3.1", "2小题/题组", "挖空变短语/句子", "3.4", "5.1" ] }, "memory:memory/2026-05-08.md:68:98": { "key": "memory:memory/2026-05-08.md:68:98", "path": "memory/2026-05-08.md", "startLine": 68, "endLine": 98, "source": "memory", "snippet": "| 010401 | It tastes like… / I only need… | I want to buy… / It should be… | recviZwkiJJuCm | | 010501 | …may be helpful. / I'm interested in… | … plan to… / What is… for? | recviZwkNn0CH3 | | 010601 | That sounds like… / …is the most important… | What should we do? / What does… look like? | recviZwluBNfmp | **考察点分布(24题):** - 介词搭配:for ×4, about ×2, with ×1, in ×1, like ×3 - be动词/系动词:am, is - 情态动词:will, may, should - 状态词/形容词:happy, ready - 动词:play, try, found, need, buy, plan, heard, going, be - 句型:Let's + V, What is X for?, look/sound/taste + like **生产工具化:** - 使用 Python 脚本(`/tmp/gen_writing_pic_qa.py`)批量生成 JSON + 图片描述 - 自动校验:字母数匹配 / 每空仅1词 / 每图2题 / first+second 包裹格式 - 批量写入 bitable (`tblFc9T", "recallCount": 3, "dailyCount": 0, "groundedCount": 0, "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-06-15T03:58:35.454Z", "lastRecalledAt": "2026-06-15T04:00:59.281Z", "queryHashes": [ "b4c55d54be2f", "f782e3076a6a", "36f3e1797d6f" ], "recallDays": [ "2026-06-15" ], "conceptTags": [ "be动词/系动词", "状态词/形容词", "look/sound/taste", "tmp/gen-writing-pic-qa.py", "tastes", "like", "only", "need" ] }, "memory:memory/2026-05-14.md:257:266": { "key": "memory:memory/2026-05-14.md:257:266", "path": "memory/2026-05-14.md", "startLine": 257, "endLine": 266, "source": "memory", "snippet": "| 032601 | 3题explanation过短(<20字) | 延展为完整解析:他人影响/梦想vs目标/鼓励建议 | | 032801 | 6题explanation过短(<20字) | 延展:自控描述/解题策略/坏习惯反思/长期学习/压力应对/学弟建议 | ### 脚本 - `scripts/fix_p2_records.py` ### 审校 skill 更新 - `/root/.openclaw/workspace-xiaoyan/skills/audit_unit_challenge/SKILL.md` 已创建并更新 - ⛔ 审校红线:禁止修改「题目集合 ID」列值", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-06-17T02:46:36.014Z", "lastRecalledAt": "2026-06-17T02:47:04.085Z", "queryHashes": [ "40d2770a9103", "71edaa30f808" ], "recallDays": [ "2026-06-17" ], "conceptTags": [ "他人影响/梦想vs目标/鼓励建议", "自控描述/解题策略/坏习惯反思/长期学习/压力应对/学弟建议", "scripts/fix-p2-records.py", "explanation", "过短", "延展", "完整", "解析" ] }, "memory:memory/2026-05-17.md:19:40": { "key": "memory:memory/2026-05-17.md:19:40", "path": "memory/2026-05-17.md", "startLine": 19, "endLine": 40, "source": "memory", "snippet": "- `raw_content` API 不暴露此类嵌入 Sheet,需通过 blocks API 查找 `block_type=30` 的 grid_column 节点来发现 sheet token - 该文档含 2 个嵌入 Sheet:`zbfYO4`(知识点区)和 `Nr3Ovs`(243 行 × 8 列脚本表) ### 已完成的组件回填(14/14 对话组件) | 组件类型 | 数量 | 所用 skill | |---------|:--:|-----------| | 对话朗读 | 6 | dialogue-reading-config | | 对话朗读-配图 | 2 | dialogue-reading-config | | 对话挖空 | 2 | dialogue-fill-in-blanks-config | | 对话挖空-配图 | 1 | dialogue-fill-in-blanks-config | | 对话选择-配图 | 1 | dialogue-choose-config | | 对话选读 | 1 | **dialogue-selective-reading-config(新建)** | | 对话组句 | 1 | dialogue-sentence-building-config | ### Skill 库补全 - **新建 skill**:`~/.openclaw/workspace-xiaoyan/business_production/组件生产/skills/dialogue-selective-reading-config/SKILL.md`", "recallCount": 2, "dailyCount": 0, "groundedCount": 0, "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-06-17T02:46:50.273Z", "lastRecalledAt": "2026-06-17T02:48:55.170Z", "queryHashes": [ "b4c6fff5854a", "256e24aaac90" ], "recallDays": [ "2026-06-17" ], "conceptTags": [ "raw-content", "block-type", "grid-column", "14/14", "dialogue-reading-config", "对话朗读-配图", "dialogue-fill-in-blanks-config", "对话挖空-配图" ] }, "memory:memory/2026-05-07.md:29:48": { "key": "memory:memory/2026-05-07.md:29:48", "path": "memory/2026-05-07.md", "startLine": 29, "endLine": 48, "source": "memory", "snippet": "- **时间:** 10:39 ~ 10:49 - **需求:** 对比两份单词表的区别,找出\"表1有但表2没有\"的单词逐个列出。 - **状态:** 已完成对比,结果已交付用户。 - **文件:** - 表1:.doc 文件(分类主题单词表,14个大类,~970个单词) - 表2:.xlsx 文件(LV2词表,~1326个单词) - **对比结果:** - 两表共有:459个单词 - 表1有但表2没有:502个单词(基础生活词汇为主,L1级别高频词) - 表2有但表1没有:867个单词(LV2进阶/学术词汇为主) - **输出文件:** `/root/.openclaw/workspace-xiaoyan/output/word_comparison_result.xlsx` - **关键发现:** 表1包含大量L1级别基础生活词汇(家庭成员、日期、颜色、食物等),表2偏重LV2级别学术词汇,两者覆盖范围差异大。表1的502个独有词主要是小学阶段高频基础词。 - **备注:** 李应瑛不在负责人配置中,不在完整权限用户列表中。当前请求属于教研内容分析,已先接单处理,后续如有敏感数据查询需求需按权限规则处理。 # 2026-05-07 工作日志 ## 会话记录 ### 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e) — 单词表对比请求(三轮对比) - **时间:** 10:39 ~ 11:18 - **需求:** 对比三份单词表,找出\"表1有但表2和表3都没有\"的单词。", "recallCount": 1, "dailyCount": 0, "groundedCount": 0, "totalScore": 1, "maxScore": 1, "firstRecalledAt": "2026-06-23T02:16:57.691Z", "lastRecalledAt": "2026-06-23T02:16:57.691Z", "queryHashes": [ "01b80ce79584" ], "recallDays": [ "2026-06-23" ], "conceptTags": [ "lv2进阶/学术词汇为主", "时间", "需求", "对比", "单词", "区别", "找出", "没有" ] } } }