@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.
- package/bin/mcode-webui.mjs +6 -2
- package/package.json +1 -1
- package/server/assets/agents/_default/prompt-base-all.md +121 -0
- package/server/assets/agents/_default/prompt-base-all.md.hbs +255 -0
- package/server/assets/agents/_default/prompt-base-windows.md +6 -0
- package/server/assets/agents/_default/prompt-base-windows.md.hbs +6 -0
- package/server/assets/agents/_default/prompt-base-worker.md +12 -0
- package/server/assets/agents/_default/prompt-base-worker.md.hbs +27 -0
- package/server/assets/agents/_default/prompt-session-branch.md +3 -0
- package/server/assets/agents/_default/prompt-session-branch.md.hbs +30 -0
- package/server/assets/agents/_default/prompt-session-root.md +4 -0
- package/server/assets/agents/_default/prompt-session-root.md.hbs +32 -0
- package/server/assets/agents/_migration/README.md +20 -0
- package/server/assets/agents/_migration/coder/PERSONA-zh.md +10 -0
- package/server/assets/agents/_migration/coder/PERSONA.md +11 -0
- package/server/assets/agents/_migration/coder/system-prompt.md.hbs +42 -0
- package/server/assets/agents/_migration/general/PERSONA-zh.md +11 -0
- package/server/assets/agents/_migration/general/PERSONA.md +11 -0
- package/server/assets/agents/_migration/general/system-prompt.md.hbs +49 -0
- package/server/assets/agents/_v2/AGENT_CONTEXT.md.hbs +222 -0
- package/server/assets/agents/_v2/coding/SYSTEM.md.hbs +161 -0
- package/server/assets/agents/_v2/explore.md.hbs +38 -0
- package/server/assets/agents/_v2/tui/SYSTEM.md.hbs +147 -0
- package/server/assets/agents/_v2/verifier.md.hbs +32 -0
- package/server/assets/agents/_v2/work/SYSTEM.md.hbs +173 -0
- package/server/assets/agents/_v2/worker.md.hbs +27 -0
- package/server/assets/agents/builtin-agents.json +1 -0
- package/server/assets/agents/desktop-task/archive-title/system-en.md +1 -0
- package/server/assets/agents/desktop-task/archive-title/system-zh.md +1 -0
- package/server/assets/agents/desktop-task/checkpoint/system.md +15 -0
- package/server/assets/agents/desktop-task/output-revision/system.md +1 -0
- package/server/assets/agents/desktop-task/retry/continuation.md +4 -0
- package/server/assets/agents/desktop-task/session-title/system.md +41 -0
- package/server/assets/agents/explore/PERSONA-zh.md +8 -0
- package/server/assets/agents/explore/PERSONA.md +8 -0
- package/server/assets/agents/explore/agent.md +14 -0
- package/server/assets/agents/explore/system-prompt.md.hbs +35 -0
- package/server/assets/agents/greeting-zh.md +61 -0
- package/server/assets/agents/greeting.md +61 -0
- package/server/assets/agents/managed-prompts.json +54 -0
- package/server/assets/agents/mavis/PERSONA-zh.md +7 -0
- package/server/assets/agents/mavis/PERSONA.md +7 -0
- package/server/assets/agents/mavis/features/cron.md.hbs +23 -0
- package/server/assets/agents/mavis/features/delegation.md.hbs +56 -0
- package/server/assets/agents/mavis/features/memory.md.hbs +61 -0
- package/server/assets/agents/mavis/features/recoverable-deletion.md.hbs +10 -0
- package/server/assets/agents/mavis/features/task-management.md.hbs +11 -0
- package/server/assets/agents/mavis/features/web-search.md.hbs +11 -0
- package/server/assets/agents/mavis/modes/coding/online/PERSONA-zh.md.hbs +20 -0
- package/server/assets/agents/mavis/modes/coding/online/PERSONA.md.hbs +20 -0
- package/server/assets/agents/mavis/modes/coding/online/SYSTEM.md.hbs +159 -0
- package/server/assets/agents/mavis/modes/work/online/PERSONA-zh.md.hbs +20 -0
- package/server/assets/agents/mavis/modes/work/online/PERSONA.md.hbs +20 -0
- package/server/assets/agents/mavis/modes/work/online/SYSTEM.md.hbs +161 -0
- package/server/assets/agents/mavis/prompt-session-root.md +4 -0
- package/server/assets/agents/mavis/prompt-session-root.md.hbs +4 -0
- package/server/assets/agents/mavis/skills/control-in-app-browser/SKILL.md +491 -0
- package/server/assets/agents/mavis/skills/minimax-code-product/SKILL.md +114 -0
- package/server/assets/agents/mavis/skills/minimax-code-product/references/account-models.md +32 -0
- package/server/assets/agents/mavis/skills/minimax-code-product/references/agents.md +25 -0
- package/server/assets/agents/mavis/skills/minimax-code-product/references/extensions.md +33 -0
- package/server/assets/agents/mavis/skills/minimax-code-product/references/workflows.md +30 -0
- package/server/assets/agents/mavis/system-prompt.md.hbs +97 -0
- package/server/assets/agents/prompt-exemptions.json +38 -0
- package/server/assets/agents/verifier/PERSONA-zh.md +8 -0
- package/server/assets/agents/verifier/PERSONA.md +8 -0
- package/server/assets/agents/verifier/agent.md +17 -0
- package/server/assets/agents/verifier/system-prompt.md.hbs +28 -0
- package/server/assets/agents/worker/PERSONA-zh.md +8 -0
- package/server/assets/agents/worker/PERSONA.md +8 -0
- package/server/assets/agents/worker/agent.md +18 -0
- package/server/assets/agents/worker/system-prompt.md.hbs +22 -0
- package/server/assets/agents/workflow/code-review/review-candidates.md +120 -0
- package/server/assets/agents/workflow/code-review/reviewer-system.md +75 -0
- package/server/assets/agents/workflow/goal/budget-limit.md +16 -0
- package/server/assets/agents/workflow/goal/continuation.md +62 -0
- package/server/assets/agents/workflow/goal/objective-updated.md +16 -0
- package/server/assets/agents/workflow/goal/recovery-terminal-audit.md +12 -0
- package/server/assets/agents/workflow/goal/recovery.md +11 -0
- package/server/assets/agents/workflow/goal/terminal-audit.md +9 -0
- package/server/assets/agents/workflow/plan-mode/agent-entry.md +72 -0
- package/server/assets/agents/workflow/prompt-hook/system.md +0 -0
- package/server/assets/models-dev-catalog.json.gz +0 -0
- package/server/assets/prompts/code-review/review-candidates.md +120 -0
- package/server/assets/prompts/code-review/reviewer-system.md +75 -0
- package/server/assets/skills/code-review/SKILL.md +51 -0
- package/server/assets/skills/cu-desktop/SKILL.md +257 -0
- package/server/assets/skills/deep-research/SKILL.md +219 -0
- package/server/assets/skills/deep-research/scripts/render_plan.py +33 -0
- package/server/assets/skills/deep-research/steps/1_background.md +65 -0
- package/server/assets/skills/deep-research/steps/2_judgment.md +66 -0
- package/server/assets/skills/deep-research/steps/3_analysis.md +114 -0
- package/server/assets/skills/deep-research/steps/4_research.md +161 -0
- package/server/assets/skills/deep-research/steps/5_writing.md +358 -0
- package/server/assets/skills/deploy-website/SKILL.md +55 -0
- package/server/assets/skills/docx/LICENSE +21 -0
- package/server/assets/skills/docx/SKILL.md +261 -0
- package/server/assets/skills/docx/assets/styles/academic_styles.xml +250 -0
- package/server/assets/skills/docx/assets/styles/corporate_styles.xml +284 -0
- package/server/assets/skills/docx/assets/styles/default_styles.xml +449 -0
- package/server/assets/skills/docx/assets/xsd/aesthetic-rules.xsd +470 -0
- package/server/assets/skills/docx/assets/xsd/business-rules.xsd +130 -0
- package/server/assets/skills/docx/assets/xsd/common-types.xsd +159 -0
- package/server/assets/skills/docx/assets/xsd/wml-subset.xsd +589 -0
- package/server/assets/skills/docx/docs/acceptance-checklists/create.md +7 -0
- package/server/assets/skills/docx/docs/acceptance-checklists/edit.md +6 -0
- package/server/assets/skills/docx/docs/acceptance-checklists/layout-repair.md +7 -0
- package/server/assets/skills/docx/docs/acceptance-checklists/template.md +6 -0
- package/server/assets/skills/docx/docs/acceptance.md +139 -0
- package/server/assets/skills/docx/docs/anti-patterns.md +14 -0
- package/server/assets/skills/docx/docs/backends.md +116 -0
- package/server/assets/skills/docx/docs/evidence.md +73 -0
- package/server/assets/skills/docx/docs/failure-taxonomy.md +71 -0
- package/server/assets/skills/docx/docs/index.md +50 -0
- package/server/assets/skills/docx/docs/rendered-delivery.md +125 -0
- package/server/assets/skills/docx/docs/router.md +122 -0
- package/server/assets/skills/docx/docs/tables-and-numbering.md +27 -0
- package/server/assets/skills/docx/docs/task-apply-template.md +141 -0
- package/server/assets/skills/docx/docs/task-compare-two-docx.md +48 -0
- package/server/assets/skills/docx/docs/task-create.md +124 -0
- package/server/assets/skills/docx/docs/task-edit-fill.md +69 -0
- package/server/assets/skills/docx/docs/task-read-content.md +148 -0
- package/server/assets/skills/docx/docs/task-read-rendered.md +78 -0
- package/server/assets/skills/docx/docs/task-read-structure.md +93 -0
- package/server/assets/skills/docx/docs/task-repair-layout.md +70 -0
- package/server/assets/skills/docx/docs/template-dsl.md +32 -0
- package/server/assets/skills/docx/docs/track-changes.md +15 -0
- package/server/assets/skills/docx/docs/xml-patch-dsl.md +33 -0
- package/server/assets/skills/docx/references/cjk_typography.md +357 -0
- package/server/assets/skills/docx/references/cjk_university_template_guide.md +184 -0
- package/server/assets/skills/docx/references/comments_guide.md +191 -0
- package/server/assets/skills/docx/references/design_good_bad_examples.md +829 -0
- package/server/assets/skills/docx/references/design_principles.md +819 -0
- package/server/assets/skills/docx/references/openxml_element_order.md +308 -0
- package/server/assets/skills/docx/references/openxml_encyclopedia_part1.md +4061 -0
- package/server/assets/skills/docx/references/openxml_encyclopedia_part2.md +2820 -0
- package/server/assets/skills/docx/references/openxml_encyclopedia_part3.md +3381 -0
- package/server/assets/skills/docx/references/openxml_namespaces.md +82 -0
- package/server/assets/skills/docx/references/openxml_units.md +72 -0
- package/server/assets/skills/docx/references/sample-patch-plans.json +22 -0
- package/server/assets/skills/docx/references/sample-task-intents.json +5 -0
- package/server/assets/skills/docx/references/sample-template-manifests.json +21 -0
- package/server/assets/skills/docx/references/scenario_a_create.md +284 -0
- package/server/assets/skills/docx/references/scenario_b_edit_content.md +295 -0
- package/server/assets/skills/docx/references/scenario_c_apply_template.md +456 -0
- package/server/assets/skills/docx/references/track_changes_guide.md +200 -0
- package/server/assets/skills/docx/references/troubleshooting.md +506 -0
- package/server/assets/skills/docx/references/typography_guide.md +294 -0
- package/server/assets/skills/docx/references/xsd_validation_guide.md +158 -0
- package/server/assets/skills/docx/scripts/build_patch_plan.py +29 -0
- package/server/assets/skills/docx/scripts/diff_docx_structure.py +61 -0
- package/server/assets/skills/docx/scripts/doc_to_docx.ps1 +85 -0
- package/server/assets/skills/docx/scripts/doc_to_docx.sh +40 -0
- package/server/assets/skills/docx/scripts/docx_preview.ps1 +76 -0
- package/server/assets/skills/docx/scripts/docx_preview.sh +37 -0
- package/server/assets/skills/docx/scripts/docx_to_pdf.py +87 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
- package/server/assets/skills/docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
- package/server/assets/skills/docx/scripts/env_check.ps1 +327 -0
- package/server/assets/skills/docx/scripts/env_check.sh +340 -0
- package/server/assets/skills/docx/scripts/extract_docx_text.py +1075 -0
- package/server/assets/skills/docx/scripts/pack_docx.py +31 -0
- package/server/assets/skills/docx/scripts/read_docx_structure.py +1032 -0
- package/server/assets/skills/docx/scripts/render_docx_pages.py +147 -0
- package/server/assets/skills/docx/scripts/rendered_report.py +609 -0
- package/server/assets/skills/docx/scripts/setup.ps1 +542 -0
- package/server/assets/skills/docx/scripts/setup.sh +537 -0
- package/server/assets/skills/docx/scripts/unpack_docx.py +29 -0
- package/server/assets/skills/docx/scripts/validate_template_manifest.py +60 -0
- package/server/assets/skills/docx/scripts/verify_anchor_atomicity.py +87 -0
- package/server/assets/skills/edit-deployed-website/SKILL.md +27 -0
- package/server/assets/skills/init/SKILL.md +137 -0
- package/server/assets/skills/lark-tools/SKILL.md +321 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-approval/SKILL.md +48 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-attendance/SKILL.md +57 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/SKILL.md +372 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/dashboard-block-data-config.md +350 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/examples.md +130 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/formula-field-guide.md +735 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-advperm-disable.md +83 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-advperm-enable.md +80 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-base-copy.md +74 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-base-create.md +68 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-base-get.md +39 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-arrange.md +83 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-create.md +108 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-get.md +57 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-list.md +53 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-block-update.md +84 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-create.md +73 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-delete.md +44 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-get.md +59 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-list.md +52 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard-update.md +69 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-dashboard.md +240 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-data-query.md +375 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-create.md +104 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-delete.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-get.md +42 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-list.md +44 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-search-options.md +48 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field-update.md +97 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-field.md +22 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-create.md +87 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-delete.md +64 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-get.md +68 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-list.md +73 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-delete.md +68 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-list.md +84 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-questions.md +23 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form-update.md +82 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-form.md +24 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-history.md +16 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-batch-create.md +76 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-batch-update.md +71 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-delete.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-get.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-history-list.md +86 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-list.md +83 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-search.md +72 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-upload-attachment.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record-upsert.md +89 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-record.md +28 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-create.md +89 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-delete.md +83 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-get.md +87 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-list.md +81 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-role-update.md +94 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-shortcut-field-properties.md +679 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-shortcut-record-value.md +200 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-create.md +62 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-delete.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-get.md +46 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-list.md +43 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table-update.md +49 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-table.md +20 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-create.md +83 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-delete.md +48 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-card.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-filter.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-group.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-sort.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-timebar.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get-visible-fields.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-get.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-list.md +44 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-rename.md +44 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-card.md +81 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-filter.md +92 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-group.md +77 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-sort.md +77 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-timebar.md +79 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view-set-visible-fields.md +73 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-view.md +44 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-create.md +180 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-disable.md +94 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-enable.md +94 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-get.md +147 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-guide.md +718 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-list.md +123 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-schema.md +935 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow-update.md +167 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workflow.md +23 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lark-base-workspace.md +18 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/lookup-field-guide.md +508 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-base/references/role-config.md +532 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/SKILL.md +143 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-create.md +109 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-room-find.md +89 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-schedule-meeting.md +194 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-contact/SKILL.md +23 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-contact/references/lark-contact-get-user.md +47 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-contact/references/lark-contact-search-user.md +39 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/SKILL.md +189 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-create.md +673 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-fetch.md +120 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-media-download.md +50 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-media-insert.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-media-preview.md +41 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-search.md +213 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-update.md +264 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-doc/references/lark-doc-whiteboard-update.md +6 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/SKILL.md +294 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-add-comment.md +99 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-create-folder.md +73 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-delete.md +79 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-download.md +31 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-export-download.md +50 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-export.md +100 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-import.md +132 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-move.md +120 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-reactions.md +113 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-task-result.md +264 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-drive/references/lark-drive-upload.md +67 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-event/SKILL.md +21 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-event/references/lark-event-subscribe.md +217 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/SKILL.md +140 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-create.md +156 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-identity.md +55 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-messages-list.md +142 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-search.md +114 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-chat-update.md +84 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-mget.md +95 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-reply.md +222 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-search.md +213 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-messages-send.md +223 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-reactions.md +297 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-im/references/lark-im-threads-messages-list.md +111 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/SKILL.md +550 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-draft-create.md +110 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-draft-edit.md +376 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-forward.md +208 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-message.md +201 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-messages.md +108 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-reply-all.md +184 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-reply.md +220 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-send.md +178 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-signature.md +98 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-thread.md +111 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-triage.md +122 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-mail/references/lark-mail-watch.md +94 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-minutes/SKILL.md +116 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-minutes/references/lark-minutes-download.md +119 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-minutes/references/lark-minutes-search.md +180 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-openapi-explorer/SKILL.md +153 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-shared/SKILL.md +141 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/SKILL.md +262 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-add-dimension.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-append.md +56 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-batch-set-style.md +53 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-create-filter-view-condition.md +42 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-create-filter-view.md +42 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-create.md +69 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-dimension.md +53 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-dropdown.md +46 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-filter-view-condition.md +26 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-delete-filter-view.md +25 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-export.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-find.md +62 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-formula.md +89 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-get-dropdown.md +43 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-get-filter-view-condition.md +27 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-get-filter-view.md +26 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-info.md +43 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-insert-dimension.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-list-filter-view-conditions.md +28 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-list-filter-views.md +26 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-merge-cells.md +47 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-move-dimension.md +52 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-read.md +61 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-replace.md +62 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-set-dropdown.md +62 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-set-style.md +71 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-unmerge-cells.md +46 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-dimension.md +60 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-dropdown.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-filter-view-condition.md +27 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-update-filter-view.md +24 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-write-image.md +65 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-sheets/references/lark-sheets-write.md +60 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-skill-maker/SKILL.md +85 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/SKILL.md +368 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/examples.md +179 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-create.md +137 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-media-upload.md +143 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +215 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +119 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/lark-slides-xml-presentations-get.md +94 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/slide-templates.md +199 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/slides_demo.xml +226 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/xml-format-guide.md +369 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-slides/references/xml-schema-quick-ref.md +215 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/SKILL.md +151 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-assign.md +35 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-comment.md +28 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-complete.md +27 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-create.md +51 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-followers.md +32 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-get-my-tasks.md +55 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-reminder.md +36 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-reopen.md +27 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-search.md +41 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-set-ancestor.md +32 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-subscribe-event.md +86 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-create.md +35 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-members.md +36 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-search.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-task/references/lark-task-update.md +37 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-vc/SKILL.md +143 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-vc/references/lark-vc-notes.md +126 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-vc/references/lark-vc-recording.md +141 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-vc/references/lark-vc-search.md +159 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard/SKILL.md +118 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard/references/lark-whiteboard-update.md +97 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/SKILL.md +236 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/connectors.md +102 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/content.md +40 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/layout.md +374 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/schema.md +333 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/style.md +318 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/references/typography.md +73 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/architecture.md +433 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/bar-chart.md +181 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/comparison.md +135 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/fishbone.md +238 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/flowchart.md +185 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/flywheel.md +195 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/funnel.md +101 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/line-chart.md +208 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/mermaid.md +136 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/milestone.md +139 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/organization.md +175 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/pyramid.md +99 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/swimlane.md +370 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-whiteboard-cli/scenes/treemap.md +210 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-wiki/SKILL.md +93 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-wiki/references/lark-wiki-move.md +183 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-workflow-meeting-summary/SKILL.md +99 -0
- package/server/assets/skills/lark-tools/cli-skills/lark-workflow-standup-report/SKILL.md +120 -0
- package/server/assets/skills/lark-tools/references/commands-macos-linux.md +42 -0
- package/server/assets/skills/lark-tools/references/commands-windows-powershell.md +54 -0
- package/server/assets/skills/lark-tools/references/storage-paths.md +21 -0
- package/server/assets/skills/llm-call/SKILL.md +50 -0
- package/server/assets/skills/llm-call/scripts/llm_call.py +458 -0
- package/server/assets/skills/mcode-tools-master/SKILL.md +133 -0
- package/server/assets/skills/pdf/SKILL.md +287 -0
- package/server/assets/skills/pdf/docs/advanced-reference.md +711 -0
- package/server/assets/skills/pdf/docs/ai-voice-cloning-regulatory-report-case.md +303 -0
- package/server/assets/skills/pdf/docs/annual-report-financial-digest-latex-case.md +233 -0
- package/server/assets/skills/pdf/docs/create-guide.md +438 -0
- package/server/assets/skills/pdf/docs/design-guide.md +204 -0
- package/server/assets/skills/pdf/docs/docx-contract-roundtrip-professional-case.md +328 -0
- package/server/assets/skills/pdf/docs/email-translation-goldman-two-sessions-case.md +346 -0
- package/server/assets/skills/pdf/docs/forms-guide.md +462 -0
- package/server/assets/skills/pdf/docs/html-pdf-spec.md +500 -0
- package/server/assets/skills/pdf/docs/italy-schengen-visa-acroform-case.md +22 -0
- package/server/assets/skills/pdf/docs/latex-academic-thesis-guide.md +234 -0
- package/server/assets/skills/pdf/docs/latex-technical-book-guide.md +112 -0
- package/server/assets/skills/pdf/docs/markdown-static-academic-data-viz-case.md +280 -0
- package/server/assets/skills/pdf/docs/pitfalls-index.md +798 -0
- package/server/assets/skills/pdf/docs/read-guide.md +358 -0
- package/server/assets/skills/pdf/docs/reformat-guide.md +238 -0
- package/server/assets/skills/pdf/docs/skill-readme-archive.md +152 -0
- package/server/assets/skills/pdf/docs/troubleshooting.md +86 -0
- package/server/assets/skills/pdf/docs/vision-guide.md +188 -0
- package/server/assets/skills/pdf/scripts/__init__.py +0 -0
- package/server/assets/skills/pdf/scripts/_pdf_read_lib.py +284 -0
- package/server/assets/skills/pdf/scripts/fill/__init__.py +0 -0
- package/server/assets/skills/pdf/scripts/fill/acroform_apply.py +153 -0
- package/server/assets/skills/pdf/scripts/fill/overlay_apply.py +109 -0
- package/server/assets/skills/pdf/scripts/lib/__init__.py +0 -0
- package/server/assets/skills/pdf/scripts/lib/acroform_io.py +170 -0
- package/server/assets/skills/pdf/scripts/lib/cli_utils.py +41 -0
- package/server/assets/skills/pdf/scripts/lib/geometry.py +79 -0
- package/server/assets/skills/pdf/scripts/make.sh +388 -0
- package/server/assets/skills/pdf/scripts/merge.py +112 -0
- package/server/assets/skills/pdf/scripts/pdf_inspect/__init__.py +0 -0
- package/server/assets/skills/pdf/scripts/pdf_inspect/acroform_inspect.py +52 -0
- package/server/assets/skills/pdf/scripts/pdf_inspect/acroform_probe.py +57 -0
- package/server/assets/skills/pdf/scripts/pdf_inspect/layout_scan.py +164 -0
- package/server/assets/skills/pdf/scripts/read_pdf_vision.py +473 -0
- package/server/assets/skills/pdf/scripts/reformat_parse.py +181 -0
- package/server/assets/skills/pdf/scripts/render/__init__.py +0 -0
- package/server/assets/skills/pdf/scripts/render/overlay_preview.py +86 -0
- package/server/assets/skills/pdf/scripts/render/page_rasterize.py +85 -0
- package/server/assets/skills/pdf/scripts/render_html.cjs +205 -0
- package/server/assets/skills/pdf/scripts/validate/__init__.py +0 -0
- package/server/assets/skills/pdf/scripts/validate/geometry_lint.py +124 -0
- package/server/assets/skills/pdf/templates/INDEX.md +97 -0
- package/server/assets/skills/pdf/templates/bilingual-menu-premium/README.md +175 -0
- package/server/assets/skills/pdf/templates/bilingual-menu-premium/skeleton.html +343 -0
- package/server/assets/skills/pdf/templates/brand-guide-2page/README.md +140 -0
- package/server/assets/skills/pdf/templates/brand-guide-2page/cases/minimax-web-brand-guide/README.md +155 -0
- package/server/assets/skills/pdf/templates/brand-guide-2page/cases/minimax-web-brand-guide/source.html +188 -0
- package/server/assets/skills/pdf/templates/brand-guide-2page/skeleton.html +264 -0
- package/server/assets/skills/pdf/templates/data-viz-report/README.md +234 -0
- package/server/assets/skills/pdf/templates/data-viz-report/cases/annual-report-financial-digest-latex/README.md +12 -0
- package/server/assets/skills/pdf/templates/data-viz-report/cases/annual-report-financial-digest-latex/build_charts.py +341 -0
- package/server/assets/skills/pdf/templates/data-viz-report/cases/annual-report-financial-digest-latex/source.tex +161 -0
- 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
- 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
- package/server/assets/skills/pdf/templates/data-viz-report/cases/apple-m-ai-static-academic/assets/fig_1_3_mmax_generation.png +0 -0
- package/server/assets/skills/pdf/templates/data-viz-report/cases/apple-m-ai-static-academic/source.html +656 -0
- package/server/assets/skills/pdf/templates/data-viz-report/skeleton.html +835 -0
- package/server/assets/skills/pdf/templates/form-fill-acroform/README.md +198 -0
- package/server/assets/skills/pdf/templates/form-fill-acroform/cases/italy-schengen-visa-example/USER-FINAL-SUMMARY.template.md +42 -0
- package/server/assets/skills/pdf/templates/form-fill-acroform/cases/italy-schengen-visa-example/extract_pdfs_key_info.py +80 -0
- package/server/assets/skills/pdf/templates/form-fill-acroform/cases/italy-schengen-visa-example/field_values.case.json +233 -0
- package/server/assets/skills/pdf/templates/form-fill-acroform/field_values.template.json +118 -0
- package/server/assets/skills/pdf/templates/latex-academic-thesis/README.md +146 -0
- package/server/assets/skills/pdf/templates/latex-academic-thesis/source.tex +334 -0
- package/server/assets/skills/pdf/templates/latex-technical-book/README.md +130 -0
- package/server/assets/skills/pdf/templates/latex-technical-book/README.template-source.md +62 -0
- package/server/assets/skills/pdf/templates/latex-technical-book/source.tex +439 -0
- package/server/assets/skills/pdf/templates/multi-article-aggregator/README.md +148 -0
- package/server/assets/skills/pdf/templates/multi-article-aggregator/pipeline.md +223 -0
- package/server/assets/skills/pdf/templates/multilang-research-report/README.md +146 -0
- package/server/assets/skills/pdf/templates/multilang-research-report/cases/ai-voice-cloning-regulatory/source.html +244 -0
- package/server/assets/skills/pdf/templates/multilang-research-report/skeleton.html +242 -0
- package/server/assets/skills/pdf/templates/reformat-default/README.md +137 -0
- package/server/assets/skills/pdf/templates/reformat-default/cases/pku-contract-roundtrip/docx_engine.py +68 -0
- package/server/assets/skills/pdf/templates/reformat-default/cases/pku-contract-roundtrip/source.html +231 -0
- package/server/assets/skills/pdf/templates/reformat-default/cases/pku-contract-roundtrip/source.md +196 -0
- package/server/assets/skills/pdf/templates/reformat-default/skeleton.html +204 -0
- package/server/assets/skills/pdf/templates/translate-preserve-layout/README.md +147 -0
- package/server/assets/skills/pdf/templates/translate-preserve-layout/cases/goldman-china-two-sessions-cn.html +1660 -0
- package/server/assets/skills/pdf/templates/translate-preserve-layout/skeleton.html +96 -0
- package/server/assets/skills/pdf/templates/translate-preserve-layout/terminology.template.json +66 -0
- package/server/assets/skills/pptx/SKILL.md +285 -0
- package/server/assets/skills/pptx/references/design-system.md +424 -0
- package/server/assets/skills/pptx/references/editing.md +162 -0
- package/server/assets/skills/pptx/references/element-map.md +229 -0
- package/server/assets/skills/pptx/references/pitfalls.md +205 -0
- package/server/assets/skills/pptx/references/pptxgenjs.md +420 -0
- package/server/assets/skills/pptx/references/preview-selection-writeback.md +65 -0
- package/server/assets/skills/pptx/references/python-pptx-recipes.md +63 -0
- package/server/assets/skills/pptx/references/slide-types.md +413 -0
- package/server/assets/skills/pptx/scripts/audit_pptx.py +708 -0
- package/server/assets/skills/pptx/scripts/extract_comments.py +468 -0
- package/server/assets/skills/pptx/scripts/extract_images.py +226 -0
- package/server/assets/skills/pptx/scripts/extract_pptx.py +285 -0
- package/server/assets/skills/pptx/scripts/mavis-ppt-map.cjs +280 -0
- package/server/assets/skills/pptx/scripts/pdf2png.swift +203 -0
- package/server/assets/skills/pptx/scripts/pptx-screenshot.sh +105 -0
- package/server/assets/skills/resume-codex/SKILL.md +55 -0
- package/server/assets/skills/resume-codex/scripts/session-reader.mjs +445 -0
- package/server/assets/skills/skill-creator/SKILL.md +190 -0
- package/server/assets/skills/skill-creator/references/anti-patterns.md +149 -0
- package/server/assets/skills/skill-creator/references/commands-macos-linux.md +38 -0
- package/server/assets/skills/skill-creator/references/commands-windows-powershell.md +48 -0
- package/server/assets/skills/skill-creator/references/description-rubric.md +83 -0
- package/server/assets/skills/skill-creator/references/skill-template.md +101 -0
- package/server/assets/skills/skill-creator/references/when-to-bundle-scripts.md +139 -0
- package/server/assets/skills/skill-creator/scripts/lint-skill.js +226 -0
- package/server/assets/skills/skill-refiner/SKILL.md +139 -0
- package/server/assets/skills/visual-page/SKILL.md +196 -0
- package/server/assets/skills/x-link-reader/SKILL.md +110 -0
- package/server/assets/skills/xlsx/SKILL.md +501 -0
- package/server/assets/skills/xlsx/docs/advanced-reference.md +410 -0
- package/server/assets/skills/xlsx/docs/cases/superstore-multiformat/conversion_manifest.example.json +49 -0
- package/server/assets/skills/xlsx/docs/cases/superstore-multiformat/superstore_orders_print.html +17 -0
- package/server/assets/skills/xlsx/docs/conventions-guide.md +217 -0
- package/server/assets/skills/xlsx/docs/create-edit-guide.md +410 -0
- package/server/assets/skills/xlsx/docs/pitfalls-index.md +760 -0
- package/server/assets/skills/xlsx/docs/raw-xml-escape-hatch.md +201 -0
- package/server/assets/skills/xlsx/docs/recalc-guide.md +295 -0
- package/server/assets/skills/xlsx/docs/superstore-multiformat-conversion-case.md +413 -0
- package/server/assets/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/server/assets/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/server/assets/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/server/assets/skills/xlsx/scripts/office/pack.py +159 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/server/assets/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/server/assets/skills/xlsx/scripts/office/soffice.py +191 -0
- package/server/assets/skills/xlsx/scripts/office/unpack.py +132 -0
- package/server/assets/skills/xlsx/scripts/office/validate.py +117 -0
- package/server/assets/skills/xlsx/scripts/office/validators/__init__.py +15 -0
- package/server/assets/skills/xlsx/scripts/office/validators/base.py +851 -0
- package/server/assets/skills/xlsx/scripts/office/validators/docx.py +446 -0
- package/server/assets/skills/xlsx/scripts/office/validators/pptx.py +275 -0
- package/server/assets/skills/xlsx/scripts/office/validators/redlining.py +247 -0
- package/server/assets/skills/xlsx/scripts/recalc.py +450 -0
- package/server/mcode-tools.js +2 -0
- package/server/package-info.json +1 -1
- package/server/server.js +2 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
# Read Guide — pdfplumber default + vision escalation
|
|
2
|
+
|
|
3
|
+
The READ route of `pdf`. The **default is the pdfplumber recipe** (§3.1) — text and tables, fast,
|
|
4
|
+
offline, no daemon or model call required, and covers the overwhelming majority of "just read this
|
|
5
|
+
PDF" requests. **Only escalate to vision** (§3.3) when you actually need visual understanding the
|
|
6
|
+
text path can't give you: scanned / image-only PDFs, chart and diagram interpretation, heavy layout
|
|
7
|
+
where reading order matters, or when pdfplumber returns `(cid:NNN)` glyphs (no text layer). When
|
|
8
|
+
vision is needed, a **vision-capable model (e.g. M3) reads a rendered PNG directly with the Read
|
|
9
|
+
tool**; `read_pdf_vision.py` (native Matrix vision) is the fallback for text-only models (e.g. M2.7) — see
|
|
10
|
+
§3.3. Other scenarios — coordinates, page rasters, embedded images, decryption, metadata — are
|
|
11
|
+
inline cookbook recipes (5–10 lines of Python or a single CLI invocation).
|
|
12
|
+
|
|
13
|
+
> **For WRITE / FILL / MUTATE routes, see [`../SKILL.md`](../SKILL.md).** This file only covers
|
|
14
|
+
> READ.
|
|
15
|
+
|
|
16
|
+
For the `read_pdf_vision.py` reference (parameters, JSON schema, internal chunking, time budget,
|
|
17
|
+
error matrix), see [`vision-guide.md`](vision-guide.md).
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1. Scope and When to Use
|
|
22
|
+
|
|
23
|
+
This skill covers the everyday PDF reading chores an LLM agent is most often asked to perform:
|
|
24
|
+
|
|
25
|
+
- **extracting text or tables from any text-native PDF** (papers, reports, prospectuses, manuals,
|
|
26
|
+
court filings — anything generated by Word / LaTeX / Markdown-to-PDF) via the pdfplumber recipe —
|
|
27
|
+
the default route, fast, offline, no daemon required
|
|
28
|
+
- **understanding a layout-heavy / chart-heavy / scanned PDF** using native Matrix vision — only
|
|
29
|
+
when the text path is insufficient (scans / `(cid:NNN)` glyphs, charts whose values matter, dense
|
|
30
|
+
multi-column layout where reading order is broken)
|
|
31
|
+
- inspecting a PDF (page count, metadata, encryption status, text, tables, embedded images)
|
|
32
|
+
- coordinate-aware extraction (character positions, region-clipped text)
|
|
33
|
+
- rasterising pages to PNG for visual inspection or pre-staging
|
|
34
|
+
- decrypting a password-protected PDF before any of the above
|
|
35
|
+
- summarising or quoting from existing PDF content
|
|
36
|
+
|
|
37
|
+
Use a different approach when:
|
|
38
|
+
|
|
39
|
+
- the user wants to **generate / style / fill / reformat** a PDF — see [`../SKILL.md`](../SKILL.md)
|
|
40
|
+
for the WRITE routes (CREATE / REFORMAT / FILL)
|
|
41
|
+
- the user only wants to read text from a single image (no PDF involved) — call any vision tool
|
|
42
|
+
directly, no PDF library required
|
|
43
|
+
- the user wants to **mutate** an existing PDF (merge / split / rotate / crop / encrypt; **annotate
|
|
44
|
+
/ sign / replace text via overlay**) — see [`advanced-reference.md`](advanced-reference.md) (qpdf
|
|
45
|
+
/ pypdf / pdftk for page-level ops; pypdf + reportlab for annotations, signatures, and
|
|
46
|
+
text-overlay replacement in §5)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 2. Decision Tree
|
|
51
|
+
|
|
52
|
+
**Do not open the raw `.pdf` with the Read tool.** Read returns binary garbage that wastes context
|
|
53
|
+
and tells you nothing useful. Always go through one of the routes below. (This forbids the _raw PDF_
|
|
54
|
+
only — reading a page that you have **rendered to PNG** with the Read tool is the preferred vision
|
|
55
|
+
path on a vision-capable model; see §3.3.)
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
What does the user want from this PDF?
|
|
59
|
+
|
|
|
60
|
+
+-- Default: text or tables from any text-native PDF
|
|
61
|
+
| → pdfplumber recipe -> §3.1
|
|
62
|
+
| (fast, offline, no daemon — covers the vast majority of cases)
|
|
63
|
+
|
|
|
64
|
+
+-- pdfplumber returned `(cid:NNN)` glyphs / empty text
|
|
65
|
+
| → vision route -> §3.3
|
|
66
|
+
| (no text layer; the PDF is scanned or image-only)
|
|
67
|
+
|
|
|
68
|
+
+-- Charts / diagrams whose values matter, dense visual layout
|
|
69
|
+
| → vision route -> §3.3
|
|
70
|
+
| (vision-capable model reads a rendered PNG directly;
|
|
71
|
+
| read_pdf_vision.py / native Matrix vision is the text-only-model fallback)
|
|
72
|
+
|
|
|
73
|
+
+-- Coordinate-aware extraction ---------> pdfplumber recipe -> §3.1
|
|
74
|
+
| (character positions, within_bbox region clip)
|
|
75
|
+
|
|
|
76
|
+
+-- Page count / metadata / encryption --> pdfinfo -> §4.1
|
|
77
|
+
| (one-line probe before the heavier modes)
|
|
78
|
+
|
|
|
79
|
+
+-- Pull embedded raster images ---------> pdfimages from poppler -> §4.1
|
|
80
|
+
|
|
|
81
|
+
+-- Render pages to PNG (no model call) -> pypdfium2 / pdf2image -> §3.2
|
|
82
|
+
| OR scripts/render/page_rasterize.py -> §4.3
|
|
83
|
+
|
|
|
84
|
+
+-- Decrypt a password-protected PDF ----> pypdf or qpdf -> §4.2
|
|
85
|
+
(run before any other route)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Default rule.** Reach for the **pdfplumber recipe (§3.1)** first on any PDF. It is the fastest
|
|
89
|
+
path, runs offline with no daemon, and covers the overwhelming majority of text-native documents
|
|
90
|
+
(papers, reports, prospectuses, manuals, court filings — anything generated by Word / LaTeX /
|
|
91
|
+
Markdown-to-PDF). **Escalate to `read_pdf_vision.py` (§3.3) only when the text path is
|
|
92
|
+
insufficient**: pdfplumber returns `(cid:NNN)` glyphs or empty strings (scanned / image-only PDF),
|
|
93
|
+
the user explicitly asks for chart values or visual layout description, or the document's reading
|
|
94
|
+
order is so broken that text extraction gives unusable output. Use `pdfinfo` (§4.1) as a one-line
|
|
95
|
+
probe before deciding anything heavy.
|
|
96
|
+
|
|
97
|
+
**Vision is a targeted tool, not a default.** Vision takes ~1 min per 10 pages and, on the native Matrix path,
|
|
98
|
+
costs upstream LLM calls. Don't pay any of that for a PDF whose text layer is fine. **And when
|
|
99
|
+
vision is warranted, pick the path by model capability:** a vision-capable model (e.g. M3 — it can
|
|
100
|
+
natively accept image input) should rasterise the page(s) to PNG (§3.2) and read them with the Read
|
|
101
|
+
tool directly — no daemon, no MCP, no upstream LLM call. `read_pdf_vision.py` (§3.3) is the fallback
|
|
102
|
+
for text-only models (e.g. M2.7) that cannot see images.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 3. Library Cookbook
|
|
107
|
+
|
|
108
|
+
### 3.1 pdfplumber — text and tables, faithful layout (default route)
|
|
109
|
+
|
|
110
|
+
The default for any text-native PDF. Fast, offline, no daemon required. Try this first on any PDF
|
|
111
|
+
the user hands you — only escalate to vision (§3.3) if the output looks wrong (`(cid:NNN)` glyphs,
|
|
112
|
+
empty strings, garbled multi-column reading order) or the user explicitly needs charts / scans
|
|
113
|
+
interpreted.
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
import pdfplumber
|
|
117
|
+
|
|
118
|
+
with pdfplumber.open("invoice.pdf") as src_doc:
|
|
119
|
+
for pg in src_doc.pages:
|
|
120
|
+
body = pg.extract_text()
|
|
121
|
+
for tbl in pg.extract_tables():
|
|
122
|
+
for row in tbl:
|
|
123
|
+
print(row)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
For coordinate-aware extraction (character positions, region-clipped text — used heavily by form
|
|
127
|
+
workflows that need to read a stamped header or pull text from a known label region):
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
with pdfplumber.open("invoice.pdf") as src_doc:
|
|
131
|
+
pg = src_doc.pages[0]
|
|
132
|
+
for ch in pg.chars[:5]:
|
|
133
|
+
print(ch["text"], ch["x0"], ch["top"])
|
|
134
|
+
region_text = pg.within_bbox((100, 100, 400, 200)).extract_text()
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 3.2 pypdfium2 / pdf2image — rasterise pages
|
|
138
|
+
|
|
139
|
+
A side route, not part of the read flow. Reach for it when you need PNGs of the pages — to show the
|
|
140
|
+
user a preview, to pre-stage frames for §3.3 vision, or to feed pages into any other image tool.
|
|
141
|
+
`pypdfium2` is the fastest way to render a page to a PIL image:
|
|
142
|
+
|
|
143
|
+
```python
|
|
144
|
+
import pypdfium2 as pdfium
|
|
145
|
+
|
|
146
|
+
src_doc = pdfium.PdfDocument("payslip.pdf")
|
|
147
|
+
for i, pg in enumerate(src_doc):
|
|
148
|
+
pg.render(scale=2.0).to_pil().save(f"payslip_{i + 1}.png")
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
`pdf2image` (poppler wrapper) gives the same output at slightly slower throughput but with the same
|
|
152
|
+
dependency you already need for `read_pdf_vision.py` (§3.3):
|
|
153
|
+
|
|
154
|
+
```python
|
|
155
|
+
from pdf2image import convert_from_path
|
|
156
|
+
|
|
157
|
+
images = convert_from_path("payslip.pdf", dpi=200)
|
|
158
|
+
for i, img in enumerate(images):
|
|
159
|
+
img.save(f"payslip_{i + 1}.png")
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
For a ready-to-run batch CLI that also caps the longer side in pixels (useful before sending to
|
|
163
|
+
vision or any other model), see §4.3 (`scripts/render/page_rasterize.py`).
|
|
164
|
+
|
|
165
|
+
### 3.3 vision — rendered-page reading (escalation route, only when text fails)
|
|
166
|
+
|
|
167
|
+
> **Model-capability gate — check the running model BEFORE reaching for `read_pdf_vision.py`.** This
|
|
168
|
+
> native Matrix wrapper exists only because text-only models (e.g. M2.7) cannot see images, so rendered pages
|
|
169
|
+
> had to be shipped to an upstream native Matrix vision. **If the model running this skill is multimodal /
|
|
170
|
+
> vision-capable (e.g. M3 — it can natively accept image input), do NOT use the native Matrix route:**
|
|
171
|
+
> rasterise the target page(s) to PNG (§3.2 `pypdfium2` / `pdftoppm`, or
|
|
172
|
+
> `scripts/render/page_rasterize.py`) and read the PNG(s) directly with the **Read tool** — one page
|
|
173
|
+
> per file for chart / financial-table pages. This is faster, runs offline, and costs no upstream
|
|
174
|
+
> LLM call. Fall back to `read_pdf_vision.py` (below) **only** when the running model is text-only
|
|
175
|
+
> and cannot accept image input, or when native page reading is otherwise unavailable.
|
|
176
|
+
|
|
177
|
+
Escalate to the vision route **only when the §3.1 pdfplumber path is insufficient**:
|
|
178
|
+
|
|
179
|
+
- pdfplumber returned `(cid:NNN)` glyphs or empty strings → no text layer (scanned / image-only PDF)
|
|
180
|
+
- the user explicitly asks for chart values, diagram interpretation, or visual layout description
|
|
181
|
+
that text extraction can't give them
|
|
182
|
+
- multi-column or magazine-style layout where pdfplumber's reading order is broken enough to be
|
|
183
|
+
unusable
|
|
184
|
+
|
|
185
|
+
> **Mandatory-escalation cases.** Two scenarios are not optional — pdfplumber output may _look_ fine
|
|
186
|
+
> but is **always wrong** on these layouts. Use vision **per page** (`--pages N`, never a range):
|
|
187
|
+
>
|
|
188
|
+
> 1. **Pages with charts / diagrams / info-graphics whose values matter.** Chart axis labels are
|
|
189
|
+
> rasterised pixels, not text; pdfplumber returns the surrounding caption but cannot read the
|
|
190
|
+
> bars. If the user is going to quote a number from a chart, vision is mandatory.
|
|
191
|
+
> 2. **Complex financial / regulatory tables** — balance sheets, income statements, cash-flow
|
|
192
|
+
> statements, debt maturity schedules, capitalisation tables, prospectus league tables. These use
|
|
193
|
+
> multi-level headers, merged cells, dotted leader lines, footnoted sub-totals, and side-by-side
|
|
194
|
+
> mini-tables. `extract_text()` returns scrambled fragments (labels separated from numbers,
|
|
195
|
+
> sub-totals mis-attributed); `extract_tables()` requires a clean grid these layouts never have.
|
|
196
|
+
> Treat as chart pages.
|
|
197
|
+
>
|
|
198
|
+
> Per-page invocation matters because the script's stitch-and-grow chunker would otherwise pack 4–8
|
|
199
|
+
> neighbour pages into one tall image, diluting the model's attention and mis-attributing values to
|
|
200
|
+
> the wrong page.
|
|
201
|
+
|
|
202
|
+
The script wraps:
|
|
203
|
+
|
|
204
|
+
- `pdf2image` rendering of selected pages
|
|
205
|
+
- stitch-and-grow chunking under a byte ceiling (~3 MB; the upstream Matrix vision API rejects images near
|
|
206
|
+
5 MB)
|
|
207
|
+
- HTTP POST to `http://127.0.0.1:5321/mavis/api/matrix/tool/call` per chunk
|
|
208
|
+
- envelope unwrap from `{code, results: [{description, ...}]}`
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
python3 -m scripts.read_pdf_vision --input report.pdf --pages 1-30
|
|
212
|
+
python3 -m scripts.read_pdf_vision --input slides.pdf --json
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Vision needs local-runtime running with authenticated native Matrix tools, takes ~1 min per 10 pages, and
|
|
216
|
+
costs upstream LLM calls — none of which is worth paying when pdfplumber would have worked. Confirm
|
|
217
|
+
pdfplumber output is unusable before reaching for this script.
|
|
218
|
+
|
|
219
|
+
For per-flag reference, JSON output schema, internal chunking, time budget (≈1 min per 10 pages),
|
|
220
|
+
and the local-runtime / 502 / 413 error matrix, see [`docs/vision-guide.md`](docs/vision-guide.md).
|
|
221
|
+
|
|
222
|
+
**If vision itself fails (502 / 413 / `Cannot connect to local runtime` / `401 auth failed` /
|
|
223
|
+
persistent JSON / timeout):** on a vision-capable model, just rasterise the page(s) to PNG (§3.2)
|
|
224
|
+
and read them with the Read tool — that path does not touch the MCP at all. On a text-only model,
|
|
225
|
+
return to the §3.1 pdfplumber path for whatever text you can recover, and tell the user the visual
|
|
226
|
+
content (charts / scans) could not be interpreted because the native Matrix vision is unavailable. Don't
|
|
227
|
+
retry-stall.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## 4. CLI Cookbook
|
|
232
|
+
|
|
233
|
+
### 4.1 poppler-utils — text, preview, image, and metadata
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# Plain text (preserves visual layout)
|
|
237
|
+
pdftotext -layout invoice.pdf invoice.txt
|
|
238
|
+
|
|
239
|
+
# Pages 1-3 only
|
|
240
|
+
pdftotext -f 1 -l 3 invoice.pdf snippet.txt
|
|
241
|
+
|
|
242
|
+
# Render pages to PNG (no model call)
|
|
243
|
+
pdftoppm -png -r 300 invoice.pdf preview # writes preview-1.png, preview-2.png, ...
|
|
244
|
+
|
|
245
|
+
# Pull every embedded raster image out of the PDF (native resolution,
|
|
246
|
+
# preserves the original JPEG / PNG encoding inside the PDF)
|
|
247
|
+
pdfimages -all invoice.pdf images/img # writes images/img-000.png, etc.
|
|
248
|
+
|
|
249
|
+
# Page count, metadata, page sizes, encryption status
|
|
250
|
+
pdfinfo invoice.pdf
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
`pdfimages -all` is the fastest way to dump original embedded images at their native resolution —
|
|
254
|
+
preferred over `pdftoppm` when the PDF embeds high-resolution photos and you want them back at full
|
|
255
|
+
quality rather than re-rasterised at a fixed DPI.
|
|
256
|
+
|
|
257
|
+
`pdfinfo` is the cheapest way to confirm page count and encryption status before deciding which read
|
|
258
|
+
route to take.
|
|
259
|
+
|
|
260
|
+
### 4.2 qpdf — decrypt and repair (read-related)
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Drop the password to write a clear copy, then run any read recipe
|
|
264
|
+
qpdf --password=pw --decrypt encrypted.pdf clear.pdf
|
|
265
|
+
pdftotext -layout clear.pdf - # for example
|
|
266
|
+
|
|
267
|
+
# Repair a damaged / cross-reference-broken PDF in place
|
|
268
|
+
qpdf --check broken.pdf
|
|
269
|
+
qpdf --replace-input broken.pdf
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
For Python-side decryption (no `qpdf` install needed):
|
|
273
|
+
|
|
274
|
+
```python
|
|
275
|
+
from pypdf import PdfReader
|
|
276
|
+
|
|
277
|
+
src_doc = PdfReader("encrypted.pdf")
|
|
278
|
+
if src_doc.is_encrypted:
|
|
279
|
+
src_doc.decrypt("user-password")
|
|
280
|
+
text = src_doc.pages[0].extract_text()
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### 4.3 In-skill scripts
|
|
284
|
+
|
|
285
|
+
| Script | Purpose | When to invoke |
|
|
286
|
+
| -------------------------------------------------------------------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
|
287
|
+
| `python3 -m scripts.read_pdf_vision` | native Matrix vision (§3.3) | escalation only — text path (§3.1) returned `(cid:NNN)` / empty, or charts/scans matter |
|
|
288
|
+
| `python3 -m scripts.render.page_rasterize <pdf> <dir> --max-edge 1200 --dpi 200` | Batch rasterise pages to PNG with optional max-edge downsizing | Pre-stage pages for vision or human inspection |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 5. Cross-route workflows — read then write
|
|
293
|
+
|
|
294
|
+
These chains feed READ output straight into the WRITE routes (CREATE / REFORMAT / FILL / MUTATE).
|
|
295
|
+
Match the user's intent to one of the rows below; do not improvise an in-house generator on top of
|
|
296
|
+
the read recipes.
|
|
297
|
+
|
|
298
|
+
| User intent | Read step | Write step |
|
|
299
|
+
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
300
|
+
| Restyle an existing PDF into our design system | pdfplumber recipe (§3.1) to pull text and tables; only add `read_pdf_vision.py` (§3.3) on top if visual layout / cover design / charts must be carried over | `bash scripts/make.sh reformat` (REFORMAT route) |
|
|
301
|
+
| Fill values into a PDF form whose structure you don't yet know | `pypdf.PdfReader.get_form_text_fields()` to probe AcroForm metadata, then pdfplumber recipe (§3.1) for visible field labels and any flat text; escalate to `read_pdf_vision.py` (§3.3) only for forms with no AcroForm metadata and no readable text labels (pure visual layout) | `bash scripts/make.sh fill probe` then AcroForm or visual-overlay branch |
|
|
302
|
+
| Build a new PDF inspired by an existing one (palette, cover, layout) | `read_pdf_vision.py` (§3.3) on the reference — design cues are inherently visual and pdfplumber can't extract palette / cover / spatial composition | CREATE route — encode cues in the HTML (CSS variables + cover archetype) |
|
|
303
|
+
| Translate a PDF while preserving layout | pdfplumber recipe (§3.1) per page for the text; only fall through to `read_pdf_vision.py` (§3.3) when the source is scanned or has unrecoverable reading order | `templates/translate-preserve-layout` (REFORMAT route) |
|
|
304
|
+
| Verify a PDF you just generated (post-write sanity check) | pdfplumber recipe (§3.1) on the output PDF | n/a — the loop is write → read |
|
|
305
|
+
|
|
306
|
+
For mutation routes (merge / split / rotate / crop / watermark / encrypt / decrypt; annotate / sign
|
|
307
|
+
/ replace text via overlay), see [`advanced-reference.md`](advanced-reference.md).
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## 6. Reference Index
|
|
312
|
+
|
|
313
|
+
| File | Purpose |
|
|
314
|
+
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
315
|
+
| [`vision-guide.md`](vision-guide.md) | `read_pdf_vision.py` reference — flags, JSON schema, internal chunking, time budget, error matrix |
|
|
316
|
+
| `scripts/read_pdf_vision.py` | native Matrix vision via local-runtime HTTP — escalation route for charts / scans / broken text layer (only wrapped read script; pdfplumber is the §3.1 default) |
|
|
317
|
+
| `scripts/render/page_rasterize.py` | Batch raster pages to PNG with optional max-edge downsizing |
|
|
318
|
+
| `scripts/lib/cli_utils.py` | Shared CLI helpers (emit / warn / fail / make_parser) |
|
|
319
|
+
| `scripts/_pdf_read_lib.py` | vision-side helpers (page-spec parsing, output spill, argparse) |
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## 7. Troubleshooting
|
|
324
|
+
|
|
325
|
+
| Symptom | Likely cause | First thing to try |
|
|
326
|
+
| ------------------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
327
|
+
| `pdfplumber` returns `(cid:NNN)` instead of letters | scanned PDF (no text layer) | escalate to `read_pdf_vision.py` (§3.3) — this is the canonical reason to leave the §3.1 default |
|
|
328
|
+
| `pdfplumber` returns empty strings or garbled multi-column text | broken reading order or image-only PDF | escalate to `read_pdf_vision.py` (§3.3) |
|
|
329
|
+
| `pypdf` / `pdfplumber` raises `file has not been decrypted` | password-protected | call `reader.decrypt("password")` (§4.2) or `qpdf --decrypt` first |
|
|
330
|
+
| `qpdf` complains about cross-references | corrupt PDF | `qpdf --replace-input broken.pdf` (in-place repair) |
|
|
331
|
+
| `pdftoppm: command not found` / `Unable to get page count` | poppler missing | `brew install poppler` (also bundles `pdftotext` / `pdfimages` / `pdfinfo`) |
|
|
332
|
+
| `pypdfium2` import fails | wheel not installed | `pip3 install --user pypdfium2` |
|
|
333
|
+
| `read_pdf_vision.py`: `502 Bad Gateway` / `413 payload too large` | vision chunk too big | rerun with `--max-bytes 2000000` (or 1500000), reduce `--pages`, or drop `--dpi 100` |
|
|
334
|
+
| `read_pdf_vision.py`: `gemini analysis failed` / `unexpected end of JSON` | upstream LLM hiccup | retry the same command unchanged |
|
|
335
|
+
| `read_pdf_vision.py`: `Cannot connect to local runtime at port 5321` | local-runtime is down or the port could not be discovered | on a vision-capable model, skip native Matrix vision — rasterise the page(s) to PNG (§3.2) and read them with the Read tool; otherwise restart the MiniMax Code app, and if still down return to `pdfplumber` (§3.1) for text-only output and tell the user the visual content (charts / scans) could not be interpreted because the native Matrix vision is unavailable |
|
|
336
|
+
| `read_pdf_vision.py`: `auth failed` / `401` | Matrix backend token expired or environment mismatch | verify the managed login token matches the managed Matrix host, or set `MATRIX_TOKEN` for a custom `MATRIX_BASE_URL`; if not recoverable in this turn, return to `pdfplumber` (§3.1) text-only output |
|
|
337
|
+
| `read_pdf_vision.py` runs > 10 min on 100+ pages | PDF too large for vision | the pdfplumber recipe (§3.1) is the default anyway — only run vision in narrow page slices when truly needed |
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## 8. Environment
|
|
342
|
+
|
|
343
|
+
**These dependencies are mandatory** — `pdfplumber` is the default read route (§3.1), so install
|
|
344
|
+
everything below up front even if you only plan to use vision today. Don't wait until `pip3` errors
|
|
345
|
+
mid-task.
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
pip3 install --user pdfplumber pdf2image pillow pypdf pypdfium2
|
|
349
|
+
brew install poppler # pdftoppm + pdftotext + pdfimages + pdfinfo
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
`read_pdf_vision.py` additionally requires local-runtime to be running with authenticated native
|
|
353
|
+
Matrix tools. Managed Matrix hosts use the Mavis login token; custom `MATRIX_BASE_URL` hosts
|
|
354
|
+
require `MATRIX_TOKEN` in the runtime environment.
|
|
355
|
+
Details: [`vision-guide.md`](vision-guide.md).
|
|
356
|
+
|
|
357
|
+
`qpdf` (§4.2) is optional — pure-Python decryption via `pypdf` covers the same ground unless you
|
|
358
|
+
need batch CLI throughput.
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# REFORMAT — Apply Design to an Existing Document
|
|
2
|
+
|
|
3
|
+
> **Prerequisites.** Read [`html-pdf-spec.md`](html-pdf-spec.md) for the
|
|
4
|
+
> mechanical contract (page geometry, page-break rules, CJK cascade) and
|
|
5
|
+
> [`design-guide.md`](design-guide.md) for palette / typography choices.
|
|
6
|
+
|
|
7
|
+
REFORMAT is for taking an existing prose document (markdown, plain text, or
|
|
8
|
+
text-native PDF) and re-rendering it as a clean PDF report. It is **not** for
|
|
9
|
+
turning a markdown table of numbers into charts — for chart-heavy reports
|
|
10
|
+
switch to CREATE with `data-viz-report` (or write custom HTML).
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. Pipeline
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
source.md / .txt / .pdf / .html
|
|
18
|
+
│
|
|
19
|
+
│ reformat_parse.py
|
|
20
|
+
│ ─ markdown-it-py renders body to HTML fragment
|
|
21
|
+
│ ─ lifts the first H1 as document title
|
|
22
|
+
│ ─ injects into templates/reformat-default/skeleton.html
|
|
23
|
+
▼
|
|
24
|
+
page.html (self-contained, single file)
|
|
25
|
+
│
|
|
26
|
+
│ render_html.cjs (Playwright Chromium)
|
|
27
|
+
▼
|
|
28
|
+
report.pdf
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
One command runs the whole chain:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
bash scripts/make.sh reformat \
|
|
35
|
+
--input doc.md --out report.pdf \
|
|
36
|
+
--title "My Report" --author "Jane Doe" \
|
|
37
|
+
--accent "#0a7488"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 2. Input formats
|
|
43
|
+
|
|
44
|
+
| Extension | Path | Notes |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| `.md` / `.markdown` | markdown-it (CommonMark + GFM table + strikethrough + linkify) | Best supported |
|
|
47
|
+
| `.txt` | Treated as markdown (paragraphs separated by blank lines) | OK for flat prose |
|
|
48
|
+
| `.pdf` | `pdftotext -layout` → markdown-ish text | Requires `poppler` (`brew install poppler`); two-column / scanned PDFs garble — use the READ route ([`read-guide.md`](read-guide.md)) first |
|
|
49
|
+
| `.html` / `.htm` | `<body>` extracted, used as `<!-- BODY_HTML -->` directly | Bypasses markdown-it; useful when you already have clean HTML |
|
|
50
|
+
|
|
51
|
+
If you have an image-only / scanned PDF, REFORMAT cannot help directly. Use
|
|
52
|
+
the READ route ([`read-guide.md`](read-guide.md)) to extract clean text via
|
|
53
|
+
vision first, then pipe the markdown into REFORMAT.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 3. The default template
|
|
58
|
+
|
|
59
|
+
[`templates/reformat-default/`](../templates/reformat-default/) is auto-applied
|
|
60
|
+
when you don't pass `--template`. It is a clean A4 portrait layout:
|
|
61
|
+
|
|
62
|
+
- Cover: 4 px accent top rule + eyebrow ("REPORT · 2026-04-22") + H1 title +
|
|
63
|
+
subtitle + author/date footer
|
|
64
|
+
- Body: page-breaking H1 (each section starts a new page), left-ruled H2,
|
|
65
|
+
unadorned H3, accent-headed zebra tables, code blocks with monospace +
|
|
66
|
+
light tint background, blockquotes with accent left border
|
|
67
|
+
|
|
68
|
+
All multi-page REFORMAT outputs must include clickable TOC/index navigation.
|
|
69
|
+
When the source already has a TOC, preserve or rebuild it as real internal
|
|
70
|
+
links. When the source has headings but no TOC, generate a visible TOC from the
|
|
71
|
+
heading structure before rendering. The TOC rows must link to stable heading or
|
|
72
|
+
section IDs in the generated HTML; do not ship a flat prose PDF with only page
|
|
73
|
+
numbers or plain text headings. See
|
|
74
|
+
[`html-pdf-spec.md §3.4`](html-pdf-spec.md#34-clickable-toc--index-links).
|
|
75
|
+
|
|
76
|
+
If you want a different layout (sidebar TOC, two-column body, tighter cover),
|
|
77
|
+
duplicate the directory:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cp -r templates/reformat-default templates/reformat-<your-slug>
|
|
81
|
+
$EDITOR templates/reformat-<your-slug>/skeleton.html
|
|
82
|
+
bash scripts/make.sh reformat --input doc.md --out r.pdf --template <your-slug>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Each `reformat-*` template must keep the placeholder names
|
|
86
|
+
`<!-- TITLE -->`, `<!-- SUBTITLE -->`, `<!-- AUTHOR -->`, `<!-- DATE -->`,
|
|
87
|
+
`<!-- ACCENT -->`, `<!-- BODY_HTML -->`. `reformat_parse.py` only knows about
|
|
88
|
+
those.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. CLI options
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
bash scripts/make.sh reformat --input <file> --out <pdf>
|
|
96
|
+
[--title T] cover H1 (default: lifted from source's first H1, or filename)
|
|
97
|
+
[--subtitle S] cover line 2
|
|
98
|
+
[--author A] cover meta — author
|
|
99
|
+
[--date YYYY-MM-DD] cover meta — date (default: today)
|
|
100
|
+
[--accent "#HEX"] accent color (default: #1d4ed8)
|
|
101
|
+
[--template <slug>] reformat-* template (default: default)
|
|
102
|
+
[--wait <ms>] extra render settle (default 800)
|
|
103
|
+
[--keep-html] preserve intermediate HTML (debug)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The `--wait` flag is rarely needed — the default template has no Chart.js or
|
|
107
|
+
heavy JS. Use `--keep-html` when you want to inspect what was passed to the
|
|
108
|
+
renderer.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 5. Title-lifting behavior
|
|
113
|
+
|
|
114
|
+
By default, `reformat_parse.py` looks for the first `<h1>` in the rendered
|
|
115
|
+
HTML and lifts its inner text into the cover title. This means a typical
|
|
116
|
+
markdown file like:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
# Q3 Strategy Review
|
|
120
|
+
|
|
121
|
+
This document covers ...
|
|
122
|
+
|
|
123
|
+
## Section 1
|
|
124
|
+
...
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
… will produce a cover with title "Q3 Strategy Review" and a body that starts
|
|
128
|
+
at "## Section 1" (the H1 is removed from body since it's redundant with the
|
|
129
|
+
cover).
|
|
130
|
+
|
|
131
|
+
To **disable** this lift (keep the H1 visible in the body), pass `--title`
|
|
132
|
+
explicitly:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
bash scripts/make.sh reformat --input doc.md --out r.pdf --title "Different Title"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
In that case the source's `# Q3 Strategy Review` stays in the body, and the
|
|
139
|
+
cover shows "Different Title".
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 6. Re-skinning the accent
|
|
144
|
+
|
|
145
|
+
The default `--accent #1d4ed8` (indigo) is generic. Match the topic per
|
|
146
|
+
[design-guide.md palette table](design-guide.md#mood--base-palette):
|
|
147
|
+
|
|
148
|
+
| Topic | Accent |
|
|
149
|
+
|---|---|
|
|
150
|
+
| Engineering / hardware | `#0066cc` |
|
|
151
|
+
| Healthcare / wellness | `#0a7488` |
|
|
152
|
+
| Sustainability / ESG | `#3f7d3f` |
|
|
153
|
+
| Finance | `#0c8a5d` |
|
|
154
|
+
| Creative / portfolio | `#7c3aed` |
|
|
155
|
+
| Industrial / energy | `#d4621a` |
|
|
156
|
+
|
|
157
|
+
The accent drives the cover top rule, H1 underline, H2 left rule, table
|
|
158
|
+
header background, link border, blockquote left border. Re-skinning it
|
|
159
|
+
re-themes the whole document.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 7. When NOT to use REFORMAT
|
|
164
|
+
|
|
165
|
+
REFORMAT renders prose. It does **not** add charts, KPI cards, status pills,
|
|
166
|
+
versus comparisons, or any of the visual primitives in
|
|
167
|
+
`data-viz-report`. If the user's source has tables of numbers and they
|
|
168
|
+
explicitly asked for a "data report" or "可视化报告":
|
|
169
|
+
|
|
170
|
+
| Source signal | What to do |
|
|
171
|
+
|---|---|
|
|
172
|
+
| Markdown with 3+ tables of numbers, "可视化", "图表" | **CREATE** with `data-viz-report` — hand-author HTML, drop chart cards |
|
|
173
|
+
| Markdown with KPI grid, "面板", "dashboard" | **CREATE** with `data-viz-report` |
|
|
174
|
+
| Plain markdown article (one user post, blog, memo) | **REFORMAT** with `default` |
|
|
175
|
+
| Multiple articles to merge | **CREATE** with `multi-article-aggregator` |
|
|
176
|
+
| Multi-country / multi-jurisdiction prose | **CREATE** with `multilang-research-report` |
|
|
177
|
+
| Restaurant menu | **CREATE** with `bilingual-menu-premium` |
|
|
178
|
+
| 2-page brand identity | **CREATE** with `brand-guide-2page` |
|
|
179
|
+
|
|
180
|
+
Trying to "reformat" a data-heavy markdown gives you a pretty document
|
|
181
|
+
without any chart — usually not what the user wanted.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 8. Verification
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# 1. Run reformat
|
|
189
|
+
bash scripts/make.sh reformat --input doc.md --out r.pdf --keep-html
|
|
190
|
+
|
|
191
|
+
# 2. Sanity checks
|
|
192
|
+
pdfinfo r.pdf | grep Pages
|
|
193
|
+
pdftotext -layout r.pdf - | head -40
|
|
194
|
+
ls -lh r.pdf # should be > 50 KB for a real report
|
|
195
|
+
|
|
196
|
+
# 3. Eyeball
|
|
197
|
+
open r.pdf
|
|
198
|
+
# Click at least 3 TOC/index entries (or all entries when fewer than 3) and
|
|
199
|
+
# confirm they jump to the intended pages.
|
|
200
|
+
|
|
201
|
+
# 4. Confirm navigation exists; pdftotext alone cannot prove clickability
|
|
202
|
+
python3 - <<'PY'
|
|
203
|
+
from pypdf import PdfReader
|
|
204
|
+
r = PdfReader('r.pdf')
|
|
205
|
+
annots = sum(len(p.get('/Annots') or []) for p in r.pages)
|
|
206
|
+
outline = getattr(r, 'outline', [])
|
|
207
|
+
print({'link_annotations_or_widgets': annots, 'outline_items': len(outline) if isinstance(outline, list) else 'present'})
|
|
208
|
+
PY
|
|
209
|
+
|
|
210
|
+
# 5. If something is off, inspect the intermediate HTML
|
|
211
|
+
ls /var/folders/.../pdfgen-reformat.*/page.html # printed by --keep-html
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
If the output is suspiciously small (< 5 KB), `render_html.cjs` exits with
|
|
215
|
+
code 3 and a JSON error — usually a JS error in the source HTML or a missing
|
|
216
|
+
font / image.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 9. Pitfalls
|
|
221
|
+
|
|
222
|
+
- **Title lift surprises you.** If your source's first H1 isn't the document
|
|
223
|
+
title (e.g. it's "Introduction"), pass `--title` explicitly.
|
|
224
|
+
- **Tables overflow.** Markdown tables inherit the source's column width. If
|
|
225
|
+
the resulting table is too wide, edit the source markdown to use shorter
|
|
226
|
+
cell content or convert to a list of bullets.
|
|
227
|
+
- **PDF source is image-only.** `pdftotext` returns empty. Use the READ
|
|
228
|
+
route ([`read-guide.md`](read-guide.md)) with vision to extract first,
|
|
229
|
+
save as `.md`, then reformat.
|
|
230
|
+
- **TOC is plain text.** Markdown headings rendered correctly, but the PDF has
|
|
231
|
+
no clickable navigation. Generate a TOC from the heading tree, add stable
|
|
232
|
+
anchor IDs, and verify the final PDF links/outline before delivery.
|
|
233
|
+
- **Mixed CJK + Latin without spaces.** markdown-it does the right thing but
|
|
234
|
+
the system font cascade is what makes characters render correctly; see
|
|
235
|
+
[html-pdf-spec.md §4](html-pdf-spec.md#4-typography).
|
|
236
|
+
- **HTML source with inline `<script>`.** REFORMAT pass-through respects it;
|
|
237
|
+
the renderer waits for `networkidle`. If the script depends on a CDN that
|
|
238
|
+
fails, the body won't update — vendor the script next to the HTML.
|