@amaster.ai/pi-lark 0.1.4 → 0.1.6

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 (416) hide show
  1. package/package.json +3 -3
  2. package/skills/lark-approval/SKILL.md +99 -0
  3. package/skills/lark-approval/references/lark-approval-approvals-get.md +128 -0
  4. package/skills/lark-approval/references/lark-approval-approvals-search.md +103 -0
  5. package/skills/lark-approval/references/lark-approval-initiate.md +221 -0
  6. package/skills/lark-approval/references/lark-approval-instance-form-control-parameters.md +606 -0
  7. package/skills/lark-approval/references/lark-approval-instance-value-sourcing.md +108 -0
  8. package/skills/lark-approval/references/lark-approval-instances-cancel.md +78 -0
  9. package/skills/lark-approval/references/lark-approval-instances-cc.md +105 -0
  10. package/skills/lark-approval/references/lark-approval-instances-get.md +145 -0
  11. package/skills/lark-approval/references/lark-approval-instances-initiated.md +128 -0
  12. package/skills/lark-approval/references/lark-approval-tasks-add-sign.md +120 -0
  13. package/skills/lark-approval/references/lark-approval-tasks-approve.md +81 -0
  14. package/skills/lark-approval/references/lark-approval-tasks-query.md +85 -0
  15. package/skills/lark-approval/references/lark-approval-tasks-reject.md +73 -0
  16. package/skills/lark-approval/references/lark-approval-tasks-remind.md +82 -0
  17. package/skills/lark-approval/references/lark-approval-tasks-rollback.md +89 -0
  18. package/skills/lark-approval/references/lark-approval-tasks-transfer.md +91 -0
  19. package/skills/lark-apps/SKILL.md +110 -0
  20. package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
  21. package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
  22. package/skills/lark-apps/references/lark-apps-automation.md +164 -0
  23. package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
  24. package/skills/lark-apps/references/lark-apps-create.md +40 -0
  25. package/skills/lark-apps/references/lark-apps-db-execute.md +228 -0
  26. package/skills/lark-apps/references/lark-apps-db.md +162 -0
  27. package/skills/lark-apps/references/lark-apps-env-pull.md +37 -0
  28. package/skills/lark-apps/references/lark-apps-env.md +48 -0
  29. package/skills/lark-apps/references/lark-apps-file.md +96 -0
  30. package/skills/lark-apps/references/lark-apps-get.md +43 -0
  31. package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
  32. package/skills/lark-apps/references/lark-apps-html-publish.md +62 -0
  33. package/skills/lark-apps/references/lark-apps-init.md +36 -0
  34. package/skills/lark-apps/references/lark-apps-list.md +37 -0
  35. package/skills/lark-apps/references/lark-apps-local-dev.md +78 -0
  36. package/skills/lark-apps/references/lark-apps-observability.md +48 -0
  37. package/skills/lark-apps/references/lark-apps-openapi-key.md +79 -0
  38. package/skills/lark-apps/references/lark-apps-plugin-install.md +36 -0
  39. package/skills/lark-apps/references/lark-apps-plugin-list.md +23 -0
  40. package/skills/lark-apps/references/lark-apps-plugin-uninstall.md +25 -0
  41. package/skills/lark-apps/references/lark-apps-release-create.md +32 -0
  42. package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
  43. package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
  44. package/skills/lark-apps/references/lark-apps-role.md +133 -0
  45. package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
  46. package/skills/lark-apps/references/lark-apps-update.md +30 -0
  47. package/skills/lark-attendance/SKILL.md +57 -0
  48. package/skills/lark-base/SKILL.md +161 -0
  49. package/skills/lark-base/references/dashboard-block-data-config.md +376 -0
  50. package/skills/lark-base/references/formula-field-guide.md +737 -0
  51. package/skills/lark-base/references/lark-base-cell-value.md +158 -0
  52. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
  53. package/skills/lark-base/references/lark-base-dashboard.md +247 -0
  54. package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
  55. package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
  56. package/skills/lark-base/references/lark-base-data-query.md +454 -0
  57. package/skills/lark-base/references/lark-base-field-create.md +105 -0
  58. package/skills/lark-base/references/lark-base-field-json.md +527 -0
  59. package/skills/lark-base/references/lark-base-field-update.md +173 -0
  60. package/skills/lark-base/references/lark-base-form-detail.md +71 -0
  61. package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
  62. package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
  63. package/skills/lark-base/references/lark-base-form-submit.md +170 -0
  64. package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
  65. package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
  66. package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
  67. package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
  68. package/skills/lark-base/references/lark-base-role-guide.md +65 -0
  69. package/skills/lark-base/references/lark-base-view-set-filter.md +191 -0
  70. package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
  71. package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
  72. package/skills/lark-base/references/lookup-field-guide.md +512 -0
  73. package/skills/lark-base/references/role-config.md +549 -0
  74. package/skills/lark-calendar/SKILL.md +198 -0
  75. package/skills/lark-calendar/references/lark-calendar-create.md +83 -0
  76. package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
  77. package/skills/lark-calendar/references/lark-calendar-recurring.md +90 -0
  78. package/skills/lark-calendar/references/lark-calendar-room-find.md +109 -0
  79. package/skills/lark-calendar/references/lark-calendar-rsvp.md +38 -0
  80. package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
  81. package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
  82. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +122 -0
  83. package/skills/lark-calendar/references/lark-calendar-suggestion.md +121 -0
  84. package/skills/lark-calendar/references/lark-calendar-update.md +100 -0
  85. package/skills/lark-contact/SKILL.md +55 -0
  86. package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
  87. package/skills/lark-contact/references/lark-contact-search-user.md +123 -0
  88. package/skills/lark-doc/SKILL.md +84 -0
  89. package/skills/lark-doc/references/lark-doc-create.md +80 -0
  90. package/skills/lark-doc/references/lark-doc-fetch.md +140 -0
  91. package/skills/lark-doc/references/lark-doc-history.md +107 -0
  92. package/skills/lark-doc/references/lark-doc-md.md +76 -0
  93. package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
  94. package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
  95. package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
  96. package/skills/lark-doc/references/lark-doc-mindnote.md +128 -0
  97. package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
  98. package/skills/lark-doc/references/lark-doc-update.md +260 -0
  99. package/skills/lark-doc/references/lark-doc-whiteboard.md +158 -0
  100. package/skills/lark-doc/references/lark-doc-word-stat.md +93 -0
  101. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
  102. package/skills/lark-doc/references/lark-doc-xml.md +182 -0
  103. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +47 -0
  104. package/skills/lark-doc/references/style/lark-doc-style.md +68 -0
  105. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +48 -0
  106. package/skills/lark-doc/scripts/doc_word_stat.py +1243 -0
  107. package/skills/lark-drive/SKILL.md +232 -0
  108. package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
  109. package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
  110. package/skills/lark-drive/references/lark-drive-comment-location.md +205 -0
  111. package/skills/lark-drive/references/lark-drive-comments-guide.md +80 -0
  112. package/skills/lark-drive/references/lark-drive-cover.md +79 -0
  113. package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
  114. package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  115. package/skills/lark-drive/references/lark-drive-delete.md +103 -0
  116. package/skills/lark-drive/references/lark-drive-download.md +31 -0
  117. package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
  118. package/skills/lark-drive/references/lark-drive-export.md +174 -0
  119. package/skills/lark-drive/references/lark-drive-files-list.md +183 -0
  120. package/skills/lark-drive/references/lark-drive-import.md +178 -0
  121. package/skills/lark-drive/references/lark-drive-inspect.md +52 -0
  122. package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
  123. package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
  124. package/skills/lark-drive/references/lark-drive-move.md +122 -0
  125. package/skills/lark-drive/references/lark-drive-permission-guide.md +53 -0
  126. package/skills/lark-drive/references/lark-drive-preview.md +87 -0
  127. package/skills/lark-drive/references/lark-drive-pull.md +137 -0
  128. package/skills/lark-drive/references/lark-drive-push.md +189 -0
  129. package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
  130. package/skills/lark-drive/references/lark-drive-search.md +273 -0
  131. package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
  132. package/skills/lark-drive/references/lark-drive-status.md +135 -0
  133. package/skills/lark-drive/references/lark-drive-task-result.md +355 -0
  134. package/skills/lark-drive/references/lark-drive-upload.md +101 -0
  135. package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
  136. package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
  137. package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
  138. package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
  139. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
  140. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
  141. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
  142. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
  143. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
  144. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +232 -0
  145. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
  146. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
  147. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
  148. package/skills/lark-drive/references/lark-drive-workflow.md +131 -0
  149. package/skills/lark-event/SKILL.md +155 -0
  150. package/skills/lark-event/references/lark-event-approval.md +170 -0
  151. package/skills/lark-event/references/lark-event-im.md +87 -0
  152. package/skills/lark-event/references/lark-event-minutes.md +54 -0
  153. package/skills/lark-event/references/lark-event-task.md +78 -0
  154. package/skills/lark-event/references/lark-event-vc.md +106 -0
  155. package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
  156. package/skills/lark-im/SKILL.md +249 -0
  157. package/skills/lark-im/references/card/card-2.0-schema.md +107 -0
  158. package/skills/lark-im/references/card/components/button.md +63 -0
  159. package/skills/lark-im/references/card/components/chart.md +57 -0
  160. package/skills/lark-im/references/card/components/checker.md +38 -0
  161. package/skills/lark-im/references/card/components/collapsible_panel.md +46 -0
  162. package/skills/lark-im/references/card/components/column_set.md +53 -0
  163. package/skills/lark-im/references/card/components/date_picker.md +34 -0
  164. package/skills/lark-im/references/card/components/div.md +36 -0
  165. package/skills/lark-im/references/card/components/form.md +51 -0
  166. package/skills/lark-im/references/card/components/header.md +34 -0
  167. package/skills/lark-im/references/card/components/hr.md +17 -0
  168. package/skills/lark-im/references/card/components/img.md +34 -0
  169. package/skills/lark-im/references/card/components/img_combination.md +30 -0
  170. package/skills/lark-im/references/card/components/input.md +43 -0
  171. package/skills/lark-im/references/card/components/interactive_container.md +46 -0
  172. package/skills/lark-im/references/card/components/markdown.md +56 -0
  173. package/skills/lark-im/references/card/components/multi_select_person.md +40 -0
  174. package/skills/lark-im/references/card/components/multi_select_static.md +40 -0
  175. package/skills/lark-im/references/card/components/overflow.md +36 -0
  176. package/skills/lark-im/references/card/components/person.md +30 -0
  177. package/skills/lark-im/references/card/components/person_list.md +31 -0
  178. package/skills/lark-im/references/card/components/picker_datetime.md +34 -0
  179. package/skills/lark-im/references/card/components/picker_time.md +34 -0
  180. package/skills/lark-im/references/card/components/recycling_container.md +35 -0
  181. package/skills/lark-im/references/card/components/select_img.md +42 -0
  182. package/skills/lark-im/references/card/components/select_person.md +39 -0
  183. package/skills/lark-im/references/card/components/select_static.md +43 -0
  184. package/skills/lark-im/references/card/components/table.md +53 -0
  185. package/skills/lark-im/references/card/lark-im-card-create.md +180 -0
  186. package/skills/lark-im/references/card/lark-im-card-style.md +281 -0
  187. package/skills/lark-im/references/card/resource/colors.md +34 -0
  188. package/skills/lark-im/references/card/resource/icons.md +38 -0
  189. package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
  190. package/skills/lark-im/references/lark-im-chat-create.md +162 -0
  191. package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
  192. package/skills/lark-im/references/lark-im-chat-list.md +166 -0
  193. package/skills/lark-im/references/lark-im-chat-members-list.md +83 -0
  194. package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
  195. package/skills/lark-im/references/lark-im-chat-search.md +142 -0
  196. package/skills/lark-im/references/lark-im-chat-update.md +84 -0
  197. package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
  198. package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
  199. package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
  200. package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
  201. package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
  202. package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
  203. package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
  204. package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
  205. package/skills/lark-im/references/lark-im-flag-create.md +67 -0
  206. package/skills/lark-im/references/lark-im-flag-list.md +100 -0
  207. package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
  208. package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
  209. package/skills/lark-im/references/lark-im-messages-reply.md +277 -0
  210. package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
  211. package/skills/lark-im/references/lark-im-messages-search.md +234 -0
  212. package/skills/lark-im/references/lark-im-messages-send.md +279 -0
  213. package/skills/lark-im/references/lark-im-reactions.md +299 -0
  214. package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
  215. package/skills/lark-mail/SKILL.md +290 -0
  216. package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
  217. package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
  218. package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
  219. package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
  220. package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
  221. package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
  222. package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  223. package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
  224. package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
  225. package/skills/lark-mail/references/lark-mail-forward.md +239 -0
  226. package/skills/lark-mail/references/lark-mail-html.md +333 -0
  227. package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
  228. package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
  229. package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
  230. package/skills/lark-mail/references/lark-mail-message.md +233 -0
  231. package/skills/lark-mail/references/lark-mail-messages.md +108 -0
  232. package/skills/lark-mail/references/lark-mail-recall.md +66 -0
  233. package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
  234. package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
  235. package/skills/lark-mail/references/lark-mail-reply.md +249 -0
  236. package/skills/lark-mail/references/lark-mail-rules.md +31 -0
  237. package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
  238. package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
  239. package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
  240. package/skills/lark-mail/references/lark-mail-send.md +222 -0
  241. package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
  242. package/skills/lark-mail/references/lark-mail-signature.md +98 -0
  243. package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
  244. package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
  245. package/skills/lark-mail/references/lark-mail-template.md +54 -0
  246. package/skills/lark-mail/references/lark-mail-thread.md +111 -0
  247. package/skills/lark-mail/references/lark-mail-triage.md +131 -0
  248. package/skills/lark-mail/references/lark-mail-watch.md +94 -0
  249. package/skills/lark-markdown/SKILL.md +70 -0
  250. package/skills/lark-markdown/references/lark-markdown-create.md +114 -0
  251. package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
  252. package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
  253. package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
  254. package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
  255. package/skills/lark-minutes/SKILL.md +207 -0
  256. package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
  257. package/skills/lark-minutes/references/lark-minutes-download.md +135 -0
  258. package/skills/lark-minutes/references/lark-minutes-search.md +202 -0
  259. package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
  260. package/skills/lark-minutes/references/lark-minutes-summary.md +120 -0
  261. package/skills/lark-minutes/references/lark-minutes-todo.md +136 -0
  262. package/skills/lark-minutes/references/lark-minutes-update.md +39 -0
  263. package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
  264. package/skills/lark-note/SKILL.md +94 -0
  265. package/skills/lark-note/references/lark-note-detail.md +26 -0
  266. package/skills/lark-note/references/lark-note-transcript.md +23 -0
  267. package/skills/lark-okr/SKILL.md +122 -0
  268. package/skills/lark-okr/references/lark-okr-alignments.md +180 -0
  269. package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
  270. package/skills/lark-okr/references/lark-okr-contentblock.md +427 -0
  271. package/skills/lark-okr/references/lark-okr-cycle-detail.md +91 -0
  272. package/skills/lark-okr/references/lark-okr-cycle-list.md +93 -0
  273. package/skills/lark-okr/references/lark-okr-entities.md +329 -0
  274. package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
  275. package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
  276. package/skills/lark-okr/references/lark-okr-indicators.md +223 -0
  277. package/skills/lark-okr/references/lark-okr-patch.md +104 -0
  278. package/skills/lark-okr/references/lark-okr-progress-create.md +85 -0
  279. package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
  280. package/skills/lark-okr/references/lark-okr-progress-get.md +93 -0
  281. package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
  282. package/skills/lark-okr/references/lark-okr-progress-update.md +85 -0
  283. package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
  284. package/skills/lark-okr/references/lark-okr-weight.md +96 -0
  285. package/skills/lark-openapi-explorer/SKILL.md +153 -0
  286. package/skills/lark-shared/SKILL.md +211 -0
  287. package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
  288. package/skills/lark-sheets/SKILL.md +234 -0
  289. package/skills/lark-sheets/references/lark-sheets-batch-update.md +200 -0
  290. package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
  291. package/skills/lark-sheets/references/lark-sheets-chart.md +332 -0
  292. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +181 -0
  293. package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
  294. package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
  295. package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
  296. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +276 -0
  297. package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
  298. package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
  299. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +171 -0
  300. package/skills/lark-sheets/references/lark-sheets-range-operations.md +297 -0
  301. package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
  302. package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
  303. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
  304. package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
  305. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
  306. package/skills/lark-sheets/references/lark-sheets-workbook.md +420 -0
  307. package/skills/lark-sheets/references/lark-sheets-write-cells.md +575 -0
  308. package/skills/lark-sheets/scripts/sheets_df.py +32 -0
  309. package/skills/lark-skill-maker/SKILL.md +85 -0
  310. package/skills/lark-slides/SKILL.md +285 -0
  311. package/skills/lark-slides/references/asset-planning.md +135 -0
  312. package/skills/lark-slides/references/examples.md +91 -0
  313. package/skills/lark-slides/references/iconpark-index.json +41901 -0
  314. package/skills/lark-slides/references/iconpark.md +46 -0
  315. package/skills/lark-slides/references/lark-slides-create.md +156 -0
  316. package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
  317. package/skills/lark-slides/references/lark-slides-media-upload.md +127 -0
  318. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
  319. package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
  320. package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
  321. package/skills/lark-slides/references/lark-slides-screenshot.md +97 -0
  322. package/skills/lark-slides/references/lark-slides-whiteboard.md +331 -0
  323. package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
  324. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +125 -0
  325. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  326. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +189 -0
  327. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +99 -0
  328. package/skills/lark-slides/references/planning-layer.md +246 -0
  329. package/skills/lark-slides/references/slide-templates.md +201 -0
  330. package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
  331. package/skills/lark-slides/references/slides_demo.xml +226 -0
  332. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3054 -0
  333. package/skills/lark-slides/references/troubleshooting.md +45 -0
  334. package/skills/lark-slides/references/validation-checklist.md +119 -0
  335. package/skills/lark-slides/references/visual-planning.md +255 -0
  336. package/skills/lark-slides/references/xml-format-guide.md +433 -0
  337. package/skills/lark-slides/references/xml-schema-quick-ref.md +249 -0
  338. package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
  339. package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
  340. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1220 -0
  341. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +1170 -0
  342. package/skills/lark-task/SKILL.md +168 -0
  343. package/skills/lark-task/references/lark-task-assign.md +38 -0
  344. package/skills/lark-task/references/lark-task-comment.md +28 -0
  345. package/skills/lark-task/references/lark-task-complete.md +27 -0
  346. package/skills/lark-task/references/lark-task-create.md +70 -0
  347. package/skills/lark-task/references/lark-task-followers.md +35 -0
  348. package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
  349. package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
  350. package/skills/lark-task/references/lark-task-reminder.md +36 -0
  351. package/skills/lark-task/references/lark-task-reopen.md +27 -0
  352. package/skills/lark-task/references/lark-task-search.md +41 -0
  353. package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
  354. package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
  355. package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
  356. package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
  357. package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  358. package/skills/lark-task/references/lark-task-update.md +37 -0
  359. package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
  360. package/skills/lark-vc/SKILL.md +205 -0
  361. package/skills/lark-vc/references/lark-vc-detail.md +44 -0
  362. package/skills/lark-vc/references/lark-vc-recording.md +152 -0
  363. package/skills/lark-vc/references/lark-vc-search.md +163 -0
  364. package/skills/lark-vc/references/vc-domain-boundaries.md +196 -0
  365. package/skills/lark-vc-agent/SKILL.md +201 -0
  366. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +315 -0
  367. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
  368. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
  369. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
  370. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-message-send.md +134 -0
  371. package/skills/lark-whiteboard/SKILL.md +47 -0
  372. package/skills/lark-whiteboard/elements/connectors.md +102 -0
  373. package/skills/lark-whiteboard/elements/content.md +40 -0
  374. package/skills/lark-whiteboard/elements/image.md +80 -0
  375. package/skills/lark-whiteboard/elements/layout.md +374 -0
  376. package/skills/lark-whiteboard/elements/schema.md +357 -0
  377. package/skills/lark-whiteboard/elements/style.md +318 -0
  378. package/skills/lark-whiteboard/elements/typography.md +73 -0
  379. package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
  380. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
  381. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +97 -0
  382. package/skills/lark-whiteboard/routes/dsl.md +107 -0
  383. package/skills/lark-whiteboard/routes/mermaid.md +27 -0
  384. package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
  385. package/skills/lark-whiteboard/routes/svg.md +54 -0
  386. package/skills/lark-whiteboard/scenes/architecture.md +433 -0
  387. package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
  388. package/skills/lark-whiteboard/scenes/comparison.md +135 -0
  389. package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
  390. package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
  391. package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
  392. package/skills/lark-whiteboard/scenes/funnel.md +101 -0
  393. package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
  394. package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
  395. package/skills/lark-whiteboard/scenes/milestone.md +139 -0
  396. package/skills/lark-whiteboard/scenes/organization.md +173 -0
  397. package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
  398. package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
  399. package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
  400. package/skills/lark-whiteboard/scenes/treemap.md +216 -0
  401. package/skills/lark-wiki/SKILL.md +114 -0
  402. package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  403. package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
  404. package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
  405. package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
  406. package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
  407. package/skills/lark-wiki/references/lark-wiki-move.md +185 -0
  408. package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  409. package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
  410. package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
  411. package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
  412. package/skills/lark-wiki/references/lark-wiki-node-list.md +95 -0
  413. package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
  414. package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
  415. package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
  416. package/skills/lark-workflow-standup-report/SKILL.md +122 -0
