@yandy0725/pi-lark 0.1.0

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 (392) hide show
  1. package/README.md +30 -0
  2. package/README.zh.md +30 -0
  3. package/package.json +36 -0
  4. package/skills/lark-approval/SKILL.md +56 -0
  5. package/skills/lark-approval/references/lark-approval-initiate.md +196 -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-apps/SKILL.md +78 -0
  9. package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
  10. package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
  11. package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
  12. package/skills/lark-apps/references/lark-apps-create.md +40 -0
  13. package/skills/lark-apps/references/lark-apps-db-env-create.md +31 -0
  14. package/skills/lark-apps/references/lark-apps-db-execute.md +40 -0
  15. package/skills/lark-apps/references/lark-apps-db-table-get.md +29 -0
  16. package/skills/lark-apps/references/lark-apps-db-table-list.md +31 -0
  17. package/skills/lark-apps/references/lark-apps-env-pull.md +35 -0
  18. package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
  19. package/skills/lark-apps/references/lark-apps-html-publish.md +57 -0
  20. package/skills/lark-apps/references/lark-apps-init.md +37 -0
  21. package/skills/lark-apps/references/lark-apps-list.md +37 -0
  22. package/skills/lark-apps/references/lark-apps-local-dev.md +76 -0
  23. package/skills/lark-apps/references/lark-apps-release-create.md +30 -0
  24. package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
  25. package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
  26. package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
  27. package/skills/lark-apps/references/lark-apps-update.md +30 -0
  28. package/skills/lark-attendance/SKILL.md +57 -0
  29. package/skills/lark-base/SKILL.md +157 -0
  30. package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
  31. package/skills/lark-base/references/formula-field-guide.md +737 -0
  32. package/skills/lark-base/references/lark-base-cell-value.md +153 -0
  33. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
  34. package/skills/lark-base/references/lark-base-dashboard.md +238 -0
  35. package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
  36. package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
  37. package/skills/lark-base/references/lark-base-data-query.md +452 -0
  38. package/skills/lark-base/references/lark-base-field-create.md +103 -0
  39. package/skills/lark-base/references/lark-base-field-json.md +489 -0
  40. package/skills/lark-base/references/lark-base-field-update.md +171 -0
  41. package/skills/lark-base/references/lark-base-form-detail.md +71 -0
  42. package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
  43. package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
  44. package/skills/lark-base/references/lark-base-form-submit.md +170 -0
  45. package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
  46. package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
  47. package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
  48. package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
  49. package/skills/lark-base/references/lark-base-role-guide.md +65 -0
  50. package/skills/lark-base/references/lark-base-view-set-filter.md +189 -0
  51. package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
  52. package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
  53. package/skills/lark-base/references/lookup-field-guide.md +512 -0
  54. package/skills/lark-base/references/role-config.md +549 -0
  55. package/skills/lark-calendar/SKILL.md +137 -0
  56. package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
  57. package/skills/lark-calendar/references/lark-calendar-create.md +106 -0
  58. package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
  59. package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
  60. package/skills/lark-calendar/references/lark-calendar-room-find.md +113 -0
  61. package/skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
  62. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
  63. package/skills/lark-calendar/references/lark-calendar-search-event.md +29 -0
  64. package/skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
  65. package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
  66. package/skills/lark-contact/SKILL.md +59 -0
  67. package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
  68. package/skills/lark-contact/references/lark-contact-search-user.md +124 -0
  69. package/skills/lark-doc/SKILL.md +79 -0
  70. package/skills/lark-doc/references/lark-doc-create.md +79 -0
  71. package/skills/lark-doc/references/lark-doc-fetch.md +138 -0
  72. package/skills/lark-doc/references/lark-doc-md.md +76 -0
  73. package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
  74. package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
  75. package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
  76. package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
  77. package/skills/lark-doc/references/lark-doc-update.md +259 -0
  78. package/skills/lark-doc/references/lark-doc-whiteboard.md +154 -0
  79. package/skills/lark-doc/references/lark-doc-xml.md +181 -0
  80. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +59 -0
  81. package/skills/lark-doc/references/style/lark-doc-style.md +86 -0
  82. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +55 -0
  83. package/skills/lark-drive/SKILL.md +215 -0
  84. package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
  85. package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
  86. package/skills/lark-drive/references/lark-drive-comment-location.md +193 -0
  87. package/skills/lark-drive/references/lark-drive-comments-guide.md +72 -0
  88. package/skills/lark-drive/references/lark-drive-cover.md +79 -0
  89. package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
  90. package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  91. package/skills/lark-drive/references/lark-drive-delete.md +79 -0
  92. package/skills/lark-drive/references/lark-drive-download.md +31 -0
  93. package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
  94. package/skills/lark-drive/references/lark-drive-export.md +145 -0
  95. package/skills/lark-drive/references/lark-drive-files-list.md +158 -0
  96. package/skills/lark-drive/references/lark-drive-import.md +170 -0
  97. package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
  98. package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
  99. package/skills/lark-drive/references/lark-drive-move.md +120 -0
  100. package/skills/lark-drive/references/lark-drive-permission-guide.md +41 -0
  101. package/skills/lark-drive/references/lark-drive-preview.md +87 -0
  102. package/skills/lark-drive/references/lark-drive-pull.md +137 -0
  103. package/skills/lark-drive/references/lark-drive-push.md +162 -0
  104. package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
  105. package/skills/lark-drive/references/lark-drive-search.md +269 -0
  106. package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
  107. package/skills/lark-drive/references/lark-drive-status.md +137 -0
  108. package/skills/lark-drive/references/lark-drive-task-result.md +302 -0
  109. package/skills/lark-drive/references/lark-drive-upload.md +101 -0
  110. package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
  111. package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
  112. package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
  113. package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
  114. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
  115. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
  116. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
  117. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
  118. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
  119. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +226 -0
  120. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
  121. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
  122. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
  123. package/skills/lark-drive/references/lark-drive-workflow.md +130 -0
  124. package/skills/lark-event/SKILL.md +154 -0
  125. package/skills/lark-event/references/lark-event-im.md +87 -0
  126. package/skills/lark-event/references/lark-event-minutes.md +54 -0
  127. package/skills/lark-event/references/lark-event-task.md +78 -0
  128. package/skills/lark-event/references/lark-event-vc.md +94 -0
  129. package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
  130. package/skills/lark-im/SKILL.md +247 -0
  131. package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
  132. package/skills/lark-im/references/lark-im-chat-create.md +162 -0
  133. package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
  134. package/skills/lark-im/references/lark-im-chat-list.md +166 -0
  135. package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
  136. package/skills/lark-im/references/lark-im-chat-search.md +142 -0
  137. package/skills/lark-im/references/lark-im-chat-update.md +84 -0
  138. package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
  139. package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
  140. package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
  141. package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
  142. package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
  143. package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
  144. package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
  145. package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
  146. package/skills/lark-im/references/lark-im-flag-create.md +67 -0
  147. package/skills/lark-im/references/lark-im-flag-list.md +100 -0
  148. package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
  149. package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
  150. package/skills/lark-im/references/lark-im-messages-reply.md +267 -0
  151. package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
  152. package/skills/lark-im/references/lark-im-messages-search.md +234 -0
  153. package/skills/lark-im/references/lark-im-messages-send.md +267 -0
  154. package/skills/lark-im/references/lark-im-reactions.md +299 -0
  155. package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
  156. package/skills/lark-mail/SKILL.md +287 -0
  157. package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
  158. package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
  159. package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
  160. package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
  161. package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
  162. package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
  163. package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  164. package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
  165. package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
  166. package/skills/lark-mail/references/lark-mail-forward.md +239 -0
  167. package/skills/lark-mail/references/lark-mail-html.md +333 -0
  168. package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
  169. package/skills/lark-mail/references/lark-mail-message.md +233 -0
  170. package/skills/lark-mail/references/lark-mail-messages.md +108 -0
  171. package/skills/lark-mail/references/lark-mail-recall.md +66 -0
  172. package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
  173. package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
  174. package/skills/lark-mail/references/lark-mail-reply.md +249 -0
  175. package/skills/lark-mail/references/lark-mail-rules.md +31 -0
  176. package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
  177. package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
  178. package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
  179. package/skills/lark-mail/references/lark-mail-send.md +222 -0
  180. package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
  181. package/skills/lark-mail/references/lark-mail-signature.md +98 -0
  182. package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
  183. package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
  184. package/skills/lark-mail/references/lark-mail-template.md +54 -0
  185. package/skills/lark-mail/references/lark-mail-thread.md +111 -0
  186. package/skills/lark-mail/references/lark-mail-triage.md +131 -0
  187. package/skills/lark-mail/references/lark-mail-watch.md +94 -0
  188. package/skills/lark-markdown/SKILL.md +69 -0
  189. package/skills/lark-markdown/references/lark-markdown-create.md +94 -0
  190. package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
  191. package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
  192. package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
  193. package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
  194. package/skills/lark-minutes/SKILL.md +192 -0
  195. package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
  196. package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
  197. package/skills/lark-minutes/references/lark-minutes-search.md +204 -0
  198. package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
  199. package/skills/lark-minutes/references/lark-minutes-summary.md +122 -0
  200. package/skills/lark-minutes/references/lark-minutes-todo.md +138 -0
  201. package/skills/lark-minutes/references/lark-minutes-update.md +41 -0
  202. package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
  203. package/skills/lark-note/SKILL.md +94 -0
  204. package/skills/lark-note/references/lark-note-detail.md +26 -0
  205. package/skills/lark-note/references/lark-note-transcript.md +23 -0
  206. package/skills/lark-okr/SKILL.md +115 -0
  207. package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
  208. package/skills/lark-okr/references/lark-okr-contentblock.md +359 -0
  209. package/skills/lark-okr/references/lark-okr-cycle-detail.md +84 -0
  210. package/skills/lark-okr/references/lark-okr-cycle-list.md +90 -0
  211. package/skills/lark-okr/references/lark-okr-entities.md +329 -0
  212. package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
  213. package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
  214. package/skills/lark-okr/references/lark-okr-progress-create.md +81 -0
  215. package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
  216. package/skills/lark-okr/references/lark-okr-progress-get.md +62 -0
  217. package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
  218. package/skills/lark-okr/references/lark-okr-progress-update.md +81 -0
  219. package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
  220. package/skills/lark-okr/references/lark-okr-weight.md +96 -0
  221. package/skills/lark-openapi-explorer/SKILL.md +153 -0
  222. package/skills/lark-shared/SKILL.md +168 -0
  223. package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
  224. package/skills/lark-sheets/SKILL.md +165 -0
  225. package/skills/lark-sheets/references/lark-sheets-batch-update.md +191 -0
  226. package/skills/lark-sheets/references/lark-sheets-chart.md +330 -0
  227. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +179 -0
  228. package/skills/lark-sheets/references/lark-sheets-core-operations.md +103 -0
  229. package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
  230. package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
  231. package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
  232. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +267 -0
  233. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +166 -0
  234. package/skills/lark-sheets/references/lark-sheets-range-operations.md +267 -0
  235. package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
  236. package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
  237. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
  238. package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
  239. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
  240. package/skills/lark-sheets/references/lark-sheets-workbook.md +395 -0
  241. package/skills/lark-sheets/references/lark-sheets-write-cells.md +565 -0
  242. package/skills/lark-sheets/scripts/sheets_df.py +32 -0
  243. package/skills/lark-skill-maker/SKILL.md +85 -0
  244. package/skills/lark-slides/SKILL.md +293 -0
  245. package/skills/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
  246. package/skills/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
  247. package/skills/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
  248. package/skills/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
  249. package/skills/lark-slides/assets/templates/hr--employee_training.xml +912 -0
  250. package/skills/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
  251. package/skills/lark-slides/assets/templates/hr--onboarding.xml +933 -0
  252. package/skills/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
  253. package/skills/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
  254. package/skills/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
  255. package/skills/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
  256. package/skills/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
  257. package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
  258. package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
  259. package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
  260. package/skills/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
  261. package/skills/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
  262. package/skills/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
  263. package/skills/lark-slides/assets/templates/office--dark_general.xml +3763 -0
  264. package/skills/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
  265. package/skills/lark-slides/assets/templates/office--light_general.xml +3378 -0
  266. package/skills/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
  267. package/skills/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
  268. package/skills/lark-slides/assets/templates/office--work_report.xml +1099 -0
  269. package/skills/lark-slides/assets/templates/office--work_summary.xml +4420 -0
  270. package/skills/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
  271. package/skills/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
  272. package/skills/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
  273. package/skills/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
  274. package/skills/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
  275. package/skills/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
  276. package/skills/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
  277. package/skills/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
  278. package/skills/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
  279. package/skills/lark-slides/assets/templates/personal--self_intro.xml +696 -0
  280. package/skills/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
  281. package/skills/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
  282. package/skills/lark-slides/assets/templates/product--market_analysis.xml +898 -0
  283. package/skills/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
  284. package/skills/lark-slides/assets/templates/product--product_intro.xml +2838 -0
  285. package/skills/lark-slides/assets/templates/product--product_promotion.xml +687 -0
  286. package/skills/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
  287. package/skills/lark-slides/references/asset-planning.md +124 -0
  288. package/skills/lark-slides/references/examples.md +261 -0
  289. package/skills/lark-slides/references/iconpark-index.json +41901 -0
  290. package/skills/lark-slides/references/iconpark.md +46 -0
  291. package/skills/lark-slides/references/lark-slides-create.md +137 -0
  292. package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
  293. package/skills/lark-slides/references/lark-slides-media-upload.md +128 -0
  294. package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
  295. package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
  296. package/skills/lark-slides/references/lark-slides-screenshot.md +94 -0
  297. package/skills/lark-slides/references/lark-slides-whiteboard.md +330 -0
  298. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +220 -0
  299. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
  300. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  301. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +187 -0
  302. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
  303. package/skills/lark-slides/references/planning-layer.md +219 -0
  304. package/skills/lark-slides/references/slide-templates.md +201 -0
  305. package/skills/lark-slides/references/slides_demo.xml +226 -0
  306. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3049 -0
  307. package/skills/lark-slides/references/template-catalog.md +463 -0
  308. package/skills/lark-slides/references/template-index.json +1853 -0
  309. package/skills/lark-slides/references/troubleshooting.md +63 -0
  310. package/skills/lark-slides/references/validation-checklist.md +110 -0
  311. package/skills/lark-slides/references/visual-planning.md +254 -0
  312. package/skills/lark-slides/references/xml-format-guide.md +369 -0
  313. package/skills/lark-slides/references/xml-schema-quick-ref.md +245 -0
  314. package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
  315. package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
  316. package/skills/lark-slides/scripts/template_tool.py +970 -0
  317. package/skills/lark-slides/scripts/template_tool_test.py +177 -0
  318. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +367 -0
  319. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +263 -0
  320. package/skills/lark-task/SKILL.md +167 -0
  321. package/skills/lark-task/references/lark-task-assign.md +38 -0
  322. package/skills/lark-task/references/lark-task-comment.md +28 -0
  323. package/skills/lark-task/references/lark-task-complete.md +27 -0
  324. package/skills/lark-task/references/lark-task-create.md +57 -0
  325. package/skills/lark-task/references/lark-task-followers.md +35 -0
  326. package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
  327. package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
  328. package/skills/lark-task/references/lark-task-reminder.md +36 -0
  329. package/skills/lark-task/references/lark-task-reopen.md +27 -0
  330. package/skills/lark-task/references/lark-task-search.md +41 -0
  331. package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
  332. package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
  333. package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
  334. package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
  335. package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  336. package/skills/lark-task/references/lark-task-update.md +37 -0
  337. package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
  338. package/skills/lark-vc/SKILL.md +202 -0
  339. package/skills/lark-vc/references/lark-vc-detail.md +44 -0
  340. package/skills/lark-vc/references/lark-vc-recording.md +154 -0
  341. package/skills/lark-vc/references/lark-vc-search.md +163 -0
  342. package/skills/lark-vc/references/vc-domain-boundaries.md +188 -0
  343. package/skills/lark-vc-agent/SKILL.md +169 -0
  344. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +287 -0
  345. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
  346. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
  347. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
  348. package/skills/lark-whiteboard/SKILL.md +47 -0
  349. package/skills/lark-whiteboard/elements/connectors.md +102 -0
  350. package/skills/lark-whiteboard/elements/content.md +40 -0
  351. package/skills/lark-whiteboard/elements/image.md +80 -0
  352. package/skills/lark-whiteboard/elements/layout.md +374 -0
  353. package/skills/lark-whiteboard/elements/schema.md +357 -0
  354. package/skills/lark-whiteboard/elements/style.md +318 -0
  355. package/skills/lark-whiteboard/elements/typography.md +73 -0
  356. package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
  357. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
  358. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +94 -0
  359. package/skills/lark-whiteboard/routes/dsl.md +107 -0
  360. package/skills/lark-whiteboard/routes/mermaid.md +27 -0
  361. package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
  362. package/skills/lark-whiteboard/routes/svg.md +54 -0
  363. package/skills/lark-whiteboard/scenes/architecture.md +433 -0
  364. package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
  365. package/skills/lark-whiteboard/scenes/comparison.md +135 -0
  366. package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
  367. package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
  368. package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
  369. package/skills/lark-whiteboard/scenes/funnel.md +101 -0
  370. package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
  371. package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
  372. package/skills/lark-whiteboard/scenes/milestone.md +139 -0
  373. package/skills/lark-whiteboard/scenes/organization.md +173 -0
  374. package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
  375. package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
  376. package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
  377. package/skills/lark-whiteboard/scenes/treemap.md +216 -0
  378. package/skills/lark-wiki/SKILL.md +110 -0
  379. package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  380. package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
  381. package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
  382. package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
  383. package/skills/lark-wiki/references/lark-wiki-move.md +183 -0
  384. package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  385. package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
  386. package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
  387. package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
  388. package/skills/lark-wiki/references/lark-wiki-node-list.md +88 -0
  389. package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
  390. package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
  391. package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
  392. package/skills/lark-workflow-standup-report/SKILL.md +122 -0
