用途
飞书幻灯片(lark-slides)是 lark-cli 中用于操作飞书演示文稿(Slides)的技能。适用于需要创建或编辑幻灯片、读取或修改单个页面、给已有演示文稿追加页面、查看或回滚历史版本、获取页面截图、上传下载图片等场景。当用户需要创建或编辑幻灯片、读取或修改单个页面时使用;当用户给出 doubao.com 的 /slides/ URL/token 时,也应直接使用本技能。
主要能力
命令以 shortcut 形式调用(lark-cli slides +<verb> [flags]),主要包括:
- +create:创建 PPT,可选一步添加页面
- +add-slide:向已有演示文稿追加或插入一页(--before-slide-id 控制位置)
- +delete-slide:按 slide_id 删除一页
- +xml-get:读取全文或单页 XML
- +screenshot:把幻灯片页面截图保存为本地图片
- +media-upload:上传本地图片到指定演示文稿,返回 file_token,最大 20 MB
- +media-download:根据 file_token 下载本地图片
- +replace-slide:对已有页面做块级替换/插入(block_replace / block_insert),不改变页序
- +update-slide:整页覆盖写入,slide_id 和页序不变,未写进 --content 的元素会被删除
还支持通过 cli/lark-slides-history.md 查看与回滚历史版本。
使用方式
- 准备与读取:开始前需先用 Read 工具阅读 ../lark-shared/SKILL.md,认证、权限和全局参数以其为准;生成任何 XML 之前必须先读取 xml/xml-schema-quick-ref.md;新建或大幅改写时还要读取 planning-layer.md、visual-planning.md、asset-planning.md,涉及图表读取 xml/slides_chart_demo.xml。
- 需求分析与规划:分析主题、受众、页数、风格;新建或大幅改写必须先创建目录并写入 .lark-slides/plan/<deck-or-task-id>/slide_plan.json,再生成 XML。
- 生成 XML 与创建:逐页消费 plan(key_message 定主结论,layout_type 定几何,visual_focus 定主视觉,text_density 定文本量);按 cli/lark-slides-create.md 判断一步创建还是两步创建。
- 校验与交付:提交完整 <slide> XML 前,必须保存到本地文件并运行 scripts/xml_lint.py,summary.error_count 必须为 0;创建完成后用 +xml-get 回读全文并按 workflow/validation-xml.md 显式验证,没问题后用 NotifyHuman 工具交付 PPT 链接。
身份选择上默认优先显式使用 --as user,执行前先完成用户授权(lark-cli auth login --domain slides);--as bot 仅在用户明确要求以应用身份操作时使用。
适用场景
- 新建演示文稿,或给已有 PPT 追加/插入页面
- 阅读或分析已有 PPT,回读全文或单页 XML
- 编辑单个标题、文本块、图片或局部元素(块级替换)
- 一页改动很多、改背景或删除若干元素(整页覆盖)
- 将模板导入为 Slides 再编辑
- 查看或回滚历史版本、获取页面截图、上传或下载图片
限制与关键约束
- 页面尺寸固定为 960x540,主体内容须在页面边界内。
- XML 协议以 references/xml/slides_xml_schema_definition.xml 为唯一正确来源,md 内容与其不一致时以后者为准。
- <slide> 直接子元素只有 <style>、<data>、<note>;文本必须用 <content><p>...</p></content> 表达。
- <img src> 只能用上传到飞书 drive 的 file_token,禁止使用 http(s) 外链 URL;图片最大 20 MB,媒体上传不支持分片。
- 渐变色必须使用 rgba() 格式并带百分比停靠点,否则服务端会回退为白色。
- 删除不可逆,删前需先回读确认 slide_id。
- 知识库 /wiki/ 链接不能直接作为 xml_presentation_id,需先解析节点并校验 obj_type 为 slides。
- 回滚接口只接受 history_version_id,不能直接传 revision_id。
- 缺少真实素材时必须使用 fallback_if_missing 生成替代图片,不要留空。
具体参数以对应 reference 文档和 lark-cli slides +<verb> --help 为准。