@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.
Files changed (266) hide show
  1. package/README.md +5 -1
  2. package/dist/config.d.ts +1 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -2
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/package.json +3 -3
  10. package/skills/lark-apps/SKILL.md +59 -14
  11. package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
  12. package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
  13. package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
  14. package/skills/lark-apps/creative-design/assets/index.html +27 -0
  15. package/skills/lark-apps/creative-design/creative-design.md +239 -0
  16. package/skills/lark-apps/creative-design/references/aily.md +39 -0
  17. package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
  18. package/skills/lark-apps/creative-design/references/charts.md +165 -0
  19. package/skills/lark-apps/creative-design/references/claude.md +36 -0
  20. package/skills/lark-apps/creative-design/references/codex.md +32 -0
  21. package/skills/lark-apps/creative-design/references/data-report.md +108 -0
  22. package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
  23. package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
  24. package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
  25. package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
  26. package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
  27. package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
  28. package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
  29. package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
  30. package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
  31. package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
  32. package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
  33. package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
  34. package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
  35. package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
  36. package/skills/lark-apps/references/lark-apps-automation.md +80 -2
  37. package/skills/lark-apps/references/lark-apps-cache.md +61 -0
  38. package/skills/lark-apps/references/lark-apps-cloud-dev.md +5 -5
  39. package/skills/lark-apps/references/lark-apps-create.md +6 -4
  40. package/skills/lark-apps/references/lark-apps-db.md +1 -1
  41. package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
  42. package/skills/lark-apps/references/lark-apps-file.md +2 -2
  43. package/skills/lark-apps/references/lark-apps-get.md +1 -1
  44. package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
  45. package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
  46. package/skills/lark-apps/references/lark-apps-init.md +1 -1
  47. package/skills/lark-apps/references/lark-apps-list.md +2 -2
  48. package/skills/lark-apps/references/lark-apps-local-dev.md +80 -11
  49. package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
  50. package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
  51. package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
  52. package/skills/lark-base/SKILL.md +34 -19
  53. package/skills/lark-base/references/lark-base-cell-value.md +3 -3
  54. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +17 -1
  55. package/skills/lark-base/references/lark-base-dashboard.md +17 -4
  56. package/skills/lark-base/references/lark-base-data-query-guide.md +8 -0
  57. package/skills/lark-base/references/lark-base-data-query.md +11 -4
  58. package/skills/lark-base/references/lark-base-field-create.md +21 -6
  59. package/skills/lark-base/references/lark-base-field-json.md +9 -6
  60. package/skills/lark-base/references/lark-base-field-update.md +17 -1
  61. package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
  62. package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
  63. package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
  64. package/skills/lark-base/references/lark-base-form-submit.md +16 -7
  65. package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
  66. package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
  67. package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
  68. package/skills/lark-base/references/lark-base-role-guide.md +11 -0
  69. package/skills/lark-base/references/lark-base-view-set-filter.md +11 -137
  70. package/skills/lark-base/references/role-config.md +31 -5
  71. package/skills/lark-calendar/SKILL.md +14 -8
  72. package/skills/lark-calendar/references/lark-calendar-create.md +6 -5
  73. package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
  74. package/skills/lark-calendar/references/lark-calendar-room-find.md +2 -1
  75. package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +1 -0
  76. package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -1
  77. package/skills/lark-calendar/references/lark-calendar-update.md +10 -4
  78. package/skills/lark-contact/SKILL.md +19 -3
  79. package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
  80. package/skills/lark-doc/SKILL.md +26 -61
  81. package/skills/lark-doc/references/genres/business-analysis.md +30 -0
  82. package/skills/lark-doc/references/genres/data-report.md +32 -0
  83. package/skills/lark-doc/references/genres/email.md +38 -0
  84. package/skills/lark-doc/references/genres/execution-plan.md +27 -0
  85. package/skills/lark-doc/references/genres/formal-doc.md +37 -0
  86. package/skills/lark-doc/references/genres/meeting-minutes.md +24 -0
  87. package/skills/lark-doc/references/genres/memo-brief.md +25 -0
  88. package/skills/lark-doc/references/genres/official-redhead.md +73 -0
  89. package/skills/lark-doc/references/genres/prd.md +26 -0
  90. package/skills/lark-doc/references/genres/proposal.md +24 -0
  91. package/skills/lark-doc/references/genres/research-report.md +32 -0
  92. package/skills/lark-doc/references/genres/retrospective.md +25 -0
  93. package/skills/lark-doc/references/genres/route-consumer.md +37 -0
  94. package/skills/lark-doc/references/genres/route-creative.md +36 -0
  95. package/skills/lark-doc/references/genres/route-knowledge.md +39 -0
  96. package/skills/lark-doc/references/genres/route-marketing.md +40 -0
  97. package/skills/lark-doc/references/genres/route-media.md +36 -0
  98. package/skills/lark-doc/references/genres/route-opinion.md +38 -0
  99. package/skills/lark-doc/references/genres/route-personal-brand.md +36 -0
  100. package/skills/lark-doc/references/genres/route-platform.md +9 -0
  101. package/skills/lark-doc/references/genres/route-report.md +10 -0
  102. package/skills/lark-doc/references/genres/route-workplace.md +17 -0
  103. package/skills/lark-doc/references/genres/sop-tutorial.md +41 -0
  104. package/skills/lark-doc/references/genres/technical-doc.md +39 -0
  105. package/skills/lark-doc/references/genres/wechat.md +39 -0
  106. package/skills/lark-doc/references/genres/weekly-report.md +24 -0
  107. package/skills/lark-doc/references/genres/white-paper.md +32 -0
  108. package/skills/lark-doc/references/genres/xiaohongshu.md +38 -0
  109. package/skills/lark-doc/references/lark-doc-create-workflow.md +121 -0
  110. package/skills/lark-doc/references/lark-doc-create.md +22 -48
  111. package/skills/lark-doc/references/lark-doc-fetch.md +84 -93
  112. package/skills/lark-doc/references/lark-doc-history.md +16 -15
  113. package/skills/lark-doc/references/lark-doc-md.md +5 -1
  114. package/skills/lark-doc/references/lark-doc-media-download.md +2 -1
  115. package/skills/lark-doc/references/lark-doc-script.md +76 -0
  116. package/skills/lark-doc/references/lark-doc-update.md +70 -222
  117. package/skills/lark-doc/references/lark-doc-whiteboard.md +14 -17
  118. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +46 -0
  119. package/skills/lark-doc/references/lark-doc-xml.md +38 -166
  120. package/skills/lark-drive/SKILL.md +32 -50
  121. package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
  122. package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
  123. package/skills/lark-drive/references/lark-drive-apply-permission.md +3 -3
  124. package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
  125. package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
  126. package/skills/lark-drive/references/lark-drive-comment-location.md +9 -15
  127. package/skills/lark-drive/references/lark-drive-copy.md +87 -0
  128. package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
  129. package/skills/lark-drive/references/lark-drive-download.md +6 -1
  130. package/skills/lark-drive/references/lark-drive-export.md +3 -0
  131. package/skills/lark-drive/references/lark-drive-list-comments.md +25 -68
  132. package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
  133. package/skills/lark-drive/references/lark-drive-member-add.md +2 -2
  134. package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
  135. package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
  136. package/skills/lark-drive/references/lark-drive-preview.md +11 -1
  137. package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
  138. package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
  139. package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
  140. package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
  141. package/skills/lark-drive/references/lark-drive-search.md +7 -1
  142. package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
  143. package/skills/lark-drive/references/lark-drive-task-result.md +3 -0
  144. package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
  145. package/skills/lark-drive/references/lark-drive-update-title.md +78 -0
  146. package/skills/lark-drive/references/lark-drive-upload.md +1 -0
  147. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
  148. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
  149. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
  150. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
  151. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
  152. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
  153. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
  154. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
  155. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
  156. package/skills/lark-drive/references/lark-drive-workflow.md +5 -4
  157. package/skills/lark-event/SKILL.md +8 -4
  158. package/skills/lark-event/references/lark-event-application.md +38 -0
  159. package/skills/lark-event/references/lark-event-vc.md +8 -2
  160. package/skills/lark-im/SKILL.md +9 -9
  161. package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
  162. package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
  163. package/skills/lark-im/references/card/resource/icons.md +14 -0
  164. package/skills/lark-im/references/lark-im-chat-list.md +9 -2
  165. package/skills/lark-im/references/lark-im-chat-members-list.md +7 -4
  166. package/skills/lark-im/references/lark-im-chat-messages-list.md +10 -3
  167. package/skills/lark-im/references/lark-im-chat-search.md +9 -2
  168. package/skills/lark-im/references/lark-im-feed-group-list-item.md +2 -2
  169. package/skills/lark-im/references/lark-im-feed-group-list.md +2 -2
  170. package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
  171. package/skills/lark-im/references/lark-im-flag-list.md +9 -8
  172. package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
  173. package/skills/lark-im/references/lark-im-messages-resources-download.md +19 -25
  174. package/skills/lark-im/references/lark-im-messages-search.md +4 -5
  175. package/skills/lark-im/references/lark-im-threads-messages-list.md +8 -4
  176. package/skills/lark-mail/references/lark-mail-triage.md +19 -4
  177. package/skills/lark-minutes/SKILL.md +1 -1
  178. package/skills/lark-minutes/references/lark-minutes-search.md +6 -7
  179. package/skills/lark-okr/SKILL.md +71 -26
  180. package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
  181. package/skills/lark-okr/references/lark-okr-create.md +173 -0
  182. package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
  183. package/skills/lark-okr/references/lark-okr-entities.md +1 -0
  184. package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
  185. package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
  186. package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
  187. package/skills/lark-shared/SKILL.md +3 -3
  188. package/skills/lark-sheets/SKILL.md +83 -82
  189. package/skills/lark-sheets/references/lark-sheets-batch-update.md +13 -58
  190. package/skills/lark-sheets/references/lark-sheets-chart.md +2 -1
  191. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +1 -1
  192. package/skills/lark-sheets/references/lark-sheets-range-operations.md +5 -5
  193. package/skills/lark-sheets/references/lark-sheets-read-data.md +80 -6
  194. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +21 -10
  195. package/skills/lark-sheets/references/lark-sheets-styles-put.md +93 -0
  196. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +2 -2
  197. package/skills/lark-sheets/references/lark-sheets-workbook.md +4 -3
  198. package/skills/lark-sheets/references/lark-sheets-write-cells.md +40 -12
  199. package/skills/lark-sheets/scripts/lark_detect_subtables.py +593 -0
  200. package/skills/lark-sheets/scripts/lark_inspect_workbook.py +188 -0
  201. package/skills/lark-sheets/scripts/lark_profile_table.py +614 -0
  202. package/skills/lark-sheets/scripts/lark_sheet_range.py +176 -0
  203. package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +184 -0
  204. package/skills/lark-sheets/scripts/sheets_df.py +21 -3
  205. package/skills/lark-slides/SKILL.md +134 -104
  206. package/skills/lark-slides/references/asset-planning.md +6 -4
  207. package/skills/lark-slides/references/iconpark.md +2 -2
  208. package/skills/lark-slides/references/lark-slides-add-slide.md +92 -0
  209. package/skills/lark-slides/references/lark-slides-create.md +86 -66
  210. package/skills/lark-slides/references/lark-slides-delete-slide.md +65 -0
  211. package/skills/lark-slides/references/lark-slides-edit-workflows.md +6 -7
  212. package/skills/lark-slides/references/lark-slides-history.md +132 -0
  213. package/skills/lark-slides/references/lark-slides-media-upload.md +4 -27
  214. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
  215. package/skills/lark-slides/references/lark-slides-replace-slide.md +22 -4
  216. package/skills/lark-slides/references/lark-slides-screenshot.md +33 -15
  217. package/skills/lark-slides/references/lark-slides-update-slide.md +146 -0
  218. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
  219. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
  220. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +90 -32
  221. package/skills/lark-slides/references/planning-layer.md +11 -10
  222. package/skills/lark-slides/references/slides_chart_demo.xml +1415 -1
  223. package/skills/lark-slides/references/slides_xml_schema_definition.xml +539 -79
  224. package/skills/lark-slides/references/troubleshooting.md +26 -9
  225. package/skills/lark-slides/references/validation-checklist.md +55 -18
  226. package/skills/lark-slides/references/visual-planning.md +25 -22
  227. package/skills/lark-slides/references/xml-schema-quick-ref.md +299 -51
  228. package/skills/lark-slides/scripts/sxsd_validator.py +1052 -0
  229. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1964 -195
  230. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +4051 -501
  231. package/skills/lark-task/SKILL.md +7 -0
  232. package/skills/lark-task/references/lark-task-complete.md +6 -2
  233. package/skills/lark-task/references/lark-task-create.md +9 -0
  234. package/skills/lark-task/references/lark-task-update.md +6 -2
  235. package/skills/lark-whiteboard/SKILL.md +21 -13
  236. package/skills/lark-whiteboard/elements/layout.md +1 -1
  237. package/skills/lark-whiteboard/elements/schema.md +2 -2
  238. package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +17 -16
  239. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +7 -7
  240. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +23 -31
  241. package/skills/lark-whiteboard/routes/dsl.md +11 -5
  242. package/skills/lark-whiteboard/routes/mermaid.md +3 -3
  243. package/skills/lark-whiteboard/routes/svg-edit.md +9 -6
  244. package/skills/lark-whiteboard/routes/svg.md +14 -7
  245. package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
  246. package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
  247. package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
  248. package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
  249. package/skills/lark-whiteboard/scenes/mention.md +71 -0
  250. package/skills/lark-whiteboard/scenes/treemap.md +1 -1
  251. package/skills/lark-wiki/SKILL.md +6 -3
  252. package/skills/lark-wiki/references/lark-wiki-delete-space.md +6 -3
  253. package/skills/lark-doc/references/lark-doc-word-stat.md +0 -93
  254. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +0 -47
  255. package/skills/lark-doc/references/style/lark-doc-style.md +0 -68
  256. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +0 -48
  257. package/skills/lark-doc/scripts/doc_word_stat.py +0 -1243
  258. package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -80
  259. package/skills/lark-slides/references/examples.md +0 -91
  260. package/skills/lark-slides/references/lark-slides-replace-pages.md +0 -95
  261. package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
  262. package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
  263. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +0 -125
  264. package/skills/lark-slides/references/slide-templates.md +0 -201
  265. package/skills/lark-slides/references/slides_demo.xml +0 -226
  266. package/skills/lark-slides/references/xml-format-guide.md +0 -433
