@panda-agent/panda-cli 0.1.29 → 0.1.30

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 (167) hide show
  1. package/dist/panda-cli-ink.bundle.mjs +258 -247
  2. package/package.json +6 -4
  3. package/skills/.gitkeep +0 -0
  4. package/skills/README.md +13 -0
  5. package/skills/docx/.skill-metadata.yaml +173 -0
  6. package/skills/docx/LICENSE.txt +30 -0
  7. package/skills/docx/SKILL.md +589 -0
  8. package/skills/docx/scripts/__init__.py +1 -0
  9. package/skills/docx/scripts/accept_changes.py +206 -0
  10. package/skills/docx/scripts/comment.py +442 -0
  11. package/skills/docx/scripts/office/helpers/__init__.py +1 -0
  12. package/skills/docx/scripts/office/helpers/merge_runs.py +190 -0
  13. package/skills/docx/scripts/office/helpers/simplify_redlines.py +185 -0
  14. package/skills/docx/scripts/office/pack.py +167 -0
  15. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  16. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  17. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  18. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  19. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  20. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  21. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  22. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  23. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  24. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  25. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  26. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  27. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  28. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  29. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  30. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  31. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  32. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  33. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  34. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  35. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  36. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  37. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  38. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  39. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  40. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  41. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  42. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  43. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  44. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  45. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  46. package/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  47. package/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  48. package/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  49. package/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  50. package/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  51. package/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  52. package/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  53. package/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  54. package/skills/docx/scripts/office/soffice.py +194 -0
  55. package/skills/docx/scripts/office/unpack.py +145 -0
  56. package/skills/docx/scripts/office/validate.py +114 -0
  57. package/skills/docx/scripts/office/validators/__init__.py +16 -0
  58. package/skills/docx/scripts/office/validators/base.py +733 -0
  59. package/skills/docx/scripts/office/validators/docx.py +354 -0
  60. package/skills/docx/scripts/office/validators/pptx.py +230 -0
  61. package/skills/docx/scripts/office/validators/redlining.py +212 -0
  62. package/skills/docx/scripts/templates/comments.xml +3 -0
  63. package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  64. package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  65. package/skills/docx/scripts/templates/commentsIds.xml +3 -0
  66. package/skills/docx/scripts/templates/people.xml +3 -0
  67. package/skills/frontend-design/LICENSE.txt +177 -0
  68. package/skills/frontend-design/SKILL.md +42 -0
  69. package/skills/pdf/.skill-metadata.yaml +273 -0
  70. package/skills/pdf/LICENSE.txt +30 -0
  71. package/skills/pdf/SKILL.md +324 -0
  72. package/skills/pdf/advanced-reference.md +609 -0
  73. package/skills/pdf/form-filling-guide.md +318 -0
  74. package/skills/pdf/forms.md +294 -0
  75. package/skills/pdf/reference.md +612 -0
  76. package/skills/pdf/scripts/check_bounding_boxes.py +198 -0
  77. package/skills/pdf/scripts/check_fillable_fields.py +64 -0
  78. package/skills/pdf/scripts/convert_pdf_to_images.py +102 -0
  79. package/skills/pdf/scripts/create_validation_image.py +125 -0
  80. package/skills/pdf/scripts/extract_form_field_info.py +220 -0
  81. package/skills/pdf/scripts/extract_form_structure.py +202 -0
  82. package/skills/pdf/scripts/fill_fillable_fields.py +205 -0
  83. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +193 -0
  84. package/skills/pptx-generator/SKILL.md +204 -0
  85. package/skills/pptx-generator/assets/styles/business.json +8 -0
  86. package/skills/pptx-generator/assets/styles/minimal.json +8 -0
  87. package/skills/pptx-generator/assets/styles/modern.json +8 -0
  88. package/skills/pptx-generator/assets/templates/ppt_data_template.json +40 -0
  89. package/skills/pptx-generator/references/collaboration_guide.md +381 -0
  90. package/skills/pptx-generator/references/json_format_spec.md +215 -0
  91. package/skills/pptx-generator/references/layout_guide.md +290 -0
  92. package/skills/pptx-generator/scripts/json_validator.py +194 -0
  93. package/skills/pptx-generator/scripts/pptx_builder.py +340 -0
  94. package/skills/pptx-generator/scripts/pptx_validator.py +162 -0
  95. package/skills/skill-creator/LICENSE.txt +202 -0
  96. package/skills/skill-creator/SKILL.md +479 -0
  97. package/skills/skill-creator/agents/analyzer.md +274 -0
  98. package/skills/skill-creator/agents/comparator.md +202 -0
  99. package/skills/skill-creator/agents/grader.md +223 -0
  100. package/skills/skill-creator/assets/eval_review.html +146 -0
  101. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  102. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  103. package/skills/skill-creator/references/schemas.md +430 -0
  104. package/skills/skill-creator/scripts/__init__.py +0 -0
  105. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  106. package/skills/skill-creator/scripts/generate_report.py +326 -0
  107. package/skills/skill-creator/scripts/improve_description.py +248 -0
  108. package/skills/skill-creator/scripts/package_skill.py +136 -0
  109. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  110. package/skills/skill-creator/scripts/run_eval.py +310 -0
  111. package/skills/skill-creator/scripts/run_loop.py +332 -0
  112. package/skills/skill-creator/scripts/utils.py +47 -0
  113. package/skills/xlsx/.skill-metadata.yaml +185 -0
  114. package/skills/xlsx/LICENSE.txt +30 -0
  115. package/skills/xlsx/SKILL.md +233 -0
  116. package/skills/xlsx/scripts/office/helpers/__init__.py +1 -0
  117. package/skills/xlsx/scripts/office/helpers/merge_runs.py +226 -0
  118. package/skills/xlsx/scripts/office/helpers/simplify_redlines.py +198 -0
  119. package/skills/xlsx/scripts/office/pack.py +162 -0
  120. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  121. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  122. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  123. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  124. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  125. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  126. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  127. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  128. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  129. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  130. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  131. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  132. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  133. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  134. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  135. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  136. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  137. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  138. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  139. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  140. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  141. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  142. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  143. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  144. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  145. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  146. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  147. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  148. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  149. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  150. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  151. package/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  152. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  153. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  154. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  155. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  156. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  157. package/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  158. package/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  159. package/skills/xlsx/scripts/office/soffice.py +185 -0
  160. package/skills/xlsx/scripts/office/unpack.py +146 -0
  161. package/skills/xlsx/scripts/office/validate.py +108 -0
  162. package/skills/xlsx/scripts/office/validators/__init__.py +13 -0
  163. package/skills/xlsx/scripts/office/validators/base.py +800 -0
  164. package/skills/xlsx/scripts/office/validators/docx.py +383 -0
  165. package/skills/xlsx/scripts/office/validators/pptx.py +250 -0
  166. package/skills/xlsx/scripts/office/validators/redlining.py +229 -0
  167. package/skills/xlsx/scripts/recalc.py +296 -0
