102 lines
3.6 KiB
Markdown
102 lines
3.6 KiB
Markdown
---
|
||
name: feishu-script-writer
|
||
description: >
|
||
将儿童互动英语剧本写入飞书电子表格,支持4列标准格式、分段续写和新建Sheet。
|
||
**触发场景:**
|
||
(1) 剧本撰写完成需要输出到飞书表格供编剧审阅
|
||
(2) 需要在已有表格中续写新的「起/承/转/合」段落
|
||
(3) 用户提到「发到飞书表格」「更新表格」「写到表格里」
|
||
---
|
||
|
||
# 飞书剧本表格输出技能
|
||
|
||
## 概述
|
||
将儿童互动英语剧本以4列纯文本格式写入飞书电子表格。所有台词均为纯文本。
|
||
|
||
创建表格时自动设置权限为「组织内任何人可通过链接编辑」。
|
||
写入数据时自动设置表头样式(粗体+灰底)。
|
||
|
||
## 工具
|
||
使用 `scripts/feishu_sheet_writer.py` Python 脚本,通过飞书 Sheets V2/V3 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 *** --title "U22_L1_起" --credential xiaobian
|
||
```
|
||
返回 `{"sheet_id": "...", "title": "..."}`,记录 sheet_id。
|
||
|
||
### Step 3:写入剧本数据
|
||
将剧本数据保存为临时 JSON 文件,然后写入:
|
||
```bash
|
||
python3 scripts/feishu_sheet_writer.py write \
|
||
--token *** --sheet <sheet_id> \
|
||
--data /tmp/script_data.json --credential xiaobian
|
||
```
|
||
|
||
### Step 4:追加后续内容
|
||
在已有 Sheet 中续写新的桥段:
|
||
```bash
|
||
python3 scripts/feishu_sheet_writer.py append \
|
||
--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、Dad", "", ""],
|
||
["", "Dad窝在扶手椅里。\n【emoji】Dad😌", "", ""],
|
||
["", "", "Dad", "We have the whole afternoon, dear."],
|
||
["中互动", "", "User", "Can we read the space adventure?"],
|
||
["中互动", "【插入图】球筐图片,请用户选出所有的 football", "", ""],
|
||
["核心互动", "【插入图】大场景图,可拖拽选项:[xxx]、[xxx]、[xxx]", "", ""]
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 表格结构规范
|
||
|
||
| 列序 | 列名 | 填写人 | 说明 |
|
||
|------|------|--------|------|
|
||
| 1 | 类型 | 编剧 | TL / 中互动 / 核心互动 |
|
||
| 2 | 剧情描述 | 编剧 | 场景/动作/音效/emoji标注/【插入图】 |
|
||
| 3 | 角色名 | 编剧 | 英文角色名(User / Dad 等),图片类互动留空 |
|
||
| 4 | 编剧台词 | 编剧 | 英文台词(纯文本),图片类互动留空 |
|
||
|
||
---
|
||
|
||
## 协作模式
|
||
|
||
1. **小编写入**:剧本完成后写入电子表格,编剧可直接审阅
|
||
2. **编剧编辑**:编剧直接在表格中修改台词、调整剧情描述
|
||
3. **小编续写**:使用 append 模式追加新内容,不覆盖编剧的修改
|
||
4. **版本追踪**:每个 Sheet 独立,起承转合各自演进
|
||
|
||
## 注意事项
|
||
- 写入前确认 spreadsheet_token 和 sheet_id 正确
|
||
- append 时确保 start_row 不覆盖已有内容(可用 lark-cli `+read` 确认当前行数)
|
||
- 首次写入一个 Sheet 使用 write(覆盖模式),后续使用 append(追加模式)
|