ai_member_xiaobian/skills/feishu-script-writer/SKILL.md
2026-05-15 10:57:05 +08:00

115 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: feishu-script-writer
description: >
将儿童互动英语剧本写入飞书电子表格支持8列标准格式、知识点富文本标注粗体/红色)、
分段续写和新建Sheet。替代此前在对话框中发送表格的交付方式。
**触发场景:**
(1) 剧本撰写完成需要输出到飞书表格供编剧审阅
(2) 需要在已有表格中续写新的「起/承/转/合」段落
(3) 用户提到「发到飞书表格」「更新表格」「写到表格里」
---
# 飞书剧本表格输出技能
## 概述
将儿童互动英语剧本以8列标准格式写入飞书电子表格支持知识点富文本标注实现与编剧的实时协作编辑。
## 工具
使用 `scripts/feishu_sheet_writer.py` Python 脚本,通过飞书 Sheets V2 API + Bot 身份操作。
---
## 工作流
### Step 1创建表格首次使用时
为每个 Unit 创建一个电子表格:
```bash
python3 scripts/feishu_sheet_writer.py create --title "U22 剧本" --credential xiaobian
```
返回 `{"token": "...", "url": "...", "title": "..."}`,记录 token 和 url。
### Step 2创建 Sheet每段剧本一个 Sheet
为每个「起/承/转/合」创建独立 Sheet方便编剧按段落审阅
```bash
python3 scripts/feishu_sheet_writer.py create-sheet \
--token <spreadsheet_token> --title "U22_L1_起" --credential xiaobian
```
返回 `{"sheet_id": "...", "title": "..."}`,记录 sheet_id。
### Step 3写入剧本数据
将剧本数据保存为临时 JSON 文件,然后写入:
```bash
python3 scripts/feishu_sheet_writer.py write \
--token <spreadsheet_token> --sheet <sheet_id> \
--data /tmp/script_data.json --credential xiaobian
```
### Step 4追加后续内容
在已有 Sheet 中续写新的桥段:
```bash
python3 scripts/feishu_sheet_writer.py append \
--token <spreadsheet_token> --sheet <sheet_id> \
--data /tmp/new_data.json --start-row <next_row> --credential xiaobian
```
---
## 数据格式JSON
```json
{
"knowledge_points": ["afternoon", "adventure", "store", "add", "double", "sweet"],
"rows": [
["类型", "配置信息", "剧情描述", "角色名", "编剧台词", "英文台词", "组件配置", "知识点"],
["TL", "", "【场景】沙漠镇公交站\n【角色】User、Vicky、Peter、Eva", "", "", "", "", ""],
["", "", "Dad窝在扶手椅里。\n【emoji】Dad😌", "", "", "", "", ""],
["", "", "", "Dad", "We have the whole **afternoon**, dear.", "", "", ""],
["对话互动", "", "", "User", {"text": "Can we read the space **adventure**?", "is_user": true}, "", "", ""]
]
}
```
### 格式说明
- **前4列类型/剧情描述/角色名/编剧台词)**:编剧填写
- **后4列配置信息/英文台词/组件配置/知识点)**:预留空列
- **每行代表一个剧本单元格**
- **普通文本**:直接用字符串,知识点用 `**文字**` 标记
- **User台词**:使用对象格式 `{"text": "...", "is_user": true}` 标记知识点为粗体+红色(#f54a45)
- **NPC台词**:知识点自动识别为粗体(普通文本中的 `**文字**` 会自动转为粗体)
### 知识点自动格式化规则
1. NPC台词D列非User知识点 → **粗体**
2. User台词D列=UserE列含知识点知识点 → **粗体+红色(#f54a45)**
3. C列剧情描述纯文本不做知识点标注
---
## 表格结构规范
| 列序 | 列名 | 填写人 | 说明 |
|------|------|--------|------|
| A | 类型 | 编剧 | TL / 对话互动 / 图片互动-单选 等 |
| B | 配置信息 | 保留 | 编剧不填 |
| C | 剧情描述 | 编剧 | 场景/动作/音效/emoji标注 |
| D | 角色名 | 编剧 | 英文角色名User / Dad 等) |
| E | 编剧台词 | 编剧 | 英文台词,知识点粗体/红色 |
| F | 英文台词 | 保留 | 编剧不填 |
| G | 组件配置 | 保留 | 编剧不填 |
| H | 知识点 | 保留 | 编剧不填 |
---
## 协作模式
1. **小编写入**:剧本完成后写入表格,知识点已做富文本标注
2. **编剧编辑**:编剧直接在表格中修改台词、调整剧情描述
3. **小编续写**:使用 append 模式追加新内容,不覆盖编剧的修改
4. **版本追踪**:每个 Sheet 独立,起承转合各自演进
## 注意事项
- 写入前确认 spreadsheet_token 和 sheet_id 正确
- append 时确保 start_row 不覆盖已有内容(可用 lark-cli `+read` 确认当前行数)
- 首次写入一个 Sheet 使用 write覆盖模式后续使用 append追加模式