@fectivnfy112358/minimax-code-web 0.1.0-preview.0 → 0.1.0-preview.3

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 (656) hide show
  1. package/bin/mcode-webui.mjs +6 -2
  2. package/package.json +1 -1
  3. package/server/assets/agents/_default/prompt-base-all.md +121 -0
  4. package/server/assets/agents/_default/prompt-base-all.md.hbs +255 -0
  5. package/server/assets/agents/_default/prompt-base-windows.md +6 -0
  6. package/server/assets/agents/_default/prompt-base-windows.md.hbs +6 -0
  7. package/server/assets/agents/_default/prompt-base-worker.md +12 -0
  8. package/server/assets/agents/_default/prompt-base-worker.md.hbs +27 -0
  9. package/server/assets/agents/_default/prompt-session-branch.md +3 -0
  10. package/server/assets/agents/_default/prompt-session-branch.md.hbs +30 -0
  11. package/server/assets/agents/_default/prompt-session-root.md +4 -0
  12. package/server/assets/agents/_default/prompt-session-root.md.hbs +32 -0
  13. package/server/assets/agents/_migration/README.md +20 -0
  14. package/server/assets/agents/_migration/coder/PERSONA-zh.md +10 -0
  15. package/server/assets/agents/_migration/coder/PERSONA.md +11 -0
  16. package/server/assets/agents/_migration/coder/system-prompt.md.hbs +42 -0
  17. package/server/assets/agents/_migration/general/PERSONA-zh.md +11 -0
  18. package/server/assets/agents/_migration/general/PERSONA.md +11 -0
  19. package/server/assets/agents/_migration/general/system-prompt.md.hbs +49 -0
  20. package/server/assets/agents/_v2/AGENT_CONTEXT.md.hbs +222 -0
  21. package/server/assets/agents/_v2/coding/SYSTEM.md.hbs +161 -0
  22. package/server/assets/agents/_v2/explore.md.hbs +38 -0
  23. package/server/assets/agents/_v2/tui/SYSTEM.md.hbs +147 -0
  24. package/server/assets/agents/_v2/verifier.md.hbs +32 -0
  25. package/server/assets/agents/_v2/work/SYSTEM.md.hbs +173 -0
  26. package/server/assets/agents/_v2/worker.md.hbs +27 -0
  27. package/server/assets/agents/builtin-agents.json +1 -0
  28. package/server/assets/agents/desktop-task/archive-title/system-en.md +1 -0
  29. package/server/assets/agents/desktop-task/archive-title/system-zh.md +1 -0
  30. package/server/assets/agents/desktop-task/checkpoint/system.md +15 -0
  31. package/server/assets/agents/desktop-task/output-revision/system.md +1 -0
  32. package/server/assets/agents/desktop-task/retry/continuation.md +4 -0
  33. package/server/assets/agents/desktop-task/session-title/system.md +41 -0
  34. package/server/assets/agents/explore/PERSONA-zh.md +8 -0
  35. package/server/assets/agents/explore/PERSONA.md +8 -0
  36. package/server/assets/agents/explore/agent.md +14 -0
  37. package/server/assets/agents/explore/system-prompt.md.hbs +35 -0
  38. package/server/assets/agents/greeting-zh.md +61 -0
  39. package/server/assets/agents/greeting.md +61 -0
  40. package/server/assets/agents/managed-prompts.json +54 -0
  41. package/server/assets/agents/mavis/PERSONA-zh.md +7 -0
  42. package/server/assets/agents/mavis/PERSONA.md +7 -0
  43. package/server/assets/agents/mavis/features/cron.md.hbs +23 -0
  44. package/server/assets/agents/mavis/features/delegation.md.hbs +56 -0
  45. package/server/assets/agents/mavis/features/memory.md.hbs +61 -0
  46. package/server/assets/agents/mavis/features/recoverable-deletion.md.hbs +10 -0
  47. package/server/assets/agents/mavis/features/task-management.md.hbs +11 -0
  48. package/server/assets/agents/mavis/features/web-search.md.hbs +11 -0
  49. package/server/assets/agents/mavis/modes/coding/online/PERSONA-zh.md.hbs +20 -0
  50. package/server/assets/agents/mavis/modes/coding/online/PERSONA.md.hbs +20 -0
  51. package/server/assets/agents/mavis/modes/coding/online/SYSTEM.md.hbs +159 -0
  52. package/server/assets/agents/mavis/modes/work/online/PERSONA-zh.md.hbs +20 -0
  53. package/server/assets/agents/mavis/modes/work/online/PERSONA.md.hbs +20 -0
  54. package/server/assets/agents/mavis/modes/work/online/SYSTEM.md.hbs +161 -0
  55. package/server/assets/agents/mavis/prompt-session-root.md +4 -0
  56. package/server/assets/agents/mavis/prompt-session-root.md.hbs +4 -0
  57. package/server/assets/agents/mavis/skills/control-in-app-browser/SKILL.md +491 -0
  58. package/server/assets/agents/mavis/skills/minimax-code-product/SKILL.md +114 -0
  59. package/server/assets/agents/mavis/skills/minimax-code-product/references/account-models.md +32 -0
  60. package/server/assets/agents/mavis/skills/minimax-code-product/references/agents.md +25 -0
  61. package/server/assets/agents/mavis/skills/minimax-code-product/references/extensions.md +33 -0
  62. package/server/assets/agents/mavis/skills/minimax-code-product/references/workflows.md +30 -0
  63. package/server/assets/agents/mavis/system-prompt.md.hbs +97 -0
  64. package/server/assets/agents/prompt-exemptions.json +38 -0
  65. package/server/assets/agents/verifier/PERSONA-zh.md +8 -0
  66. package/server/assets/agents/verifier/PERSONA.md +8 -0
  67. package/server/assets/agents/verifier/agent.md +17 -0
  68. package/server/assets/agents/verifier/system-prompt.md.hbs +28 -0
  69. package/server/assets/agents/worker/PERSONA-zh.md +8 -0
  70. package/server/assets/agents/worker/PERSONA.md +8 -0
  71. package/server/assets/agents/worker/agent.md +18 -0
  72. package/server/assets/agents/worker/system-prompt.md.hbs +22 -0
  73. package/server/assets/agents/workflow/code-review/review-candidates.md +120 -0
  74. package/server/assets/agents/workflow/code-review/reviewer-system.md +75 -0
  75. package/server/assets/agents/workflow/goal/budget-limit.md +16 -0
  76. package/server/assets/agents/workflow/goal/continuation.md +62 -0
  77. package/server/assets/agents/workflow/goal/objective-updated.md +16 -0
  78. package/server/assets/agents/workflow/goal/recovery-terminal-audit.md +12 -0
  79. package/server/assets/agents/workflow/goal/recovery.md +11 -0
  80. package/server/assets/agents/workflow/goal/terminal-audit.md +9 -0
  81. package/server/assets/agents/workflow/plan-mode/agent-entry.md +72 -0
  82. package/server/assets/agents/workflow/prompt-hook/system.md +0 -0
  83. package/server/assets/models-dev-catalog.json.gz +0 -0
  84. package/server/assets/prompts/code-review/review-candidates.md +120 -0
  85. package/server/assets/prompts/code-review/reviewer-system.md +75 -0
  86. package/server/assets/skills/code-review/SKILL.md +51 -0
  87. package/server/assets/skills/cu-desktop/SKILL.md +257 -0
  88. package/server/assets/skills/deep-research/SKILL.md +219 -0
  89. package/server/assets/skills/deep-research/scripts/render_plan.py +33 -0
  90. package/server/assets/skills/deep-research/steps/1_background.md +65 -0
  91. package/server/assets/skills/deep-research/steps/2_judgment.md +66 -0
  92. package/server/assets/skills/deep-research/steps/3_analysis.md +114 -0
  93. package/server/assets/skills/deep-research/steps/4_research.md +161 -0
  94. package/server/assets/skills/deep-research/steps/5_writing.md +358 -0
  95. package/server/assets/skills/deploy-website/SKILL.md +55 -0
  96. package/server/assets/skills/docx/LICENSE +21 -0
  97. package/server/assets/skills/docx/SKILL.md +261 -0
  98. package/server/assets/skills/docx/assets/styles/academic_styles.xml +250 -0
  99. package/server/assets/skills/docx/assets/styles/corporate_styles.xml +284 -0
  100. package/server/assets/skills/docx/assets/styles/default_styles.xml +449 -0
  101. package/server/assets/skills/docx/assets/xsd/aesthetic-rules.xsd +470 -0
  102. package/server/assets/skills/docx/assets/xsd/business-rules.xsd +130 -0
  103. package/server/assets/skills/docx/assets/xsd/common-types.xsd +159 -0
  104. package/server/assets/skills/docx/assets/xsd/wml-subset.xsd +589 -0
  105. package/server/assets/skills/docx/docs/acceptance-checklists/create.md +7 -0
  106. package/server/assets/skills/docx/docs/acceptance-checklists/edit.md +6 -0
  107. package/server/assets/skills/docx/docs/acceptance-checklists/layout-repair.md +7 -0
  108. package/server/assets/skills/docx/docs/acceptance-checklists/template.md +6 -0
  109. package/server/assets/skills/docx/docs/acceptance.md +139 -0
  110. package/server/assets/skills/docx/docs/anti-patterns.md +14 -0
  111. package/server/assets/skills/docx/docs/backends.md +116 -0
  112. package/server/assets/skills/docx/docs/evidence.md +73 -0
  113. package/server/assets/skills/docx/docs/failure-taxonomy.md +71 -0
  114. package/server/assets/skills/docx/docs/index.md +50 -0
  115. package/server/assets/skills/docx/docs/rendered-delivery.md +125 -0
  116. package/server/assets/skills/docx/docs/router.md +122 -0
  117. package/server/assets/skills/docx/docs/tables-and-numbering.md +27 -0
  118. package/server/assets/skills/docx/docs/task-apply-template.md +141 -0
  119. package/server/assets/skills/docx/docs/task-compare-two-docx.md +48 -0
  120. package/server/assets/skills/docx/docs/task-create.md +124 -0
  121. package/server/assets/skills/docx/docs/task-edit-fill.md +69 -0
  122. package/server/assets/skills/docx/docs/task-read-content.md +148 -0
  123. package/server/assets/skills/docx/docs/task-read-rendered.md +78 -0
  124. package/server/assets/skills/docx/docs/task-read-structure.md +93 -0
  125. package/server/assets/skills/docx/docs/task-repair-layout.md +70 -0
  126. package/server/assets/skills/docx/docs/template-dsl.md +32 -0
  127. package/server/assets/skills/docx/docs/track-changes.md +15 -0
  128. package/server/assets/skills/docx/docs/xml-patch-dsl.md +33 -0
  129. package/server/assets/skills/docx/references/cjk_typography.md +357 -0
  130. package/server/assets/skills/docx/references/cjk_university_template_guide.md +184 -0
  131. package/server/assets/skills/docx/references/comments_guide.md +191 -0
  132. package/server/assets/skills/docx/references/design_good_bad_examples.md +829 -0
  133. package/server/assets/skills/docx/references/design_principles.md +819 -0
  134. package/server/assets/skills/docx/references/openxml_element_order.md +308 -0
  135. package/server/assets/skills/docx/references/openxml_encyclopedia_part1.md +4061 -0
  136. package/server/assets/skills/docx/references/openxml_encyclopedia_part2.md +2820 -0
  137. package/server/assets/skills/docx/references/openxml_encyclopedia_part3.md +3381 -0
  138. package/server/assets/skills/docx/references/openxml_namespaces.md +82 -0
  139. package/server/assets/skills/docx/references/openxml_units.md +72 -0
  140. package/server/assets/skills/docx/references/sample-patch-plans.json +22 -0
  141. package/server/assets/skills/docx/references/sample-task-intents.json +5 -0
  142. package/server/assets/skills/docx/references/sample-template-manifests.json +21 -0
  143. package/server/assets/skills/docx/references/scenario_a_create.md +284 -0
  144. package/server/assets/skills/docx/references/scenario_b_edit_content.md +295 -0
  145. package/server/assets/skills/docx/references/scenario_c_apply_template.md +456 -0
  146. package/server/assets/skills/docx/references/track_changes_guide.md +200 -0
  147. package/server/assets/skills/docx/references/troubleshooting.md +506 -0
  148. package/server/assets/skills/docx/references/typography_guide.md +294 -0
  149. package/server/assets/skills/docx/references/xsd_validation_guide.md +158 -0
  150. package/server/assets/skills/docx/scripts/build_patch_plan.py +29 -0
  151. package/server/assets/skills/docx/scripts/diff_docx_structure.py +61 -0
  152. package/server/assets/skills/docx/scripts/doc_to_docx.ps1 +85 -0
  153. package/server/assets/skills/docx/scripts/doc_to_docx.sh +40 -0
  154. package/server/assets/skills/docx/scripts/docx_preview.ps1 +76 -0
  155. package/server/assets/skills/docx/scripts/docx_preview.sh +37 -0
  156. package/server/assets/skills/docx/scripts/docx_to_pdf.py +87 -0
  157. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
  158. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  159. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  160. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  161. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  162. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  163. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  164. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  165. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  166. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  167. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
  168. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  169. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  170. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  171. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  172. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  173. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  174. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  175. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  176. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  177. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  178. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  179. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  180. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  181. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  182. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  183. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  184. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  185. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  186. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  187. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  188. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  189. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  190. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  191. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  192. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  193. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  194. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  195. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  196. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  197. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  198. package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  199. package/server/assets/skills/docx/scripts/env_check.ps1 +327 -0
  200. package/server/assets/skills/docx/scripts/env_check.sh +340 -0
  201. package/server/assets/skills/docx/scripts/extract_docx_text.py +1075 -0
  202. package/server/assets/skills/docx/scripts/pack_docx.py +31 -0
  203. package/server/assets/skills/docx/scripts/read_docx_structure.py +1032 -0
  204. package/server/assets/skills/docx/scripts/render_docx_pages.py +147 -0
  205. package/server/assets/skills/docx/scripts/rendered_report.py +609 -0
  206. package/server/assets/skills/docx/scripts/setup.ps1 +542 -0
  207. package/server/assets/skills/docx/scripts/setup.sh +537 -0
  208. package/server/assets/skills/docx/scripts/unpack_docx.py +29 -0
  209. package/server/assets/skills/docx/scripts/validate_template_manifest.py +60 -0
  210. package/server/assets/skills/docx/scripts/verify_anchor_atomicity.py +87 -0
  211. package/server/assets/skills/edit-deployed-website/SKILL.md +27 -0
  212. package/server/assets/skills/init/SKILL.md +137 -0
  213. package/server/assets/skills/lark-tools/SKILL.md +321 -0
  214. package/server/assets/skills/lark-tools/cli-skills/lark-approval/SKILL.md +48 -0
  215. package/server/assets/skills/lark-tools/cli-skills/lark-attendance/SKILL.md +57 -0
  216. package/server/assets/skills/lark-tools/cli-skills/lark-base/SKILL.md +372 -0
  217. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/dashboard-block-data-config.md +350 -0
  218. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/examples.md +130 -0
  219. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/formula-field-guide.md +735 -0
  220. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-advperm-disable.md +83 -0
  221. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-advperm-enable.md +80 -0
  222. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-base-copy.md +74 -0
  223. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-base-create.md +68 -0
  224. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-base-get.md +39 -0
  225. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-arrange.md +83 -0
  226. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-create.md +108 -0
  227. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
  228. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-get.md +57 -0
  229. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-list.md +53 -0
  230. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-update.md +84 -0
  231. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-create.md +73 -0
  232. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-delete.md +44 -0
  233. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-get.md +59 -0
  234. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-list.md +52 -0
  235. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-update.md +69 -0
  236. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard.md +240 -0
  237. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-data-query.md +375 -0
  238. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-create.md +104 -0
  239. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-delete.md +51 -0
  240. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-get.md +42 -0
  241. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-list.md +44 -0
  242. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-search-options.md +48 -0
  243. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-update.md +97 -0
  244. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field.md +22 -0
  245. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-create.md +87 -0
  246. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-delete.md +64 -0
  247. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-get.md +68 -0
  248. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-list.md +73 -0
  249. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-create.md +118 -0
  250. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-delete.md +68 -0
  251. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-list.md +84 -0
  252. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-update.md +92 -0
  253. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions.md +23 -0
  254. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-update.md +82 -0
  255. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form.md +24 -0
  256. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-history.md +16 -0
  257. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-batch-create.md +76 -0
  258. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-batch-update.md +71 -0
  259. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-delete.md +51 -0
  260. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-get.md +38 -0
  261. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-history-list.md +86 -0
  262. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-list.md +83 -0
  263. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-search.md +72 -0
  264. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-upload-attachment.md +51 -0
  265. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-upsert.md +89 -0
  266. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record.md +28 -0
  267. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-create.md +89 -0
  268. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-delete.md +83 -0
  269. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-get.md +87 -0
  270. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-list.md +81 -0
  271. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-update.md +94 -0
  272. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-shortcut-field-properties.md +679 -0
  273. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-shortcut-record-value.md +200 -0
  274. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-create.md +62 -0
  275. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-delete.md +51 -0
  276. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-get.md +46 -0
  277. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-list.md +43 -0
  278. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-update.md +49 -0
  279. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table.md +20 -0
  280. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-create.md +83 -0
  281. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-delete.md +48 -0
  282. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-card.md +38 -0
  283. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-filter.md +38 -0
  284. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-group.md +38 -0
  285. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-sort.md +38 -0
  286. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-timebar.md +38 -0
  287. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-visible-fields.md +38 -0
  288. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get.md +38 -0
  289. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-list.md +44 -0
  290. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-rename.md +44 -0
  291. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-card.md +81 -0
  292. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-filter.md +92 -0
  293. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-group.md +77 -0
  294. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-sort.md +77 -0
  295. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-timebar.md +79 -0
  296. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-visible-fields.md +73 -0
  297. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view.md +44 -0
  298. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-create.md +180 -0
  299. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-disable.md +94 -0
  300. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-enable.md +94 -0
  301. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-get.md +147 -0
  302. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-guide.md +718 -0
  303. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-list.md +123 -0
  304. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-schema.md +935 -0
  305. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-update.md +167 -0
  306. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow.md +23 -0
  307. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workspace.md +18 -0
  308. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lookup-field-guide.md +508 -0
  309. package/server/assets/skills/lark-tools/cli-skills/lark-base/references/role-config.md +532 -0
  310. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/SKILL.md +143 -0
  311. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
  312. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-create.md +109 -0
  313. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
  314. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-room-find.md +89 -0
  315. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
  316. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-schedule-meeting.md +194 -0
  317. package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
  318. package/server/assets/skills/lark-tools/cli-skills/lark-contact/SKILL.md +23 -0
  319. package/server/assets/skills/lark-tools/cli-skills/lark-contact/references/lark-contact-get-user.md +47 -0
  320. package/server/assets/skills/lark-tools/cli-skills/lark-contact/references/lark-contact-search-user.md +39 -0
  321. package/server/assets/skills/lark-tools/cli-skills/lark-doc/SKILL.md +189 -0
  322. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-create.md +673 -0
  323. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-fetch.md +120 -0
  324. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-media-download.md +50 -0
  325. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-media-insert.md +51 -0
  326. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-media-preview.md +41 -0
  327. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-search.md +213 -0
  328. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-update.md +264 -0
  329. package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-whiteboard-update.md +6 -0
  330. package/server/assets/skills/lark-tools/cli-skills/lark-drive/SKILL.md +294 -0
  331. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-add-comment.md +99 -0
  332. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-create-folder.md +73 -0
  333. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  334. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-delete.md +79 -0
  335. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-download.md +31 -0
  336. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-export-download.md +50 -0
  337. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-export.md +100 -0
  338. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-import.md +132 -0
  339. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-move.md +120 -0
  340. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-reactions.md +113 -0
  341. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-task-result.md +264 -0
  342. package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-upload.md +67 -0
  343. package/server/assets/skills/lark-tools/cli-skills/lark-event/SKILL.md +21 -0
  344. package/server/assets/skills/lark-tools/cli-skills/lark-event/references/lark-event-subscribe.md +217 -0
  345. package/server/assets/skills/lark-tools/cli-skills/lark-im/SKILL.md +140 -0
  346. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-create.md +156 -0
  347. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-identity.md +55 -0
  348. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-messages-list.md +142 -0
  349. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-search.md +114 -0
  350. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-update.md +84 -0
  351. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-mget.md +95 -0
  352. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-reply.md +222 -0
  353. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
  354. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-search.md +213 -0
  355. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-send.md +223 -0
  356. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-reactions.md +297 -0
  357. package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-threads-messages-list.md +111 -0
  358. package/server/assets/skills/lark-tools/cli-skills/lark-mail/SKILL.md +550 -0
  359. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-draft-create.md +110 -0
  360. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-draft-edit.md +376 -0
  361. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-forward.md +208 -0
  362. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-message.md +201 -0
  363. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-messages.md +108 -0
  364. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-reply-all.md +184 -0
  365. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-reply.md +220 -0
  366. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-send.md +178 -0
  367. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-signature.md +98 -0
  368. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-thread.md +111 -0
  369. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-triage.md +122 -0
  370. package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-watch.md +94 -0
  371. package/server/assets/skills/lark-tools/cli-skills/lark-minutes/SKILL.md +116 -0
  372. package/server/assets/skills/lark-tools/cli-skills/lark-minutes/references/lark-minutes-download.md +119 -0
  373. package/server/assets/skills/lark-tools/cli-skills/lark-minutes/references/lark-minutes-search.md +180 -0
  374. package/server/assets/skills/lark-tools/cli-skills/lark-openapi-explorer/SKILL.md +153 -0
  375. package/server/assets/skills/lark-tools/cli-skills/lark-shared/SKILL.md +141 -0
  376. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/SKILL.md +262 -0
  377. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-add-dimension.md +51 -0
  378. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-append.md +56 -0
  379. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-batch-set-style.md +53 -0
  380. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-create-filter-view-condition.md +42 -0
  381. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-create-filter-view.md +42 -0
  382. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-create.md +69 -0
  383. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-dimension.md +53 -0
  384. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-dropdown.md +46 -0
  385. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-filter-view-condition.md +26 -0
  386. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-filter-view.md +25 -0
  387. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-export.md +51 -0
  388. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-find.md +62 -0
  389. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-formula.md +89 -0
  390. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-get-dropdown.md +43 -0
  391. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-get-filter-view-condition.md +27 -0
  392. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-get-filter-view.md +26 -0
  393. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-info.md +43 -0
  394. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-insert-dimension.md +51 -0
  395. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-list-filter-view-conditions.md +28 -0
  396. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-list-filter-views.md +26 -0
  397. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-merge-cells.md +47 -0
  398. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-move-dimension.md +52 -0
  399. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-read.md +61 -0
  400. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-replace.md +62 -0
  401. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-set-dropdown.md +62 -0
  402. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-set-style.md +71 -0
  403. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-unmerge-cells.md +46 -0
  404. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-dimension.md +60 -0
  405. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-dropdown.md +51 -0
  406. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-filter-view-condition.md +27 -0
  407. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-filter-view.md +24 -0
  408. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-write-image.md +65 -0
  409. package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-write.md +60 -0
  410. package/server/assets/skills/lark-tools/cli-skills/lark-skill-maker/SKILL.md +85 -0
  411. package/server/assets/skills/lark-tools/cli-skills/lark-slides/SKILL.md +368 -0
  412. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/examples.md +179 -0
  413. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-create.md +137 -0
  414. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-media-upload.md +143 -0
  415. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +215 -0
  416. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +119 -0
  417. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-xml-presentations-get.md +94 -0
  418. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/slide-templates.md +199 -0
  419. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/slides_demo.xml +226 -0
  420. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
  421. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/xml-format-guide.md +369 -0
  422. package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/xml-schema-quick-ref.md +215 -0
  423. package/server/assets/skills/lark-tools/cli-skills/lark-task/SKILL.md +151 -0
  424. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-assign.md +35 -0
  425. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-comment.md +28 -0
  426. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-complete.md +27 -0
  427. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-create.md +51 -0
  428. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-followers.md +32 -0
  429. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-get-my-tasks.md +55 -0
  430. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
  431. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-reminder.md +36 -0
  432. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-reopen.md +27 -0
  433. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-search.md +41 -0
  434. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-set-ancestor.md +32 -0
  435. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-subscribe-event.md +86 -0
  436. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-create.md +35 -0
  437. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-members.md +36 -0
  438. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-search.md +38 -0
  439. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  440. package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-update.md +37 -0
  441. package/server/assets/skills/lark-tools/cli-skills/lark-vc/SKILL.md +143 -0
  442. package/server/assets/skills/lark-tools/cli-skills/lark-vc/references/lark-vc-notes.md +126 -0
  443. package/server/assets/skills/lark-tools/cli-skills/lark-vc/references/lark-vc-recording.md +141 -0
  444. package/server/assets/skills/lark-tools/cli-skills/lark-vc/references/lark-vc-search.md +159 -0
  445. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard/SKILL.md +118 -0
  446. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
  447. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard/references/lark-whiteboard-update.md +97 -0
  448. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/SKILL.md +236 -0
  449. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/connectors.md +102 -0
  450. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/content.md +40 -0
  451. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/layout.md +374 -0
  452. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/schema.md +333 -0
  453. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/style.md +318 -0
  454. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/typography.md +73 -0
  455. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/architecture.md +433 -0
  456. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/bar-chart.md +181 -0
  457. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/comparison.md +135 -0
  458. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/fishbone.md +238 -0
  459. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/flowchart.md +185 -0
  460. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/flywheel.md +195 -0
  461. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/funnel.md +101 -0
  462. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/line-chart.md +208 -0
  463. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/mermaid.md +136 -0
  464. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/milestone.md +139 -0
  465. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/organization.md +175 -0
  466. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/pyramid.md +99 -0
  467. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/swimlane.md +370 -0
  468. package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/treemap.md +210 -0
  469. package/server/assets/skills/lark-tools/cli-skills/lark-wiki/SKILL.md +93 -0
  470. package/server/assets/skills/lark-tools/cli-skills/lark-wiki/references/lark-wiki-move.md +183 -0
  471. package/server/assets/skills/lark-tools/cli-skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
  472. package/server/assets/skills/lark-tools/cli-skills/lark-workflow-meeting-summary/SKILL.md +99 -0
  473. package/server/assets/skills/lark-tools/cli-skills/lark-workflow-standup-report/SKILL.md +120 -0
  474. package/server/assets/skills/lark-tools/references/commands-macos-linux.md +42 -0
  475. package/server/assets/skills/lark-tools/references/commands-windows-powershell.md +54 -0
  476. package/server/assets/skills/lark-tools/references/storage-paths.md +21 -0
  477. package/server/assets/skills/llm-call/SKILL.md +50 -0
  478. package/server/assets/skills/llm-call/scripts/llm_call.py +458 -0
  479. package/server/assets/skills/mcode-tools-master/SKILL.md +133 -0
  480. package/server/assets/skills/pdf/SKILL.md +287 -0
  481. package/server/assets/skills/pdf/docs/advanced-reference.md +711 -0
  482. package/server/assets/skills/pdf/docs/ai-voice-cloning-regulatory-report-case.md +303 -0
  483. package/server/assets/skills/pdf/docs/annual-report-financial-digest-latex-case.md +233 -0
  484. package/server/assets/skills/pdf/docs/create-guide.md +438 -0
  485. package/server/assets/skills/pdf/docs/design-guide.md +204 -0
  486. package/server/assets/skills/pdf/docs/docx-contract-roundtrip-professional-case.md +328 -0
  487. package/server/assets/skills/pdf/docs/email-translation-goldman-two-sessions-case.md +346 -0
  488. package/server/assets/skills/pdf/docs/forms-guide.md +462 -0
  489. package/server/assets/skills/pdf/docs/html-pdf-spec.md +500 -0
  490. package/server/assets/skills/pdf/docs/italy-schengen-visa-acroform-case.md +22 -0
  491. package/server/assets/skills/pdf/docs/latex-academic-thesis-guide.md +234 -0
  492. package/server/assets/skills/pdf/docs/latex-technical-book-guide.md +112 -0
  493. package/server/assets/skills/pdf/docs/markdown-static-academic-data-viz-case.md +280 -0
  494. package/server/assets/skills/pdf/docs/pitfalls-index.md +798 -0
  495. package/server/assets/skills/pdf/docs/read-guide.md +358 -0
  496. package/server/assets/skills/pdf/docs/reformat-guide.md +238 -0
  497. package/server/assets/skills/pdf/docs/skill-readme-archive.md +152 -0
  498. package/server/assets/skills/pdf/docs/troubleshooting.md +86 -0
  499. package/server/assets/skills/pdf/docs/vision-guide.md +188 -0
  500. package/server/assets/skills/pdf/scripts/__init__.py +0 -0
  501. package/server/assets/skills/pdf/scripts/_pdf_read_lib.py +284 -0
  502. package/server/assets/skills/pdf/scripts/fill/__init__.py +0 -0
  503. package/server/assets/skills/pdf/scripts/fill/acroform_apply.py +153 -0
  504. package/server/assets/skills/pdf/scripts/fill/overlay_apply.py +109 -0
  505. package/server/assets/skills/pdf/scripts/lib/__init__.py +0 -0
  506. package/server/assets/skills/pdf/scripts/lib/acroform_io.py +170 -0
  507. package/server/assets/skills/pdf/scripts/lib/cli_utils.py +41 -0
  508. package/server/assets/skills/pdf/scripts/lib/geometry.py +79 -0
  509. package/server/assets/skills/pdf/scripts/make.sh +388 -0
  510. package/server/assets/skills/pdf/scripts/merge.py +112 -0
  511. package/server/assets/skills/pdf/scripts/pdf_inspect/__init__.py +0 -0
  512. package/server/assets/skills/pdf/scripts/pdf_inspect/acroform_inspect.py +52 -0
  513. package/server/assets/skills/pdf/scripts/pdf_inspect/acroform_probe.py +57 -0
  514. package/server/assets/skills/pdf/scripts/pdf_inspect/layout_scan.py +164 -0
  515. package/server/assets/skills/pdf/scripts/read_pdf_vision.py +473 -0
  516. package/server/assets/skills/pdf/scripts/reformat_parse.py +181 -0
  517. package/server/assets/skills/pdf/scripts/render/__init__.py +0 -0
  518. package/server/assets/skills/pdf/scripts/render/overlay_preview.py +86 -0
  519. package/server/assets/skills/pdf/scripts/render/page_rasterize.py +85 -0
  520. package/server/assets/skills/pdf/scripts/render_html.cjs +205 -0
  521. package/server/assets/skills/pdf/scripts/validate/__init__.py +0 -0
  522. package/server/assets/skills/pdf/scripts/validate/geometry_lint.py +124 -0
  523. package/server/assets/skills/pdf/templates/INDEX.md +97 -0
  524. package/server/assets/skills/pdf/templates/bilingual-menu-premium/README.md +175 -0
  525. package/server/assets/skills/pdf/templates/bilingual-menu-premium/skeleton.html +343 -0
  526. package/server/assets/skills/pdf/templates/brand-guide-2page/README.md +140 -0
  527. package/server/assets/skills/pdf/templates/brand-guide-2page/cases/minimax-web-brand-guide/README.md +155 -0
  528. package/server/assets/skills/pdf/templates/brand-guide-2page/cases/minimax-web-brand-guide/source.html +188 -0
  529. package/server/assets/skills/pdf/templates/brand-guide-2page/skeleton.html +264 -0
  530. package/server/assets/skills/pdf/templates/data-viz-report/README.md +234 -0
  531. package/server/assets/skills/pdf/templates/data-viz-report/cases/annual-report-financial-digest-latex/README.md +12 -0
  532. package/server/assets/skills/pdf/templates/data-viz-report/cases/annual-report-financial-digest-latex/build_charts.py +341 -0
  533. package/server/assets/skills/pdf/templates/data-viz-report/cases/annual-report-financial-digest-latex/source.tex +161 -0
  534. package/server/assets/skills/pdf/templates/data-viz-report/cases/apple-m-ai-static-academic/assets/fig_1_1_table_1_1_specs.png +0 -0
  535. package/server/assets/skills/pdf/templates/data-viz-report/cases/apple-m-ai-static-academic/assets/fig_1_2_table_1_2_geekbench.png +0 -0
  536. package/server/assets/skills/pdf/templates/data-viz-report/cases/apple-m-ai-static-academic/assets/fig_1_3_mmax_generation.png +0 -0
  537. package/server/assets/skills/pdf/templates/data-viz-report/cases/apple-m-ai-static-academic/source.html +656 -0
  538. package/server/assets/skills/pdf/templates/data-viz-report/skeleton.html +835 -0
  539. package/server/assets/skills/pdf/templates/form-fill-acroform/README.md +198 -0
  540. package/server/assets/skills/pdf/templates/form-fill-acroform/cases/italy-schengen-visa-example/USER-FINAL-SUMMARY.template.md +42 -0
  541. package/server/assets/skills/pdf/templates/form-fill-acroform/cases/italy-schengen-visa-example/extract_pdfs_key_info.py +80 -0
  542. package/server/assets/skills/pdf/templates/form-fill-acroform/cases/italy-schengen-visa-example/field_values.case.json +233 -0
  543. package/server/assets/skills/pdf/templates/form-fill-acroform/field_values.template.json +118 -0
  544. package/server/assets/skills/pdf/templates/latex-academic-thesis/README.md +146 -0
  545. package/server/assets/skills/pdf/templates/latex-academic-thesis/source.tex +334 -0
  546. package/server/assets/skills/pdf/templates/latex-technical-book/README.md +130 -0
  547. package/server/assets/skills/pdf/templates/latex-technical-book/README.template-source.md +62 -0
  548. package/server/assets/skills/pdf/templates/latex-technical-book/source.tex +439 -0
  549. package/server/assets/skills/pdf/templates/multi-article-aggregator/README.md +148 -0
  550. package/server/assets/skills/pdf/templates/multi-article-aggregator/pipeline.md +223 -0
  551. package/server/assets/skills/pdf/templates/multilang-research-report/README.md +146 -0
  552. package/server/assets/skills/pdf/templates/multilang-research-report/cases/ai-voice-cloning-regulatory/source.html +244 -0
  553. package/server/assets/skills/pdf/templates/multilang-research-report/skeleton.html +242 -0
  554. package/server/assets/skills/pdf/templates/reformat-default/README.md +137 -0
  555. package/server/assets/skills/pdf/templates/reformat-default/cases/pku-contract-roundtrip/docx_engine.py +68 -0
  556. package/server/assets/skills/pdf/templates/reformat-default/cases/pku-contract-roundtrip/source.html +231 -0
  557. package/server/assets/skills/pdf/templates/reformat-default/cases/pku-contract-roundtrip/source.md +196 -0
  558. package/server/assets/skills/pdf/templates/reformat-default/skeleton.html +204 -0
  559. package/server/assets/skills/pdf/templates/translate-preserve-layout/README.md +147 -0
  560. package/server/assets/skills/pdf/templates/translate-preserve-layout/cases/goldman-china-two-sessions-cn.html +1660 -0
  561. package/server/assets/skills/pdf/templates/translate-preserve-layout/skeleton.html +96 -0
  562. package/server/assets/skills/pdf/templates/translate-preserve-layout/terminology.template.json +66 -0
  563. package/server/assets/skills/pptx/SKILL.md +285 -0
  564. package/server/assets/skills/pptx/references/design-system.md +424 -0
  565. package/server/assets/skills/pptx/references/editing.md +162 -0
  566. package/server/assets/skills/pptx/references/element-map.md +229 -0
  567. package/server/assets/skills/pptx/references/pitfalls.md +205 -0
  568. package/server/assets/skills/pptx/references/pptxgenjs.md +420 -0
  569. package/server/assets/skills/pptx/references/preview-selection-writeback.md +65 -0
  570. package/server/assets/skills/pptx/references/python-pptx-recipes.md +63 -0
  571. package/server/assets/skills/pptx/references/slide-types.md +413 -0
  572. package/server/assets/skills/pptx/scripts/audit_pptx.py +708 -0
  573. package/server/assets/skills/pptx/scripts/extract_comments.py +468 -0
  574. package/server/assets/skills/pptx/scripts/extract_images.py +226 -0
  575. package/server/assets/skills/pptx/scripts/extract_pptx.py +285 -0
  576. package/server/assets/skills/pptx/scripts/mavis-ppt-map.cjs +280 -0
  577. package/server/assets/skills/pptx/scripts/pdf2png.swift +203 -0
  578. package/server/assets/skills/pptx/scripts/pptx-screenshot.sh +105 -0
  579. package/server/assets/skills/resume-codex/SKILL.md +55 -0
  580. package/server/assets/skills/resume-codex/scripts/session-reader.mjs +445 -0
  581. package/server/assets/skills/skill-creator/SKILL.md +190 -0
  582. package/server/assets/skills/skill-creator/references/anti-patterns.md +149 -0
  583. package/server/assets/skills/skill-creator/references/commands-macos-linux.md +38 -0
  584. package/server/assets/skills/skill-creator/references/commands-windows-powershell.md +48 -0
  585. package/server/assets/skills/skill-creator/references/description-rubric.md +83 -0
  586. package/server/assets/skills/skill-creator/references/skill-template.md +101 -0
  587. package/server/assets/skills/skill-creator/references/when-to-bundle-scripts.md +139 -0
  588. package/server/assets/skills/skill-creator/scripts/lint-skill.js +226 -0
  589. package/server/assets/skills/skill-refiner/SKILL.md +139 -0
  590. package/server/assets/skills/visual-page/SKILL.md +196 -0
  591. package/server/assets/skills/x-link-reader/SKILL.md +110 -0
  592. package/server/assets/skills/xlsx/SKILL.md +501 -0
  593. package/server/assets/skills/xlsx/docs/advanced-reference.md +410 -0
  594. package/server/assets/skills/xlsx/docs/cases/superstore-multiformat/conversion_manifest.example.json +49 -0
  595. package/server/assets/skills/xlsx/docs/cases/superstore-multiformat/superstore_orders_print.html +17 -0
  596. package/server/assets/skills/xlsx/docs/conventions-guide.md +217 -0
  597. package/server/assets/skills/xlsx/docs/create-edit-guide.md +410 -0
  598. package/server/assets/skills/xlsx/docs/pitfalls-index.md +760 -0
  599. package/server/assets/skills/xlsx/docs/raw-xml-escape-hatch.md +201 -0
  600. package/server/assets/skills/xlsx/docs/recalc-guide.md +295 -0
  601. package/server/assets/skills/xlsx/docs/superstore-multiformat-conversion-case.md +413 -0
  602. package/server/assets/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  603. package/server/assets/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  604. package/server/assets/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  605. package/server/assets/skills/xlsx/scripts/office/pack.py +159 -0
  606. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  607. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  608. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  609. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  610. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  611. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  612. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  613. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  614. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  615. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  616. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  617. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  618. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  619. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  620. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  621. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  622. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  623. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  624. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  625. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  626. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  627. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  628. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  629. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  630. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  631. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  632. package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  633. package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  634. package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  635. package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  636. package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  637. package/server/assets/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  638. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  639. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  640. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  641. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  642. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  643. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  644. package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  645. package/server/assets/skills/xlsx/scripts/office/soffice.py +191 -0
  646. package/server/assets/skills/xlsx/scripts/office/unpack.py +132 -0
  647. package/server/assets/skills/xlsx/scripts/office/validate.py +117 -0
  648. package/server/assets/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  649. package/server/assets/skills/xlsx/scripts/office/validators/base.py +851 -0
  650. package/server/assets/skills/xlsx/scripts/office/validators/docx.py +446 -0
  651. package/server/assets/skills/xlsx/scripts/office/validators/pptx.py +275 -0
  652. package/server/assets/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  653. package/server/assets/skills/xlsx/scripts/recalc.py +450 -0
  654. package/server/mcode-tools.js +2 -0
  655. package/server/package-info.json +1 -1
  656. package/server/server.js +2 -0