@@ -38,6 +38,13 @@ metadata:
38
38
  > Task OpenAPI 中用于更新/操作任务的 `guid` 是任务的全局唯一标识(GUID),不是客户端展示的任务编号(例如 `t104121` / `suite_entity_num`)。
39
39
  > 对于 Feishu 的任务 applink(例如 `.../client/todo/task?guid=...`),必须使用 URL query 里的 `guid` 参数作为 task guid。
40
40
 
41
+ > **从任务清单定位并修改任务的最短路径**:
42
+ > 1. 已知任务清单 GUID 时直接使用,不要先搜索;已知任务清单 applink 时,取 URL query 中的 `guid` 作为 `tasklist_guid`。
43
+ > 2. 只有清单名称或关键词、没有 GUID/applink 时,才调用一次 `+tasklist-search` 解析目标清单。
44
+ > 3. 按原生 API 规则先执行 `lark-cli schema task.tasklists.tasks`,再执行 `lark-cli task tasklists tasks --params '{"tasklist_guid":"<tasklist_guid>"}' --as user`。
45
+ > 4. 从清单任务结果中取任务的 `guid`,直接传给 `+update` 或 `+complete`;禁止传客户端展示编号(例如 `t104121`)。这两个 shortcut 也可直接接收包含 `guid=` 的任务 applink。
46
+ > 5. `+update` 返回 `updated_fields` 和每个任务的服务端 `confirmed` 字段;`+complete` 返回 `status`、`completed_at`、`already_completed`。这些字段已确认目标状态时,不要例行追加 `tasks get`;仅在服务端未返回所需字段或用户明确要求完整复核时再查询详情。
47
+
41
48
  | Shortcut | 说明 |
