{
  "version": 1,
  "updatedAt": "2026-06-24T07:48:42.595Z",
  "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 <S1~S4>` （命令触发，推荐） - 短语触发：消息含\"英文台词生产\" - 不会触发：仅含\"翻译\"/\"台词\"/\"英文\" (防误匹配) ## 刘彦江 — 课程组件生产/审校/回填技能创建 ### 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": 4,
      "dailyCount": 0,
      "groundedCount": 0,
      "totalScore": 4,
      "maxScore": 1,
      "firstRecalledAt": "2026-05-17T05:52:07.611Z",
      "lastRecalledAt": "2026-06-24T07:48:42.595Z",
      "queryHashes": [
        "65b539c56ec3",
        "77cfbe459e1d",
        "63eeac46a47c",
        "f57d10ac9c4a"
      ],
      "recallDays": [
        "2026-05-17",
        "2026-06-23",
        "2026-06-24"
      ],
      "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 使用规范 - **必须精确定位单个 `<lark-td>` 标签**，不能用跨多行的范围定位 - **定位字符串应包含行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 \"<wiki_url>\" --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. 句型合规检测 - 接入方式：`<script src=\"l1_pedagogy_rules.js\"></script>` + 调用 `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. 句型合规检测 - 接入方式：`<script src=\"l1_pedagogy_rules.js\"></script>` + 调用 `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": 14,
      "dailyCount": 0,
      "groundedCount": 0,
      "totalScore": 14,
      "maxScore": 1,
      "firstRecalledAt": "2026-06-04T03:23:22.968Z",
      "lastRecalledAt": "2026-06-24T02:18:51.740Z",
      "queryHashes": [
        "defa0daee9d7",
        "92343053bee2",
        "302eafc578a7",
        "666912b77eb8",
        "8b8c93a101f0",
        "a051b817dda7",
        "0ae754ed0ea5",
        "ec8098bc9476",
        "1c7586f491d0",
        "bb698e001d32",
        "95d8776ff928",
        "94cf8b86128e",
        "323d7cb670d3",
        "4d547e9f299e"
      ],
      "recallDays": [
        "2026-06-04",
        "2026-06-17",
        "2026-06-23",
        "2026-06-24"
      ],
      "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": 14,
      "dailyCount": 0,
      "groundedCount": 0,
      "totalScore": 14,
      "maxScore": 1,
      "firstRecalledAt": "2026-06-04T03:23:22.968Z",
      "lastRecalledAt": "2026-06-24T02:18:51.740Z",
      "queryHashes": [
        "defa0daee9d7",
        "92343053bee2",
        "302eafc578a7",
        "666912b77eb8",
        "8b8c93a101f0",
        "a051b817dda7",
        "0ae754ed0ea5",
        "ec8098bc9476",
        "1c7586f491d0",
        "bb698e001d32",
        "95d8776ff928",
        "94cf8b86128e",
        "323d7cb670d3",
        "4d547e9f299e"
      ],
      "recallDays": [
        "2026-06-04",
        "2026-06-17",
        "2026-06-23",
        "2026-06-24"
      ],
      "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 标签（`<sheet token=\"...\"/>`），比 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进阶/学术词汇为主",
        "时间",
        "需求",
        "对比",
        "单词",
        "区别",
        "找出",
        "没有"
      ]
    }
  }
}
