codewave-openclaw-installer 2.1.12 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/bin/install-lib.mjs +11 -0
  2. package/bin/install.mjs +59 -1
  3. package/package.json +12 -1
  4. package/skills/acceptance-doc-entry/SKILL.md +54 -1
  5. package/skills/ppt-master/SKILL.md +17 -390
  6. package/skills/ppt-master/projects/.gitkeep +0 -0
  7. package/skills/ppt-master/references/executor-base.md +4 -3
  8. package/skills/ppt-master/references/image-generator.md +6 -93
  9. package/skills/ppt-master/references/strategist.md +5 -8
  10. package/skills/ppt-master/scripts/README.md +1 -1
  11. package/skills/ppt-master/scripts/finalize_svg.py +0 -14
  12. package/skills/ppt-master/scripts/svg_quality_checker.py +8 -169
  13. package/skills/ppt-master/scripts/svg_to_pptx/pptx_builder.py +1 -7
  14. package/skills/ppt-master/scripts/svg_to_pptx/pptx_cli.py +0 -14
  15. package/skills/risk-alert/SKILL.md +110 -0
  16. package/skills/risk-alert/config.example.json +21 -0
  17. package/skills/risk-alert/scheduler.sh +74 -0
  18. package/skills/risk-alert/scripts/analyze-risk.js +414 -0
  19. package/skills/risk-alert/scripts/config-manager.js +241 -0
  20. package/skills/risk-alert/scripts/push-beautiful.js +225 -0
  21. package/skills/risk-alert/scripts/risk-alert.js +136 -0
  22. package/skills/risk-alert/scripts/run-full.js +60 -0
  23. package/skills/risk-alert/trigger-risk-alert.sh +35 -0
  24. package/skills/ppt-master/.env.example +0 -35
  25. package/skills/ppt-master/README.md +0 -90
  26. package/skills/ppt-master/audit_report_model_perf.md +0 -213
  27. package/skills/ppt-master/audit_report_portability.md +0 -90
  28. package/skills/ppt-master/audit_report_robustness.md +0 -192
  29. package/skills/ppt-master/audit_report_workflow.md +0 -233
  30. package/skills/ppt-master/fix_report_bid.md +0 -51
  31. package/skills/ppt-master/fix_report_scripts.md +0 -41
  32. package/skills/ppt-master/references/bid-content-example-netease.md +0 -815
  33. package/skills/ppt-master/references/bid-content-template.md +0 -390
  34. package/skills/ppt-master/references/bid-example-netease.md +0 -339
  35. package/skills/ppt-master/references/bid-presentation.md +0 -384
  36. package/skills/ppt-master/references/bid-svgs/03_toc.svg +0 -38
  37. package/skills/ppt-master/references/bid-svgs/04_chapter_company.svg +0 -7
  38. package/skills/ppt-master/references/bid-svgs/05_company_overview.svg +0 -28
  39. package/skills/ppt-master/references/bid-svgs/06_vision_business.svg +0 -45
  40. package/skills/ppt-master/references/bid-svgs/07_product_system.svg +0 -52
  41. package/skills/ppt-master/references/bid-svgs/08_codewave_timeline.svg +0 -29
  42. package/skills/ppt-master/references/bid-svgs/09_certifications.svg +0 -33
  43. package/skills/ppt-master/references/bid-svgs/10_client_logos.svg +0 -25
  44. package/skills/ppt-master/references/bid-svgs/11_brand_mission.svg +0 -14
  45. package/skills/ppt-master/references/bid-svgs/12_chapter_demand.svg +0 -7
  46. package/skills/ppt-master/references/bid-svgs/16_chapter_advantages.svg +0 -7
  47. package/skills/ppt-master/references/bid-svgs/18_platform_arch.svg +0 -24
  48. package/skills/ppt-master/references/bid-svgs/19_function_matrix.svg +0 -35
  49. package/skills/ppt-master/references/bid-svgs/20_dev_arch.svg +0 -29
  50. package/skills/ppt-master/references/bid-svgs/21_source_code.svg +0 -25
  51. package/skills/ppt-master/references/bid-svgs/22_ai_dev.svg +0 -27
  52. package/skills/ppt-master/references/bid-svgs/23_asset_market.svg +0 -33
  53. package/skills/ppt-master/references/bid-svgs/24_multi_org.svg +0 -28
  54. package/skills/ppt-master/references/bid-svgs/25_i18n.svg +0 -22
  55. package/skills/ppt-master/references/bid-svgs/26_multi_tenant.svg +0 -25
  56. package/skills/ppt-master/references/bid-svgs/27_integration.svg +0 -27
  57. package/skills/ppt-master/references/bid-svgs/28_permission.svg +0 -31
  58. package/skills/ppt-master/references/bid-svgs/29_security.svg +0 -25
  59. package/skills/ppt-master/references/bid-svgs/30_ai_capabilities.svg +0 -21
  60. package/skills/ppt-master/references/bid-svgs/31_product_combo.svg +0 -25
  61. package/skills/ppt-master/references/bid-svgs/32_digital_transform.svg +0 -28
  62. package/skills/ppt-master/references/bid-svgs/33_chapter_cases.svg +0 -7
  63. package/skills/ppt-master/references/bid-svgs/34_cummins_case.svg +0 -23
  64. package/skills/ppt-master/references/bid-svgs/35_cpq_cost.svg +0 -22
  65. package/skills/ppt-master/references/bid-svgs/36_tech_platform.svg +0 -18
  66. package/skills/ppt-master/references/bid-svgs/37_platform_value.svg +0 -24
  67. package/skills/ppt-master/references/bid-svgs/38_operation_plan.svg +0 -25
  68. package/skills/ppt-master/references/bid-svgs/39_zpmc_case.svg +0 -21
  69. package/skills/ppt-master/references/bid-svgs/40_zpmc_apps.svg +0 -23
  70. package/skills/ppt-master/references/bid-svgs/41_chapter_service.svg +0 -7
  71. package/skills/ppt-master/references/bid-svgs/42_tech_support.svg +0 -24
  72. package/skills/ppt-master/references/bid-svgs/43_knowledge_transfer.svg +0 -25
  73. package/skills/ppt-master/references/bid-svgs/44_operation_promotion.svg +0 -20
  74. package/skills/ppt-master/references/bid-svgs/45_custom_dev_guide.svg +0 -24
  75. package/skills/ppt-master/references/bid-svgs/46_sla_guarantee.svg +0 -18
  76. package/skills/ppt-master/references/bid-svgs/47_strategic_cooperation.svg +0 -25
  77. package/skills/ppt-master/references/bid-svgs/48_ecosystem.svg +0 -24
  78. package/skills/ppt-master/references/bid-svgs/49_chapter_delivery.svg +0 -23
  79. package/skills/ppt-master/references/bid-svgs/53_pm_intro.svg +0 -24
  80. package/skills/ppt-master/references/bid-svgs/54_after_sales.svg +0 -27
  81. package/skills/ppt-master/references/bid-svgs/55_ending.svg +0 -8
  82. package/skills/ppt-master/references/company_intro.md +0 -93
  83. package/skills/ppt-master/references/company_intro_images/slide1_img00.png +0 -0
  84. package/skills/ppt-master/references/company_intro_images/slide1_img01.png +0 -0
  85. package/skills/ppt-master/references/company_intro_images/slide1_img02.png +0 -0
  86. package/skills/ppt-master/references/company_intro_images/slide1_img03.png +0 -0
  87. package/skills/ppt-master/references/company_intro_images/slide1_img04.png +0 -0
  88. package/skills/ppt-master/references/company_intro_images/slide1_img05.png +0 -0
  89. package/skills/ppt-master/references/company_intro_images/slide1_img06.png +0 -0
  90. package/skills/ppt-master/references/company_intro_images/slide1_img07.png +0 -0
  91. package/skills/ppt-master/references/company_intro_images/slide1_img08.png +0 -0
  92. package/skills/ppt-master/references/company_intro_images/slide1_img09.png +0 -0
  93. package/skills/ppt-master/references/company_intro_images/slide1_img10.png +0 -0
  94. package/skills/ppt-master/references/company_intro_images/slide1_img11.png +0 -0
  95. package/skills/ppt-master/references/company_intro_images/slide1_img12.png +0 -0
  96. package/skills/ppt-master/references/company_intro_images/slide1_img13.png +0 -0
  97. package/skills/ppt-master/references/company_intro_images/slide1_img14.png +0 -0
  98. package/skills/ppt-master/references/company_intro_images/slide1_img15.png +0 -0
  99. package/skills/ppt-master/references/company_intro_images/slide1_img16.png +0 -0
  100. package/skills/ppt-master/references/company_intro_images/slide1_img17.png +0 -0
  101. package/skills/ppt-master/references/company_intro_images/slide1_img18.png +0 -0
  102. package/skills/ppt-master/references/company_intro_images/slide1_img19.png +0 -0
  103. package/skills/ppt-master/references/company_intro_images/slide1_img20.png +0 -0
  104. package/skills/ppt-master/references/company_intro_images/slide1_img21.png +0 -0
  105. package/skills/ppt-master/references/company_intro_images/slide1_img22.png +0 -0
  106. package/skills/ppt-master/references/company_intro_images/slide1_img23.png +0 -0
  107. package/skills/ppt-master/references/company_intro_images/slide1_img24.png +0 -0
  108. package/skills/ppt-master/references/company_intro_images/slide1_img25.png +0 -0
  109. package/skills/ppt-master/references/company_intro_images/slide1_img26.png +0 -0
  110. package/skills/ppt-master/references/company_intro_images/slide1_img27.png +0 -0
  111. package/skills/ppt-master/references/company_intro_images/slide1_img28.png +0 -0
  112. package/skills/ppt-master/references/company_intro_images/slide1_img29.png +0 -0
  113. package/skills/ppt-master/references/company_intro_images/slide2_img30.png +0 -0
  114. package/skills/ppt-master/references/company_intro_images/slide2_img31.jpg +0 -0
  115. package/skills/ppt-master/references/company_intro_images/slide3_img32.png +0 -0
  116. package/skills/ppt-master/references/company_intro_images/slide3_img33.png +0 -0
  117. package/skills/ppt-master/references/drawio-integration.md +0 -144
  118. package/skills/ppt-master/requirements.txt +0 -19
  119. package/skills/ppt-master/resources/backgrounds/chapter_bg.png +0 -0
  120. package/skills/ppt-master/resources/backgrounds/company_bg.png +0 -0
  121. package/skills/ppt-master/resources/backgrounds/cover_bg.png +0 -0
  122. package/skills/ppt-master/resources/backgrounds/index.json +0 -40
  123. package/skills/ppt-master/resources/backgrounds/tech_bg.png +0 -0
  124. package/skills/ppt-master/scripts/__pycache__/config.cpython-314.pyc +0 -0
  125. package/skills/ppt-master/scripts/__pycache__/error_helper.cpython-314.pyc +0 -0
  126. package/skills/ppt-master/scripts/__pycache__/pptx_animations.cpython-314.pyc +0 -0
  127. package/skills/ppt-master/scripts/__pycache__/project_utils.cpython-314.pyc +0 -0
  128. package/skills/ppt-master/scripts/arch_diagram.py +0 -370
  129. package/skills/ppt-master/scripts/bid_init.py +0 -79
  130. package/skills/ppt-master/scripts/drawio_gen.py +0 -366
  131. package/skills/ppt-master/scripts/drawio_to_svg.py +0 -458
  132. package/skills/ppt-master/scripts/image_backends/__pycache__/__init__.cpython-314.pyc +0 -0
  133. package/skills/ppt-master/scripts/image_backends/__pycache__/backend_aigw_gemini.cpython-314.pyc +0 -0
  134. package/skills/ppt-master/scripts/image_backends/__pycache__/backend_common.cpython-314.pyc +0 -0
  135. package/skills/ppt-master/scripts/svg_finalize/__pycache__/__init__.cpython-314.pyc +0 -0
  136. package/skills/ppt-master/scripts/svg_finalize/__pycache__/crop_images.cpython-314.pyc +0 -0
  137. package/skills/ppt-master/scripts/svg_finalize/__pycache__/embed_icons.cpython-314.pyc +0 -0
  138. package/skills/ppt-master/scripts/svg_finalize/__pycache__/embed_images.cpython-314.pyc +0 -0
  139. package/skills/ppt-master/scripts/svg_finalize/__pycache__/fix_image_aspect.cpython-314.pyc +0 -0
  140. package/skills/ppt-master/scripts/svg_finalize/__pycache__/flatten_tspan.cpython-314.pyc +0 -0
  141. package/skills/ppt-master/scripts/svg_finalize/__pycache__/svg_rect_to_path.cpython-314.pyc +0 -0
  142. package/skills/ppt-master/scripts/svg_page_gen.py +0 -871
  143. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/__init__.cpython-314.pyc +0 -0
  144. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/drawingml_context.cpython-314.pyc +0 -0
  145. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/drawingml_converter.cpython-314.pyc +0 -0
  146. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/drawingml_elements.cpython-314.pyc +0 -0
  147. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/drawingml_paths.cpython-314.pyc +0 -0
  148. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/drawingml_styles.cpython-314.pyc +0 -0
  149. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/drawingml_utils.cpython-314.pyc +0 -0
  150. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_builder.cpython-314.pyc +0 -0
  151. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_cli.cpython-314.pyc +0 -0
  152. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_dimensions.cpython-314.pyc +0 -0
  153. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_discovery.cpython-314.pyc +0 -0
  154. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_media.cpython-314.pyc +0 -0
  155. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_notes.cpython-314.pyc +0 -0
  156. package/skills/ppt-master/scripts/svg_to_pptx/__pycache__/pptx_slide_xml.cpython-314.pyc +0 -0
  157. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204}/01_cover.svg" +0 -0
  158. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204}/02_chapter.svg" +0 -0
  159. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204}/02_toc.svg" +0 -0
  160. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204}/03_content.svg" +0 -0
  161. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204}/04_ending.svg" +0 -0
  162. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204}/design_spec.md" +0 -0
  163. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210//316/243/342/225/225/302/241/317/203/302/242/342/225/234/302/265/342/226/221/342/224/244/317/203e/314/200i/314/201logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204//344/270/255/345/233/275/346/260/264/345/212/241logo.png"} +0 -0
  164. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210//317/203i/314/200A/314/210/316/243/342/225/225/302/243/316/230O/314/210o/314/201logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204//345/215/216/344/270/234/351/231/242logo.png"} +0 -0
  165. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210//302/265/342/226/221/342/224/244/317/204o/314/210/342/225/241/316/243/342/225/225e/314/210/317/203/342/226/222C/314/247logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204//346/260/264/347/224/265/344/270/211/345/261/200logo.png"} +0 -0
  166. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210//317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/345/270/270/350/247/204//347/224/265/345/273/272logo.png"} +0 -0
  167. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243}/01_cover.svg" +0 -0
  168. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243}/02_chapter.svg" +0 -0
  169. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243}/02_toc.svg" +0 -0
  170. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243}/03_content.svg" +0 -0
  171. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243}/04_ending.svg" +0 -0
  172. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243}/design_spec.md" +0 -0
  173. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201//316/243/342/225/225/302/241/317/203/302/242/342/225/234/302/265/342/226/221/342/224/244/317/203e/314/200i/314/201logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243//344/270/255/345/233/275/346/260/264/345/212/241logo.png"} +0 -0
  174. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201//317/203i/314/200A/314/210/316/243/342/225/225/302/243/316/230O/314/210o/314/201logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243//345/215/216/344/270/234/351/231/242logo.png"} +0 -0
  175. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201//302/265/342/226/221/342/224/244/317/204o/314/210/342/225/241/316/243/342/225/225e/314/210/317/203/342/226/222C/314/247logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243//346/260/264/347/224/265/344/270/211/345/261/200logo.png"} +0 -0
  176. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/317/203/302/242/342/225/234/317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201//317/204o/314/210/342/225/241/317/203/342/225/227/342/225/221logo.png" → 344/270/255/345/233/275/347/224/265/345/273/272_/347/216/260/344/273/243//347/224/265/345/273/272logo.png"} +0 -0
  177. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241}/01_cover.svg" +0 -0
  178. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241}/02_chapter.svg" +0 -0
  179. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241}/02_toc.svg" +0 -0
  180. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241}/03_content.svg" +0 -0
  181. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241}/04_ending.svg" +0 -0
  182. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241}/design_spec.md" +0 -0
  183. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201//317/203A/314/212/342/224/202/316/243/342/225/225e/314/200/316/246/302/272/303/206 logo.png" → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241//345/217/263/344/270/212/350/247/222 logo.png"} +0 -0
  184. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203o/314/200a/314/212/317/203e/314/200i/314/201//317/203n/314/203/302/272/317/203/342/202/247i/314/210 logo.png" → 344/270/255/346/261/275/347/240/224_/345/225/206/345/212/241//345/244/247/345/236/213 logo.png"} +0 -0
  185. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204}/01_cover.svg" +0 -0
  186. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204}/02_chapter.svg" +0 -0
  187. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204}/02_toc.svg" +0 -0
  188. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204}/03_content.svg" +0 -0
  189. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204}/04_ending.svg" +0 -0
  190. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210 → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204}/design_spec.md" +0 -0
  191. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210//317/203A/314/212/342/224/202/316/243/342/225/225e/314/200/316/246/302/272/303/206 logo.png" → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204//345/217/263/344/270/212/350/247/222 logo.png"} +0 -0
  192. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/203/342/225/225/342/225/225/316/246/302/272a/314/210//317/203n/314/203/302/272/317/203/342/202/247i/314/210 logo.png" → 344/270/255/346/261/275/347/240/224_/345/270/270/350/247/204//345/244/247/345/236/213 logo.png"} +0 -0
  193. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243}/01_cover.svg" +0 -0
  194. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243}/02_chapter.svg" +0 -0
  195. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243}/02_toc.svg" +0 -0
  196. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243}/03_content.svg" +0 -0
  197. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243}/04_ending.svg" +0 -0
  198. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201 → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243}/design_spec.md" +0 -0
  199. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201//317/203A/314/212/342/224/202/316/243/342/225/225e/314/200/316/246/302/272/303/206 logo.png" → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243//345/217/263/344/270/212/350/247/222 logo.png"} +0 -0
  200. /package/skills/ppt-master/templates/layouts//{316/243/342/225/225/302/241/302/265/342/226/222/342/225/234/317/204a/314/201o/314/210_/317/204A/314/210/342/226/221/316/243/342/225/227u/314/201//317/203n/314/203/302/272/317/203/342/202/247i/314/210 logo.png" → 344/270/255/346/261/275/347/240/224_/347/216/260/344/273/243//345/244/247/345/236/213 logo.png"} +0 -0
  201. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202 → 346/213/233/345/225/206/351/223/266/350/241/214}/01_cover.svg" +0 -0
  202. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202 → 346/213/233/345/225/206/351/223/266/350/241/214}/02_chapter.svg" +0 -0
  203. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202 → 346/213/233/345/225/206/351/223/266/350/241/214}/02_toc.svg" +0 -0
  204. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202 → 346/213/233/345/225/206/351/223/266/350/241/214}/03_content.svg" +0 -0
  205. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202 → 346/213/233/345/225/206/351/223/266/350/241/214}/04_ending.svg" +0 -0
  206. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202 → 346/213/233/345/225/206/351/223/266/350/241/214}/design_spec.md" +0 -0
  207. /package/skills/ppt-master/templates/layouts//{302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202//302/265i/314/210/302/242/317/203o/314/200a/314/212/316/230o/314/202/342/225/242/316/246i/314/201i/314/202/317/203a/314/200/302/274/317/203A/314/212/342/225/225/316/230c/314/247/303/246/316/246/342/202/247i/314/200.png" → 346/213/233/345/225/206/351/223/266/350/241/214//346/213/233/345/225/206/351/223/266/350/241/214/345/205/254/345/217/270/351/207/221/350/236/215.png"} +0 -0
  208. /package/skills/ppt-master/templates/layouts//{317/204/302/272/303/246/302/265e/314/200C/314/247/316/246o/314/202/302/245/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 347/247/221/346/212/200/350/223/235/345/225/206/345/212/241}/01_cover.svg" +0 -0
  209. /package/skills/ppt-master/templates/layouts//{317/204/302/272/303/246/302/265e/314/200C/314/247/316/246o/314/202/302/245/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 347/247/221/346/212/200/350/223/235/345/225/206/345/212/241}/02_chapter.svg" +0 -0
  210. /package/skills/ppt-master/templates/layouts//{317/204/302/272/303/246/302/265e/314/200C/314/247/316/246o/314/202/302/245/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 347/247/221/346/212/200/350/223/235/345/225/206/345/212/241}/02_toc.svg" +0 -0
  211. /package/skills/ppt-master/templates/layouts//{317/204/302/272/303/246/302/265e/314/200C/314/247/316/246o/314/202/302/245/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 347/247/221/346/212/200/350/223/235/345/225/206/345/212/241}/03_content.svg" +0 -0
  212. /package/skills/ppt-master/templates/layouts//{317/204/302/272/303/246/302/265e/314/200C/314/247/316/246o/314/202/302/245/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 347/247/221/346/212/200/350/223/235/345/225/206/345/212/241}/04_ending.svg" +0 -0
  213. /package/skills/ppt-master/templates/layouts//{317/204/302/272/303/246/302/265e/314/200C/314/247/316/246o/314/202/302/245/317/203o/314/200a/314/212/317/203e/314/200i/314/201 → 347/247/221/346/212/200/350/223/235/345/225/206/345/212/241}/design_spec.md" +0 -0
  214. /package/skills/ppt-master/templates/layouts/{Technology Blue Business/01_cover.svg → /351/207/215/345/272/206/345/244/247/345/255/246/01_cover.svg"} +0 -0
  215. /package/skills/ppt-master/templates/layouts/{Technology Blue Business/02_chapter.svg → /351/207/215/345/272/206/345/244/247/345/255/246/02_chapter.svg"} +0 -0
  216. /package/skills/ppt-master/templates/layouts/{Technology Blue Business/02_toc.svg → /351/207/215/345/272/206/345/244/247/345/255/246/02_toc.svg"} +0 -0
  217. /package/skills/ppt-master/templates/layouts/{Technology Blue Business/03_content.svg → /351/207/215/345/272/206/345/244/247/345/255/246/03_content.svg"} +0 -0
  218. /package/skills/ppt-master/templates/layouts/{Technology Blue Business/04_ending.svg → /351/207/215/345/272/206/345/244/247/345/255/246/04_ending.svg"} +0 -0
  219. /package/skills/ppt-master/templates/layouts/{Technology Blue Business/design_spec.md → /351/207/215/345/272/206/345/244/247/345/255/246/design_spec.md"} +0 -0
  220. /package/skills/ppt-master/templates/layouts/{Technology Blue Business//316/230c/314/247i/314/200/317/203/342/225/221a/314/212/317/203n/314/203/302/272/317/203/302/241/302/252logo.png" → /351/207/215/345/272/206/345/244/247/345/255/246//351/207/215/345/272/206/345/244/247/345/255/246logo.png"} +0 -0
  221. /package/skills/ppt-master/templates/layouts/{Technology Blue Business//316/230c/314/247i/314/200/317/203/342/225/221a/314/212/317/203n/314/203/302/272/317/203/302/241/302/252logo2.png" → /351/207/215/345/272/206/345/244/247/345/255/246//351/207/215/345/272/206/345/244/247/345/255/246logo2.png"} +0 -0
@@ -11,23 +11,6 @@ description: >
11
11
 
12
12
  > AI-driven multi-format SVG content generation system. Converts source documents into high-quality SVG pages through multi-role collaboration and exports to PPTX.
13
13
 
14
- ## ⚠️ Model Requirements
15
-
16
- | Requirement | Minimum | Recommended |
17
- |-------------|---------|-------------|
18
- | Context window | 128K tokens | 200K+ tokens |
19
- | Model tier | Claude Sonnet 4 / GPT-4o | Claude Opus / Sonnet with extended thinking |
20
- | SVG code quality | Must handle complex SVG generation | Higher tier = better layouts |
21
- | Cost estimate (55 pages) | ~$11 (Sonnet) | ~$48 (Opus) |
22
-
23
- > 🔴 **Claude Haiku / GPT-3.5 / GPT-4o-mini 等轻量模型不适用**。SVG 代码生成需要强推理能力,弱模型会产出不合规的 SVG(缺元素、布局混乱、忽略设计规范)。
24
-
25
- ## Python Dependencies
26
-
27
- ```bash
28
- pip install -r ${SKILL_DIR}/requirements.txt
29
- ```
30
-
31
14
  **Core Pipeline**: `Source Document → Create Project → Template Option → Strategist → [Image_Generator] → Executor → Post-processing → Export`
32
15
 
33
16
  > [!CAUTION]
@@ -40,7 +23,8 @@ pip install -r ${SKILL_DIR}/requirements.txt
40
23
  > 3. **NO CROSS-PHASE BUNDLING** — Cross-phase bundling is FORBIDDEN. (Note: the Eight Confirmations in Step 4 are ⛔ BLOCKING — the AI MUST present recommendations and wait for explicit user confirmation before proceeding. Once the user confirms, all subsequent non-BLOCKING steps — design spec output, SVG generation, speaker notes, and post-processing — may proceed automatically without further user confirmation)
41
24
  > 4. **GATE BEFORE ENTRY** — Each Step has prerequisites (🚧 GATE) listed at the top; these MUST be verified before starting that Step
42
25
  > 5. **NO SPECULATIVE EXECUTION** — "Pre-preparing" content for subsequent Steps is FORBIDDEN (e.g., writing SVG code during the Strategist phase)
43
- > 6. **SUB-AGENT COLLABORATIVE SVG GENERATION** — After the main agent completes Steps 1-4, Design Spec generation, and global design parameter confirmation, SVG page generation MAY be delegated to sub-agents for parallel execution. The main agent distributes pages in 2-3 batches, each batch assigned to a sub-agent. Sub-agents MUST strictly follow the design_spec.md color, font, and layout specifications. After all sub-agents complete, the main agent checks cross-page visual consistency and proceeds to Step 7 post-processing. Speaker notes (notes/total.md) MUST be generated by the main agent to ensure narrative coherence.
26
+ > 6. **NO SUB-AGENT SVG GENERATION** — Executor Step 6 SVG generation is context-dependent and MUST be completed by the current main agent end-to-end. Delegating page SVG generation to sub-agents is FORBIDDEN
27
+ > 7. **SEQUENTIAL PAGE GENERATION ONLY** — In Executor Step 6, after the global design context is confirmed, SVG pages MUST be generated sequentially page by page in one continuous pass. Grouped page batches (for example, 5 pages at a time) are FORBIDDEN
44
28
 
45
29
  > [!IMPORTANT]
46
30
  > ## 🌐 Language & Communication Rule
@@ -58,8 +42,6 @@ pip install -r ${SKILL_DIR}/requirements.txt
58
42
 
59
43
  ## Main Pipeline Scripts
60
44
 
61
- > **🌟 Core Feature**: Professional architecture diagram generation — complex technical diagrams (architecture, topology, security, integration) are dynamically generated via `arch_diagram.py` (zones mode) as structured SVG. This is the skill's signature capability that makes every PPT unique and professional.
62
-
63
45
  | Script | Purpose |
64
46
  |--------|---------|
65
47
  | `${SKILL_DIR}/scripts/pdf_to_md.py` | PDF to Markdown |
@@ -67,14 +49,9 @@ pip install -r ${SKILL_DIR}/requirements.txt
67
49
  | `${SKILL_DIR}/scripts/web_to_md.py` | Web page to Markdown |
68
50
  | `${SKILL_DIR}/scripts/web_to_md.cjs` | WeChat / high-security sites to Markdown |
69
51
  | `${SKILL_DIR}/scripts/project_manager.py` | Project init / validate / manage |
70
- | `${SKILL_DIR}/scripts/bid_init.py` | Bid presentation: copy 46 fixed SVGs (述标快速初始化) |
71
52
  | `${SKILL_DIR}/scripts/analyze_images.py` | Image analysis |
72
- | `${SKILL_DIR}/scripts/image_gen.py` | AI image generation (multi-provider, for decorative backgrounds) |
73
- | **`${SKILL_DIR}/scripts/arch_diagram.py`** | **🌟 Architecture diagram generator (zones/layers mode, JSON→SVG)** |
74
- | **`${SKILL_DIR}/scripts/svg_page_gen.py`** | **Batch SVG page generator (JSON page definitions→full SVG set)** |
75
- | **`${SKILL_DIR}/scripts/drawio_gen.py`** | **Draw.io XML generator (JSON→.drawio, auto-layout)** |
76
- | **`${SKILL_DIR}/scripts/drawio_to_svg.py`** | **Draw.io to SVG converter (.drawio→SVG 1280×720)** |
77
- | **`${SKILL_DIR}/scripts/svg_quality_checker.py`** | **SVG 质量检查+自动修复(viewBox/禁用元素/文字溢出/底部红线,支持 --fix)** |
53
+ | `${SKILL_DIR}/scripts/image_gen.py` | AI image generation (multi-provider) |
54
+ | `${SKILL_DIR}/scripts/svg_quality_checker.py` | SVG quality check |
78
55
  | `${SKILL_DIR}/scripts/total_md_split.py` | Speaker notes splitting |
79
56
  | `${SKILL_DIR}/scripts/finalize_svg.py` | SVG post-processing (unified entry) |
80
57
  | `${SKILL_DIR}/scripts/svg_to_pptx.py` | Export to PPTX |
@@ -150,8 +127,6 @@ Import source content (choose based on the situation):
150
127
 
151
128
  ⛔ **BLOCKING**: If the user has not yet clearly expressed whether to use a template, you MUST present options and **wait for an explicit user response** before proceeding. If the user has previously stated "no template" or specified a particular template, skip this prompt and proceed directly.
152
129
 
153
- > ⚠️ **NO REPEAT ASKING**: Once the user has responded to the template selection question (choosing A, B, or C below), their choice is FINAL. Do NOT ask about template selection again in any subsequent step. Record the decision and move on. If the user's answer is ambiguous, interpret it reasonably and proceed — do NOT loop back to re-ask.
154
-
155
130
  **⚡ Early-exit**: If the user has already stated "no template" / "不使用模板" / "自由设计" (or equivalent) at any prior point in the conversation, **do NOT query `layouts_index.json`** — skip directly to Step 4. This avoids unnecessary token consumption.
156
131
 
157
132
  **Template recommendation flow** (only when the user has NOT yet decided):
@@ -163,14 +138,6 @@ Query `${SKILL_DIR}/templates/layouts/layouts_index.json` to list available temp
163
138
  > Which approach would you prefer?
164
139
  > **A) Use an existing template** (please specify template name or style preference)
165
140
  > **B) No template** — free design
166
- > **C) Both — generate multiple versions for comparison** (specify which template(s) + free design)
167
-
168
- **Option C — Multi-version comparison mode**:
169
- When the user requests multiple versions (e.g., "both", "对比", "两个都做"):
170
- 1. Create separate project directories for each version (e.g., `<project>_template/`, `<project>_free/`)
171
- 2. Step 4 (Strategist) is shared — generate ONE design_spec, then adapt per version
172
- 3. Step 6 (Executor) runs in parallel via sub-agents, one per version
173
- 4. Step 7 (Post-processing) runs independently for each version
174
141
 
175
142
  After the user confirms option A, copy template files to the project directory:
176
143
  ```bash
@@ -184,7 +151,7 @@ After the user confirms option B, proceed directly to Step 4.
184
151
 
185
152
  > To create a new global template, read `workflows/create-template.md`
186
153
 
187
- **✅ Checkpoint — User has responded with template selection, template files copied (if option A). Proceed to Step 4. Do NOT revisit this step.**
154
+ **✅ Checkpoint — User has responded with template selection, template files copied (if option A). Proceed to Step 4.**
188
155
 
189
156
  ---
190
157
 
@@ -210,20 +177,6 @@ Read references/strategist.md
210
177
  7. Typography plan
211
178
  8. Image usage approach
212
179
 
213
- **默认值(用户未回答时自动采用)**:
214
- | # | 确认项 | 默认值 |
215
- |---|--------|--------|
216
- | 1 | Canvas format | `ppt169` (1280×720, 16:9) |
217
- | 2 | Page count | 根据源文档内容量自动推荐 |
218
- | 3 | Target audience | 企业客户/决策者 |
219
- | 4 | Style objective | 专业商务风 |
220
- | 5 | Color scheme | 从源文档/品牌色自动提取,默认深蓝 #2B5DA6 |
221
- | 6 | Icon usage | Lucide SVG 内联图标 |
222
- | 7 | Typography | Microsoft YaHei, 正文 16px |
223
- | 8 | Image usage | 无 AI 背景图(Tier 1 纯 SVG) |
224
-
225
- > 💡 如果用户回复"都按你推荐的来"或类似表述,直接使用以上默认值继续。
226
-
227
180
  If the user has provided images, run the analysis script **before outputting the design spec** (do NOT directly read/open image files — use the script output only):
228
181
  ```bash
229
182
  python3 ${SKILL_DIR}/scripts/analyze_images.py <project_path>/images
@@ -243,234 +196,20 @@ python3 ${SKILL_DIR}/scripts/analyze_images.py <project_path>/images
243
196
 
244
197
  ---
245
198
 
246
- ### Step 4.5: Bid Presentation Scene Recognition (Conditional)
247
-
248
- 🚧 **GATE**: Step 4 complete; Design Specification & Content Outline generated.
249
-
250
- > **Trigger condition**: Source document is a bid/tender document (述标文件/招标文件/投标文件), or user explicitly requests a bid presentation PPT (述标 PPT / 投标演示 / 竞标展示).
251
-
252
- When triggered:
253
- 1. Read `references/bid-presentation.md` for the **55-page template-driven structure**
254
- 2. Read `references/bid-content-template.md` for **detailed fixed-content text** of each page
255
- 3. **Run the bid initializer** to copy 46 pre-built fixed SVGs:
256
- ```bash
257
- python3 ${SKILL_DIR}/scripts/bid_init.py <project_path>
258
- ```
259
- This instantly copies 46 fixed-content SVGs into `svg_output/`, leaving only **9 pages** for manual generation.
260
- 4. **Override the Content Outline** in design_spec to follow the 55-page structure:
261
- - 🔒 Fixed pages (46 pages): **Already copied by `bid_init.py`** — no generation needed
262
- - 🔄 Dynamic pages (6 pages: slides 1,2,13,14,15,17): Extract content from user's uploaded document and generate SVGs
263
- - 🔀 Semi-dynamic pages (3 pages: slides 50,51,52): Use template structure, replace variables, generate SVGs
264
- 5. **Page count is fixed at 55** (do not add or remove pages unless user explicitly requests)
265
- 6. Apply the Eight Confirmations presets for bid scenarios (see `bid-presentation.md`)
266
-
267
- > ⚠️ **Speed optimization**: With `bid_init.py`, only 9 out of 55 pages need manual SVG generation. The entire bid PPT can be produced in under 5 minutes (vs. 30+ minutes generating all 55 pages).
268
- >
269
- > ⚠️ **Content principle**: The template defines the PPT outline structure and fixed-page content. Dynamic pages must be filled with content extracted from the user's uploaded document — replace all placeholder client/project references with actual document content.
270
- >
271
- > ⚠️ **SubAgent fallback**: If sub-agents fail (sandbox limitations, workspace inheritance issues), generate the 9 manual pages directly using `write` tool — do NOT retry sub-agents in a loop. 9 pages can be written sequentially in ~2 minutes.
272
-
273
- **✅ Checkpoint — 46 fixed SVGs copied, 9 dynamic/semi-dynamic pages identified. Proceed to generate only the 9 manual pages, then go to Step 7.**
274
-
275
- ---
276
-
277
199
  ### Step 5: Image_Generator Phase (Conditional)
278
200
 
279
201
  🚧 **GATE**: Step 4 complete; Design Specification & Content Outline generated and user confirmed.
280
202
 
281
- > **🌟 架构图生成(全模式必备 Skill 核心亮点)**
282
- >
283
- > 无论选择哪个 Tier、哪种场景(述标/自由设计/模板),**架构图、系统拓扑图、技术方案图、流程架构图等复杂技术图表**一律使用 `arch_diagram.py` zones 模式生成。这是本 Skill 区别于传统 PPT 工具的**核心能力**。
284
- >
285
- > **架构图生成工具链(按优先级)**:
286
- >
287
- > | 优先级 | 工具 | 适用场景 | 特点 |
288
- > |--------|------|----------|------|
289
- > | **🥇 首选** | `arch_diagram.py` zones 模式 | 平台架构、功能架构、安全架构、技术方案 | JSON→SVG,纯本地,秒出,专业分区布局 |
290
- > | 🥈 备选 | `drawio_gen.py` + `drawio_to_svg.py` | 流程图、数据流图、拓扑图 | JSON→.drawio→SVG,支持10种形状+3种线型 |
291
- > | 🥉 补充 | `image_gen.py` (AI生图) | 背景装饰图、概念图 | 需要 .env 配置API,适合非结构化视觉 |
292
- >
293
- > **触发条件**:Content Outline 中包含以下类型页面时,自动进入架构图生成流程:
294
- > - 平台架构图、系统架构图、技术架构图
295
- > - 功能架构图、部署架构图、集成架构图
296
- > - 网络拓扑图、数据流图、技术方案概览图
297
- > - 安全架构图、权限架构图
298
- > - 任何标题含"架构"、"拓扑"、"技术方案"、"系统概览"的页面
299
- >
300
- > **arch_diagram.py zones 模式用法**:
301
- >
302
- > 1. 创建 JSON 定义文件(每张架构图一个):
303
- > ```json
304
- > {
305
- > "title": "平台架构",
306
- > "layout": "zones",
307
- > "grid_cols": 12, "grid_rows": 8,
308
- > "zones": [
309
- > {
310
- > "id": "platform", "label": "开发平台",
311
- > "x": 0, "y": 0, "w": 8, "h": 3,
312
- > "header_color": "#C00000",
313
- > "brand": "CodeWave",
314
- > "sub_label": "智能应用开发平台",
315
- > "columns": [
316
- > {"label": "Web-IDE", "items": ["模型设计器", "逻辑设计器", "页面设计器"]},
317
- > {"label": "管理端", "items": ["资产市场", "集成对接", "多租户管理"]}
318
- > ],
319
- > "footer": "AI+ 研发智能化"
320
- > }
321
- > ],
322
- > "arrows": [
323
- > {"from": "a", "to": "b", "label": "API调用", "direction": "down"}
324
- > ],
325
- > "side_labels": [
326
- > {"text": "安全管理", "side": "left", "y_start": 0, "y_end": 8, "color": "#C00000"}
327
- > ]
328
- > }
329
- > ```
330
- >
331
- > 2. 生成 SVG:
332
- > ```bash
333
- > python ${SKILL_DIR}/scripts/arch_diagram.py <json_file> -o <project_path>/svg_output/<filename>.svg --title "标题"
334
- > ```
335
- >
336
- > **zones JSON 关键字段**:
337
- > - `grid_cols/grid_rows`: 网格大小(推荐 12×7 或 12×8)
338
- > - `zones[].x/y/w/h`: 在网格中的位置和尺寸
339
- > - `zones[].columns`: 多列布局(每列含 label + items)
340
- > - `zones[].items`: 扁平条目(自动网格排列)
341
- > - `zones[].header_color`: 区域标题栏颜色
342
- > - `zones[].brand/sub_label/footer`: 可选装饰文字
343
- > - `arrows`: 区域间连接箭头(支持 bidirectional)
344
- > - `side_labels`: 侧边标签(安全管理、DevOps 等纵向标注)
345
- >
346
- > **drawio 流程图用法**(适合流程图、数据流):
347
- > ```bash
348
- > python ${SKILL_DIR}/scripts/drawio_gen.py <json_file> -o <output.drawio>
349
- > python ${SKILL_DIR}/scripts/drawio_to_svg.py <output.drawio> -o <output.svg>
350
- > ```
351
- > 参考文档:`references/drawio-integration.md`
352
- >
353
- > ⚠️ **所有架构图直接输出到 svg_output/ 目录**,与其他 SVG 页面一起后处理导出。
354
- > ⚠️ **arch_diagram.py 纯本地执行**,不依赖任何外部 API,不需要 .env 配置。
355
-
356
- > **装饰性图片策略**:
357
- > - **述标模式**:装饰性图片(封面背景、章节背景、内容背景)一律使用纯 SVG 设计,**禁止** AI 生图。架构图用 `arch_diagram.py` 照常生成。
358
- > - **模板模式**:使用模板自带的图片资源,不额外 AI 生图。
359
- > - **自由生成模式**:可选 AI 背景图增强(需用户确认,见下方)。
360
- >
361
- > **⚠️ AI 背景图仅限自由生成模式,且必须用户确认**:
362
- > 在 Step 4 Strategist 阶段的"八项确认"中,向用户询问:
363
- > ```
364
- > 是否需要为内容页生成 AI 背景图?(浅色主题背景,不影响内容阅读)
365
- > - 不需要(默认):纯 SVG 设计
366
- > - 需要:AI 生成主题背景图,约增加 N 张图片生成时间
367
- > ```
368
- > 用户明确同意后才进入背景图生成流程。
369
- >
370
- > **🎨 自由生成模式背景图策略(用户确认后执行)**:
371
- >
372
- > **成本优化:分类复用**(核心策略)
373
- > 不是每页一张图!而是**按页面类型分组,同组共用一张背景图**,大幅减少生成数量:
374
- >
375
- > | 类别 | 适用页面 | 生成数量 | Prompt 关键词 |
376
- > |------|----------|----------|---------------|
377
- > | 封面/结尾 | cover, ending | 1张 | corporate, modern business |
378
- > | 章节过渡 | chapter_* | 1张 | section divider, clean transition |
379
- > | 公司介绍 | company_*, brand_*, certifications | 1张 | corporate headquarters, business |
380
- > | 技术方案 | platform_*, dev_*, function_*, source_*, ai_* | 1张 | technology, digital platform |
381
- > | 产品能力 | asset_*, integration_*, permission_*, i18n_*, multi_* | 1张 | product capability, modules |
382
- > | 案例展示 | *_case, *_apps, cpq_*, operation_* | 1张 | enterprise partnership, success |
383
- > | 服务支持 | tech_support, knowledge_*, sla_*, custom_* | 1张 | customer service, support |
384
- > | 交付实施 | org_*, implementation_*, core_team, pm_* | 1张 | project management, teamwork |
385
- >
386
- > **效果**:55页 PPT 只需生成 **6~8 张**背景图(而非55张),节省 85%+ 的生成时间和 API 成本。
387
- >
388
- > **背景图生成规范**:
389
- > - **色调**:浅色系/柔和色调,与 PPT 主题色协调
390
- > - **透明度**:嵌入 SVG 时 `opacity="0.15"` ~ `opacity="0.25"`
391
- > - **绝对禁止**:不得包含任何文字、数字、标签
392
- > - **位置**:SVG 最底层 `<image>` 元素,在所有文字和图形之下
393
- >
394
- > **Prompt 模板**:
395
- > ```
396
- > Light pastel abstract {category_keywords}, soft gradient, subtle {primary_color_name} tones, professional business, no text no words, minimal clean, 16:9
397
- > ```
398
- >
399
- > **SVG 嵌入方式**:
400
- > ```xml
401
- > <image href="../images/{category}_bg.png" x="0" y="0" width="1280" height="720" opacity="0.18"/>
402
- > ```
403
- >
404
- > **执行流程**:
405
- > 1. SVG 全部生成完成后,按上表分类,确定需要生成的背景图数量
406
- > 2. **优先复用**:检查 `${SKILL_DIR}/resources/backgrounds/` 目录,如有匹配类别的现有背景图直接复用,无需重新生成
407
- > 3. 仅对缺少的类别生成新图,向用户报告:`"需新生成 N 张(复用 M 张),预计耗时 X 分钟,是否继续?"`
408
- > 4. 用户确认后,逐张生成并**同时存入项目 `images/` 目录和 `${SKILL_DIR}/resources/backgrounds/` 资源库**
409
- > 5. 批量注入 `<image>` 标签到对应类别的所有 SVG 文件
410
- > 6. 运行 `finalize_svg.py` 后处理(自动 embed 为 base64)
411
- >
412
- > **📁 背景图资源库(全局跨项目共享)**:`${SKILL_DIR}/resources/backgrounds/`
413
- > 这是一个**全局资源库**,不属于任何单个项目。所有项目生成的背景图都归档于此,后续任何新项目都**优先从这里复用**,而非重新生成。
414
- > 这样做的好处:
415
- > - ✅ **省钱省时**:资源库逐渐积累后,新项目可能完全不需要调用 AI 生图 API
416
- > - ✅ **抗 API 不稳定**:即使 API 暂时不可用,已有资源库仍能保证 PPT 有背景图
417
- > - ✅ **质量一致**:经过验证的好图反复使用,避免每次生成质量参差不齐
418
- >
419
- > ```
420
- > resources/backgrounds/
421
- > cover_bg.png # 封面/结尾类
422
- > chapter_bg.png # 章节过渡类
423
- > company_bg.png # 公司介绍类
424
- > tech_bg.png # 技术方案类
425
- > product_bg.png # 产品能力类
426
- > cases_bg.png # 案例展示类
427
- > service_bg.png # 服务支持类
428
- > delivery_bg.png # 交付实施类
429
- > index.json # 元数据(生成时间、prompt、主题色、适用场景)
430
- > ```
431
- >
432
- > **复用优先级(每个类别)**:
433
- > 1. ✅ 资源库已有 → 直接复制到项目 `images/` 目录,**零 API 调用**
434
- > 2. ⚠️ 资源库有但色系不匹配 → 询问用户是否接受,或重新生成
435
- > 3. 🆕 资源库没有 → 生成新图,**同时保存到资源库供未来项目复用**
436
- >
437
- > **复用规则**:
438
- > - 资源库中的背景图是**通用浅色主题**,适配大多数 PPT 主题色
439
- > - 如果当前项目的主题色与已有背景图差异较大(如红色主题 vs 蓝色背景),则重新生成并更新资源库
440
- > - `index.json` 记录每张图的 prompt 和适用色系,便于判断是否需要重新生成
441
- >
442
- > **跳过背景图的页面**:
443
- > - `arch_diagram.py` 生成的架构图页面(已有专业视觉设计)
444
- > - 目录页(通常纯文字更清晰)
445
-
446
- **Image generation approach (Tier 2/3)**:
447
-
448
- The Image_Generator identifies pages that benefit from images and generates them. Typical use cases:
449
-
450
- | Image Type | Pages | Purpose |
451
- |-----------|-------|---------|
452
- | **🌟 Architecture diagrams** | 架构图、方案图、拓扑图页面 | `arch_diagram.py` zones模式,纯SVG矢量,**全模式必备** |
453
- | **🌟 Flow diagrams** | 流程图、数据流图 | `drawio_gen.py`+`drawio_to_svg.py`,纯SVG矢量 |
454
- | **🎨 Category backgrounds** | 内容页(仅自由生成+用户确认) | 按类别分组复用,6~8张覆盖全部页面,opacity 0.15~0.25 |
203
+ > **Trigger condition**: Image approach includes "AI generation". If not triggered, skip directly to Step 6 (Step 6 GATE must still be satisfied).
455
204
 
456
205
  Read `references/image-generator.md`
457
206
 
458
207
  1. Extract all images with status "pending generation" from the design spec
459
208
  2. Generate prompt document → `<project_path>/images/image_prompts.md`
460
- 3. Generate images (CLI tool, **must set PYTHONIOENCODING=utf-8 on Windows**):
209
+ 3. Generate images (CLI tool recommended):
461
210
  ```bash
462
- # Windows:
463
- set PYTHONIOENCODING=utf-8 && python ${SKILL_DIR}/scripts/image_gen.py "prompt" --aspect_ratio 16:9 --image_size 1K -o <project_path>/images
464
- # Unix:
465
211
  python3 ${SKILL_DIR}/scripts/image_gen.py "prompt" --aspect_ratio 16:9 --image_size 1K -o <project_path>/images
466
212
  ```
467
- 4. **Image-SVG integration rule**: Generated images are used as `<image>` elements in SVG, typically:
468
- - Cover/ending: full-page background (`width="1280" height="720"`) with text overlay
469
- - Content pages: side decoration (`width="400"`) or bottom accent, never covering text areas
470
- - All SVG text remains as `<text>` elements (editable in PPTX), images are behind/beside text
471
-
472
- > ⚠️ **Fallback**: If image generation fails for any image, the Executor falls back to pure SVG design for that page. Image generation failure MUST NOT block the pipeline.
473
- > ⚠️ **Environment**: The `.env` file at `${SKILL_DIR}/../.env` configures `IMAGE_BACKEND` and API keys. If not configured, image generation is unavailable — fall back to Tier 1.
474
213
 
475
214
  **✅ Checkpoint — Confirm all images are ready, proceed to Step 6**:
476
215
  ```markdown
@@ -497,16 +236,14 @@ Read references/executor-consultant-top.md # Top consulting style (MBB level)
497
236
 
498
237
  **Design Parameter Confirmation (Mandatory)**: Before generating the first SVG, the Executor MUST review and output key design parameters from the Design Specification (canvas dimensions, color scheme, font plan, body font size) to ensure spec adherence. See executor-base.md Section 2 for details.
499
238
 
500
- > ⚠️ **Sub-agent collaboration rule**: After confirming global design parameters, the main agent distributes pages to sub-agents in 2-3 batches for parallel SVG generation. Each sub-agent receives: design_spec.md content, global design parameters, assigned page list, and template files (if any). Sub-agents MUST strictly follow the design_spec.md specifications. After all sub-agents complete, the main agent checks cross-page visual consistency.
501
- > ⚠️ **Sub-agent context optimization**: Do NOT send full references/*.md to sub-agents. Each sub-agent only needs: (1) executor-base.md + one style file, (2) design_spec.md content, (3) its assigned page list with content. Strip all unrelated sections to minimize context usage.
502
- > ⚠️ **Speaker notes rule**: Speaker notes (notes/total.md) MUST be generated by the main agent after all SVGs are finalized, to ensure narrative coherence across all pages.
239
+ > ⚠️ **Main-agent only rule**: SVG generation in Step 6 MUST remain with the current main agent because page design depends on full upstream context (source content, design spec, template mapping, image decisions, and cross-page consistency). Do NOT delegate any slide SVG generation to sub-agents.
240
+ > ⚠️ **Generation rhythm rule**: After confirming the global design parameters, the Executor MUST generate pages sequentially, one page at a time, while staying in the same continuous main-agent context. Do NOT split Step 6 into grouped page batches such as 5 pages per batch.
503
241
 
504
242
  **Visual Construction Phase**:
505
- - Main agent distributes pages to sub-agents in 2-3 batches for parallel SVG generation → `<project_path>/svg_output/`
506
- - After all sub-agents complete, main agent checks cross-page visual consistency
243
+ - Generate SVG pages sequentially, one page at a time, in one continuous pass → `<project_path>/svg_output/`
507
244
 
508
245
  **Logic Construction Phase**:
509
- - Main agent generates speaker notes (ensuring narrative coherence) → `<project_path>/notes/total.md`
246
+ - Generate speaker notes → `<project_path>/notes/total.md`
510
247
 
511
248
  **✅ Checkpoint — Confirm all SVGs and notes are fully generated. Proceed directly to Step 7 post-processing**:
512
249
  ```markdown
@@ -534,99 +271,17 @@ python3 ${SKILL_DIR}/scripts/total_md_split.py <project_path>
534
271
  python3 ${SKILL_DIR}/scripts/finalize_svg.py <project_path>
535
272
  ```
536
273
 
537
- **Step 7.2.5** — SVG quality check & auto-fix (**MANDATORY**):
538
- ```bash
539
- # First auto-fix common issues (rgba, missing bottom line, class/style removal)
540
- python3 ${SKILL_DIR}/scripts/svg_quality_checker.py <project_path> --fix
541
- # Then re-check to verify all issues are resolved
542
- python3 ${SKILL_DIR}/scripts/svg_quality_checker.py <project_path> --format ppt169
543
- ```
544
- > ⚠️ **All 检查必须 100% 通过** (0 errors) 才能进入导出步骤。
545
- > 如果 `--fix` 后仍有 error,需手动修复对应 SVG 后重新检查。
546
- > Warnings(如字体建议)可以忽略,errors 必须清零。
547
-
548
274
  **Step 7.3** — Export PPTX (embeds speaker notes by default):
549
275
  ```bash
550
- python3 ${SKILL_DIR}/scripts/svg_to_pptx.py <project_path> -s final --only native
551
- # Only generates native shapes PPTX (editable text, shapes). NO SVG reference version.
276
+ python3 ${SKILL_DIR}/scripts/svg_to_pptx.py <project_path> -s final
277
+ # Default: generates two files — native shapes (.pptx) + SVG reference (_svg.pptx)
278
+ # Use --only native to skip SVG reference version
279
+ # Use --only legacy to only generate SVG image version
552
280
  ```
553
281
 
554
- > ℹ️ **Only deliver native PPTX** (editable DrawingML shapes). The SVG reference version (`_svg.pptx`) is deprecated — it produces non-editable image-only slides.
555
-
556
282
  > ❌ **NEVER** use `cp` as a substitute for `finalize_svg.py` — it performs multiple critical processing steps
557
283
  > ❌ **NEVER** export directly from `svg_output/` — MUST use `-s final` to export from `svg_final/`
558
- > ❌ **NEVER** add extra flags beyond `--only native` (which is required above)
559
-
560
- **Step 7.4** — Quality check (MANDATORY before delivering to user):
561
-
562
- After PPTX export, the AI MUST perform the following quality checks before sending the file to the user:
563
-
564
- > ⚠️ **NEVER deliver a PPTX without completing this quality check. If issues are found, fix them before delivery.**
565
-
566
- 1. **File type clarification**: The primary deliverable is the **native shapes PPTX** (without `_svg` suffix). The `_svg.pptx` is a reference-only version (entire pages as images, NOT editable). Always deliver and recommend the native version.
567
-
568
- 2. **Blank page detection**: Check each slide in the native PPTX for content:
569
- ```python
570
- # Check: each slide should have sp > 0 or pic > 0
571
- # Exception: slides that are intentional full-page images (company intro pages) may have pic=1 and sp=0
572
- # Flag any slide with sp=0 AND pic=0 as BLANK
573
- ```
574
-
575
- 3. **Text editability verification**: Verify the native PPTX has `txBox="1"` text boxes (not just pictures):
576
- ```python
577
- # Check: total txBox count across all slides should be > 0
578
- # If all slides only have <p:pic> and no txBox, the PPTX is image-only (NOT editable) — this is a FAILURE
579
- ```
580
-
581
- 4. **Missing image/resource check**: Review finalize_svg.py output for `[FAIL]` or `[WARN] Image not found` messages:
582
- - If template images (logo, background) are missing, either copy them to the project `images/` directory and re-run, or remove the references from SVGs
583
- - Log missing resources but do not block delivery if content is otherwise complete
584
-
585
- 5. **Visual consistency spot-check**: Open/preview 2-3 representative SVGs from `svg_final/` to verify:
586
- - Text is not overlapping or cut off
587
- - Colors match the design spec
588
- - Layout elements are properly positioned within the 1280×720 canvas
589
-
590
- **If any critical issue is found (blank pages, zero text boxes, all-image slides), the AI MUST fix the issue and re-export before delivering to the user.**
591
-
592
- **Step 7.5** — Delivery & User Acceptance (⛔ BLOCKING):
593
-
594
- 将 PPTX 文件交付给用户,并等待确认:
595
- ```
596
- ✅ PPT 已生成完成!
597
- 📄 文件:{filename}.pptx ({size}MB, {page_count}页)
598
- 📝 文字可编辑:是(Native DrawingML)
599
- 🎤 演讲备注:已嵌入
600
-
601
- 请检查后告诉我:
602
- 1. ✅ 满意,可以使用
603
- 2. 🔧 需要修改(请说明具体页面和修改内容)
604
- 3. 🔄 整体风格/结构需要调整
605
- ```
606
-
607
- > ⛔ **BLOCKING**:必须等用户确认后才算完成。用户要求修改时进入修订流程(见下方)。
608
-
609
- ---
610
-
611
- ## 🔄 修订与回退机制
612
-
613
- 当用户在任何阶段要求修改时:
614
-
615
- | 修改范围 | 回退到 | 操作 |
616
- |----------|--------|------|
617
- | **个别页面内容/布局** | 不回退 | 直接修改对应 SVG → 重新 finalize + export |
618
- | **整体风格/配色** | Step 4 | 更新 design_spec.md → 重新生成全部 SVG |
619
- | **章节结构/页面增删** | Step 4 | 更新 design_spec.md 大纲 → 重新生成 |
620
- | **源内容有误** | Step 1 | 重新处理源文档 → 全流程重走 |
621
- | **模板切换** | Step 3 | 更换模板 → Step 4 起重走 |
622
-
623
- **单页修改快速流程**(最常见场景):
624
- 1. 用户指出具体页面和问题
625
- 2. 直接编辑 `svg_output/{page_name}.svg`
626
- 3. 重新运行 Step 7.2 → 7.2.5 → 7.3(finalize → check → export)
627
- 4. 交付修订版
628
-
629
- > 💡 **项目目录保留**:每次生成的项目目录不要删除,方便后续修订时直接在原项目上操作。
284
+ > ❌ **NEVER** add extra flags like `--only`
630
285
 
631
286
  ---
632
287
 
@@ -650,38 +305,10 @@ Before switching roles, you **MUST first read** the corresponding reference file
650
305
  | Canvas format specification | `references/canvas-formats.md` |
651
306
  | Image layout specification | `references/image-layout-spec.md` |
652
307
  | SVG image embedding | `references/svg-image-embedding.md` |
653
- | **Draw.io integration guide** | **`references/drawio-integration.md`** |
654
308
 
655
309
  ---
656
310
 
657
311
  ## Notes
658
312
 
659
- - Do NOT add extra flags to `finalize_svg.py` or `total_md_split.py` — run them as-is. Exception: `svg_to_pptx.py` requires `--only native` as documented in Step 7.3
313
+ - Do NOT add extra flags like `--only` to the post-processing commands — run them as-is
660
314
  - Local preview: `python3 -m http.server -d <project_path>/svg_final 8000`
661
-
662
- ---
663
-
664
- ## Prerequisites & Portability
665
-
666
- ### Required Software
667
- | Software | Purpose | Install |
668
- |----------|---------|---------|
669
- | Python 3.9+ | All scripts | Pre-installed or `python.org` |
670
- | Pillow | Image processing | `pip install Pillow` |
671
- | PyMuPDF | PDF conversion | `pip install PyMuPDF` |
672
- | python-pptx | PPTX export | `pip install python-pptx` |
673
- | numpy | Image analysis | `pip install numpy` |
674
- | Pandoc | DOCX/EPUB conversion | `pandoc.org/installing.html` |
675
-
676
- ### AI Image Generation Setup (Decorative Backgrounds Only)
677
- 1. Copy `${SKILL_DIR}/.env.example` to `${SKILL_DIR}/../.env`
678
- 2. Choose a backend and fill in your API key
679
- 3. Decorative background images (Tier 2/3) will be auto-generated during PPT creation
680
-
681
- > Without `.env` configured, decorative image generation falls back to pure SVG design. **Architecture diagrams (`arch_diagram.py`) and flow diagrams (`drawio_gen.py`) work without any API key — they are pure local scripts.**
682
-
683
- ### Portability Checklist
684
- - ✅ All scripts use `${SKILL_DIR}` relative paths — no hardcoded user paths
685
- - ✅ Templates, bid SVGs, and company intro bundled in `templates/` and `references/`
686
- - ✅ `.env.example` provided as configuration template
687
- - ⚠️ `.env` with API keys is NOT included — users must configure their own
File without changes
@@ -45,10 +45,11 @@ Must output confirmation including: canvas dimensions, body font size, color sch
45
45
  - **Proximity principle**: Place related elements close together to form visual groups; increase spacing between unrelated groups to reinforce logical structure
46
46
  - **Absolute spec adherence**: Strictly follow the color, layout, canvas format, and typography parameters in the spec
47
47
  - **Follow template structure**: If templates exist, inherit the template's visual framework
48
- - **Sub-agent collaboration**: After the main agent confirms global design parameters (Section 2), pages are distributed to sub-agents in 2-3 batches for parallel generation. Each sub-agent receives: design_spec.md content, global design parameters, assigned page list, and template files (if any). Sub-agents MUST strictly follow the design_spec.md color, font, and layout specifications. Sub-agent generated SVG files are output to `svg_output/` directory. After all sub-agents complete, the main agent checks cross-page visual consistency.
48
+ - **Main-agent ownership**: SVG generation must be performed by the current main agent, not delegated to sub-agents, because each page depends on shared upstream context and cross-page visual continuity
49
+ - **Generation rhythm**: First lock the global design context, then generate pages sequentially one by one in the same continuous context; grouped page batches (for example, 5 pages at a time) are not allowed
49
50
  - **Phased batch generation** (recommended):
50
- 1. **Visual Construction Phase**: Main agent distributes pages to sub-agents for parallel SVG generation, ensuring consistent design style and layout coordinates (Visual Consistency)
51
- 2. **Logic Construction Phase**: After all SVGs are finalized, the main agent generates speaker notes to ensure narrative coherence (Narrative Continuity)
51
+ 1. **Visual Construction Phase**: Generate all SVG pages continuously in sequential page order, ensuring high consistency in design style and layout coordinates (Visual Consistency)
52
+ 2. **Logic Construction Phase**: After all SVGs are finalized, batch-generate speaker notes to ensure narrative coherence (Narrative Continuity)
52
53
  - **Technical specifications**: See [shared-standards.md](shared-standards.md) for SVG technical constraints and PPT compatibility rules
53
54
  - **Visual depth**: Use filter shadows, glow effects, gradient fills, dashed strokes, and gradient overlays from shared-standards.md to create layered depth — flat pages without elevation or emphasis look unfinished
54
55