sumulige-claude 1.0.8 → 1.0.11

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 (301) hide show
  1. package/.claude/.version +1 -0
  2. package/.claude/AGENTS.md +9 -9
  3. package/.claude/commands/commit-push-pr.md +23 -3
  4. package/.claude/sessions/active-sessions.json +1 -359
  5. package/.claude/settings.local.json +31 -1
  6. package/.claude/skills/algorithmic-art/LICENSE.txt +202 -0
  7. package/.claude/skills/algorithmic-art/SKILL.md +405 -0
  8. package/.claude/skills/algorithmic-art/templates/generator_template.js +223 -0
  9. package/.claude/skills/algorithmic-art/templates/viewer.html +599 -0
  10. package/.claude/skills/brand-guidelines/LICENSE.txt +202 -0
  11. package/.claude/skills/brand-guidelines/SKILL.md +73 -0
  12. package/.claude/skills/canvas-design/LICENSE.txt +202 -0
  13. package/.claude/skills/canvas-design/SKILL.md +130 -0
  14. package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  15. package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  16. package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  17. package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  18. package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  19. package/.claude/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  20. package/.claude/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  21. package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  22. package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  23. package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  24. package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  25. package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  26. package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  27. package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  28. package/.claude/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  29. package/.claude/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  30. package/.claude/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  31. package/.claude/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  32. package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  33. package/.claude/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  34. package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  35. package/.claude/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  36. package/.claude/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  37. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  38. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  39. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  40. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  41. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  42. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  43. package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  44. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  45. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  46. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  47. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  48. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  49. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  50. package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  51. package/.claude/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  52. package/.claude/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  53. package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  54. package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  55. package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  56. package/.claude/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  57. package/.claude/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  58. package/.claude/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  59. package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  60. package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  61. package/.claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  62. package/.claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  63. package/.claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  64. package/.claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  65. package/.claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  66. package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  67. package/.claude/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  68. package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  69. package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  70. package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  71. package/.claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  72. package/.claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  73. package/.claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  74. package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  75. package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  76. package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  77. package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  78. package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  79. package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  80. package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  81. package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  82. package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  83. package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  84. package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  85. package/.claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  86. package/.claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  87. package/.claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  88. package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  89. package/.claude/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  90. package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  91. package/.claude/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  92. package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  93. package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  94. package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  95. package/.claude/skills/doc-coauthoring/SKILL.md +375 -0
  96. package/.claude/skills/docx/LICENSE.txt +30 -0
  97. package/.claude/skills/docx/SKILL.md +197 -0
  98. package/.claude/skills/docx/docx-js.md +350 -0
  99. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  100. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  101. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  102. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  103. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  104. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  105. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  106. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  107. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  108. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  109. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  110. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  111. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  112. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  113. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  114. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  115. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  116. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  117. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  118. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  119. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  120. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  121. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  122. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  123. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  124. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  125. package/.claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  126. package/.claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  127. package/.claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  128. package/.claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  129. package/.claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  130. package/.claude/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  131. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  132. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  133. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  134. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  135. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  136. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  137. package/.claude/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  138. package/.claude/skills/docx/ooxml/scripts/pack.py +159 -0
  139. package/.claude/skills/docx/ooxml/scripts/unpack.py +29 -0
  140. package/.claude/skills/docx/ooxml/scripts/validate.py +69 -0
  141. package/.claude/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  142. package/.claude/skills/docx/ooxml/scripts/validation/base.py +951 -0
  143. package/.claude/skills/docx/ooxml/scripts/validation/docx.py +274 -0
  144. package/.claude/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  145. package/.claude/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  146. package/.claude/skills/docx/ooxml.md +610 -0
  147. package/.claude/skills/docx/scripts/__init__.py +1 -0
  148. package/.claude/skills/docx/scripts/document.py +1276 -0
  149. package/.claude/skills/docx/scripts/templates/comments.xml +3 -0
  150. package/.claude/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  151. package/.claude/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  152. package/.claude/skills/docx/scripts/templates/commentsIds.xml +3 -0
  153. package/.claude/skills/docx/scripts/templates/people.xml +3 -0
  154. package/.claude/skills/docx/scripts/utilities.py +374 -0
  155. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  156. package/.claude/skills/frontend-design/SKILL.md +42 -0
  157. package/.claude/skills/internal-comms/LICENSE.txt +202 -0
  158. package/.claude/skills/internal-comms/SKILL.md +32 -0
  159. package/.claude/skills/internal-comms/examples/3p-updates.md +47 -0
  160. package/.claude/skills/internal-comms/examples/company-newsletter.md +65 -0
  161. package/.claude/skills/internal-comms/examples/faq-answers.md +30 -0
  162. package/.claude/skills/internal-comms/examples/general-comms.md +16 -0
  163. package/.claude/skills/mcp-builder/LICENSE.txt +202 -0
  164. package/.claude/skills/mcp-builder/SKILL.md +236 -0
  165. package/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
  166. package/.claude/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  167. package/.claude/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  168. package/.claude/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  169. package/.claude/skills/mcp-builder/scripts/connections.py +151 -0
  170. package/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
  171. package/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  172. package/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
  173. package/.claude/skills/pdf/LICENSE.txt +30 -0
  174. package/.claude/skills/pdf/SKILL.md +294 -0
  175. package/.claude/skills/pdf/forms.md +205 -0
  176. package/.claude/skills/pdf/reference.md +612 -0
  177. package/.claude/skills/pdf/scripts/check_bounding_boxes.py +70 -0
  178. package/.claude/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  179. package/.claude/skills/pdf/scripts/check_fillable_fields.py +12 -0
  180. package/.claude/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  181. package/.claude/skills/pdf/scripts/create_validation_image.py +41 -0
  182. package/.claude/skills/pdf/scripts/extract_form_field_info.py +152 -0
  183. package/.claude/skills/pdf/scripts/fill_fillable_fields.py +114 -0
  184. package/.claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  185. package/.claude/skills/pptx/LICENSE.txt +30 -0
  186. package/.claude/skills/pptx/SKILL.md +484 -0
  187. package/.claude/skills/pptx/html2pptx.md +625 -0
  188. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  189. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  190. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  191. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  192. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  193. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  194. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  195. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  196. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  197. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  198. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  199. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  200. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  201. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  202. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  203. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  204. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  205. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  206. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  207. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  208. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  209. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  210. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  211. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  212. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  213. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  214. package/.claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  215. package/.claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  216. package/.claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  217. package/.claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  218. package/.claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  219. package/.claude/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  220. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  221. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  222. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  223. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  224. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  225. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  226. package/.claude/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  227. package/.claude/skills/pptx/ooxml/scripts/pack.py +159 -0
  228. package/.claude/skills/pptx/ooxml/scripts/unpack.py +29 -0
  229. package/.claude/skills/pptx/ooxml/scripts/validate.py +69 -0
  230. package/.claude/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  231. package/.claude/skills/pptx/ooxml/scripts/validation/base.py +951 -0
  232. package/.claude/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  233. package/.claude/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  234. package/.claude/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  235. package/.claude/skills/pptx/ooxml.md +427 -0
  236. package/.claude/skills/pptx/scripts/html2pptx.js +979 -0
  237. package/.claude/skills/pptx/scripts/inventory.py +1020 -0
  238. package/.claude/skills/pptx/scripts/rearrange.py +231 -0
  239. package/.claude/skills/pptx/scripts/replace.py +385 -0
  240. package/.claude/skills/pptx/scripts/thumbnail.py +450 -0
  241. package/.claude/skills/skill-creator/LICENSE.txt +202 -0
  242. package/.claude/skills/skill-creator/SKILL.md +356 -0
  243. package/.claude/skills/skill-creator/references/output-patterns.md +82 -0
  244. package/.claude/skills/skill-creator/references/workflows.md +28 -0
  245. package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
  246. package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
  247. package/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
  248. package/.claude/skills/slack-gif-creator/LICENSE.txt +202 -0
  249. package/.claude/skills/slack-gif-creator/SKILL.md +254 -0
  250. package/.claude/skills/slack-gif-creator/core/easing.py +234 -0
  251. package/.claude/skills/slack-gif-creator/core/frame_composer.py +176 -0
  252. package/.claude/skills/slack-gif-creator/core/gif_builder.py +269 -0
  253. package/.claude/skills/slack-gif-creator/core/validators.py +136 -0
  254. package/.claude/skills/slack-gif-creator/requirements.txt +4 -0
  255. package/.claude/skills/template/SKILL.md +6 -0
  256. package/.claude/skills/theme-factory/LICENSE.txt +202 -0
  257. package/.claude/skills/theme-factory/SKILL.md +59 -0
  258. package/.claude/skills/theme-factory/theme-showcase.pdf +0 -0
  259. package/.claude/skills/theme-factory/themes/arctic-frost.md +19 -0
  260. package/.claude/skills/theme-factory/themes/botanical-garden.md +19 -0
  261. package/.claude/skills/theme-factory/themes/desert-rose.md +19 -0
  262. package/.claude/skills/theme-factory/themes/forest-canopy.md +19 -0
  263. package/.claude/skills/theme-factory/themes/golden-hour.md +19 -0
  264. package/.claude/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  265. package/.claude/skills/theme-factory/themes/modern-minimalist.md +19 -0
  266. package/.claude/skills/theme-factory/themes/ocean-depths.md +19 -0
  267. package/.claude/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  268. package/.claude/skills/theme-factory/themes/tech-innovation.md +19 -0
  269. package/.claude/skills/web-artifacts-builder/LICENSE.txt +202 -0
  270. package/.claude/skills/web-artifacts-builder/SKILL.md +74 -0
  271. package/.claude/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  272. package/.claude/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  273. package/.claude/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  274. package/.claude/skills/webapp-testing/LICENSE.txt +202 -0
  275. package/.claude/skills/webapp-testing/SKILL.md +96 -0
  276. package/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
  277. package/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
  278. package/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
  279. package/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
  280. package/.claude/skills/xlsx/LICENSE.txt +30 -0
  281. package/.claude/skills/xlsx/SKILL.md +289 -0
  282. package/.claude/skills/xlsx/recalc.py +178 -0
  283. package/.claude-plugin/marketplace.json +2 -2
  284. package/AGENTS.md +165 -86
  285. package/README.md +22 -0
  286. package/cli.js +7 -2
  287. package/development/todos/INDEX.md +10 -1
  288. package/jest.config.js +61 -0
  289. package/lib/commands.js +67 -0
  290. package/lib/migrations.js +154 -0
  291. package/package.json +7 -2
  292. package/scripts/fix-hooks.mjs +97 -0
  293. package/template/.claude/commands/commit-push-pr.md +23 -3
  294. package/template/.claude/hooks/conversation-logger.cjs +222 -0
  295. package/template/.claude/settings.json +114 -45
  296. package/tests/README.md +263 -0
  297. package/tests/commands.test.js +163 -0
  298. package/tests/config.test.js +100 -0
  299. package/tests/marketplace.test.js +304 -0
  300. package/tests/migrations.test.js +187 -0
  301. package/tests/utils.test.js +167 -0
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Excel Formula Recalculation Script
4
+ Recalculates all formulas in an Excel file using LibreOffice
5
+ """
6
+
7
+ import json
8
+ import sys
9
+ import subprocess
10
+ import os
11
+ import platform
12
+ from pathlib import Path
13
+ from openpyxl import load_workbook
14
+
15
+
16
+ def setup_libreoffice_macro():
17
+ """Setup LibreOffice macro for recalculation if not already configured"""
18
+ if platform.system() == 'Darwin':
19
+ macro_dir = os.path.expanduser('~/Library/Application Support/LibreOffice/4/user/basic/Standard')
20
+ else:
21
+ macro_dir = os.path.expanduser('~/.config/libreoffice/4/user/basic/Standard')
22
+
23
+ macro_file = os.path.join(macro_dir, 'Module1.xba')
24
+
25
+ if os.path.exists(macro_file):
26
+ with open(macro_file, 'r') as f:
27
+ if 'RecalculateAndSave' in f.read():
28
+ return True
29
+
30
+ if not os.path.exists(macro_dir):
31
+ subprocess.run(['soffice', '--headless', '--terminate_after_init'],
32
+ capture_output=True, timeout=10)
33
+ os.makedirs(macro_dir, exist_ok=True)
34
+
35
+ macro_content = '''<?xml version="1.0" encoding="UTF-8"?>
36
+ <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
37
+ <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Module1" script:language="StarBasic">
38
+ Sub RecalculateAndSave()
39
+ ThisComponent.calculateAll()
40
+ ThisComponent.store()
41
+ ThisComponent.close(True)
42
+ End Sub
43
+ </script:module>'''
44
+
45
+ try:
46
+ with open(macro_file, 'w') as f:
47
+ f.write(macro_content)
48
+ return True
49
+ except Exception:
50
+ return False
51
+
52
+
53
+ def recalc(filename, timeout=30):
54
+ """
55
+ Recalculate formulas in Excel file and report any errors
56
+
57
+ Args:
58
+ filename: Path to Excel file
59
+ timeout: Maximum time to wait for recalculation (seconds)
60
+
61
+ Returns:
62
+ dict with error locations and counts
63
+ """
64
+ if not Path(filename).exists():
65
+ return {'error': f'File {filename} does not exist'}
66
+
67
+ abs_path = str(Path(filename).absolute())
68
+
69
+ if not setup_libreoffice_macro():
70
+ return {'error': 'Failed to setup LibreOffice macro'}
71
+
72
+ cmd = [
73
+ 'soffice', '--headless', '--norestore',
74
+ 'vnd.sun.star.script:Standard.Module1.RecalculateAndSave?language=Basic&location=application',
75
+ abs_path
76
+ ]
77
+
78
+ # Handle timeout command differences between Linux and macOS
79
+ if platform.system() != 'Windows':
80
+ timeout_cmd = 'timeout' if platform.system() == 'Linux' else None
81
+ if platform.system() == 'Darwin':
82
+ # Check if gtimeout is available on macOS
83
+ try:
84
+ subprocess.run(['gtimeout', '--version'], capture_output=True, timeout=1, check=False)
85
+ timeout_cmd = 'gtimeout'
86
+ except (FileNotFoundError, subprocess.TimeoutExpired):
87
+ pass
88
+
89
+ if timeout_cmd:
90
+ cmd = [timeout_cmd, str(timeout)] + cmd
91
+
92
+ result = subprocess.run(cmd, capture_output=True, text=True)
93
+
94
+ if result.returncode != 0 and result.returncode != 124: # 124 is timeout exit code
95
+ error_msg = result.stderr or 'Unknown error during recalculation'
96
+ if 'Module1' in error_msg or 'RecalculateAndSave' not in error_msg:
97
+ return {'error': 'LibreOffice macro not configured properly'}
98
+ else:
99
+ return {'error': error_msg}
100
+
101
+ # Check for Excel errors in the recalculated file - scan ALL cells
102
+ try:
103
+ wb = load_workbook(filename, data_only=True)
104
+
105
+ excel_errors = ['#VALUE!', '#DIV/0!', '#REF!', '#NAME?', '#NULL!', '#NUM!', '#N/A']
106
+ error_details = {err: [] for err in excel_errors}
107
+ total_errors = 0
108
+
109
+ for sheet_name in wb.sheetnames:
110
+ ws = wb[sheet_name]
111
+ # Check ALL rows and columns - no limits
112
+ for row in ws.iter_rows():
113
+ for cell in row:
114
+ if cell.value is not None and isinstance(cell.value, str):
115
+ for err in excel_errors:
116
+ if err in cell.value:
117
+ location = f"{sheet_name}!{cell.coordinate}"
118
+ error_details[err].append(location)
119
+ total_errors += 1
120
+ break
121
+
122
+ wb.close()
123
+
124
+ # Build result summary
125
+ result = {
126
+ 'status': 'success' if total_errors == 0 else 'errors_found',
127
+ 'total_errors': total_errors,
128
+ 'error_summary': {}
129
+ }
130
+
131
+ # Add non-empty error categories
132
+ for err_type, locations in error_details.items():
133
+ if locations:
134
+ result['error_summary'][err_type] = {
135
+ 'count': len(locations),
136
+ 'locations': locations[:20] # Show up to 20 locations
137
+ }
138
+
139
+ # Add formula count for context - also check ALL cells
140
+ wb_formulas = load_workbook(filename, data_only=False)
141
+ formula_count = 0
142
+ for sheet_name in wb_formulas.sheetnames:
143
+ ws = wb_formulas[sheet_name]
144
+ for row in ws.iter_rows():
145
+ for cell in row:
146
+ if cell.value and isinstance(cell.value, str) and cell.value.startswith('='):
147
+ formula_count += 1
148
+ wb_formulas.close()
149
+
150
+ result['total_formulas'] = formula_count
151
+
152
+ return result
153
+
154
+ except Exception as e:
155
+ return {'error': str(e)}
156
+
157
+
158
+ def main():
159
+ if len(sys.argv) < 2:
160
+ print("Usage: python recalc.py <excel_file> [timeout_seconds]")
161
+ print("\nRecalculates all formulas in an Excel file using LibreOffice")
162
+ print("\nReturns JSON with error details:")
163
+ print(" - status: 'success' or 'errors_found'")
164
+ print(" - total_errors: Total number of Excel errors found")
165
+ print(" - total_formulas: Number of formulas in the file")
166
+ print(" - error_summary: Breakdown by error type with locations")
167
+ print(" - #VALUE!, #DIV/0!, #REF!, #NAME?, #NULL!, #NUM!, #N/A")
168
+ sys.exit(1)
169
+
170
+ filename = sys.argv[1]
171
+ timeout = int(sys.argv[2]) if len(sys.argv) > 2 else 30
172
+
173
+ result = recalc(filename, timeout)
174
+ print(json.dumps(result, indent=2))
175
+
176
+
177
+ if __name__ == '__main__':
178
+ main()
@@ -27,8 +27,8 @@
27
27
  }
28
28
  ],
29
29
  "metadata": {
30
- "version": "1.0.7",
31
- "generated_at": "2026-01-14T12:21:55.220Z",
30
+ "version": "1.0.10",
31
+ "generated_at": "2026-01-14T18:29:51.539Z",
32
32
  "skill_count": 1,
33
33
  "categories": {
34
34
  "tools": {
package/AGENTS.md CHANGED
@@ -2,91 +2,170 @@
2
2
 
3
3
  <skills_system priority="1">
4
4
 
5
- ## Multi-Agent Orchestration
6
-
7
- This project uses **Sumulige Claude (SMC)** for intelligent multi-agent collaboration.
8
-
9
- ### Available Agents
10
-
11
- | Agent | Model | Role |
12
- |-------|-------|------|
13
- | **Conductor** | claude-opus-4.5 | Task coordination and decomposition |
14
- | **Architect** | claude-opus-4.5 | Architecture design and technical decisions |
15
- | **Builder** | claude-opus-4.5 | Code implementation and testing |
16
- | **Reviewer** | claude-opus-4.5 | Code review and quality assurance |
17
- | **Librarian** | claude-opus-4.5 | Documentation and knowledge management |
18
-
19
- ### Usage
20
-
21
- ```bash
22
- # View agent status
23
- smc status
24
-
25
- # Run agent task
26
- smc agent <task>
27
-
28
- # List available skills
29
- smc marketplace:list
30
-
31
- # Install a skill
32
- smc marketplace:install <skill-name>
33
-
34
- # Sync external skills
35
- smc marketplace:sync
36
- ```
37
-
38
- ---
39
-
40
- ## Skills Marketplace
41
-
42
- This project includes a curated skills marketplace with automatic synchronization from external repositories.
43
-
44
- ### Categories
45
-
46
- | Category | Description |
47
- |----------|-------------|
48
- | 🔧 **tools** | CLI tools and utilities |
49
- | 💻 **development** | Language-specific dev assistance |
50
- | **productivity** | Workflow automation |
51
- | 🤖 **automation** | Browser, CI/CD, system automation |
52
- | 📊 **data** | Database, data processing |
53
- | 📚 **documentation** | Docs, diagrams, specs |
54
- | 🎼 **workflow** | Multi-agent orchestration |
55
-
56
- ### Universal Compatibility
57
-
58
- This project follows the **AGENTS.md** standard, adopted by 20,000+ repositories and natively supported by:
59
- - Claude Code
60
- - GitHub Copilot
61
- - Google Gemini
62
- - OpenAI Codex
63
- - Factory Droid
64
- - Cursor
65
- - And more...
66
-
67
- ### Quick Commands
68
-
69
- ```bash
70
- # Initialize SMC in your project
71
- smc init
72
-
73
- # Deploy Claude Code project template
74
- smc template
75
-
76
- # Start Manus-style project planning
77
- smc kickoff
78
- ```
79
-
80
- ---
81
-
82
- ## Project Template Features
83
-
84
- When you run `smc template`, your project gets:
85
-
86
- - **ThinkingLens** - Autonomous memory system for AI
87
- - **Slash Commands** - `/commit`, `/test`, `/review`, `/pr`, etc.
88
- - **RAG System** - Dynamic skill discovery based on task context
89
- - **Hooks** - Automation for code formatting, TODO management, etc.
90
- - **TODO System** - GTD-style task management
5
+ ## Available Skills
6
+
7
+ <!-- SKILLS_TABLE_START -->
8
+ <usage>
9
+ When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.
10
+
11
+ How to use skills:
12
+ - Invoke: Bash("openskills read <skill-name>")
13
+ - The skill content will load with detailed instructions on how to complete the task
14
+ - Base directory provided in output for resolving bundled resources (references/, scripts/, assets/)
15
+
16
+ Usage notes:
17
+ - Only use skills listed in <available_skills> below
18
+ - Do not invoke a skill that is already loaded in your context
19
+ - Each skill invocation is stateless
20
+ </usage>
21
+
22
+ <available_skills>
23
+
24
+ <skill>
25
+ <name>algorithmic-art</name>
26
+ <description>Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.</description>
27
+ <location>project</location>
28
+ </skill>
29
+
30
+ <skill>
31
+ <name>api-tester</name>
32
+ <description></description>
33
+ <location>project</location>
34
+ </skill>
35
+
36
+ <skill>
37
+ <name>brand-guidelines</name>
38
+ <description>Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.</description>
39
+ <location>project</location>
40
+ </skill>
41
+
42
+ <skill>
43
+ <name>canvas-design</name>
44
+ <description>Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.</description>
45
+ <location>project</location>
46
+ </skill>
47
+
48
+ <skill>
49
+ <name>doc-coauthoring</name>
50
+ <description>Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.</description>
51
+ <location>project</location>
52
+ </skill>
53
+
54
+ <skill>
55
+ <name>docx</name>
56
+ <description>"Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"</description>
57
+ <location>project</location>
58
+ </skill>
59
+
60
+ <skill>
61
+ <name>frontend-design</name>
62
+ <description>Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.</description>
63
+ <location>project</location>
64
+ </skill>
65
+
66
+ <skill>
67
+ <name>internal-comms</name>
68
+ <description>A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).</description>
69
+ <location>project</location>
70
+ </skill>
71
+
72
+ <skill>
73
+ <name>mcp-builder</name>
74
+ <description>Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).</description>
75
+ <location>project</location>
76
+ </skill>
77
+
78
+ <skill>
79
+ <name>pdf</name>
80
+ <description>Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.</description>
81
+ <location>project</location>
82
+ </skill>
83
+
84
+ <skill>
85
+ <name>pptx</name>
86
+ <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"</description>
87
+ <location>project</location>
88
+ </skill>
89
+
90
+ <skill>
91
+ <name>skill-creator</name>
92
+ <description>Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.</description>
93
+ <location>project</location>
94
+ </skill>
95
+
96
+ <skill>
97
+ <name>slack-gif-creator</name>
98
+ <description>Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack."</description>
99
+ <location>project</location>
100
+ </skill>
101
+
102
+ <skill>
103
+ <name>template</name>
104
+ <description>Replace with description of the skill and when Claude should use it.</description>
105
+ <location>project</location>
106
+ </skill>
107
+
108
+ <skill>
109
+ <name>theme-factory</name>
110
+ <description>Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.</description>
111
+ <location>project</location>
112
+ </skill>
113
+
114
+ <skill>
115
+ <name>web-artifacts-builder</name>
116
+ <description>Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.</description>
117
+ <location>project</location>
118
+ </skill>
119
+
120
+ <skill>
121
+ <name>webapp-testing</name>
122
+ <description>Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.</description>
123
+ <location>project</location>
124
+ </skill>
125
+
126
+ <skill>
127
+ <name>xlsx</name>
128
+ <description>"Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas"</description>
129
+ <location>project</location>
130
+ </skill>
131
+
132
+ <skill>
133
+ <name>architect</name>
134
+ <description>|</description>
135
+ <location>global</location>
136
+ </skill>
137
+
138
+ <skill>
139
+ <name>builder</name>
140
+ <description>|</description>
141
+ <location>global</location>
142
+ </skill>
143
+
144
+ <skill>
145
+ <name>conductor</name>
146
+ <description>|</description>
147
+ <location>global</location>
148
+ </skill>
149
+
150
+ <skill>
151
+ <name>librarian</name>
152
+ <description>|</description>
153
+ <location>global</location>
154
+ </skill>
155
+
156
+ <skill>
157
+ <name>manus-kickoff</name>
158
+ <description></description>
159
+ <location>global</location>
160
+ </skill>
161
+
162
+ <skill>
163
+ <name>reviewer</name>
164
+ <description>|</description>
165
+ <location>global</location>
166
+ </skill>
167
+
168
+ </available_skills>
169
+ <!-- SKILLS_TABLE_END -->
91
170
 
92
171
  </skills_system>
package/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
 
6
6
  [![npm version](https://badge.fury.io/js/sumulige-claude.svg)](https://www.npmjs.com/package/sumulige-claude)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Tests](https://img.shields.io/badge/tests-78%20passing-brightgreen)](./tests)
8
9
 
9
10
  ---
10
11
 
@@ -230,10 +231,31 @@ smc kickoff
230
231
 
231
232
  ---
232
233
 
234
+ ## Testing / 测试
235
+
236
+ ```bash
237
+ # Run tests / 运行测试
238
+ npm test
239
+
240
+ # Run with coverage / 运行测试并生成覆盖率报告
241
+ npm run test:coverage
242
+ ```
243
+
244
+ **Coverage / 覆盖率**:
245
+ - utils.js: 100%
246
+ - migrations.js: 86.66%
247
+ - config.js: 86.2%
248
+ - Overall: 36.58%
249
+
250
+ See **[tests/README.md](tests/README.md)** for detailed test documentation.
251
+
252
+ ---
253
+
233
254
  ## Documentation / 文档
234
255
 
235
256
  - **[Development Guide / 开发指南](docs/DEVELOPMENT.md)** - Architecture, adding skills, sync mechanism / 架构、添加技能、同步机制
236
257
  - **[Marketplace Guide / 市场指南](docs/MARKETPLACE.md)** - User guide for marketplace features / 市场功能用户指南
258
+ - **[Tests Documentation / 测试文档](tests/README.md)** - Test coverage and strategy / 测试覆盖率和策略
237
259
 
238
260
  ---
239
261
 
package/cli.js CHANGED
@@ -25,7 +25,11 @@ const COMMANDS = {
25
25
  args: ''
26
26
  },
27
27
  sync: {
28
- help: 'Sync to current project',
28
+ help: 'Sync to current project (auto-migrates old format)',
29
+ args: ''
30
+ },
31
+ migrate: {
32
+ help: 'Migrate old hooks format to new',
29
33
  args: ''
30
34
  },
31
35
  template: {
@@ -110,7 +114,8 @@ function showHelp() {
110
114
  console.log('');
111
115
  console.log('Examples:');
112
116
  console.log(' smc init');
113
- console.log(' smc sync');
117
+ console.log(' smc sync # Auto-migrates old format');
118
+ console.log(' smc migrate # Manual migration');
114
119
  console.log(' smc template');
115
120
  console.log(' smc template /path/to/project');
116
121
  console.log(' smc kickoff # Start project planning');
@@ -2,7 +2,16 @@
2
2
 
3
3
  > 本目录由 AI 自动维护,记录项目开发任务和进度
4
4
 
5
- **最后更新**: 2026-01-14
5
+ **最后更新**: 2026-01-15
6
+
7
+ ## 任务总览
8
+
9
+ | 状态 | 目录 | 数量 |
10
+ |------|------|------|
11
+ | 🚧 进行中 | `active/` | 1 |
12
+ | ✅ 已完成 | `completed/` | 1 |
13
+ | 📋 待办 | `backlog/` | 1 |
14
+ | 📦 已归档 | `archived/` | 0 |
6
15
 
7
16
  @version: 1.0.0
8
17
 
package/jest.config.js ADDED
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Jest 配置
3
+ * Sumulige-Claude 测试框架
4
+ */
5
+
6
+ module.exports = {
7
+ // 测试环境
8
+ testEnvironment: 'node',
9
+
10
+ // 测试文件匹配模式
11
+ testMatch: [
12
+ '**/tests/**/*.test.js',
13
+ '**/__tests__/**/*.js'
14
+ ],
15
+
16
+ // 覆盖率收集配置
17
+ collectCoverageFrom: [
18
+ 'lib/**/*.js',
19
+ '!lib/**/*.test.js',
20
+ '!**/node_modules/**'
21
+ ],
22
+
23
+ // 覆盖率阈值
24
+ coverageThreshold: {
25
+ global: {
26
+ branches: 50,
27
+ functions: 50,
28
+ lines: 50,
29
+ statements: 50
30
+ }
31
+ },
32
+
33
+ // 覆盖率报告格式
34
+ coverageReporters: ['text', 'lcov', 'html'],
35
+
36
+ // 覆盖率输出目录
37
+ coverageDirectory: 'coverage',
38
+
39
+ // 是否显示每个测试的耗时
40
+ verbose: true,
41
+
42
+ // 测试超时时间(毫秒)
43
+ testTimeout: 10000,
44
+
45
+ // 模块路径别名(可选)
46
+ moduleNameMapper: {
47
+ '^@/(.*)$': '<rootDir>/$1'
48
+ },
49
+
50
+ // 忽略的目录
51
+ testPathIgnorePatterns: [
52
+ '/node_modules/',
53
+ '/template/',
54
+ '/coverage/'
55
+ ],
56
+
57
+ // 清除 mock
58
+ clearMocks: true,
59
+ resetMocks: true,
60
+ restoreMocks: true
61
+ };