pptx.json 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. {
  2. "id": "pptx",
  3. "name": "PPTX creation, editing, and analysis",
  4. "description": "Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks",
  5. "steps": [
  6. {
  7. "id": 1,
  8. "name": "**Read theme file**",
  9. "description": "**Read theme file**: Check `ppt/theme/theme1.xml` for colors (`<a:clrScheme>`) and fonts (`<a:fontScheme>`)",
  10. "type": "instruction"
  11. },
  12. {
  13. "id": 2,
  14. "name": "**Sample slide content**",
  15. "description": "**Sample slide content**: Examine `ppt/slides/slide1.xml` for actual font usage (`<a:rPr>`) and colors",
  16. "type": "instruction"
  17. },
  18. {
  19. "id": 3,
  20. "name": "**Search for patterns**",
  21. "description": "**Search for patterns**: Use grep to find color (`<a:solidFill>`, `<a:srgbClr>`) and font references across all XML files",
  22. "type": "instruction"
  23. },
  24. {
  25. "id": 4,
  26. "name": "**Consider the subject matter**",
  27. "description": "**Consider the subject matter**: What is this presentation about? What tone, industry, or mood does it suggest?",
  28. "type": "instruction"
  29. },
  30. {
  31. "id": 5,
  32. "name": "**Check for branding**",
  33. "description": "**Check for branding**: If the user mentions a company/organization, consider their brand colors and identity",
  34. "type": "instruction"
  35. },
  36. {
  37. "id": 6,
  38. "name": "**Match palette to content**",
  39. "description": "**Match palette to content**: Select colors that reflect the subject",
  40. "type": "instruction"
  41. },
  42. {
  43. "id": 7,
  44. "name": "**State your approach**",
  45. "description": "**State your approach**: Explain your design choices before writing code",
  46. "type": "instruction"
  47. },
  48. {
  49. "id": 8,
  50. "name": "**Classic Blue**",
  51. "description": "**Classic Blue**: Deep navy (#1C2833), slate gray (#2E4053), silver (#AAB7B8), off-white (#F4F6F6)",
  52. "type": "instruction"
  53. },
  54. {
  55. "id": 9,
  56. "name": "**Teal & Coral**",
  57. "description": "**Teal & Coral**: Teal (#5EA8A7), deep teal (#277884), coral (#FE4447), white (#FFFFFF)",
  58. "type": "instruction"
  59. },
  60. {
  61. "id": 10,
  62. "name": "**Bold Red**",
  63. "description": "**Bold Red**: Red (#C0392B), bright red (#E74C3C), orange (#F39C12), yellow (#F1C40F), green (#2ECC71)",
  64. "type": "instruction"
  65. },
  66. {
  67. "id": 11,
  68. "name": "**Warm Blush**",
  69. "description": "**Warm Blush**: Mauve (#A49393), blush (#EED6D3), rose (#E8B4B8), cream (#FAF7F2)",
  70. "type": "instruction"
  71. },
  72. {
  73. "id": 12,
  74. "name": "**Burgundy Luxury**",
  75. "description": "**Burgundy Luxury**: Burgundy (#5D1D2E), crimson (#951233), rust (#C15937), gold (#997929)",
  76. "type": "instruction"
  77. },
  78. {
  79. "id": 13,
  80. "name": "**Deep Purple & Emerald**",
  81. "description": "**Deep Purple & Emerald**: Purple (#B165FB), dark blue (#181B24), emerald (#40695B), white (#FFFFFF)",
  82. "type": "instruction"
  83. },
  84. {
  85. "id": 14,
  86. "name": "**Cream & Forest Green**",
  87. "description": "**Cream & Forest Green**: Cream (#FFE1C7), forest green (#40695B), white (#FCFCFC)",
  88. "type": "instruction"
  89. },
  90. {
  91. "id": 15,
  92. "name": "**Pink & Purple**",
  93. "description": "**Pink & Purple**: Pink (#F8275B), coral (#FF574A), rose (#FF737D), purple (#3D2F68)",
  94. "type": "instruction"
  95. },
  96. {
  97. "id": 16,
  98. "name": "**Lime & Plum**",
  99. "description": "**Lime & Plum**: Lime (#C5DE82), plum (#7C3A5F), coral (#FD8C6E), blue-gray (#98ACB5)",
  100. "type": "instruction"
  101. },
  102. {
  103. "id": 17,
  104. "name": "**Black & Gold**",
  105. "description": "**Black & Gold**: Gold (#BF9A4A), black (#000000), cream (#F4F6F6)",
  106. "type": "instruction"
  107. },
  108. {
  109. "id": 18,
  110. "name": "**Sage & Terracotta**",
  111. "description": "**Sage & Terracotta**: Sage (#87A96B), terracotta (#E07A5F), cream (#F4F1DE), charcoal (#2C2C2C)",
  112. "type": "instruction"
  113. },
  114. {
  115. "id": 19,
  116. "name": "**Charcoal & Red**",
  117. "description": "**Charcoal & Red**: Charcoal (#292929), red (#E33737), light gray (#CCCBCB)",
  118. "type": "instruction"
  119. },
  120. {
  121. "id": 20,
  122. "name": "**Vibrant Orange**",
  123. "description": "**Vibrant Orange**: Orange (#F96D00), light gray (#F2F2F2), charcoal (#222831)",
  124. "type": "instruction"
  125. },
  126. {
  127. "id": 21,
  128. "name": "**Forest Green**",
  129. "description": "**Forest Green**: Black (#191A19), green (#4E9F3D), dark green (#1E5128), white (#FFFFFF)",
  130. "type": "instruction"
  131. },
  132. {
  133. "id": 22,
  134. "name": "**Retro Rainbow**",
  135. "description": "**Retro Rainbow**: Purple (#722880), pink (#D72D51), orange (#EB5C18), amber (#F08800), gold (#DEB600)",
  136. "type": "instruction"
  137. },
  138. {
  139. "id": 23,
  140. "name": "**Vintage Earthy**",
  141. "description": "**Vintage Earthy**: Mustard (#E3B448), sage (#CBD18F), forest green (#3A6B35), cream (#F4F1DE)",
  142. "type": "instruction"
  143. },
  144. {
  145. "id": 24,
  146. "name": "**Coastal Rose**",
  147. "description": "**Coastal Rose**: Old rose (#AD7670), beaver (#B49886), eggshell (#F3ECDC), ash gray (#BFD5BE)",
  148. "type": "instruction"
  149. },
  150. {
  151. "id": 25,
  152. "name": "**Orange & Turquoise**",
  153. "description": "**Orange & Turquoise**: Light orange (#FC993E), grayish turquoise (#667C6F), white (#FCFCFC)",
  154. "type": "instruction"
  155. },
  156. {
  157. "id": 26,
  158. "name": "**MANDATORY - READ ENTIRE FILE**",
  159. "description": "**MANDATORY - READ ENTIRE FILE**: Read [`html2pptx.md`](html2pptx.md) completely from start to finish. **NEVER set any range limits when reading this file.** Read the full file content for detailed syntax, critical formatting rules, and best practices before proceeding with presentation creation.",
  160. "type": "instruction"
  161. },
  162. {
  163. "id": 27,
  164. "name": "Create an HTML file for each slide with proper dimensions (e.g., 720pt × 405pt for 16",
  165. "description": "Create an HTML file for each slide with proper dimensions (e.g., 720pt × 405pt for 16:9)",
  166. "type": "instruction"
  167. },
  168. {
  169. "id": 28,
  170. "name": "Create and run a JavaScript file using the [`html2pptx.js`](scripts/html2pptx.js) library to convert HTML slides to PowerPoint and save the presentation",
  171. "description": "Create and run a JavaScript file using the [`html2pptx.js`](scripts/html2pptx.js) library to convert HTML slides to PowerPoint and save the presentation",
  172. "type": "instruction"
  173. },
  174. {
  175. "id": 29,
  176. "name": "**Visual validation**",
  177. "description": "**Visual validation**: Generate thumbnails and inspect for layout issues",
  178. "type": "instruction"
  179. },
  180. {
  181. "id": 30,
  182. "name": "**MANDATORY - READ ENTIRE FILE**",
  183. "description": "**MANDATORY - READ ENTIRE FILE**: Read [`ooxml.md`](ooxml.md) (~500 lines) completely from start to finish. **NEVER set any range limits when reading this file.** Read the full file content for detailed guidance on OOXML structure and editing workflows before any presentation editing.",
  184. "type": "instruction"
  185. },
  186. {
  187. "id": 31,
  188. "name": "Unpack the presentation",
  189. "description": "Unpack the presentation: `python ooxml/scripts/unpack.py <office_file> <output_dir>`",
  190. "type": "instruction"
  191. },
  192. {
  193. "id": 32,
  194. "name": "Edit the XML files (primarily `ppt/slides/slide{N}.xml` and related files)",
  195. "description": "Edit the XML files (primarily `ppt/slides/slide{N}.xml` and related files)",
  196. "type": "instruction"
  197. },
  198. {
  199. "id": 33,
  200. "name": "**CRITICAL**",
  201. "description": "**CRITICAL**: Validate immediately after each edit and fix any validation errors before proceeding: `python ooxml/scripts/validate.py <dir> --original <file>`",
  202. "type": "instruction"
  203. },
  204. {
  205. "id": 34,
  206. "name": "Pack the final presentation",
  207. "description": "Pack the final presentation: `python ooxml/scripts/pack.py <input_directory> <office_file>`",
  208. "type": "instruction"
  209. },
  210. {
  211. "id": 35,
  212. "name": "**Extract template text AND create visual thumbnail grid**",
  213. "description": "**Extract template text AND create visual thumbnail grid**:",
  214. "type": "instruction"
  215. },
  216. {
  217. "id": 36,
  218. "name": "**Analyze template and save inventory to a file**",
  219. "description": "**Analyze template and save inventory to a file**:",
  220. "type": "instruction"
  221. },
  222. {
  223. "id": 37,
  224. "name": "**Create presentation outline based on template inventory**",
  225. "description": "**Create presentation outline based on template inventory**:",
  226. "type": "instruction"
  227. },
  228. {
  229. "id": 38,
  230. "name": "**Duplicate, reorder, and delete slides using `rearrange.py`**",
  231. "description": "**Duplicate, reorder, and delete slides using `rearrange.py`**:",
  232. "type": "instruction"
  233. },
  234. {
  235. "id": 39,
  236. "name": "**Extract ALL text using the `inventory.py` script**",
  237. "description": "**Extract ALL text using the `inventory.py` script**:",
  238. "type": "instruction"
  239. },
  240. {
  241. "id": 40,
  242. "name": "**Generate replacement text and save the data to a JSON file**",
  243. "description": "**Generate replacement text and save the data to a JSON file**",
  244. "type": "instruction"
  245. },
  246. {
  247. "id": 41,
  248. "name": "**Apply replacements using the `replace.py` script**",
  249. "description": "**Apply replacements using the `replace.py` script**",
  250. "type": "instruction"
  251. },
  252. {
  253. "id": 42,
  254. "name": "**Convert PPTX to PDF**",
  255. "description": "**Convert PPTX to PDF**:",
  256. "type": "instruction"
  257. },
  258. {
  259. "id": 43,
  260. "name": "**Convert PDF pages to JPEG images**",
  261. "description": "**Convert PDF pages to JPEG images**:",
  262. "type": "instruction"
  263. }
  264. ],
  265. "inputs": [],
  266. "outputs": []
  267. }