# 2026-05-17 工作记忆

## 经验教训

### Feishu docx API 缓存不同步问题
- **现象**：文档被用户编辑添加新表格后，API（blocks/raw_content）持续返回旧版本内容，已刷新 8 次仍不变
- **表现**：用户截图显示文档有 7 列脚本表格，但 API 只返回制作人员表 + 角色表 + 梗概表（3 个表）
- **排查方式**：让用户在文档中做一次微小编辑（末尾加空格再删除），触发飞书保存以强制缓存失效
- **教训**：当 API 返回数据与用户描述不一致时，优先考虑 API 缓存问题，不要反复争论「就是没有」

### 用户反馈
- 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e)：组件生产任务，文档链接 `NjCXw6KS2iVlp3k4gqtcJyj8nhh`，7 列脚本表格待组件回填
- 待文档缓存刷新后继续执行

## 组件生产 — L1-S2-U17-L3 紧急拜访（完成）

### 文档发现
- Wiki 文档 `K6DIwFqpgi1SjZkEPS9cNESfn0d` 中的脚本表格**以嵌入式 Sheet（grid_column type 30）存储**，而非 docx 原生 table
- `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`
  - 格式来源：`dialogue-interaction-config` 技能（business_production/组件生产/skills/）
  - 与对话选择的核心差异：无正确选项，所有选项平等配反馈，要求为「选择一个你想表达的观点」
- **更新**：`~/.openclaw/workspace-xiaoyan/business_production/组件生产/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 类对话组件，需单独处理