@@ -0,0 +1,253 @@
1
+ # 知识整理工作流:Discovery
2
+
3
+ Loaded by states: `PARSE_SCOPE`, `INVENTORY`.
4
+
5
+ This file owns target parsing, scope clarification, resource inventory, ResourceItem normalization, dedupe, and partial inventory handling. It MUST NOT generate classification rules, execution plans, or perform write operations.
6
+
7
+ ## Required Context
8
+
9
+ Before executing rules in this file:
10
+
11
+ 1. Follow [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for identity, auth, and permission handling.
12
+ 2. For Wiki / personal library targets, follow [`../../lark-wiki/SKILL.md`](../../lark-wiki/SKILL.md).
13
+ 3. For Drive folder inventory, follow [`lark-drive-files-list.md`](lark-drive-files-list.md).
14
+ 4. For Drive search targets, follow [`lark-drive-search.md`](lark-drive-search.md).
15
+ 5. For URL / token inspection, follow [`lark-drive-inspect.md`](lark-drive-inspect.md) and [`../../lark-wiki/references/lark-wiki-node-get.md`](../../lark-wiki/references/lark-wiki-node-get.md).
16
+
17
+ ## State: PARSE_SCOPE
18
+
19
+ Entry: workflow triggered.
20
+
21
+ MUST:
22
+
23
+ 1. Identify `target_scope`, `environment_profile`, and `identity`.
24
+ 2. Apply `Scope Parsing`.
25
+ 3. Output `Scope Confirmation`.
26
+ 4. Stop and wait for user confirmation before `INVENTORY`.
27
+
28
+ Exit: user confirms target scope.
29
+
30
+ ### Scope Parsing
31
+
32
+ | Condition | Agent MUST Do | Set `target_scope` | Next State |
33
+ |-----------|---------------|--------------------|------------|
34
+ | Input is `/wiki/<token>` URL | Resolve the Wiki node and preserve both node identity and object identity | Wiki node | `INVENTORY` after user confirms scope |
35
+ | Input is Wiki space name / `space_id` | Resolve the Wiki space; 0 matches -> stop and ask; 1 exact match -> continue; multiple matches -> show candidates and wait for user selection; do not treat `my_library` as a normal listed space | Wiki space | `INVENTORY` after user confirms scope |
36
+ | Input has Personal Library Intent | Treat as Wiki personal library / `my_library`; resolve real `space_id` before root write; do not treat it as Drive root or owned Drive document search | Personal doc library | `INVENTORY` after user confirms scope |
37
+ | Input is `/drive/folder/<token>` URL | Extract `folder_token` | Drive folder | `INVENTORY` after user confirms scope |
38
+ | Input has Drive Folder Intent but no concrete folder URL, token, or unique folder name | Ask for folder URL / token / name; if a concrete folder name exists, search folder candidates and wait for user selection when 0 or multiple matches exist | Unknown or Drive folder candidate | Stay in `PARSE_SCOPE` until scope is confirmed |
39
+ | Input has Broad Cloud Drive Intent without explicit owned-document search request | Ask the user to choose concrete scope: Drive folder URL / token, Drive root, owned Drive document search, or another explicit search filter; do not default to `drive +search --mine` | Unknown | Stay in `PARSE_SCOPE` until scope is confirmed |
40
+ | Input is single cloud resource URL | Resolve the resource type; if not folder / Wiki scope, do not expand automatically | Single resource | Ask whether scope is this resource, parent folder, owning Wiki, or related search results |
41
+ | Input is real keyword / name | Search with the real keyword according to `lark-drive-search` | Search scope | `INVENTORY` after user confirms scope |
42
+ | Input is range browsing / statistical description with no real keyword | Search by filters / empty-query browsing according to `lark-drive-search` | Search scope | `INVENTORY` after user confirms scope |
43
+ | Input is ambiguous | Ask the minimum clarification question and stop | Unknown | Stay in `PARSE_SCOPE` |
44
+
45
+ Personal Library Intent means the user is referring to the current user's own Feishu document library / personal document library / personal knowledge library, such as `个人文档库`, `飞书个人文档库`, `我的文档库`, `个人知识库`, `我的知识库`, `My Document Library`, or `my_library`.
46
+
47
+ When this intent is detected, use Wiki personal library semantics. Do not use Drive root, `drive +search --mine`, or broad owned-document search unless the user explicitly asks to search owned Drive documents.
48
+
49
+ Drive Folder Intent means the user wants to organize a specific Drive folder or Drive folder tree. A Drive folder scope requires a concrete folder URL, folder token, or user-selected folder candidate.
50
+
51
+ When this intent is detected without a concrete folder identity, stop in `PARSE_SCOPE` and ask for clarification. Do not use Drive root, `drive +search --mine`, or broad owned-document search unless the user explicitly asks for Drive root or owned-document search.
52
+
53
+ Broad Cloud Drive Intent means the user refers to a broad cloud-drive-level scope such as `我的飞书云盘`, `我的云盘`, `我的云空间`, `我的空间`, or `整理云盘`, without a concrete folder URL / token / unique folder name.
54
+
55
+ This intent is broader than Drive Folder Intent and MUST NOT be silently converted to owned-document search. Ask the user to choose one of:
56
+
57
+ 1. A specific Drive folder URL / token.
58
+ 2. Drive root, only when the user explicitly accepts root-level scope.
59
+ 3. Owned Drive document search, only when the user explicitly asks to organize documents owned / managed by the current user.
60
+ 4. Another explicit search filter, such as keyword, type, time range, or folder token.
61
+
62
+ ### Stop Conditions
63
+
64
+ Stop and ask for clarification when:
65
+
66
+ 1. 用户只说"整理文件夹"、"整理目录"、"整理资料"、"整理文档"、"我的文档",且没有 URL、token、知识库名称、Personal Library Intent、concrete Drive folder identity 或明确搜索范围。
67
+ 2. 用户说"我的文件夹"、"我的目录"、"我的空间"、"我的云盘"、"我的飞书云盘"、"我的云空间",但无法唯一判断是具体 Drive 文件夹、Drive 根目录、owned Drive document search、个人文档库还是某个 Wiki 节点。
68
+ 3. 用户给的是单个资源 URL,但要求"整理一批文档"或"整理相关资料"。
69
+ 4. 用户目标环境不明确,且上下文中同时存在线上、BOE、PRE 或多个 profile。
70
+
71
+ Clarification template:
72
+
73
+ ```text
74
+ 请提供要整理的 Drive 文件夹链接、Wiki 节点 / 知识库链接,或明确说明要整理"我的文档库";如果只想按关键词搜索整理,也请给出关键词或范围。
75
+ ```
76
+
77
+ ### Scope Confirmation
78
+
79
+ ```text
80
+ 我先确认本次整理范围。
81
+
82
+ 目标:
83
+ 范围:
84
+ 环境 / profile:
85
+ 身份:
86
+ 预计操作:先盘点并生成整理方案,不执行移动或创建。
87
+
88
+ 请确认是否按这个范围继续?
89
+ ```
90
+
91
+ Scope confirmation is user-facing. It MUST confirm only the business scope, environment / profile, identity, and whether write operations will run.
92
+
93
+ Do not display internal batching controls in scope confirmation, including `max_depth`, `max_items`, `page_size`, page tokens, retry counts, or `partial=true`. For example, when the user confirms Drive root, say the scope is the Drive root tree; do not append "recursive depth at most 3" or "at most 500 resources".
94
+
95
+ ## State: INVENTORY
96
+
97
+ Entry: `target_scope` confirmed.
98
+
99
+ MUST:
100
+
101
+ 1. Recursively list resources according to target type.
102
+ 2. Generate `path` during traversal.
103
+ 3. Normalize all results to `ResourceItem`.
104
+ 4. Track pagination, depth, item limits, and continuation checkpoints.
105
+ 5. Treat pagination, depth, item, and per-folder page limits as batching checkpoints; continue inventory in the confirmed scope unless blocked.
106
+ 6. Set `partial=true` only when inventory cannot continue because of auth, permission, API / pagination failure after retries, API coverage limitations, tool budget, target scope, or environment blockers.
107
+ 7. Apply `Inventory Progress Reporting`.
108
+ 8. Output `Inventory Summary`.
109
+ 9. Do not leave `INVENTORY` while `inventory_continuation_state` has queued folders, nodes, pages, or slices that can still be fetched.
110
+ 10. Continue to `CONTENT_READ` without asking the user only after the confirmed scope is exhausted or blocked.
111
+
112
+ ### Inventory Batch Checkpoints
113
+
114
+ | Scope | Internal Batch Checkpoint | Required Continuation |
115
+ |-------|---------------------------|-----------------------|
116
+ | Wiki recursion | `max_depth=3`, `max_items=500`; follow `lark-wiki-node-list` pagination | Record queued nodes / paths in `inventory_continuation_state` and immediately continue the next internal batch within the confirmed scope unless blocked |
117
+ | Drive folder tree | `max_depth=3`, `max_items=500`, max 10 pages per folder, `page_size=200` | Record queued folders / pages in `inventory_continuation_state` and immediately continue the next internal batch within the confirmed scope unless blocked |
118
+ | Search discovery | `page_size=20`, `max_items=500`; continue pages until `has_more=false` | Record remaining pages / slices in `inventory_continuation_state` and immediately continue the next internal batch within the confirmed scope unless blocked |
119
+
120
+ These checkpoints are pacing controls, not coverage limits. If the confirmed scope still has queued work after a checkpoint, continue with the next internal batch instead of presenting the current `resource_items` as final inventory or moving to content analysis.
121
+
122
+ When a depth checkpoint is reached, enqueue the child folders / nodes that would exceed the current batch depth; the next batch starts from those queued children with their original paths preserved. When an item checkpoint is reached, persist the current folder / node / page cursor plus the remaining queue, visited page keys, and resource dedupe keys, then continue from that checkpoint before analysis or planning.
123
+
124
+ If tool budget would be exceeded for a very large confirmed scope, stop only at that blocker, report that the inventory is incomplete, and suggest batching by first-level directory, Wiki space, or time window. Do not stop merely because a depth or item checkpoint was reached.
125
+
126
+ ### Inventory Continuation Rules
127
+
128
+ 1. Pagination, depth, item, and per-folder page limits are internal batching checkpoints.
129
+ 2. When a checkpoint is reached, record `inventory_continuation_state` with `scope`, `queue`, `current_cursor`, `visited_page_keys`, `dedupe_keys`, and `blockers`; Drive queue entries MUST contain `folder_token`, `path`, `depth`, and `page_token`; Wiki queue entries MUST contain `space_id` / `node_token`, `path`, `depth`, and pagination cursor; search entries MUST contain query / filters and pagination cursor.
130
+ 3. A depth checkpoint MUST enqueue deeper folders / nodes; it MUST NOT discard them or treat the current depth as final coverage.
131
+ 4. An item-count checkpoint MUST persist the current cursor and queue; it MUST NOT transition to `CONTENT_READ`, `ISSUE_ANALYSIS`, or `PLAN_GENERATION` while fetchable work remains.
132
+ 5. If `inventory_continuation_state` is missing, corrupt, or lacks required fields for the current scope, set `partial=true`, record the checkpoint blocker, and do not claim full coverage.
133
+ 6. Do not set `partial=true` solely because a valid batching checkpoint was reached.
134
+ 7. Set `partial=true` only when continuation is blocked by auth, permission, API / pagination failure after retries, API coverage limitations, tool budget, target scope, or environment blockers.
135
+ 8. Do not claim full coverage until the continuation queue for the confirmed scope is exhausted or blocked.
136
+
137
+ ### Inventory Progress Reporting
138
+
139
+ Inventory can be long-running when a Drive root, large folder tree, Wiki space, or broad search scope is confirmed.
140
+
141
+ Rules:
142
+
143
+ 1. When inventory starts, output one concise stage notice with the confirmed scope type and the fact that no write operation will be executed.
144
+ 2. If inventory runs longer than about 60 seconds, output progress about every 60 seconds.
145
+ 3. Progress reports SHOULD include only fields that are currently known: scanned folders / nodes, collected resources, current depth, queued folders / nodes, current search page / slice, and current blocker if any.
146
+ 4. When a batching checkpoint is reached and continuation will proceed automatically, report it as continuing inventory, not as a user action request.
147
+ 5. Do not output filler such as "still running" without current counts or current stage.
148
+ 6. Do not expose raw folder tokens, page tokens, retry logs, or `partial=true` unless the user explicitly asks to view inventory coverage details.
149
+
150
+ Example:
151
+
152
+ ```text
153
+ 盘点进度:已扫描 <scanned_container_count> 个目录 / 节点,收集 <resource_count> 项资源,队列剩余 <queued_container_count> 个目录 / 节点。继续盘点,不会执行移动或创建。
154
+ ```
155
+
156
+ ### Wiki Inventory Rules
157
+
158
+ 1. Follow [`../../lark-wiki/references/lark-wiki-node-list.md`](../../lark-wiki/references/lark-wiki-node-list.md) traversal semantics.
159
+ 2. Generate stable paths from parent-child traversal.
160
+ 3. Preserve Wiki node identity fields needed by `ResourceItem`.
161
+ 4. Treat `my_library` as Wiki personal library, not Drive root.
162
+
163
+ ### Drive Inventory Rules
164
+
165
+ 1. Use `drive files list` according to [`lark-drive-files-list.md`](lark-drive-files-list.md); its schema path is `drive.files.list`.
166
+ 2. Use the same Drive folder-tree traversal for Drive root and ordinary folders after the first request. Drive root differs only for the first-level request: it uses omitted or empty `folder_token`, does not support pagination, and does not return root-level shortcuts according to schema; returned child folders MUST still be listed by their own folder tokens like ordinary folders, and those ordinary folder lists may return `type=shortcut` entries. For a Drive root target, record this root-level shortcut coverage caveat, set `partial=true` only if the user requested full root-level shortcut coverage or root pagination cannot continue, and do not claim root-level shortcut coverage as complete.
167
+ 3. Recurse only into `folder` items within the confirmed scope.
168
+ 4. For each directory, continue pages manually by feeding the returned `next_page_token` into request param `page_token`. Do not rely on `--page-all` for inventory.
169
+ 5. If a page returns `has_more=true` but no usable `next_page_token`, retry the same page request up to 3 times. If retries still cannot produce a continuation token, set `partial=true` for that directory and record the pagination blocker.
170
+ 6. Use `drive metas batch_query` when URL, owner, created time, or updated time is needed.
171
+ 7. Pagination blocker details such as `partial=true`, folder token, page token, and retry logs are internal by default. Do not show them to the user unless the user explicitly asks to view inventory coverage details.
172
+
173
+ ### Search Inventory Rules
174
+
175
+ 1. Search results may be normalized directly only when they include stable identity fields required by `ResourceItem`.
176
+ 2. If a search result is a Wiki item and lacks `node_token`, resolve it with `drive +inspect` or `wiki +node-get` before dedupe.
177
+ 3. If Wiki identity still cannot be resolved, keep the item, set `needs_review=true`, and record `needs_review_reason`.
178
+ 4. For search scope, use `page_size=20` unless a lower value is required by the command.
179
+ 5. Continue fetching pages until `has_more=false`.
180
+ 6. If `max_items=500` is reached in one batch, record the current search cursor in `inventory_continuation_state` and continue the next internal batch without asking the user.
181
+ 7. Do not stop at an arbitrary sample size such as first 5 pages unless the user explicitly asks for sampling or auth, permission, API, environment, or tool-budget blockers occur.
182
+ 8. If `service_total` / result total is greater than collected items, treat it as continuation evidence: continue fetching when a cursor / page is available; set `partial=true` only if continuation is blocked.
183
+ 9. Do not present a partial search sample as complete inventory. Before generating a full organization plan from partial search results, continue fetching available pages unless the user explicitly asked for sampling or a blocker prevents continuation.
184
+
185
+ ## ResourceItem
186
+
187
+ Agent MUST normalize Wiki, Drive, and search results into `ResourceItem`. Later statistics, classification, and planning MUST use this model rather than raw API responses.
188
+
189
+ ```json
190
+ {
191
+ "source": "wiki|drive|search",
192
+ "title": "资源标题",
193
+ "type": "doc|docx|sheet|bitable|mindnote|file|wiki|folder|slides|shortcut|catalog",
194
+ "path": "当前路径/资源标题",
195
+ "depth": 2,
196
+ "url": "https://...",
197
+ "token": "canonical_token",
198
+ "node_token": "wiki_node_token_or_empty",
199
+ "obj_token": "wiki_obj_token_or_drive_file_token",
200
+ "node_type": "origin|shortcut|empty",
201
+ "origin_node_token": "wiki_origin_node_token_or_empty",
202
+ "space_id": "wiki_space_id_or_empty",
203
+ "parent_token": "parent_node_or_folder_token",
204
+ "has_child": false,
205
+ "dedupe_key": "wiki:<space_id>:<node_token>|drive:<type>:<token>|search:<type>:<token>",
206
+ "created_at": "optional",
207
+ "updated_at": "optional",
208
+ "needs_review": false,
209
+ "needs_review_reason": ""
210
+ }
211
+ ```
212
+
213
+ ResourceItem rules:
214
+
215
+ 1. `path` MUST be generated by recursion. Do not use title alone as path.
216
+ 2. Wiki URL token may not be the underlying document token. Preserve both `node_token` and `obj_token`.
217
+ 3. `type` MUST come from API fields such as `obj_type` / `doc_type`.
218
+ 4. Wiki organization is by node instance. Prefer `wiki:<space_id>:<node_token>` as `dedupe_key`.
219
+ 5. MUST NOT dedupe Wiki nodes only by `obj_token`; one document can appear under different Wiki paths or shortcuts.
220
+ 6. If `node_type=shortcut` or dedupe is uncertain, use `wiki +node-get` to supplement `origin_node_token`; if unavailable, leave empty and set `needs_review=true`.
221
+ 7. Drive folder tree dedupes by `drive:<type>:<token>`.
222
+ 8. Search results may merge with recursive results only by exact identity: Wiki by same `node_token`, Drive by same `type + token`.
223
+
224
+ ## Inventory Summary
225
+
226
+ ```text
227
+ 已完成当前可覆盖范围盘点。
228
+
229
+ <仅当适用:覆盖说明:Drive 根目录第一层清单不返回快捷方式;本次盘点不包含根目录第一层快捷方式。根目录下子文件夹会按普通文件夹继续盘点,普通文件夹内返回的 `type=shortcut` 条目仍会被纳入资源清单。>
230
+
231
+ | 指标 | 数量 |
232
+ |------|------|
233
+ | 总资源数 | |
234
+ | 各类型资源数 | |
235
+ | 一级目录数量 | |
236
+ | 根目录直接资源数 | |
237
+ | 空目录数量 | |
238
+ | 疑似临时 / 测试 / 未整理资源数 | |
239
+ | 低置信度待确认资源数 | |
240
+
241
+ 下一步将自动读取低置信度资源并分析整理问题;不会执行移动或创建。
242
+ ```
243
+
244
+ ## Discovery Failure Handling
245
+
246
+ | Failure / Blocker | Agent MUST Do | Agent MUST NOT Do |
247
+ |-------------------|---------------|-------------------|
248
+ | Target scope is ambiguous | Ask the minimum scope clarification question and stop | Do not choose a whole cloud drive / personal library by default |
249
+ | Environment / profile is ambiguous | Ask user to confirm prod / BOE / PRE and profile | Do not cross environment boundaries |
250
+ | Missing API scope | Follow `lark-shared` permission handling and stop | Do not retry the same command repeatedly |
251
+ | Resource access denied | Stop and follow the main workflow `Permission Request Gate` | Do not request permission automatically or in batch |
252
+ | Pagination / depth / item checkpoint reached | Record `inventory_continuation_state` and continue inventory in the confirmed scope | Do not set `partial=true` solely because a batching checkpoint was reached |
253
+ | Pagination cursor missing after retries / API pagination failure | Set `partial=true`; record the affected directory and blocker | Do not loop indefinitely or claim full coverage |
@@ -0,0 +1,200 @@
1
+ # 知识整理工作流:Execution
2
+
3
+ Loaded by states: `EXECUTE`, `VERIFY`.
4
+
5
+ This file owns confirmed write execution, PathTokenMap, progress reporting, verification, next suggestions, and execution-stage failure handling. It MUST NOT generate or revise plans.
6
+
7
+ ## Required Context
8
+
9
+ Before executing rules in this file:
10
+
11
+ 1. `active_plan_items` and `execution_scope` MUST already exist from [`lark-drive-workflow-knowledge-organize-planning.md`](lark-drive-workflow-knowledge-organize-planning.md).
12
+ 2. `target_tree` and `resource_items` MUST already exist.
13
+ 3. Use the `PlanItem` structure already produced by the planning phase. Do not regenerate or revise plans in this file.
14
+ 4. Follow command syntax, scope requirements, and confirmation behavior from referenced shortcut docs.
15
+ 5. Follow `Non-goals` from the main workflow entry. Do not execute excluded operations from this file.
16
+ 6. Maintain internal `rollback_snapshot` and `execution_journal` during writes, but do not mention recovery on the normal successful path.
17
+
18
+ ## State: EXECUTE
19
+
20
+ Entry: user explicitly confirmed execution scope.
21
+
22
+ Allowed writes only:
23
+
24
+ - 创建 Drive 文件夹:`drive +create-folder`
25
+ - 移动 Drive 文件 / 文件夹:`drive +move`
26
+ - 创建 Wiki 节点:`wiki +node-create`
27
+ - 移动已有 Wiki 节点:`wiki +move --node-token`
28
+ - 续跑异步移动任务:`drive +task_result`
29
+ - 单个资源权限申请:`drive +apply-permission`
30
+
31
+ MUST:
32
+
33
+ 1. Resolve all target paths through `PathTokenMap`.
34
+ 2. Build internal `rollback_snapshot` for all move items in confirmed scope before any write operation.
35
+ 3. Initialize `execution_journal` before any write operation.
36
+ 4. Create target folders / nodes shallow to deep.
37
+ 5. Save returned tokens immediately.
38
+ 6. Append an `execution_journal` entry after every create / move / async continuation.
39
+ 7. Apply parent-child source move ordering.
40
+ 8. Execute only confirmed scope.
41
+ 9. Record success/failure per `PlanItem`.
42
+ 10. Apply `Progress Reporting`.
43
+
44
+ MUST NOT:
45
+
46
+ - Execute operations listed in `Non-goals`.
47
+ - Rename or patch resource titles.
48
+ - Move using path string instead of token.
49
+ - Use `wiki +move` docs-to-wiki mode.
50
+ - Output rollback snapshot, rollback readiness, or execution journal on the normal successful path.
51
+
52
+ ### Internal Recovery Hooks
53
+
54
+ These hooks are mandatory internal state maintenance. They do not create user-facing output on the normal path.
55
+
56
+ Rules:
57
+
58
+ 1. Build `rollback_snapshot` before the first write command.
59
+ 2. Include only compact fields needed for recovery. Do not store full API responses.
60
+ 3. Append `execution_journal` immediately after each write attempt, including successful creates, successful moves, failed moves, and async continuation results.
61
+ 4. If snapshot or journal cannot be maintained, stop before further writes and report the blocker.
62
+ 5. If a write blocker occurs after one or more successful moves, report the blocker and ask whether the user wants to try restoring to `整理前的位置`.
63
+ 6. Do not load the rollback phase or execute recovery until the user explicitly chooses to try restore.
64
+
65
+ Recovery question template:
66
+
67
+ ```text
68
+ 执行暂停:已成功移动 <moved_success_count> 项,失败 <failed_count> 项。
69
+
70
+ 执行出现错误,已有部分资源移动成功。是否需要尝试恢复到整理前的位置?
71
+ ```
72
+
73
+ ### Progress Reporting
74
+
75
+ Small execution means `created_total + moved_total <= 50`.
76
+
77
+ For small executions, a final execution result is enough. For larger or long-running executions (`created_total + moved_total > 50`), the agent MUST periodically report progress by elapsed time and meaningful stage boundaries rather than by operation count alone.
78
+
79
+ Progress reports SHOULD be stage-specific. Include only fields relevant to the current stage. Do not output empty, unknown, or irrelevant fields.
80
+
81
+ Required fields by stage:
82
+
83
+ - Start: total create count, total move count, reporting cadence.
84
+ - Create stage finished: created count, failed count.
85
+ - Move stage progress / finished: current moved count as `<moved_done>/<moved_total>`, failed count, optional recent item.
86
+ - Blocked: current stage, completed count, blocker, required next action.
87
+
88
+ Examples:
89
+
90
+ - `执行开始:本次将创建 <created_total> 个目录 / 节点,移动 <moved_total> 个资源。任务较大,我会约每 60 秒汇报一次进度。`
91
+ - `执行进度:移动资源 <moved_done>/<moved_total>,失败 <failed_count>。`
92
+ - `执行暂停:<current_stage> 阶段遇到 <blocker>,已完成 <done>/<total>,需要 <required_action>。`
93
+
94
+ Rules:
95
+
96
+ 1. When `created_total + moved_total > 50`, output one progress notice when execution starts.
97
+ 2. After the create stage finishes, output one progress report when `created_total > 0`.
98
+ 3. During the move stage, output a progress report about every 60 seconds, and once more when the move stage finishes.
99
+ 4. Every move-stage progress report MUST include the current moved count as `<moved_done>/<moved_total>` and failed count, even if fewer than 50 additional moves completed since the previous report.
100
+ 5. If execution is blocked by auth, permission, unresolved token, or API error, output the current progress and blocker before stopping.
101
+ 6. Do not mention operation-count milestones such as "not yet reached 50 moves"; progress is time-based.
102
+ 7. Do not output filler messages such as "still running", "no failure yet", or "not yet reached the next progress point" without current counts.
103
+ 8. Do not report progress after every item unless the user explicitly asks for verbose execution logs.
104
+
105
+ ## PathTokenMap
106
+
107
+ `PathTokenMap` maps target paths to real tokens before execution.
108
+
109
+ | Scope | Mapping |
110
+ |-------|---------|
111
+ | Drive | `target_path -> folder_token` |
112
+ | Wiki | `target_path -> node_token`, with `space_id` retained |
113
+
114
+ Rules:
115
+
116
+ 1. Scan existing target folders / nodes before creating new ones.
117
+ 2. Create planned folders / nodes from shallow to deep.
118
+ 3. Save returned `folder_token` or `node_token` immediately after each successful create.
119
+ 4. Execute `move` only when `target_parent_path` resolves to a token.
120
+ 5. If same-name target ambiguity exists, inspect existing children when possible; otherwise mark `needs_review=true`.
121
+ 6. Before writing to `my_library` root, resolve the real `space_id` according to `lark-wiki`.
122
+
123
+ ## State: VERIFY
124
+
125
+ Entry: execution finished.
126
+
127
+ MUST:
128
+
129
+ 1. Rescan target scope.
130
+ 2. Compare each executed `PlanItem` with actual path/token.
131
+ 3. Verify items covered by `covered_by_parent_move=true`.
132
+ 4. Output success/failure/manual-confirmation counts.
133
+ 5. Report mismatches with expected vs actual path/token.
134
+ 6. Verify non-reused source containers planned for cleanup are no longer left in their original top-level position.
135
+ 7. Verify reused target containers remain in place.
136
+ 8. If serious mismatches exist, ask whether the user wants to try restoring to `整理前的位置`.
137
+ 9. Do not load the rollback phase or execute recovery until the user explicitly chooses to try restore.
138
+
139
+ Verification table:
140
+
141
+ | plan_id | 动作 | 标题 | 预期目标 | 实际目标 | 预期 token | 实际 token | 状态 | 失败原因 |
142
+ |---------|------|------|----------|----------|------------|------------|------|----------|
143
+
144
+ ### Verification Result
145
+
146
+ ```text
147
+ 执行完成。
148
+
149
+ | 项目 | 数量 |
150
+ |------|------|
151
+ | 创建成功 | |
152
+ | 移动成功 | |
153
+ | 待人工确认 | |
154
+ | 失败 | |
155
+
156
+ | plan_id | 动作 | 预期目标 | 实际目标 | 状态 | 失败原因 |
157
+ |---------|------|----------|----------|------|----------|
158
+ ```
159
+
160
+ Serious mismatch recovery question template:
161
+
162
+ ```text
163
+ 验证发现 <mismatch_count> 项结果与计划不一致。
164
+
165
+ 是否需要尝试恢复到整理前的位置?
166
+ ```
167
+
168
+ ### Next Suggestions
169
+
170
+ Only output `建议下一步` when at least one trigger exists. Do not add generic suggestions when execution and verification are clean.
171
+
172
+ Triggers:
173
+
174
+ - `partial=true`: inventory or content read was incomplete.
175
+ - Manual confirmation or low-confidence items remain.
176
+ - Failed items exist.
177
+ - One target folder / Wiki node contains more than 100 direct child resources after organization.
178
+ - Root-level loose resources remain.
179
+ - Non-reused source containers remain in their original top-level position after cleanup was planned.
180
+ - Verification found mismatches.
181
+
182
+ Template:
183
+
184
+ ```text
185
+ 建议下一步:
186
+ - <trigger-based suggestion>
187
+ ```
188
+
189
+ ## Execution Failure Handling
190
+
191
+ | Failure / Blocker | Agent MUST Do | Agent MUST NOT Do |
192
+ |-------------------|---------------|-------------------|
193
+ | Missing API scope | Follow `lark-shared` permission handling and stop | Do not retry the same command repeatedly |
194
+ | Resource access denied | Stop and follow the main workflow `Permission Request Gate` | Do not request permission automatically or in batch |
195
+ | Target path cannot resolve to token | Mark affected plan item failed or `needs_review=true` | Do not execute move with a path string |
196
+ | Target path has same-name ambiguity | Read existing children if possible; otherwise mark `needs_review=true` | Do not create duplicate target blindly |
197
+ | Async move returns `ready=false` or `next_command` | Follow the returned async continuation command | Do not assume completion |
198
+ | Parent-child move conflict | Follow source-depth ordering; move divergent children before parent | Do not move parent first when child target differs |
199
+ | Verification mismatch | Report expected vs actual path/token and failure reason | Do not silently mark success |
200
+ | Write blocker after successful moves | Report current progress and ask whether to try restoring to `整理前的位置` | Do not load rollback phase or execute recovery without explicit user choice |