42
49
  |----------|------|
43
50
  | [`+create`](references/lark-task-create.md) | create a task |
@@ -9,19 +9,23 @@ Mark a task as completed.
9
9
  ```bash
10
10
  # Complete a task
11
11
  lark-cli task +complete --task-id "<task_guid>"
12
+
13
+ # A task applink is accepted directly; the CLI extracts its guid query value
14
+ lark-cli task +complete --task-id "https://applink.larksuite.com/client/todo/task?guid=<task_guid>"
12
15
  ```
13
16
 
14
17
  ## Parameters
15
18
 
16
19
  | Parameter | Required | Description |
17
20
  |-----------|----------|-------------|
18
- | `--task-id <guid>` | Yes | The task GUID to complete. For Feishu task applinks, use the `guid` query parameter, not the `suite_entity_num` / display task ID like `t104121`. |
21
+ | `--task-id <guid-or-applink>` | Yes | Task OpenAPI GUID or a task applink containing `guid=`. Display task IDs such as `t104121` / `suite_entity_num` are rejected. |
19
22
 
20
23
  ## Workflow
21
24
 
22
25
  1. Confirm the task to complete.
23
26
  2. Execute the command.
24
- 3. Report success.
27
+ 3. Read `data.status`, `data.completed_at`, and `data.already_completed` from the result. `already_completed: true` means the shortcut observed an already-completed task and skipped the PATCH.
28
+ 4. Do not routinely call `task tasks get` when the result already reports `status: done` and a non-zero `completed_at`. Query details only if confirmation fields are absent or the user explicitly asks for a full verification.
25
29
 
26
30
  > [!CAUTION]
27
31
  > This is a **Write Operation** -- You must confirm the user's intent before executing.
@@ -24,6 +24,12 @@ lark-cli task +create \
24
24
  lark-cli task +create \
25
25
  --summary "Buy milk"
26
26
 
27
+ # Create a milestone by passing an API field without a named flag
28
+ lark-cli task +create \
29
+ --summary "Release v2.0" \
30
+ --due "2026-08-15" \
31
+ --data '{"is_milestone":true}'
32
+
27
33
  # Preview the API call without executing
28
34
  lark-cli task +create --summary "Test Task" --dry-run
29
35
  ```
@@ -39,8 +45,11 @@ lark-cli task +create --summary "Test Task" --dry-run
39
45
  | `--due <time>` | No | Due date. Supports ISO 8601, `YYYY-MM-DD`, relative time (e.g., `+2d`), or ms timestamp. `YYYY-MM-DD` and relative time will automatically set it as an all-day task. |
40
46
  | `--tasklist-id <id>` | No | The GUID of the tasklist, or a full AppLink URL (the CLI will automatically extract the `guid` parameter from the URL). |
41
47
  | `--idempotency-key <key>` | No | Client token to ensure idempotency of the request. |
48
+ | `--data <json>` | No | JSON object merged into the task create request for API fields without dedicated flags, such as `{"is_milestone":true}`. Explicit named flags override same-named fields in this object. |
42
49
  | `--dry-run` | No | Preview the API call (JSON payload) without actually creating the task. |
43
50
 
51
+ Use `lark-cli schema task.tasks.create` to confirm that an extra field is supported before passing it through `--data`. Prefer this shortcut over the raw `tasks create` command when `--data` can express the request. Do not assume that other shortcuts support `--data`; check each shortcut's `--help` output first.
52
+
44
53
  ## Workflow
45
54
 
46
55
  1. Confirm with the user: task summary, due date, assignee, and tasklist if necessary.
@@ -13,6 +13,9 @@ lark-cli task +update --task-id "<task_guid>" --summary "New Summary"
13
13
  # Update multiple tasks' due dates
14
14
  lark-cli task +update --task-id "<task_guid>,<another_task_guid>" --due "+2d"
15
15
 
16
+ # A task applink is accepted directly; the CLI extracts its guid query value
17
+ lark-cli task +update --task-id "https://applink.larksuite.com/client/todo/task?guid=<task_guid>" --summary "New Summary"
18
+
16
19
  # Update with JSON data
17
20
  lark-cli task +update --task-id "<task_guid>" --data '{"description": "New description"}'
18
21
  ```
@@ -21,7 +24,7 @@ lark-cli task +update --task-id "<task_guid>" --data '{"description": "New descr
21
24
 
22
25
  | Parameter | Required | Description |
23
26
  |-----------|----------|-------------|
24
- | `--task-id <guid>` | Yes | The task GUID to update. Comma-separated task GUIDs are supported for multiple tasks. For Feishu task applinks, use the `guid` query parameter, not the `suite_entity_num` / display task ID like `t104121`. |
27
+ | `--task-id <guid-or-applink>` | Yes | Task OpenAPI GUID or a task applink containing `guid=`. Comma-separated GUIDs/applinks are supported for multiple tasks. Display task IDs such as `t104121` / `suite_entity_num` are rejected. |
25
28
  | `--summary <text>` | No | New summary/title for the task. |
26
29
  | `--description <text>` | No | New description for the task. |
27
30
  | `--due <time>` | No | New due date (supports relative time). |
@@ -31,7 +34,8 @@ lark-cli task +update --task-id "<task_guid>" --data '{"description": "New descr
31
34
 
32
35
  1. Confirm with the user the tasks to update and the fields.
33
36
  2. Execute `lark-cli task +update --task-id "..." ...`