@@ -0,0 +1,381 @@
1
+ # 与其他 Skill 协同指南
2
+
3
+ 本文档详细说明 `pptx-generator` Skill 如何与其他 PPT 相关 Skill 协同工作。
4
+
5
+ ## 目录
6
+ 1. [协同模式概述](#协同模式概述)
7
+ 2. [与 ppt-generator 协同](#与-ppt-generator-协同)
8
+ 3. [与 nanobanana-ppt-visualizer 协同](#与-nanobanana-ppt-visualizer-协同)
9
+ 4. [完整工作流程](#完整工作流程)
10
+ 5. [数据格式兼容性](#数据格式兼容性)
11
+
12
+ ---
13
+
14
+ ## 协同模式概述
15
+
16
+ `pptx-generator` Skill 是 PPT 工具链中的**关键环节**,负责将 JSON 数据转换为标准的 .pptx 文件。
17
+
18
+ ### PPT 工具链
19
+
20
+ ```
21
+ 1. ppt-generator (JSON 数据生成)
22
+
23
+ 2. pptx-generator (PPTX 文件生成) ← 关键环节
24
+
25
+ 3. nanobanana-ppt-visualizer (视觉增强,可选)
26
+
27
+ 4. ppt-roadshow-generator (视频生成,可选)
28
+
29
+ 5. remotion-video-enhancer (动画增强,可选)
30
+ ```
31
+
32
+ ### 协同关系表
33
+
34
+ | Skill | 输出 | 接收 | 用途 |
35
+ |-------|------|------|------|
36
+ | ppt-generator | JSON | pptx-generator | 内容生成 |
37
+ | pptx-generator | .pptx | nanobanana-ppt-visualizer | 文件生成 |
38
+ | nanobanana-ppt-visualizer | 图片 + HTML | ppt-roadshow-generator | 视觉增强 |
39
+ | ppt-roadshow-generator | 视频 | remotion-video-enhancer | 视频生成 |
40
+ | remotion-video-enhancer | 增强视频 | 用户 | 动画增强 |
41
+
42
+ ---
43
+
44
+ ## 与 ppt-generator 协同
45
+
46
+ ### 协同流程
47
+
48
+ ```
49
+ 用户请求:"生成一个 PPT 文件"
50
+
51
+ ┌─────────────────────────────────────────────────────────┐
52
+ │ ppt-generator Skill │
53
+ ├─────────────────────────────────────────────────────────┤
54
+ │ 1. 主题分析师:分析主题 │
55
+ │ 2. 模板设计师:推荐布局 │
56
+ │ 3. 内容策划师:规划内容结构 │
57
+ │ 4. 文本创作者:撰写内容 │
58
+ │ 5. 视觉设计师:提供配图建议 │
59
+ │ 6. 优化编辑师:优化文本 │
60
+ │ 7. PPT 构建师:生成 JSON 数据 │
61
+ └─────────────────────────────────────────────────────────┘
62
+
63
+ ▼ ppt_data.json
64
+ ┌─────────────────────────────────────────────────────────┐
65
+ │ pptx-generator Skill │
66
+ ├─────────────────────────────────────────────────────────┤
67
+ │ 1. JSON 验证(json_validator.py) │
68
+ │ - 验证 JSON 格式 │
69
+ │ - 检查必需字段 │
70
+ │ 2. PPTX 构建(pptx_builder.py) │
71
+ │ - 创建演示文稿 │
72
+ │ - 添加幻灯片 │
73
+ │ - 应用布局和样式 │
74
+ │ - 添加内容(文本、内容) │
75
+ │ 3. PPTX 验证(pptx_validator.py) │
76
+ │ - 验证文件完整性 │
77
+ │ - 检查幻灯片数量 │
78
+ │ 4. 输出 .pptx 文件 │
79
+ └─────────────────────────────────────────────────────────┘
80
+
81
+ ▼ presentation.pptx
82
+ ```
83
+
84
+ ### 数据格式
85
+
86
+ **ppt-generator 输出(ppt_data.json)**:
87
+ ```json
88
+ {
89
+ "metadata": {
90
+ "title": "产品介绍演示",
91
+ "author": "用户姓名",
92
+ "theme": "科技感"
93
+ },
94
+ "slides": [
95
+ {
96
+ "layout": "TitleSlide",
97
+ "title": "产品名称",
98
+ "content": ["副标题", "产品亮点"],
99
+ "notes": "备注内容"
100
+ },
101
+ {
102
+ "layout": "ContentSlide",
103
+ "title": "核心功能",
104
+ "content": ["功能一", "功能二", "功能三"],
105
+ "notes": "备注内容"
106
+ }
107
+ ]
108
+ }
109
+ ```
110
+
111
+ **pptx-generator 接收并处理**:
112
+ - 输入:`ppt_data.json`
113
+ - 处理:验证、构建、生成 .pptx
114
+ - 输出:`presentation.pptx`
115
+
116
+ ### 使用示例
117
+
118
+ **步骤 1:ppt-generator 生成 JSON**
119
+ ```bash
120
+ # ppt-generator 执行后输出
121
+ ppt_data.json
122
+ ```
123
+
124
+ **步骤 2:pptx-generator 生成 PPTX**
125
+ ```bash
126
+ # 验证 JSON
127
+ python scripts/json_validator.py --input ./ppt_data.json
128
+
129
+ # 生成 PPTX
130
+ python scripts/pptx_builder.py --input ./ppt_data.json --output ./presentation.pptx
131
+
132
+ # 验证 PPTX
133
+ python scripts/pptx_validator.py --input ./presentation.pptx
134
+ ```
135
+
136
+ **步骤 3:在 PowerPoint 中打开**
137
+ ```bash
138
+ # 使用 PowerPoint 打开
139
+ open presentation.pptx # macOS
140
+ # 或
141
+ xdg-open presentation.pptx # Linux
142
+ ```
143
+
144
+ ---
145
+
146
+ ## 与 nanobanana-ppt-visualizer 协同
147
+
148
+ ### 协同流程
149
+
150
+ ```
151
+ 用户请求:"生成 PPT 文件和图片"
152
+
153
+ 1. ppt-generator → ppt_data.json
154
+ 2. pptx-generator → presentation.pptx
155
+ 3. nanobanana-ppt-visualizer → 图片 + HTML 播放器
156
+ ```
157
+
158
+ ### 两种使用模式
159
+
160
+ **模式 A:仅生成 PPTX 文件**
161
+ - 适用于:需要 .pptx 文件进行编辑
162
+ - 流程:ppt-generator → pptx-generator
163
+
164
+ **模式 B:生成 PPTX + 图片 + HTML 播放器**
165
+ - 适用于:需要多种格式输出
166
+ - 流程:ppt-generator → pptx-generator → nanobanana-ppt-visualizer
167
+
168
+ ### 使用示例
169
+
170
+ **模式 A:仅生成 PPTX**
171
+ ```bash
172
+ # 步骤 1:ppt-generator 生成 JSON
173
+ # ...
174
+
175
+ # 步骤 2:pptx-generator 生成 PPTX
176
+ python scripts/pptx_builder.py \
177
+ --input ./ppt_data.json \
178
+ --output ./presentation.pptx
179
+ ```
180
+
181
+ **模式 B:生成 PPTX + 图片**
182
+ ```bash
183
+ # 步骤 1:ppt-generator 生成 JSON
184
+ # ...
185
+
186
+ # 步骤 2:pptx-generator 生成 PPTX
187
+ python scripts/pptx_builder.py \
188
+ --input ./ppt_data.json \
189
+ --output ./presentation.pptx
190
+
191
+ # 步骤 3:nanobanana-ppt-visualizer 生成图片
192
+ # nanobanana-ppt-visualizer 执行...
193
+ ```
194
+
195
+ ---
196
+
197
+ ## 完整工作流程
198
+
199
+ ### 场景 1:仅生成 PPTX 文件
200
+
201
+ ```
202
+ 用户请求:"生成一个 PPT 文件"
203
+
204
+ ppt-generator (7 角色协作)
205
+
206
+ pptx-generator (生成 .pptx)
207
+
208
+ presentation.pptx
209
+ ```
210
+
211
+ **执行步骤**:
212
+ 1. ppt-generator 生成 JSON
213
+ 2. pptx-generator 生成 .pptx
214
+ 3. 用户在 PowerPoint 中打开编辑
215
+
216
+ ### 场景 2:生成 PPTX + 图片 + HTML 播放器
217
+
218
+ ```
219
+ 用户请求:"生成 PPT 文件和网页播放器"
220
+
221
+ ppt-generator (7 角色协作)
222
+
223
+ pptx-generator (生成 .pptx)
224
+
225
+ nanobanana-ppt-visualizer (生成图片 + HTML)
226
+
227
+ presentation.pptx + images/ + viewer.html
228
+ ```
229
+
230
+ **执行步骤**:
231
+ 1. ppt-generator 生成 JSON
232
+ 2. pptx-generator 生成 .pptx
233
+ 3. nanobanana-ppt-visualizer 生成图片和播放器
234
+
235
+ ### 场景 3:生成完整路演视频
236
+
237
+ ```
238
+ 用户请求:"生成完整的路演视频"
239
+
240
+ 1. ppt-generator (7 角色协作)
241
+ ↓ ppt_data.json
242
+
243
+ 2. pptx-generator (生成 .pptx)
244
+ ↓ presentation.pptx
245
+
246
+ 3. nanobanana-ppt-visualizer (生成图片)
247
+ ↓ images/
248
+
249
+ 4. ppt-roadshow-generator (10 角色协作)
250
+ ↓ roadshow_video.mp4
251
+
252
+ 5. remotion-video-enhancer (增强动画)
253
+ ↓ enhanced_roadshow_video.mp4
254
+ ```
255
+
256
+ **执行步骤**:
257
+ 1. ppt-generator 生成 JSON
258
+ 2. pptx-generator 生成 .pptx
259
+ 3. nanobanana-ppt-visualizer 生成图片
260
+ 4. ppt-roadshow-generator 生成视频
261
+ 5. remotion-video-enhancer 增强动画
262
+
263
+ ---
264
+
265
+ ## 数据格式兼容性
266
+
267
+ ### JSON 格式标准
268
+
269
+ ppt-generator 和 pptx-generator 使用相同的 JSON 格式:
270
+
271
+ ```json
272
+ {
273
+ "metadata": {
274
+ "title": "演示文稿标题",
275
+ "author": "作者姓名",
276
+ "theme": "主题风格"
277
+ },
278
+ "slides": [
279
+ {
280
+ "layout": "ContentSlide",
281
+ "title": "幻灯片标题",
282
+ "content": ["内容要点1", "内容要点2"],
283
+ "notes": "备注内容"
284
+ }
285
+ ]
286
+ }
287
+ ```
288
+
289
+ ### 兼容性说明
290
+
291
+ | 字段 | ppt-generator | pptx-generator | 兼容性 |
292
+ |------|--------------|---------------|--------|
293
+ | metadata.title | ✓ | ✓ | 完全兼容 |
294
+ | metadata.author | ✓ | ✓ | 完全兼容 |
295
+ | metadata.theme | ✓ | ✓ | 完全兼容 |
296
+ | slides[*].layout | ✓ | ✓ | 完全兼容 |
297
+ | slides[*].title | ✓ | ✓ | 完全兼容 |
298
+ | slides[*].content | ✓ | ✓ | 完全兼容 |
299
+ | slides[*].notes | ✓ | ✓ | 完全兼容 |
300
+
301
+ ### 验证命令
302
+
303
+ ```bash
304
+ # 验证 JSON 格式
305
+ python scripts/json_validator.py --input ./ppt_data.json
306
+ ```
307
+
308
+ ---
309
+
310
+ ## 注意事项
311
+
312
+ ### 1. 输入文件检查
313
+
314
+ 在使用 pptx-generator 之前,确保:
315
+ - JSON 文件格式正确
316
+ - JSON 文件存在且可读
317
+ - 幻灯片数量合理(建议 5-20 页)
318
+
319
+ ### 2. 输出文件管理
320
+
321
+ - 使用有意义的文件名
322
+ - 定期清理临时文件
323
+ - 区分不同版本的输出
324
+
325
+ ### 3. 布局选择
326
+
327
+ 根据内容类型选择合适的布局:
328
+ - 封面:TitleSlide
329
+ - 标准内容:ContentSlide
330
+ - 对比:TwoColumnSlide
331
+ - 总结:SummarySlide
332
+
333
+ ### 4. 样式应用
334
+
335
+ 使用风格配置文件自定义样式:
336
+ - 字体设置
337
+ - 颜色设置
338
+ - 大小设置
339
+
340
+ ### 5. 测试和调整
341
+
342
+ - 生成后在 PowerPoint 中打开查看
343
+ - 检查布局和内容
344
+ - 必要时调整 JSON 数据
345
+
346
+ ---
347
+
348
+ ## 常见问题
349
+
350
+ ### Q1:pptx-generator 能生成哪些元素?
351
+
352
+ A:目前支持:
353
+ - 标题(Title)
354
+ - 内容(Text、Bullet Points)
355
+ - 备注(Notes)
356
+ - 未来版本将支持:图片、图表、表格
357
+
358
+ ### Q2:能否自定义布局?
359
+
360
+ A:目前使用预设布局,未来版本将支持自定义布局。
361
+
362
+ ### Q3:生成的 .pptx 文件能在哪些软件中打开?
363
+
364
+ A:支持的软件:
365
+ - Microsoft PowerPoint
366
+ - WPS Office
367
+ - Google Slides(导入)
368
+ - LibreOffice Impress
369
+
370
+ ### Q4:如何与现有播放器集成?
371
+
372
+ A:pptx-generator 生成 .pptx 文件,可与 nanobanana-ppt-visualizer 生成的播放器配合使用。
373
+
374
+ ### Q5:能否批量生成多个 PPTX 文件?
375
+
376
+ A:可以,使用批量处理命令:
377
+ ```bash
378
+ python scripts/pptx_builder.py \
379
+ --input-dir ./json_files/ \
380
+ --output-dir ./pptx_files/
381
+ ```
@@ -0,0 +1,215 @@
1
+ # JSON 格式规范
2
+
3
+ 本文档定义了 pptx-generator Skill 所需的 JSON 数据格式规范。
4
+
5
+ ## 目录
6
+ 1. [整体结构](#整体结构)
7
+ 2. [元数据 (metadata)](#元数据-metadata)
8
+ 3. [幻灯片 (slides)]#幻灯片-slides)
9
+ 4. [布局类型 (layout)](#布局类型-layout)
10
+ 5. [示例](#示例)
11
+ 6. [验证规则](#验证规则)
12
+
13
+ ---
14
+
15
+ ## 整体结构
16
+
17
+ JSON 数据必须包含以下顶层字段:
18
+
19
+ ```json
20
+ {
21
+ "metadata": { ... },
22
+ "slides": [ ... ]
23
+ }
24
+ ```
25
+
26
+ | 字段 | 必需性 | 类型 | 说明 |
27
+ |------|--------|------|------|
28
+ | metadata | 推荐 | Object | 演示文稿元数据 |
29
+ | slides | 必需 | Array | 幻灯片数组 |
30
+
31
+ ---
32
+
33
+ ## 元数据 (metadata)
34
+
35
+ 元数据包含演示文稿的基本信息:
36
+
37
+ ```json
38
+ {
39
+ "metadata": {
40
+ "title": "演示文稿标题",
41
+ "author": "作者姓名",
42
+ "theme": "主题风格"
43
+ }
44
+ }
45
+ ```
46
+
47
+ | 字段 | 必需性 | 类型 | 说明 | 示例 |
48
+ |------|--------|------|------|------|
49
+ | title | 推荐 | String | 演示文稿标题 | "产品介绍" |
50
+ | author | 可选 | String | 作者姓名 | "张三" |
51
+ | theme | 可选 | String | 主题风格 | "科技感" |
52
+
53
+ ---
54
+
55
+ ## 幻灯片 (slides)
56
+
57
+ 每个幻灯片对象包含以下字段:
58
+
59
+ ```json
60
+ {
61
+ "layout": "ContentSlide",
62
+ "title": "幻灯片标题",
63
+ "content": ["内容要点1", "内容要点2"],
64
+ "notes": "备注内容"
65
+ }
66
+ ```
67
+
68
+ | 字段 | 必需性 | 类型 | 说明 | 示例 |
69
+ |------|--------|------|------|------|
70
+ | layout | 可选 | String | 布局类型 | "ContentSlide" |
71
+ | title | 必需 | String | 幻灯片标题 | "核心功能" |
72
+ | content | 必需 | Array | 内容数组 | ["功能1", "功能2"] |
73
+ | notes | 可选 | String | 备注内容 | "详细说明" |
74
+
75
+ ---
76
+
77
+ ## 布局类型 (layout)
78
+
79
+ 支持的布局类型:
80
+
81
+ | 布局类型 | 说明 | 使用场景 |
82
+ |----------|------|----------|
83
+ | TitleSlide | 标题页 | 封面、标题页 |
84
+ | ContentSlide | 内容页 | 标题 + 内容 |
85
+ | TwoColumnSlide | 两栏页 | 对比、并列内容 |
86
+ | SectionHeaderSlide | 章节页 | 章节分隔 |
87
+ | ContentWithCaptionSlide | 带说明的内容页 | 图片 + 说明 |
88
+ | SummarySlide | 总结页 | 总结、结尾 |
89
+
90
+ ---
91
+
92
+ ## 示例
93
+
94
+ ### 完整示例
95
+
96
+ ```json
97
+ {
98
+ "metadata": {
99
+ "title": "产品介绍演示",
100
+ "author": "张三",
101
+ "theme": "科技感"
102
+ },
103
+ "slides": [
104
+ {
105
+ "layout": "TitleSlide",
106
+ "title": "AI 智能助手",
107
+ "content": [
108
+ "新一代人工智能助手",
109
+ "提升工作效率",
110
+ "智能对话交互"
111
+ ],
112
+ "notes": "开场白,介绍产品定位"
113
+ },
114
+ {
115
+ "layout": "ContentSlide",
116
+ "title": "核心功能",
117
+ "content": [
118
+ "自然语言理解",
119
+ "智能内容生成",
120
+ "多模态交互",
121
+ "个性化定制"
122
+ ],
123
+ "notes": "详细介绍产品核心功能"
124
+ },
125
+ {
126
+ "layout": "ContentSlide",
127
+ "title": "技术优势",
128
+ "content": [
129
+ "先进的语言模型",
130
+ "高效的知识检索",
131
+ "安全的数据处理",
132
+ "灵活的部署方案"
133
+ ],
134
+ "notes": "说明技术优势"
135
+ },
136
+ {
137
+ "layout": "SummarySlide",
138
+ "title": "总结",
139
+ "content": [
140
+ "AI 智能助手",
141
+ "提升效率,创造价值",
142
+ "开启智能新时代"
143
+ ],
144
+ "notes": "总结发言"
145
+ }
146
+ ]
147
+ }
148
+ ```
149
+
150
+ ### 最小示例
151
+
152
+ ```json
153
+ {
154
+ "metadata": {
155
+ "title": "演示文稿"
156
+ },
157
+ "slides": [
158
+ {
159
+ "title": "第一页",
160
+ "content": ["内容1", "内容2"]
161
+ }
162
+ ]
163
+ }
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 验证规则
169
+
170
+ ### 必需字段
171
+
172
+ 以下字段为必需:
173
+ - `slides` 数组
174
+ - 每个幻灯片的 `title` 字段
175
+ - 每个幻灯片的 `content` 数组
176
+
177
+ ### 数据类型
178
+
179
+ | 字段 | 期望类型 | 说明 |
180
+ |------|----------|------|
181
+ | metadata | Object | 元数据对象 |
182
+ | title | String | 标题字符串 |
183
+ | author | String | 作者字符串 |
184
+ | theme | String | 主题字符串 |
185
+ | layout | String | 布局类型字符串 |
186
+ | content | Array | 内容数组 |
187
+ | notes | String | 备注字符串 |
188
+
189
+ ### 内容要求
190
+
191
+ 1. **标题**:
192
+ - 不能为空字符串
193
+ - 建议长度:1-50 个字符
194
+
195
+ 2. **内容数组**:
196
+ - 不能为空数组
197
+ - 每个元素必须是字符串
198
+ - 建议每页 3-7 个要点
199
+
200
+ 3. **备注**:
201
+ - 可选字段
202
+ - 可为空字符串
203
+
204
+ ### 验证命令
205
+
206
+ 使用 `json_validator.py` 验证 JSON 格式:
207
+
208
+ ```bash
209
+ python scripts/json_validator.py --input ./ppt_data.json
210
+ ```
211
+
212
+ 验证结果:
213
+ - ✓ 验证通过:JSON 格式正确
214
+ - ⚠️ 警告:JSON 格式基本正确,但有建议
215
+ - ❌ 错误:JSON 格式不正确,需要修复