@amaster.ai/pi-lark 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/skills/lark-apps/SKILL.md +59 -14
- package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
- package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
- package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
- package/skills/lark-apps/creative-design/assets/index.html +27 -0
- package/skills/lark-apps/creative-design/creative-design.md +239 -0
- package/skills/lark-apps/creative-design/references/aily.md +39 -0
- package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
- package/skills/lark-apps/creative-design/references/charts.md +165 -0
- package/skills/lark-apps/creative-design/references/claude.md +36 -0
- package/skills/lark-apps/creative-design/references/codex.md +32 -0
- package/skills/lark-apps/creative-design/references/data-report.md +108 -0
- package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
- package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
- package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
- package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
- package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
- package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
- package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
- package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
- package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
- package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
- package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
- package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
- package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
- package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
- package/skills/lark-apps/references/lark-apps-automation.md +80 -2
- package/skills/lark-apps/references/lark-apps-cache.md +61 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +5 -5
- package/skills/lark-apps/references/lark-apps-create.md +6 -4
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-file.md +2 -2
- package/skills/lark-apps/references/lark-apps-get.md +1 -1
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
- package/skills/lark-apps/references/lark-apps-init.md +1 -1
- package/skills/lark-apps/references/lark-apps-list.md +2 -2
- package/skills/lark-apps/references/lark-apps-local-dev.md +80 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-base/SKILL.md +34 -19
- package/skills/lark-base/references/lark-base-cell-value.md +3 -3
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +17 -1
- package/skills/lark-base/references/lark-base-dashboard.md +17 -4
- package/skills/lark-base/references/lark-base-data-query-guide.md +8 -0
- package/skills/lark-base/references/lark-base-data-query.md +11 -4
- package/skills/lark-base/references/lark-base-field-create.md +21 -6
- package/skills/lark-base/references/lark-base-field-json.md +9 -6
- package/skills/lark-base/references/lark-base-field-update.md +17 -1
- package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
- package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
- package/skills/lark-base/references/lark-base-form-submit.md +16 -7
- package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
- package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
- package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
- package/skills/lark-base/references/lark-base-role-guide.md +11 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +11 -137
- package/skills/lark-base/references/role-config.md +31 -5
- package/skills/lark-calendar/SKILL.md +14 -8
- package/skills/lark-calendar/references/lark-calendar-create.md +6 -5
- package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +2 -1
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -1
- package/skills/lark-calendar/references/lark-calendar-update.md +10 -4
- package/skills/lark-contact/SKILL.md +19 -3
- package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
- package/skills/lark-doc/SKILL.md +26 -61
- package/skills/lark-doc/references/genres/business-analysis.md +30 -0
- package/skills/lark-doc/references/genres/data-report.md +32 -0
- package/skills/lark-doc/references/genres/email.md +38 -0
- package/skills/lark-doc/references/genres/execution-plan.md +27 -0
- package/skills/lark-doc/references/genres/formal-doc.md +37 -0
- package/skills/lark-doc/references/genres/meeting-minutes.md +24 -0
- package/skills/lark-doc/references/genres/memo-brief.md +25 -0
- package/skills/lark-doc/references/genres/official-redhead.md +73 -0
- package/skills/lark-doc/references/genres/prd.md +26 -0
- package/skills/lark-doc/references/genres/proposal.md +24 -0
- package/skills/lark-doc/references/genres/research-report.md +32 -0
- package/skills/lark-doc/references/genres/retrospective.md +25 -0
- package/skills/lark-doc/references/genres/route-consumer.md +37 -0
- package/skills/lark-doc/references/genres/route-creative.md +36 -0
- package/skills/lark-doc/references/genres/route-knowledge.md +39 -0
- package/skills/lark-doc/references/genres/route-marketing.md +40 -0
- package/skills/lark-doc/references/genres/route-media.md +36 -0
- package/skills/lark-doc/references/genres/route-opinion.md +38 -0
- package/skills/lark-doc/references/genres/route-personal-brand.md +36 -0
- package/skills/lark-doc/references/genres/route-platform.md +9 -0
- package/skills/lark-doc/references/genres/route-report.md +10 -0
- package/skills/lark-doc/references/genres/route-workplace.md +17 -0
- package/skills/lark-doc/references/genres/sop-tutorial.md +41 -0
- package/skills/lark-doc/references/genres/technical-doc.md +39 -0
- package/skills/lark-doc/references/genres/wechat.md +39 -0
- package/skills/lark-doc/references/genres/weekly-report.md +24 -0
- package/skills/lark-doc/references/genres/white-paper.md +32 -0
- package/skills/lark-doc/references/genres/xiaohongshu.md +38 -0
- package/skills/lark-doc/references/lark-doc-create-workflow.md +121 -0
- package/skills/lark-doc/references/lark-doc-create.md +22 -48
- package/skills/lark-doc/references/lark-doc-fetch.md +84 -93
- package/skills/lark-doc/references/lark-doc-history.md +16 -15
- package/skills/lark-doc/references/lark-doc-md.md +5 -1
- package/skills/lark-doc/references/lark-doc-media-download.md +2 -1
- package/skills/lark-doc/references/lark-doc-script.md +76 -0
- package/skills/lark-doc/references/lark-doc-update.md +70 -222
- package/skills/lark-doc/references/lark-doc-whiteboard.md +14 -17
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +46 -0
- package/skills/lark-doc/references/lark-doc-xml.md +38 -166
- package/skills/lark-drive/SKILL.md +32 -50
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
- package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +3 -3
- package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
- package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +9 -15
- package/skills/lark-drive/references/lark-drive-copy.md +87 -0
- package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
- package/skills/lark-drive/references/lark-drive-download.md +6 -1
- package/skills/lark-drive/references/lark-drive-export.md +3 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +25 -68
- package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +2 -2
- package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
- package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
- package/skills/lark-drive/references/lark-drive-preview.md +11 -1
- package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
- package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
- package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
- package/skills/lark-drive/references/lark-drive-search.md +7 -1
- package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
- package/skills/lark-drive/references/lark-drive-task-result.md +3 -0
- package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
- package/skills/lark-drive/references/lark-drive-update-title.md +78 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +5 -4
- package/skills/lark-event/SKILL.md +8 -4
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-event/references/lark-event-vc.md +8 -2
- package/skills/lark-im/SKILL.md +9 -9
- package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
- package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
- package/skills/lark-im/references/card/resource/icons.md +14 -0
- package/skills/lark-im/references/lark-im-chat-list.md +9 -2
- package/skills/lark-im/references/lark-im-chat-members-list.md +7 -4
- package/skills/lark-im/references/lark-im-chat-messages-list.md +10 -3
- package/skills/lark-im/references/lark-im-chat-search.md +9 -2
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +2 -2
- package/skills/lark-im/references/lark-im-feed-group-list.md +2 -2
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
- package/skills/lark-im/references/lark-im-flag-list.md +9 -8
- package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
- package/skills/lark-im/references/lark-im-messages-resources-download.md +19 -25
- package/skills/lark-im/references/lark-im-messages-search.md +4 -5
- package/skills/lark-im/references/lark-im-threads-messages-list.md +8 -4
- package/skills/lark-mail/references/lark-mail-triage.md +19 -4
- package/skills/lark-minutes/SKILL.md +1 -1
- package/skills/lark-minutes/references/lark-minutes-search.md +6 -7
- package/skills/lark-okr/SKILL.md +71 -26
- package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
- package/skills/lark-okr/references/lark-okr-create.md +173 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
- package/skills/lark-okr/references/lark-okr-entities.md +1 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
- package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
- package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
- package/skills/lark-shared/SKILL.md +3 -3
- package/skills/lark-sheets/SKILL.md +83 -82
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +13 -58
- package/skills/lark-sheets/references/lark-sheets-chart.md +2 -1
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +5 -5
- package/skills/lark-sheets/references/lark-sheets-read-data.md +80 -6
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +21 -10
- package/skills/lark-sheets/references/lark-sheets-styles-put.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-workbook.md +4 -3
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +40 -12
- package/skills/lark-sheets/scripts/lark_detect_subtables.py +593 -0
- package/skills/lark-sheets/scripts/lark_inspect_workbook.py +188 -0
- package/skills/lark-sheets/scripts/lark_profile_table.py +614 -0
- package/skills/lark-sheets/scripts/lark_sheet_range.py +176 -0
- package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +184 -0
- package/skills/lark-sheets/scripts/sheets_df.py +21 -3
- package/skills/lark-slides/SKILL.md +134 -104
- package/skills/lark-slides/references/asset-planning.md +6 -4
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-add-slide.md +92 -0
- package/skills/lark-slides/references/lark-slides-create.md +86 -66
- package/skills/lark-slides/references/lark-slides-delete-slide.md +65 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +6 -7
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +4 -27
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
- package/skills/lark-slides/references/lark-slides-replace-slide.md +22 -4
- package/skills/lark-slides/references/lark-slides-screenshot.md +33 -15
- package/skills/lark-slides/references/lark-slides-update-slide.md +146 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +90 -32
- package/skills/lark-slides/references/planning-layer.md +11 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1415 -1
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +539 -79
- package/skills/lark-slides/references/troubleshooting.md +26 -9
- package/skills/lark-slides/references/validation-checklist.md +55 -18
- package/skills/lark-slides/references/visual-planning.md +25 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +299 -51
- package/skills/lark-slides/scripts/sxsd_validator.py +1052 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1964 -195
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +4051 -501
- package/skills/lark-task/SKILL.md +7 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-create.md +9 -0
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-whiteboard/SKILL.md +21 -13
- package/skills/lark-whiteboard/elements/layout.md +1 -1
- package/skills/lark-whiteboard/elements/schema.md +2 -2
- package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +17 -16
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +7 -7
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +23 -31
- package/skills/lark-whiteboard/routes/dsl.md +11 -5
- package/skills/lark-whiteboard/routes/mermaid.md +3 -3
- package/skills/lark-whiteboard/routes/svg-edit.md +9 -6
- package/skills/lark-whiteboard/routes/svg.md +14 -7
- package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
- package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
- package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/mention.md +71 -0
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +6 -3
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +6 -3
- package/skills/lark-doc/references/lark-doc-word-stat.md +0 -93
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +0 -47
- package/skills/lark-doc/references/style/lark-doc-style.md +0 -68
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +0 -48
- package/skills/lark-doc/scripts/doc_word_stat.py +0 -1243
- package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -80
- package/skills/lark-slides/references/examples.md +0 -91
- package/skills/lark-slides/references/lark-slides-replace-pages.md +0 -95
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
- package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +0 -125
- package/skills/lark-slides/references/slide-templates.md +0 -201
- package/skills/lark-slides/references/slides_demo.xml +0 -226
- package/skills/lark-slides/references/xml-format-guide.md +0 -433
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-slides
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: "飞书幻灯片:创建和编辑幻灯片。创建演示文稿、读取幻灯片内容、管理幻灯片页面(创建、删除、读取、局部替换)。当用户需要创建或编辑幻灯片、读取或修改单个页面时使用。当用户给出 doubao.com 的 /slides/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。不负责:云文档内容编辑(走 lark-doc)、云文档里的独立画板对象(走 lark-whiteboard
|
|
4
|
+
description: "飞书幻灯片:创建和编辑幻灯片。创建演示文稿、读取幻灯片内容、管理幻灯片页面(创建、删除、读取、局部替换)。当用户需要创建或编辑幻灯片、读取或修改单个页面时使用。当用户给出 doubao.com 的 /slides/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。不负责:云文档内容编辑(走 lark-doc)、云文档里的独立画板对象(走 lark-whiteboard)、上传或下载普通文件(走 lark-drive)。"
|
|
5
5
|
metadata:
|
|
6
6
|
requires:
|
|
7
7
|
bins: ["lark-cli"]
|
|
@@ -10,44 +10,111 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
# slides (v1)
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
> 本技能文档较长,务必使用 Read 工具阅读两次,必须阅读完整全文。
|
|
14
|
+
|
|
15
|
+
## 权威经验
|
|
16
|
+
|
|
17
|
+
**权威经验是全局硬约束和高频易错点,必须牢记并严格遵守。**
|
|
18
|
+
|
|
19
|
+
- 你有充足的时间完成这个 PPT,质量永远比速度重要。
|
|
20
|
+
- PPT 的尺寸是 960x540,必须严格确保主体内容在页面边界内。
|
|
21
|
+
- !!!禁止交付无图产物!!! 必须使用大量图片增强视觉效果!!! 禁止重复使用同一张图!!!
|
|
22
|
+
- 封面页的主视觉必须是 `<img>`(来自生图工具或搜图工具),不要使用 `<shape>` 或 `<icon>` 拼出封面视觉。
|
|
23
|
+
- 禁止用 `<shape>` 和 `<line>` 拟形具体物项,必须使用生图工具生成的 `<img>`。
|
|
24
|
+
- 禁止在 `headline` 或 `title` 下方放置用于分隔或装饰的 `rect` 或 `<line>`。
|
|
25
|
+
- 禁止在任何页面内部使用无意义的装饰线条或色块条带,页面任何一边都不要使用贴边窄条。
|
|
26
|
+
- 生图工具的指令参数必须以“不要出现任何文字和颜色色号”结尾,避免生成的图片上出现干扰文字。
|
|
27
|
+
- 禁止使用 emoji 图标,任何位置都不能出现。
|
|
28
|
+
- 字号必须显式设置 `<content>` 的 `fontSize` 属性,不要依赖 `textType` 的默认字号兜底,这些兜底值明显偏大。
|
|
29
|
+
- 大数字、字号大或字数多的 `<content>` 必须设置 `wrap="true" autoFit="normal-auto-fit"` 属性自动换行和缩排,避免文字溢出。
|
|
30
|
+
- 文字颜色必须用 `<content>` 的 `color` 属性而不是 `fontColor` 属性。
|
|
31
|
+
- 文字行间距必须设置 `<content>` 的 `lineSpacing="multiple:xx"` 或 `lineSpacing="fixed:xx"` 而不是 `lineSpacing="xx"`。
|
|
32
|
+
- 图片必须用 `<img>` 而不是 `<image>`。
|
|
33
|
+
- IconPark 图标必须填充颜色(设置 `<fill><fillColor color="rgba(R,G,B,A)"/></fill>`)并和背景有足够对比。
|
|
34
|
+
- 绘制图表时原生图表(柱状、条形、折线、面积、饼(环)、雷达、组合图)用 `<chart>`,其他(漏斗图、金字塔图、象限图、矩阵图等)用 `<shape>` + `<line>` 模拟。
|
|
35
|
+
- 隐藏 `<chart>` 的图例只能通过不写或删除 `<chartLegend>` 实现,`<chartLegend>` 不支持 `position="none"`。
|
|
36
|
+
- 表格优先用 `rect` 和 `text` 模拟,其他用 `<table>`,没有 `<shape type="table">`。
|
|
37
|
+
- 必须设置 `<table>` 的 `width` 和 `height` 固定表格大小,同时设置需要保留列宽或行高的 `<col>` 的 `width` 和 `<tr>` 的 `height`,其余自动分配。
|
|
38
|
+
- `<td>` 直接子元素只有 `<fill>`(背景)、`<content>`(文字)和边框配置(一般不用),不能嵌套 `<shape>`、`<img>`、`<icon>`。
|
|
39
|
+
- `<shape type="rect">` 只是形状不是容器,`<icon>`、`<img>`、`<shape type="text">` 和其他 `<shape>` 必须与它平级靠坐标叠放。
|
|
40
|
+
- 填充渐变颜色必须用 `<fill><fillColor color="linear-gradient(135deg, rgba(R,G,B,A) 0%, rgba(R,G,B,A) 100%)"/></fill>`。
|
|
41
|
+
- 编辑页面前必须阅读 [`lark-slides-edit-workflows.md`](references/lark-slides-edit-workflows.md)。
|
|
42
|
+
- 绘制图表前必须阅读 [`slides_chart_demo.xml`](references/slides_chart_demo.xml)。
|
|
43
|
+
- 当用户要求无损复述历史上下文时,必须无损复述以上权威经验、必读的技能文档(需要重新阅读)和易错元素语法(尤其是 `<table>` 和 `<chart>`)。
|
|
44
|
+
|
|
45
|
+
## 豆包设计原则
|
|
46
|
+
|
|
47
|
+
适用范围:
|
|
48
|
+
|
|
49
|
+
- 普通内容页的设计必须以豆包设计原则为最高准则,除非用户要求使用模板或直接提供设计方案。
|
|
50
|
+
- 不适用于 `title-cover`、`section-divider`、`conclusion`、`quote-highlight` 和 `big-number`。
|
|
51
|
+
|
|
52
|
+
核心要求:
|
|
53
|
+
|
|
54
|
+
- 必须采用信息密度极高的图文卡片布局,追求充实饱满、图文丰富、可逐行细读的版面,宁可密而满,不要空而疏。
|
|
55
|
+
- **!!!信息密度极高!!! 图多!!! 卡多!!! 字多!!!**
|
|
56
|
+
|
|
57
|
+
排版布局:
|
|
58
|
+
|
|
59
|
+
- 卡片布局:卡片按多行网格铺满页面,版面对称、均衡、不留白。网格数、图文比例按内容变化,避免每页雷同。使用更多卡片做细分承载,避免在单张卡片里堆砌大量文字(例如 8 张 50 字卡片优于 2 张 200 字卡片),多个要点必须拆分为多张子卡片。
|
|
60
|
+
- 卡片样式:方角卡片 + 半透明填充 + 无边框 + 卡片贴边窄条(可选);所有卡片必须使用相同的配色方案(少量需强调的卡片除外),禁止同页出现彩虹卡片(卡片颜色超过 3 种)。
|
|
61
|
+
- 卡片结构:视觉锚点(关键词、编号或 IconPark 图标)+ 标题 + 内容(包括文字、图片、图表、子卡片)。
|
|
62
|
+
- 文字卡片:多数页面必须满足 6-8 张文字卡片、200-400 文字数量,字数不足时必须扩写成长句或段落,文字卡片不要留白,必须充实饱满。文字卡片不是短标签,而是“标题 + 完整说明”,像浓缩的分析文稿。文字内容不得不用列表、分栏、关键词或短句时,必须保证层次清晰,更建议拆分为多张子卡片。
|
|
63
|
+
- 图片卡片:多数页面必须满足 1-3 张图片卡片,缺少图片时必须用生图工具补充配图,图片卡片与文字卡片组成网格,确保图文丰富。
|
|
64
|
+
- 图表卡片:数据信息不要在文字卡片中罗列,必须在图表卡片中可视化(包括表格、图表、时间线、流程图等),图表卡片与其他卡片组成网格,展现数据驱动。
|
|
65
|
+
- 间距要求:所有边距都要左右对称,页面和内部内容的边距至少 40px(内容不要贴边),卡片和内部文字的边距至少 5px(文字不要贴边),卡片之间保持 20-40px 的间距。
|
|
66
|
+
- 文字对齐:正文默认左对齐,只在封面、结尾或大号数字场景中使用居中;表格里的文字左对齐、数字右对齐、仅关键词或短句时居中对齐。
|
|
67
|
+
|
|
68
|
+
视觉风格:
|
|
69
|
+
|
|
70
|
+
- 美学:干净、明亮、清爽但信息饱满;靠卡片和对齐网格在高密度下维持秩序感;同排卡片文字数量应相近以保持观感整齐。
|
|
71
|
+
- 字体:全篇以无衬线体(思源黑体)为主,封面或关键强调可少量使用衬线体。
|
|
72
|
+
- 字号:标题 28-36pt、正文 12-14pt、注释 10-12pt,常规关键指标 16-32pt、核心指标用 36-52pt 数字,下面配 10-14pt 标签与简短解读,需要容纳更多文字时允许使用更小的字号。
|
|
73
|
+
- 图标:内嵌 IconPark 图标(可用关键词或编号替代)作为视觉锚点,让高密度文字也有图形节奏,而不是成片纯文字块。
|
|
74
|
+
- 配色:克制颜色数量,确保所有页面都只使用同样的 1 个背景色(偏好浅米白)、1 个主色、1 个强调色和 1 个辅助色;偏好莫兰迪配色,禁止彩虹配色(比如蓝配橙)。
|
|
18
75
|
|
|
19
76
|
## Quick Reference
|
|
20
77
|
|
|
78
|
+
**本表只定位「场景 → 用哪条命令、读哪份文档」。参数以「执行前必做」里对应的文档和 `lark-cli slides +<verb> --help` 为准,不要凭记忆或按别的命令类比补参数。**
|
|
79
|
+
|
|
21
80
|
| 用户需求 | 优先动作 | 关键文档 / 命令 |
|
|
22
81
|
|----------|----------|-----------------|
|
|
23
|
-
| 新建 PPT | 先规划 `slide_plan.json
|
|
24
|
-
|
|
|
25
|
-
| 编辑单个标题、文本块、图片或局部元素 |
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
82
|
+
| 新建 PPT | 先规划 `slide_plan.json`,再按页数选择一步或两步创建 | `planning-layer.md`、`visual-planning.md`、`asset-planning.md`、`lark-slides-create.md`、`slides +create`、`slides +add-slide`、`lark-slides-add-slide.md`(两步创建逐页添加) |
|
|
83
|
+
| 用户要求使用模板,或提供 PPTX 文件要求修改、美化 | 将模板导入为 Slides 再编辑 | `lark-slides-pptx-template-workflows.md` |
|
|
84
|
+
| 编辑单个标题、文本块、图片或局部元素 | 块级替换/插入,**只动点名的 block,同页其他元素不受影响**;不改页序 | `slides +replace-slide`、`lark-slides-replace-slide.md` |
|
|
85
|
+
| 一页改动很多(批量字体/配色)、要改页面背景、要删掉若干元素 | 整页覆盖,`slide_id` 和页序不变;带原 `id` 写回的元素保留 id,不带 `id` 的会作为新元素插入并拿到新 id;**代价是没写进 `--content` 的元素会被删除,所以改个别元素不要用它** | `slides +update-slide`、`lark-slides-update-slide.md` |
|
|
86
|
+
| 给已有 PPT 追加或插入页面 | 一次一页,`--slide` 支持 `@file` 绕开 shell 转义 | `slides +add-slide`、`lark-slides-add-slide.md` |
|
|
87
|
+
| 删除页面 | 按 `slide_id` 单页删除,删前先回读确认 | `slides +delete-slide`、`lark-slides-delete-slide.md` |
|
|
88
|
+
| 读取或分析已有 PPT | 解析 slides/wiki token,用 shortcut 回读全文 XML 或读取单页 XML,保存 `xml_presentation_id`、`slide_id`、`revision_id` | `slides +xml-get`、`xml_presentation.slide.get`、`lark-slides-xml-presentations-get.md` |
|
|
89
|
+
| 查看或回滚历史版本 | 先用 `+history-list` 找 `history_version_id`,再 `+history-revert`,必要时 `+history-revert-status` 轮询 | [`lark-slides-history.md`](references/lark-slides-history.md) |
|
|
90
|
+
| 获取幻灯片页面截图 | 按页码用 `--slide-number`,按 ID 用 `--slide-id`;单张用 `--output`,批量或全量用 `--output-dir`,每批最多 10 页串行执行;截图目录复用同一任务的 deck/task 标识,后续读取返回的实际路径 | `slides +screenshot`、`lark-slides-screenshot.md` |
|
|
91
|
+
| 上传或使用图片 | 先上传为 `file_token`,禁止直接写 http(s) 外链 | `slides +media-upload`、`lark-slides-media-upload.md`,或 `+create --slides` 的 XML 里写 `<img src="@./path">` 占位符 |
|
|
92
|
+
| 绘制图表 | 原生图表(柱状、条形、折线、面积、饼(环)、雷达、组合图)用 `<chart>`,其他(漏斗图、金字塔图、象限图、矩阵图等)用 `<shape>` + `<line>` 模拟 | `xml-schema-quick-ref.md`、`slides_chart_demo.xml` |
|
|
30
93
|
| 绘制表格 | 优先用 `rect` 和 `text` 模拟,其他用 `<table>` | `xml-schema-quick-ref.md` |
|
|
31
|
-
| 使用图标 | 禁止盲猜
|
|
94
|
+
| 使用图标 | 禁止盲猜 iconType,必须先检索 IconPark,再写 `<icon iconType="...">`,图标必须填充颜色并和背景有足够对比,禁止使用 emoji 图标 | `iconpark_tool.py search → resolve`、`iconpark.md` |
|
|
32
95
|
| 创建失败、空白页、3350001、布局异常 | 先回读状态,再按排障清单修复,不假设原操作原子成功 | `troubleshooting.md`、`validation-checklist.md` |
|
|
33
96
|
|
|
34
97
|
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),认证、权限和全局参数均以 lark-shared 为准。**
|
|
35
98
|
|
|
99
|
+
**CRITICAL — 查看或回滚历史版本前,MUST 先读取 [`lark-slides-history.md`](references/lark-slides-history.md)。回滚接口只接受 `history_version_id`,不要把 `revision_id` 直接传给 `+history-revert`。**
|
|
100
|
+
|
|
36
101
|
**CRITICAL — 生成任何 XML 之前,MUST 先用 Read 工具读取 [xml-schema-quick-ref.md](references/xml-schema-quick-ref.md),禁止凭记忆猜测 XML 结构。**
|
|
37
102
|
|
|
38
103
|
**CRITICAL — 新建演示文稿或大幅改写页面时,MUST 先生成 `.lark-slides/plan/<deck-or-task-id>/slide_plan.json`,再生成 XML。先创建对应目录,规划层规则和中间产物生命周期见 [planning-layer.md](references/planning-layer.md)。仅替换一个标题、插入一个块等小型已有页编辑可豁免。**
|
|
39
104
|
|
|
40
105
|
**CRITICAL — 新建演示文稿或大幅改写页面时,生成 XML 前 MUST 读取 [visual-planning.md](references/visual-planning.md),确保 `layout_type`、`visual_focus`、`text_density` 实际改变页面几何、主视觉和文本量。**
|
|
41
106
|
|
|
42
|
-
**CRITICAL — 新建演示文稿或大幅改写页面时,规划 `asset_need` MUST 遵循 [asset-planning.md](references/asset-planning.md)
|
|
107
|
+
**CRITICAL — 新建演示文稿或大幅改写页面时,规划 `asset_need` MUST 遵循 [asset-planning.md](references/asset-planning.md):只做元数据规划,必须有 `fallback_if_missing`,不得要求真实搜索、下载或上传素材。**
|
|
43
108
|
|
|
44
|
-
**CRITICAL — 将完整 `<slide>` XML 提交给 `slides +create
|
|
109
|
+
**CRITICAL — 将完整 `<slide>` XML 提交给 `slides +create`、`slides +add-slide` 或 `slides +update-slide` 之前,MUST 先把待提交 XML 保存到本地文件并运行唯一版式准出入口 [`scripts/xml_text_overlap_lint.py`](scripts/xml_text_overlap_lint.py);`summary.error_count` 必须为 0 才能调用接口。**
|
|
45
110
|
|
|
46
|
-
**CRITICAL —
|
|
111
|
+
**CRITICAL — 创建、大幅改写或每次通过 `slides +update-slide` 整页写回后,MUST 按 [validation-checklist.md](references/validation-checklist.md) 做显式验证:回读全文 XML、核对页数和关键元素,并使用 [`scripts/xml_text_overlap_lint.py`](scripts/xml_text_overlap_lint.py) 统一检查 XML、越界、重叠、空白页和内容稀疏风险。**
|
|
47
112
|
|
|
48
113
|
**CRITICAL — 创建前自检或失败排障时,MUST 按 [troubleshooting.md](references/troubleshooting.md) 检查 XML 转义、结构、shell 截断、图片 token、3350001 和布局风险。**
|
|
49
114
|
|
|
50
|
-
**编辑已有幻灯片页面**:单个标题、文本块、图片或局部元素优先用 [`+replace-slide`](references/lark-slides-replace-slide.md)
|
|
115
|
+
**编辑已有幻灯片页面**:单个标题、文本块、图片或局部元素优先用 [`+replace-slide`](references/lark-slides-replace-slide.md)(块级替换/插入,不动页序);一页里改动很多(例如批量换字体)、要改背景、或要删掉若干元素时用 [`+update-slide`](references/lark-slides-update-slide.md) 整页覆盖(`slide_id` 和页序不变,但没写进 `--content` 的元素会被删除);**多页大改就对每一页各跑一次 `+update-slide`**。选择 action 和完整读-改-写流程见 [`lark-slides-edit-workflows.md`](references/lark-slides-edit-workflows.md)。
|
|
116
|
+
|
|
117
|
+
**用户要求使用模板**:按 [lark-slides-pptx-template-workflows.md](references/lark-slides-pptx-template-workflows.md) 处理。
|
|
51
118
|
|
|
52
119
|
## 身份选择
|
|
53
120
|
|
|
@@ -79,19 +146,22 @@ lark-cli auth login --domain slides
|
|
|
79
146
|
- [asset-planning.md](references/asset-planning.md)(新建 / 大幅改写)
|
|
80
147
|
- [validation-checklist.md](references/validation-checklist.md)(创建 / 大幅改写后)
|
|
81
148
|
|
|
82
|
-
|
|
149
|
+
调用相关命令前必须读取相关的文档以了解命令的使用方式:
|
|
83
150
|
|
|
84
|
-
- 创建:[`lark-slides-create.md`](references/lark-slides-create.md)
|
|
85
|
-
-
|
|
151
|
+
- 创建:[`lark-slides-create.md`](references/lark-slides-create.md)、[`lark-slides-add-slide.md`](references/lark-slides-add-slide.md)(逐页添加 / 给已有 PPT 追加页面)
|
|
152
|
+
- 删除页面:[`lark-slides-delete-slide.md`](references/lark-slides-delete-slide.md)
|
|
153
|
+
- 阅读:[`lark-slides-xml-presentations-get.md`](references/lark-slides-xml-presentations-get.md)
|
|
154
|
+
- 编辑:[`lark-slides-edit-workflows.md`](references/lark-slides-edit-workflows.md)、[`lark-slides-replace-slide.md`](references/lark-slides-replace-slide.md)、[`lark-slides-update-slide.md`](references/lark-slides-update-slide.md)
|
|
155
|
+
- 历史版本:[`lark-slides-history.md`](references/lark-slides-history.md)
|
|
86
156
|
- 截图:[`lark-slides-screenshot.md`](references/lark-slides-screenshot.md)
|
|
87
157
|
- 图片:[`lark-slides-media-upload.md`](references/lark-slides-media-upload.md)
|
|
158
|
+
- 图表:[`slides_chart_demo.xml`](references/slides_chart_demo.xml)
|
|
88
159
|
- 图标:[`iconpark.md`](references/iconpark.md)、[`scripts/iconpark_tool.py`](scripts/iconpark_tool.py)
|
|
89
160
|
- 排障:[`troubleshooting.md`](references/troubleshooting.md)
|
|
90
161
|
- 完整协议:[`slides_xml_schema_definition.xml`](references/slides_xml_schema_definition.xml)
|
|
91
162
|
|
|
92
|
-
## Workflow
|
|
93
163
|
|
|
94
|
-
|
|
164
|
+
## Workflow
|
|
95
165
|
|
|
96
166
|
### Design Ideas
|
|
97
167
|
|
|
@@ -100,107 +170,62 @@ lark-cli auth login --domain slides
|
|
|
100
170
|
开始写 XML 前,先在 `slide_plan.json` 里确定 deck 级视觉策略:
|
|
101
171
|
|
|
102
172
|
- **主题化配色**:配色必须服务本次主题、行业和受众,不要默认蓝色商务风。如果把同一套颜色换到另一个完全不同主题仍然成立,说明配色不够具体。
|
|
103
|
-
- **主次比例**:选择 1 个主色承担约 60-70% 视觉权重,1
|
|
104
|
-
- **背景一致性**:先确定全 deck
|
|
105
|
-
- **统一 motif
|
|
173
|
+
- **主次比例**:选择 1 个主色承担约 60-70% 视觉权重,1 个辅助色承担结构和分区,1 个强调色只用于关键数字、结论或行动点。不要让所有颜色权重相同。
|
|
174
|
+
- **背景一致性**:先确定全 deck 的背景策略,默认保持同一明暗基调和底色体系;无论深浅,都要保证内容和背景对比充足。
|
|
175
|
+
- **统一 motif**:选择一个可复用视觉母题贯穿全文,例如编号节点、卡片处理方式、半出血图片区域、标题、页脚。不要每页换一套装饰语言。
|
|
106
176
|
|
|
107
|
-
|
|
177
|
+
每页至少要有一个视觉元素:图片、图标、图表、表格、流程、对比结构或大号数字。文本框本身不算主视觉。
|
|
108
178
|
|
|
109
|
-
|
|
179
|
+
常见页面形态:
|
|
110
180
|
|
|
111
181
|
- **双栏结构**:左文右图或左图右文,视觉区域占 35-45% 宽度。
|
|
112
182
|
- **图标行**:图标在色块或圆形底中,右侧是短标题和一句解释。
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
183
|
+
- **网格**:适合能力、模块、风险、行动项,每格内容保持同等层级。
|
|
184
|
+
- **半出血视觉**:图片占据左/右半屏,文字覆盖或贴边排布。
|
|
185
|
+
- **大数字卡片**:核心指标用大数字,下面配标签与简短解读。
|
|
116
186
|
- **对比列**:before/after、方案 A/B、问题/解法用左右并列,标题和基线严格对齐。
|
|
117
187
|
- **时间线/流程图**:步骤用节点和箭头表达,流程方向必须一眼可见。
|
|
118
188
|
|
|
119
|
-
字体和间距建议:
|
|
120
|
-
|
|
121
|
-
- 标题 36-44pt,关键结论可更大;正文 14-18pt;注释 10-12pt。
|
|
122
|
-
- 正文默认左对齐;只在封面、结尾或大号数字场景中使用居中。
|
|
123
|
-
- 页面边距至少 40px;内容块之间保持 24-40px 间距,并在同一 deck 内保持一致。
|
|
124
|
-
- 卡片内边距要真实留出空间,不要让文字贴边;对齐 shape 和文字时要考虑文本框 padding。
|
|
125
|
-
|
|
126
189
|
常见错误必须避免:
|
|
127
190
|
|
|
128
191
|
- 不要所有页面复用同一种标题 + 三 bullets 版式。
|
|
129
192
|
- 不要用低对比文字或低对比图标,例如浅灰字压在浅色背景上。
|
|
130
193
|
- 不要让装饰线穿过文字,或让页脚、来源、编号挤压主体内容。
|
|
131
|
-
- 不要把素材缺失表现为空白图片框;必须按 `fallback_if_missing`
|
|
132
|
-
-
|
|
133
|
-
- 不要使用 emoji。
|
|
134
|
-
- 不要为了画出一个具象物体而堆叠 3 个以上仅用于拟形的 shape。
|
|
194
|
+
- 不要把素材缺失表现为空白图片框;必须按 `fallback_if_missing` 生成替代图片。
|
|
195
|
+
- 不要在任何位置使用 emoji 图标。
|
|
135
196
|
|
|
136
|
-
### 创建方式选择
|
|
137
|
-
|
|
138
|
-
| 场景 | 推荐方式 |
|
|
139
|
-
|------|----------|
|
|
140
|
-
| 简单 XML(1-3 页、结构简单、几乎无复杂中文和特殊字符) | `slides +create --slides '[...]'` 一步创建 |
|
|
141
|
-
| 复杂 XML(多页、含中文、大段文本、复杂布局、嵌套引号、特殊字符较多) | **两步创建**:先 `slides +create` 创建空白 PPT,再用 `xml_presentation.slide create` 逐页添加 |
|
|
142
|
-
| 已有 PPT 继续追加或插入页面 | 使用 `xml_presentation.slide create`,必要时配合 `before_slide_id` |
|
|
143
|
-
|
|
144
|
-
> [!WARNING]
|
|
145
|
-
> `--slides '[...]'` 的风险点主要在 shell 参数传递,而不是单纯页数。即使只有 1 页,只要 XML 足够复杂,也建议使用两步创建法。
|
|
146
|
-
|
|
147
|
-
> [!IMPORTANT]
|
|
148
|
-
> `slides +create --slides` 底层会逐页创建,不是原子操作。中途失败时先记录 `xml_presentation_id`,回读确认当前状态,再继续修复或追加。
|
|
149
197
|
|
|
150
198
|
### 生成流程
|
|
151
199
|
|
|
152
200
|
```text
|
|
153
|
-
Step 1:
|
|
154
|
-
-
|
|
201
|
+
Step 1: 需求分析 & 读取知识
|
|
202
|
+
- 分析主题、受众、页数、风格;
|
|
203
|
+
- 若用户要求使用模板,按 lark-slides-pptx-template-workflows.md 处理
|
|
155
204
|
- 读取 xml-schema-quick-ref.md;新建 / 大幅改写时还要读取 planning-layer.md、visual-planning.md、asset-planning.md
|
|
205
|
+
- 涉及图表读取 slides_chart_demo.xml
|
|
156
206
|
|
|
157
|
-
Step 2: 生成大纲 →
|
|
158
|
-
-
|
|
159
|
-
- 新建 / 大幅改写必须先创建目录并写入
|
|
207
|
+
Step 2: 生成大纲 → 写入 slide_plan.json
|
|
208
|
+
- 生成结构化大纲
|
|
209
|
+
- 新建 / 大幅改写必须先创建目录并写入 `slide_plan.json`
|
|
160
210
|
- plan 字段、路径命名和 `asset_need` 结构按 planning-layer.md / asset-planning.md 执行
|
|
161
211
|
|
|
162
212
|
Step 3: 按 slide_plan.json 生成 XML → 创建
|
|
163
213
|
- 逐页消费 plan:key_message 定主结论,layout_type 定几何,visual_focus 定主视觉,text_density 定文本量
|
|
164
|
-
- 缺少真实素材时必须用 `fallback_if_missing`
|
|
165
|
-
-
|
|
166
|
-
-
|
|
214
|
+
- 缺少真实素材时必须用 `fallback_if_missing` 生成替代图片,不要留空
|
|
215
|
+
- 读 lark-slides-create.md 定一步创建还是两步创建,并据此构造 `slides +create`;两步创建再读 lark-slides-add-slide.md 用 `+add-slide` 逐页添加
|
|
216
|
+
- 图片按 lark-slides-media-upload.md 处理;复杂 XML、转义和 3350001 排查按 troubleshooting.md 执行
|
|
167
217
|
|
|
168
218
|
Step 4: 审查 & 交付
|
|
169
|
-
- 创建完成后,必须用 `slides +xml-get
|
|
219
|
+
- 创建完成后,必须用 `slides +xml-get --presentation <xml_presentation_id>` 读取全文 XML,并按 validation-checklist.md 做显式验证记录,包括 XML 文本重叠检查
|
|
170
220
|
- 失败或部分成功按 troubleshooting.md 处理;局部问题优先用 `+replace-slide` 修正
|
|
171
|
-
- 没问题 →
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### jq 命令模板(编辑已有 PPT 时使用)
|
|
175
|
-
|
|
176
|
-
新建 PPT 推荐用 `+create --slides`。以下 jq 模板适用于向已有演示文稿追加页面的场景,可以避免手动转义双引号:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
# 追加到末尾
|
|
180
|
-
lark-cli slides xml_presentation.slide create \
|
|
181
|
-
--as user \
|
|
182
|
-
--params '{"xml_presentation_id":"YOUR_ID"}' \
|
|
183
|
-
--data "$(jq -n --arg content '<slide xmlns="http://www.larkoffice.com/sml/2.0">
|
|
184
|
-
<style><fill><fillColor color="BACKGROUND_COLOR"/></fill></style>
|
|
185
|
-
<data>
|
|
186
|
-
<!-- 在这里放置 shape、line、table、chart 等元素 -->
|
|
187
|
-
</data>
|
|
188
|
-
</slide>' '{slide:{content:$content}}')"
|
|
189
|
-
|
|
190
|
-
# 插到指定页之前:before_slide_id 必须在 --data body 里,与 slide 同级
|
|
191
|
-
# ⚠️ 不要把 before_slide_id 写进 --params —— CLI 会当未知 query 参数静默下发,服务端忽略,新页跑到末尾
|
|
192
|
-
lark-cli slides xml_presentation.slide create \
|
|
193
|
-
--as user \
|
|
194
|
-
--params '{"xml_presentation_id":"YOUR_ID"}' \
|
|
195
|
-
--data "$(jq -n --arg content '<slide ...>...</slide>' --arg before 'TARGET_SLIDE_ID' \
|
|
196
|
-
'{slide:{content:$content}, before_slide_id:$before}')"
|
|
221
|
+
- 没问题 → 交付:使用 NotifyHuman 工具交付 PPT 链接
|
|
197
222
|
```
|
|
198
223
|
|
|
199
224
|
> 渐变色必须使用 `rgba()` 格式并带百分比停靠点,如 `linear-gradient(135deg,rgba(15,23,42,1) 0%,rgba(56,97,140,1) 100%)`。使用 `rgb()` 或省略停靠点会导致服务端回退为白色。
|
|
200
225
|
|
|
201
226
|
### 大纲模板
|
|
202
227
|
|
|
203
|
-
|
|
228
|
+
生成大纲时使用以下格式:
|
|
204
229
|
|
|
205
230
|
```text
|
|
206
231
|
[PPT 标题] — [定位描述],面向 [目标受众]
|
|
@@ -222,19 +247,21 @@ N. 结尾页:[结尾文案]
|
|
|
222
247
|
| URL 格式 | 示例 | Token 类型 | 处理方式 |
|
|
223
248
|
|----------|------|-----------|----------|
|
|
224
249
|
| `/slides/` | `https://example.larkoffice.com/slides/xxxxxxxxxxxxx` | `xml_presentation_id` | URL 路径中的 token 直接作为 `xml_presentation_id` 使用 |
|
|
225
|
-
| `/wiki/` | `https://
|
|
250
|
+
| `/wiki/` | `https://xxx.feishu.cn/wiki/wikcn_EXAMPLE_NODE_TOKEN_123456` | `wiki_token` | ⚠️ **不能直接使用**,需要先查询获取真实的 `obj_token` |
|
|
226
251
|
|
|
227
|
-
>
|
|
252
|
+
> 带 `--presentation` 的 slides shortcut 都会自动解析以上两种 URL;直接调用原生 API 时仍需手动解析 wiki 链接。
|
|
228
253
|
|
|
229
254
|
### Wiki 链接特殊处理(关键!)
|
|
230
255
|
|
|
231
|
-
知识库链接(`/wiki/TOKEN`)不能直接当 `xml_presentation_id`。直接调用原生 API
|
|
256
|
+
知识库链接(`/wiki/TOKEN`)不能直接当 `xml_presentation_id`。直接调用原生 API 前,先用 Wiki shortcut 查询节点,确认 `data.obj_type == "slides"`,再用 `data.obj_token` 作为真实 presentation ID。
|
|
232
257
|
|
|
233
258
|
```bash
|
|
234
|
-
lark-cli wiki
|
|
259
|
+
lark-cli wiki +node-get --node-token 'https://xxx.feishu.cn/wiki/wikcn_EXAMPLE_NODE_TOKEN_123456' --as user --format json
|
|
235
260
|
```
|
|
236
261
|
|
|
237
|
-
|
|
262
|
+
节点解析必须与后续 Slides 操作使用相同身份;下游明确使用 `--as bot` 时,这里也改为 `--as bot`。
|
|
263
|
+
|
|
264
|
+
带 `--presentation` 的 slides shortcut 都会自动解析 `/wiki/` URL 并校验 `obj_type`;手动调用 `xml_presentations.*` / `xml_presentation.slide.*` 时才需要自己做这一步。
|
|
238
265
|
|
|
239
266
|
### 资源关系
|
|
240
267
|
|
|
@@ -256,11 +283,14 @@ Shortcut 是对常用操作的高级封装(`lark-cli slides +<verb> [flags]`
|
|
|
256
283
|
|
|
257
284
|
| Shortcut | 说明 |
|
|
258
285
|
|----------|------|
|
|
259
|
-
| [`+create`](references/lark-slides-create.md) | 创建 PPT
|
|
260
|
-
| [`+
|
|
286
|
+
| [`+create`](references/lark-slides-create.md) | 创建 PPT,可选一步添加页面 |
|
|
287
|
+
| [`+add-slide`](references/lark-slides-add-slide.md) | 向已有演示文稿追加或插入**一页**(`--before-slide-id` 控制位置),XML 支持 `@file` / stdin,`<img src="@./path">` 占位符自动上传 |
|
|
288
|
+
| [`+delete-slide`](references/lark-slides-delete-slide.md) | 按 `slide_id` 删除**一页** |
|
|
289
|
+
| [`+xml-get`](references/lark-slides-xml-presentations-get.md) | 读取全文 XML,用 `--presentation` 指定演示文稿的 `xml_presentation_id`,用 `--output` 把 XML 存到本地文件(必须是 CWD 内的相对路径,如 `.lark-slides/plan/<deck>/readback.xml`) |
|
|
290
|
+
| [`+screenshot`](references/lark-slides-screenshot.md) | 把幻灯片页面截图保存为本地图片;用 `--slide-number` 指定页码(从 1 开始,多页重复传入)或用 `--slide-id` 指定页面;单张用 `--output .lark-slides/screenshots/<deck-or-task-id>/page-01`,批量用 `--output-dir .lark-slides/screenshots/<deck-or-task-id>`(一次最多 10 页);后续必须读取返回的 `output` / `screenshots[].path` |
|
|
261
291
|
| [`+media-upload`](references/lark-slides-media-upload.md) | 上传本地图片到指定演示文稿,返回 `file_token`(用作 `<img src="...">`),最大 20 MB |
|
|
262
292
|
| [`+replace-slide`](references/lark-slides-replace-slide.md) | 对已有幻灯片页面进行块级替换/插入(`block_replace` / `block_insert`),自动注入 id 和 `<content/>`,不改变页序 |
|
|
263
|
-
| [`+
|
|
293
|
+
| [`+update-slide`](references/lark-slides-update-slide.md) | 把一整页 XML 交给已有页面,页面变成 `--content` 描述的样子;能一次改样式/插入/删除/备注/背景,`slide_id` 和页序不变。**没写进 `--content` 的元素会被删除** |
|
|
264
294
|
|
|
265
295
|
没有 Shortcut 覆盖时使用原生 API。高频资源:`slides +xml-get` 读取全文;`xml_presentation.slide.create/delete/get/replace` 管理单页。
|
|
266
296
|
|
|
@@ -274,12 +304,12 @@ lark-cli slides <resource> <method> [flags] # 调用 API
|
|
|
274
304
|
## 核心规则
|
|
275
305
|
|
|
276
306
|
1. **先规划再写 XML**:新建演示文稿或大幅改写页面时,必须先写入 `.lark-slides/plan/<deck-or-task-id>/slide_plan.json`;模板、风格和大纲只能作为规划输入,不能绕过规划层
|
|
277
|
-
2.
|
|
307
|
+
2. **创建流程**:新建演示文稿用 `slides +create`,一步创建还是两步创建按 [`lark-slides-create.md`](references/lark-slides-create.md) 判断
|
|
278
308
|
3. **`<slide>` 直接子元素只有 `<style>`、`<data>`、`<note>`**:文本和图形必须放在 `<data>` 内
|
|
279
|
-
4. **文本通过 `<content>` 表达**:必须用 `<content><p>...</p></content>`,不能把文字直接写在 shape
|
|
309
|
+
4. **文本通过 `<content>` 表达**:必须用 `<content><p>...</p></content>`,不能把文字直接写在 shape 内;注意 `<content>` 只是 XML 元素,不是 `--parts` 的字段名——part 里装 XML 的字段,`block_replace` 是 `replacement`,`block_insert` 是 `insertion`
|
|
280
310
|
5. **保存关键 ID**:后续操作需要 `xml_presentation_id`、`slide_id`、`revision_id`
|
|
281
|
-
6.
|
|
282
|
-
7. **编辑已有页面优先原链接更新**:修改单个 shape/img 用 `+replace-slide`(`block_replace` / `block_insert
|
|
283
|
-
8. **`<img src>` 只能用上传到飞书 drive 的 `file_token`,禁止使用 http(s) 外链 URL**:飞书 slides 渲染端不会代理外链图片,外链 src 在 PPT 里通常不显示或显示破图。流程必须是「先把图存到本地 → 用 `slides +media-upload`
|
|
311
|
+
6. **删除谨慎**:删除不可逆,删前先回读确认 `slide_id`
|
|
312
|
+
7. **编辑已有页面优先原链接更新**:修改单个 shape/img 用 `+replace-slide`(`block_replace` / `block_insert`),不要整页重建;一页改动很多或要改背景用 `+update-slide` 整页覆盖(保 `slide_id` 和页序),多页整页重建就对每页各跑一次 `+update-slide`,不要用 `slides +create` 新建整份 PPT;追加/插入单页用 `+add-slide`、删除单页用 `+delete-slide`,只有这些 shortcut 未覆盖的参数才手动调 `slide.create` / `slide.delete`
|
|
313
|
+
8. **`<img src>` 只能用上传到飞书 drive 的 `file_token`,禁止使用 http(s) 外链 URL**:飞书 slides 渲染端不会代理外链图片,外链 src 在 PPT 里通常不显示或显示破图。流程必须是「先把图存到本地 → 用 `slides +media-upload` 上传,或在 `+create --slides` 的 XML 里写 `<img src="@./path">` 占位符自动上传 → 拿 `file_token` 写进 `<img src>`」。如果用户给了网图链接,先 `curl`/下载到 CWD 内再走上传流程,不要直接把外链 URL 塞进 `src`。**图片最大 20 MB**(slides upload API 不支持分片上传)。
|
|
284
314
|
|
|
285
315
|
> **注意**:如果 md 内容与 `slides_xml_schema_definition.xml` 或 `lark-cli schema slides.<resource>.<method>` 输出不一致,以后两者为准。
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
## Core Rules
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- `asset_need` is metadata only. It can guide page design.
|
|
10
|
+
- Every planned asset must include a fallback visual plan. The fallback can use native charts, tables, placeholder regions, or XML shapes, text, and arrows as appropriate.
|
|
10
11
|
- Asset needs must serve the page's `key_message` and `visual_focus`. Do not add decorative assets that do not clarify the page.
|
|
11
12
|
- Prefer a few high-value asset plans over one asset on every page. For a 6-page technical or business deck, plan assets on at least 3 pages when the content allows.
|
|
12
13
|
- If a real local asset already exists or the user provides one, it can be used through the normal media-upload workflow. Still keep `fallback_if_missing` in the plan.
|
|
@@ -42,7 +43,7 @@ For a page without a meaningful asset need, use:
|
|
|
42
43
|
- `architecture_diagram`: system components, data flow, dependency map, or model structure.
|
|
43
44
|
- `icon`: small semantic symbol for a concept, step, role, or status.
|
|
44
45
|
- `logo`: brand, product, team, or customer mark.
|
|
45
|
-
- `chart`: column, bar, line, area, radar, pie, doughnut/ring, or combo data visual. Note: `<chart>` does not support funnel or scatter
|
|
46
|
+
- `chart`: column, bar, line, area, radar, pie, doughnut/ring, or combo data visual. Note: `<chart>` does not support funnel or scatter.
|
|
46
47
|
- `infographic`: composed visual explanation, usually combining labels, numbers, and simple shapes.
|
|
47
48
|
- `screenshot`: product UI, terminal output, workflow state, or page capture.
|
|
48
49
|
- `flow_diagram`: process, sequence, decision tree, or mechanism diagram.
|
|
@@ -66,7 +67,7 @@ Match asset type to slide role:
|
|
|
66
67
|
For `asset_type: "chart"`:
|
|
67
68
|
|
|
68
69
|
- If the visual is a supported standard data chart — column, bar, line, area, radar, pie, doughnut/ring, or combo — `fallback_if_missing` must still render as a native `<chart>`.
|
|
69
|
-
- Do not imitate supported standard data visuals with manual drawing primitives
|
|
70
|
+
- Do not imitate supported standard data visuals with manual drawing primitives.
|
|
70
71
|
- Choose the data source explicitly:
|
|
71
72
|
- `user_provided`: when the user provides concrete values, tables, CSV, or metric lists, use those values and do not replace them with mock data.
|
|
72
73
|
- `mock_placeholder`: when the user asks for a placeholder, template, example, or chart position to replace later, use mock data in a native `<chart>`.
|
|
@@ -129,7 +130,8 @@ Business comparison page:
|
|
|
129
130
|
When generating XML:
|
|
130
131
|
|
|
131
132
|
1. If an asset exists and the workflow supports it, place it in the planned visual region.
|
|
132
|
-
2. If no asset exists, immediately render `fallback_if_missing` with the planned
|
|
133
|
+
2. If no asset exists, immediately render `fallback_if_missing` with the planned generated close-enough image. Supported standard data visuals still use native `<chart>`; other fallbacks may use the image generation tool to create an approximate image.
|
|
133
134
|
3. Size the fallback to satisfy `visual_focus`; it should be a real page element, not a tiny decoration.
|
|
134
135
|
4. Keep text-density limits. Do not compensate for missing assets by adding long bullet text.
|
|
135
136
|
5. After creation, fetch the presentation and verify asset pages are not blank and that each planned fallback is visible when no real asset was used.
|
|
137
|
+
6. If the image generation tool is unavailable or fails, degrade to an XML-native fallback instead of leaving a blank: native `<chart>` for data, otherwise a simple in-card shape/text placeholder sized to fill `visual_focus`.
|
|
@@ -25,8 +25,8 @@ python3 skills/lark-slides/scripts/iconpark_tool.py list-categories
|
|
|
25
25
|
- 默认先检索:语义图标需求必须先用 `iconpark_tool.py search --limit 8` 或 `--limit 10`,让 agent 从候选里结合版面语义二次判断;不要阅读全文索引,也不要编造不存在的 `iconType`。
|
|
26
26
|
- 图标用于概念提示、步骤、状态、指标、角色和导航;不要用无关装饰图标填充版面。
|
|
27
27
|
- 常用尺寸:行内状态图标 16-24px,卡片标题图标 28-40px,主视觉图标 56-96px。
|
|
28
|
-
-
|
|
29
|
-
-
|
|
28
|
+
- 图标必须填充颜色并和背景有足够对比;深色背景优先放在浅色圆形/方形底上,或使用 `rgba(255, 255, 255, 1)` 作为图标填充色。
|
|
29
|
+
- 查不到合适图标时,从高频示例里选择替代图标(随机选择,不要千篇一律),不留空图标位。
|
|
30
30
|
|
|
31
31
|
## 高频示例
|
|
32
32
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# slides +add-slide(向已有演示文稿追加/插入单页)
|
|
2
|
+
|
|
3
|
+
向已有演示文稿添加**一页**。这是两步创建流程的第二步:先 `+create` 建空壳,再逐页 `+add-slide`;也用于给已有 PPT 追加新页。
|
|
4
|
+
|
|
5
|
+
`--presentation` 接受 token / `/slides/` URL / `/wiki/` URL(wiki 自动解析),`--slide` 直接收 XML(支持 `@file` 和 stdin,复杂 XML 走文件可绕开 shell 转义),`<img src="@./local.png">` 占位符自动上传并替换成 `file_token`。
|
|
6
|
+
|
|
7
|
+
**CRITICAL — 提交前必须先跑版式 lint**:把待提交的 `<slide>` XML 存成本地文件,运行 [`scripts/xml_text_overlap_lint.py`](../scripts/xml_text_overlap_lint.py),`summary.error_count` 必须为 0。
|
|
8
|
+
|
|
9
|
+
## 命令
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# 追加到末尾(XML 直接作为参数)
|
|
13
|
+
lark-cli slides +add-slide --as user \
|
|
14
|
+
--presentation "$PID" \
|
|
15
|
+
--slide '<slide xmlns="https://www.larkoffice.com/sml/2.0"><data></data></slide>'
|
|
16
|
+
|
|
17
|
+
# XML 从文件读(推荐:避免 shell 转义和长参数截断)
|
|
18
|
+
lark-cli slides +add-slide --as user \
|
|
19
|
+
--presentation "$PID" \
|
|
20
|
+
--slide @page3.xml
|
|
21
|
+
|
|
22
|
+
# XML 从 stdin 读
|
|
23
|
+
cat page3.xml | lark-cli slides +add-slide --as user --presentation "$PID" --slide -
|
|
24
|
+
|
|
25
|
+
# 插到某页之前
|
|
26
|
+
lark-cli slides +add-slide --as user \
|
|
27
|
+
--presentation "$PID" \
|
|
28
|
+
--slide @cover.xml \
|
|
29
|
+
--before-slide-id "$SID"
|
|
30
|
+
|
|
31
|
+
# wiki 链接(CLI 自动 wiki.spaces.get_node 解析,并校验 obj_type=slides)
|
|
32
|
+
lark-cli slides +add-slide --as user \
|
|
33
|
+
--presentation "https://xxx.feishu.cn/wiki/wikcnXXXXXX" \
|
|
34
|
+
--slide @page3.xml
|
|
35
|
+
|
|
36
|
+
# 预览请求,不实际写入
|
|
37
|
+
lark-cli slides +add-slide --presentation "$PID" --slide @page3.xml --dry-run
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 参数
|
|
41
|
+
|
|
42
|
+
| 参数 | 必需 | 说明 |
|
|
43
|
+
|------|------|------|
|
|
44
|
+
| `--presentation` | 是 | `xml_presentation_id`、`/slides/` URL 或 `/wiki/` URL |
|
|
45
|
+
| `--slide` | 是 | 一个完整的 `<slide>...</slide>` 文档;支持字面量、`@file`、stdin `-` |
|
|
46
|
+
| `--before-slide-id` | 否 | 插到该 `slide_id` 之前;**不传就是追加到末尾** |
|
|
47
|
+
| `--revision-id` | 否 | 演示文稿版本号,默认 `-1`(最新);传具体版本号做乐观锁 |
|
|
48
|
+
| `--dry-run` | 否 | 打印将要发起的请求(含图片上传步骤),不写入 |
|
|
49
|
+
|
|
50
|
+
`@file` 路径**必须在 CWD 内**(如 `@./plan/page3.xml`);绝对路径和 `../` 会被拒绝并报 `unsafe file path`。
|
|
51
|
+
|
|
52
|
+
## 本地图片:`@路径` 占位符
|
|
53
|
+
|
|
54
|
+
XML 里写 `<img src="@./chart.png" .../>`,CLI 会:先把每个不重复的本地文件上传到这份演示文稿(`parent_type=slide_file`),再把 `src` 替换成返回的 `file_token`,最后才提交页面。
|
|
55
|
+
|
|
56
|
+
占位符路径按**执行命令时的 CWD** 解析,跟 `--slide @file` 所在目录无关;`@./assets/x.png` 找的是 `$PWD/assets/x.png`。
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
lark-cli slides +add-slide --as user \
|
|
60
|
+
--presentation "$PID" \
|
|
61
|
+
--slide '<slide xmlns="https://www.larkoffice.com/sml/2.0"><data><img src="@./chart.png" topLeftX="100" topLeftY="100" width="320" height="180"/></data></slide>'
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- 文件不存在、不是普通文件、超过 20 MB,都在**调用任何接口之前**报错,不会留下半成品。
|
|
65
|
+
- 去重只在**单次调用内**生效:多页共用同一张图时,逐页循环会把它每页重传一次。这种图先用 [`+media-upload`](lark-slides-media-upload.md) 传一次,把 `file_token` 写进各页的 `src`。
|
|
66
|
+
|
|
67
|
+
## 成功输出
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"xml_presentation_id": "slides_example_presentation_id",
|
|
72
|
+
"slide_id": "slide_example_id",
|
|
73
|
+
"revision_id": 42,
|
|
74
|
+
"before_slide_id": "slide_example_target_id",
|
|
75
|
+
"images_uploaded": 1,
|
|
76
|
+
"issues": "[issue=unsupported_attr tag=<strong> attr=style]"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
| 字段 | 说明 |
|
|
81
|
+
|------|------|
|
|
82
|
+
| `slide_id` | 新创建页面的唯一标识 |
|
|
83
|
+
| `issues` | 字符串,**只在服务端丢弃过内容时才出现**:页面创建成功,但括号里列出的标签/属性没写进去。出现就必须 `+screenshot` 复核,别当纯警告忽略;干净提交时这个字段不返回 |
|
|
84
|
+
|
|
85
|
+
## 常见错误
|
|
86
|
+
|
|
87
|
+
| 现象 | 原因 | 解决 |
|
|
88
|
+
|------|------|------|
|
|
89
|
+
| `--slide is not a single complete <slide> document` | 传了 `<presentation>` 整份 XML,或多个 `<slide>` 拼在一起 | 一次只传一页,根元素必须是 `<slide>` |
|
|
90
|
+
| `--slide cannot be empty` | `@file` 指向空文件,或 stdin 没内容 | 检查文件内容 |
|
|
91
|
+
| 3350001 | XML 结构/转义有问题;**或 `--before-slide-id` 不是有效 `slide_id`** | 优先改用 `--slide @file` 绕开 shell 转义;插页失败先 `+xml-get` 回读确认 `slide_id`;再按 [troubleshooting.md](troubleshooting.md) 排查 |
|
|
92
|
+
| 1061004 / 403 | 当前身份对这份 PPT 没有编辑权限 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope;wiki 链接另需 `wiki:node:read`,`@` 占位符另需 `docs:document.media:upload`;`--as bot` 还要求该 bot 对目标 PPT 有编辑权限 |
|