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