@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,760 @@
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/xlsx`
20
+ > - `<SKILL_PDF>` → `{{DATA_DIR}}/.builtin-skills/pdf`
21
+ > - `<TMP>` → a writable scratch dir (e.g. `/tmp/xlsx-task-<ts>`)
22
+
23
+ ---
24
+
25
+ ## Quick lookup — match user query to a case
26
+
27
+ | # | Match keywords | Slots | Canonical §|
28
+ |---|---|---|---|
29
+ | **X1** | financial PDF → Excel analysis / 财报分析 / 10-K → xlsx with formulas + charts | `PDF_PATHS[]`, `COMPANY`, `METRICS[]`, `OUTPUT_XLSX` | §X1 |
30
+ | **X2** | Excel + PDF + Word multi-format deliverable / 多格式产出 / dashboard + report + memo | `INPUT_DATA`, `ANALYSIS_DIMS[]`, `OUTPUT_DIR`, `DOTNET_BUDGET_MIN(default 5)` | §X2 |
31
+ | **X3** | 500k+ row dataset → pivot tables + dashboard + slicers / 大数据透视 / RFM | `INPUT`, `KEY_COLS[]`, `METRICS[]`, `PIVOT_AXES[]`, `SLICERS[]`, `OUTPUT_XLSX` | §X3 |
32
+ | **X4** | 240-page financial report → Excel preserving every table / 复杂金融 PDF→Excel | `PDF_PATH`, `STATEMENTS[]`, `OUTPUT_XLSX` | §X4 |
33
+ | **X5** | multi-year financial analysis / 财务分析 / revenue/margin/growth/segment trends | `COMPANY`, `YEAR_RANGE`, `PDF_PATHS[]`, `METRICS[]`, `OUTPUT_XLSX` | §X5 |
34
+ | **X6** | composite score / index / ranking with stated range / 综合评分 0-100 | `INPUT_XLSX`, `SCORE_COLS[]`, `WEIGHTS[]`, `TARGET_RANGE`, `OUTPUT_XLSX` | §X6 |
35
+ | **X7** | cross-sheet dynamic formulas / Inputs → Summary auto-update / 跨 sheet 引用 | `INPUT_LAYOUT`, `SUMMARY_LAYOUT`, `OUTPUT_XLSX` | §X7 |
36
+ | **X8** | xlsx ↔ csv ↔ json ↔ pdf with print settings / 表格格式转换 / 打印设置 / Superstore | `INPUT_XLSX`, `OUTPUT_FORMATS[]`, `PRINT_SETTINGS`, `OUTPUT_DIR` | §X8 + [Superstore case](superstore-multiformat-conversion-case.md) |
37
+
38
+ ---
39
+
40
+ ## X1 — Financial PDF → Excel analysis with formulas + charts
41
+
42
+ ### Match signatures
43
+
44
+ - "读 {COMPANY} 的 {YEAR_RANGE} 年报 PDF,提取 {METRICS},输出 Excel 含公式和图表"
45
+ - "build an Excel analysis of {COMPANY}'s {years} from these annual reports"
46
+ - "extract revenue / EPS / store count / segment data from {PDF}, build xlsx"
47
+
48
+ ### Canonical query
49
+
50
+ ```
51
+ TASK: From {PDF_PATHS[]} (annual reports of {COMPANY}), extract
52
+ {METRICS[]} and build a formula-first Excel analysis at {OUTPUT_XLSX}
53
+ with cross-year derived metrics + charts.
54
+
55
+ STEP 1 — PDF read: ALWAYS go through [pdf] §P6 + §P7
56
+ # §P6 = locate-first (build heading index before any extraction).
57
+ # §P7 = vision per page for any financial-table page (balance sheet,
58
+ # income statement, cash flow, debt schedule).
59
+ # Do NOT pdfplumber over financial tables — see [pdf] P7 for why.
60
+ # Output: a flat list of {year, metric, value, source_page} tuples.
61
+
62
+ STEP 2 — Build the workbook structure
63
+ Sheets:
64
+ - Inputs / Raw (blue text #0000FF, primary values from PDF)
65
+ - Calculations (black text #000000, all = formulas)
66
+ - Summary (green text #008000 for cross-sheet refs)
67
+ - Charts (visual, data sources point at formula cells)
68
+
69
+ python3 <<EOF
70
+ from openpyxl import Workbook
71
+ from openpyxl.styles import Font, PatternFill
72
+ book = Workbook()
73
+ inputs = book.active; inputs.title = "Inputs"
74
+ blue = Font(color="0000FF")
75
+ black = Font(color="000000")
76
+ # Header
77
+ inputs.append(["Year"] + ["{COMPANY} {m}" for m in METRICS])
78
+ for y in years:
79
+ row = [y] + [extracted[(y, m)] for m in METRICS]
80
+ inputs.append(row)
81
+ for cell in inputs[inputs.max_row]:
82
+ cell.font = blue
83
+ EOF
84
+
85
+ STEP 3 — Derived metrics (every cell MUST be a = formula, not a literal)
86
+ python3 <<EOF
87
+ calc = book.create_sheet("Calculations")
88
+ calc.append(["Year", "Revenue Growth", "Operating Margin", "EPS Growth"])
89
+ for r_idx in range(2, len(years) + 2):
90
+ calc.append([
91
+ f"=Inputs!A{r_idx}",
92
+ f"=(Inputs!B{r_idx} - Inputs!B{r_idx-1}) / Inputs!B{r_idx-1}",
93
+ f"=Inputs!C{r_idx} / Inputs!B{r_idx}",
94
+ f"=(Inputs!D{r_idx} - Inputs!D{r_idx-1}) / Inputs!D{r_idx-1}",
95
+ ])
96
+ EOF
97
+ # NEVER pre-compute these in Python and write_number them. The user
98
+ # must be able to flip an Inputs cell, recalc, and see Calculations move.
99
+
100
+ STEP 4 — Charts (data sources point at FORMULA cells, not literals)
101
+ python3 <<EOF
102
+ from openpyxl.chart import LineChart, BarChart, Reference
103
+ ch = LineChart()
104
+ ch.title = "{COMPANY} Revenue Trend"
105
+ data = Reference(inputs, min_col=2, min_row=1, max_col=2, max_row=len(years)+1)
106
+ cats = Reference(inputs, min_col=1, min_row=2, max_row=len(years)+1)
107
+ ch.add_data(data, titles_from_data=True)
108
+ ch.set_categories(cats)
109
+ book["Calculations"].add_chart(ch, "F2")
110
+ EOF
111
+
112
+ STEP 5 — Save + recalc
113
+ book.save("{OUTPUT_XLSX}")
114
+ python <SKILL>/scripts/recalc.py "{OUTPUT_XLSX}" 60 2><TMP>/recalc.log
115
+
116
+ STEP 6 — VERIFY (mandatory two-gate)
117
+ # Gate 1: total_errors == 0
118
+ # Gate 2: total_formulas > 0 AND > expected_min (e.g. years × metrics × 2)
119
+ jq '.status, .total_errors, .total_formulas' <recalc-stdout>
120
+ # status != "success" → fix per recalc-guide.md §3 error table.
121
+ # total_formulas == 0 → DELIVERY FAILED, rewrite STEP 3 with = formulas.
122
+
123
+ STEP 7 — Spot-check formula correctness (not just count)
124
+ python3 <<EOF
125
+ from openpyxl import load_workbook
126
+ book = load_workbook("{OUTPUT_XLSX}", data_only=True)
127
+ # Pick 1-2 derived cells and compare to a Python re-computation
128
+ # from the Inputs sheet. Mismatch → wrong formula references.
129
+ EOF
130
+
131
+ CONSTRAINTS:
132
+ - PDF reading: §P6 + §P7, never pdfplumber on financial tables.
133
+ - Every derived value: = formula, not literal. No exceptions.
134
+ - recalc → total_formulas == 0 is FAILURE, not success.
135
+ - Don't 2>/dev/null vision calls or recalc — log to <TMP>/.
136
+ ```
137
+
138
+ ---
139
+
140
+ ## X2 — Multi-format deliverable (Excel + PDF + Word) via parallel sub-agents
141
+
142
+ ### Match signatures
143
+
144
+ - "分析 {DATA},产出 Excel dashboard + PDF report + Word memo"
145
+ - "build me a triple deliverable: spreadsheet + presentation PDF + Word"
146
+ - "用户退款 / 业务三件套 / 完整分析包"
147
+
148
+ ### Canonical query
149
+
150
+ ```
151
+ TASK: Produce three coordinated deliverables for {ANALYSIS_TOPIC} in
152
+ {OUTPUT_DIR}: dashboard.xlsx + report.pdf + memo.docx.
153
+
154
+ STEP 1 — Pre-flight: confirm dotnet for docx
155
+ which dotnet 2><TMP>/which.log
156
+ # If missing: install IS POSSIBLE but takes ~5 minutes (200 MB download).
157
+ # Either pre-install before launching sub-agents, OR the docx sub-agent
158
+ # prompt must explicitly budget setup time per STEP 2.
159
+
160
+ STEP 2 — Launch 3 background sub-agents (task tool, run_in_background: true)
161
+ # Foreground task calls run sequentially — background mode is what
162
+ # makes the three deliverables build in parallel. Track with
163
+ # task_query / task_output.
164
+ # CRITICAL: the Word sub-agent prompt must include:
165
+ # "Setup may take up to {DOTNET_BUDGET_MIN} minutes for dotnet install
166
+ # if not already present. Do NOT abort during steady network activity.
167
+ # Only consider yourself stalled if no progress for >10 minutes."
168
+
169
+ Sub-agent prompts:
170
+ - dashboard: <follow X1 / X3 / X5 canonical query for the data shape>
171
+ → write {OUTPUT_DIR}/dashboard.xlsx
172
+ - report-pdf: <follow [pdf] §P3 canonical for chart-rich PDF>
173
+ → write {OUTPUT_DIR}/report.pdf
174
+ - memo-docx: <docx canonical>
175
+ "Setup may take {DOTNET_BUDGET_MIN}min for dotnet — wait it
176
+ out. If install genuinely fails, fall back to python-docx
177
+ and EXPLICITLY note 'docx unavailable, python-docx used,
178
+ formatting fidelity reduced' in the deliverable."
179
+
180
+ STEP 3 — Cross-check (yourself, after all three return)
181
+ Spot-check 3 numbers that appear in all three deliverables. They MUST
182
+ be identical. If any differ, identify the divergent figure and relaunch
183
+ the sub-agent whose input data feed was wrong.
184
+
185
+ STEP 4 — Final deliverables verification
186
+ ls -lh {OUTPUT_DIR}/dashboard.xlsx {OUTPUT_DIR}/report.pdf {OUTPUT_DIR}/memo.docx
187
+ # xlsx: total_formulas > 0 (per X1 STEP 6)
188
+ # pdf: pdfimages count > 0 (per [pdf] P3 STEP 5)
189
+ # docx: spot-check via word/document.xml unzip → confirm formatting present
190
+
191
+ STEP 5 — Cross-deliverable consistency report
192
+ Pick 3 KPIs (e.g. total revenue, top segment, growth rate). They must
193
+ appear identically in xlsx Summary, pdf KPI grid, and docx executive
194
+ summary. Mismatch → which one is wrong? Fix that sub-agent's input data
195
+ feed, never patch the deliverable manually.
196
+
197
+ CONSTRAINTS:
198
+ - dotnet install ≠ stall. Budget {DOTNET_BUDGET_MIN}min + 10min slack.
199
+ - python-docx fallback IS allowed but MUST be flagged in the deliverable.
200
+ - Cross-deliverable numbers MUST match — that's the whole point of one batch.
201
+ - Sub-agent prompts: never `2>/dev/null` any setup or build step.
202
+ ```
203
+
204
+ ---
205
+
206
+ ## X3 — 500k+ row dataset → pivot / dashboard / slicers
207
+
208
+ ### Match signatures
209
+
210
+ - "处理 {INPUT}(54万行 / 500k+ rows)做透视 / dashboard / RFM"
211
+ - "clean + pivot + slicer dashboard from {large_dataset}"
212
+ - "Online Retail / 电商交易明细 → 完整分析"
213
+
214
+ ### Canonical query
215
+
216
+ ```
217
+ TASK: From {INPUT} (~{ROW_COUNT} rows), build a formula-first dashboard
218
+ at {OUTPUT_XLSX} with pivots over {PIVOT_AXES[]} and slicers on
219
+ {SLICERS[]}.
220
+
221
+ STEP 1 — Read with pandas by default (polars if pandas is memory-bound)
222
+ # For 500k+ rows, do NOT inspect/transform source data with openpyxl row loops.
223
+ # Use pandas for ordinary large tabular work; switch to polars for memory/latency pressure.
224
+ python3 <<EOF
225
+ import pandas as pd
226
+ frame = pd.read_excel("{INPUT}", engine="openpyxl")
227
+ print("Loaded rows:", len(frame))
228
+ # If this is too slow or memory-bound, rerun with:
229
+ # import polars as pl
230
+ # frame = pl.read_excel("{INPUT}")
231
+ EOF
232
+
233
+ STEP 2 — Clean (RECORD what you removed; report counts)
234
+ python3 <<EOF
235
+ # Cleaning rules — report row counts at each step:
236
+ before = len(frame)
237
+ frame = frame.filter(~pl.col("InvoiceNo").str.starts_with("C")) # cancellations
238
+ print("After dropping cancellations:", len(frame), "removed:", before - len(frame))
239
+ before = len(frame)
240
+ frame = frame.filter(pl.col("Quantity") > 0)
241
+ frame = frame.filter(pl.col("UnitPrice") > 0)
242
+ print("After dropping non-positive:", len(frame), "removed:", before - len(frame))
243
+ before = len(frame)
244
+ frame = frame.filter(pl.col("CustomerID").is_not_null())
245
+ print("After dropping null CustomerID:", len(frame), "removed:", before - len(frame))
246
+ EOF
247
+
248
+ STEP 3 — WRITE FULL CLEANED ROWS (NEVER df.sample / df.head!)
249
+ # The most critical step. df.sample(100k) on a 397k-row frame breaks
250
+ # every downstream pivot and SUMIF without raising any error.
251
+ # If openpyxl's default writer is too slow, use write_only mode below.
252
+
253
+ python3 <<EOF
254
+ from openpyxl import Workbook
255
+ from openpyxl.cell import WriteOnlyCell
256
+ book = Workbook(write_only=True) # streaming writer; ~4× faster
257
+ raw = book.create_sheet("Raw")
258
+ raw.append(list(frame.columns))
259
+ for row in frame.iter_rows(): # ALL rows — no slicing
260
+ raw.append([WriteOnlyCell(raw, value=v) for v in row])
261
+ book.save("<TMP>/raw.xlsx")
262
+ EOF
263
+ # Confirm row count matches:
264
+ python3 -c "from openpyxl import load_workbook; wb=load_workbook('<TMP>/raw.xlsx', read_only=True); print(wb['Raw'].max_row)"
265
+
266
+ STEP 4 — Derived columns as = formulas
267
+ # Reopen with default reader to add formulas + pivot/slicer scaffolding.
268
+ python3 <<EOF
269
+ from openpyxl import load_workbook
270
+ book = load_workbook("<TMP>/raw.xlsx")
271
+ raw = book["Raw"]
272
+ # Add Revenue = Quantity * UnitPrice as a formula column
273
+ last = raw.max_row
274
+ raw.cell(row=1, column=raw.max_column + 1, value="Revenue")
275
+ for r in range(2, last + 1):
276
+ raw.cell(row=r, column=raw.max_column,
277
+ value=f"=B{r}*C{r}") # adjust col letters to schema
278
+ EOF
279
+
280
+ STEP 5 — Summary sheet: Excel-NATIVE aggregation only
281
+ # Choose by structure complexity (see <SKILL>/docs/advanced-reference.md §6.2):
282
+ # - Single-axis aggregation → =SUMIFS / =COUNTIFS / =AVERAGEIFS
283
+ # - Multi-axis cross-tab + drilldown → pivot table
284
+
285
+ Single-axis example:
286
+ summary.cell(row=r, column=2,
287
+ value=f"=SUMIFS(Raw!{rev_col}:{rev_col}, Raw!{cat_col}:{cat_col}, A{r})")
288
+
289
+ # NEVER do: frame.group_by("category").sum() → write_number(...).
290
+ # That ships a static snapshot and the recalc gate will not catch it.
291
+
292
+ STEP 6 — Slicers (openpyxl CANNOT create from scratch)
293
+ # Two production paths — pick one:
294
+
295
+ Path A (RECOMMENDED) — template inheritance:
296
+ # Pre-author template.xlsx ONCE in Excel/LibreOffice with the pivot
297
+ # and slicer wired to a named range "DataRange". Per run:
298
+ book = load_workbook("<SKILL>/templates/with-slicer.xlsx")
299
+ # Write Raw rows into the named range; pivot + slicer auto-refresh on recalc.
300
+
301
+ Path B — surgical XML transplant from a known-good template:
302
+ # See <SKILL>/docs/raw-xml-escape-hatch.md §1 + §3.
303
+ # Copy xl/pivotTables/*.xml + xl/pivotCaches/*.xml + xl/slicers/*.xml
304
+ # via scripts/office/{unpack,pack}.py.
305
+
306
+ IF NEITHER PATH IS AVAILABLE:
307
+ # Tell the user explicitly: "No slicer template available; falling back
308
+ # to a static dropdown filter on the Summary sheet. Slicer cannot be
309
+ # authored from scratch by openpyxl."
310
+ # Do NOT silently downgrade.
311
+
312
+ STEP 7 — Save + recalc
313
+ book.save("{OUTPUT_XLSX}")
314
+ python <SKILL>/scripts/recalc.py "{OUTPUT_XLSX}" 120 2><TMP>/recalc.log
315
+
316
+ STEP 8 — VERIFY (4 mandatory checks)
317
+ # 1. row count: Raw sheet matches the cleaned frame
318
+ # 2. total_errors == 0
319
+ # 3. total_formulas substantial (e.g. > #pivot_cells + #derived_cols)
320
+ # 4. summary correctness: spot-check 1-2 cells against polars on FULL frame
321
+ python3 <<EOF
322
+ from openpyxl import load_workbook
323
+ book = load_workbook("{OUTPUT_XLSX}", data_only=True)
324
+ print("Raw rows:", book["Raw"].max_row - 1)
325
+ # Compare a SUMIF result to the same aggregation on the FULL pandas/polars frame
326
+ EOF
327
+
328
+ CONSTRAINTS:
329
+ - 500k+ row source inspection/cleaning: pandas/polars default; openpyxl row-by-row source traversal is forbidden unless preserving workbook objects is the explicit goal.
330
+ - df.sample / df.head / per-category truncation on the raw sheet = forbidden.
331
+ - Summaries: pivot table or =SUMIFS only. Python groupby write-back = forbidden.
332
+ - Slicers: template-inherit OR XML-transplant OR explicit user notification.
333
+ NEVER silently downgrade.
334
+ - 4-check verification is mandatory; row count is the canary.
335
+ ```
336
+
337
+ ---
338
+
339
+ ## X4 — Complex financial PDF → Excel preserving every table
340
+
341
+ ### Match signatures
342
+
343
+ - "把这份 {PDF_PATH}(240页 financial report / HKEx 2024)转成 Excel"
344
+ - "convert balance sheet / income statement / cash flow PDF to xlsx"
345
+ - "金融年报 → Excel,要保留所有 table 结构"
346
+
347
+ ### Canonical query
348
+
349
+ ```
350
+ TASK: Convert {STATEMENTS[]} from {PDF_PATH} into {OUTPUT_XLSX}, one
351
+ sheet per statement, preserving multi-level headers and footnotes.
352
+
353
+ STEP 1 — Locate financial-table pages
354
+ Run [pdf] §P6 first → list of pages per statement.
355
+
356
+ STEP 2 — Vision per page (per [pdf] §P7)
357
+ # pdfplumber FORBIDDEN on financial tables even when text-native.
358
+ # Output: per-page TSV with header_l1 | header_l2 | label | value | footnote_ref
359
+
360
+ STEP 3 — Parse vision output to a normalised frame
361
+ python3 <<EOF
362
+ rows = []
363
+ for p in pages:
364
+ data = json.loads(open(f"<TMP>/vision-p{p}.json").read())
365
+ for line in data["chunks"][0]["text"].splitlines():
366
+ parts = line.split("\t")
367
+ if len(parts) == 5:
368
+ rows.append({"page": p, "l1": parts[0], "l2": parts[1],
369
+ "label": parts[2], "value": parts[3],
370
+ "footnote_ref": parts[4]})
371
+ EOF
372
+
373
+ STEP 4 — Write to xlsx (one sheet per statement)
374
+ python3 <<EOF
375
+ from openpyxl import Workbook
376
+ from openpyxl.styles import Font
377
+ book = Workbook()
378
+ book.remove(book.active)
379
+ bold = Font(bold=True)
380
+ for stmt in STATEMENTS:
381
+ ws = book.create_sheet(stmt[:31])
382
+ stmt_rows = [r for r in rows if r["statement"] == stmt]
383
+ # Multi-level header
384
+ ws.append(["", *[r["l1"] for r in unique_columns]])
385
+ ws.append(["Label", *[r["l2"] for r in unique_columns]])
386
+ for header_cell in ws[1] + ws[2]:
387
+ header_cell.font = bold
388
+ # Data
389
+ for row in stmt_rows:
390
+ ws.append([row["label"], row["value"], row["footnote_ref"]])
391
+ # Footnotes sheet (separate, keyed by ref number)
392
+ fn = book.create_sheet("Footnotes")
393
+ fn.append(["Ref", "Text"])
394
+ # ... populate from vision-extracted footnote glossary ...
395
+ book.save("{OUTPUT_XLSX}")
396
+ EOF
397
+
398
+ STEP 5 — VERIFY (cross-check 3 sub-totals against source)
399
+ # Pick a known sub-total line per statement (e.g. "Total assets",
400
+ # "Net income", "Net cash from operations"). Compare the value in
401
+ # {OUTPUT_XLSX} to the value visible in the source PDF on the
402
+ # corresponding page. Mismatch → re-run vision on that page with a
403
+ # more explicit prompt. NEVER patch the xlsx by hand.
404
+
405
+ CONSTRAINTS:
406
+ - Pure data dump — no derived values to compute on this leg.
407
+ If the user wants margins / ratios on top, switch to X5.
408
+ - Don't hand-fix vision misreads in xlsx; re-prompt vision instead.
409
+ - Don't 2>/dev/null vision calls.
410
+ ```
411
+
412
+ ---
413
+
414
+ ## X5 — Multi-year financial analysis (Formula-first hot spot)
415
+
416
+ ### Match signatures
417
+
418
+ - "{COMPANY} {YEAR_RANGE} 财务分析 Excel,含 revenue / margin / growth / segment 趋势"
419
+ - "build a financial-analysis xlsx for {COMPANY} covering {years}"
420
+ - "腾讯 / Alibaba / Apple 多年财报对比 + 派生指标"
421
+
422
+ ### Canonical query
423
+
424
+ ```
425
+ TASK: Build a formula-first multi-year financial analysis for {COMPANY}
426
+ covering {YEAR_RANGE}, output to {OUTPUT_XLSX}, including:
427
+ revenue, gross margin, operating margin, net margin, EPS, EPS growth,
428
+ revenue growth, CAGR, segment breakdown.
429
+
430
+ STEP 1 — PDF read: §P6 + §P7 per [pdf]
431
+ Output: tuples of (year, segment, metric, value, source_page).
432
+
433
+ STEP 2 — Inputs sheet (raw values, blue text)
434
+ See X1 STEP 2.
435
+
436
+ STEP 3 — Derived sheets (every cell = formula, no exceptions)
437
+ python3 <<EOF
438
+ calc = book.create_sheet("Derived")
439
+ calc.append(["Year", "Revenue Growth", "Gross Margin", "Op Margin",
440
+ "Net Margin", "EPS Growth", "Revenue CAGR (5y)"])
441
+ n = len(years)
442
+ for i, y in enumerate(years, start=2):
443
+ calc.append([
444
+ f"=Inputs!A{i}",
445
+ f"=IFERROR((Inputs!B{i}-Inputs!B{i-1})/Inputs!B{i-1}, \"\")" if i > 2 else "",
446
+ f"=Inputs!C{i}/Inputs!B{i}", # gross / revenue
447
+ f"=Inputs!D{i}/Inputs!B{i}",
448
+ f"=Inputs!E{i}/Inputs!B{i}",
449
+ f"=IFERROR((Inputs!F{i}-Inputs!F{i-1})/Inputs!F{i-1}, \"\")" if i > 2 else "",
450
+ f"=IFERROR((Inputs!B{1+n}/Inputs!B{2})^(1/{n-1})-1, \"\")" if i == 2 else "",
451
+ ])
452
+ EOF
453
+ # Wrap divisions with IFERROR to prevent #DIV/0! poisoning the recalc gate.
454
+
455
+ STEP 4 — Charts (data sources reference Derived sheet formula cells)
456
+ See X1 STEP 4.
457
+
458
+ STEP 5 — Save + recalc
459
+ book.save("{OUTPUT_XLSX}")
460
+ python <SKILL>/scripts/recalc.py "{OUTPUT_XLSX}" 60 2><TMP>/recalc.log
461
+
462
+ STEP 6 — VERIFY (mandatory two-gate + formula-count check)
463
+ # Gate 1: total_errors == 0
464
+ # Gate 2: total_formulas > 0 ← THE CRITICAL CHECK
465
+ jq -r '.status, .total_errors, .total_formulas' <recalc-stdout>
466
+
467
+ # If total_formulas is 0 OR less than #years × #metrics × 2:
468
+ # → DELIVERY FAILED. The workbook is a static snapshot, not a model.
469
+ # → Re-do STEP 3 with = formulas. Don't ship anyway.
470
+
471
+ # Per-sheet formula count (catches "0 formulas in Derived"):
472
+ python3 <<EOF
473
+ from openpyxl import load_workbook
474
+ book = load_workbook("{OUTPUT_XLSX}")
475
+ for ws in book.worksheets:
476
+ n = sum(1 for row in ws.iter_rows() for c in row
477
+ if isinstance(c.value, str) and c.value.startswith("="))
478
+ print(ws.title, "=", n, "formulas")
479
+ EOF
480
+
481
+ STEP 7 — Spot-check a derived value against an external recompute
482
+ # Pick one growth rate. Compute it manually from the source PDF values.
483
+ # Compare to the Derived sheet output. Mismatch → wrong column reference.
484
+
485
+ CONSTRAINTS:
486
+ - total_formulas == 0 OR << expected = DELIVERY FAILURE. Rewrite.
487
+ - Don't 2>/dev/null any vision call or recalc — log and grep on demand.
488
+ - All divisions wrapped with IFERROR.
489
+ - Color: blue for Inputs, black for Derived, green for Summary cross-refs.
490
+ ```
491
+
492
+ ---
493
+
494
+ ## X6 — Composite score / index with stated range
495
+
496
+ ### Match signatures
497
+
498
+ - "做一个 composite score / 综合评分 from {COLS}, normalised {0-100 / 1-10}"
499
+ - "build a risk index / ranking, normalised to {RANGE}"
500
+ - "{Financial_Sample_with_PI} 综合评分要 0-100"
501
+
502
+ ### Canonical query
503
+
504
+ ```
505
+ TASK: Build a composite score on {INPUT_XLSX} using {SCORE_COLS[]} with
506
+ weights {WEIGHTS[]}, normalised to {TARGET_RANGE} (e.g. 0-100),
507
+ output to {OUTPUT_XLSX}.
508
+
509
+ STEP 1 — Open + add Score column
510
+ python3 <<EOF
511
+ from openpyxl import load_workbook
512
+ book = load_workbook("{INPUT_XLSX}")
513
+ ws = book.active
514
+ last_col = ws.max_column
515
+ score_col = last_col + 1
516
+ ws.cell(row=1, column=score_col, value="Composite Score")
517
+ EOF
518
+
519
+ STEP 2 — Choose normalization formula (CLAMP to TARGET_RANGE in formula)
520
+
521
+ # Two patterns — pick one based on score nature:
522
+
523
+ # Pattern A — weighted sum then CLAMP (when raw is unbounded):
524
+ for r in range(2, ws.max_row + 1):
525
+ raw_expr = " + ".join(f"{w}*{col_letter}{r}" for w, col_letter in zip(WEIGHTS, SCORE_COLS))
526
+ formula = f"=ROUND(MIN(MAX(({raw_expr}), {LO}), {HI}), 1)"
527
+ ws.cell(row=r, column=score_col, value=formula)
528
+
529
+ # Pattern B — min-max normalization to TARGET_RANGE:
530
+ raw_col = chr(ord('A') + last_col) # the unnormalized raw composite
531
+ formula = (f"=ROUND(({raw_col}{r} - MIN(${raw_col}$2:${raw_col}${ws.max_row}))"
532
+ f" / (MAX(${raw_col}$2:${raw_col}${ws.max_row})"
533
+ f" - MIN(${raw_col}$2:${raw_col}${ws.max_row}))"
534
+ f" * {HI - LO} + {LO}, 1)")
535
+
536
+ STEP 3 — Save + recalc
537
+ book.save("{OUTPUT_XLSX}")
538
+ python <SKILL>/scripts/recalc.py "{OUTPUT_XLSX}" 60 2><TMP>/recalc.log
539
+
540
+ STEP 4 — IMMEDIATE range verification (the critical step)
541
+ python3 <<EOF
542
+ from openpyxl import load_workbook
543
+ book = load_workbook("{OUTPUT_XLSX}", data_only=True)
544
+ ws = book.active
545
+ scores = [ws.cell(row=r, column=score_col).value
546
+ for r in range(2, ws.max_row + 1)
547
+ if isinstance(ws.cell(row=r, column=score_col).value, (int, float))]
548
+ print("MIN:", min(scores), "MAX:", max(scores))
549
+ # MIN must be >= LO; MAX must be <= HI.
550
+ # If MAX = 1804 when user asked for 0-100 → STEP 2 formula missing CLAMP.
551
+ # FIX THE FORMULA, do NOT blame "data anomaly". Re-recalc.
552
+ EOF
553
+
554
+ STEP 5 — Methodology sheet (audit trail)
555
+ meth = book.create_sheet("Methodology")
556
+ meth.append(["Score Formula", "Weights", "Source Columns", "Range"])
557
+ meth.append([formula_template, str(WEIGHTS), str(SCORE_COLS), f"{LO}-{HI}"])
558
+ book.save("{OUTPUT_XLSX}")
559
+
560
+ CONSTRAINTS:
561
+ - When user states a target range, ENFORCE it in the formula.
562
+ Don't ship a wider range and blame "data anomaly".
563
+ - The verification in STEP 4 is mandatory; without it the formula bug
564
+ won't be caught until the user reports it.
565
+ - Document the formula in a Methodology sheet so the user can audit.
566
+ ```
567
+
568
+ ---
569
+
570
+ ## X7 — Cross-sheet dynamic formulas (modelling)
571
+
572
+ ### Match signatures
573
+
574
+ - "wire up Inputs tab so Summary cells auto-update when Inputs change"
575
+ - "build a model where Summary references Inputs via formulas"
576
+ - "跨 sheet 动态引用 / dynamic linkage"
577
+
578
+ ### Canonical query
579
+
580
+ ```
581
+ TASK: Build {OUTPUT_XLSX} where every Summary cell references the Inputs
582
+ sheet via formulas, with full color-code conventions.
583
+
584
+ STEP 1 — Sheet structure
585
+ python3 <<EOF
586
+ from openpyxl import Workbook
587
+ from openpyxl.styles import Font
588
+ book = Workbook()
589
+ inputs = book.active; inputs.title = "Inputs"
590
+ summary = book.create_sheet("Summary")
591
+ blue = Font(color="0000FF") # primary inputs
592
+ black = Font(color="000000") # in-sheet formulas
593
+ green = Font(color="008000") # cross-sheet references
594
+ EOF
595
+
596
+ STEP 2 — Inputs sheet
597
+ # Column A: label, Column B: value (blue), Column C: source/note
598
+ for label, value, src in INPUT_ROWS:
599
+ inputs.append([label, value, src])
600
+ inputs.cell(row=inputs.max_row, column=2).font = blue
601
+
602
+ STEP 3 — Summary sheet (every cell = =Inputs!ref or = derivation)
603
+ python3 <<EOF
604
+ summary.append(["Metric", "Value"])
605
+ for s in SUMMARY_ROWS:
606
+ # s = (label, formula) where formula references Inputs
607
+ r = summary.max_row + 1
608
+ summary.cell(row=r, column=1, value=s["label"])
609
+ cell = summary.cell(row=r, column=2, value=s["formula"])
610
+ # Color: green if cross-sheet ref, black if same-sheet derivation
611
+ cell.font = green if "Inputs!" in s["formula"] else black
612
+ EOF
613
+
614
+ STEP 4 — Save + recalc
615
+ book.save("{OUTPUT_XLSX}")
616
+ python <SKILL>/scripts/recalc.py "{OUTPUT_XLSX}" 30 2><TMP>/recalc.log
617
+
618
+ STEP 5 — VERIFY linkage (the live-model test)
619
+ python3 <<EOF
620
+ from openpyxl import load_workbook
621
+ # 1. Open data-only, capture a Summary value
622
+ book = load_workbook("{OUTPUT_XLSX}", data_only=True)
623
+ v_before = book["Summary"]["B2"].value
624
+ # 2. Open in formula mode, flip an Inputs value
625
+ book2 = load_workbook("{OUTPUT_XLSX}")
626
+ book2["Inputs"]["B2"] = book2["Inputs"]["B2"].value * 1.10
627
+ book2.save("<TMP>/test.xlsx")
628
+ # 3. Recalc, reopen data-only, confirm Summary moved
629
+ EOF
630
+ python <SKILL>/scripts/recalc.py "<TMP>/test.xlsx" 30 2><TMP>/recalc2.log
631
+ python3 -c "from openpyxl import load_workbook; print(load_workbook('<TMP>/test.xlsx', data_only=True)['Summary']['B2'].value)"
632
+ # Should differ from v_before. If not → Summary cell was a literal,
633
+ # not a formula. Go back to STEP 3.
634
+
635
+ CONSTRAINTS:
636
+ - All Summary cells: formula referencing Inputs, never literal.
637
+ - Color code is part of the deliverable — review at-a-glance audits this.
638
+ - The "flip an input, see Summary move" verification is mandatory.
639
+ ```
640
+
641
+ ---
642
+
643
+ ## X8 — xlsx ↔ csv ↔ json ↔ pdf with print settings
644
+
645
+ ### Match signatures
646
+
647
+ - "把 {INPUT_XLSX} 转成 csv + json + pdf,PDF 要横向 + 重复表头"
648
+ - "export to multiple formats with landscape, repeat header"
649
+ - "Superstore / 多格式数据转换"
650
+
651
+ ### Canonical query
652
+
653
+ ```
654
+ TASK: Convert {INPUT_XLSX} into each format in {OUTPUT_FORMATS[]} with
655
+ print settings {PRINT_SETTINGS}, output to {OUTPUT_DIR}.
656
+
657
+ STEP 0 — Strict Superstore / XML-template / HTML→PDF route check
658
+ If the user requires all of these at once:
659
+ - Excel → CSV + JSON + PDF;
660
+ - CSV → Excel reverse validation;
661
+ - PDF: A4 landscape + repeated headers + all columns visible;
662
+ - CSV→Excel via XML template / direct OOXML, not openpyxl full read-write;
663
+ - PDF via HTML→PDF, not screenshot or LibreOffice conversion;
664
+ then load and follow docs/superstore-multiformat-conversion-case.md.
665
+ That case replaces the simpler pandas/soffice path below.
666
+
667
+ STEP 1 — Sanity probe
668
+ python3 -c "import pandas as pd; df=pd.read_excel('{INPUT_XLSX}'); print('Rows:', len(df)); print('Cols:', list(df.columns)); print('Dtypes:', df.dtypes.to_dict())"
669
+
670
+ STEP 2 — Per-format conversion (parallel where independent)
671
+
672
+ CSV:
673
+ python3 -c "import pandas as pd; pd.read_excel('{INPUT_XLSX}').to_csv('{OUTPUT_DIR}/data.csv', index=False, encoding='utf-8', date_format='%Y-%m-%d')"
674
+
675
+ JSON:
676
+ python3 <<EOF
677
+ import pandas as pd, json, pathlib
678
+ df = pd.read_excel("{INPUT_XLSX}")
679
+ payload = df.to_dict(orient="records")
680
+ pathlib.Path("{OUTPUT_DIR}/data.json").write_text(
681
+ json.dumps(payload, ensure_ascii=False, indent=2, default=str),
682
+ encoding="utf-8",
683
+ )
684
+ EOF
685
+ # For strict "data types correct" requirements, prefer the explicit
686
+ # typed-record pattern in docs/superstore-multiformat-conversion-case.md
687
+ # instead of relying on default=str for timestamps.
688
+
689
+ PDF (with print settings → see [pdf] §P9 canonical):
690
+ # Configure print settings via openpyxl, then convert via soffice.
691
+ # If acceptance requires HTML→PDF or all columns visible in a 10k-row
692
+ # landscape table, use docs/superstore-multiformat-conversion-case.md.
693
+ # Verification on PDF is MANDATORY — soffice may ignore some settings.
694
+
695
+ STEP 3 — Reverse-validation (round-trip integrity)
696
+ python3 <<EOF
697
+ import pandas as pd
698
+ orig = pd.read_excel("{INPUT_XLSX}")
699
+ back = pd.read_csv("{OUTPUT_DIR}/data.csv")
700
+ print("Row count match:", len(orig) == len(back))
701
+ print("Col count match:", len(orig.columns) == len(back.columns))
702
+ # Date columns become strings in CSV — that's expected.
703
+ EOF
704
+
705
+ STEP 4 — PDF visual verification (PRINT-SETTINGS GATE)
706
+ # Per [pdf] §P9 STEP 4. NEVER trust openpyxl print settings without
707
+ # opening the converted PDF and visually checking page 1 + last page:
708
+ pdfinfo {OUTPUT_DIR}/data.pdf | grep -E "Pages|Page size"
709
+ ls -lh {OUTPUT_DIR}/data.pdf
710
+ # If size > 50 MB and user wanted preview → mode mismatch.
711
+ pdftoppm -r 100 -png -f 1 -l 1 {OUTPUT_DIR}/data.pdf <TMP>/p1
712
+ pdftoppm -r 100 -png -f LAST -l LAST {OUTPUT_DIR}/data.pdf <TMP>/last
713
+ # Confirm: page 1 has the header; last page rows not truncated;
714
+ # orientation matches request.
715
+
716
+ STEP 5 — Deliverable summary
717
+ Print:
718
+ - Conversion success / failure per format
719
+ - File sizes
720
+ - PDF page count + page size
721
+ - Any data type changes flagged (date → string in CSV is expected;
722
+ flag anything unexpected)
723
+
724
+ CONSTRAINTS:
725
+ - Row count > 500 + no mode → ASK before producing a 50+ MB PDF.
726
+ - JSON: ensure_ascii=False; for strict type requirements, convert dates
727
+ explicitly and verify numeric fields remain JSON numbers.
728
+ - CSV→Excel reverse validation with XML-template requirement means direct
729
+ OOXML package generation; do not use openpyxl full read-write.
730
+ - PDF print settings: NEVER ship without visual page-1 + last-page check.
731
+ - Don't 2>/dev/null soffice/render commands — stderr explains failures.
732
+ ```
733
+
734
+ ---
735
+
736
+ ## How to use this index
737
+
738
+ 1. **Read the user's incoming query.** Match it against each `Match signatures` block.
739
+ 2. **One match → copy the full Canonical query.** Substitute Slots
740
+ verbatim from the user's actual values. Execute step-by-step. Do not
741
+ skip verification steps (recalc + total_formulas + spot-check).
742
+ 3. **Multiple partial matches → fuse.** Take the strictest verification
743
+ from each matched canonical query; never relax a constraint.
744
+ 4. **No match → fall back** to [`../SKILL.md`](../SKILL.md) Operational rules and
745
+ §2 Decision Tree. Don't force-fit a wrong canonical query.
746
+
747
+ ## Universal constraints (apply to every canonical query above)
748
+
749
+ - **Don't `2>/dev/null`.** Redirect to `<TMP>/<step>.log`, grep on demand.
750
+ - **JSON files via `json.dumps(payload, ensure_ascii=False, indent=2)`.**
751
+ - **Formula-first.** Every derived value = `=` formula, never a literal.
752
+ - **`recalc.py` total_formulas == 0 = delivery failure.** Rewrite, don't ship.
753
+ - **Never `df.sample` / `df.head` on the raw sheet** when a summary will
754
+ aggregate over it. Always write the full row count.
755
+ - **Summaries: pivot tables or `=SUMIFS`/`=COUNTIFS` only.** Python
756
+ groupby written back as values is forbidden.
757
+ - **Slicers: template-inheritance OR XML transplant OR explicit user
758
+ notification.** Never silently downgrade.
759
+ - **When user states a numeric range, enforce it in the formula** with
760
+ `=ROUND(MIN(MAX(raw, LO), HI), 1)`. Spot-check MIN/MAX after recalc.