@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,16 +1,27 @@
|
|
|
1
1
|
# Troubleshooting
|
|
2
2
|
|
|
3
|
-
本文件覆盖 lark-slides
|
|
3
|
+
本文件覆盖 lark-slides 的通用创建前自检、XML 排障和常见失败处理。命令专属问题优先看对应 reference,例如 `+replace-slide`、`+media-upload`。
|
|
4
|
+
|
|
5
|
+
## XML Preflight
|
|
6
|
+
|
|
7
|
+
在真正创建或替换前,至少检查:
|
|
8
|
+
|
|
9
|
+
- 特殊字符已转义:正文和标题里的 `&`、`<`、`>` 不能裸写;属性值里的裸 `&` 也必须写成 `&`。
|
|
10
|
+
- 属性引号安全:XML 属性、shell 引号、JSON 字符串包装之间没有互相打断。
|
|
11
|
+
- 结构合法:`<slide>` 下只放 `<style>`、`<data>`、`<note>`,文本都在 `<content>` 内。
|
|
12
|
+
- 图片路径正确:`<img src="@...">` 占位符由 `+create` 和 `+add-slide` 处理。
|
|
4
13
|
|
|
5
14
|
## Failure Order
|
|
6
15
|
|
|
7
16
|
遇到 `invalid param`、某一页创建失败、页面空白或布局错乱时,按顺序处理:
|
|
8
17
|
|
|
9
|
-
1.
|
|
10
|
-
2.
|
|
18
|
+
1. 记录 `xml_presentation_id`,不要假设失败代表什么都没创建。
|
|
19
|
+
2. 用 `slides +xml-get` 回读,确认是否已有部分页面写入。
|
|
11
20
|
3. 检查失败页是否含未转义字符:`Q&A -> Q&A`,文本 `<` / `>` 写成 `<` / `>`,属性 URL `a=1&b=2 -> a=1&b=2`。
|
|
12
21
|
4. 检查标签闭合、属性引号、`<content>` 结构,以及 `<slide>` 直接子元素。
|
|
13
|
-
5.
|
|
22
|
+
5. 页面空白、溢出、重叠或越界时,按 [validation-checklist.md](validation-checklist.md) 运行 `xml_text_overlap_lint.py`;先修复所有 `error`,再对 `warning` 指向的页面和元素做截图复核。
|
|
23
|
+
6. 如果使用 `--slides '[...]'` 字面量,怀疑 shell 转义或截断时改用文件输入:`+create --slide @page-01.xml --slide @page-02.xml`。
|
|
24
|
+
7. 局部问题用 `+replace-slide` 块级修正;整页结构要改时用 `+delete-slide` 删旧页 + `+add-slide` 建新页。
|
|
14
25
|
|
|
15
26
|
## Symptom Fixes
|
|
16
27
|
|
|
@@ -23,9 +34,10 @@
|
|
|
23
34
|
| 表格列宽不合理 | 调整 `colgroup` 中 `col` 的 `width` 值 |
|
|
24
35
|
| 图表没有显示 | 检查 `chartPlotArea` 和 `chartData` 是否都包含,`dim1` / `dim2` 数据数量是否匹配 |
|
|
25
36
|
| 图片被裁掉一部分 | `<img>` 的 `width` / `height` 是裁剪后尺寸;要整图显示就让 `width:height` 对齐原图比例 |
|
|
26
|
-
| 图片不显示 / `<img src>` 仍是 `@path` | `@`
|
|
37
|
+
| 图片不显示 / `<img src>` 仍是 `@path` | `@` 占位符由 `+create` 和 `+add-slide` 替换 |
|
|
27
38
|
| 新插入的 `<img>` 挡住原有元素 | `slide.get` 读原页,对照已有块坐标挑空白位置;空间不够就在同一批 `--parts` 里先移动/缩小现有块再插图 |
|
|
28
39
|
| 渐变背景变成白色 | 渐变必须用 `rgba()` 格式 + 百分比停靠点,如 `linear-gradient(135deg,rgba(30,60,114,1) 0%,rgba(59,130,246,1) 100%)` |
|
|
40
|
+
| 整体风格不统一 | 封面页和结尾页用同一背景,内容页保持一致的配色和字号体系 |
|
|
29
41
|
|
|
30
42
|
## Common Errors
|
|
31
43
|
|
|
@@ -33,13 +45,18 @@
|
|
|
33
45
|
|--------------|------|----------|
|
|
34
46
|
| 400 XML 格式错误 | XML 语法错误 | 检查标签闭合、属性引号、特殊字符转义 |
|
|
35
47
|
| 400 请求包装错误 | `--data` 未按 schema 包装 | 检查是否传入 `xml_presentation.content` 或 `slide.content` |
|
|
36
|
-
| 创建成功但页面空白 / 内容缺失 / 布局错乱 | 常见于 `--slides '[...]'`
|
|
37
|
-
| 403 权限不足 |
|
|
48
|
+
| 创建成功但页面空白 / 内容缺失 / 布局错乱 | 常见于 `--slides '[...]'` 字面量的 shell 转义或长参数传递问题 | 改用 `--slide @file`(每页一个文件)或 `--slides @deck.json`,并在创建后立即读取 XML 验证 |
|
|
49
|
+
| 403 权限不足 | scope 或文档权限不匹配 | 确认 scope 和文档权限;无权限时根据错误响应引导用户解决 |
|
|
38
50
|
| 404 演示文稿不存在 | `xml_presentation_id` 不正确或无权限 | 检查 token;wiki URL 需先解析真实 `obj_token` |
|
|
39
51
|
| 404 幻灯片不存在 | `slide_id` 不正确 | 重新读取 presentation 或 slide,确认最新 ID |
|
|
40
|
-
| 400 无法删除唯一幻灯片 | 演示文稿至少保留一页 | 先创建新页,再删除旧页 |
|
|
41
52
|
| 1061002 媒体上传 params error | slides 媒体上传参数不符合约定 | 用 `slides +media-upload`,不要手拼原生 `medias/upload_all`;slides 唯一可用 `parent_type` 是 `slide_file` |
|
|
42
|
-
| 1061004 forbidden |
|
|
53
|
+
| 1061004 forbidden | 当前用户对演示文稿无编辑权限 | 确认当前用户对目标 PPT 有编辑权限 |
|
|
43
54
|
| 3350001 | XML 非 well-formed、XML 结构不符合服务端要求,或 replace 片段问题 | 优先检查未转义字符;replace 场景再看 `block_id` 和 `<content/>` |
|
|
44
55
|
| 3350002 | `revision_id` 大于当前版本 | 用 `-1` 取当前版本,或重新用 `slides +xml-get` 取最新 `revision_id` |
|
|
45
56
|
| validation: unsafe file path | `--file` 给了绝对路径或上层路径 | `--file` 必须是 CWD 内相对路径;先 `cd` 到素材目录再执行 |
|
|
57
|
+
|
|
58
|
+
## Command-Specific References
|
|
59
|
+
|
|
60
|
+
- 图片上传、`@path` 占位符、`file_token`:见 [lark-slides-media-upload.md](lark-slides-media-upload.md) 和 [lark-slides-create.md](lark-slides-create.md)。
|
|
61
|
+
- 块级替换、`block_id`、3350001 replace 细节:见 [lark-slides-replace-slide.md](lark-slides-replace-slide.md)。
|
|
62
|
+
- 追加/插入单页、`--before-slide-id` 和 `--slide @file` 绕开转义:见 [lark-slides-add-slide.md](lark-slides-add-slide.md)。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Validation Checklist
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
创建、大幅改写演示文稿或每次通过 `slides +update-slide` 整页写回后,必须做一次显式验证。目标是发现空白页、XML 损坏、内容截断、明显溢出、弱视觉层级和未验证输出。
|
|
4
4
|
|
|
5
5
|
小型已有页编辑也要做对应范围的验证:至少读取被改页面或全文 XML,确认目标元素已更新且未破坏周边结构。
|
|
6
6
|
|
|
@@ -25,33 +25,78 @@ lark-cli slides +xml-get --as user \
|
|
|
25
25
|
--json
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
## Automated XML
|
|
28
|
+
## Automated XML Layout Lint
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
`slides +xml-get` 保存 XML 后,只运行统一版式准出入口。先取得当前已加载 `lark-slides/SKILL.md` 的父目录,记为 `<lark-slides-skill-dir>`;不要猜测全局安装路径。
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
python3
|
|
33
|
+
python3 "<lark-slides-skill-dir>/scripts/xml_text_overlap_lint.py" --input <presentation.xml>
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
它一次检查 XML/SXSD 合法性、元素越界、文本重叠、空白页、文本高度风险、整页内容稀疏和大卡片内容覆盖率。大卡片自身 `<content>` 的估算文本面积与卡片内平级元素一起参与覆盖率并集计算。
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
-
|
|
38
|
+
准出规则:
|
|
39
|
+
|
|
40
|
+
- `summary.error_count > 0` 或 `summary.release_ready == false`:阻断创建、替换或交付,必须先修复。
|
|
41
|
+
- `summary.warning_count > 0`:静态检查不直接阻断,但 `summary.screenshot_review_required == true`,必须复核对应页面截图。
|
|
42
|
+
- `slides[].status` 为 `blocked`、`needs_screenshot_review` 或 `passed`,可直接决定逐页后续动作。
|
|
43
|
+
- CLI 在存在 `error` 时退出码为 1;只有 `warning` 时仍输出 JSON 并退出 0,供截图复核链路继续执行。
|
|
44
|
+
|
|
45
|
+
每条 `error` / `warning` 都包含:
|
|
46
|
+
|
|
47
|
+
- `element_ids`:相关 XML 元素 ID;
|
|
48
|
+
- `rule`:规则 ID、名称、阈值和比较关系;
|
|
49
|
+
- `measurement`:越界量、交叠面积、覆盖率等实测值;
|
|
50
|
+
- `related_objects`:相关对象的类型、坐标框,以及指向当前输入 XML 节点的 XPath-like `xml_path`;
|
|
51
|
+
- `target`、`message`、`hint`:页码、语义说明和处理建议。
|
|
52
|
+
|
|
53
|
+
当 `sparse_container_content.measurement.content_coverage_ratio < rule.threshold` 时,需要结合同页截图判断留白是否有意设计;不要仅凭 warning 自动扩充内容。
|
|
41
54
|
|
|
42
55
|
常见 code 的处理方向:
|
|
43
56
|
|
|
44
57
|
| code | 含义 | 处理方式 |
|
|
45
58
|
|------|------|----------|
|
|
46
59
|
| `xml_not_well_formed` | XML 语法错误或文本未转义 | 修复标签闭合、属性引号、`&` / `<` / `>` 转义 |
|
|
47
|
-
| `sml_prefixed_tag` | SML 元素使用了命名空间前缀,如 `<ns0:slide>` 或 `<sml:shape>` | 使用 `<slide xmlns="
|
|
60
|
+
| `sml_prefixed_tag` | SML 元素使用了命名空间前缀,如 `<ns0:slide>` 或 `<sml:shape>` | 使用 `<slide xmlns="https://www.larkoffice.com/sml/2.0">` 的默认命名空间,或使用无前缀标签 |
|
|
48
61
|
| `sxsd_unsupported_tag` | 使用了 SXSD 不支持的标签 | 按 lint `hint` 替换为受支持标签;常见如 `textbox -> <shape type="text">`、`image -> <img>` |
|
|
49
62
|
| `sxsd_unsupported_attr` | 支持的标签上使用了不支持的属性 | 按 lint `hint` 改为支持的属性;常见如 `x -> topLeftX`、`fontColor -> color` |
|
|
50
63
|
| `iconpark_unsupported_icon_type` | `<icon>` 使用了 `iconpark-index.json` 中不存在的 `iconType` | 按 lint `hint` 改为名单内的 `iconType`,或先用 `scripts/iconpark_tool.py` 搜索 |
|
|
51
64
|
| `icon_missing_fill_color` | 视觉规范要求 `<icon>` 设置 `<fill><fillColor color="..."/></fill>`,避免图标不可见 | 给 `<icon>` 添加显式非透明填充色,例如 `rgba(37, 99, 235, 1)` |
|
|
52
65
|
| `icon_transparent_fill_color` | `<icon>` 的 `fillColor` 是透明色,不满足视觉可见性要求 | 改成与背景有足够对比的非透明颜色 |
|
|
53
66
|
| `bbox_overlap` | 文本元素的估算绘制区域明显重叠 | 拉开文本坐标、缩小文本框/字号,或改成明确的分栏/分组结构 |
|
|
54
|
-
| `
|
|
67
|
+
| `*_out_of_canvas` | 元素边界超出页面画布 | 根据 `measurement.overflow` 移回画布或缩小尺寸 |
|
|
68
|
+
| `blank_slide` | 页面没有画布内可见内容 | 补充主体内容;仅有空背景或空形状不能准出 |
|
|
69
|
+
| `sparse_container_content` | 大卡片内容覆盖率低于阈值 | 按 `related_objects[].xml_path` 定位卡片;`element_id` 存在且唯一时也可按 ID 定位,再结合截图判断是否补充或放大内容 |
|
|
70
|
+
| `sparse_slide_content` | 全页有效内容覆盖率偏低 | 复核截图,确认是否为有意留白 |
|
|
71
|
+
|
|
72
|
+
## Screenshot QA
|
|
73
|
+
|
|
74
|
+
获取页面截图后,必须做视觉验收;不要只凭 XML 回读或静态 lint 结论声称截图验收通过。验收时假设页面存在问题,主动寻找并报告所有风险,包括轻微问题。
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
请逐页目视检查这些幻灯片截图。先假设存在问题,并尽量找出它们。
|
|
78
|
+
|
|
79
|
+
重点检查:
|
|
80
|
+
- 元素重叠:文字与形状、图片或图表互相遮挡,线条穿过文字,卡片或标签堆叠。
|
|
81
|
+
- 文本溢出或被裁切:靠近页面边缘、文本框边界或卡片边界处被截断。
|
|
82
|
+
- 装饰元素位置错误:分割线、强调线或标签底板按单行文字布置,但标题或正文换行后压住文字或距离异常。
|
|
83
|
+
- 来源标注、页脚或页码与上方内容碰撞。
|
|
84
|
+
- 元素距离过近:相邻元素间距明显不足,卡片或分区几乎贴在一起;按 960x540 画布估算,小于约 15 px 的间隔通常要标记。
|
|
85
|
+
- 间距不均:局部留白过大,另一处过于拥挤。
|
|
86
|
+
- 页面边距不足:主体内容贴近幻灯片边缘;按 960x540 画布估算,小于约 30 px 的外边距通常要标记。
|
|
87
|
+
- 列、卡片、图标或同类元素没有稳定对齐。
|
|
88
|
+
- 图片或图表渲染异常:空白、变形、低清、关键内容不可读或预期图形缺失。
|
|
89
|
+
- 文本对比度不足,例如浅灰文字放在米色或浅色背景上。
|
|
90
|
+
- 图标对比度不足,例如深色图标放在深色背景上,且没有浅色圆形或底板承托。
|
|
91
|
+
- 文本框过窄,导致不必要的频繁换行。
|
|
92
|
+
- 残留占位符、模板默认文字或未替换内容。
|
|
93
|
+
|
|
94
|
+
对每一页分别列出发现的问题或可疑区域,即使只是轻微问题也要记录。
|
|
95
|
+
|
|
96
|
+
报告所有发现的问题,包括轻微问题。
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
必须根据问题严重度决定是否修复:空白页、破图、文字遮挡、明显裁切、低对比不可读、占位符残留等必须先修复再交付;轻微间距或对齐问题如果不修复,最终验证记录要说明已知风险。
|
|
55
100
|
|
|
56
101
|
## Page Count And Structure
|
|
57
102
|
|
|
@@ -85,14 +130,6 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
|
|
85
130
|
- 大量形状坐标完全相同,导致主体内容重叠。
|
|
86
131
|
- 渐变背景回退成空白或白底,导致文字不可读。
|
|
87
132
|
|
|
88
|
-
## Whiteboard Elements
|
|
89
|
-
|
|
90
|
-
`slide.get` 回读 XML 时,`<whiteboard>` 块只返回位置属性(`topLeftX`、`topLeftY`、`width`、`height`),SVG / Mermaid 内容**不随 XML 返回**。
|
|
91
|
-
|
|
92
|
-
- whiteboard 验证可以核对坐标是否越界:`topLeftX + width ≤ 960`,`topLeftY + height ≤ 540`;lint 还会报告 whiteboard 容器与外部 sibling 元素的可疑边界重叠。
|
|
93
|
-
- SVG 和 Mermaid 内容的正确性无法通过回读 XML 验证,需要人工视觉验收。
|
|
94
|
-
- 不要在验证记录中声称 whiteboard 内容已验证,除非用户确认了视觉效果。
|
|
95
|
-
|
|
96
133
|
## Layout And Overflow Risk
|
|
97
134
|
|
|
98
135
|
优先修复这些明显风险:
|
|
@@ -7,27 +7,29 @@
|
|
|
7
7
|
## Core Rules
|
|
8
8
|
|
|
9
9
|
- `layout_type` must change geometry: element positions, region sizes, alignment, and visual rhythm must differ across page types.
|
|
10
|
-
- `visual_focus` determines the largest or highest-contrast region. It can be an image, diagram, metric, quote,
|
|
10
|
+
- `visual_focus` determines the largest or highest-contrast region. It can be an image, diagram, metric, quote, or table.
|
|
11
11
|
- `text_density` caps visible text:
|
|
12
12
|
- `low`: title plus one short statement, or 1-3 labels.
|
|
13
13
|
- `medium`: title plus 2-4 concise bullets or labeled regions.
|
|
14
14
|
- `high`: use a table, columns, grouped labels, or annotations. Do not use one long bullet box.
|
|
15
15
|
- Do not create a deck where every content page is title plus bullets. For 4 or more pages, use at least 4 different layout structures when the content allows.
|
|
16
|
-
- Keep
|
|
16
|
+
- Keep safe outer margins around `40` px on standard content pages, and fill the content area densely with a card grid rather than leaving large empty space. Only go full-bleed for an intentional image or cover treatment.
|
|
17
17
|
- Reserve vertical space for titles. A typical content title area is `y=36..90`; main content should usually start at `y>=110`.
|
|
18
18
|
- Avoid crowding the bottom edge. Keep non-background content above `y=500` unless it is a footer.
|
|
19
|
-
- Prefer fewer, larger objects over many small text boxes.
|
|
20
19
|
- Keep backgrounds consistent with the deck's `visual_system.background_strategy`. Normal content pages should use the same base background unless there is a clear page-role reason to change.
|
|
21
20
|
- Treat text fit as a layout constraint, not a cleanup step. If a text box is too small for the intended line count, shorten the text, split it, or allocate more space before creating XML.
|
|
21
|
+
- Do not use `<shape>` to build pictorial visuals like mock photos or fake objects. Use the image generation tool instead.
|
|
22
|
+
- Do not place a `rect` or `line` for dividing or decorative purposes directly under a `headline` or `title`.
|
|
23
|
+
- Do not use section bands, horizontal bars, vertical bars, or page-edge strips.
|
|
22
24
|
|
|
23
25
|
## Background And Motif Consistency
|
|
24
26
|
|
|
25
27
|
Decks can vary page backgrounds, but variation must be intentional and legible:
|
|
26
28
|
|
|
27
29
|
- Pick one default background for ordinary content pages and reuse it exactly. Avoid near-identical drift such as several slightly different off-white values unless it encodes a clear section change.
|
|
28
|
-
- Cover, section divider, emphasis, and conclusion pages may use a dark, image-led, or high-contrast background. They must still share the deck's primary color, motif,
|
|
30
|
+
- Cover, section divider, emphasis, and conclusion pages may use a dark, image-led, or high-contrast background. They must still share the deck's primary color, motif, typography, or geometry.
|
|
29
31
|
- If a cover uses a split composition, make the split visible in the background or layout. For example, reserve a darker text region and a related but distinct visual region instead of placing all elements on one flat field.
|
|
30
|
-
- Reuse a small number of visual devices:
|
|
32
|
+
- Reuse a small number of visual devices: card radius, node style, icon container, or footer treatment. Do not introduce a new decorative language on each page.
|
|
31
33
|
- Insert background and motif shapes before content elements so they do not cover text, images, or diagrams.
|
|
32
34
|
|
|
33
35
|
## Text Fit Guardrails
|
|
@@ -38,11 +40,11 @@ Use these as conservative minimums on a 960 x 540 canvas. Increase height when u
|
|
|
38
40
|
|----------|-------------------|----------------|
|
|
39
41
|
| Caption, 1 line | 10-12 | 18 |
|
|
40
42
|
| Caption, 2 lines | 10-12 | 30 |
|
|
41
|
-
| Body, 1 line |
|
|
42
|
-
| Body, 2 lines |
|
|
43
|
-
| Body, 2 lines, bold |
|
|
44
|
-
| Headline, 1 line |
|
|
45
|
-
| Title, 2 lines |
|
|
43
|
+
| Body, 1 line | 12-14 | 24 |
|
|
44
|
+
| Body, 2 lines | 12-14 | 40 |
|
|
45
|
+
| Body, 2 lines, bold | 12-14 | 48 |
|
|
46
|
+
| Headline, 1 line | 20-28 | 42 |
|
|
47
|
+
| Title, 2 lines | 28-36 | 110 |
|
|
46
48
|
|
|
47
49
|
Additional rules:
|
|
48
50
|
|
|
@@ -62,11 +64,12 @@ Purpose: introduce the deck's point of view.
|
|
|
62
64
|
Geometry:
|
|
63
65
|
- Use one dominant title block, usually `x=70..120`, `y=150..250`, `width=700..820`.
|
|
64
66
|
- Add one subtitle or context line, not a bullet list.
|
|
65
|
-
-
|
|
66
|
-
- If the cover has a
|
|
67
|
+
- Visual focus MUST be an `<img>`: a full-bleed background image or a large **full-height** side image (searched by the image search tool or generated by the image generation tool). Do NOT compose the cover visual from `<shape>` or `<icon>`.
|
|
68
|
+
- If the cover has a large full-height side image, use a split layout: keep the title and subtitle in the text region on the opposite side, and reserve a separate visual region so the image does not overlap the title. Crop (size and place) the side image so it stays within its visual region and does not extend into the text region.
|
|
67
69
|
- For split covers, make the background reinforce the composition, such as a darker text side and a related visual panel. Avoid one flat field where title and diagram compete for attention.
|
|
68
70
|
- Keep source metadata to one short line where possible. If it wraps, shorten author lists or move details to notes.
|
|
69
71
|
- The main title should be controlled, normally one or two lines. Do not let it occupy both the text region and the visual region.
|
|
72
|
+
- Do not add a vertical accent bar, side rail, or decorative line/strip.
|
|
70
73
|
|
|
71
74
|
Text:
|
|
72
75
|
- `low` only unless the user explicitly asks for detail.
|
|
@@ -78,7 +81,7 @@ Purpose: reset rhythm and mark a new chapter.
|
|
|
78
81
|
Geometry:
|
|
79
82
|
- Use a large section number, chapter label, or single centered claim.
|
|
80
83
|
- Keep the page sparse. A divider is not a content page.
|
|
81
|
-
- Visual focus can be one oversized number
|
|
84
|
+
- Visual focus can be one oversized number.
|
|
82
85
|
|
|
83
86
|
Text:
|
|
84
87
|
- Title plus one phrase. No bullets.
|
|
@@ -103,7 +106,7 @@ Purpose: let a visual establish context, with text explaining implication.
|
|
|
103
106
|
Geometry:
|
|
104
107
|
- Left visual region should occupy roughly `35-45%` of slide width, often full height or tall crop.
|
|
105
108
|
- Right text region starts around `x=420` and should have a strong headline plus short support.
|
|
106
|
-
- If no
|
|
109
|
+
- If no image is available, use the image generation tool to create an approximate image that matches `asset_need`.
|
|
107
110
|
- For dense screenshots, paper figures, or product captures with small labels, allocate a larger visual region when possible: often `50-65%` of slide width or at least `320` px height.
|
|
108
111
|
- Place screenshots in a deliberate frame or panel, and leave enough margin so axes, captions, and edge labels are not cropped by the slide boundary.
|
|
109
112
|
|
|
@@ -118,7 +121,7 @@ Purpose: lead with a message, then reinforce it with a visual.
|
|
|
118
121
|
Geometry:
|
|
119
122
|
- Left text region starts around `x=60..90`, width `400..460`.
|
|
120
123
|
- Right visual region occupies roughly `35-45%` of slide width.
|
|
121
|
-
- Align the image
|
|
124
|
+
- Align the image with the main text block, not only with the title.
|
|
122
125
|
- For dense screenshots, paper figures, or product captures with small labels, increase the visual region and reduce text. A readable image is more valuable than a fully populated text column.
|
|
123
126
|
|
|
124
127
|
Text:
|
|
@@ -130,8 +133,8 @@ Text:
|
|
|
130
133
|
Purpose: make one metric or fact memorable.
|
|
131
134
|
|
|
132
135
|
Geometry:
|
|
133
|
-
- Reserve the largest object for the metric: font size often `
|
|
134
|
-
- Set `autoFit="normal-auto-fit"` on the metric's `<content>` so an oversized number shrinks to fit its box
|
|
136
|
+
- Reserve the largest object for the metric: font size often `40-52`.
|
|
137
|
+
- MUST Set `wrap="true" autoFit="normal-auto-fit"` on the metric's `<content>` so an oversized number shrinks to fit its box.
|
|
135
138
|
- Pair the number with one explanation and optional 2-3 small supporting labels.
|
|
136
139
|
- Do not bury the number in a bullet list or small card.
|
|
137
140
|
|
|
@@ -169,7 +172,7 @@ Text:
|
|
|
169
172
|
|
|
170
173
|
Purpose: explain components, dependencies, or system flow.
|
|
171
174
|
|
|
172
|
-
Implementation:
|
|
175
|
+
Implementation: use `<shape>` + `<line>`.
|
|
173
176
|
|
|
174
177
|
Geometry:
|
|
175
178
|
- Main visual area should be a diagram, not prose.
|
|
@@ -185,7 +188,7 @@ Text:
|
|
|
185
188
|
|
|
186
189
|
Purpose: show operational steps, workflow, or cause-effect path.
|
|
187
190
|
|
|
188
|
-
Implementation:
|
|
191
|
+
Implementation: use `<shape>` + `<line>`.
|
|
189
192
|
|
|
190
193
|
Geometry:
|
|
191
194
|
- Use numbered steps connected by arrows or lines.
|
|
@@ -214,19 +217,19 @@ Purpose: close with decision, recommendation, or next action.
|
|
|
214
217
|
|
|
215
218
|
Geometry:
|
|
216
219
|
- Use one dominant closing statement or call to action.
|
|
217
|
-
- Add up to 3 next-step cards, checklist items, or owner/date labels.
|
|
218
220
|
- Visual focus should be the recommendation or action, not decorative filler.
|
|
221
|
+
- When using a full-bleed background image, add a semi-transparent scrim between the image and the text so the text stays legible; verify contrast.
|
|
219
222
|
|
|
220
223
|
Text:
|
|
221
224
|
- Keep the final page easy to remember. Avoid recap overload.
|
|
222
|
-
- Conclusion pages may mirror the cover background
|
|
225
|
+
- Conclusion pages may mirror the cover background.
|
|
223
226
|
|
|
224
227
|
## Screenshot And Paper Figure Pages
|
|
225
228
|
|
|
226
229
|
When a page uses a real screenshot, chart, paper figure, or product capture:
|
|
227
230
|
|
|
228
231
|
- Choose screenshot placement based on page role, not a fixed slide number. Method overview, evidence, comparison, and failure-analysis pages are common candidates; title, agenda, and conclusion pages usually are not.
|
|
229
|
-
- Use the real asset only when it is readable at slide size. If the figure is too dense, crop to the relevant region, create a zoomed detail, or
|
|
232
|
+
- Use the real asset only when it is readable at slide size. If the figure is too dense, crop to the relevant region, create a zoomed detail, or regenerate the core message with the image generation tool.
|
|
230
233
|
- A screenshot should normally be the visual focus. Do not shrink it into a decorative thumbnail while surrounding it with dense text.
|
|
231
234
|
- Pair the image with a small number of interpretive annotations that tell the audience what to notice.
|
|
232
235
|
- Always include a short source caption when using external or paper-derived visuals.
|