@@ -0,0 +1,239 @@
1
+ # mail +forward
2
+
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+
5
+ 转发指定邮件,自动处理:
6
+ - 主题前缀 `Fwd: `(已含前缀时不重复)
7
+ - 自动拼接标准 “Forwarded message” 区块(From/Date/Subject/To + 原文)
8
+ - 支持纯文本和 HTML 转发
9
+
10
+ > **默认草稿**:`+forward` 默认保存为草稿,不会立即发送。如需立即发送,添加 `--confirm-send` 参数(仅在用户明确确认后使用)。
11
+
12
+ 本 skill 对应 shortcut:`lark-cli mail +forward`。
13
+
14
+ ## CRITICAL — 发送工作流(必须遵循)
15
+
16
+ **CRITICAL - 编辑邮件内容前 MUST 先用 Read 工具读取 [references/lark-mail-html.md](references/lark-mail-html.md),其中包含邮件书写规范**
17
+
18
+ 此命令默认**只保存草稿**,不会发送邮件。转发会将原邮件内容发送给新收件人,需要发送时有两种合规方式:
19
+
20
+ **方式 A(推荐)** — 创建转发草稿(不带 `--confirm-send`):
21
+ ```bash
22
+ lark-cli mail +forward --message-id <邮件ID> --to <收件人>
23
+ ```
24
+ → 返回 `draft_id`
25
+
26
+ 向用户展示转发摘要(被转发邮件、收件人、附加说明);如果用户想先看效果,可引导其去飞书邮件里查看草稿。
27
+
28
+ 用户明确同意后,发送该草稿:
29
+ ```bash
30
+ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_id":"<Step 1 返回的 draft_id>"}'
31
+ ```
32
+
33
+ **方式 B(允许)** — 用户已经明确确认收件人和内容时,可直接使用 `--confirm-send` 立即发送。
34
+
35
+ **禁止在用户未明确同意的情况下执行发送,无论是发送草稿还是直接使用 `--confirm-send`。**
36
+
37
+ ## 命令
38
+
39
+ ```bash
40
+ # 转发邮件(默认保存为草稿)— HTML 推荐
41
+ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --body '<p>FYI,请看下面原邮件。</p>'
42
+
43
+ # 转发并附加说明 + 抄送(草稿)
44
+ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --cc bob@example.com --body '<b>请参考</b>'
45
+
46
+ # 转发时插入内嵌图片(推荐:直接用相对路径,自动解析)
47
+ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --body '<p>详见图示:<img src="./logo.png" /></p>'
48
+
49
+ # 纯文本转发(仅在内容极简时使用)
50
+ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com
51
+
52
+ # 确认发送(用户明确确认后才可使用)
53
+ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --confirm-send
54
+
55
+ # Dry Run(仅打印请求,不发送)
56
+ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --dry-run
57
+ ```
58
+
59
+ ## 参数
60
+
61
+ | 参数 | 必填 | 说明 |
62
+ |------|------|------|
63
+ | `--message-id <id>` | 是 | 被转发的邮件 ID |
64
+ | `--to <emails>` | 是 | 收件人邮箱,多个用逗号分隔 |
65
+ | `--body <text>` | 否 | 转发时附加的说明文字。推荐使用 HTML 获得富文本排版;也支持纯文本。根据转发正文和原邮件正文自动检测 HTML。使用 `--plain-text` 可强制纯文本模式。支持 `<img src="./local.png" />` 相对路径自动解析为内嵌图片(仅支持相对路径,不支持绝对路径)。与 `--body-file` 互斥 |
66
+ | `--body-file <path>` | 否 | 从文件读取转发说明 HTML(相对路径,仅限 cwd 子树)。与 `--body` 互斥。文件大小上限 32 MB |
67
+ | `--from <email>` | 否 | 发件人邮箱地址(EML From 头)。使用别名(send_as)发信时,设为别名地址并配合 `--mailbox` 指定所属邮箱。默认读取邮箱主地址 |
68
+ | `--mailbox <email>` | 否 | 邮箱地址,指定草稿所属的邮箱(默认回退到 `--from`,再回退到 `me`)。当发件人(`--from`)与邮箱不同时使用。可通过 `accessible_mailboxes` 查询可用邮箱 |
69
+ | `--cc <emails>` | 否 | 抄送邮箱,多个用逗号分隔 |
70
+ | `--bcc <emails>` | 否 | 密送邮箱,多个用逗号分隔。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
71
+ | `--plain-text` | 否 | 强制纯文本模式,忽略所有 HTML 自动检测。不可与 `--inline` 同时使用。纯文本模式下也会自动追加纯文本签名(HTML 签名经 `PlainTextFromHTML` 转换,内联图片丢弃) |
72
+ | `--attach <paths>` | 否 | 附件文件路径,多个用逗号分隔,追加在原邮件附件之后。相对路径。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
73
+ | `--inline <json>` | 否 | 高级用法:手动指定内嵌图片 CID 映射。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。仅在需要精确控制 CID 命名时使用此参数。格式:`'[{"cid":"mycid","file_path":"./logo.png"}]'`,在 body 中用 `<img src="cid:mycid">` 引用。不可与 `--plain-text` 同时使用 |
74
+ | `--signature-id <id>` | 否 | 签名 ID。附加邮箱签名到转发正文与引用块之间。运行 `mail +signature` 查看可用签名。与 `--no-signature` 互斥 |
75
+ | `--no-signature` | 否 | 跳过默认签名自动追加。与 `--signature-id` 互斥,同时使用时返回参数校验错误(退出码 2) |
76
+ | `--priority <level>` | 否 | 邮件优先级:`high`、`normal`、`low`。省略或 `normal` 时不设置优先级 |
77
+ | `--event-summary <text>` | 否 | 日程标题。设置此参数即在邮件中嵌入日程邀请。需同时设置 `--event-start` 和 `--event-end` |
78
+ | `--event-start <time>` | 条件必填 | 日程开始时间(ISO 8601) |
79
+ | `--event-end <time>` | 条件必填 | 日程结束时间(ISO 8601) |
80
+ | `--event-location <text>` | 否 | 日程地点 |
81
+ | `--confirm-send` | 否 | 确认发送转发(默认只保存草稿)。仅在用户明确确认后使用 |
82
+
83
+ > **日程约束**:`--event-*` 与 `--send-time` 不可同时使用;`--to` 和 `--cc` 收件人自动成为日程参与者(ATTENDEE),`--bcc` 收件人不计入参与者。
84
+ | `--send-time <timestamp>` | 否 | 定时发送时间,Unix 时间戳(秒)。需至少为当前时间 + 5 分钟。配合 `--confirm-send` 使用可定时发送邮件 |
85
+ | `--request-receipt` | 否 | 请求已读回执(RFC 3798 Message Disposition Notification)。在出站 EML 里写 `Disposition-Notification-To: <sender>` 头。收件人的邮件客户端可能弹出提示、自动发送或忽略——送达不保证 |
86
+ | `--dry-run` | 否 | 仅打印请求,不执行 |
87
+
88
+ ## 返回值
89
+
90
+ 默认(草稿模式):
91
+ ```json
92
+ {
93
+ "ok": true,
94
+ "data": {
95
+ "draft_id": "草稿ID",
96
+ "tip": "draft saved. To send: lark-cli mail user_mailbox.drafts send --params '{...}'"
97
+ }
98
+ }
99
+ ```
100
+
101
+ `--confirm-send` 模式:
102
+ ```json
103
+ {
104
+ "ok": true,
105
+ "data": {
106
+ "message_id": "邮件ID",
107
+ "thread_id": "会话ID"
108
+ }
109
+ }
110
+ ```
111
+
112
+ 可选字段:
113
+
114
+ - `automation_send_disable_reason`:发送被邮箱自动化设置拦截时返回的原因
115
+ - `automation_send_disable_reference`:发送被拦截时的草稿打开链接
116
+ - `recall_available` / `recall_tip`:发送成功后若返回可撤回提示,按需参考 [lark-mail-recall](lark-mail-recall.md)
117
+
118
+ 字段语义:
119
+
120
+ - 若返回中包含 `automation_send_disable_reason` / `automation_send_disable_reference`,说明转发未真正发出,而是被邮箱设置拦截。此时应直接向用户展示原因和草稿打开链接,不要继续假设已经发送成功
121
+ - 若返回中包含 `recall_available: true`,说明该邮件支持撤回;仅当用户明确要求撤回时,读取 [lark-mail-recall](lark-mail-recall.md) 并执行撤回流程
122
+
123
+ ## 典型场景
124
+
125
+ ### 场景 1:用户说"把这封邮件转发给 Bob"(只创建草稿)
126
+ ```bash
127
+ lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI</p>'
128
+ ```
129
+ → 返回 `draft_id`,告诉用户转发草稿已创建。
130
+
131
+ ### 场景 2:用户说"转发给 Bob 并发送"(需要发送)
132
+ ```bash
133
+ # 方式 A: 创建转发草稿
134
+ lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI,请查收。</p>'
135
+ # → 返回 draft_id
136
+
137
+ # 向用户确认 "收件人 bob@example.com。如果你想先看效果,也可以先去飞书邮件里查看草稿。确认发送吗?"
138
+
139
+ # 用户确认后发送
140
+ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_id":"<draft_id>"}'
141
+
142
+ # 方式 B: 用户已明确确认时,直接发送
143
+ lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI,请查收。</p>' --confirm-send
144
+ ```
145
+
146
+ ### 场景 3:用户说"下午 3 点转发给 Bob"(定时发送)
147
+ ```bash
148
+ # Step 1: 创建转发草稿
149
+ lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI,请查收。</p>'
150
+ # → 返回 draft_id
151
+
152
+ # Step 2: 向用户确认 "转发草稿已创建:收件人 bob@example.com,定时 <目标时间> 发送。确认吗?"
153
+
154
+ # Step 3: 用户确认后定时发送(send_time 为 Unix 时间戳,需至少当前时间 + 5 分钟)
155
+ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_id":"<draft_id>"}' --data '{"send_time":"<unix_timestamp>"}'
156
+ ```
157
+
158
+ ### 场景 4:用户说"等等,先不转发了"(取消定时发送)
159
+ ```bash
160
+ # 取消定时发送(取消后邮件变回草稿)
161
+ lark-cli mail user_mailbox.drafts cancel_scheduled_send --params '{"user_mailbox_id":"me","draft_id":"<draft_id>"}'
162
+ ```
163
+ → 取消成功后邮件恢复为草稿状态,用户可重新编辑或在之后重新发送。
164
+
165
+ ## 转发整个会话
166
+
167
+ `+forward` 操作的是单封邮件(`--message-id`),但转发整个会话时应 forward **会话中最后一条消息**,因为邮件客户端会将完整的回复链嵌套在最新一条中。典型流程:
168
+
169
+ ```bash
170
+ # 1. 用 +triage 或 +thread 找到会话
171
+ lark-cli mail +thread --thread-id <THREAD_ID> --html=false --format json
172
+
173
+ # 2. 取最后一条消息的 message_id
174
+ # messages 按时间升序排列,最后一条 = messages[-1].message_id
175
+
176
+ # 3. 转发该消息
177
+ lark-cli mail +forward --message-id <最后一条的message_id> --to recipient@example.com --body '请过目'
178
+ ```
179
+
180
+ ## 实现说明
181
+
182
+ - 自动拉取原邮件后构建转发内容。
183
+ - 纯文本模式下会生成标准转发头块并附上原文文本。
184
+ - HTML 模式下会生成结构化转发块并尽量保留原 HTML 正文。
185
+
186
+ ## 发送后跟进
187
+
188
+ 转发发送后,分两种情况处理:
189
+
190
+ - 若返回中有 `automation_send_disable_reason` / `automation_send_disable_reference`:说明发送被邮箱设置拦截,应直接告诉用户原因并提供草稿打开链接,**不要**调用 `send_status`
191
+ - 若用户基于发送结果要求撤回,先读取 [lark-mail-recall](lark-mail-recall.md),再执行撤回流程
192
+
193
+ **1. 确认投递状态**(仅立即发送且返回非空 `message_id` 时必须)
194
+
195
+ 用返回的 `message_id` 查询投递状态:
196
+
197
+ ```bash
198
+ lark-cli mail user_mailbox.messages send_status --params '{"user_mailbox_id":"me","message_id":"<发送返回的 message_id>"}'
199
+ ```
200
+
201
+ 状态码:1=正在投递, 2=投递失败重试, 3=退信, 4=投递成功, 5=待审批, 6=审批拒绝。向用户简要报告投递结果,异常状态需重点提示。
202
+
203
+ **1b. 定时发送(指定了 `--send-time`)**
204
+
205
+ 定时发送不会立即产生 `message_id`,因此 `send_status` 在定时发送成功后会返回"待发送"状态,**不建议在定时发送后立即查询**。可在预定发送时间后再查询。
206
+
207
+ 如需取消定时发送:
208
+
209
+ ```bash
210
+ lark-cli mail user_mailbox.drafts cancel_scheduled_send --params '{"user_mailbox_id":"me","draft_id":"<draft_id>"}'
211
+ ```
212
+
213
+ **取消后邮件会变回草稿**,可继续编辑或在之后重新发送。
214
+
215
+ **2. 标记已读**(可选)— 询问用户是否需要将原邮件标记为已读。如果用户同意:
216
+
217
+ ```bash
218
+ lark-cli mail user_mailbox.messages batch_modify --params '{"user_mailbox_id":"me"}' --data '{"message_ids":["<原邮件ID>"],"remove_label_ids":["UNREAD"]}'
219
+ ```
220
+
221
+ ## 编辑转发草稿
222
+
223
+ `+forward` 创建的草稿正文包含引用区(原邮件的引用块)。如果需要编辑转发草稿的正文,**必须通过 `--patch-file` 使用 `set_reply_body` op**,它仅替换用户撰写部分,自动保留引用区。value 只传新的用户撰写内容,不要包含引用区。
224
+
225
+ ```bash
226
+ # 编辑转发草稿正文(自动保留引用区)
227
+ cat > ./patch.json << 'EOF'
228
+ { "ops": [{ "op": "set_reply_body", "value": "<p>修改后的转发附言</p>" }] }
229
+ EOF
230
+ lark-cli mail +draft-edit --draft-id <draft_id> --patch-file ./patch.json
231
+ ```
232
+
233
+ 如果用户要修改引用区内容或去掉引用区,则使用 `set_body` 全量替换。
234
+
235
+ ## 相关命令
236
+
237
+ - `lark-cli mail +send` — 发送新邮件
238
+ - `lark-cli mail +reply` — 回复邮件
239
+ - `lark-cli mail user_mailbox.messages get` — 查看邮件详情
@@ -0,0 +1,333 @@
1
+ # 邮件 HTML 写法指南
2
+
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解通用安全规则。本文档定义 lark-cli mail 写信场景下的 HTML / CSS / URL 写法、LarkSuite mail-editor 原生格式、可复制片段、3 套场景模板。
4
+
5
+ **CRITICAL 邮件是重要的对外交流渠道,请你保证书写语言凝练扼要**
6
+ **CRITICAL 电子邮件的 HTML 不是 Web 开发的 HTML,请你务必遵守本文档中提及的常用邮件格式书写规范**
7
+ **CRITICAL 请务必使用 shortcut 来进行邮件内容编辑 (`+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward`)或 `+draft-edit` 的 body op,严禁自行拼接 EML**
8
+
9
+ 你可以参考 **官方模板库** [`../assets/templates/`](../assets/templates) — 提供部分场景模板,可供参考
10
+
11
+ > 请注意,邮件内容编辑相关的 shortcut 内置 HTML lint 工具,处于安全考虑和格式适配,你输入的 HTML 可能会被自动调整
12
+
13
+ ## 风格底线
14
+
15
+ - **邮件标题小于50字**: 邮件主题行 `--subject` 应控制在 50 字内,避免超长标题带来理解困难
16
+ - **多用列表、表格**:不要堆叠过长的文本段落,请擅长使用列表`<ul>` / `<ol>`或分段 `<p>`
17
+ - **列表书写规则**:**不要**用 `<p>一、...</p><p>二、...</p>` 这种「中文编号 + 段落」的列表样式,"①②③"、"1) 2) 3)的机械写法也请摒弃;请擅长使用列表格式 `<ul>` / `<ol>`。
18
+ - **正文长度自适应**:不限制正文长度,但要求**首屏要见到关键信息**。
19
+
20
+ ## 格式书写规范
21
+
22
+ 电子邮件的 HTML 受客户端兼容性与安全沙箱约束,跟 Web 浏览器 HTML 不是同一规范体系。下面是飞书邮箱已验证的最纯净、最美观写法,请直接复制使用。
23
+
24
+ ### 段落
25
+
26
+ ```html
27
+ <p>文字</p>
28
+ ```
29
+
30
+ ### 标题
31
+
32
+ ```html
33
+ <h1>一级标题(26px,自动加粗)</h1>
34
+ <h2>二级标题(22px)</h2>
35
+ <h3>三级标题(20px)</h3>
36
+ <h4>四级标题(18px)</h4>
37
+ ```
38
+
39
+ ### 加粗
40
+
41
+ ```html
42
+ <b>加粗文字</b>
43
+ ```
44
+
45
+ ### 斜体
46
+
47
+ ```html
48
+ <i>斜体文字</i>
49
+ ```
50
+
51
+ ### 下划线
52
+
53
+ ```html
54
+ <u>下划线文字</u>
55
+ ```
56
+
57
+ ### 删除线
58
+
59
+ ```html
60
+ <s>删除文字</s>
61
+ ```
62
+
63
+ ### 字号
64
+
65
+ ```html
66
+ <span style="font-size:18px">放大到 18px</span>
67
+ ```
68
+
69
+ ### 字体
70
+
71
+ ```html
72
+ <span style="font-family:'Courier New',monospace">等宽字体</span>
73
+ ```
74
+
75
+ ### 文字颜色
76
+
77
+ ```html
78
+ <span style="color:rgb(245,74,69)">红色文字</span>
79
+ ```
80
+
81
+ ### 换行
82
+
83
+ ```html
84
+ 第一行<br>第二行
85
+ ```
86
+
87
+ ### 分隔
88
+
89
+ ```html
90
+ <hr>
91
+ ```
92
+
93
+ ### 列表
94
+
95
+ ```html
96
+ <!-- 无序列表 -->
97
+ <ul><li>项</li></ul>
98
+
99
+ <!-- 有序列表 -->
100
+ <ol><li>条</li></ol>
101
+
102
+ <!-- 多级列表通用规则(适用于下面两个示例):
103
+ - <ul>/<ol> 的直接子节点必须是 <li>,HTML 规范不允许 <ul> 直接套 <ul>
104
+ - 子列表必须嵌套在父 <li> 内,不要拆成多个独立 ol/ul 兄弟
105
+ - 每级 list-style-type 用不同符号区分层级(disc/circle/square 或 decimal/lower-alpha/lower-roman)
106
+ - 子级用 margin-left:24px 视觉缩进 -->
107
+
108
+ <!-- 多级有序列表(全 ol 三级嵌套:decimal → lower-alpha → lower-roman) -->
109
+ <ol data-list-number="true" style="margin:0px;padding-left:0px;list-style-position:inside">
110
+ <li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="demo-ol" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
111
+ <b><span style="font-family:inherit"><span style="color:rgb(31,35,41)">第一级(decimal)</span></span></b>
112
+ <ol data-list-number="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside">
113
+ <li class="temp-li number2" data-li-line="true" data-list="number2" data-ol-id="demo-ol" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:lower-alpha;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
114
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第二级(lower-alpha,缩进 24px)</span></span>
115
+ <ol data-list-number="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside">
116
+ <li class="temp-li number3" data-li-line="true" data-list="number3" data-ol-id="demo-ol" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:lower-roman;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
117
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第三级(lower-roman,再缩进 24px)</span></span>
118
+ </li>
119
+ </ol>
120
+ </li>
121
+ <li class="temp-li number2" data-li-line="true" data-list="number2" data-ol-id="demo-ol" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:lower-alpha;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
122
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第二级(同层)</span></span>
123
+ </li>
124
+ </ol>
125
+ </li>
126
+ <li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="demo-ol" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
127
+ <b><span style="font-family:inherit"><span style="color:rgb(31,35,41)">第一级(接续编号)</span></span></b>
128
+ </li>
129
+ </ol>
130
+
131
+ <!-- 多级无序列表(全 ul 三级嵌套:disc → circle → square) -->
132
+ <ul data-list-bullet="true" style="margin:0px;padding-left:0px;list-style-position:inside">
133
+ <li class="temp-li bullet1" data-li-line="true" data-list="bullet1" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:disc;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
134
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第一级(disc)</span></span>
135
+ <ul data-list-bullet="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside">
136
+ <li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
137
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第二级(circle,缩进 24px)</span></span>
138
+ <ul data-list-bullet="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside">
139
+ <li class="temp-li bullet3" data-li-line="true" data-list="bullet3" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:square;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
140
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第三级(square,再缩进 24px)</span></span>
141
+ </li>
142
+ </ul>
143
+ </li>
144
+ <li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
145
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第二级(同层)</span></span>
146
+ </li>
147
+ </ul>
148
+ </li>
149
+ <li class="temp-li bullet1" data-li-line="true" data-list="bullet1" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:disc;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto">
150
+ <span style="font-family:inherit"><span style="color:rgb(31,35,41)">第一级(同层)</span></span>
151
+ </li>
152
+ </ul>
153
+ ```
154
+
155
+ ### 表格
156
+
157
+ ```html
158
+ <table style="border-collapse:collapse">
159
+ <thead>
160
+ <tr style="background-color:rgb(242,243,245)">
161
+ <th rowspan="2" style="border:1px solid rgb(222,224,227);padding:8px;vertical-align:middle">A</th>
162
+ <th colspan="2" style="border:1px solid rgb(222,224,227);padding:8px;text-align:center">B</th>
163
+ <th rowspan="2" style="border:1px solid rgb(222,224,227);padding:8px;vertical-align:middle">C</th>
164
+ </tr>
165
+ <tr style="background-color:rgb(242,243,245)">
166
+ <th style="border:1px solid rgb(222,224,227);padding:8px">B1</th>
167
+ <th style="border:1px solid rgb(222,224,227);padding:8px">B2</th>
168
+ </tr>
169
+ </thead>
170
+ <tbody>
171
+ <tr>
172
+ <td style="border:1px solid rgb(222,224,227);padding:8px">a1</td>
173
+ <td style="border:1px solid rgb(222,224,227);padding:8px">b1-1</td>
174
+ <td style="border:1px solid rgb(222,224,227);padding:8px">b2-1</td>
175
+ <td style="border:1px solid rgb(222,224,227);padding:8px">c1</td>
176
+ </tr>
177
+ <tr>
178
+ <td style="border:1px solid rgb(222,224,227);padding:8px">a2</td>
179
+ <td style="border:1px solid rgb(222,224,227);padding:8px">b1-2</td>
180
+ <td style="border:1px solid rgb(222,224,227);padding:8px">b2-2</td>
181
+ <td style="border:1px solid rgb(222,224,227);padding:8px">c2</td>
182
+ </tr>
183
+ </tbody>
184
+ </table>
185
+ ```
186
+
187
+ ### 链接
188
+
189
+ ```html
190
+ <a href="https://www.larkoffice.com" style="color:rgb(20,86,240);text-decoration:none">链接文字</a>
191
+ ```
192
+
193
+ ### AT 用户
194
+
195
+ ```html
196
+ <a id="at-user-1" href="mailto:user@example.com" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px">@姓名</a>
197
+ ```
198
+
199
+ **必填字段** `id="at-user-N"`、`mailto:` 和姓名文本
200
+
201
+ ### 引用
202
+
203
+ ```html
204
+ <blockquote style="padding-left:12px;color:rgb(100,106,115);border-left:2px solid rgb(187,191,196);margin:0px">引用文字</blockquote>
205
+ ```
206
+
207
+ ### 文字高亮(荧光笔风格)
208
+
209
+ ```html
210
+ <span style="background-color:rgb(255,200,220);color:rgb(31,35,41)">关键里程碑</span>
211
+ <span style="background-color:rgb(255,225,140);color:rgb(31,35,41)">待跟进</span>
212
+ <span style="background-color:rgb(190,230,200);color:rgb(31,35,41)">已完成</span>
213
+ ```
214
+
215
+ ### 文字强调
216
+
217
+ ```html
218
+ <b><span style="font-family:inherit"><span style="color:rgb(245,74,69)">红色加粗</span></span></b>
219
+ <i><span style="font-family:inherit"><span style="color:rgb(0,0,0)">斜体</span></span></i>
220
+ <u><span style="font-family:inherit"><span style="color:rgb(0,0,0)">下划线</span></span></u>
221
+ <s><span style="font-family:inherit"><span style="color:rgb(0,0,0)">删除线</span></span></s>
222
+ ```
223
+
224
+ ### 居中 / 左对齐 / 右对齐
225
+
226
+ ```html
227
+ <div style="text-align:center">居中</div>
228
+ <div style="text-align:left">左对齐(默认)</div>
229
+ <div style="text-align:right">右对齐</div>
230
+ ```
231
+
232
+ ### 盒模型
233
+
234
+ ```html
235
+ <div style="margin:8px;padding:12px;width:300px">外边距 8px / 内边距 12px / 宽度 300px</div>
236
+ ```
237
+
238
+ ### 边框
239
+
240
+ ```html
241
+ <div style="border:1px solid rgb(222,224,227);border-radius:8px;padding:8px">圆角描边</div>
242
+ ```
243
+
244
+ ### 透明
245
+
246
+ ```html
247
+ <span style="opacity:0.5">半透明文字</span>
248
+ ```
249
+
250
+ ### 颜色(推荐调色盘)
251
+
252
+ ```html
253
+ <!-- 主黑(正文) -->
254
+ <span style="color:rgb(31,35,41)">主文本</span>
255
+ <!-- 副灰(次要说明 / 时间 / 备注) -->
256
+ <span style="color:rgb(100,106,115)">副文本</span>
257
+ <!-- 浅灰(三级文本 / 占位) -->
258
+ <span style="color:rgb(143,149,158)">浅灰文本</span>
259
+ <!-- LarkSuite 蓝(链接 / mention) -->
260
+ <span style="color:rgb(20,86,240)">蓝色文字</span>
261
+ <!-- LarkSuite 深蓝(重点标题) -->
262
+ <span style="color:rgb(36,91,219)">深蓝标题</span>
263
+ <!-- 警示红(错误 / 失败 / 红色加粗) -->
264
+ <span style="color:rgb(245,74,69)">警示红</span>
265
+ <!-- 紧急橙(紧急 / 阻塞 / 环比上升) -->
266
+ <span style="color:rgb(255,140,40)">紧急橙</span>
267
+ ```
268
+
269
+ ### URL scheme
270
+
271
+ ```html
272
+ <a href="https://example.com">外链</a>
273
+ <a href="mailto:user@example.com">邮件链接</a>
274
+ <img src="cid:abc"> <!-- 内嵌图片,配合 --inline 参数 -->
275
+ <img src="data:image/png;base64,iVBOR..."> <!-- base64 内嵌图片 -->
276
+ ```
277
+
278
+ ## 官方 HTML 模板
279
+
280
+ 仓库 [`../assets/templates/`](../assets/templates/) 内预制了若干场景模板,按 LarkSuite mail-editor 原生格式写好。**注意:模板是静态 HTML,没有变量替换能力,AI 需要手工把模板里的样例文本替换成本次邮件的真实内容。**
281
+
282
+ | 文件 | 说明 |
283
+ |---------------------------------|----------|
284
+ | `newsletter--weekly-brief.html` | 资讯周报 |
285
+ | `weekly--personal-report.html` | 工作周报(个人) |
286
+ | `weekly--team-report.html` | 工作周报(团队) |
287
+ | `research--market-report.html` | 调研报告 |
288
+ | `job-application--resume.html` | 简历邮件 |
289
+
290
+ 跟飞书 OAPI 个人邮件模板(`mail.user_mailbox.templates`)不同——OAPI 模板是用户邮箱里的"我的模板",跨客户端可见;这里是仓库里的静态 HTML 文件,AI 单次套用即可。
291
+
292
+ ### AI 套用流程
293
+
294
+ 1. **判断是否能用模板** — 看用户当前要写的邮件类型(周报 / 调研 / 简历 / 资讯 / ...)能否对上 [`../assets/templates/`](../assets/templates/) 里的某个文件;不匹配就跳过模板,直接按写法规范从零写。
295
+ 2. **Read 整个 HTML** — 用 Read 工具完整读取选定的模板文件,理解骨架(章节标题 / 列表层级 / 占位文本 / mention chip / 段落顺序)。
296
+ 3. **替换文本内容** — 把模板里的样例文字换成用户当前邮件的真实内容;保留所有 inline style / class / data-* 等结构性属性不动;列表条目 / 表格行可按需增删;不需要的整段(如「风险」「下周计划」)整段删除即可,不要留空骨架。
297
+ 4. **调写信 shortcut 生成草稿** — 把替换后的 HTML 通过 `--body` 参数交给写信链路(推荐 `+draft-create` 先存草稿、用户复核后再 `+send`):
298
+
299
+ ```bash
300
+ lark-cli mail +draft-create --as user \
301
+ --to alice@example.com --subject 'Q3 团队周报' \
302
+ --body "$(cat skills/lark-mail/assets/templates/weekly--team-report.html)"
303
+ ```
304
+
305
+ 实际使用时 `$(cat ...)` 可换成 AI 替换文本后写入的本地副本,或直接把替换后的 HTML 字符串作为 `--body` 的值。
306
+
307
+ 5. **拿到草稿链接给用户复核** — 写信 shortcut 返回 `reference` 字段(草稿打开链接),把它给用户在飞书邮箱 UI 里打开核对,再决定下一步发送 / 编辑。
308
+
309
+ ## 写信 shortcut 的 lint 返回值
310
+
311
+ 写信链路(`+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` / `+draft-edit` body op)调用 `emlbuilder` 之前会强制 lint 净化 HTML,但 **默认 envelope 不携带任何 lint 字段**(既无 `*_count` 也无 finding 数组),envelope 保持小巧供 AI 消费。每个写信 shortcut 默认 envelope 的字段集合:
312
+
313
+ | 字段 | 出现条件 | 说明 |
314
+ |------|---------|------|
315
+ | `compose_hint` | 6 个 shortcut 默认都附 | 固定英文文案,提示 AI / 用户在组合 HTML 前阅读本文 |
316
+ | `draft_edit_hint` | **仅** `+draft-create` 默认附(其他 5 个 shortcut 不附) | 固定英文文案,提示拿到 `draft_id` 后改稿走 `+draft-edit --draft-id <id>` 而不是重跑 `+draft-create` 产生重复草稿 |
317
+ | `draft_id` / `message_id` | OAPI 写入成功后写回 | `+draft-create` / `+draft-edit` 返回 `draft_id`;`+send` / `+reply` / `+reply-all` / `+forward` 返回 `message_id` |
318
+
319
+ 需要看 lint 详情时加 `--show-lint-details`:
320
+
321
+ ```bash
322
+ lark-cli mail +draft-create --show-lint-details \
323
+ --to alice@example.com --subject 'Hi' --body '<p>正文</p>'
324
+ ```
325
+
326
+ 加了 `--show-lint-details` 后 envelope 同时返回 `lint_applied[]` / `original_blocked[]` 两个完整 Finding 数组(每条含 `rule_id` / `severity` / `tag_or_attr` / `excerpt` / `hint`),**不再返回任何 `*_count` 字段** —— 调用方需要 count 时直接 `len(lint_applied)` / `len(original_blocked)`。**默认场景不要加这个 flag**,徒增 token 消耗。
327
+
328
+ 如果只是想预览 lint 会怎么改 HTML,建议直接用 [`+lint-html`](./lark-mail-lint-html.md) 命令——它本来就返回完整 `warnings[]` / `errors[]` + `cleaned_html`,比写信链路 `--show-lint-details` 更清晰。
329
+
330
+ ## 相关文档
331
+
332
+ - [`+lint-html` 用法](./lark-mail-lint-html.md)
333
+ - 写信 shortcut: [`+send`](./lark-mail-send.md) / [`+draft-create`](./lark-mail-draft-create.md) / [`+reply`](./lark-mail-reply.md) / [`+reply-all`](./lark-mail-reply-all.md) / [`+forward`](./lark-mail-forward.md) / [`+draft-edit`](./lark-mail-draft-edit.md)