@@ -0,0 +1,798 @@
1
+ # Pitfalls Index — Canonical Query Templates
2
+
3
+ > **Match-and-fuse, don't read-and-think.** Each entry below is a
4
+ > production-ready prompt template. When the user's incoming query
5
+ > matches a `Match signatures` block, **copy the matching canonical
6
+ > query**, substitute the `Slots` with the user's actual values,
7
+ > and execute it verbatim. Each canonical query already encodes every
8
+ > known pitfall, every verification gate, and every fall-back path
9
+ > for that scenario — there is no extra "trace" to look up.
10
+ >
11
+ > If no signature matches, fall back to [`../SKILL.md`](../SKILL.md) routing.
12
+ > If a partial match (one of two slots fits), prefer **fusing** the
13
+ > matching template's verifications into your own plan rather than
14
+ > writing a new one from scratch.
15
+ >
16
+ > **Universal slot placeholders below** — these are referenced inside
17
+ > every canonical query and resolve at execution time:
18
+ >
19
+ > - `<SKILL>` → `{{DATA_DIR}}/.builtin-skills/pdf`
20
+ > - `<SKILL_XLSX>` → `{{DATA_DIR}}/.builtin-skills/xlsx`
21
+ > - `<TMP>` → a writable scratch dir (e.g. `/tmp/pdf-task-<ts>`)
22
+
23
+ ---
24
+
25
+ ## Quick lookup — match user query to a case
26
+
27
+ | # | Match keywords | Slots | Canonical §|
28
+ |---|---|---|---|
29
+ | **P1** | brand guide / cover / poster / 品牌指南 / 设计规范 from a website | `BRAND_URL`, `OUTPUT_PATH`, `BRAND_NAME`, `PAGE_COUNT(default 2)`, `AUDIENCE(intl/US)` | §P1 |
30
+ | **P2** | bilingual menu / 双语菜单 / formal printed deliverable / certificate / two-pager | `LANG_A`, `LANG_B`, `RESTAURANT_TYPE`, `ITEMS_JSON`, `OUTPUT_PATH`, `AUDIENCE` | §P2 |
31
+ | **P3** | markdown→PDF / convert structured text to chart-rich PDF / 可视化报告 / data brief | `INPUT_PATH(.md/.csv)`, `OUTPUT_PATH`, `CHART_COUNT`, `THEME(default light)` | §P3 |
32
+ | **P4** | research report across N jurisdictions / multi-region regulatory survey / 多国监管 | `TOPIC`, `JURISDICTIONS[]`, `OUTPUT_PDF`, `DEADLINE_MIN(default 30)` | §P4 |
33
+ | **P5** | translate this <EML/PDF> to <lang> preserving layout / 翻译保版 | `INPUT_PATH(.eml/.pdf)`, `TARGET_LANG`, `OUTPUT_PATH` | §P5 |
34
+ | **P6** | find <X> in this <100+ page PDF> / 长 PDF 定向提取 / extract specific data from annual report | `PDF_PATH`, `TARGET_QUERY`, `MAX_OUTPUT_PAGES(optional)` | §P6 |
35
+ | **P7** | convert <240-page financial PDF> to Excel/Word/Markdown / 复杂金融排版 PDF 转格式 | `PDF_PATH`, `OUTPUT_FORMAT`, `OUTPUT_PATH`, `STATEMENTS[]` | §P7 |
36
+ | **P8** | fill out this PDF form / AcroForm / visa / tax / contract / 表单填写 | `FORM_PDF`, `MATERIALS[]`, `OUTPUT_PDF`, `MISSING_FIELDS_REPORT(true)` | §P8 |
37
+ | **P9** | export 10k+ row spreadsheet as PDF / 大表打印 / tabular → PDF | `INPUT_XLSX`, `OUTPUT_PDF`, `ORIENTATION`, `REPEAT_HEADER`, `FULL_OR_PREVIEW` | §P9 |
38
+ | **P10** | convert <DOCX/PDF/MD/HTML> to <formats> with fidelity loss report / 双向转换 | `INPUT_PATH`, `TARGET_FORMATS[]`, `OUTPUT_DIR` | §P10 |
39
+
40
+ ---
41
+
42
+ ## P1 — Branded paged PDF from web content
43
+
44
+ ### Match signatures
45
+
46
+ - "做一份 {BRAND_NAME}({BRAND_URL})的 brand guide / 品牌指南 PDF"
47
+ - "make a brand-guide / cover / poster PDF from {BRAND_URL}"
48
+ - "把 {site} 抓取的品牌元素整理成双页 PDF"
49
+ - "create a 2-page design system overview for {company}"
50
+
51
+ ### Canonical query
52
+
53
+ ```
54
+ TASK: Generate a {PAGE_COUNT}-page brand guide PDF for {BRAND_NAME} from
55
+ {BRAND_URL}, output to {OUTPUT_PATH}.
56
+
57
+ STEP 1 — Environment preflight (mandatory)
58
+ bash <SKILL>/scripts/make.sh check 2><TMP>/check.log
59
+ # WARN/FAIL → bash <SKILL>/scripts/make.sh fix && re-run check
60
+
61
+ STEP 2 — Brand asset extraction (precise, not inferred)
62
+ curl -sL "{BRAND_URL}" > <TMP>/brand.html 2><TMP>/curl.log
63
+ # Palette — exact hex from CSS/SVG (NEVER infer from prose)
64
+ grep -oE '#[0-9a-fA-F]{6}' <TMP>/brand.html | sort -u > <TMP>/palette.txt
65
+ grep -oP 'fill="\K#[0-9a-fA-F]{6}' <TMP>/brand.html | sort -u >> <TMP>/palette.txt
66
+ # Fonts
67
+ grep -oiE 'font-family[: ][^;}"]+' <TMP>/brand.html | sort -u
68
+ # Logo — download SVG / PNG separately
69
+ # If <link rel="stylesheet"> points off-domain, fetch each one and grep colors there too.
70
+
71
+ STEP 3 — Template + fill placeholders
72
+ cp <SKILL>/templates/brand-guide-2page/skeleton.html <TMP>/page.html
73
+ # Replace <!-- PLACEHOLDER --> tokens with:
74
+ # - {BRAND_NAME}, tagline (LLM-extracted from site if user didn't supply)
75
+ # - 6-color palette from <TMP>/palette.txt (top 6 unique hex)
76
+ # - Font stack from grep above
77
+ # - Logo as <img src="data:image/...;base64,..."> or file:// reference
78
+
79
+ STEP 4 — Render (mandatory --format)
80
+ bash <SKILL>/scripts/make.sh render \
81
+ --in <TMP>/page.html --out {OUTPUT_PATH} \
82
+ --format <A4 if AUDIENCE=intl|CJK else Letter> --wait 15000
83
+ # Never rely on the renderer default; Chromium overrides CSS @page.
84
+
85
+ STEP 5 — Verification (BOTH gates mandatory)
86
+ pdfinfo {OUTPUT_PATH} | grep "Page size"
87
+ # Must print: 595.276 x 841.89 pts (A4) OR 612 x 792 pts (Letter)
88
+ # Mismatch → go back to STEP 4, do not ship.
89
+ pdfimages -list {OUTPUT_PATH} | tail -n +3 | wc -l
90
+ # Must be ≥ 1 (logo); typically ≥ 6 (logo + palette swatches + samples).
91
+ # If 0 → Chart.js / fonts didn't settle. Bump --wait 30000, set
92
+ # Chart.defaults.animation = false, wrap canvases in .avoid-break.
93
+
94
+ STEP 6 — Deliver with evidence
95
+ Report: pdfinfo "Page size" line + pdfimages count + screenshot of page 1.
96
+
97
+ CONSTRAINTS (universal — do not violate):
98
+ - NEVER `2>/dev/null` — redirect to <TMP>/*.log and grep on demand.
99
+ - Palette MUST come from CSS/SVG hex, never from rendered prose ("looks blue-ish").
100
+ - Always pass --format explicitly to make.sh render.
101
+ ```
102
+
103
+ ---
104
+
105
+ ## P2 — Bilingual menu / formal printed two-pager
106
+
107
+ ### Match signatures
108
+
109
+ - "做一份 {LANG_A}-{LANG_B} 双语 {RESTAURANT_TYPE} 菜单 PDF"
110
+ - "make a {LANG_A}/{LANG_B} bilingual menu / wine list / certificate"
111
+ - "design a 2-page formal printed PDF for {use_case}"
112
+
113
+ ### Canonical query
114
+
115
+ ```
116
+ TASK: Render a 2-page bilingual ({LANG_A} + {LANG_B}) {RESTAURANT_TYPE}
117
+ menu PDF from items in {ITEMS_JSON}, output to {OUTPUT_PATH}.
118
+
119
+ STEP 1 — Preflight
120
+ bash <SKILL>/scripts/make.sh check 2><TMP>/check.log
121
+
122
+ STEP 2 — Use the canonical template (do not author from scratch)
123
+ cp <SKILL>/templates/bilingual-menu-premium/skeleton.html <TMP>/menu.html
124
+ # Inject ITEMS_JSON: each item has {LANG_A_name, LANG_B_name, price, category}
125
+ # Categories ≥ 3 (e.g. 前菜/Sushi/甘味). Pricing follows pricing_model.
126
+
127
+ STEP 3 — CJK font cascade verification
128
+ # If LANG_A or LANG_B ∈ {zh, ja, ko}, the HTML MUST declare:
129
+ # font-family: -apple-system, "PingFang SC", "Hiragino Sans",
130
+ # "Apple SD Gothic Neo", "Helvetica Neue", sans-serif;
131
+ # Cascade ORDER MATTERS — wrong order renders SC chars in JP forms.
132
+
133
+ STEP 4 — Render (canonical CLI shape)
134
+ bash <SKILL>/scripts/make.sh render \
135
+ --in <TMP>/menu.html --out {OUTPUT_PATH} \
136
+ --format A4 --wait 15000
137
+ # The flag is `--in` (not --input), `--out` (not --output).
138
+ # A4 by default for CJK / international audiences.
139
+
140
+ STEP 5 — Verification (CJK-aware)
141
+ pdfinfo {OUTPUT_PATH} | grep "Page size" # 595x841 pts (A4)
142
+ pdfimages -list {OUTPUT_PATH} | tail -n +3 | wc -l
143
+ pdftotext -layout {OUTPUT_PATH} - | head -40
144
+ # Look for [ ] [ ] tofu boxes in the CJK output. If any → install
145
+ # missing CJK font (`brew install font-noto-sans-cjk-sc`), re-render.
146
+
147
+ STEP 6 — Spot-check first page visually (optional but recommended)
148
+ pdftoppm -r 150 -png -f 1 -l 1 {OUTPUT_PATH} <TMP>/preview
149
+ # Open <TMP>/preview-1.png to confirm typography & balance.
150
+
151
+ CONSTRAINTS:
152
+ - Memorize the canonical render CLI shape: --in / --out (NOT --input / --output).
153
+ - For CJK languages, verify font cascade ORDER, not just presence.
154
+ - --format defaults to A4 here because menus are international/CJK; for
155
+ US-only steakhouses pass --format Letter explicitly.
156
+ ```
157
+
158
+ ---
159
+
160
+ ## P3 — Markdown / structured text → chart-rich PDF
161
+
162
+ ### Match signatures
163
+
164
+ - "把 {INPUT_PATH} (markdown/csv) 转成含图表的 PDF 报告"
165
+ - "convert this benchmark / dataset / md into a visualized PDF"
166
+ - "make a data brief from {INPUT_PATH}"
167
+ - "可视化报告 / 图文报告 / 评测报告 / data report"
168
+
169
+ ### Canonical query
170
+
171
+ ```
172
+ TASK: Build a chart-rich PDF report from {INPUT_PATH}, with approximately
173
+ {CHART_COUNT} charts (auto-estimate if unspecified), output to {OUTPUT_PATH}.
174
+
175
+ STEP 1 — Preflight
176
+ bash <SKILL>/scripts/make.sh check 2><TMP>/check.log
177
+ # Includes Playwright Chromium check; fix if WARN.
178
+
179
+ STEP 2 — Choose template
180
+ cp -r <SKILL>/templates/data-viz-report/* <TMP>/
181
+ # The skeleton.html has KPI grid, chart-card, takeaway-row, conclusion primitives.
182
+ # If acceptance criteria require source hierarchy preservation, print-academic style,
183
+ # and static charts only (no Chart.js/ECharts/D3/Plotly), load:
184
+ # <SKILL>/docs/markdown-static-academic-data-viz-case.md
185
+ # and follow that case instead of the Chart.js skeleton path.
186
+
187
+ STEP 3 — Build content.json (mandatory ensure_ascii=False)
188
+ python3 <<EOF
189
+ import json, pathlib
190
+ payload = {
191
+ "title": "...",
192
+ "kpis": [...],
193
+ "charts": [{"id": "ch1", "type": "bar", "data": {...}}, ...],
194
+ "tables": [...],
195
+ "conclusion": "...",
196
+ }
197
+ pathlib.Path("<TMP>/content.json").write_text(
198
+ json.dumps(payload, ensure_ascii=False, indent=2),
199
+ encoding="utf-8",
200
+ )
201
+ EOF
202
+ # NEVER hand-concatenate JSON strings. CJK quotes / em-dashes break json.load.
203
+
204
+ STEP 4 — Render (mandatory --format + long --wait for charts)
205
+ bash <SKILL>/scripts/make.sh render \
206
+ --in <TMP>/page.html --out {OUTPUT_PATH} \
207
+ --format A4 --wait 15000
208
+ # 15s baseline; if charts are non-trivial (>30 series, animated), use 25000.
209
+
210
+ STEP 5 — Verification (both gates mandatory; pdftotext alone is NOT enough)
211
+ pdfinfo {OUTPUT_PATH} | grep "Page size"
212
+ IMG_COUNT=$(pdfimages -list {OUTPUT_PATH} | tail -n +3 | wc -l)
213
+ echo "Image count: $IMG_COUNT (expected ≥ {CHART_COUNT})"
214
+ # IMG_COUNT < CHART_COUNT → at least one chart is a blank canvas.
215
+ pdftotext -layout {OUTPUT_PATH} - | head -40 # body text sanity
216
+
217
+ STEP 6 — Chart-rendering recovery (when STEP 5 image count is low)
218
+ # 1. In the source HTML's <script>: Chart.defaults.animation = false;
219
+ # 2. Wrap every <canvas> parent: <div class="chart-card avoid-break">
220
+ # 3. Increase --wait to 30000
221
+ # 4. Re-render and re-verify.
222
+ # See <SKILL>/docs/troubleshooting.md "Chart.js render-timing checklist".
223
+
224
+ STEP 7 — For matplotlib pipelines (PNG → embedded into HTML)
225
+ ls -lh <TMP>/build/*.png # the intermediate PNGs MUST exist and be > 5 KB each.
226
+
227
+ CONSTRAINTS:
228
+ - JSON config files: json.dumps(payload, ensure_ascii=False, indent=2). Always.
229
+ - `pdftotext` cannot see images and silently passes a chart-less PDF.
230
+ pdfimages count is the ONLY reliable chart-presence check.
231
+ - Don't 2>/dev/null any of the verification commands.
232
+ ```
233
+
234
+ ---
235
+
236
+ ## P4 — Multi-jurisdiction research with parallel sub-agents
237
+
238
+ ### Match signatures
239
+
240
+ - "研究 {TOPIC} 在 {JURISDICTIONS} 的 {regulatory|market|enforcement} 情况"
241
+ - "deep research on {topic} across {N} regions, output a synthesised PDF"
242
+ - "multi-country survey of {policy area}, parallel workers"
243
+
244
+ ### Canonical query
245
+
246
+ ```
247
+ TASK: Produce a synthesised PDF report on {TOPIC} covering jurisdictions
248
+ {JURISDICTIONS[]}, output to {OUTPUT_PDF} within {DEADLINE_MIN} minutes.
249
+
250
+ STEP 0 — Load progressive case when applicable
251
+ If TOPIC is AI voice cloning / synthetic voice / deepfake audio, or the
252
+ acceptance criteria require laws + regulators + cases + self-regulation +
253
+ source reliability ratings, read:
254
+ <SKILL>/docs/ai-voice-cloning-regulatory-report-case.md
255
+ Reuse its bounded worker prompts, terminology rules, fact-check table,
256
+ and optimized source HTML.
257
+
258
+ STEP 1 — Plan the fan-out (timeout-with-degrade is mandatory)
259
+ N background research sub-agents (task tool with
260
+ run_in_background: true, one per jurisdiction) + a synthesis step
261
+ after collecting their outputs. CRITICAL rules:
262
+ - Launch every research sub-agent with run_in_background: true.
263
+ Foreground task calls run sequentially and block — they cannot
264
+ honor the deadline rule below.
265
+ - Poll with task_query; collect finished reports with task_output.
266
+ At T+{DEADLINE_MIN}, task_stop the stragglers and proceed.
267
+ - Each sub-agent writes its report to <TMP>/report-<jurisdiction>.md
268
+ and returns only a short summary.
269
+ - The synthesis step explicitly allows partial input: "If at deadline
270
+ T+{DEADLINE_MIN}, fewer than N jurisdictions have delivered, ship a
271
+ partial PDF labelled 'Region X: data not yet available' for the
272
+ missing ones."
273
+
274
+ STEP 2 — Per-sub-agent prompt SHAPE (specific, not open-ended)
275
+ GOOD: "Find the 5 enacted statutes most-cited by {jurisdiction}'s
276
+ enforcement agencies on {topic} since 2020. For each: cite,
277
+ 1-line summary, primary agency, last enforcement action date."
278
+ BAD: "Research {jurisdiction}'s regulatory framework for {topic}."
279
+ # Open-ended prompts run for hours and stall the whole batch.
280
+
281
+ STEP 3 — Synthesis (yourself, after the sub-agents return)
282
+ Cross-reference all received jurisdiction reports. Build a comparison
283
+ table (rows=jurisdictions, cols=key dimensions). Highlight 3 themes
284
+ that appear in ≥3 jurisdictions and 3 unique-to-one-region findings.
285
+ Then render via <SKILL>/scripts/make.sh render with the
286
+ templates/multilang-research-report skeleton, --format A4 --wait 15000.
287
+
288
+ STEP 4 — Failure handling
289
+ A sub-agent errors or returns garbage → relaunch it ONCE with the same
290
+ bounded prompt.
291
+ Still failing → proceed with the remaining N-1 reports; the partial-ship
292
+ rule from STEP 1 covers the gap.
293
+
294
+ STEP 5 — Final verify (after synthesis renders)
295
+ pdfinfo {OUTPUT_PDF} | grep Pages # expected ≥ N+2 (intro + per-region + comparison)
296
+ pdfinfo {OUTPUT_PDF} | grep "Page size" # match A4
297
+ pdfimages -list {OUTPUT_PDF} | tail -n +3 | wc -l
298
+
299
+ CONSTRAINTS:
300
+ - NEVER launch the fan-out without an explicit timeout-with-degrade rule.
301
+ - Sub-agent prompts MUST be specific. "全面研究" / "全面分析" = guaranteed stall.
302
+ - Don't suppress stderr in any sub-agent prompt — log to <TMP>/<worker>.log.
303
+ ```
304
+
305
+ ---
306
+
307
+ ## P5 — Translate EML / PDF to {lang} preserving layout
308
+
309
+ ### Match signatures
310
+
311
+ - "把这份 {INPUT_PATH} (.eml/.pdf) 翻译成 {TARGET_LANG},保留排版"
312
+ - "translate this {Goldman Sachs / formal} report to {lang}, output PDF"
313
+ - "翻译保版 / preserve-layout translation"
314
+
315
+ ### Canonical query
316
+
317
+ ```
318
+ TASK: Translate {INPUT_PATH} into {TARGET_LANG} while preserving the
319
+ original page geometry, figures, and tables. Output to {OUTPUT_PATH}.
320
+
321
+ STEP 1 — Source parsing
322
+ Case A — INPUT_PATH ends with .eml:
323
+ # Progressive case for rich research-email HTML with optimized translation prompt:
324
+ # <SKILL>/docs/email-translation-goldman-two-sessions-case.md
325
+ python3 <<EOF
326
+ import email, re
327
+ msg = email.message_from_file(open("{INPUT_PATH}"))
328
+ # Walk parts: extract text/html, extract attachments, replace cid: refs
329
+ # with data: URIs so the rendered HTML is self-contained.
330
+ EOF
331
+
332
+ Case B — INPUT_PATH ends with .pdf:
333
+ # Use pdfplumber for prose pages; vision per-page for chart/table pages
334
+ # (see §P7 if the input is a financial doc).
335
+
336
+ STEP 2 — Translation (call LLM, never hand-write for long inputs)
337
+ Use the llm-call skill, batched per page or per logical block.
338
+ For rich EML research reports, copy the optimized prompt from the Goldman case;
339
+ it enforces JSON id parity, terminology freeze, numeric preservation, and QA.
340
+ STRICTLY PRESERVE verbatim:
341
+ - Numbers, dates, currency symbols, percentages
342
+ - Proper nouns (people, companies, fund codes, ticker symbols)
343
+ - Already-target-lang words (don't double-translate)
344
+ Only translate prose.
345
+
346
+ STEP 3 — Use the layout-preserving template
347
+ cp -r <SKILL>/templates/translate-preserve-layout/* <TMP>/
348
+ # The skeleton mirrors the source's page grid; substitute translated
349
+ # blocks into the page-grid slots. Don't author HTML from scratch.
350
+ # For rich EML HTML, prefer mutating the original HTML in place to preserve
351
+ # table grid, hrefs, and img src (see Goldman case).
352
+
353
+ STEP 4 — Render
354
+ bash <SKILL>/scripts/make.sh render \
355
+ --in <TMP>/translated.html --out {OUTPUT_PATH} \
356
+ --format <match source page size; default A4> --wait 15000
357
+
358
+ STEP 5 — Verification
359
+ pdfinfo {OUTPUT_PATH} | grep "Page size"
360
+ # Must MATCH the source PDF/EML's page size.
361
+ pdfimages -list {OUTPUT_PATH} | tail -n +3 | wc -l
362
+ # Must equal the source's image count (figures preserved).
363
+ pdftotext -layout {OUTPUT_PATH} - | head -60 # confirm target lang text
364
+
365
+ STEP 6 — Cross-check verbatim items
366
+ Spot-check 5 numeric values + 3 proper nouns: must appear unchanged
367
+ in the translated PDF.
368
+
369
+ CONSTRAINTS:
370
+ - Don't hand-translate long financial / legal text — call LLM via llm-call.
371
+ - Use the translate-preserve-layout template; don't re-author the grid.
372
+ - Number / date / proper-noun preservation is non-negotiable.
373
+ ```
374
+
375
+ ---
376
+
377
+ ## P6 — Targeted extraction from a 100+ page PDF
378
+
379
+ ### Match signatures
380
+
381
+ - "在这份 {PDF_PATH}({N}页年报/招股书)里找 {TARGET_QUERY}"
382
+ - "extract {metric/section} from this annual report / prospectus / white paper"
383
+ - "what does {long PDF} say about {topic}"
384
+
385
+ ### Canonical query
386
+
387
+ ```
388
+ TASK: Locate and extract {TARGET_QUERY} from {PDF_PATH}, returning at most
389
+ {MAX_OUTPUT_PAGES or 5} pages of relevant content.
390
+
391
+ STEP 1 — Probe page count + structure (cheap, mandatory)
392
+ pdfinfo "{PDF_PATH}" | grep -E "Pages|Encrypted"
393
+ # Three thresholds determine path:
394
+ # ≤20 pages → skip locate, pdfplumber the whole thing.
395
+ # 21-200 pages → locate-first mandatory.
396
+ # >200 pages → ALWAYS build heading index FIRST (skip blind grep entirely).
397
+
398
+ STEP 2 — Build heading index (paths in cheapest-first order)
399
+
400
+ Path A — pypdf outline (cheapest):
401
+ python3 - <<EOF
402
+ from pypdf import PdfReader
403
+ doc = PdfReader("{PDF_PATH}")
404
+ def walk(items, depth=0):
405
+ for it in items:
406
+ if isinstance(it, list):
407
+ walk(it, depth + 1)
408
+ else:
409
+ p = doc.get_destination_page_number(it) + 1
410
+ print(f"{' '*depth}{it.title} -> p{p}")
411
+ walk(doc.outline)
412
+ EOF
413
+
414
+ Path B — printed TOC (when outline empty):
415
+ pdftotext -layout -f 1 -l 5 "{PDF_PATH}" - | head -120
416
+ # Note: printed page numbers may have a front-matter offset (cover,
417
+ # copyright, preface = 2-10 unnumbered pages). Add the offset before
418
+ # slicing.
419
+
420
+ Path C — full-text grep (last resort, BUDGET = 2 attempts max):
421
+ pdftotext -layout "{PDF_PATH}" - | grep -in "{KEYWORD}"
422
+ # If 2 different keywords don't land on the target, STOP and use Path A/B.
423
+
424
+ STEP 3 — Once target pages identified
425
+ Determine page nature:
426
+ - Pure prose / simple table → pdfplumber recipe (§3.1 in read-guide)
427
+ - Chart / diagram / financial table → vision PER PAGE (mandatory, see §P7)
428
+ python3 -m scripts.read_pdf_vision --input "{PDF_PATH}" --pages N
429
+
430
+ STEP 4 — JSON config (if writing intermediate file)
431
+ json.dumps(payload, ensure_ascii=False, indent=2)
432
+ # Mandatory for any file passed to a downstream tool.
433
+
434
+ STEP 5 — Deliver
435
+ Quote the relevant pages, cite page numbers, and if the user asked for
436
+ a number, also cite the line / row context surrounding it.
437
+
438
+ CONSTRAINTS:
439
+ - >200 pages + targeted query → BUILD INDEX FIRST. No blind greps.
440
+ - 2 blind grep limit applies regardless of page count.
441
+ - NEVER 2>/dev/null any extraction step. Use <TMP>/grep.log.
442
+ ```
443
+
444
+ ---
445
+
446
+ ## P7 — Complex financial PDF → structured format
447
+
448
+ ### Match signatures
449
+
450
+ - "把这份 {PDF_PATH}(240页 financial report / 10-K / 招股书)转成 {Excel/Word/Markdown}"
451
+ - "convert balance sheet / income statement / cash-flow from {PDF} to {format}"
452
+ - "extract financial tables from {annual report}"
453
+
454
+ ### Canonical query
455
+
456
+ ```
457
+ TASK: Convert {STATEMENTS[]} (e.g. balance sheet, income statement,
458
+ cash-flow, debt schedule) from {PDF_PATH} into {OUTPUT_FORMAT},
459
+ output to {OUTPUT_PATH}, preserving every cell.
460
+
461
+ STEP 1 — Locate financial-table pages (run §P6 first)
462
+ Use §P6's heading-index path to list pages containing each statement.
463
+ Output: PAGES = [p_balance, p_income, p_cashflow, ...].
464
+
465
+ STEP 2 — Vision per page (MANDATORY — pdfplumber FORBIDDEN here)
466
+ # Reason: complex financial layout uses multi-level headers, merged
467
+ # cells, dotted leader lines, footnoted sub-totals. pdfplumber's
468
+ # extract_text returns scrambled fragments (`9,19109,190` for two
469
+ # adjacent numbers); extract_tables needs a clean grid these layouts
470
+ # never have.
471
+
472
+ for p in $PAGES; do
473
+ python3 -m scripts.read_pdf_vision \
474
+ --input "{PDF_PATH}" --pages $p \
475
+ --prompt "For every table on this page output one row per cell:
476
+ header_l1 | header_l2 | row_label | value | footnote_ref.
477
+ Preserve every sub-total and footnote marker. Use - for
478
+ empty cells. Output as TSV." \
479
+ --json 2><TMP>/vision-p$p.log > <TMP>/vision-p$p.json
480
+ done
481
+
482
+ STEP 3 — Parse vision output
483
+ python3 <<EOF
484
+ import json, pathlib
485
+ rows = []
486
+ for p in PAGES:
487
+ data = json.loads(pathlib.Path(f"<TMP>/vision-p{p}.json").read_text())
488
+ # Vision output is in chunks[0].text; parse the TSV.
489
+ for line in data["chunks"][0]["text"].splitlines():
490
+ parts = line.split("\t")
491
+ if len(parts) == 5:
492
+ rows.append({"page": p, "l1": parts[0], "l2": parts[1],
493
+ "label": parts[2], "value": parts[3],
494
+ "footnote": parts[4]})
495
+ EOF
496
+
497
+ STEP 4 — Write to OUTPUT_FORMAT
498
+
499
+ Case A — OUTPUT_FORMAT = xlsx:
500
+ # See [xlsx] §X4. One sheet per statement. Column A = label,
501
+ # data = pure dump (this leg has no derived values; if you compute
502
+ # totals/margins, switch to formula-first per [xlsx] §X5).
503
+
504
+ Case B — OUTPUT_FORMAT = docx:
505
+ # Use docx; render each statement as a Word table with
506
+ # multi-level headers preserved.
507
+
508
+ Case C — OUTPUT_FORMAT = md:
509
+ # Use Markdown tables; multi-level headers expand to a flat header row.
510
+
511
+ STEP 5 — Verification
512
+ Spot-check 3 sub-totals across statements: read them off the source PDF
513
+ visually, compare to the converted output. Mismatch → re-run vision
514
+ with a more explicit prompt for that page, never patch by hand.
515
+
516
+ CONSTRAINTS:
517
+ - pdfplumber.extract_tables on financial layouts is FORBIDDEN even when
518
+ the PDF is text-native. Visual structure complexity > text-native check.
519
+ - Vision MUST be per-page (`--pages N`). A range like `--pages 1-30`
520
+ stitches pages together and mis-attributes values.
521
+ - Don't 2>/dev/null vision calls — the daemon log on stderr is the only
522
+ debugging signal.
523
+ ```
524
+
525
+ ---
526
+
527
+ ## P8 — AcroForm / PDF form filling
528
+
529
+ ### Match signatures
530
+
531
+ - "填这份 {FORM_PDF} (visa / tax / contract),材料是 {MATERIALS[]}"
532
+ - "fill out PDF form / AcroForm with the supplied values"
533
+ - "把 {employment_letter / itinerary} 里的信息填到 {visa_form}"
534
+
535
+ ### Canonical query
536
+
537
+ ```
538
+ TASK: Fill {FORM_PDF} using values extracted from {MATERIALS[]},
539
+ output to {OUTPUT_PDF}. Report missing fields = {MISSING_FIELDS_REPORT}.
540
+
541
+ STEP 1 — Probe form type
542
+ bash <SKILL>/scripts/make.sh fill probe "{FORM_PDF}"
543
+ # Output: acroform=true → §B path; acroform=false → §C overlay path.
544
+
545
+ STEP 2 — Inspect fields (§B path only)
546
+ bash <SKILL>/scripts/make.sh fill inspect "{FORM_PDF}" <TMP>/meta.json
547
+ # Each record: {qname, page_no, type, box, on_value/off_value/choice_options}.
548
+
549
+ # Progressive case: if FORM_PDF is an Italian / Schengen visa application and
550
+ # MATERIALS include Chinese employment certificate + travel itinerary, read:
551
+ # <SKILL>/docs/italy-schengen-visa-acroform-case.md
552
+ # It includes extract_pdfs_key_info, uppercase pinyin/date transforms,
553
+ # missing-fields report, and exact verification evidence.
554
+
555
+ STEP 3 — Extract values from MATERIALS[]
556
+ For each material:
557
+ - Simple PDF (passport scan with text layer) → pdfplumber
558
+ - Complex PDF (employment letter with letterhead, stamps, multi-column)
559
+ → vision per page per §P7
560
+ - DOCX itinerary → docx read
561
+ Build the qname → value mapping.
562
+
563
+ STEP 4 — Build values.json (NEW array schema)
564
+ python3 <<EOF
565
+ import json, pathlib
566
+ values = [
567
+ {"qname": "person.last_name", "page_no": 1, "set_to": "Park"},
568
+ {"qname": "person.first_name", "page_no": 1, "set_to": "Joon"},
569
+ # Checkbox: use the field's literal on_value, NOT "true"/"false"
570
+ {"qname": "is_adult", "page_no": 1, "set_to": "/On"},
571
+ ]
572
+ pathlib.Path("<TMP>/values.json").write_text(
573
+ json.dumps(values, ensure_ascii=False, indent=2),
574
+ encoding="utf-8",
575
+ )
576
+ EOF
577
+
578
+ STEP 5 — Apply
579
+ bash <SKILL>/scripts/make.sh fill apply \
580
+ "{FORM_PDF}" <TMP>/values.json "{OUTPUT_PDF}"
581
+
582
+ # If you must skip the wrapper (custom validation / batch driver),
583
+ # USE EXACTLY THIS pypdf snippet — see <SKILL>/docs/forms-guide.md §B.4.1:
584
+ python3 <<EOF
585
+ from pypdf import PdfReader, PdfWriter
586
+ src = PdfReader("{FORM_PDF}")
587
+ out = PdfWriter(clone_from=src) # ← THE constructor
588
+ for page_no, vals in values_by_page.items():
589
+ out.update_page_form_field_values(
590
+ out.pages[page_no - 1], vals,
591
+ auto_regenerate=False,
592
+ )
593
+ out.set_need_appearances_writer(True) # ← MANDATORY
594
+ with open("{OUTPUT_PDF}", "wb") as fh:
595
+ out.write(fh)
596
+ EOF
597
+ # NEVER use any of these — they "succeed silently" (no error, no values):
598
+ # - PdfWriter() + clone_reader_document_root(src)
599
+ # - patching page["/Annots"] /V directly
600
+ # - PdfWriter() + append_pages_from_reader(src)
601
+ # - pypdf 1.x camelCase updatePageFormFieldValues (removed)
602
+
603
+ STEP 6 — Verify
604
+ bash <SKILL>/scripts/make.sh fill rasterize "{OUTPUT_PDF}" <TMP>/verify/
605
+ # Open <TMP>/verify/page_*.png and visually confirm each filled field.
606
+
607
+ STEP 7 — Missing-fields report (if MISSING_FIELDS_REPORT)
608
+ Print: "Filled X of Y fields. Missing: <qname>, <qname>, …"
609
+ For each missing: state which MATERIALS[] would have provided it.
610
+
611
+ CONSTRAINTS:
612
+ - The pypdf snippet in STEP 5 is THE only working pattern. Don't try variants.
613
+ - Checkboxes: write the literal on_value (`/On`, `/Yes`, `/Choice2`),
614
+ never `"true"`/`"false"`/`true`/`1`.
615
+ - Don't 2>/dev/null the apply step — silent-failure is the dominant mode.
616
+ ```
617
+
618
+ ---
619
+
620
+ ## P9 — Tabular data → printable PDF
621
+
622
+ ### Match signatures
623
+
624
+ - "把这份 {INPUT_XLSX}({N} 行)导出成 PDF / 打印"
625
+ - "export 10k+ rows as PDF, landscape, repeat header"
626
+ - "{xlsx} 转 PDF 可打印"
627
+
628
+ ### Canonical query
629
+
630
+ ```
631
+ TASK: Convert {INPUT_XLSX} (N rows) to PDF at {OUTPUT_PDF} with
632
+ orientation={ORIENTATION}, repeat_header={REPEAT_HEADER},
633
+ mode={FULL_OR_PREVIEW}.
634
+
635
+ STEP 0 — Strict wide-table / Superstore route check
636
+ If the request is a multi-format Excel conversion package (CSV + JSON +
637
+ PDF + CSV→Excel reverse validation), and the PDF must be HTML→PDF with
638
+ A4 landscape, repeated headers, all columns visible, no truncation, and
639
+ no CSS counters, load:
640
+ <SKILL_XLSX>/docs/superstore-multiformat-conversion-case.md
641
+ Follow its HTML-source workflow instead of the LibreOffice path below.
642
+
643
+ STEP 1 — Sanity probe
644
+ python3 -c "import pandas as pd; df = pd.read_excel('{INPUT_XLSX}'); print(len(df))"
645
+ # If row_count > 500 AND user didn't state mode → STOP and ASK:
646
+ # "This dataset has N rows. Full export will produce a ~XX MB PDF
647
+ # (estimated YY pages). Do you want full or first-N preview?"
648
+
649
+ STEP 2 — Configure print settings (openpyxl)
650
+ python3 <<EOF
651
+ from openpyxl import load_workbook
652
+ book = load_workbook("{INPUT_XLSX}")
653
+ ws = book.active
654
+ ws.page_setup.orientation = "{ORIENTATION}" # 'landscape' or 'portrait'
655
+ ws.page_setup.fitToWidth = 1
656
+ ws.page_setup.fitToHeight = 0
657
+ if {REPEAT_HEADER}:
658
+ ws.print_title_rows = "1:1" # repeat header on every page
659
+ ws.print_options.gridLines = True
660
+ book.save("<TMP>/printable.xlsx")
661
+ EOF
662
+
663
+ STEP 3 — Convert via LibreOffice (NOT openpyxl-native; print settings need soffice)
664
+ python3 <SKILL_XLSX>/scripts/office/soffice.py \
665
+ --headless --convert-to pdf --outdir <TMP> <TMP>/printable.xlsx \
666
+ 2><TMP>/soffice.log
667
+ mv <TMP>/printable.pdf "{OUTPUT_PDF}"
668
+
669
+ STEP 4 — VERIFY (mandatory because soffice may ignore print settings)
670
+ pdfinfo "{OUTPUT_PDF}" | grep -E "Pages|Page size"
671
+ ls -lh "{OUTPUT_PDF}"
672
+ # If size > 50 MB and user wanted preview → mode mismatch; rerun.
673
+
674
+ # Open page 1 + last page visually:
675
+ PAGES=$(pdfinfo "{OUTPUT_PDF}" | awk '/^Pages/{print $2}')
676
+ pdftoppm -r 100 -png -f 1 -l 1 "{OUTPUT_PDF}" <TMP>/p1
677
+ pdftoppm -r 100 -png -f $PAGES -l $PAGES "{OUTPUT_PDF}" <TMP>/last
678
+ # Check: page 1 has the header; last page rows are not truncated;
679
+ # orientation looks right.
680
+
681
+ STEP 5 — Recovery: print settings didn't survive soffice
682
+ Fall back to rendering via the pdf HTML pipeline:
683
+ - For Superstore-like wide data, use the ready workflow and editable HTML
684
+ artifact pattern in <SKILL_XLSX>/docs/superstore-multiformat-conversion-case.md.
685
+ - Convert xlsx → dense HTML table with @page A4 landscape and
686
+ thead { display: table-header-group; }.
687
+ - Use bash <SKILL>/scripts/make.sh render with --format A4 --landscape.
688
+ - Verify page size, repeated header, all headers present, and no ellipsis.
689
+
690
+ CONSTRAINTS:
691
+ - row_count > 500 + no mode → ASK before producing a 50+ MB PDF.
692
+ - Never trust openpyxl's print settings without re-opening the converted
693
+ PDF and visually checking page 1 + last page.
694
+ - Don't 2>/dev/null soffice — its stderr explains why settings failed.
695
+ ```
696
+
697
+ ---
698
+
699
+ ## P10 — DOCX ↔ PDF / MD / HTML round-trip with fidelity report
700
+
701
+ > Progressive case: for legal/contract Word templates where the PDF must look professional (formal cover, fill lines, signature/seal tables), read [`docx-contract-roundtrip-professional-case.md`](docx-contract-roundtrip-professional-case.md) before executing the generic P10 steps. Reuse its editable HTML artifact instead of shipping a raw Pandoc/LibreOffice export.
702
+
703
+ ### Match signatures
704
+
705
+ - "把这份 {INPUT_PATH} (.docx/.pdf/.md) 转成 {TARGET_FORMATS[]},并评估 fidelity loss"
706
+ - "convert {contract / report} to PDF + MD + HTML, tell me what's lost"
707
+ - "DOCX 双向转换 / round-trip"
708
+
709
+ ### Canonical query
710
+
711
+ ```
712
+ TASK: Convert {INPUT_PATH} into each format in {TARGET_FORMATS[]} and
713
+ produce a fidelity-loss inventory. Output to {OUTPUT_DIR}.
714
+
715
+ STEP 1 — Normalize input
716
+ Case A — INPUT_PATH ends with .doc (legacy binary):
717
+ python3 <SKILL_XLSX>/scripts/office/soffice.py \
718
+ --headless --convert-to docx --outdir <TMP> "{INPUT_PATH}" \
719
+ 2><TMP>/soffice.log
720
+ INPUT_PATH=<TMP>/<basename>.docx
721
+
722
+ STEP 2 — Detect structural elements that risk fidelity loss
723
+ python3 <<EOF
724
+ from docx import Document
725
+ d = Document("{INPUT_PATH}")
726
+ # Inventory:
727
+ # - Tables with merged cells (rowspan/colspan)
728
+ # - Headers / footers with content
729
+ # - Footnotes / endnotes / comments
730
+ # - Embedded objects (Excel ranges, Visio shapes, OLE)
731
+ # - Tracked changes / revisions
732
+ # - Section breaks with different page sizes
733
+ EOF
734
+
735
+ STEP 3 — Convert to each TARGET_FORMAT (parallel)
736
+ For PDF: native DOCX→PDF render/export first (docx docx_to_pdf.py or
737
+ LibreOffice/soffice export) → verify. Do NOT route DOCX through
738
+ Markdown/HTML just to make a PDF; that loses Word layout. Use
739
+ HTML→PDF only if the user asks for redesign/recomposition or direct
740
+ render is visibly unacceptable, and state that decision.
741
+ For MD: pandoc {INPUT_PATH} -o {OUTPUT_DIR}/output.md
742
+ For HTML: pandoc {INPUT_PATH} -o {OUTPUT_DIR}/output.html --self-contained
743
+
744
+ STEP 4 — Fidelity-loss inventory (mandatory deliverable)
745
+ Produce a table:
746
+ | Element | DOCX | PDF | MD | HTML | Severity |
747
+ |---|---|---|---|---|---|
748
+ | Tables (merged cells) | ✓ | ✓ | LOST → flat | LOST → flat | HIGH |
749
+ | Headers / footers | ✓ | ✓ | LOST | LOST | MED |
750
+ | Footnotes | ✓ | ✓ | LOST | LOST | MED |
751
+ | Comments / tracked changes | ✓ | LOST | LOST | LOST | HIGH for legal |
752
+ | Embedded Excel ranges | ✓ | image | LOST | LOST | HIGH |
753
+ | Section page sizes | ✓ | ✓ | N/A | N/A | LOW |
754
+
755
+ STEP 5 — Visual verification on PDF outputs (legal/contract docs critical)
756
+ pdftoppm -r 150 -png -f 1 -l 1 {OUTPUT_DIR}/output.pdf <TMP>/p1
757
+ # Open <TMP>/p1-1.png — confirm signature blocks, seals, stamps render.
758
+ # For multi-page legal docs, also rasterize the signature page:
759
+ SIG_PAGE=$(pdftotext -layout {OUTPUT_DIR}/output.pdf - | grep -n "^Signature\|签字\|签章" | head -1 | cut -d: -f1)
760
+ # …then rasterize that page too.
761
+
762
+ STEP 6 — Round-trip verification (if user wants reverse confirmation)
763
+ pandoc {OUTPUT_DIR}/output.md -o <TMP>/roundtrip.docx
764
+ python3 -c "from docx import Document; …" # diff structures
765
+ # Report the delta back to user.
766
+
767
+ CONSTRAINTS:
768
+ - Fidelity-loss inventory is a MANDATORY deliverable, not optional.
769
+ - For PDF outputs of legal / contract docs, NEVER trust strings/grep
770
+ alone — visual verification on signature pages is required.
771
+ - .doc → .docx must go through soffice first; pandoc on .doc is unreliable.
772
+ - DOCX→PDF native render/export is the default for preservation; HTML→PDF is a redesign/recomposition route, not the default conversion route.
773
+ - Don't 2>/dev/null pandoc / soffice — their stderr lists every dropped element.
774
+ ```
775
+
776
+ ---
777
+
778
+ ## How to use this index
779
+
780
+ 1. **Read the user's incoming query.** Match it against each `Match signatures` block.
781
+ 2. **One match → copy the full Canonical query.** Substitute Slots verbatim
782
+ from the user's actual values. Execute step-by-step. Do not skip
783
+ verification steps.
784
+ 3. **Multiple partial matches → fuse.** Take the strictest verification
785
+ from each matched canonical query; never relax a constraint.
786
+ 4. **No match → fall back** to [`../SKILL.md`](../SKILL.md) Operational rules and
787
+ Routes. Don't force-fit a wrong canonical query — it will encode the
788
+ wrong constraints.
789
+
790
+ ## Universal constraints (apply to every canonical query above)
791
+
792
+ - **Don't `2>/dev/null`.** Redirect to `<TMP>/<step>.log`, grep on demand.
793
+ - **JSON files via `json.dumps(payload, ensure_ascii=False, indent=2)`.**
794
+ - **Always pass `--format` explicitly** to `make.sh render`.
795
+ - **Always verify with `pdfinfo "Page size"` + `pdfimages -list | wc -l`.**
796
+ - **Vision per page** for charts and complex financial tables (`--pages N`).
797
+ - **Locate-first** for >20 page PDFs with targeted queries; index-first
798
+ for >200 pages; budget = 2 blind greps max.