auto backup: 2026-06-03 08:10:02
This commit is contained in:
parent
9365f60be9
commit
65e6a5233e
@ -5,7 +5,6 @@ find-skills fc331652faaa71746a3f63a6bd46ae57da7679c5081b03e84c930ed366493503
|
||||
skill-builder 20cdb6ec00e493cdfac624a9a844207acf1bf155c6f3f8e07c2bbf591ba2e73b
|
||||
kids-english-script-production 3cb6929e4f5a43e7245adb79091e56ce4cc2ae77198dc795fe1cc088575c3a78
|
||||
lark_wiki_operate_as_bot 2a37701f568849f03eb46dd938baeda171380fe252b698ac8bda69caa19aea08
|
||||
vala_git_workspace_backup 4cf352bec88fe84af065ba1ffcbb06647b77df0e01860faaf0bca9fd64b968ec
|
||||
cambridge-yle-ket-exam-library 5c87898002c7d6175b8076ad18c46dea043e1d4e971371b90647d188bbbb06a9
|
||||
task-router 08d85461f17ee0bad2ad6f64f84f3c826cd69a515fe56aa847909d097cc40fab
|
||||
vala-interactive-components ec339d3314d3874e366199a14f71b1c94b8965cc1c64e34d9ea4211583696cef
|
||||
@ -47,3 +46,4 @@ interactive-component-json 243023a4e9ba4482347b84a69c21f33d1d06a2a5cff6b8e15da05
|
||||
audit_l1_config 88298b77e28be383fa31b75c8e48c3c05c950848af656126c45c35e93219e8f1
|
||||
bitable-reader 8e1beacd3612c102c1b210307532f1f61a0351ef24ae32b62f1c62998bcd5363
|
||||
core-content-json-standard 261bfe87076f0700d68811db431702bc22e647d3fa6bbcd8c6b75d573103f911
|
||||
vala_git_workspace_backup 6e07e4904702dd2b8c4041fee5bdeed5ea3e80f15fc440fafbfeaa334c0684a1
|
||||
|
||||
160
AGENTS.md
160
AGENTS.md
@ -135,9 +135,9 @@ System: [...] Feishu[xiaobian] group oc_xxx | 发送者 (ou_xxx) [msg:om_xxx]
|
||||
| 目录 | 用途 | 说明 |
|
||||
|------|------|------|
|
||||
| `memory/` | 短期记忆 | 按天记录工作日志,格式 `YYYY-MM-DD.md` |
|
||||
| `business_knowledge/` | 业务知识库 | **所有业务知识统一存放于此**,包括业务术语、数据表说明、SQL 模板、数据抽取脚本等 |
|
||||
| `business_production/` | 核心业务生产区 | 按业务模块独立隔离,包含「剧本翻译/课程组件/巩固题/单元挑战/英文台词/组件生产/组件配置」等独立子目录。其中 `review/` 为**业务决策沉淀层**(非审校流程目录),记录每次模块调整的「为什么」,帮助小研理解规则背后的 know-why 以便更准确判断。下设「课程组件」(对应组件生产模块的决策依据)「剧本翻译」(对应英文台词模块的决策依据)两个子目录,未来其他模块产生决策时同样在此记录 |
|
||||
| `scripts/` | 脚本文件 | 所有 `.py`、`.sh`、`.sql` 等脚本文件必须放在此目录 |
|
||||
| `business_knowledge/` | 业务知识库 | **所有业务知识统一存放于此**,包括业务术语、数据表说明、SQL 模板、数据抽取脚本等。其中 `skills/` 为**业务知识技能层**(考试题型库、JSON标准规范、标书规范等被其他模块引用的通用知识技能) |
|
||||
| `business_production/` | 核心业务生产区 | 按业务模块独立隔离,包含「剧本翻译/课程组件/巩固题/单元挑战/英文台词/组件生产/组件配置」等独立子目录。每个模块下可含 `skills/`(模块专属技能)、`scripts/`(模块专属脚本)、`memory/`(模块专属记忆)。其中 `_shared/` 为**业务共享工具层**(多模块共用的飞书操作技能),`review/` 为**业务决策沉淀层**(非审校流程目录),记录每次模块调整的「为什么」,帮助小研理解规则背后的 know-why 以便更准确判断。下设「课程组件」(对应组件生产模块的决策依据)「剧本翻译」(对应英文台词模块的决策依据)两个子目录,未来其他模块产生决策时同样在此记录 |
|
||||
| `scripts/` | 通用脚本文件 | 仅存放跨业务模块的通用脚本(备份、同步等)。业务模块专属脚本放在对应 `business_production/<模块>/scripts/` 下 |
|
||||
| `output/` | 输出文件 | 所有生成的报表(`.xlsx`、`.csv`)、日志(`.log`)、导出文件等必须放在此目录 |
|
||||
| `skills/` | 技能定义 | 个人技能目录 |
|
||||
| `tmp/` | 临时文件 | 临时中间产物,可定期清理 |
|
||||
@ -149,7 +149,7 @@ System: [...] Feishu[xiaobian] group oc_xxx | 发送者 (ou_xxx) [msg:om_xxx]
|
||||
|
||||
### 强制规则
|
||||
|
||||
1. **脚本文件** → 始终创建在 `scripts/` 目录下,绝不放在根目录
|
||||
1. **通用脚本文件** → 放在 `scripts/` 目录下;**业务模块专属脚本** → 放在 `business_production/<模块>/scripts/` 下,绝不放在根目录
|
||||
2. **输出文件**(xlsx/csv/log/报表等)→ 始终创建在 `output/` 目录下,绝不放在根目录
|
||||
3. **定时任务/脚本生成的文件** → 默认也输出到 `output/` 目录下,可根据需求在 `output/` 内创建子目录分类存放(如 `output/daily_reports/`),**绝不放在根目录**
|
||||
4. **业务知识** → 统一记录到 `business_knowledge/` 目录
|
||||
@ -160,20 +160,150 @@ System: [...] Feishu[xiaobian] group oc_xxx | 发送者 (ou_xxx) [msg:om_xxx]
|
||||
|
||||
Skills 提供你的工具。当你需要某个工具时,查看它的 `SKILL.md`。在 `TOOLS.md` 中保存环境相关的备注(数据库连接、API 配置等)。
|
||||
|
||||
你需要查看两个目录下的skills
|
||||
1.你个人的skill目录:
|
||||
./skills
|
||||
Skills 按四层架构组织:
|
||||
|
||||
2.通用级别的skills:
|
||||
/root/.openclaw/skills
|
||||
### 第一层:通用工具能力(`./skills/`)
|
||||
跨业务通用技能,如身份识别、消息发送、知识库读取等。
|
||||
|
||||
### 业务生产技能
|
||||
### 第二层:业务知识技能(`./business_knowledge/skills/`)
|
||||
被多个业务模块引用的通用知识/标准/资源技能,如考试题型库、JSON标准规范、标书规范等。不独立执行,由其他 skill 引用。
|
||||
|
||||
以下技能位于 `business_production/` 目录下,收到对应触发词时直接查阅其 `SKILL.md`:
|
||||
### 第三层:业务共享工具(`./business_production/_shared/`)
|
||||
多业务模块共用的飞书操作技能,如内嵌Sheet读写、多维表格操作、文档正文写入、L1配置审校等。
|
||||
|
||||
| 触发词 | SKILL.md 路径 |
|
||||
|--------|--------------|
|
||||
| `组件配置-json` | `business_production/组件配置/interactive-component-json/SKILL.md` |
|
||||
### 第四层:模块专属技能(`./business_production/<模块>/skills/`)
|
||||
仅服务于特定业务模块的技能,如组件配置JSON生成、单元挑战题型生产、对话组件配置等。
|
||||
|
||||
### 系统级技能
|
||||
`/root/.openclaw/skills` — 系统内置通用技能(定时任务、天气等)。
|
||||
|
||||
> 🔍 **搜索互联网信息** → 优先加载并使用 `cloudsways-search` skill(已配置密钥,开箱即用),而非系统内置 web_search 工具。
|
||||
|
||||
### 飞书文档操作技能速查
|
||||
|
||||
| 场景 | 技能 | 路径 | 身份 |
|
||||
|------|------|------|------|
|
||||
| 读知识库文档 | `lark_wiki_operate_as_bot` | `./skills/lark_wiki_operate_as_bot/SKILL.md` | Bot |
|
||||
| 读/写文档内嵌Sheet | `feishu-embedded-sheet` | `./business_production/_shared/feishu-embedded-sheet/SKILL.md` | Bot |
|
||||
| 多维表格CRUD | `lark_bitable_operate_as_bot` | `./business_production/_shared/lark_bitable_operate_as_bot/SKILL.md` | Bot |
|
||||
| 更新文档正文 | `lark_docx_update_as_bot` | `./business_production/_shared/lark_docx_update_as_bot/SKILL.md` | Bot |
|
||||
| 发送飞书消息 | `lark-send-message-as-bot` | `./skills/lark-send-message-as-bot/SKILL.md` | Bot |
|
||||
| 身份识别 | `lark-identify-sender` | `./skills/lark-identify-sender/SKILL.md` | — |
|
||||
| 多维表格结构读取 | `bitable-reader` | `./business_production/_shared/bitable-reader/SKILL.md` | Bot |
|
||||
| L1配置审校 | `audit_l1_config` | `./business_production/_shared/audit_l1_config/SKILL.md` | — |
|
||||
| 知识点掌握度计算 | `knowledge-mastery-calculator` | `./business_production/_shared/knowledge-mastery-calculator/SKILL.md` | — |
|
||||
|
||||
### 业务知识技能速查(被引用,不独立触发)
|
||||
|
||||
| 场景 | 技能 | 路径 |
|
||||
|------|------|------|
|
||||
| 剑桥YLE/KET考试题型库 | `cambridge-yle-ket-exam-library` | `./business_knowledge/skills/cambridge-yle-ket-exam-library/SKILL.md` |
|
||||
| 14种核心互动JSON标准 | `core-content-json-standard` | `./business_knowledge/skills/core-content-json-standard/SKILL.md` |
|
||||
| 标书/需求文档规范 | `biaoshu` | `./business_knowledge/skills/biaoshu/SKILL.md` |
|
||||
|
||||
### 业务生产技能(强制执行:匹配到触发词时直接调用对应 SKILL.md,不走 MEMORY.md 兜底)
|
||||
|
||||
收到以下触发词时,**必须先读取对应 SKILL.md 再执行**,禁止跳过 skill 直接用 MEMORY.md 规则手动处理。
|
||||
|
||||
#### 英文台词(English Script Production)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `/英文台词`、`英文台词生产` | `kids-english-script-production` | `business_production/英文台词/skills/kids-english-script-production/SKILL.md` |
|
||||
| 飞书文档表格读写(通用I/O层) | `feishu-doc-io` | `business_production/英文台词/skills/feishu-table-translate-fill/SKILL.md` |
|
||||
|
||||
> **示例:** 用户发来飞书 wiki 链接说「英文台词生产」→ 调用 `kids-english-script-production`,用 `--feishu-url` 模式读 F 列编剧台词 → 英语思维重构 → 写回 G 列
|
||||
|
||||
#### 组件生产(Component Production)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `/组件生产`、`组件生产`、`组件回填` | `script-component-production` | `business_production/组件生产/skills/script-component-production/SKILL.md` |
|
||||
| `组件设计`、`设计组件` | `component-design` | `business_production/组件生产/skills/component-design/SKILL.md` |
|
||||
| `对话互动配置`、`对话组件配置` | `dialogue-interaction-config` | `business_production/组件生产/skills/dialogue-interaction-config/SKILL.md` |
|
||||
| `互动组件规范`、`组件格式参考` | `vala-interactive-components` | `business_production/组件生产/skills/vala-interactive-components/SKILL.md` |
|
||||
| `组件标准化`、`对话组件标准化` | `task-router`(`dialogue-components-standardizer`) | `business_production/组件生产/skills/task-router/SKILL.md` |
|
||||
|
||||
##### 对话类组件配置子技能(由 `dialogue-interaction-config` 调度)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `对话选择配置`、`choose config` | `dialogue-choose-config` | `business_production/组件生产/skills/dialogue-choose-config/SKILL.md` |
|
||||
| `核心导航配置`、`core navigation config` | `dialogue-core-navigation-config` | `business_production/组件生产/skills/dialogue-core-navigation-config/SKILL.md` |
|
||||
| `对话挖空配置`、`fill in blanks config` | `dialogue-fill-in-blanks-config` | `business_production/组件生产/skills/dialogue-fill-in-blanks-config/SKILL.md` |
|
||||
| `看图说话配置`、`image description config` | `dialogue-image-description-config` | `business_production/组件生产/skills/dialogue-image-description-config/SKILL.md` |
|
||||
| `对话朗读配置`、`reading config` | `dialogue-reading-config` | `business_production/组件生产/skills/dialogue-reading-config/SKILL.md` |
|
||||
| `对话选读配置`、`selective reading config` | `dialogue-selective-reading-config` | `business_production/组件生产/skills/dialogue-selective-reading-config/SKILL.md` |
|
||||
| `对话组句配置`、`sentence building config` | `dialogue-sentence-building-config` | `business_production/组件生产/skills/dialogue-sentence-building-config/SKILL.md` |
|
||||
| `图片单选配置`、`single choice image config` | `dialogue-single-choice-image-config` | `business_production/组件生产/skills/dialogue-single-choice-image-config/SKILL.md` |
|
||||
| `信息组句配置`、`info sentence building` | `info-sentence-building-config` | `business_production/组件生产/skills/info-sentence-building-config/SKILL.md` |
|
||||
| `信息拼词配置`、`info word spelling` | `info-word-spelling-config` | `business_production/组件生产/skills/info-word-spelling-config/SKILL.md` |
|
||||
|
||||
> **示例:** 用户发来飞书 wiki 链接说「组件生产」→ 调用 `script-component-production`,读剧本表 → 生成互动组件内容 → 回填对应列
|
||||
|
||||
#### 组件配置(Component JSON Config)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `组件配置-json`、`组件配置JSON`、`互动组件JSON` | `interactive-component-json` | `business_production/组件配置/interactive-component-json/SKILL.md` |
|
||||
|
||||
> **示例:** 用户说「组件配置-json」→ 调用 `interactive-component-json`,根据组件类型生成标准化 JSON 配置
|
||||
|
||||
#### 单元挑战(Unit Challenge)
|
||||
|
||||
##### 总控 & 核心 & 审校
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `单元挑战`、`出题`、`生成题包`、`听力题`、`阅读题`、`口语题`、`写作题`、`题包组合` | `unit_challenge_master`(总控调度) | `business_production/单元挑战/skills/unit_challenge/master/unit_challenge_master/SKILL.md` |
|
||||
| 单元挑战全局规则/通用资源 | `unit_challenge_core`(核心层) | `business_production/单元挑战/skills/unit_challenge/core/unit_challenge_core/SKILL.md` |
|
||||
| `审校`、`单元挑战审校`、`题目校验` | `audit_unit_challenge` | `business_production/单元挑战/skills/audit_unit_challenge/SKILL.md` |
|
||||
|
||||
##### 听力(Listening)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `听力拖拽`、`听力Part1`、`图片连线`、`人物匹配` | `listening-drag`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L1/listening-drag/SKILL.md` |
|
||||
| `听力信息匹配`、`listening matchInfo`(L1) | `listening_matchInfo`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L1/listening_matchInfo/SKILL.md` |
|
||||
| `听力选图`、`听力Part6` | `listening_picture_selection`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L1/listening_picture_selection/SKILL.md` |
|
||||
| `听力图片选择`、`听力Part3`、`三选一图片` | `listening-choicePic`(L2) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L2/listening-choicePic/SKILL.md` |
|
||||
| `听力表格填空`、`听力Part2` | `listening_form_fill`(L2) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L2/listening_form_fill/SKILL.md` |
|
||||
| `听力信息匹配`、`听力Part5`(L2) | `listening_info_match`(L2) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L2/listening_info_match/SKILL.md` |
|
||||
| `听力长对话`、`听力Part3`(L2) | `listening_long_conversation`(L2) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L2/listening_long_conversation/SKILL.md` |
|
||||
| `听力短对话`、`听力Part4` | `listening_short_conversation`(L2) | `business_production/单元挑战/skills/unit_challenge/questions/listening/L2/listening_short_conversation/SKILL.md` |
|
||||
|
||||
##### 阅读(Reading)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `阅读看图判断`、`reading pic judge` | `reading_pic_judge` | `business_production/单元挑战/skills/unit_challenge/questions/reading/common/reading_pic_judge/SKILL.md` |
|
||||
| `阅读看图回答`、`reading pic qa` | `reading_pic_qa` | `business_production/单元挑战/skills/unit_challenge/questions/reading/common/reading_pic_qa/SKILL.md` |
|
||||
| `阅读完形填空`、`reading cloze` | `reading_cloze` | `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_cloze/SKILL.md` |
|
||||
| `阅读信息匹配`、`阅读Part1` | `reading_info_match` | `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_info_match/SKILL.md` |
|
||||
| `阅读长文选择`、`阅读Part3` | `reading_long_passage` | `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_long_passage/SKILL.md` |
|
||||
| `阅读开放填空`、`阅读Part5` | `reading_open_fill` | `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_open_fill/SKILL.md` |
|
||||
| `阅读段落匹配`、`阅读Part2` | `reading_paragraph_match` | `business_production/单元挑战/skills/unit_challenge/questions/reading/reading_paragraph_match/SKILL.md` |
|
||||
|
||||
##### 口语(Speaking)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `口语日常回答`、`口语Part1` | `speaking_daily_qa` | `business_production/单元挑战/skills/unit_challenge/questions/speaking/common/speaking_daily_qa/SKILL.md` |
|
||||
| `口语看图回答`、`口语Part2` | `speaking_pic_qa`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/speaking/L1/speaking_pic_qa/SKILL.md` |
|
||||
| `口语看图识物` | `speaking_pic_recognize`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/speaking/L1/speaking_pic_recognize/SKILL.md` |
|
||||
| `口语问答` | `speaking_qa`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/speaking/L1/speaking_qa/SKILL.md` |
|
||||
| `口语话题讨论`(L1) | `speaking_topic`(L1) | `business_production/单元挑战/skills/unit_challenge/questions/speaking/L1/speaking_topic/SKILL.md` |
|
||||
| `口语话题讨论`(L2) | `speaking_topic_discussion`(L2) | `business_production/单元挑战/skills/unit_challenge/questions/speaking/L2/speaking_topic_discussion/SKILL.md` |
|
||||
|
||||
##### 写作(Writing)
|
||||
|
||||
| 触发词 | 技能 | 路径 |
|
||||
|--------|------|------|
|
||||
| `写作看图回答`、`writing pic qa` | `writing_pic_qa` | `business_production/单元挑战/skills/unit_challenge/questions/writing/common/writing_pic_qa/SKILL.md` |
|
||||
| `写作邮件回复`、`writing email` | `writing_email_reply` | `business_production/单元挑战/skills/unit_challenge/questions/writing/writing_email_reply/SKILL.md` |
|
||||
| `写作看图写作`、`writing picture` | `writing_picture_writing` | `business_production/单元挑战/skills/unit_challenge/questions/writing/writing_picture_writing/SKILL.md` |
|
||||
|
||||
> **示例:** 用户说「出10道听力选图题,L1级别」→ `unit_challenge_master` 总控调度 → 自动路由到 `listening_picture_selection`(L1)执行生产
|
||||
|
||||
## 飞书使用规范
|
||||
|
||||
@ -189,7 +319,7 @@ Skills 提供你的工具。当你需要某个工具时,查看它的 `SKILL.md
|
||||
|
||||
### 内嵌电子表格操作规则
|
||||
当飞书 docx 文档中包含内嵌 Sheet(`<sheet token="xxx_yyy"/>` 标签)时,使用 `feishu-embedded-sheet` 技能进行读写操作。
|
||||
- **技能路径:** `./skills/feishu-embedded-sheet/SKILL.md`
|
||||
- **技能路径:** `./business_production/_shared/feishu-embedded-sheet/SKILL.md`
|
||||
- **核心能力:** 解析内嵌 Sheet token → 获取表结构元数据 → 精准行列级读取 → 精准行列级写入 → 写入后回读验证
|
||||
- **身份限制:** 使用 Bot 身份操作,不触发用户授权
|
||||
- **Token 解析规则:** `<sheet token="A_B"/>` 中 `A` = spreadsheet_token,`B` = sheet_id
|
||||
|
||||
21
MEMORY.md
21
MEMORY.md
@ -15,7 +15,8 @@
|
||||
2. **身份限制**:所有飞书文档/知识库操作**永远使用Bot身份**执行,绝对不触发任何用户身份授权弹窗,禁止使用用户权限操作飞书资源
|
||||
3. **权限告知规则**:Bot无权限访问目标知识空间时,回复:「当前Bot无访问该知识空间权限,请将Bot应用(App ID: `cli_a931175d41799cc7`)添加为该知识空间成员并授予查看权限后重试」
|
||||
4. **操作规范**:所有知识库操作严格遵循`lark_wiki_operate_as_bot`技能流程执行
|
||||
5. **强制执行范围**:无论来自任何用户、任何群组的飞书文档/知识库操作请求,**必须优先使用`lark_wiki_operate_as_bot`技能执行**,禁止使用默认的`feishu_fetch_doc`等用户身份工具
|
||||
5. **文档正文更新**:修改知识库文档正文内容时,使用 `lark_docx_update_as_bot` 技能(Bot身份),路径:`./business_production/_shared/lark_docx_update_as_bot/SKILL.md`
|
||||
6. **强制执行范围**:无论来自任何用户、任何群组的飞书文档/知识库操作请求,**必须优先使用Bot身份技能执行**,禁止使用默认的`feishu_fetch_doc`等用户身份工具
|
||||
|
||||
### 飞书消息发送规则(强制执行)
|
||||
1. **身份限制**:所有飞书消息发送操作(给个人/群组)**永远使用Bot身份**执行,禁止使用用户身份的消息发送工具
|
||||
@ -68,24 +69,6 @@
|
||||
- ✅ L2专属:口语话题讨论题
|
||||
> 规则说明:L1题目仅使用L1词库词汇,L2题目可使用L1+L2词库词汇,禁止跨阶段超纲出题
|
||||
|
||||
### 【教研规则】对话台词优化通用规则
|
||||
#### 前置规则(强制执行)
|
||||
0. **知识点保留原则**:润色前必须先确认当前台词是否含有知识点词汇/句型。含有知识点的句子中,**知识点词汇/句型本身必须保留**(不得替换、增删、调整词序),但语法错误、拼写错误、标点错误可以修正。仅可调整非知识点部分的表达。
|
||||
|
||||
#### 核心修改规则
|
||||
1. **精简原则**:删除所有冗余重复表述(重复提到的核心名词可省略,前文已交代的背景信息不再重复)
|
||||
2. **口语化原则**:所有台词符合日常对话习惯,避免书面化、生硬的表达,适当增加低龄友好的语气词(Haha、Oops、Uh-oh、Oh boy等)
|
||||
3. **拆分原则**:长度超过8个单词的长句拆分为2-3个短句,每句对应一个动作/情绪节点,增强交互节奏
|
||||
4. **情绪匹配原则**:台词语气严格匹配角色当前情绪(惊讶时拆分句子加问号,欢呼时用短词,失落时用省略号)
|
||||
5. **场景适配原则**:可通过动画/画面表达的内容,不再用台词重复表述,减少信息冗余
|
||||
|
||||
#### 统一风格标准
|
||||
整体风格定位:低龄友好、活泼生动、节奏感强、代入感高
|
||||
- 单句最长不超过10个单词,核心知识点相关句子不超过7个单词
|
||||
- 每个角色的台词符合其人设
|
||||
- 对话节奏快,每2-3句台词对应一个剧情节点或互动环节
|
||||
- 弱化说教感,所有指令和引导都以自然对话的方式呈现
|
||||
|
||||
### 【教研规则】文本输出格式规范(强制执行)
|
||||
1. **禁止 Markdown 标记**:生成单元挑战的音频文本、阅读文本等任何内容文本时,禁止使用 `**` `*` `__` `_` 等 Markdown 加粗/斜体标识,也禁止使用 `#` `>` `-` 等块级 Markdown 语法。输出纯文本即可。
|
||||
2. **适用场景**:单元挑战所有文本输出(音频台词、阅读理解文章、写作提示、口语话题等),以及任何需要嵌入题目 jsonData 的文本内容
|
||||
|
||||
69
add_month_week.py
Normal file
69
add_month_week.py
Normal file
@ -0,0 +1,69 @@
|
||||
import pandas as pd
|
||||
|
||||
# 文件路径
|
||||
file_path = r'/root/.openclaw/workspace-xiaoyan/business_knowledge/新知识库初版/全包词汇/L2知识库-三级+A2.xlsx'
|
||||
|
||||
# 读取文件
|
||||
df = pd.read_excel(file_path)
|
||||
|
||||
print("现有表格的列名:")
|
||||
print(df.columns.tolist())
|
||||
print("\n现有表格的前5行:")
|
||||
print(df.head())
|
||||
print(f"\n现有表格总行数:{len(df)}")
|
||||
|
||||
# 定义要添加的单词、词性和词义
|
||||
words_to_add = [
|
||||
# 月份
|
||||
("January", "n", "一月"),
|
||||
("February", "n", "二月"),
|
||||
("March", "n", "三月"),
|
||||
("April", "n", "四月"),
|
||||
("May", "n", "五月"),
|
||||
("June", "n", "六月"),
|
||||
("July", "n", "七月"),
|
||||
("August", "n", "八月"),
|
||||
("September", "n", "九月"),
|
||||
("October", "n", "十月"),
|
||||
("November", "n", "十一月"),
|
||||
("December", "n", "十二月"),
|
||||
|
||||
# 星期
|
||||
("Monday", "n", "星期一"),
|
||||
("Tuesday", "n", "星期二"),
|
||||
("Wednesday", "n", "星期三"),
|
||||
("Thursday", "n", "星期四"),
|
||||
("Friday", "n", "星期五"),
|
||||
("Saturday", "n", "星期六"),
|
||||
("Sunday", "n", "星期日"),
|
||||
]
|
||||
|
||||
# 按字母顺序排序
|
||||
words_to_add_sorted = sorted(words_to_add, key=lambda x: x[0].lower())
|
||||
|
||||
print("\n" + "="*80)
|
||||
print("要添加的单词(按字母顺序):")
|
||||
for word, pos, meaning in words_to_add_sorted:
|
||||
print(f"{word:15s} {pos:5s} {meaning}")
|
||||
|
||||
# 创建新行的DataFrame
|
||||
new_rows = pd.DataFrame(words_to_add_sorted, columns=['单词', '词性', '中文释义'])
|
||||
|
||||
# 填充其他列(为空)
|
||||
for col in df.columns:
|
||||
if col not in ['单词', '词性', '中文释义']:
|
||||
new_rows[col] = ""
|
||||
|
||||
# 合并到原数据
|
||||
df_updated = pd.concat([df, new_rows], ignore_index=True)
|
||||
|
||||
# 按单词字母顺序排序
|
||||
df_updated = df_updated.sort_values(by='单词', key=lambda x: x.str.lower())
|
||||
|
||||
# 保存结果
|
||||
df_updated.to_excel(file_path, index=False)
|
||||
|
||||
print("\n" + "="*80)
|
||||
print(f"已添加 {len(new_rows)} 个单词")
|
||||
print(f"更新后表格总行数:{len(df_updated)}")
|
||||
print(f"已保存到:{file_path}")
|
||||
BIN
business_knowledge/新知识库初版/全包词汇/L2知识库-三级+A2.xlsx
Normal file
BIN
business_knowledge/新知识库初版/全包词汇/L2知识库-三级+A2.xlsx
Normal file
Binary file not shown.
Binary file not shown.
BIN
business_knowledge/新知识库初版/全包词汇/新课标单词_36-40.xlsx
Normal file
BIN
business_knowledge/新知识库初版/全包词汇/新课标单词_36-40.xlsx
Normal file
Binary file not shown.
Binary file not shown.
@ -208,6 +208,31 @@ curl -s -X GET \
|
||||
6. **数据类型**:写入时,数字直接用 number 类型,文本用 string,空值用 null
|
||||
7. **换行符**:需要在单元格内换行时,在字符串中使用 `\n`
|
||||
|
||||
### ⚠️ 批量写入前必须验证行号连续性(强制执行)
|
||||
|
||||
**问题:** 飞书 Sheets API 的 range 写入是按连续区域覆盖的。如果 range 指定 `F4:F67`,API 会把数据依次写入 Row 4, 5, 6, ..., 67,**不管这些行是否对应正确的数据行**。
|
||||
|
||||
**场景:** 剧本表格中,E 列有内容的行号不连续(Row 4 有台词、Row 5 是剧情描述空行、Row 6 又有台词),如果按连续 range 批量写入,会导致 Row 6 的英文台词写到 Row 5 上,造成全列偏移。
|
||||
|
||||
**强制规则:**
|
||||
1. 写入前,先统计目标行号列表,检查是否连续(`rows[i+1] - rows[i] == 1`)
|
||||
2. **行号连续** → 可以用 range 批量写入(如 `F4:F67`)
|
||||
3. **行号不连续** → 必须逐行写入(每个行号单独一个 range,如 `F4:F4`, `F6:F6`, ...),或先清空整列再逐行写入
|
||||
4. 写入后必须抽样验证 E/F 列行号对齐(至少抽查前 5 行、中间 5 行、末尾 5 行)
|
||||
|
||||
```python
|
||||
# 示例:检查行号连续性
|
||||
rows = sorted(data.keys())
|
||||
is_continuous = all(rows[i+1] - rows[i] == 1 for i in range(len(rows)-1))
|
||||
if is_continuous:
|
||||
# 安全:批量 range 写入
|
||||
write_range(f"F{rows[0]}:F{rows[-1]}", values)
|
||||
else:
|
||||
# 不安全:逐行写入
|
||||
for row in rows:
|
||||
write_range(f"F{row}:F{row}", [data[row]])
|
||||
```
|
||||
|
||||
## 异常处理
|
||||
|
||||
| 错误码 | 含义 | 处理方式 |
|
||||
@ -1,3 +1,8 @@
|
||||
---
|
||||
name: knowledge-mastery-calculator
|
||||
description: 瓦拉英语课程知识点掌握度精准计算器,解决传统判定方法「跟读通过=掌握」的核心痛点,真实反映用户语言学习实际掌握情况
|
||||
---
|
||||
|
||||
# Skill: 知识点掌握度计算器
|
||||
## 基本信息
|
||||
- **技能名称:** 知识点掌握度精准计算器
|
||||
@ -30,23 +30,23 @@ metadata:
|
||||
## 使用示例
|
||||
### 1. 列出多维表格所有数据表
|
||||
```bash
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_tables <app_token>
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_tables <app_token>
|
||||
```
|
||||
### 2. 读取数据表记录
|
||||
```bash
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_records <app_token> <table_id> [page_size]
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_records <app_token> <table_id> [page_size]
|
||||
```
|
||||
### 3. 新增记录
|
||||
```bash
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh create_record <app_token> <table_id> '{"字段名1":"值1","字段名2":"值2"}'
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh create_record <app_token> <table_id> '{"字段名1":"值1","字段名2":"值2"}'
|
||||
```
|
||||
### 4. 更新记录
|
||||
```bash
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh update_record <app_token> <table_id> <record_id> '{"字段名1":"新值"}'
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh update_record <app_token> <table_id> <record_id> '{"字段名1":"新值"}'
|
||||
```
|
||||
### 5. 删除记录
|
||||
```bash
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh delete_record <app_token> <table_id> <record_id>
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh delete_record <app_token> <table_id> <record_id>
|
||||
```
|
||||
## 完整执行流程
|
||||
1. 自动获取Bot租户访问凭证(有效期2小时,自动复用)
|
||||
135
business_production/_shared/lark_docx_update_as_bot/SKILL.md
Normal file
135
business_production/_shared/lark_docx_update_as_bot/SKILL.md
Normal file
@ -0,0 +1,135 @@
|
||||
---
|
||||
name: lark_docx_update_as_bot
|
||||
version: 1.0.0
|
||||
description: "飞书文档正文Bot身份写入技能,使用 lark-cli docs +update --api-version v2 --as bot 更新文档正文内容,补齐「读文档→读内嵌Sheet→回填文档正文」全链路Bot身份闭环"
|
||||
metadata:
|
||||
requires:
|
||||
permissions: ["docx:document", "docx:document:write_only"]
|
||||
---
|
||||
|
||||
# lark_docx_update_as_bot 技能规范
|
||||
|
||||
## 核心规则(强制执行)
|
||||
1. **身份限制**:所有文档正文更新操作**永远使用Bot身份**执行(`--as bot`),绝对不触发任何用户身份授权弹窗
|
||||
2. **文档范围限制**:支持知识库文档(`/wiki/`)和个人文档(`/doc/`),前提是Bot有对应文档的编辑权限
|
||||
3. **权限告知规则**:
|
||||
- Bot无权限编辑目标文档:回复「当前Bot无编辑该文档权限,请将Bot应用(App ID: `cli_a931175d41799cc7`)添加为文档协作者并授予编辑权限后重试」
|
||||
- 权限不足时提示需要开通的权限:`docx:document` 或 `docx:document:write_only`
|
||||
|
||||
## 适用场景
|
||||
- 将润色后的台词/文本回填到文档正文段落
|
||||
- 更新文档中的配置说明、备注等文本内容
|
||||
- 批量替换文档中的特定文本
|
||||
- 在文档中追加新章节/段落
|
||||
- 所有需要Bot身份修改文档正文的操作
|
||||
|
||||
## 前置条件
|
||||
- Bot应用已在飞书开发者后台开通 `docx:document` 权限
|
||||
- Bot已被添加为目标文档的协作者(至少「可编辑」权限)
|
||||
|
||||
## 完整执行链路
|
||||
|
||||
### 步骤1:获取文档内容和 block 结构
|
||||
先用 `lark_wiki_operate_as_bot` 或 `lark-cli docs +fetch --api-version v2 --as bot` 获取文档内容,定位需要修改的文本/block。
|
||||
|
||||
```bash
|
||||
# 读取文档(获取 block_id 用于精确编辑)
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +fetch --api-version v2 --doc "<doc_token>" --as bot
|
||||
```
|
||||
|
||||
### 步骤2:执行更新
|
||||
|
||||
#### 方式A:str_replace — 全文文本查找替换(推荐,无需 block_id)
|
||||
|
||||
```bash
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +update --api-version v2 --doc "<doc_token>" --as bot \
|
||||
--command str_replace \
|
||||
--pattern "要替换的原文" \
|
||||
--content "替换后的新文本"
|
||||
```
|
||||
|
||||
**Markdown 模式(支持跨行匹配 + 省略号语法):**
|
||||
|
||||
```bash
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +update --api-version v2 --doc "<doc_token>" --as bot \
|
||||
--command str_replace \
|
||||
--doc-format markdown \
|
||||
--pattern "开头文本...结尾文本" \
|
||||
--content "替换后的完整内容"
|
||||
```
|
||||
|
||||
#### 方式B:block_replace — 替换指定 block(需先获取 block_id)
|
||||
|
||||
```bash
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +update --api-version v2 --doc "<doc_token>" --as bot \
|
||||
--command block_replace \
|
||||
--block-id "blkcnXXXX" \
|
||||
--content '<p>替换后的段落内容</p>'
|
||||
```
|
||||
|
||||
#### 方式C:append — 在文档末尾追加
|
||||
|
||||
```bash
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +update --api-version v2 --doc "<doc_token>" --as bot \
|
||||
--command append \
|
||||
--content '<h2>新章节</h2><p>追加的内容</p>'
|
||||
```
|
||||
|
||||
#### 方式D:block_insert_after — 在指定 block 后插入
|
||||
|
||||
```bash
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +update --api-version v2 --doc "<doc_token>" --as bot \
|
||||
--command block_insert_after \
|
||||
--block-id "blkcnXXXX" \
|
||||
--content '<p>插入的内容</p>'
|
||||
```
|
||||
|
||||
### 步骤3:验证更新结果
|
||||
|
||||
```bash
|
||||
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
|
||||
lark-cli docs +fetch --api-version v2 --doc "<doc_token>" --as bot
|
||||
```
|
||||
|
||||
## 指令速查表
|
||||
|
||||
| 指令 | 说明 | 必需参数 | 适用场景 |
|
||||
|------|------|----------|----------|
|
||||
| `str_replace` | 全文文本查找替换 | `--pattern` `--content` | 回填润色文本、修正错别字 |
|
||||
| `block_replace` | 替换指定 block | `--block-id` `--content` | 替换整段内容 |
|
||||
| `block_insert_after` | 在指定 block 后插入 | `--block-id` `--content` | 插入新段落 |
|
||||
| `append` | 文档末尾追加 | `--content` | 追加新章节 |
|
||||
| `block_delete` | 删除指定 block | `--block-id` | 删除废弃内容 |
|
||||
| `overwrite` | ⚠️ 全文覆盖 | `--content` | 完全重建文档(慎用) |
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **优先 str_replace**:回填润色文本等场景,直接用 str_replace 匹配原文替换,无需获取 block_id
|
||||
2. **Markdown 模式跨行匹配**:需要替换大段内容时,用 `--doc-format markdown` + `前缀...后缀` 省略号语法
|
||||
3. **精确操作优于全文覆盖**:避免使用 `overwrite`,会丢失图片、评论等
|
||||
4. **保护不可重建内容**:替换时避开包含图片、画板、电子表格 token 的 block
|
||||
5. **写入后必须验证**:每次更新后回读确认内容正确
|
||||
|
||||
## 与其他技能的配合
|
||||
|
||||
| 场景 | 技能链路 |
|
||||
|------|----------|
|
||||
| 读文档 → 读内嵌Sheet → 回填正文 | `lark_wiki_operate_as_bot` → `feishu-embedded-sheet` → **本技能** |
|
||||
| 读文档 → 修改正文 | `lark_wiki_operate_as_bot` → **本技能** |
|
||||
| 读文档 → 读内嵌Sheet → 写Sheet | `lark_wiki_operate_as_bot` → `feishu-embedded-sheet` |
|
||||
|
||||
## 异常处理
|
||||
|
||||
| 错误码 | 含义 | 处理方式 |
|
||||
|--------|------|---------|
|
||||
| `99991400` | 频率限制 | 等待后重试,使用指数退避 |
|
||||
| `429` | 并发编辑限制 | 同一文档每秒最多3次编辑,排队重试 |
|
||||
| `403` | 无权限 | Bot未被添加为文档协作者,需用户授权 |
|
||||
| `400` | 参数错误 | 检查 doc_token、block_id、pattern 格式 |
|
||||
| `404` | 文档/block不存在 | 检查 token 是否正确,block 是否已被删除 |
|
||||
@ -2,7 +2,7 @@
|
||||
"""Apply answer distribution fixes to rewrite_p4_all.py"""
|
||||
import sys
|
||||
|
||||
with open('/root/.openclaw/workspace-xiaoyan/scripts/rewrite_p4_all.py', 'r') as f:
|
||||
with open('/root/.openclaw/workspace-xiaoyan/business_production/单元挑战/scripts/rewrite_p4_all.py', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
fixes = [
|
||||
@ -100,7 +100,7 @@ for i, line in enumerate(lines):
|
||||
break
|
||||
|
||||
# Write back
|
||||
with open('/root/.openclaw/workspace-xiaoyan/scripts/rewrite_p4_all.py', 'w') as f:
|
||||
with open('/root/.openclaw/workspace-xiaoyan/business_production/单元挑战/scripts/rewrite_p4_all.py', 'w') as f:
|
||||
f.write('\n'.join(lines))
|
||||
|
||||
print(f'\nApplied {patches_applied} patches')
|
||||
@ -4,7 +4,7 @@ Unit Challenge 听力审校脚本:P1/P2/P4/P7(P5/P6无数据,P3跳过)
|
||||
import json, subprocess, sys, os
|
||||
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
CRED_FILE = "/root/.openclaw/credentials/xiaoyan/config.json"
|
||||
|
||||
# Standard ability tags (from ability_tags.md)
|
||||
@ -17,7 +17,7 @@ import json, subprocess, os, sys
|
||||
|
||||
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
WORKSPACE = os.path.dirname(SCRIPT_DIR)
|
||||
BITABLE_SCRIPT = os.path.join(WORKSPACE, "skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
BITABLE_SCRIPT = os.path.join(WORKSPACE, "business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
|
||||
TABLES = {
|
||||
@ -12,7 +12,7 @@ import json, subprocess, os
|
||||
|
||||
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
WORKSPACE = os.path.dirname(SCRIPT_DIR)
|
||||
BITABLE_SCRIPT = os.path.join(WORKSPACE, "skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
BITABLE_SCRIPT = os.path.join(WORKSPACE, "business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
|
||||
TABLES = {
|
||||
@ -5,7 +5,7 @@
|
||||
import json, subprocess, sys
|
||||
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
|
||||
def exec_bash(cmd):
|
||||
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=30)
|
||||
@ -4,7 +4,7 @@
|
||||
import json, subprocess, copy
|
||||
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
|
||||
# ===== Standard Reading Ability Tags =====
|
||||
STANDARD_TAGS_L1 = {
|
||||
@ -4,7 +4,7 @@
|
||||
import json, subprocess, sys
|
||||
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
|
||||
# Standard ability tags
|
||||
TAG_L1 = {"显性信息定位|关键词识别","基础语境理解|场景/行为理解","图文判断|句图一致性",
|
||||
@ -4,7 +4,7 @@
|
||||
import json, subprocess
|
||||
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
SKILL_SCRIPT = "/root/.openclaw/workspace-xiaoyan/business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh"
|
||||
|
||||
records = [
|
||||
{
|
||||
@ -4,7 +4,7 @@
|
||||
import json, subprocess, copy
|
||||
|
||||
APP_TOKEN = 'CMHSbUUjka3TrUsaxxEc297ongf'
|
||||
SKILL = 'skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh'
|
||||
SKILL = 'business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh'
|
||||
|
||||
# ===== Ability tag mappings =====
|
||||
TAG_MAP = {
|
||||
@ -8,7 +8,7 @@ import json, subprocess, os, sys, time
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
TABLE_ID = "tblVmeDtBDKsAEfz"
|
||||
BASE_DIR = os.path.expanduser("~/.openclaw/workspace-xiaoyan")
|
||||
OPERATE_SCRIPT = os.path.join(BASE_DIR, "skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
OPERATE_SCRIPT = os.path.join(BASE_DIR, "business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
|
||||
def run_operate(action, *args):
|
||||
"""Run the operate_bitable.sh script"""
|
||||
@ -6,7 +6,7 @@ import json, subprocess, os, sys
|
||||
|
||||
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
WORKSPACE = os.path.dirname(SCRIPT_DIR)
|
||||
BITABLE_SCRIPT = os.path.join(WORKSPACE, "skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
BITABLE_SCRIPT = os.path.join(WORKSPACE, "business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh")
|
||||
APP_TOKEN = "CMHSbUUjka3TrUsaxxEc297ongf"
|
||||
|
||||
TABLES = {
|
||||
@ -203,16 +203,16 @@ Step 5: 写回 — 将审校结果写入对应表的「审校结果」/「审核
|
||||
|
||||
| 脚本 | 用途 | 对应表 |
|
||||
|------|------|--------|
|
||||
| `scripts/audit_unit_challenge_listening.py` | 听力 P1-P7 第1轮基础审校 | 所有听力表 |
|
||||
| `scripts/audit_unit_challenge_listening_v2.py` | 听力 P1-P7 第2轮深度审校 | 同上 |
|
||||
| `scripts/audit_unit_challenge_reading.py` | 阅读基础审校 | 所有阅读表 |
|
||||
| `scripts/audit_unit_challenge_v2.py` | 全题型基础检查 | 所有表 |
|
||||
| `scripts/audit_unit_challenge_v3.py` | 全题型深度检查 | 所有表 |
|
||||
| `scripts/write_audit_results_v3.py` | 审校结果写回 bitable | 所有表 |
|
||||
| `scripts/fill_speaking_expl.py` | 口语-P1 explanation 补充 | 口语-P1 |
|
||||
| `scripts/gen_writing_speaking.py` | 写作/口语内容生成 | 写作-P1/口语-P1/P2 |
|
||||
| `scripts/gen_writing_speaking_batch2.py` | 写作/口语批量生成 | 同上 |
|
||||
| `scripts/gen_batch3.py` | 写作/口语 C级批量生成 | 同上 |
|
||||
| `../../scripts/audit_unit_challenge_listening.py` | 听力 P1-P7 第1轮基础审校 | 所有听力表 |
|
||||
| `../../scripts/audit_unit_challenge_listening_v2.py` | 听力 P1-P7 第2轮深度审校 | 同上 |
|
||||
| `../../scripts/audit_unit_challenge_reading.py` | 阅读基础审校 | 所有阅读表 |
|
||||
| `../../scripts/audit_unit_challenge_v2.py` | 全题型基础检查 | 所有表 |
|
||||
| `../../scripts/audit_unit_challenge_v3.py` | 全题型深度检查 | 所有表 |
|
||||
| `../../scripts/write_audit_results_v3.py` | 审校结果写回 bitable | 所有表 |
|
||||
| `../../scripts/fill_speaking_expl.py` | 口语-P1 explanation 补充 | 口语-P1 |
|
||||
| `../../scripts/gen_writing_speaking.py` | 写作/口语内容生成 | 写作-P1/口语-P1/P2 |
|
||||
| `../../scripts/gen_writing_speaking_batch2.py` | 写作/口语批量生成 | 同上 |
|
||||
| `../../scripts/gen_batch3.py` | 写作/口语 C级批量生成 | 同上 |
|
||||
|
||||
## 已知能力标签库
|
||||
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
---
|
||||
name: reading_pic_judge
|
||||
description: K12英语阅读看图判断题标准化设计、生产、审校工具。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读看图判断题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读看图判断题。触发关键词:阅读看图判断、reading pic judge、看图判断题生产
|
||||
---
|
||||
|
||||
|
||||
## 文本输出规范(强制执行)
|
||||
|
||||
所有输出的文本内容(台词、题目、选项、解析、音频文本、阅读文章等)必须遵守以下规则:
|
||||
|
||||
1. 禁止 Markdown 标记:禁止使用 ** * __ _ 等加粗/斜体标识,也禁止使用 # > - 等块级 Markdown 语法。所有文本纯文本输出。
|
||||
2. 英式拼写优先:单词涉及英美式拼写差异时(如 colour/color、centre/center、travelling/traveling),统一选择英式拼写。
|
||||
3. 标点符号规范:严格区分全角/半角符号。中文内容使用全角标点(,。!?),英文内容使用半角标点(. , ! ?),不得混用。
|
||||
|
||||
# Reading Pic Judge 阅读看图判断题生产技能
|
||||
## 题型说明
|
||||
阅读看图判断题:学生查看图片,然后回答关于图片内容的判断题,通常是Yes/No问题。
|
||||
## JSON结构示例
|
||||
```json
|
||||
{
|
||||
"category": "reading",
|
||||
"type": "reading_pic_judge",
|
||||
"questionSetID": "010401",
|
||||
"textTitle": "A Letter from Tom",
|
||||
"questionSet": [{
|
||||
"questionImage": "010401-00.png",
|
||||
"question": "What can you do at Sunny Salon?",
|
||||
"answerText": "Yes",
|
||||
"ability": ["听觉抓取关键信息", "听觉抓取关键信息", "多特征整合", "语用推断"],
|
||||
"explanation": "根据图片内容判断正确答案。"
|
||||
}]
|
||||
}
|
||||
```
|
||||
## 生产规则
|
||||
1. 提供图片和相关问题
|
||||
2. 答案为Yes或No
|
||||
3. 绑定相应的能力标签
|
||||
@ -1,37 +0,0 @@
|
||||
---
|
||||
name: reading_pic_qa
|
||||
description: K12英语阅读看图回答题标准化设计、生产、审校工具。使用场景:(1) 根据给定知识点、难度等级生成符合教研规范的阅读看图回答题;(2) 校验题目格式、难度匹配、内容合规性;(3) 批量生产阅读看图回答题。触发关键词:阅读看图回答、reading pic qa、看图回答题生产
|
||||
---
|
||||
|
||||
|
||||
## 文本输出规范(强制执行)
|
||||
|
||||
所有输出的文本内容(台词、题目、选项、解析、音频文本、阅读文章等)必须遵守以下规则:
|
||||
|
||||
1. 禁止 Markdown 标记:禁止使用 ** * __ _ 等加粗/斜体标识,也禁止使用 # > - 等块级 Markdown 语法。所有文本纯文本输出。
|
||||
2. 英式拼写优先:单词涉及英美式拼写差异时(如 colour/color、centre/center、travelling/traveling),统一选择英式拼写。
|
||||
3. 标点符号规范:严格区分全角/半角符号。中文内容使用全角标点(,。!?),英文内容使用半角标点(. , ! ?),不得混用。
|
||||
|
||||
# Reading Pic QA 阅读看图回答题生产技能
|
||||
## 题型说明
|
||||
阅读看图回答题:学生查看图片,然后回答关于图片内容的开放性问题。
|
||||
## JSON结构示例
|
||||
```json
|
||||
{
|
||||
"category": "reading",
|
||||
"type": "reading_pic_qa",
|
||||
"questionSetID": "010401",
|
||||
"textTitle": "Look and read. Write yes or no.",
|
||||
"textImage":"010401-00.png",
|
||||
"questionSet": [{
|
||||
"question": "The man has got black hair and glasses. ",
|
||||
"answerText": "Yes",
|
||||
"ability": ["听觉抓取关键信息", "听觉抓取关键信息", "多特征整合", "语用推断"],
|
||||
"explanation": "根据图片内容回答问题。"
|
||||
}]
|
||||
}
|
||||
```
|
||||
## 生产规则
|
||||
1. 提供图片和相关问题
|
||||
2. 答案为开放性回答
|
||||
3. 绑定相应的能力标签
|
||||
@ -282,14 +282,14 @@ description: K12英语写作看图回答题标准化设计、生产、审校工
|
||||
|
||||
```bash
|
||||
# 1. 定位表
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_tables <app_token>
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_tables <app_token>
|
||||
|
||||
# 2. 新建记录
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh create_record \
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh create_record \
|
||||
<app_token> <table_id> '{"题目集合 ID":"000001","jsonData":"...","图片描述":"..."}'
|
||||
|
||||
# 3. 回读验证
|
||||
./skills/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_records \
|
||||
./business_production/_shared/lark_bitable_operate_as_bot/scripts/operate_bitable.sh list_records \
|
||||
<app_token> <table_id> 5
|
||||
```
|
||||
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
---
|
||||
name: writing_pic_qa
|
||||
description: K12英语写作看图回答题标准化设计、生产、审校工具。完整规范见 common/writing_pic_qa/SKILL.md。触发关键词:写作看图回答、writing pic qa、看图回答题生产
|
||||
---
|
||||
|
||||
|
||||
## 文本输出规范(强制执行)
|
||||
|
||||
所有输出的文本内容(台词、题目、选项、解析、音频文本、阅读文章等)必须遵守以下规则:
|
||||
|
||||
1. 禁止 Markdown 标记:禁止使用 ** * __ _ 等加粗/斜体标识,也禁止使用 # > - 等块级 Markdown 语法。所有文本纯文本输出。
|
||||
2. 英式拼写优先:单词涉及英美式拼写差异时(如 colour/color、centre/center、travelling/traveling),统一选择英式拼写。
|
||||
3. 标点符号规范:严格区分全角/半角符号。中文内容使用全角标点(,。!?),英文内容使用半角标点(. , ! ?),不得混用。
|
||||
|
||||
# Writing Pic QA 写作看图回答题生产技能
|
||||
|
||||
> 📌 **完整生产规范请参阅:** `common/writing_pic_qa/SKILL.md`
|
||||
>
|
||||
> 本文件保留为快速参考入口,含题型 JSON 输出结构摘要。
|
||||
|
||||
## 题型说明
|
||||
写作看图回答题:学生查看图片,根据提示写出答案。考察图文匹配 + 书写表达。
|
||||
|
||||
## JSON 结构(bitable 写入格式)
|
||||
```json
|
||||
{
|
||||
"first": { "category": "writing", "type": "writing_pic_qa", "questionSetID": "...", ... },
|
||||
"second": { "category": "writing", "type": "writing_pic_qa", "questionSetID": "...", ... }
|
||||
}
|
||||
```
|
||||
wrapper 以 `first`/`second` 分别对应题组1/题组2。每个题组内 `questionSet` 包含共享图片及题组内全部小题。
|
||||
|
||||
## 快速链接
|
||||
- **完整生产规范**:`common/writing_pic_qa/SKILL.md`(11节完整规范)
|
||||
- **参考样例**:bitable `单元挑战 → 写作-P3-看图回答题`,record_id: `recviZlAxxXlAb`(ID=000001)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user