wormclaude 1.0.119 → 1.0.121

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 (232) hide show
  1. package/dist/theme.js +1 -1
  2. package/dist/tui.js +6 -1
  3. package/package.json +1 -1
  4. package/skills/build-mcp-app/SKILL.md +0 -393
  5. package/skills/build-mcp-app/references/abuse-protection.md +0 -60
  6. package/skills/build-mcp-app/references/apps-sdk-messages.md +0 -227
  7. package/skills/build-mcp-app/references/directory-checklist.md +0 -18
  8. package/skills/build-mcp-app/references/iframe-sandbox.md +0 -164
  9. package/skills/build-mcp-app/references/payload-budgeting.md +0 -54
  10. package/skills/build-mcp-app/references/widget-templates.md +0 -249
  11. package/skills/build-mcp-server/SKILL.md +0 -222
  12. package/skills/build-mcp-server/references/auth.md +0 -108
  13. package/skills/build-mcp-server/references/deploy-cloudflare-workers.md +0 -106
  14. package/skills/build-mcp-server/references/elicitation.md +0 -129
  15. package/skills/build-mcp-server/references/remote-http-scaffold.md +0 -211
  16. package/skills/build-mcp-server/references/resources-and-prompts.md +0 -122
  17. package/skills/build-mcp-server/references/server-capabilities.md +0 -164
  18. package/skills/build-mcp-server/references/tool-design.md +0 -189
  19. package/skills/build-mcp-server/references/versions.md +0 -25
  20. package/skills/build-mcpb/SKILL.md +0 -200
  21. package/skills/build-mcpb/references/local-security.md +0 -149
  22. package/skills/build-mcpb/references/manifest-schema.md +0 -156
  23. package/skills/docx/script/__init__.py +0 -1
  24. package/skills/docx/script/accept_chages.py +0 -135
  25. package/skills/docx/script/comment.py +0 -318
  26. package/skills/docx/script/office/helpers/__init__.py +0 -0
  27. package/skills/docx/script/office/helpers/merge_runs.py +0 -199
  28. package/skills/docx/script/office/helpers/simplify_redlines.py +0 -197
  29. package/skills/docx/script/office/pack.py +0 -159
  30. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  31. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  32. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  33. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  34. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  35. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  36. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  37. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  38. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  39. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  40. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  41. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  42. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  43. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  44. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  45. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  46. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  47. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  48. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  49. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  50. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  51. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  52. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  53. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  54. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  55. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  56. package/skills/docx/script/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  57. package/skills/docx/script/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  58. package/skills/docx/script/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  59. package/skills/docx/script/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  60. package/skills/docx/script/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  61. package/skills/docx/script/office/schemas/mce/mc.xsd +0 -75
  62. package/skills/docx/script/office/schemas/microsoft/wml-2010.xsd +0 -560
  63. package/skills/docx/script/office/schemas/microsoft/wml-2012.xsd +0 -67
  64. package/skills/docx/script/office/schemas/microsoft/wml-2018.xsd +0 -14
  65. package/skills/docx/script/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
  66. package/skills/docx/script/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
  67. package/skills/docx/script/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  68. package/skills/docx/script/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
  69. package/skills/docx/script/office/soffice.py +0 -183
  70. package/skills/docx/script/office/unpack.py +0 -132
  71. package/skills/docx/script/office/validate.py +0 -117
  72. package/skills/docx/script/office/validators/__init__.py +0 -15
  73. package/skills/docx/script/office/validators/base.py +0 -851
  74. package/skills/docx/script/office/validators/docx.py +0 -446
  75. package/skills/docx/script/office/validators/pptx.py +0 -275
  76. package/skills/docx/script/office/validators/redlining.py +0 -247
  77. package/skills/docx/script/templates/comments.xml +0 -3
  78. package/skills/docx/script/templates/commentsExtended.xml +0 -3
  79. package/skills/docx/script/templates/commentsExtensible.xml +0 -3
  80. package/skills/docx/script/templates/commentsIds.xml +0 -3
  81. package/skills/docx/script/templates/people.xml +0 -3
  82. package/skills/docx/skill.md +0 -593
  83. package/skills/explain.md +0 -14
  84. package/skills/frontend-design/SKILL.md +0 -42
  85. package/skills/pdf/FORMS.md +0 -294
  86. package/skills/pdf/REFERENCE.md +0 -612
  87. package/skills/pdf/SKILL.md +0 -314
  88. package/skills/pdf/scripts/check_bounding_boxes.py +0 -65
  89. package/skills/pdf/scripts/check_fillable_fields.py +0 -11
  90. package/skills/pdf/scripts/convert_pdf_to_images.py +0 -33
  91. package/skills/pdf/scripts/create_validation_image.py +0 -37
  92. package/skills/pdf/scripts/extract_form_field_info.py +0 -122
  93. package/skills/pdf/scripts/extract_form_structure.py +0 -115
  94. package/skills/pdf/scripts/fill_fillable_fields.py +0 -98
  95. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -107
  96. package/skills/playground/SKILL.md +0 -77
  97. package/skills/playground/templates/code-map.md +0 -158
  98. package/skills/playground/templates/concept-map.md +0 -73
  99. package/skills/playground/templates/data-explorer.md +0 -67
  100. package/skills/playground/templates/design-playground.md +0 -67
  101. package/skills/playground/templates/diff-review.md +0 -179
  102. package/skills/playground/templates/document-critique.md +0 -171
  103. package/skills/pptx/SKILL.md +0 -230
  104. package/skills/pptx/editing.md +0 -205
  105. package/skills/pptx/pptxgenjs.md +0 -437
  106. package/skills/pptx/scripts/__init__.py +0 -0
  107. package/skills/pptx/scripts/add_slide.py +0 -195
  108. package/skills/pptx/scripts/clean.py +0 -286
  109. package/skills/pptx/scripts/office/helpers/__init__.py +0 -0
  110. package/skills/pptx/scripts/office/helpers/merge_runs.py +0 -199
  111. package/skills/pptx/scripts/office/helpers/simplify_redlines.py +0 -197
  112. package/skills/pptx/scripts/office/pack.py +0 -159
  113. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  114. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  115. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  116. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  117. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  118. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  119. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  120. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  121. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  122. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  123. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  124. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  125. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  126. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  127. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  128. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  129. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  130. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  131. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  132. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  133. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  134. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  135. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  136. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  137. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  138. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  139. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  140. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  141. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  142. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  143. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  144. package/skills/pptx/scripts/office/schemas/mce/mc.xsd +0 -75
  145. package/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
  146. package/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
  147. package/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
  148. package/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
  149. package/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
  150. package/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  151. package/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
  152. package/skills/pptx/scripts/office/soffice.py +0 -183
  153. package/skills/pptx/scripts/office/unpack.py +0 -132
  154. package/skills/pptx/scripts/office/validate.py +0 -117
  155. package/skills/pptx/scripts/office/validators/__init__.py +0 -15
  156. package/skills/pptx/scripts/office/validators/base.py +0 -851
  157. package/skills/pptx/scripts/office/validators/docx.py +0 -446
  158. package/skills/pptx/scripts/office/validators/pptx.py +0 -275
  159. package/skills/pptx/scripts/office/validators/redlining.py +0 -247
  160. package/skills/pptx/scripts/thumbnail.py +0 -289
  161. package/skills/recon.md +0 -16
  162. package/skills/security-audit/SKILL.md +0 -26
  163. package/skills/talent-creator/SKILL.md +0 -486
  164. package/skills/talent-creator/agents/analyzer.md +0 -274
  165. package/skills/talent-creator/agents/comparator.md +0 -202
  166. package/skills/talent-creator/agents/grader.md +0 -223
  167. package/skills/talent-creator/assets/eval_review.html +0 -146
  168. package/skills/talent-creator/eval-viewer/generate_review.py +0 -471
  169. package/skills/talent-creator/eval-viewer/viewer.html +0 -1325
  170. package/skills/talent-creator/references/schemas.md +0 -430
  171. package/skills/talent-creator/scripts/__init__.py +0 -0
  172. package/skills/talent-creator/scripts/aggregate_benchmark.py +0 -401
  173. package/skills/talent-creator/scripts/generate_report.py +0 -326
  174. package/skills/talent-creator/scripts/improve_description.py +0 -247
  175. package/skills/talent-creator/scripts/package_skill.py +0 -136
  176. package/skills/talent-creator/scripts/quick_validate.py +0 -146
  177. package/skills/talent-creator/scripts/run_eval.py +0 -310
  178. package/skills/talent-creator/scripts/run_loop.py +0 -328
  179. package/skills/talent-creator/scripts/utils.py +0 -47
  180. package/skills/xlsx/SKILL.md +0 -300
  181. package/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  182. package/skills/xlsx/scripts/office/helpers/merge_runs.py +0 -199
  183. package/skills/xlsx/scripts/office/helpers/simplify_redlines.py +0 -197
  184. package/skills/xlsx/scripts/office/pack.py +0 -159
  185. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  186. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  187. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  188. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  189. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  190. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  191. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  192. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  193. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  194. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  195. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  196. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  197. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  198. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  199. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  200. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  201. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  202. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  203. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  204. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  205. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  206. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  207. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  208. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  209. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  210. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  211. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  212. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  213. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  214. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  215. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  216. package/skills/xlsx/scripts/office/schemas/mce/mc.xsd +0 -75
  217. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
  218. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
  219. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
  220. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
  221. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
  222. package/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  223. package/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
  224. package/skills/xlsx/scripts/office/soffice.py +0 -183
  225. package/skills/xlsx/scripts/office/unpack.py +0 -132
  226. package/skills/xlsx/scripts/office/validate.py +0 -117
  227. package/skills/xlsx/scripts/office/validators/__init__.py +0 -15
  228. package/skills/xlsx/scripts/office/validators/base.py +0 -851
  229. package/skills/xlsx/scripts/office/validators/docx.py +0 -446
  230. package/skills/xlsx/scripts/office/validators/pptx.py +0 -275
  231. package/skills/xlsx/scripts/office/validators/redlining.py +0 -247
  232. package/skills/xlsx/scripts/recalc.py +0 -184
