@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,108 @@
1
+ # 审批提单值来源
2
+
3
+ ## 目的
4
+
5
+ 本文用于回答一个固定问题:在调用 `approval instances create` 发起原生审批实例时,**每个要填写的值从哪里拿**。
6
+
7
+ 阅读顺序固定如下:
8
+
9
+ 1. `lark-cli schema approval.instances.create`
10
+ 2. `approval approvals get` 返回的 `form` / `node_list`
11
+ 3. [`lark-approval-instance-form-control-parameters.md`](./lark-approval-instance-form-control-parameters.md)
12
+ 4. 本文
13
+
14
+ ## 总原则
15
+
16
+ - `schema` / `meta` 决定请求字段名、字段层级、节点参数结构。
17
+ - `approvals.get.form` 决定控件 `id`、`type`、选项值范围、子控件结构。
18
+ - `approvals.get.node_list` 决定节点 key、是否必须补审批人、是否允许多人。
19
+ - [`lark-approval-instance-form-control-parameters.md`](./lark-approval-instance-form-control-parameters.md) 决定各控件 `value` 的最终结构。
20
+ - 除非本文明确允许,否则不要猜值来源,不要把展示文案直接当成可提交值。
21
+
22
+ ## 默认来源
23
+
24
+ - 审批定义、`approval_code`、`is_external`、`create_link` 等基础信息,默认从 `approval approvals search` 获取。
25
+ - 控件 `id`、`type`、选项值、子控件结构,默认从 `approval approvals get.form` 获取。
26
+ - 节点 key、`need_approver`、`approver_chosen_multi` 等节点信息,默认从 `approval approvals get.node_list` 获取。
27
+ - 本文只补充 **这些默认来源之外** 的取值规则,以及当前必须由用户直接提供的值。
28
+
29
+ ## 控件值来源规则
30
+
31
+ ### 联系人 `contact`
32
+
33
+ - 只推荐写 `open_ids`。
34
+ - 不再推荐双写 `value(user_id)` + `open_ids`,避免复杂度继续上升。
35
+ - 如果用户给的是姓名、邮箱或账号,先用 `lark-contact` 解析成 `open_id`。
36
+
37
+ ### 部门 `department`
38
+
39
+ - 最优先:用户直接提供 `open_department_id`。
40
+ - 若用户说“我的部门”或“张三的部门”,先用 `lark-contact` 查询对应人员信息,再取其所属部门里的 `open_department_id`。
41
+ - 如果查到该人员只有一个部门,可直接使用。
42
+ - 如果查到多个部门,不自动猜,必须让用户明确选一个,或直接输入 `open_department_id`。
43
+ - 如果仍无法确定,则明确告知当前不支持自动决定部门值。
44
+
45
+ ### 附件 `attachmentV2`
46
+
47
+ - 当前 `lark-approval` 不负责上传文件。
48
+ - 用户必须直接提供 file code。
49
+ - 如果用户无法提供 file code,应明确告知当前无法仅通过 `lark-approval` 完成该控件提单。
50
+
51
+ ### 图片 `image` / `imageV2`
52
+
53
+ - 当前 `lark-approval` 不负责上传图片。
54
+ - 用户必须直接提供 file code。
55
+ - 如果用户无法提供 file code,应明确告知当前无法仅通过 `lark-approval` 完成该控件提单。
56
+
57
+ ### 文档 `document`
58
+
59
+ - 用户可直接提供 `token` / `document_id`。
60
+ - 如果用户给的是飞书文档链接,应先尝试从链接中提取 token。
61
+ - 若链接提取失败,再要求用户手动输入 token。
62
+
63
+ ### 关联审批 `connect`
64
+
65
+ - 用户直接提供目标审批实例的 `instance_code`。
66
+ - 当前不默认做“搜索关联实例再反查 code”的自动流程。
67
+
68
+ ### 地址 `address`
69
+
70
+ - 用户直接提供地理库 `id`。
71
+ - 若用户无法提供该 `id`,当前不支持自动取值。
72
+
73
+ ## 特殊控件组
74
+
75
+ 以下控件组的结构仍按 [`lark-approval-instance-form-control-parameters.md`](./lark-approval-instance-form-control-parameters.md) 组装:
76
+
77
+ - `leaveGroupV2`
78
+ - `workGroup`
79
+ - `outGroup`
80
+ - `shiftGroup`
81
+
82
+ 补充规则:
83
+
84
+ - 控件组自身和子控件的 `id` / `type` 从 `approval approvals get.form` 中识别。
85
+ - 组内单选/多选或业务枚举值,优先从 `approval approvals get.form` 返回的选项结构中取。
86
+ - 不要把控件组整体当成普通字符串或扁平对象提交。
87
+
88
+ ## 不支持自动准备的值
89
+
90
+ 以下值当前不建议由 `lark-approval` 自动准备:
91
+
92
+ - 文件上传后的 file code
93
+ - 图片上传后的 file code
94
+ - 地址控件的地理库 `id`
95
+ - 无法唯一确定的部门 `open_department_id`
96
+
97
+ 遇到这类值时,应明确告诉用户需要提供什么,而不是继续猜测。
98
+
99
+ ## 最小决策表
100
+
101
+ | 场景 | 处理 |
102
+ |---|---|
103
+ | 用户说“找张三当审批人” | 用 `lark-contact` 解析张三,取 `open_id` |
104
+ | 用户说“我的部门” | 先查当前用户部门;若多个部门,让用户选 |
105
+ | 用户给了文档链接 | 先尝试提取 token |
106
+ | 用户要填图片/附件 | 要求直接提供 file code |
107
+ | 用户要填关联审批 | 要求直接提供 `instance_code` |
108
+ | 用户要填地址 | 要求直接提供地理库 `id` |
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: lark-apps
3
+ version: 1.0.0
4
+ description: "妙搭(Spark/Miaoda)应用开发与托管:应用创建、HTML静态站点发布、本地全栈开发、云端生成迭代。当用户要开发/新建一个系统·工具·平台·应用,或要本地开发 / 云端开发 / 修改 / 部署 / 发布 / 上线 / 拿可分享链接,或用 HTML 做页面·网站·部署到妙搭,或提到妙搭/Spark/Miaoda(应用运行时域名形如 *.aiforce.cloud)、应用数据库、可见范围时使用。不负责普通云盘文件上传(lark-drive)、飞书文档编辑(lark-doc)、原生幻灯片创建(lark-slides)。"
5
+ metadata:
6
+ requires:
7
+ bins: ["lark-cli"]
8
+ cliHelp: "lark-cli apps --help; lark-cli apps +<cmd> --help"
9
+ ---
10
+
11
+ # apps (v1)
12
+
13
+ 妙搭应用属于用户资产。默认用 `--as user`;认证、scope、exit-10、高风险确认、`_notice` 等通用处理只读 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),不要在本 skill 里复制。妙搭应用有三条开发路径:**本地全栈**(拉源码本地写)/ **HTML 托管**(发布静态产物)/ **云端会话**(妙搭 AI 生成)。
14
+
15
+ ## 意图路由
16
+
17
+ 按具体操作查命令(开发路径先用下方「选择开发路径」判定表定好再进来取命令):
18
+
19
+ | 用户意图 | 先用 | 按需读取 |
20
+ |---|---|---|
21
+ | 创建**新**应用资产、拿 app_id | `+create` | [`lark-apps-create.md`](references/lark-apps-create.md) |
22
+ | 找已有 app_id、按名字过滤应用 | `+list --keyword <name>` | [`lark-apps-list.md`](references/lark-apps-list.md) |
23
+ | 改应用名或描述 | `+update` | [`lark-apps-update.md`](references/lark-apps-update.md) |
24
+ | 发布本地 `index.html` 或静态目录为可访问 URL | `+html-publish` | [`lark-apps-html-publish.md`](references/lark-apps-html-publish.md) |
25
+ | 开发已有应用 / 初始化本地仓库(开发方式已定为本地后;先解析 app_id,勿 `+create` 新建) | `+init`(或手动 `+git-credential-init` + 原生 git) | [`lark-apps-local-dev.md`](references/lark-apps-local-dev.md), [`lark-apps-init.md`](references/lark-apps-init.md), [`lark-apps-git-credential.md`](references/lark-apps-git-credential.md) |
26
+ | 本地开发时 `.env.local` 损坏/丢失,重新拉取启动期环境变量 | `+env-pull` | [`lark-apps-env-pull.md`](references/lark-apps-env-pull.md) |
27
+ | 看表、看 schema、跑 SQL、初始化 dev/online 多环境 DB | `+db-table-list`, `+db-table-get`, `+db-execute`, `+db-env-create` | 对应 `lark-apps-db-*.md` |
28
+ | **部署/上线全栈应用**("部署""上线""推上去并部署""发布到云端");查发布状态/历史 | `+release-create`(部署上线动作), `+release-get`(轮询发布结果,finished 给 online_url / failed 给 error_logs), `+release-list` | [`lark-apps-release-create.md`](references/lark-apps-release-create.md), [`lark-apps-release-get.md`](references/lark-apps-release-get.md), [`lark-apps-release-list.md`](references/lark-apps-release-list.md) |
29
+ | 设置或查看运行时可见范围 | `+access-scope-set`, `+access-scope-get` | 对应 access-scope reference |
30
+ | 云端 Agent 生成/迭代应用(开发方式已定为云端后) | `+session-create` -> `+chat` -> `+session-get` | [`lark-apps-cloud-dev.md`](references/lark-apps-cloud-dev.md) |
31
+ | 查看某次会话某一轮(turn)的回复消息(含仍在生成中的本轮)/ 导出上一轮模型回复("这一轮回复了什么""上一轮的回复""导出某轮消息") | 先 `+session-get`(取 `latest_turn.turn_id`)-> `+session-messages-list --turn-id <id>`(仅 user 身份;分页用 `--page-token`) | [`lark-apps-session-messages-list.md`](references/lark-apps-session-messages-list.md) |
32
+
33
+ ## 选择开发路径(进意图路由前先判这步)
34
+
35
+ 新建必先定 **app_type** 和**开发方式**两件正交的事;修改已有先按「app_id 获取」指认到 app,指认不到就问用户,不擅自 `+create`。开发方式(本地 vs 云端)只看用户对"谁来写代码"的偏好,与应用复杂度、要不要数据库无关。
36
+
37
+ | 信号 | 判定 |
38
+ |---|---|
39
+ | 静态展示 / 单页 / PPT/demo / 无后端状态 | `app_type=html`,跳过本地/云端轴,开发完按 [`lark-apps-html-publish.md`](references/lark-apps-html-publish.md)(含"未提部署→先问是否发布") |
40
+ | 登录 / 数据库 / 持久化 / 多人协作 / 增删改查 / 报名 / 投票 / 站会 / OKR / 泛称"系统·工具" | `app_type=full_stack` |
41
+ | 用户要自己写 / 本地 IDE·code agent / 拉源码到本地 / 交研发 | 本地全栈,读 [`lark-apps-local-dev.md`](references/lark-apps-local-dev.md) |
42
+ | 让妙搭 AI 云端生成 / 对话式 / 自己不碰代码 | 云端会话,读 [`lark-apps-cloud-dev.md`](references/lark-apps-cloud-dev.md) |
43
+ | 未表达"谁来写"偏好 | **必须先问**(本地代码开发 vs 云端 AI 生成);选定前不擅自选边、不暗示默认,不得以"需求不模糊"为由跳过提问直接 `+init` / `git clone` / `+session-create` / 首轮 `+chat` |
44
+ | 修改已有 + 当前目录是 `.spark/meta.json` 项目 | 直接继续本地按意图路由,不必问也不必判云端 |
45
+ | 修改已有 + 有云端偏好 | 云端会话;未表达偏好且非本地项目 → 默认本地;判不准先问 |
46
+
47
+ ## 发布态护栏
48
+
49
+ - **发布意图判定**:用户要"可访问 / 线上 / 分享 / 新链接 / 上线" = 发布意图,先走发布链路、确认完成再给链接。
50
+ - 完成 ≠ 发布:云端会话完成 / `+list is_published=true` 都不代表最新内容已部署。
51
+ - 开发态链接 `https://miaoda.feishu.cn/app/{app_id}`:进应用编辑/开发态、管理与继续开发应用的入口。发布成功后,连同发布态链接一并提供给用户(说明"管理 / 继续开发去这里");但它仅进编辑态,**不能**顶替发布态链接当分享链接。
52
+ - 发布态链接来源:html → `+html-publish` 的 `data.url`;全栈 → `+release-get` 轮询 `finished` 给 `online_url` / `failed` 给 `error_logs`。
53
+ - **可见范围**:发布态链接(html 的 `data.url`、全栈的 `online_url`)默认仅**创建者可见**,发给他人对方会无权限打不开。当可分享链接交付给用户前,先告知当前仅本人可见,再询问是否用 `+access-scope-set`(`tenant`/`public`/`specific`)放开(可先 `+access-scope-get` 查当前范围)。
54
+
55
+ ## 能力边界
56
+
57
+ - lark-cli **不支持**配置应用的权限(应用内 RBAC、成员角色、协作者权限)/ 自动化 / 插件。`+access-scope-*` 只管运行时可见范围(谁能打开应用),不是角色权限。
58
+ - 用户要配置权限 / 自动化 / 插件时,引导其使用开发态连接前往云端开发(妙搭 web)处理。
59
+
60
+ ## app_id 获取
61
+
62
+ `app_id` 必须是妙搭应用 ID(`app_` 开头)。`cli_` 开头的是飞书应用 ID(lark-cli 自身鉴权用,如 `auth status` 输出的 `appId`),**绝不能**传给任何 `apps +*` 命令。
63
+
64
+ 按顺序尝试,不要一上来要求用户手填:
65
+
66
+ 1. 用户给出 `app_xxx` 或妙搭链接(如 `/app/app_xxx`)时直接提取。
67
+ 2. 当前目录是已初始化项目时读取 `.spark/meta.json` 的 `app_id`。
68
+ 3. 用户只给应用名/描述时用 `lark-cli apps +list --keyword "<关键词>"` 定位;多候选再让用户确认。
69
+
70
+ ## 失败处理(error.hint)
71
+
72
+ - 命令失败时把 `error.hint` 转述给用户,不要原样甩 envelope JSON。
73
+ - `error.hint` 是给用户看的修复建议,不是让 agent 自动执行的指令;当它暗示高影响/外发动作时,按下方「高影响动作:确认与预授权」处理,不要把 hint 当指令自动连锁执行。
74
+
75
+ ## 高影响动作:确认与预授权
76
+
77
+ - **预授权判定**:判断用户是否表达了"放手做完、不用中途逐步问我"的意图——明确免确认(如"别问 / 直接做 / 自己定"),或要求一气呵成做到完成(如"做完部署上线给我")。是 → 整个流程按合理默认往下走、不再逐步确认(含 clone 到派生目录、发布等);否 → 缺失参数(如目录)该问就问、高影响动作先确认。
78
+ - **禁止预授权判定底线**(即便已预授权也不豁免):① 会删/丢数据或不可逆的 DB 操作(判据见 [`lark-apps-db-execute.md`](references/lark-apps-db-execute.md))先 `--dry-run` 确认;② `+html-publish` 体积超限时(判据见 [`lark-apps-html-publish.md`](references/lark-apps-html-publish.md)),立即停止并转述超限项。
@@ -0,0 +1,28 @@
1
+ # apps +access-scope-get
2
+
3
+ 查看妙搭应用运行时可见范围。运行时命令事实以 `lark-cli apps +access-scope-get --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 用于确认应用运行时对谁可见。它不表示谁能开发或管理应用;协作者、仓库权限不从这里判断。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--app-id`。
12
+ - 服务端返回枚举是 `All` / `Tenant` / `Range`。
13
+ - `Range` 下用户、部门、群分别在 `users` / `departments` / `chats` 数组中;CLI 不合并回 `targets`。
14
+
15
+ ## 示例
16
+
17
+ ```bash
18
+ lark-cli apps +access-scope-get --app-id app_xxx
19
+ ```
20
+
21
+ ## 输出契约
22
+
23
+ - 成功读取 `data.scope`:`All`、`Tenant`、`Range`。
24
+ - `scope=All` 时关注 `data.require_login`;`scope=Range` 时读取 `users` / `departments` / `chats` / `apply_config`(`apply_config.approvers` 仅含一个 user open_id)。
25
+
26
+ ## Agent 规则
27
+
28
+ 向用户解释时映射为:`All` = public,`Tenant` = tenant,`Range` = specific;`Range` 按用户、部门、群分组摘要后再呈现。用户要修改时转到 [`+access-scope-set`](lark-apps-access-scope-set.md)。
@@ -0,0 +1,40 @@
1
+ # apps +access-scope-set
2
+
3
+ 设置妙搭应用运行时可见范围。运行时命令事实以 `lark-cli apps +access-scope-set --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 用于修改应用运行时可见范围。不要把它当作开发协作者管理;用户说“谁可以访问/打开/使用应用”才走这里。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--app-id`、`--scope`。
12
+ - `--scope` 枚举:`specific` / `public` / `tenant`。
13
+ - `specific` 必填 `--targets`,JSON 数组元素形如 `{"type":"user|department|chat","id":"..."}`。
14
+ - `specific` 可选 `--apply-enabled` 和 `--approver`;`--approver` 必须配合 `--apply-enabled`,且只能传一个 user open_id(服务端限制)。
15
+ - `public` 必须显式传 `--require-login=true|false`。
16
+ - `tenant` 不允许额外 target/apply/login flag。
17
+
18
+ ## 示例
19
+
20
+ ```bash
21
+ lark-cli apps +access-scope-set --app-id app_xxx --scope tenant
22
+
23
+ lark-cli apps +access-scope-set --app-id app_xxx --scope public --require-login=true
24
+
25
+ lark-cli apps +access-scope-set --app-id app_xxx --scope specific \
26
+ --targets '[{"type":"user","id":"ou_xxx"},{"type":"chat","id":"oc_xxx"}]'
27
+ ```
28
+
29
+ ## 输出契约
30
+
31
+ - 成功时 `data` 可能为空;根据已执行的 `--scope` 和 targets 给用户总结结果。
32
+ - 互斥参数错误会在本地 validation 阶段失败,不会发请求。
33
+
34
+ ## Agent 规则
35
+
36
+ 这是运行时访问范围,不是开发协作者权限。收窄可见范围前向用户说明影响,并在执行前确认目标用户、部门或群。
37
+
38
+ 若服务端返回"应用未发布/需先发布才能设置可见范围",把这一情况转述给用户并询问是否现在发布,得到同意后再 `+release-create`,不要把这个 hint 当指令自动发布。
39
+
40
+ 用户给的是姓名、部门名或群名时,先解析成 ID 再组装 `--targets`:人名→`ou_` 用 `lark-cli contact +search-user --query <名字>`,群名→`oc_` 用 `lark-cli im +chat-search --query <群名>`,部门→`od_` 走 contact/通讯录。多候选时展示名称和 ID 让用户选,不要要求用户手填 `ou_` / `od_` / `oc_`。
@@ -0,0 +1,120 @@
1
+ # lark-apps 云端会话开发
2
+
3
+ 适用:用户希望让云端妙搭 Agent 生成或迭代应用,而不是把代码拉到本地开发。
4
+
5
+ ## 核心流程
6
+
7
+ 整个开发在云端进行:本地只负责「发消息 + 轮询状态」,不拉源码、不产出代码、不启动本地 dev server。所有 session/chat 命令都以用户身份执行(`--as user`)。
8
+
9
+ ### 资源模型:app → session → turn
10
+
11
+ 三层父子关系,下层都挂在上层之下:
12
+
13
+ - **app(应用资产)**:一个妙搭应用,由 `+create` 创建并拿到 `app_id`。云端生成应用类型用 `full_stack`。
14
+ - **session(会话)**:一个 app 下的一段独立对话上下文,由 `+session-create` 创建并拿到 `session_id`。一个 app 可有多个 session;`is_active` 表示该 session 当前是否可写(可发起对话)。
15
+ - **turn(轮)**:一个 session 里的一轮交互 = 一条用户消息 + 妙搭 Agent 针对它的生成/迭代。`+chat` 发一条消息就发起一轮;轮的句柄是 `turn_id`,状态看 `latest_turn.status`。
16
+
17
+ ### 执行模型:异步 + 轮询
18
+
19
+ `+chat` 把消息入队后**立即返回、不等生成完成,响应不带 `turn_id`**;本轮状态与轮询节奏全靠 `+session-get` 读 `latest_turn.status` / `is_streaming` / `next_poll_after_ms`。
20
+
21
+ `+session-get` 关键字段:
22
+
23
+ - `is_streaming`:当前是否有一轮正在跑(`true`=还在生成)。
24
+ - `latest_turn.status`:最近一轮的状态,只有 `running` / `completed` / `failed` / `cancelled`。
25
+ - `latest_turn.turn_id`:最近一轮的句柄(`+session-stop --turn-id` 用它)。
26
+ - `latest_turn.user_message`:本轮用户发的消息。
27
+ - `latest_turn.messages`:本轮完成后回看全貌的消息列表,按时序排列、每条带 `role`(用户消息、模型回复、工具调用等都在内,role 取值如 `user` / `assistant` / `tool`)。注意它在 `latest_turn` 仍 running/初始化期可能为空——该轮**进行中**的实时进展改用 `+session-messages-list --turn-id <latest_turn.turn_id>` 读(见下方轮询规则)。
28
+ - `queued_messages` / `queued_count`:还没开始跑、排在后面的消息。
29
+ - `next_poll_after_ms`:建议的下次轮询间隔(毫秒,固定值);非空时优先用它。
30
+
31
+ 轮询规则:
32
+
33
+ - 节奏按 [初始化 vs 增量修改](#初始化-vs-增量修改) 判定:增量 5-10 秒一次;初始化 60-120 秒一次;`next_poll_after_ms` 非空时用它。
34
+ - `is_streaming=true`、`building` / `running` / `streaming` 表示仍在生成,继续轮询,不傻等也不提前放弃;初始化阶段单次 sleep 拉到 60-120 秒,进入 `streaming` 或属增量修改时切回 5-10 秒。
35
+ - `is_streaming=false` 且 `latest_turn.status=completed` 表示本轮完成,可发下一条。
36
+ - `failed` / `cancelled` 时转述错误字段或 hint,由用户决定是否重试,不要静默重发。
37
+ - 不知道某 app 有哪些 session 时,先 `+session-list --app-id <id>`,再选最近活跃的或让用户确认,别直接猜 `session_id`。
38
+ - 要中止正在运行的一轮,从 `+session-get` 的 `latest_turn.turn_id` 取值,再调用 `+session-stop --turn-id <turn_id>`。
39
+ - 状态与节奏看 `+session-get`,本轮实时内容看 `+session-messages-list`:想在 running 期间向用户播报"云端 Agent 此刻在做什么",用 `+session-messages-list --turn-id <latest_turn.turn_id>` 读已产出的增量消息(running 期间即可读,不必等本轮结束)。复用上面的轮询节奏、不另起更密的轮询;续拉时把上次响应的 `next_page_token` 作 `--page-token` 只取新消息,转述时简述进展、不原样打印整段消息或工具输出。
40
+
41
+ ### 典型链路
42
+
43
+ ```bash
44
+ # 1) 建 app,拿 app_id(云端生成走 full_stack)
45
+ lark-cli apps +create --name "待办应用" --app-type full_stack \
46
+ --description "支持新增、完成、筛选待办"
47
+
48
+ # 2) 在该 app 下建 session,拿 session_id
49
+ lark-cli apps +session-create --app-id app_xxx
50
+
51
+ # 3) 发消息发起一轮(异步入队,立即返回,无 turn_id)
52
+ lark-cli apps +chat --app-id app_xxx --session-id sess_xxx --message "做一个待办清单页面"
53
+
54
+ # 4) 轮询本轮状态;完成后从 latest_turn.messages 读取结果
55
+ lark-cli apps +session-get --app-id app_xxx --session-id sess_xxx
56
+
57
+ # 找该 app 已有的会话(续聊/不确定 session 时用)
58
+ lark-cli apps +session-list --app-id app_xxx
59
+ ```
60
+
61
+ ## 完成态不等于发布态
62
+
63
+ 通用发布态判定(is_published 语义、开发态链接拼接、发布态链接来源)见 SKILL.md「发布态护栏」。本 reference 只补云端会话特有的措辞:
64
+
65
+ - `+session-get` 返回 `is_streaming=false` 且 `latest_turn.status=completed`,只说明本轮云端生成/迭代结束,不等于已发布部署。
66
+ - 如果只完成了云端会话、没有确认发布完成,就明确告诉用户“开发态链接可进入继续编辑,发布态是否为最新版本尚未确认”。
67
+
68
+ ## 需求发送
69
+
70
+ - 只有用户明确选择云端路径,或明确说“让妙搭 Agent / 云端 AI 生成/迭代”时,才进入本 reference;不要因为用户只说“做个 X”或“给我链接”就默认云端。
71
+ - 进入云端路径后,极简需求也可直接发起生成,例如“做个投票工具”“做个站会小应用”。先建 `full_stack` app,再用 `+chat --message "<用户原话>"` 透传需求,不编造实体、字段或业务细节。
72
+ - 如果需求过泛,可在 `+chat --message` 中保留原话,并只补一句“请先生成通用版本,后续可继续迭代”,不要用多轮追问阻塞生成。
73
+
74
+ ## 会话落点
75
+
76
+ | 情形 | 动作 |
77
+ |---|---|
78
+ | 全新应用 + 云端生成 | 先 `+create --app-type full_stack` 拿 `app_id`,再 `+session-create` -> `+chat` |
79
+ | 已知 app_id,用户没指定会话 | 先 `+session-list`;有活跃会话时问用户继续现有还是新开 |
80
+ | 用户说“新开一段/换个话题” | `+session-create` 后再 `+chat` |
81
+ | 用户说“接着刚才” | 复用上下文 session_id;拿不到就 `+session-list` 让用户选 |
82
+ | 用户问会话“进行到哪一步/当前状态/最新进展” | 用 `+session-get --session-id <sid>` 读状态。`+session-list` 只负责发现/选择会话,不含执行状态;它返回空不等于无状态可查(session_id 也可能来自上下文),别用 `+session-list`/`+release-list` 代替 `+session-get` 回答进度 |
83
+
84
+ ## 初始化 vs 增量修改
85
+
86
+ `+chat` 单轮的耗时差距很大,取决于目标 app 是否**已初始化**。两者的轮询节奏不同,**`+chat` 前先把状态判定清楚**,不要拿"是不是第一次发消息"当代理判断——session 是新建的不代表 app 没初始化过。
87
+
88
+ ### 判定规则
89
+
90
+ **已初始化**(满足任一即认为已初始化):
91
+
92
+ 1. 本地存在该 app 的项目目录(已 `+init` 或 clone 过),**且** git commit 数 > 2;
93
+ 2. 应用维度(云端)至少有一个已提交的版本,按以下任一信号判断:
94
+ - `lark-cli apps +session-get --app-id <app_id> --session-id <session_id>` 的返回里出现已提交版本信息;
95
+ - 在 `lark-cli apps +list`(必要时配 `--keyword <name>` 定位)的目标 app 条目里 `is_published: true`。
96
+
97
+ **未初始化**(两个条件同时成立):
98
+
99
+ 1. 本地不存在该 app 的项目目录;
100
+ 2. 应用维度没有任何已提交版本(即上面两路云端信号都判 false)。
101
+
102
+ ### 两种 `+chat` 的行为
103
+
104
+ | 状态 | 服务端动作 | 单轮耗时 | 轮询建议 |
105
+ |---|---|---|---|
106
+ | 已初始化 → **增量修改** | 云端 Agent 在已有云端工作区上对**已提交代码**做局部修改,跳过方案设计与首次生成 | 通常分钟级 | `next_poll_after_ms` 为空时 5-10 秒一次 |
107
+ | 未初始化 → **首次初始化 + 生成** | 服务端跑完整的应用初始化流程:需求分析、技术方案、数据模型、UI 与后端代码生成、首版代码提交到云端工作区 | 视需求复杂度,**通常 20~50 分钟** | `next_poll_after_ms` 为空时 60-120 秒一次 |
108
+
109
+ 初始化阶段 `+session-get` 可能长时间持续返回 `building` / `running`,是正常状态,**不要按失败处理,也不要催用户**。
110
+
111
+ ## 字段注意
112
+
113
+ 所有字段统一 snake_case,顶层和嵌套 turn 字段都一样:`session_id`、`is_active`、`is_streaming`、`next_poll_after_ms`、`latest_turn.turn_id`、`latest_turn.status`、`latest_turn.user_message`、`latest_turn.messages`。
114
+
115
+ `+session-stop` 只停止正在运行的当前轮,不关闭会话;停完仍可继续 `+chat`。
116
+
117
+ ## 不适用
118
+
119
+ - 用户已有本地 HTML/dist,要马上发布 URL:读 [`lark-apps-html-publish.md`](lark-apps-html-publish.md)。
120
+ - 用户要本地写代码、改仓库、跑 dev server:读 [`lark-apps-local-dev.md`](lark-apps-local-dev.md)。
@@ -0,0 +1,40 @@
1
+ # apps +create
2
+
3
+ 创建妙搭应用。运行时命令事实以 `lark-cli apps +create --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 用来创建应用资产并拿到 `app_id`。它不负责把自然语言需求交给云端 Agent:用户要“帮我生成/迭代应用”时,先创建 `full_stack` app,再进入 [`lark-apps-cloud-dev.md`](lark-apps-cloud-dev.md) 用 `+session-create` / `+chat` 提交需求。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--name`、`--app-type`。
12
+ - app type 语义取值为 `html` / `full_stack`;CLI 会把输入归一成小写后校验。
13
+ - 可选:`--description`、`--icon-url`。
14
+
15
+ ## 示例
16
+
17
+ ```bash
18
+ lark-cli apps +create --name "客户调研问卷" --app-type html
19
+
20
+ lark-cli apps +create --name "审批系统" --app-type full_stack \
21
+ --description "部门审批系统,支持登录、提交申请、多级审批"
22
+
23
+ lark-cli apps +create --name "Demo" --app-type html --dry-run
24
+ ```
25
+
26
+ ## 输出契约
27
+
28
+ - 成功默认 JSON envelope 中读取 `data.app.app_id`,同时可用 `data.app.name` / `description` 向用户确认结果。
29
+ - pretty 输出只适合人看;后续命令需要 app_id 时,用 JSON 或 `--jq '.data.app.app_id'`。
30
+
31
+ ## app type 与命名
32
+
33
+ - `--app-type` 取值与判定信号见 SKILL.md「选择开发路径」,此处不重复。
34
+ - 用户只给自然语言需求时,据此生成简洁的 `--name` 和一句 `--description` 直接创建;不满意再用 `+update` 改。
35
+
36
+ 创建后按用户路径继续:
37
+
38
+ - 发布现成 HTML/静态目录:读 [`lark-apps-html-publish.md`](lark-apps-html-publish.md)。
39
+ - 本地全栈开发:读 [`lark-apps-local-dev.md`](lark-apps-local-dev.md)。
40
+ - 云端 Agent 生成/迭代:读 [`lark-apps-cloud-dev.md`](lark-apps-cloud-dev.md)。
@@ -0,0 +1,31 @@
1
+ # apps +db-env-create
2
+
3
+ 把存量单库应用初始化为 `dev` / `online` 多环境数据库。运行时命令事实以 `lark-cli apps +db-env-create --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 仅用于存量单库应用需要拆成 `dev` / `online` 两套数据库的场景。普通查看表、查 schema、执行 SQL 不需要先初始化。注意:通过 `+create --app-type full_stack` 新建的应用通常已自带多环境,无需再初始化(重复初始化会返回「已初始化」错误)。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--app-id`。
12
+ - `--env`:要创建的环境,由调用方传入,目前只支持 `dev`(默认 `dev`)。
13
+ - `--sync-data`:bool 开关,传 `--sync-data` 则把现有 online 数据复制到新环境;不传则不复制(默认)。
14
+ - risk 是 `high-risk-write`;单库拆成 dev/online 后不可逆。
15
+
16
+ ## 示例
17
+
18
+ ```bash
19
+ lark-cli apps +db-env-create --app-id app_xxx --env dev --dry-run
20
+ lark-cli apps +db-env-create --app-id app_xxx --env dev --sync-data --yes
21
+ ```
22
+
23
+ ## 输出契约
24
+
25
+ - 成功读取 `data.status`、`data.environments`、`data.data_synced`;pretty 会提示是否初始化、多环境列表、是否同步数据。
26
+ - 未确认时返回 `confirmation_required` / exit 10;按 lark-shared 询问用户后再补 `--yes` 重试。
27
+ - 如果服务端提示已启用多环境(`Multi-env is already initialized`),转述状态即可,不要重复初始化。
28
+
29
+ ## Agent 规则
30
+
31
+ 不要静默追加 `--yes`。遇到 confirmation_required 时,按 `lark-shared` 的 exit-10 协议向用户确认不可逆风险;用户明确同意后才在原 argv 末尾追加 `--yes` 重试。
@@ -0,0 +1,40 @@
1
+ # apps +db-execute
2
+
3
+ 经妙搭服务端在应用数据库执行 SQL。运行时命令事实以 `lark-cli apps +db-execute --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 用于通过妙搭服务端执行应用数据库 SQL。不要从环境变量里取连接串裸连数据库;本地调试也走这个 shortcut。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--app-id`,以及 `--sql` / `--file` 二选一(互斥)。
12
+ - `--sql`:内联 SQL 文本;传 `-` 时从 stdin 读。绝对路径文件经 stdin 传入:`--sql - < <absolute-path>`(shell 解析路径,CLI 仅接收内容)。
13
+ - `--file`:`.sql` 文件路径,需为工作目录内的相对路径(如 `--file ./migration.sql`);绝对路径、或经 `..`/符号链接越出工作目录的路径会被拒绝。文件不在工作目录内时,改用 `--sql - < <文件路径>` 经 stdin 传入。
14
+ - `--env` 枚举:`dev` / `online`,**默认 `dev`**;需要操作线上环境数据库时,显式指定 `--env online`。
15
+ - risk 是 `high-risk-write`(SQL 可含 DML/DDL):任何执行都需 `--yes`,否则返回 `confirmation_required` / exit 10。`--dry-run` 预览不需要 `--yes`。
16
+ - CLI 永远传 `transactional=false`;不默认包事务。
17
+
18
+ ## 示例
19
+
20
+ ```bash
21
+ lark-cli apps +db-execute --app-id app_xxx --env dev --sql "select * from orders limit 5" --yes
22
+ lark-cli apps +db-execute --app-id app_xxx --env dev --file ./migration.sql --dry-run
23
+ # 绝对路径文件 / cwd 不固定:经 stdin 传入
24
+ lark-cli apps +db-execute --app-id app_xxx --env dev --sql - --yes < /Users/.../migrations/0001_init.sql
25
+ ```
26
+
27
+ ## 输出契约
28
+
29
+ - 成功默认 JSON 读取 `data.results[]`;每个元素对应一条 SQL,常见字段有 `sql_type`、`data`、`record_count`、`affected_rows`。
30
+ - pretty 会按 SELECT/DML/DDL 自适应渲染;多语句会逐条显示 Statement 摘要。
31
+ - 失败可能仍有前序语句已执行;此时 stdout 输出 `ok:false` 的 envelope(exit 非 0),从 `data` 读 `results[]`(全部逐条结果,失败语句 `sql_type` 为 `ERROR`)、`statement_index`、`error_code`、`error_message`、`rolled_back` 和 `note`,决定从哪条继续。
32
+
33
+ ## Agent 规则
34
+
35
+ - 该命令为 high-risk-write,执行一律需 `--yes`;无 `--yes` 会返回 `confirmation_required` / exit 10。
36
+ - **只读查询、以及不删除/不丢失既有数据且可撤回的语句**:已授权时可直接带 `--yes` 执行。
37
+ - **会删除或丢失既有数据、或难以撤回的语句**:先 `--dry-run` 预览(无需 `--yes`),向用户确认后再带 `--yes` 执行;不要在用户不知情时自动补 `--yes`。
38
+ - 多语句失败时,失败前的语句可能已经 auto-commit。不要整批重跑;按错误 detail/hint 修失败语句,并从剩余语句继续。
39
+ - 如果需要原子性,让用户在 SQL 内显式写 `BEGIN` / `COMMIT`,不要假设 CLI 会包事务。
40
+ - 不要把数据库连接串从 env 中取出来裸连。
@@ -0,0 +1,29 @@
1
+ # apps +db-table-get
2
+
3
+ 查看妙搭应用数据库某张表的结构。运行时命令事实以 `lark-cli apps +db-table-get --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 用于查看已知表的字段、索引、约束,或给 SQL/迁移生成提供依据。只想知道有哪些表时先 `+db-table-list`。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--app-id`、`--table`。
12
+ - `--env` 枚举:`dev` / `online`,默认 `online`。
13
+ - `--format pretty` 会向服务端请求 DDL,并直接输出 DDL 文本;默认 JSON 返回结构化 columns/indexes/constraints/stats。
14
+
15
+ ## 示例
16
+
17
+ ```bash
18
+ lark-cli apps +db-table-get --app-id app_xxx --table orders
19
+ lark-cli apps +db-table-get --app-id app_xxx --table orders --env dev --format pretty
20
+ ```
21
+
22
+ ## 输出契约
23
+
24
+ - 默认 JSON 读取 `data.name`、`columns`、`indexes`、`constraints`、`estimated_row_count`、`size_bytes`。
25
+ - `--format pretty` stdout 是服务端返回的 DDL 文本,不是 JSON envelope;需要建表语句时可原样给用户。
26
+
27
+ ## Agent 规则
28
+
29
+ 需要给用户看建表语句或迁移参照时用 `--format pretty`;需要程序化分析字段/索引/约束时保留默认 JSON。
@@ -0,0 +1,31 @@
1
+ # apps +db-table-list
2
+
3
+ 列出妙搭应用某个数据库环境的数据表。运行时命令事实以 `lark-cli apps +db-table-list --help` 为准。
4
+
5
+ ## 何时用
6
+
7
+ 用于先摸清应用数据库里有哪些表,或在用户只给业务对象名时定位可能的表名。已知表名且要字段/索引时直接用 `+db-table-get`。
8
+
9
+ ## 命令骨架
10
+
11
+ - 必填:`--app-id`。
12
+ - `--env` 枚举:`dev` / `online`,默认 `online`。
13
+ - 分页:`--page-size` 默认 20,`--page-token` 使用上一页 cursor。
14
+ - pretty 输出列包含 `name`、`description`、`estimated_row_count`、`size`、`columns`(列数)。
15
+
16
+ ## 示例
17
+
18
+ ```bash
19
+ lark-cli apps +db-table-list --app-id app_xxx
20
+ lark-cli apps +db-table-list --app-id app_xxx --env dev --page-size 50
21
+ ```
22
+
23
+ ## 输出契约
24
+
25
+ - 成功读取 `data.items[]`;每项字段是 `name`、`description`、`estimated_row_count`、`size_bytes`、`column_count`(列数)。CLI 默认不透出每表完整 `columns[]`(与 `+db-table-get` 重复且放大 token),只给 `column_count`;要完整列定义/索引/约束用 `+db-table-get`。
26
+ - pretty 输出是 5 列扫描表:`name`、`description`、`estimated_row_count`、`size`、`columns`(即列数)。
27
+ - 若响应带 `has_more=true`,用返回的 `page_token` / `next_page_token` 翻页。
28
+
29
+ ## Agent 规则
30
+
31
+ 用户说“本地/开发库/调试库”时优先 `--env dev`;线上问题排查用 `--env online`。如果 dev 返回服务端错误提示未初始化,多环境入口是 [`+db-env-create`](lark-apps-db-env-create.md)。
@@ -0,0 +1,35 @@
1
+ # apps +env-pull
2
+
3
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md)(认证 / 全局参数 / 安全)。
4
+
5
+ 把妙搭应用的启动期环境变量拉取到本地项目根的 `.env.local`。身份固定 `--as user`;scope `spark:app:read`。`--app-id` 必填,目标项目根默认当前工作目录(`--project-path` 可指定)。
6
+
7
+ ## 何时别用(核心反模式)
8
+
9
+ **通常不需要手动跑**——脚手架的 `npm run dev` 在起本地开发时会自动后台拉取(非阻塞)。手动再跑会重复做同样的事,并把用户刚改完的 `.env.local` 临时改动覆盖掉。
10
+
11
+ 只在这些兜底场景用:
12
+
13
+ - 不通过 `npm run dev` 启动(直接跑 `node` / IDE debug)。
14
+ - `.env.local` 被改坏 / 删除,想重新同步。
15
+
16
+ ## 行为
17
+
18
+ - **合并、不清空**:写入 `.env.local` 时保留你手写的内容与注释——命中的 key 替换值,新 key 追加,不整体覆盖。
19
+ - **安全护栏**:返回的 envelope **不会回显任何 env key / value**(防止 token / 数据库凭据泄漏到日志或 CI 输出)。要看实际值请直接读 `.env.local`。
20
+
21
+ ## 示例
22
+
23
+ ```bash
24
+ lark-cli apps +env-pull --app-id app_xxx
25
+ ```
26
+
27
+ ## 失败处理
28
+
29
+ `missing_scope`(没拿到 `spark:app:read`)时,按 lark-shared 引导 `lark-cli auth login --domain apps`。其余失败优先转述 `error.hint` / `error.message`。
30
+
31
+ ## 参考
32
+
33
+ - [lark-apps](../SKILL.md) — 妙搭应用全部命令 + 心智模型
34
+ - [lark-apps-local-dev](lark-apps-local-dev.md) — 本地全栈开发端到端流程
35
+ - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
@@ -0,0 +1,37 @@
1
+ # apps Git credential
2
+
3
+ 妙搭 Git 凭证用于本地原生 `git clone/pull/push`。运行时命令事实以 `lark-cli apps +git-credential-init --help`、`+git-credential-list --help`、`+git-credential-remove --help` 为准。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ lark-cli apps +git-credential-init --app-id app_xxx
9
+ lark-cli apps +git-credential-list
10
+ lark-cli apps +git-credential-remove --app-id app_xxx
11
+ ```
12
+
13
+ ## 输出契约
14
+
15
+ - `+git-credential-init` 成功后读取 `data.repository_url`;不要展示或保存其中的凭据细节,只用于下一步 `git clone`。
16
+ - `+git-credential-list` 返回本地记录和状态;可用来判断是否需要重新 init。
17
+ - `+git-credential-remove` 只清本地配置;成功后告知不会删除云端应用或仓库。
18
+
19
+ ## 行为规则
20
+
21
+ - `+git-credential-init` 返回 `repository_url`,并配置 URL-scoped Git credential helper。后续 clone/pull/push 使用原生 git。
22
+ - `+git-credential-list` 列出本地已配置的妙搭 Git 凭证,不需要 `--app-id`。
23
+ - `+git-credential-remove` 只移除本地凭证/helper,不删除云端应用或仓库。
24
+ - 看到 Repository URL 后继续:
25
+
26
+ ```bash
27
+ git clone <repository_url>
28
+ cd <repo>
29
+ git checkout sprint/default
30
+ ```
31
+
32
+ ## Agent 规则
33
+
34
+ - 不要手动打印、保存或拼接 token。
35
+ - clone、pull、push、diff、log 等代码仓库操作都使用原生 `git`;不存在 `apps +pull` / `apps +push` / `apps code +read` 这类代码读写 shortcut,不要臆造。
36
+ - 不要 push/force-push `main`;`main` 是发布态快照,由 `apps +release-create` 成功后服务端推进,直推/force-push 会被服务端护栏拒绝。
37
+ - Git 认证失败、本地凭证损坏或 helper 缺失时,重新执行 `+git-credential-init --app-id <id>` 覆盖本地配置;不要让用户复制 token 到 remote URL。