34
- 3. Report the successful updates.
37
+ 3. Read `data.updated_fields` and `data.tasks[].confirmed` from the result and report only the fields confirmed by the server.
38
+ 4. Do not routinely call `task tasks get` after the update when `confirmed` already contains the required state. Query details only if a required field is absent or the user explicitly asks for a full verification.
35
39
 
36
40
  > [!CAUTION]
37
41
  > This is a **Write Operation** -- You must confirm the user's intent before executing.
@@ -12,7 +12,7 @@ metadata:
12
12
 
13
13
  > [!IMPORTANT]
14
14
  > - 运行 `lark-cli --version`,确认可用,无需询问用户。
15
- > - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.12 -v`,确认可用,无需询问用户。
15
+ > - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 -v`,确认可用,无需询问用户。
16
16
 
17
17
  **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**
18
18
 
@@ -22,21 +22,29 @@ metadata:
22
22
 
23
23
  **身份**:画板操作默认使用 `--as user`。仅当需要以应用身份上传时使用 `--as bot`。
24
24
 
25
- | 用户需求 | 行动 |
26
- |-----------------------------------------|-----------------------------------------------------------------------------------------------|
27
- | 查看画板内容 / 导出图片 / 导出 SVG 矢量图 | [`+query --output_as image/svg`](references/lark-whiteboard-query.md) |
28
- | 获取画板的 Mermaid/PlantUML 代码 | [`+query --output_as code`](references/lark-whiteboard-query.md) |
29
- | 检查画板是否由代码绘制 | [`+query --output_as code`](references/lark-whiteboard-query.md) |
30
- | 仅微调节点文字/颜色 | `+query --output_as raw` → 手动改 JSON → `+update --input_format raw` |
31
- | 用户**已提供** Mermaid/PlantUML/SVG 代码,或明确指定用该格式 | 自己生成/使用代码 → [`+update --input_format mermaid/plantuml/svg`](references/lark-whiteboard-update.md) |
32
- | 新建/创作复杂图表(架构/流程/组织等) | → **[§ 创作 Workflow](references/lark-whiteboard-workflow.md#创作-workflow)** |
33
- | 修改/重绘已有画板 | → **[§ 修改 Workflow](references/lark-whiteboard-workflow.md#修改-workflow)** |
25
+ > 先判断「只读还是写入」,再在对应表内按上到下匹配,**命中即停**。
34
26
 
35
- ## Shortcuts
27
+ ### A. 只读 · 查看 / 导出(不改画板)
36
28
 
37
- | Shortcut | 说明 |
29
+ | 用户需求 | 行动 |
38
30
  |---|---|
39
- | [`+query`](references/lark-whiteboard-query.md) | 查询画板,导出为预览图片、SVG 矢量图、代码或原始节点结构。 |
31
+ | 查看画板内容 / 导出图片 | [`+export --output-type preview`](references/lark-whiteboard-export.md) |
32
+ | 导出 SVG 矢量图 | [`+export --output-type svg`](references/lark-whiteboard-export.md) |
33
+ | 提取画板的 Mermaid/PlantUML 源码 | [`+export --output-type source`](references/lark-whiteboard-export.md) |
34
+
35
+ ### B. 写入 · 创作 / 编辑(会改画板,命中即停)
36
+
37
+ | 场景 | 行动 | 写入方式 | 对原内容 |
38
+ |---|---|---|---|
39
+ | 用户**已提供** Mermaid/PlantUML/SVG 代码,或明确指定用该格式 | 使用该代码 → [`+update`](references/lark-whiteboard-update.md),`--input_format` 取单值 `mermaid` / `plantuml` / `svg`;写入非空已有画板并需要 overwrite 时,先确认会整板重建;若 SVG 用于修改已有画板,先走 [`routes/svg-edit.md`](routes/svg-edit.md) 有损确认 | overwrite / append | 按用户要求 |
40
+ | 从零新建复杂图表(架构/流程/组织等) | → **[§ 创作 Workflow](references/lark-whiteboard-workflow.md#创作-workflow)** | 首次写入 | — |
41
+ | 修改 / 增补已有画板 | → **[§ 编辑 Workflow](references/lark-whiteboard-workflow.md#编辑-workflow)** | 见该表 | 见该表 |
42
+
43
+ ## Shortcuts
44
+
45
+ | Shortcut | 说明 |
46
+ |---------------------------------------------------|---|
47
+ | [`+export`](references/lark-whiteboard-export.md) | 导出画板为预览图片、SVG 矢量图、代码或原始节点结构。 |
40
48
  | [`+update`](references/lark-whiteboard-update.md) | 更新画板,支持 PlantUML、Mermaid、SVG 或 OpenAPI 原生格式 |
41
49
 
42
50
  ---
@@ -336,7 +336,7 @@ DSL 的语法是严格白名单,不能写原生 CSS 属性(不支持 `alignS
336
336
  先出骨架图导出坐标,再基于坐标补充连线和注解:
337
337
 
338
338
  ```bash
339
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i skeleton.json -o step1.png -l coords.json
339
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i skeleton.json -o step1.png -l coords.json
340
340
  ```
341
341
 
342
342
  `coords.json` 包含每个带 id 节点的精确坐标(absX, absY, width, height)。
@@ -272,14 +272,14 @@ SVG 通过 `image/svg+xml` Blob 加载到画布,**不在 HTML DOM 中**,因
272
272
  x?: number; y?: number;
273
273
  width?: WBSizeValue; // 默认 48
274
274
  height?: WBSizeValue; // 默认 48,保持正方形
275
- name: string; // 图标名称,从 npx -y @larksuite/whiteboard-cli@^0.2.12 --icons 输出中选取
275
+ name: string; // 图标名称,从 npx -y @larksuite/whiteboard-cli@^0.2.13 --icons 输出中选取
276
276
  color?: string; // 可选颜色覆盖,hex 格式如 '#FF6600'
277
277
  }
278
278
  ```
279
279
 
280
280
  **获取可用图标**:规划好内容和布局后,运行以下命令查看所有可用图标名,从中选取:
281
281
  ```bash
282
- npx -y @larksuite/whiteboard-cli@^0.2.12 --icons
282
+ npx -y @larksuite/whiteboard-cli@^0.2.13 --icons
283
283
  ```
284
284
 
285
285
  用法:
@@ -1,50 +1,51 @@
1
- # whiteboard +query(查询画板)
1
+ # whiteboard +export(导出画板)
2
2
 
3
3
  > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
- 查询画板内容,支持导出为预览图片、SVG 矢量图、提取 PlantUML/Mermaid 代码,或获取飞书 OpenAPI 原生画板节点格式。
5
+ 导出画板内容,支持导出为预览图片、SVG 矢量图、提取 PlantUML/Mermaid 代码,或获取飞书 OpenAPI 原生画板节点格式。
6
6
 
7
7
  ## 参数
8
8
 
9
9
  | 参数 | 必填 | 说明 |
10
10
  |----------------------|----|------------------------------------------------------------------------|
11
11
  | `--whiteboard-token` | 是 | 画板 token,需要拥有画板的读权限 |
12
- | `--output_as` | 是 | 输出格式:`image`(预览图片)、`svg`(SVG 矢量图)、`code`(PlantUML/Mermaid 代码)、`raw`(OpenAPI 原生画板节点格式) |
13
- | `--output` | 否 | 输出路径。当 `--output_as image` 时必填;当 `--output_as svg/code/raw` 时可选,不填则直接输出到终端 |
12
+ | `--output-type` | 是 | 输出格式:`preview`(预览图片)、`svg`(SVG 矢量图)、`source`(PlantUML/Mermaid 代码)、`raw`(OpenAPI 原生画板节点格式) |
13
+ | `--output` | 否 | 输出路径。当 `--output-type preview` 时必填;当 `--output-type svg/source/raw` 时可选,不填则直接输出到终端 |
14
14
  | `--overwrite` | 否 | 覆盖已存在的文件,默认为 false |
15
15
 
16
16
  ## 输出格式
17
17
 
18
- - `image`:预览图片
18
+ - `preview`:预览图片。保存时会根据接口实际返回的 `Content-Type` 决定扩展名,例如 `image/jpeg` 会保存为 `.jpg`。
19
19
  - `svg`:导出画板为标准 SVG 矢量图。可用于 SVG 编辑后回写画板(见 [`routes/svg-edit.md`](../routes/svg-edit.md))。注意:导出为纯视觉快照,思维导图层级、表格结构、连接器绑定等语义信息会丢失。
20
- - `code`:PlantUML/Mermaid 代码。仅限画板内有且仅有一个 PlantUML/Mermaid 图时,才可导出代码,否则会在返回值中告知不存在/有多个节点。
21
- - `raw`:飞书 OpenAPI 原生画板节点格式。这一 json 格式不适合直接编辑复杂布局或内容,建议仅限于需要修改简单的文本内容/颜色等细节时使用。需要进行更复杂的设计/修改时,建议参考 [§ 渲染 & 写入画板](../SKILL.md#渲染--写入画板)。
20
+ - `source`:PlantUML/Mermaid 代码。仅限画板内有且仅有一个 PlantUML/Mermaid 图时,才可导出代码,否则会在返回值中告知不存在/有多个节点。
21
+ - `raw`:飞书 OpenAPI 原生画板节点格式。这一 json 格式不适合直接编辑复杂布局或内容,建议仅限于需要修改简单的文本内容/颜色等细节时使用。需要进行更复杂的设计/修改时,建议参考 [§ 编辑 Workflow](lark-whiteboard-workflow.md#编辑-workflow)。
22
+ - **需编辑后回写时,导出务必加 `--output <file>` 写入文件**:文件内容可直接作为 `+update` 的输入;直接输出到终端的结果会多一层 `{ ok, identity, data }` 包装,`+update` 无法解析。
22
23
 
23
24
  ## 示例
24
25
 
25
26
  ### 示例 1:导出画板为预览图片
26
27
 
27
28
  ```bash
28
- lark-cli whiteboard +query \
29
+ lark-cli whiteboard +export \
29
30
  --whiteboard-token "wbcnxxxxxxxx" \
30
- --output_as image \
31
- --output ./preview.png
31
+ --output-type preview \
32
+ --output ./preview
32
33
  ```
33
34
 
34
35
  ### 示例 2:提取画板中的代码并直接输出
35
36
 
36
37
  ```bash
37
- lark-cli whiteboard +query \
38
+ lark-cli whiteboard +export \
38
39
  --whiteboard-token "wbcnxxxxxxxx" \
39
- --output_as code
40
+ --output-type source
40
41
  ```
41
42
 
42
43
  ### 示例 3:导出画板为 SVG 矢量图
43
44
 
44
45
  ```bash
45
- lark-cli whiteboard +query \
46
+ lark-cli whiteboard +export \
46
47
  --whiteboard-token "wbcnxxxxxxxx" \
47
- --output_as svg \
48
+ --output-type svg \
48
49
  --output ./whiteboard.svg \
49
50
  --as user
50
51
  ```
@@ -52,9 +53,9 @@ lark-cli whiteboard +query \
52
53
  ### 示例 4:导出画板原始节点结构到文件
53
54
 
54
55
  ```bash
55
- lark-cli whiteboard +query \
56
+ lark-cli whiteboard +export \
56
57
  --whiteboard-token "wbcnxxxxxxxx" \
57
- --output_as raw \
58
+ --output-type raw \
58
59
  --output ./nodes.json \
59
60
  --overwrite
60
61
  ```
@@ -16,8 +16,8 @@
16
16
  | 参数 | 必填 | 说明 |
17
17
  |----------------------|----|--------------------------------------------|
18
18
  | `--whiteboard-token` | 是 | 画板 token,需要拥有画板的编辑权限 |
19
- | `--idempotent-token` | 否 | 幂等 token,确保更新操作幂等,最小长度 10 个字符 |
20
- | `--overwrite` | 否 | 覆盖更新,在更新前删除所有现有内容,默认为 false |
19
+ | `--idempotent-token` | 否 | 幂等 token,确保更新操作幂等;最少 10 个字符,建议使用时间戳 + 场景标识拼接(如 `1744800000-board-1`)。同一次逻辑更新只生成一次该 token,重试时须原样复用;切勿在每次重试时重新生成时间戳或幂等 key,否则会重复写入 |
20
+ | `--overwrite` | 否 | 写入模式:带上则覆盖更新(写入前删除画板所有现有内容再写入);省略则为增量追加(保留原有内容,新内容叠加写入)。默认 false(增量追加)|
21
21
  | `--source` | 是 | 输入画板内容,支持使用 `@path` 从文件读取,或 `-` 从 stdin 读取 |
22
22
  | `--input_format` | 否 | 输入格式:`raw`、`plantuml`、`mermaid`、`svg`,默认为 `raw` |
23
23
 
@@ -27,7 +27,7 @@
27
27
 
28
28
  思维导图,时序图,类图,饼图,流程图等图表推荐使用 Mermaid/PlantUML 语法绘制。
29
29
 
30
- 而当需要绘制架构图,组织架构图,泳道图,对比图,鱼骨图,柱状图,折线图,树状图,漏斗图,金字塔图,循环/飞轮图,里程碑或其他较为复杂的图表时,推荐参考 [§ 渲染 & 写入画板](../SKILL.md#渲染--写入画板) 使用 whiteboard-cli 工具创作。
30
+ 而当需要绘制架构图,组织架构图,泳道图,对比图,鱼骨图,柱状图,折线图,树状图,漏斗图,金字塔图,循环/飞轮图,里程碑或其他较为复杂的图表时,推荐参考 [§ 渲染 & 写入画板](lark-whiteboard-workflow.md#渲染--写入画板) 使用 whiteboard-cli 工具创作。
31
31
 
32
32
  ## 示例
33
33
 
@@ -71,11 +71,11 @@ lark-cli whiteboard +update \
71
71
 
72
72
  ### 示例 3:使用 whiteboard-cli 生成 OpenAPI 格式并写入画板
73
73
 
74
- whiteboard-cli 工具的具体用法请参考 [§ 渲染 & 写入画板](../SKILL.md#渲染--写入画板)
74
+ whiteboard-cli 工具的具体用法请参考 [§ 渲染 & 写入画板](lark-whiteboard-workflow.md#渲染--写入画板)
75
75
 
76
76
  ```bash
77
77
  # 使用 whiteboard-cli 生成 OpenAPI 格式并通过管道传递
78
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <产物文件> --to openapi --format json \
78
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <产物文件> --to openapi --format json \
79
79
  | lark-cli whiteboard +update \
80
80
  --whiteboard-token <画板Token> \
81
81
  --source - --input_format raw \
@@ -85,11 +85,11 @@ npx -y @larksuite/whiteboard-cli@^0.2.12 -i <产物文件> --to openapi --format
85
85
 
86
86
  ### 示例 4:先生成产物文件,再从文件读取更新
87
87
 
88
- whiteboard-cli 工具的具体用法请参考 [§ 渲染 & 写入画板](../SKILL.md#渲染--写入画板)
88
+ whiteboard-cli 工具的具体用法请参考 [§ 渲染 & 写入画板](lark-whiteboard-workflow.md#渲染--写入画板)
89
89
 
90
90
  ```bash
91
91
  # 生成 OpenAPI 格式到文件
92
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <DSL 文件> --to openapi --format json -o ./temp.json
92
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <DSL 文件> --to openapi --format json -o ./temp.json
93
93
 
94
94
  # 从文件读取并更新
95
95
  lark-cli whiteboard +update \
@@ -1,4 +1,4 @@
1
- # 画板创作/修改工作流
1
+ # 画板创作/编辑工作流
2
2
 
3
3
  ## 创作 Workflow
4
4
 
@@ -19,23 +19,24 @@
19
19
 
20
20
  ---
21
21
 
22
- ## 修改 Workflow
22
+ ## 编辑 Workflow
23
23
 
24
24
  **Step 1:获取 board_token**(同创作 Workflow Step 1)
25
25
 
26
- **Step 2:判断修改策略**
26
+ **Step 2:探测可编辑性 / 是否由代码绘制**
27
27
 
28
- ```
29
- +query --output_as code
30
- ├─ 返回 Mermaid/PlantUML 代码
31
- │ → 在原代码上修改 → +update --input_format mermaid/plantuml
32
- ├─ 无代码(SVG/DSL 或其他方式绘制的画板)
33
- │ ├─ 需纯新增(思维导图、流程图、时序图、类图、饼图、甘特图)图表节点
34
- │ │ → +query --output_as image → 看图 → +query --output_as raw → 确定新节点坐标和层级 → [§ 渲染 & 写入画板]
35
- │ └─ 其他改动(几何变动/增删元素/结构调整/混合编辑等)
36
- │ → [`../routes/svg-edit.md`](../routes/svg-edit.md)(视觉高保真还原,大部分场景适用)
37
- └─ 用户有明确要求 → 以用户要求优先
38
- ```
28
+ - `+export --output-type source` — 能返回单一 Mermaid/PlantUML 源码,说明画板由代码绘制、可走路径①;返回无代码/多图则走路径②③④
29
+
30
+ **Step 3:选编辑路径**(按上到下匹配,命中即停;用户有明确指定则以用户为准)
31
+
32
+ | 路径 | 命中条件 | 怎么改 | 写入方式 | 是否有损 |
33
+ |---|---|---|---|---|
34
+ | ①源码重构 | `+export source` 返回单一 Mermaid/PlantUML(即画板由代码绘制) | 在源码上改 → 按源码类型用 `+update --input_format mermaid` 或 `+update --input_format plantuml` | overwrite(整板重建) | ⚠️ **非严格无损,执行前确认** |
35
+ | ②属性微调 | 只改已有节点的文字/颜色 | `+export --output-type raw --output <file>`(**必须写入文件**)→ 编辑文件中目标节点字段;如只能用 `+update --input_format raw --source @<file> --overwrite` 写回,先说明会整板重建并等待用户确认 | overwrite(整板重建) | ⚠️ **有损风险,未确认不得执行** |
36
+ | ③增量追加 | 在原图基础上新增图/元素,保留原内容 | `+export --output-type preview` → 理解原图 → `+export --output-type raw` → 确定新节点坐标 → [§ 渲染 & 写入画板](#渲染--写入画板) 创作&写入 | append(**不加 `--overwrite`**) | 无损(原节点不动) |
37
+ | ④结构重绘 | 需几何变动/增删元素/结构调整/混合编辑 | [`../routes/svg-edit.md`](../routes/svg-edit.md) | overwrite(清空重来) | ⚠️ **有损,必须先经用户确认** |
38
+
39
+ **⚠️ 止损**:一条路径最多试 2 轮,不行就换条路径尝试一次;仍不行就停下,如实告诉用户卡点,不要在各路径间反复横跳。
39
40
 
40
41
  ---
41
42
 
@@ -45,12 +46,13 @@
45
46
 
46
47
  **先自报身份**:按训练来源,你属于哪一家?`Claude` / `Gemini` / `GPT` / `GLM` / `Doubao 或 Seed` / `Other`。身份决定 SVG / DSL 分流(不同家族对这两种表达语言的能力不均衡),不要跳过这一步。
47
48
 
48
- **然后按图表类型 × 身份选路径**,读对应文件按其完整 workflow 执行(含读 scene 指南、生成内容、渲染审查、交付):
49
+ **然后按当前产物类型 / 图表类型 × 身份选路径**,读对应文件按其完整 workflow 执行(含读 scene 指南、生成内容、渲染审查、交付):
49
50
 
50
- 按上到下匹配, 命中即停:
51
+ 当前产物路由按上到下匹配, 命中即停:
51
52
 
52
53
  | 图表类型 | 身份 | 路径 |
53
54
  |--------------------|-------------------------------------|------------------------------------------------|
55
+ | 当前要生成/追加的内容包含 @用户提及或图片/配图 | 任何身份 | [`../routes/dsl.md`](../routes/dsl.md) |
54
56
  | 思维导图、时序图、类图、饼图、甘特图 | 任何身份 | [`../routes/mermaid.md`](../routes/mermaid.md) |
55
57
  | 鱼骨图、金字塔图、流程图 | `Doubao` / `Seed` | [`../routes/dsl.md`](../routes/dsl.md) |
56
58
  | 其他图表 | `Claude` / `Gemini` / `GPT` / `GLM` / `Doubao` / `Seed` | [`../routes/svg.md`](../routes/svg.md) |
@@ -79,19 +81,9 @@ diagram.png ← 渲染结果
79
81
 
80
82
  ### 写入画板
81
83
 
82
- > 关于 --overwrite
83
- > 画板更新命令中,若不携带 --overwrite flag,则是增量更新画板内容,若画板内已有内容的话,新增内容可能会和已有内容重叠,导致问题。
84
- > 因此,若需要整体更新画板内容,需携带 --overwrite flag 覆盖式更新。
85
-
86
- ```bash
87
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <产物文件> --to openapi --format json \
88
- | lark-cli whiteboard +update \
89
- --whiteboard-token <Token> \
90
- --source - --input_format raw \
91
- --idempotent-token <10+字符唯一串> \
92
- --as user \
93
- --overwrite
94
- ```
84
+ 写入画板时按最终产物类型选择 `+update --input_format`:
85
+
86
+ - Mermaid / PlantUML / SVG 产物直接写入时,`--input_format` 取单值 `mermaid` / `plantuml` / `svg`;写入非空已有画板并需要 overwrite 时,先确认会整板重建;SVG 修改已有画板时先走 [`../routes/svg-edit.md`](../routes/svg-edit.md) 的确认 workflow。
87
+ - 只有 DSL 产物或已明确需要 OpenAPI 原生节点格式时,才先用 `npx -y @larksuite/whiteboard-cli@^0.2.13 --to openapi --format json` 转换,再用 `raw` 写入。
95
88
 
96
- > `--idempotent-token` 最少 10 字符,建议用时间戳+标识拼接(如 `1744800000-board-1`),避免重试导致重复写入。
97
- > 如需应用身份上传,将 `--as user` 替换为 `--as bot`。
89
+ 具体命令示例、`--overwrite`、`--idempotent-token` 和 `--as user/bot` 的使用方式,统一参考 [`whiteboard +update`](./lark-whiteboard-update.md)。
@@ -13,7 +13,7 @@ Step 1: 路由 & 读取知识
13
13
  Step 2: 生成完整 DSL(含颜色)
14
14
  - 按 content.md 规划信息量和分组
15
15
  - 按 layout.md 选择布局模式和间距
16
- - 推荐使用图标让图表更直观,运行 `npx -y @larksuite/whiteboard-cli@^0.2.12 --icons` 查看可用图标
16
+ - 推荐使用图标让图表更直观,运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 --icons` 查看可用图标
17
17
  - 按 style.md 上色(用户没指定时用默认经典色板)
18
18
  - 按 schema.md 语法输出完整 JSON
19
19
  - 连线参考 connectors.md,排版参考 typography.md
@@ -25,15 +25,15 @@ Step 2: 生成完整 DSL(含颜色)
25
25
 
26
26
  Step 3: 渲染 & 审查 → 交付
27
27
  - 渲染前自查(见下方检查清单)
28
- - 渲染 PNG(仅用于预览验证,不是最终产物):npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.json -o diagram.png
28
+ - 渲染 PNG(仅用于预览验证,不是最终产物):npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json -o diagram.png
29
29
  - 检查:信息完整?布局合理?配色协调?文字无截断?连线无交叉?
30
30
  - 有问题 → 按症状表修复 → 重新渲染(最多 2 轮)
31
31
  - 2 轮后仍有严重问题 → 考虑走 Mermaid 路径兜底
32
32
  - 写入画板:用 whiteboard-cli 将 diagram.json 转换为 OpenAPI 格式并 pipe 给 +update:
33
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.json --to openapi --format json \
33
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json --to openapi --format json \
34
34
  | lark-cli whiteboard +update --whiteboard-token <board_token> \
35
35
  --source - --input_format raw --idempotent-token <时间戳+标识> --as user
36
- → 完整 dry-run / 确认流程见 SKILL.md [§ 写入画板](../SKILL.md#写入画板)
36
+ → 完整 dry-run / 确认流程见 [§ 写入画板](../references/lark-whiteboard-workflow.md#写入画板)
37
37
  - 交付:向用户报告 board_token 写入成功
38
38
  ```
39
39
 
@@ -73,7 +73,13 @@ Step 3: 渲染 & 审查 → 交付
73
73
  | 循环/飞轮图 | `scenes/flywheel.md` | 增长飞轮、闭环链路 |
74
74
  | 里程碑 | `scenes/milestone.md` | 时间线、版本演进 |
75
75
  | 流程图 | `scenes/flowchart.md` | 业务流、状态机、带条件判断的链路 |
76
- | 图片展示 | `scenes/photo-showcase.md` | 用户显式要求图片/配图/插图时(需先完成 `elements/image.md` 的图片准备) |
76
+
77
+ ### 插入 @用户提及 / 图片
78
+
79
+ | 当前内容包含 | 必读指南 |
80
+ |---|---|
81
+ | @用户提及 | [`../scenes/mention.md`](../scenes/mention.md) |
82
+ | 图片 / 配图 | [`../scenes/photo-showcase.md`](../scenes/photo-showcase.md) |
77
83
 
78
84
  ## 渲染前自查
79
85
 
@@ -16,12 +16,12 @@ Step 3: 渲染验证 & 写入画板 & 交付
16
16
  1. 创建产物目录 ./diagrams/YYYY-MM-DDTHHMMSS/
17
17
  2. 保存为 diagram.mmd
18
18
  3. 渲染(仅用于预览验证,PNG 不是最终产物):
19
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.mmd -o diagram.png
19
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.mmd -o diagram.png
20
20
  4. 审查 PNG,有问题修改后重新渲染(最多 2 轮)
21
21
  5. 写入画板:用 whiteboard-cli 将 diagram.mmd 转换为 OpenAPI 格式并 pipe 给 +update:
22
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.mmd --to openapi --format json \
22
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.mmd --to openapi --format json \
23
23
  | lark-cli whiteboard +update --whiteboard-token <board_token> \
24
24
  --source - --input_format raw --idempotent-token <时间戳+标识> --as user
25
- → 完整 dry-run / 确认流程见 SKILL.md [§ 写入画板](../SKILL.md#写入画板)
25
+ → 完整 dry-run / 确认流程见 [§ 写入画板](../references/lark-whiteboard-workflow.md#写入画板)
26
26
  6. 交付:向用户报告 board_token 写入成功
27
27
  ```
@@ -16,18 +16,21 @@ SVG 导出是**纯视觉快照**,再次导入后画板语义(思维导图层
16
16
 
17
17
  ### 0. 用户确认(强制)
18
18
 
19
- 在执行任何编辑前,**必须**向用户说明:
19
+ 执行任何编辑前,先判断**紧邻的上一条用户消息**是否已明确确认有损编辑:
20
+
21
+ - **已确认**(含用户主动预授权,如"我知道有损,直接改")→ 直接进入 Step 1,不再重复警告。
22
+ - **未确认或回复含糊** → 原样向用户发出下面这句话,**然后立即结束本回合等待回复** —— 同一条消息内不得附带任何导出/编辑/写回命令或工具调用:
20
23
 
21
24
  > SVG 编辑只保证视觉层面对齐,画板语义(层级/节点类型/思维导图结构/表格结构/连线绑定/容器类型/mention 等)将不可恢复,是否继续?
22
25
 
23
- **用户未确认前不得执行后续步骤。**
26
+ 这是**知情确认**(动手前让用户对语义丢失止损);真正的破坏性写入在 Step 4 还会再经 `--overwrite` dry-run 确认一次,二者职责不同、都不可省。
24
27
 
25
28
  ### 1. 导出当前画板 SVG
26
29
 
27
30
  ```bash
28
- lark-cli whiteboard +query \
31
+ lark-cli whiteboard +export \
29
32
  --whiteboard-token <TOKEN> \
30
- --output_as svg \
33
+ --output-type svg \
31
34
  --output <dir>/original.svg \
32
35
  --as user
33
36
  ```
@@ -53,10 +56,10 @@ lark-cli whiteboard +query \
53
56
 
54
57
  ```bash
55
58
  # 渲染 PNG 预览
56
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/edited.svg -o <dir>/edited.png -f svg
59
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/edited.svg -o <dir>/edited.png -f svg
57
60
 
58
61
  # 几何检查(text-overflow / node-overlap)
59
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/edited.svg -f svg --check
62
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/edited.svg -f svg --check
60
63
  ```
61
64
 
62
65
  结合 PNG 视觉效果和 `--check` 报告进行调整,有问题则修改 SVG 后重新渲染(最多 2 轮)。
@@ -4,6 +4,7 @@
4
4
  最终交付是**画板跨越重排渲染的节点**(你写 SVG → 画板解析)
5
5
 
6
6
  **核心心智纠正 (重要)**:
7
+
7
8
  - 大多数 AI 如果只考虑“绝对不报错/完美映射”, 最终给出的都是全篇纯白底色加单层 `<rect>` 的方正卡片网格, 极其死板单调, **这将被视为不及格!**
8
9
  - **SVG 给你了完全的设计自由**, 请大胆使用你脑内的图标路径 (`<path>`), 连接指引 (`流畅的 <path>`), 各种环境氛围点缀, 大胆一点, 充分信任你的品味, 发挥出你的顶级艺术创造力!
9
10
 
@@ -20,6 +21,7 @@
20
21
  [!IMPORTANT] 布局, 配色, 信息密度, 装饰物——**全部由你判断**, 打破单调的 `<rect>` 牢笼, 严禁通篇用矩形和文字应付用户
21
22
 
22
23
  操作边界约束:
24
+
23
25
  - **语言跟随用户**:图表文字的语言与用户 prompt 保持一致, 技术术语用行业里通用的写法, 不机械翻译
24
26
  - 文字用 `<text>`(不是 `<path>`), 容器宽度留够——画板按 CJK ≈ 1em / Latin ≈ 0.6em 重排
25
27
  - 连线使用正交折线替代斜直线(`<polyline>` 带水平/垂直折点)视觉效果更好
@@ -30,16 +32,16 @@
30
32
  ```
31
33
  建目录 ./diagrams/YYYY-MM-DDTHHMMSS/ (例:./diagrams/2026-04-15T143022/)
32
34
  写文件 <dir>/diagram.svg
33
- 渲染 npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/diagram.svg -o <dir>/diagram.png -f svg
34
- 检查 npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/diagram.svg -f svg --check
35
- 导出 npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/diagram.svg -f svg --to openapi --format json > <dir>/diagram.json
35
+ 渲染 npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -o <dir>/diagram.png -f svg
36
+ 检查 npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -f svg --check
37
+ 导出 npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -f svg --to openapi --format json > <dir>/diagram.json
36
38
  ```
37
39
 
38
- `npx -y @larksuite/whiteboard-cli@^0.2.12 --check` 检测 `text-overflow` 和 `node-overlap`, 并结合视觉效果(查看 PNG)进行调整
40
+ `npx -y @larksuite/whiteboard-cli@^0.2.13 --check` 检测 `text-overflow` 和 `node-overlap`, 并结合视觉效果(查看 PNG)进行调整
39
41
 
40
42
  ## 画板怎么处理 SVG
41
43
 
42
- 画板的 svg-parser 把可识别元素转成可编辑节点, 其余降级为内嵌图片(渲染没问题, 虽然不可编辑, 但是可以正常显示);但 `<radialGradient>` / `<filter>` / `<clipPath>` 等装饰特性画板完全不支持,会导致渲染问题(见下方⚠️)
44
+ 画板的 svg-parser 把可识别元素转成可编辑节点, 其余降级为内嵌图片(渲染没问题, 虽然不可编辑, 但是可以正常显示);但非阴影用途的 `<filter>` / `<clipPath>` 等装饰特性画板不支持(见下方⚠️)
43
45
  **不需要所有元素都可编辑, 但必须避免使用不支持的装饰特性, 且要兼顾可编辑和美观漂亮**
44
46
 
45
47
  **可识别的元素**
@@ -49,6 +51,11 @@
49
51
  - 文本:`<text>` / `<tspan>` 画板硬编码 Noto Sans SC **文字必须用 `<text>`**
50
52
  - 分组:`<g>` / `<a>` / `<use>` 引用 `<symbol>`
51
53
  - 变换:`translate` / `rotate` / `scale` 正常;`skewX` / `skewY` / `matrix(...)` 降级
54
+ - 阴影:`<filter>` 里放 `<feDropShadow>` 或标准 drop/inner primitive 链 (`<feGaussianBlur in="SourceAlpha">` + `<feOffset>` + `<feFlood>` + `<feComposite>` + `<feMerge>`), 会被识别成节点阴影, drop 至多 1 个, inner 至多 1 个; 其余 filter 效果不识别
55
+ - 渐变:`<linearGradient>` / `<radialGradient>` 在 `<defs>` 中定义, 通过 `fill="url(#id)"` 引用 (载体限 `<rect>` / `<circle>` / `<ellipse>` / `<polygon>` / `<path>`), 需要至少 2 个 `<stop>`, `gradientUnits` 只支持默认的 `objectBoundingBox` (不写即可);
56
+
57
+ > [!IMPORTANT]
58
+ > ⚠️ **不支持的装饰特性**
52
59
 
53
- **⚠️ [!IMPORTANT] 不支持的装饰特性**
54
- - `<radialGradient>` / `<filter>` / `<pattern>` / `<clipPath>` / `<mask>` → 画板都不支持,**请避免使用,否则会导致画板渲染问题**
60
+ - `<pattern>` / `<clipPath>` / `<mask>` / 非阴影用途的 `<filter>` (blur / hue-rotate / 复合合成 / `flood-color=url(...)` / 多个 `<feDropShadow>` 等) → 画板不支持,**请避免使用,否则会导致画板渲染问题**
61
+ - 渐变边界:`gradientUnits="userSpaceOnUse"` / `spreadMethod="reflect|repeat"` / stops 少于 2 个 / 复杂 `gradientTransform` 会变成不可编辑图片, 视觉正确但失去可编辑性, 若无必要请沿用默认 `objectBoundingBox`
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Layout 选型
10
10
 
11
- - **脚本生成坐标**(推荐):用 .cjs 脚本计算柱体位置和高度,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
11
+ - **脚本生成坐标**(推荐):用 .cjs 脚本计算柱体位置和高度,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
12
12
  - **绝对定位手写**:简单柱状图(≤ 5 个柱)可手写坐标
13
13
 
14
14
  ## Layout 规则
@@ -10,7 +10,7 @@
10
10
 
11
11
  ## Layout 选型
12
12
 
13
- - **脚本生成坐标**(必须):用 .cjs 脚本通过三角函数计算鱼骨坐标,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
13
+ - **脚本生成坐标**(必须):用 .cjs 脚本通过三角函数计算鱼骨坐标,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
14
14
 
15
15
  ## Layout 规则
16
16
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## Layout 选型
11
11
 
12
- - **脚本生成坐标**(必须):用 .cjs 脚本极坐标计算阶段标签位置、SVG 圆环切割,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
12
+ - **脚本生成坐标**(必须):用 .cjs 脚本极坐标计算阶段标签位置、SVG 圆环切割,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
13
13
 
14
14
  ## Layout 规则
15
15
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Layout 选型
10
10
 
11
- - **脚本生成坐标**(推荐):用 .cjs 脚本计算数据点坐标和折线路径,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
11
+ - **脚本生成坐标**(推荐):用 .cjs 脚本计算数据点坐标和折线路径,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
12
12
 
13
13
  ## Layout 规则
14
14