@@ -1,179 +0,0 @@
1
- # Diff Review Template
2
-
3
- Reach for this template when the playground is about reviewing code diffs: git commits, pull requests, and code changes with interactive line-by-line commenting for feedback.
4
-
5
- ## Layout
6
-
7
- ```
8
- +-------------------+----------------------------------+
9
- | | |
10
- | Commit Header: | Diff Content |
11
- | • Hash | (files with hunks) |
12
- | • Message | with line numbers |
13
- | • Author/Date | and +/- indicators |
14
- | | |
15
- +-------------------+----------------------------------+
16
- | Prompt Output Panel (fixed bottom-right) |
17
- | [ Copy All ] |
18
- | Shows all comments formatted for prompt |
19
- +------------------------------------------------------+
20
- ```
21
-
22
- Diff review playgrounds lay out git diffs with syntax highlighting. Users click a line to attach a comment, and those comments feed into the generated prompt that drives the code review feedback.
23
-
24
- ## Control types for diff review
25
-
26
- | Feature | Control | Behavior |
27
- |---|---|---|
28
- | Line commenting | Click any diff line | Opens textarea below the line |
29
- | Comment indicator | Badge on commented lines | Shows which lines have feedback |
30
- | Save/Cancel | Buttons in comment box | Persist or discard comment |
31
- | Copy prompt | Button in prompt panel | Copies all comments to clipboard |
32
-
33
- ## Diff rendering
34
-
35
- Turn the diff data into a structured shape before rendering:
36
-
37
- ```javascript
38
- const diffData = [
39
- {
40
- file: "path/to/file.py",
41
- hunks: [
42
- {
43
- header: "@@ -41,13 +41,13 @@ function context",
44
- lines: [
45
- { type: "context", oldNum: 41, newNum: 41, content: "unchanged line" },
46
- { type: "deletion", oldNum: 42, newNum: null, content: "removed line" },
47
- { type: "addition", oldNum: null, newNum: 42, content: "added line" },
48
- ]
49
- }
50
- ]
51
- }
52
- ];
53
- ```
54
-
55
- ## Line type styling
56
-
57
- | Type | Background | Text Color | Prefix |
58
- |---|---|---|---|
59
- | `context` | transparent | default | ` ` (space) |
60
- | `addition` | green tint (#dafbe1 light / rgba(46,160,67,0.15) dark) | green (#1a7f37 light / #7ee787 dark) | `+` |
61
- | `deletion` | red tint (#ffebe9 light / rgba(248,81,73,0.15) dark) | red (#cf222e light / #f85149 dark) | `-` |
62
- | `hunk-header` | blue tint (#ddf4ff light) | blue (#0969da light) | `@@` |
63
-
64
- ## Comment system
65
-
66
- Give every diff line its own unique id so comments can be tracked:
67
-
68
- ```javascript
69
- const comments = {}; // { lineId: commentText }
70
-
71
- function selectLine(lineId, lineEl) {
72
- // Deselect previous
73
- document.querySelectorAll('.diff-line.selected').forEach(el =>
74
- el.classList.remove('selected'));
75
- document.querySelectorAll('.comment-box.active').forEach(el =>
76
- el.classList.remove('active'));
77
-
78
- // Select new
79
- lineEl.classList.add('selected');
80
- document.getElementById(`comment-box-${lineId}`).classList.add('active');
81
- }
82
-
83
- function saveComment(lineId) {
84
- const textarea = document.getElementById(`textarea-${lineId}`);
85
- const comment = textarea.value.trim();
86
-
87
- if (comment) {
88
- comments[lineId] = comment;
89
- } else {
90
- delete comments[lineId];
91
- }
92
-
93
- renderDiff(); // Re-render to show comment indicator
94
- updatePromptOutput();
95
- }
96
- ```
97
-
98
- ## Prompt output format
99
-
100
- Emit the comments in a structured code review layout:
101
-
102
- ```javascript
103
- function updatePromptOutput() {
104
- const commentKeys = Object.keys(comments);
105
-
106
- if (commentKeys.length === 0) {
107
- promptContent.innerHTML = '<span class="no-comments">Click on any line to add a comment...</span>';
108
- return;
109
- }
110
-
111
- let output = 'Code Review Comments:\n\n';
112
-
113
- commentKeys.forEach(lineId => {
114
- const lineEl = document.querySelector(`[data-line-id="${lineId}"]`);
115
- const file = lineEl.dataset.file;
116
- const lineNum = lineEl.dataset.lineNum;
117
- const content = lineEl.dataset.content;
118
-
119
- output += `📍 ${file}:${lineNum}\n`;
120
- output += ` Code: ${content.trim()}\n`;
121
- output += ` Comment: ${comments[lineId]}\n\n`;
122
- });
123
-
124
- promptContent.textContent = output;
125
- }
126
- ```
127
-
128
- ## Data attributes for line elements
129
-
130
- Stash metadata on each line element so the prompt can be built from it:
131
-
132
- ```html
133
- <div class="diff-line addition"
134
- data-line-id="0-1-5"
135
- data-file="src/utils/handler.py"
136
- data-line-num="45"
137
- data-content="subagent_id = tracker.register()">
138
- ```
139
-
140
- ## Pre-populating with real data
141
-
142
- To build a diff viewer around a specific commit:
143
-
144
- 1. Run `git show <commit> --format="%H%n%s%n%an%n%ad" -p`
145
- 2. Parse that output into the `diffData` structure
146
- 3. Surface the commit metadata in the header section
147
-
148
- ## Theme support
149
-
150
- Cover both light and dark modes:
151
-
152
- ```css
153
- /* Light mode */
154
- body { background: #f6f8fa; color: #1f2328; }
155
- .file-card { background: #ffffff; border: 1px solid #d0d7de; }
156
- .diff-line.addition { background: #dafbe1; }
157
- .diff-line.deletion { background: #ffebe9; }
158
-
159
- /* Dark mode */
160
- body { background: #0d1117; color: #c9d1d9; }
161
- .file-card { background: #161b22; border: 1px solid #30363d; }
162
- .diff-line.addition { background: rgba(46, 160, 67, 0.15); }
163
- .diff-line.deletion { background: rgba(248, 81, 73, 0.15); }
164
- ```
165
-
166
- ## Interactive features
167
-
168
- - **Hover hint:** Pop a "Click to comment" tooltip when a line is hovered
169
- - **Comment indicator:** Mark lines that already hold a comment with a badge (💬)
170
- - **Toast notification:** Flash "Copied to clipboard!" after a copy
171
- - **Edit existing:** Let users go back and revise comments they've already saved
172
-
173
- ## Example topics
174
-
175
- - Git commit review (single commit diff with line comments)
176
- - Pull request review (multiple commits, file-level and line-level comments)
177
- - Code diff comparison (before/after refactoring)
178
- - Merge conflict resolution (showing both versions with annotations)
179
- - Code audit (security review with findings per line)
@@ -1,171 +0,0 @@
1
- # Document Critique Template
2
-
3
- Reach for this template when the playground exists to review and critique documents: SKILL.md files, READMEs, specs, proposals, or any text that calls for structured feedback through an approve/reject/comment workflow.
4
-
5
- ## Layout
6
-
7
- ```
8
- +---------------------------+--------------------+
9
- | | |
10
- | Document content | Suggestions panel |
11
- | with line numbers | (filterable list) |
12
- | and suggestion | • Approve |
13
- | highlighting | • Reject |
14
- | | • Comment |
15
- | | |
16
- +---------------------------+--------------------+
17
- | Prompt output (approved + commented items) |
18
- | [ Copy Prompt ] |
19
- +------------------------------------------------+
20
- ```
21
-
22
- ## Key components
23
-
24
- ### Document panel (left)
25
- - Show the whole document alongside line numbers
26
- - Flag lines that carry suggestions with a colored left border
27
- - Color-code by status: pending (amber), approved (green), rejected (red, dimmed)
28
- - Clicking a suggestion card scrolls to the line it points at
29
-
30
- ### Suggestions panel (right)
31
- - Filter tabs: All / Pending / Approved / Rejected
32
- - A header tally showing how many sit in each status
33
- - Every suggestion card carries:
34
- - Its line reference (for example "Line 3" or "Lines 17-24")
35
- - The suggestion text itself
36
- - Action buttons: Approve / Reject / Comment (or Reset once a decision is made)
37
- - An optional textarea for the user's own comments
38
-
39
- ### Prompt output (bottom)
40
- - Builds a prompt strictly from approved suggestions plus user comments
41
- - Splits into: Approved Improvements, Additional Feedback, Rejected (kept for context)
42
- - Copy button with "Copied!" feedback
43
-
44
- ## State structure
45
-
46
- ```javascript
47
- const suggestions = [
48
- {
49
- id: 1,
50
- lineRef: "Line 3",
51
- targetText: "description: Creates interactive...",
52
- suggestion: "The description is too long. Consider shortening.",
53
- category: "clarity", // clarity, completeness, performance, accessibility, ux
54
- status: "pending", // pending, approved, rejected
55
- userComment: ""
56
- },
57
- // ... more suggestions
58
- ];
59
-
60
- let state = {
61
- suggestions: [...],
62
- activeFilter: "all",
63
- activeSuggestionId: null
64
- };
65
- ```
66
-
67
- ## Suggestion matching to lines
68
-
69
- Tie suggestions back to document lines by parsing the lineRef:
70
-
71
- ```javascript
72
- const suggestion = state.suggestions.find(s => {
73
- const match = s.lineRef.match(/Line[s]?\s*(\d+)/);
74
- if (match) {
75
- const targetLine = parseInt(match[1]);
76
- return Math.abs(targetLine - lineNum) <= 2; // fuzzy match nearby lines
77
- }
78
- return false;
79
- });
80
- ```
81
-
82
- ## Document rendering
83
-
84
- Deal with markdown-style formatting inline:
85
-
86
- ```javascript
87
- // Skip ``` lines, wrap content in code-block-wrapper
88
- if (line.startsWith('```')) {
89
- inCodeBlock = !inCodeBlock;
90
- // Open or close wrapper div
91
- }
92
-
93
- // Headers
94
- if (line.startsWith('# ')) renderedLine = `<h1>...</h1>`;
95
- if (line.startsWith('## ')) renderedLine = `<h2>...</h2>`;
96
-
97
- // Inline formatting (outside code blocks)
98
- renderedLine = renderedLine.replace(/`([^`]+)`/g, '<code>$1</code>');
99
- renderedLine = renderedLine.replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>');
100
- ```
101
-
102
- ## Prompt output generation
103
-
104
- Keep it to items that can be acted on:
105
-
106
- ```javascript
107
- function updatePrompt() {
108
- const approved = state.suggestions.filter(s => s.status === 'approved');
109
- const withComments = state.suggestions.filter(s => s.userComment?.trim());
110
-
111
- if (approved.length === 0 && withComments.length === 0) {
112
- // Show placeholder
113
- return;
114
- }
115
-
116
- let prompt = 'Please update [DOCUMENT] with the following changes:\n\n';
117
-
118
- if (approved.length > 0) {
119
- prompt += '## Approved Improvements\n\n';
120
- for (const s of approved) {
121
- prompt += `**${s.lineRef}:** ${s.suggestion}`;
122
- if (s.userComment?.trim()) {
123
- prompt += `\n → User note: ${s.userComment.trim()}`;
124
- }
125
- prompt += '\n\n';
126
- }
127
- }
128
-
129
- // Additional feedback from non-approved items with comments
130
- // Rejected items listed for context only
131
- }
132
- ```
133
-
134
- ## Styling highlights
135
-
136
- ```css
137
- .doc-line.has-suggestion {
138
- border-left: 3px solid #bf8700; /* amber for pending */
139
- background: rgba(191, 135, 0, 0.08);
140
- }
141
-
142
- .doc-line.approved {
143
- border-left-color: #1a7f37; /* green */
144
- background: rgba(26, 127, 55, 0.08);
145
- }
146
-
147
- .doc-line.rejected {
148
- border-left-color: #cf222e; /* red */
149
- background: rgba(207, 34, 46, 0.08);
150
- opacity: 0.6;
151
- }
152
- ```
153
-
154
- ## Pre-populating suggestions
155
-
156
- When assembling a critique playground for a particular document:
157
-
158
- 1. Read through the document's contents
159
- 2. Review it and draft suggestions that include:
160
- - Precise line references
161
- - Clear suggestion text that can be acted on
162
- - Category tags (clarity, completeness, performance, accessibility, ux)
163
- 3. Bake both the document content and the suggestions array straight into the HTML
164
-
165
- ## Example use cases
166
-
167
- - SKILL.md review (skill definition quality, completeness, clarity)
168
- - README critique (documentation quality, missing sections, unclear explanations)
169
- - Spec review (requirements clarity, missing edge cases, ambiguity)
170
- - Proposal feedback (structure, argumentation, missing context)
171
- - Code comment review (docstring quality, inline comment usefulness)
@@ -1,230 +0,0 @@
1
- ---
2
- name: pptx
3
- description: "Reach for this skill whenever a .pptx file appears in a task, whether as a source, a result, or both. Covers building slide decks, pitch decks, and presentations; opening, parsing, or pulling text out of any .pptx (including cases where that text feeds something else like a summary or email); revising or refreshing decks that already exist; merging or separating slide files; and handling templates, layouts, speaker notes, or comments. Activate it whenever someone says \"deck,\" \"slides,\" or \"presentation,\" or names a .pptx file, no matter what they intend to do with the result. Any time a .pptx must be opened, generated, or modified, this skill applies."
4
- license: WormClaude
5
- ---
6
-
7
- # PPTX Skill
8
-
9
- ## Quick Reference
10
-
11
- | Task | Guide |
12
- |------|-------|
13
- | Read/analyze content | `extract-text presentation.pptx` |
14
- | Edit or create from template | Read [editing.md](editing.md) |
15
- | Create from scratch | Read [pptxgenjs.md](pptxgenjs.md) |
16
-
17
- ---
18
-
19
- ## Reading Content
20
-
21
- ```bash
22
- # Text extraction, one `## Slide N` section per slide
23
- extract-text presentation.pptx
24
-
25
- # Visual overview
26
- python scripts/thumbnail.py presentation.pptx
27
-
28
- # Raw XML
29
- python scripts/office/unpack.py presentation.pptx unpacked/
30
- ```
31
-
32
- ---
33
-
34
- ## Editing Workflow
35
-
36
- **See [editing.md](editing.md) for the complete walkthrough.**
37
-
38
- 1. Analyze template with `thumbnail.py`
39
- 2. Unpack → manipulate slides → edit content → clean → pack
40
-
41
- ---
42
-
43
- ## Creating from Scratch
44
-
45
- **See [pptxgenjs.md](pptxgenjs.md) for the complete walkthrough.**
46
-
47
- Reach for this path when there's no template or reference deck to work from.
48
-
49
- ---
50
-
51
- ## Design Ideas
52
-
53
- **Avoid dull slides.** A white background with plain bullets impresses no one. Pull ideas from the list below for each slide.
54
-
55
- ### Before Starting
56
-
57
- - **Pick a bold, content-informed color palette**: The palette should feel built specifically for THIS subject. If you could drop the same colors into an unrelated deck and they'd still fit, your choices aren't distinctive enough.
58
- - **Dominance over equality**: Let one color carry the bulk of the weight (60-70%), backed by 1-2 supporting tones and a single sharp accent. Avoid weighting every color the same.
59
- - **Dark/light contrast**: Use dark backgrounds on the title and closing slides and lighter ones for the body (a "sandwich" layout). Alternatively, go dark across the whole deck for a premium look.
60
- - **Commit to a visual motif**: Settle on ONE signature element and reuse it — rounded photo frames, icons set in colored circles, a heavy border on one edge. Keep it consistent on every slide.
61
-
62
- ### Color Palettes
63
-
64
- Match the colors to your subject rather than reaching for plain blue. Treat these palettes as starting points:
65
-
66
- | Theme | Primary | Secondary | Accent |
67
- |-------|---------|-----------|--------|
68
- | **Midnight Executive** | `1E2761` (navy) | `CADCFC` (ice blue) | `FFFFFF` (white) |
69
- | **Forest & Moss** | `2C5F2D` (forest) | `97BC62` (moss) | `F5F5F5` (cream) |
70
- | **Coral Energy** | `F96167` (coral) | `F9E795` (gold) | `2F3C7E` (navy) |
71
- | **Warm Terracotta** | `B85042` (terracotta) | `E7E8D1` (sand) | `A7BEAE` (sage) |
72
- | **Ocean Gradient** | `065A82` (deep blue) | `1C7293` (teal) | `21295C` (midnight) |
73
- | **Charcoal Minimal** | `36454F` (charcoal) | `F2F2F2` (off-white) | `212121` (black) |
74
- | **Teal Trust** | `028090` (teal) | `00A896` (seafoam) | `02C39A` (mint) |
75
- | **Berry & Cream** | `6D2E46` (berry) | `A26769` (dusty rose) | `ECE2D0` (cream) |
76
- | **Sage Calm** | `84B59F` (sage) | `69A297` (eucalyptus) | `50808E` (slate) |
77
- | **Cherry Bold** | `990011` (cherry) | `FCF6F5` (off-white) | `2F3C7E` (navy) |
78
-
79
- ### For Each Slide
80
-
81
- **Give every slide a visual anchor** — an image, chart, icon, or shape. Slides that are only text don't stick.
82
-
83
- **Layout options:**
84
- - Two-column (text left, illustration on right)
85
- - Icon + text rows (icon in colored circle, bold header, description below)
86
- - 2x2 or 2x3 grid (image on one side, grid of content blocks on other)
87
- - Half-bleed image (full left or right side) with content overlay
88
-
89
- **Data display:**
90
- - Large stat callouts (big numbers 60-72pt with small labels below)
91
- - Comparison columns (before/after, pros/cons, side-by-side options)
92
- - Timeline or process flow (numbered steps, arrows)
93
-
94
- **Visual polish:**
95
- - Icons in small colored circles next to section headers
96
- - Italic accent text for key stats or taglines
97
-
98
- ### Typography
99
-
100
- **Go for a distinctive font pairing** — skip the automatic Arial. Choose a header face with character and team it with a clean body face.
101
-
102
- | Header Font | Body Font |
103
- |-------------|-----------|
104
- | Georgia | Calibri |
105
- | Arial Black | Arial |
106
- | Calibri | Calibri Light |
107
- | Cambria | Calibri |
108
- | Trebuchet MS | Calibri |
109
- | Impact | Arial |
110
- | Palatino | Garamond |
111
- | Consolas | Calibri |
112
-
113
- | Element | Size |
114
- |---------|------|
115
- | Slide title | 36-44pt bold |
116
- | Section header | 20-24pt bold |
117
- | Body text | 14-16pt |
118
- | Captions | 10-12pt muted |
119
-
120
- ### Spacing
121
-
122
- - 0.5" minimum margins
123
- - 0.3-0.5" between content blocks
124
- - Let the layout breathe—don't pack every inch
125
-
126
- ### Avoid (Common Mistakes)
127
-
128
- - **Don't reuse one layout throughout** — alternate columns, cards, and callouts from slide to slide
129
- - **Don't center body text** — keep paragraphs and lists left-aligned; reserve centering for titles
130
- - **Don't skimp on size contrast** — push titles to 36pt+ so they separate from 14-16pt body copy
131
- - **Don't fall back on blue** — choose colors tied to the actual subject
132
- - **Don't mix spacing randomly** — settle on 0.3" or 0.5" gaps and stick with one
133
- - **Don't polish a single slide and ignore the others** — either commit across the board or keep everything plain
134
- - **Don't build text-only slides** — bring in images, icons, charts, or other visuals; steer clear of bare title + bullets
135
- - **Don't overlook text box padding** — when lining up lines or shapes with text edges, set `margin: 0` on the text box or shift the shape to compensate for the padding
136
- - **Don't use low-contrast elements** — both icons and text must stand out clearly from the background; avoid pale text on pale backgrounds or dark text on dark backgrounds
137
- - **NEVER use accent lines under titles** — they're a telltale sign of AI-generated slides; rely on whitespace or background color instead
138
- - **Don't add decorative full-width colored bars/rectangles** — header/footer bars, side ribbons, or colored stripes look like AI slop unless the user specifically asks for them
139
- - **Don't reach for cream/beige backgrounds by default** — with no background specified, go with white (`FFFFFF`) or the user's brand colors; skip warm-neutral defaults like `F5F5DC`, `FAF0E6`, `FAEBD7`, `FFF8E1`
140
- - **Don't ship text that spills out of its shape** — if it won't fit, shrink the font, break it across slides, or grow the container; never leave content clipped or running past its bounds
141
-
142
- ---
143
-
144
- ## QA (Required)
145
-
146
- Expect the first render to carry a handful of genuine problems — overlaps, overflow, things out of alignment. Track those down, fix them, and then stop. Don't keep tweaking coordinates by tiny amounts or hunt for a flawless render.
147
-
148
- Act instead of narrating: keep the chatter between tool calls to a minimum. Run the check, make the fix, keep going.
149
-
150
- ### Content QA
151
-
152
- ```bash
153
- extract-text output.pptx
154
- ```
155
-
156
- Look for dropped content, typos, and wrong ordering.
157
-
158
- **With templates, scan for placeholder text left behind:**
159
-
160
- ```bash
161
- extract-text output.pptx | grep -iE "\bx{3,}\b|lorem|ipsum|\bTODO|\[insert|this.*(page|slide).*layout"
162
- ```
163
-
164
- If grep turns up matches, resolve them before calling the job done.
165
-
166
- ### Visual QA
167
-
168
- **⚠️ USE SUBAGENTS** — even for just 2-3 slides. After staring at the code you'll perceive what you intended rather than what's actually rendered. A subagent comes in with fresh eyes.
169
-
170
- Render the slides to images (see [Converting to Images](#converting-to-images)), then hand over this prompt:
171
-
172
- ```
173
- Visually inspect these slides for user-visible defects.
174
-
175
- Look for:
176
- - Overlapping elements (text through shapes, lines through words, stacked elements)
177
- - Text overflow or cut off at edges/box boundaries
178
- - Decorative lines positioned for single-line text but title wrapped to two lines
179
- - Source citations or footers colliding with content above
180
- - Elements too close (< 0.3" gaps) or cards/sections nearly touching
181
- - Uneven gaps (large empty area in one place, cramped in another)
182
- - Insufficient margin from slide edges (< 0.5")
183
- - Columns or similar elements not aligned consistently
184
- - Low-contrast text (e.g., light gray text on cream-colored background)
185
- - Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)
186
- - Text boxes too narrow causing excessive wrapping
187
- - Leftover placeholder content
188
-
189
- For each slide, list user-visible issues. Skip sub-pixel positioning and cosmetic nitpicks a viewer wouldn't notice.
190
-
191
- Read and analyze these images — run `ls -1 "$PWD"/slide-*.jpg` and use the exact absolute paths it prints:
192
- 1. <absolute-path>/slide-N.jpg — (Expected: [brief description])
193
- 2. <absolute-path>/slide-N.jpg — (Expected: [brief description])
194
- ...
195
- ```
196
-
197
- ### Verification Loop
198
-
199
- 1. Build slides → render to images → inspect
200
- 2. **Start with text bounds** — for each text box, verify the rendered text stays inside its shape. Overflow is the most frequent defect and always shows up to the viewer.
201
- 3. Note any further problems you spot
202
- 4. Fix them
203
- 5. Re-check only the slides you changed
204
- 6. **Halt after a single fix-and-verify pass** unless a fresh *user-visible* defect surfaces (overlap, overflow, missing content). Don't loop over sub-pixel placement, small color adjustments, or anything a viewer wouldn't catch.
205
-
206
- ---
207
-
208
- ## Converting to Images
209
-
210
- Turn a presentation into one image per slide for visual review:
211
-
212
- ```bash
213
- python scripts/office/soffice.py --headless --convert-to pdf output.pptx
214
- rm -f slide-*.jpg
215
- pdftoppm -jpeg -r 150 output.pdf slide
216
- ls -1 "$PWD"/slide-*.jpg
217
- ```
218
-
219
- **Feed the absolute paths printed above straight into the view tool.** The `rm` wipes out leftover images from earlier runs. `pdftoppm` zero-pads according to the page count: `slide-1.jpg` for decks below 10 pages, `slide-01.jpg` for 10-99, and `slide-001.jpg` from 100 up.
220
-
221
- **Once you've made fixes, run all four commands again** — the PDF has to be rebuilt from the updated `.pptx` before `pdftoppm` can pick up your changes.
222
-
223
- ---
224
-
225
- ## Dependencies
226
-
227
- - `pip install Pillow` - thumbnail grids
228
- - `npm install -g pptxgenjs` - building from scratch
229
- - LibreOffice (`soffice`) - PDF conversion (set up automatically for sandboxed environments through `scripts/office/soffice.py`)
230
- - Poppler (`pdftoppm`) - PDF to images