claude-code-templates 1.21.13 → 1.21.14

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 (415) hide show
  1. package/.claude/settings.local.json +8 -2
  2. package/.claude-plugin/marketplace.json +251 -0
  3. package/.github/workflows/component-security-validation.yml +129 -0
  4. package/README.md +13 -6
  5. package/cli-tool/README.md +56 -0
  6. package/cli-tool/bin/create-claude-config.js +2 -0
  7. package/cli-tool/components/.claude-plugin/marketplace.json +92 -0
  8. package/cli-tool/components/agents/development-tools/flutter-go-reviewer.md +163 -0
  9. package/cli-tool/components/agents/development-tools/unused-code-cleaner.md +194 -0
  10. package/cli-tool/components/commands/git-workflow/gemini-review.md +293 -0
  11. package/cli-tool/components/commands/testing/add-mutation-testing.md +2 -2
  12. package/cli-tool/components/commands/testing/add-property-based-testing.md +2 -2
  13. package/cli-tool/components/commands/testing/e2e-setup.md +2 -2
  14. package/cli-tool/components/commands/testing/generate-test-cases.md +2 -2
  15. package/cli-tool/components/commands/testing/generate-tests.md +8 -3
  16. package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +2 -2
  17. package/cli-tool/components/commands/testing/setup-load-testing.md +2 -2
  18. package/cli-tool/components/commands/testing/setup-visual-testing.md +2 -2
  19. package/cli-tool/components/commands/testing/test-automation-orchestrator.md +2 -2
  20. package/cli-tool/components/commands/testing/test-changelog-automation.md +2 -2
  21. package/cli-tool/components/commands/testing/test-coverage.md +2 -2
  22. package/cli-tool/components/commands/testing/test-quality-analyzer.md +2 -2
  23. package/cli-tool/components/commands/testing/testing_plan_integration.md +2 -2
  24. package/cli-tool/components/commands/testing/write-tests.md +2 -2
  25. package/cli-tool/components/commands/utilities/ultra-think.md +10 -5
  26. package/cli-tool/components/hooks/git/validate-branch-name.json +1 -1
  27. package/cli-tool/components/mcps/devtools/chrome-devtools.json +9 -0
  28. package/cli-tool/components/mcps/devtools/grafana.json +15 -0
  29. package/cli-tool/components/mcps/devtools/pulumi.json +9 -0
  30. package/cli-tool/components/mcps/devtools/terraform.json +1 -1
  31. package/cli-tool/components/settings/statusline/context-monitor.py +1 -1
  32. package/cli-tool/components/skills/ANTHROPIC_ATTRIBUTION.md +81 -0
  33. package/cli-tool/components/skills/creative-design/algorithmic-art/LICENSE.txt +202 -0
  34. package/cli-tool/components/skills/creative-design/algorithmic-art/SKILL.md +405 -0
  35. package/cli-tool/components/skills/creative-design/algorithmic-art/templates/generator_template.js +223 -0
  36. package/cli-tool/components/skills/creative-design/algorithmic-art/templates/viewer.html +599 -0
  37. package/cli-tool/components/skills/creative-design/canvas-design/LICENSE.txt +202 -0
  38. package/cli-tool/components/skills/creative-design/canvas-design/SKILL.md +130 -0
  39. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  40. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  41. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  42. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  43. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  44. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  45. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  46. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  47. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  48. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  49. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  50. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  51. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  52. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  53. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  54. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  55. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  56. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  57. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  58. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  59. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  60. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  61. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  62. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  63. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  64. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  65. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  66. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  67. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  68. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  69. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  70. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  71. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  72. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  73. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  74. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  75. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  76. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  77. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  78. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  79. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  80. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  81. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  82. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  83. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  84. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  85. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  86. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  87. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  88. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  89. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  90. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  91. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  92. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  93. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  94. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  95. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  96. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  97. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  98. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  99. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  100. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  101. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  102. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  103. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  104. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  105. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  106. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  107. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  108. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  109. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  110. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  111. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  112. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  113. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  114. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  115. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  116. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  117. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  118. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  119. package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  120. package/cli-tool/components/skills/creative-design/slack-gif-creator/LICENSE.txt +202 -0
  121. package/cli-tool/components/skills/creative-design/slack-gif-creator/SKILL.md +646 -0
  122. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/color_palettes.py +302 -0
  123. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/easing.py +230 -0
  124. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/frame_composer.py +469 -0
  125. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/gif_builder.py +246 -0
  126. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/typography.py +357 -0
  127. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/validators.py +264 -0
  128. package/cli-tool/components/skills/creative-design/slack-gif-creator/core/visual_effects.py +494 -0
  129. package/cli-tool/components/skills/creative-design/slack-gif-creator/requirements.txt +4 -0
  130. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/bounce.py +106 -0
  131. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/explode.py +331 -0
  132. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/fade.py +329 -0
  133. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/flip.py +291 -0
  134. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/kaleidoscope.py +211 -0
  135. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/morph.py +329 -0
  136. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/move.py +293 -0
  137. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/pulse.py +268 -0
  138. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/shake.py +127 -0
  139. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/slide.py +291 -0
  140. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/spin.py +269 -0
  141. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/wiggle.py +300 -0
  142. package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/zoom.py +312 -0
  143. package/cli-tool/components/skills/creative-design/theme-factory/LICENSE.txt +202 -0
  144. package/cli-tool/components/skills/creative-design/theme-factory/SKILL.md +59 -0
  145. package/cli-tool/components/skills/creative-design/theme-factory/theme-showcase.pdf +0 -0
  146. package/cli-tool/components/skills/creative-design/theme-factory/themes/arctic-frost.md +19 -0
  147. package/cli-tool/components/skills/creative-design/theme-factory/themes/botanical-garden.md +19 -0
  148. package/cli-tool/components/skills/creative-design/theme-factory/themes/desert-rose.md +19 -0
  149. package/cli-tool/components/skills/creative-design/theme-factory/themes/forest-canopy.md +19 -0
  150. package/cli-tool/components/skills/creative-design/theme-factory/themes/golden-hour.md +19 -0
  151. package/cli-tool/components/skills/creative-design/theme-factory/themes/midnight-galaxy.md +19 -0
  152. package/cli-tool/components/skills/creative-design/theme-factory/themes/modern-minimalist.md +19 -0
  153. package/cli-tool/components/skills/creative-design/theme-factory/themes/ocean-depths.md +19 -0
  154. package/cli-tool/components/skills/creative-design/theme-factory/themes/sunset-boulevard.md +19 -0
  155. package/cli-tool/components/skills/creative-design/theme-factory/themes/tech-innovation.md +19 -0
  156. package/cli-tool/components/skills/development/artifacts-builder/LICENSE.txt +202 -0
  157. package/cli-tool/components/skills/development/artifacts-builder/SKILL.md +74 -0
  158. package/cli-tool/components/skills/development/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  159. package/cli-tool/components/skills/development/artifacts-builder/scripts/init-artifact.sh +322 -0
  160. package/cli-tool/components/skills/development/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  161. package/cli-tool/components/skills/development/git-commit-helper/SKILL.md +203 -0
  162. package/cli-tool/components/skills/development/mcp-builder/LICENSE.txt +202 -0
  163. package/cli-tool/components/skills/development/mcp-builder/SKILL.md +328 -0
  164. package/cli-tool/components/skills/development/mcp-builder/reference/evaluation.md +602 -0
  165. package/cli-tool/components/skills/development/mcp-builder/reference/mcp_best_practices.md +915 -0
  166. package/cli-tool/components/skills/development/mcp-builder/reference/node_mcp_server.md +916 -0
  167. package/cli-tool/components/skills/development/mcp-builder/reference/python_mcp_server.md +752 -0
  168. package/cli-tool/components/skills/development/mcp-builder/scripts/connections.py +151 -0
  169. package/cli-tool/components/skills/development/mcp-builder/scripts/evaluation.py +373 -0
  170. package/cli-tool/components/skills/development/mcp-builder/scripts/example_evaluation.xml +22 -0
  171. package/cli-tool/components/skills/development/mcp-builder/scripts/requirements.txt +2 -0
  172. package/cli-tool/components/skills/development/skill-creator/LICENSE.txt +202 -0
  173. package/cli-tool/components/skills/development/skill-creator/SKILL.md +209 -0
  174. package/cli-tool/components/skills/development/skill-creator/scripts/init_skill.py +303 -0
  175. package/cli-tool/components/skills/development/skill-creator/scripts/package_skill.py +110 -0
  176. package/cli-tool/components/skills/development/skill-creator/scripts/quick_validate.py +65 -0
  177. package/cli-tool/components/skills/development/webapp-testing/LICENSE.txt +202 -0
  178. package/cli-tool/components/skills/development/webapp-testing/SKILL.md +96 -0
  179. package/cli-tool/components/skills/development/webapp-testing/examples/console_logging.py +35 -0
  180. package/cli-tool/components/skills/development/webapp-testing/examples/element_discovery.py +40 -0
  181. package/cli-tool/components/skills/development/webapp-testing/examples/static_html_automation.py +33 -0
  182. package/cli-tool/components/skills/development/webapp-testing/scripts/with_server.py +106 -0
  183. package/cli-tool/components/skills/document-processing/docx/LICENSE.txt +30 -0
  184. package/cli-tool/components/skills/document-processing/docx/SKILL.md +197 -0
  185. package/cli-tool/components/skills/document-processing/docx/docx-js.md +350 -0
  186. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  187. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  188. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  189. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  190. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  191. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  192. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  193. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  194. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  195. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  196. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  197. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  198. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  199. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  200. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  201. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  202. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  203. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  204. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  205. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  206. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  207. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  208. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  209. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  210. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  211. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  212. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  213. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  214. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  215. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  216. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  217. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/mce/mc.xsd +75 -0
  218. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  219. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  220. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  221. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  222. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  223. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  224. package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  225. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/pack.py +159 -0
  226. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/unpack.py +29 -0
  227. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validate.py +69 -0
  228. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/__init__.py +15 -0
  229. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/base.py +951 -0
  230. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/docx.py +274 -0
  231. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/pptx.py +315 -0
  232. package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/redlining.py +279 -0
  233. package/cli-tool/components/skills/document-processing/docx/ooxml.md +610 -0
  234. package/cli-tool/components/skills/document-processing/docx/scripts/__init__.py +1 -0
  235. package/cli-tool/components/skills/document-processing/docx/scripts/document.py +1276 -0
  236. package/cli-tool/components/skills/document-processing/docx/scripts/templates/comments.xml +3 -0
  237. package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtended.xml +3 -0
  238. package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtensible.xml +3 -0
  239. package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsIds.xml +3 -0
  240. package/cli-tool/components/skills/document-processing/docx/scripts/templates/people.xml +3 -0
  241. package/cli-tool/components/skills/document-processing/docx/scripts/utilities.py +374 -0
  242. package/cli-tool/components/skills/document-processing/pdf-anthropic/LICENSE.txt +30 -0
  243. package/cli-tool/components/skills/document-processing/pdf-anthropic/SKILL.md +294 -0
  244. package/cli-tool/components/skills/document-processing/pdf-anthropic/forms.md +205 -0
  245. package/cli-tool/components/skills/document-processing/pdf-anthropic/reference.md +612 -0
  246. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes.py +70 -0
  247. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes_test.py +226 -0
  248. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_fillable_fields.py +12 -0
  249. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/convert_pdf_to_images.py +35 -0
  250. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/create_validation_image.py +41 -0
  251. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/extract_form_field_info.py +152 -0
  252. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_fillable_fields.py +114 -0
  253. package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_pdf_form_with_annotations.py +108 -0
  254. package/cli-tool/components/skills/document-processing/pdf-processing/FORMS.md +143 -0
  255. package/cli-tool/components/skills/document-processing/pdf-processing/SKILL.md +149 -0
  256. package/cli-tool/components/skills/document-processing/pdf-processing-pro/FORMS.md +610 -0
  257. package/cli-tool/components/skills/document-processing/pdf-processing-pro/OCR.md +137 -0
  258. package/cli-tool/components/skills/document-processing/pdf-processing-pro/SKILL.md +296 -0
  259. package/cli-tool/components/skills/document-processing/pdf-processing-pro/TABLES.md +626 -0
  260. package/cli-tool/components/skills/document-processing/pdf-processing-pro/scripts/analyze_form.py +307 -0
  261. package/cli-tool/components/skills/document-processing/pptx/LICENSE.txt +30 -0
  262. package/cli-tool/components/skills/document-processing/pptx/SKILL.md +484 -0
  263. package/cli-tool/components/skills/document-processing/pptx/html2pptx.md +625 -0
  264. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  265. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  266. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  267. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  268. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  269. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  270. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  271. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  272. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  273. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  274. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  275. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  276. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  277. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  278. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  279. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  280. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  281. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  282. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  283. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  284. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  285. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  286. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  287. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  288. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  289. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  290. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  291. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  292. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  293. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  294. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  295. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  296. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  297. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  298. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  299. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  300. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  301. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  302. package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  303. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/pack.py +159 -0
  304. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/unpack.py +29 -0
  305. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validate.py +69 -0
  306. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/__init__.py +15 -0
  307. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/base.py +951 -0
  308. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/docx.py +274 -0
  309. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/pptx.py +315 -0
  310. package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/redlining.py +279 -0
  311. package/cli-tool/components/skills/document-processing/pptx/ooxml.md +427 -0
  312. package/cli-tool/components/skills/document-processing/pptx/scripts/html2pptx.js +979 -0
  313. package/cli-tool/components/skills/document-processing/pptx/scripts/inventory.py +1020 -0
  314. package/cli-tool/components/skills/document-processing/pptx/scripts/rearrange.py +231 -0
  315. package/cli-tool/components/skills/document-processing/pptx/scripts/replace.py +385 -0
  316. package/cli-tool/components/skills/document-processing/pptx/scripts/thumbnail.py +450 -0
  317. package/cli-tool/components/skills/document-processing/xlsx/LICENSE.txt +30 -0
  318. package/cli-tool/components/skills/document-processing/xlsx/SKILL.md +289 -0
  319. package/cli-tool/components/skills/document-processing/xlsx/recalc.py +178 -0
  320. package/cli-tool/components/skills/enterprise-communication/brand-guidelines/LICENSE.txt +202 -0
  321. package/cli-tool/components/skills/enterprise-communication/brand-guidelines/SKILL.md +73 -0
  322. package/cli-tool/components/skills/enterprise-communication/email-composer/SKILL.md +317 -0
  323. package/cli-tool/components/skills/enterprise-communication/excel-analysis/SKILL.md +247 -0
  324. package/cli-tool/components/skills/enterprise-communication/internal-comms/LICENSE.txt +202 -0
  325. package/cli-tool/components/skills/enterprise-communication/internal-comms/SKILL.md +32 -0
  326. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/3p-updates.md +47 -0
  327. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/company-newsletter.md +65 -0
  328. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/faq-answers.md +30 -0
  329. package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/general-comms.md +16 -0
  330. package/cli-tool/package-lock.json +39 -16
  331. package/cli-tool/package.json +7 -2
  332. package/cli-tool/security-report.json +62361 -0
  333. package/cli-tool/src/analytics-web/chats_mobile.html +17 -16
  334. package/cli-tool/src/console-bridge.js +3 -3
  335. package/cli-tool/src/index.js +157 -10
  336. package/cli-tool/src/plugin-dashboard-web/app.js +806 -0
  337. package/cli-tool/src/plugin-dashboard-web/index.html +292 -0
  338. package/cli-tool/src/plugin-dashboard-web/styles.css +1781 -0
  339. package/cli-tool/src/plugin-dashboard.js +689 -0
  340. package/cli-tool/src/security-audit.js +164 -0
  341. package/cli-tool/src/validation/ARCHITECTURE.md +309 -0
  342. package/cli-tool/src/validation/BaseValidator.js +152 -0
  343. package/cli-tool/src/validation/README.md +543 -0
  344. package/cli-tool/src/validation/ValidationOrchestrator.js +305 -0
  345. package/cli-tool/src/validation/validators/IntegrityValidator.js +338 -0
  346. package/cli-tool/src/validation/validators/ProvenanceValidator.js +399 -0
  347. package/cli-tool/src/validation/validators/ReferenceValidator.js +373 -0
  348. package/cli-tool/src/validation/validators/SemanticValidator.js +449 -0
  349. package/cli-tool/src/validation/validators/StructuralValidator.js +376 -0
  350. package/docs/CLAUDE.md +363 -0
  351. package/docs/api/README.md +297 -0
  352. package/docs/api/package.json +7 -0
  353. package/docs/api/track-download-supabase.js +150 -0
  354. package/docs/blog/README.md +199 -0
  355. package/docs/blog/blog-articles.json +133 -0
  356. package/docs/blog/css/blog-controls.css +254 -0
  357. package/docs/blog/e2b-claude-code-sandbox/index.html +8 -0
  358. package/docs/blog/index.html +81 -124
  359. package/docs/blog/js/blog-loader.js +602 -0
  360. package/docs/blog/nextjs-vercel-claude-code-integration/index.html +8 -0
  361. package/docs/blog/supabase-claude-code-integration/index.html +8 -0
  362. package/docs/component.html +226 -48
  363. package/docs/components.json +61610 -604
  364. package/docs/css/blog.css +292 -0
  365. package/docs/css/component-page.css +840 -3
  366. package/docs/css/plugin-page.css +648 -0
  367. package/docs/css/styles.css +504 -1
  368. package/docs/css/trending.css +110 -6
  369. package/docs/download-stats.html +8 -0
  370. package/docs/index.html +48 -22
  371. package/docs/jobs.html +8 -0
  372. package/docs/js/cart-manager.js +21 -8
  373. package/docs/js/component-page.js +1013 -12
  374. package/docs/js/data-loader.js +11 -8
  375. package/docs/js/index-events.js +305 -53
  376. package/docs/js/plugin-page.js +390 -0
  377. package/docs/js/script.js +50 -3
  378. package/docs/js/search-functionality.js +19 -16
  379. package/docs/js/trending.js +55 -20
  380. package/docs/plugin.html +262 -0
  381. package/docs/sandbox-interface.html +8 -0
  382. package/docs/static/favicon/about.txt +6 -0
  383. package/docs/static/favicon/android-chrome-192x192.png +0 -0
  384. package/docs/static/favicon/android-chrome-512x512.png +0 -0
  385. package/docs/static/favicon/apple-touch-icon.png +0 -0
  386. package/docs/static/favicon/favicon-16x16.png +0 -0
  387. package/docs/static/favicon/favicon-32x32.png +0 -0
  388. package/docs/static/favicon/favicon.ico +0 -0
  389. package/docs/static/favicon/site.webmanifest +1 -0
  390. package/docs/trending-data.json +616 -579
  391. package/docs/trending.html +24 -3
  392. package/docs/vercel.json +12 -0
  393. package/docs/workflows.html +8 -0
  394. package/generate_components_json.py +386 -11
  395. package/package.json +1 -1
  396. package/sync-api.sh +50 -0
  397. package/vercel.json +10 -75
  398. package/ROADMAP.md +0 -278
  399. package/test_serpapi.py +0 -36
  400. /package/cli-tool/components/commands/svelte/{svelte:a11y.md → svelte-a11y.md} +0 -0
  401. /package/cli-tool/components/commands/svelte/{svelte:component.md → svelte-component.md} +0 -0
  402. /package/cli-tool/components/commands/svelte/{svelte:debug.md → svelte-debug.md} +0 -0
  403. /package/cli-tool/components/commands/svelte/{svelte:migrate.md → svelte-migrate.md} +0 -0
  404. /package/cli-tool/components/commands/svelte/{svelte:optimize.md → svelte-optimize.md} +0 -0
  405. /package/cli-tool/components/commands/svelte/{svelte:scaffold.md → svelte-scaffold.md} +0 -0
  406. /package/cli-tool/components/commands/svelte/{svelte:storybook-migrate.md → svelte-storybook-migrate.md} +0 -0
  407. /package/cli-tool/components/commands/svelte/{svelte:storybook-mock.md → svelte-storybook-mock.md} +0 -0
  408. /package/cli-tool/components/commands/svelte/{svelte:storybook-setup.md → svelte-storybook-setup.md} +0 -0
  409. /package/cli-tool/components/commands/svelte/{svelte:storybook-story.md → svelte-storybook-story.md} +0 -0
  410. /package/cli-tool/components/commands/svelte/{svelte:storybook-troubleshoot.md → svelte-storybook-troubleshoot.md} +0 -0
  411. /package/cli-tool/components/commands/svelte/{svelte:storybook.md → svelte-storybook.md} +0 -0
  412. /package/cli-tool/components/commands/svelte/{svelte:test-coverage.md → svelte-test-coverage.md} +0 -0
  413. /package/cli-tool/components/commands/svelte/{svelte:test-fix.md → svelte-test-fix.md} +0 -0
  414. /package/cli-tool/components/commands/svelte/{svelte:test-setup.md → svelte-test-setup.md} +0 -0
  415. /package/cli-tool/components/commands/svelte/{svelte:test.md → svelte-test.md} +0 -0
@@ -4,9 +4,17 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Trending - Claude Code Templates</title>
7
+
8
+ <!-- Favicon -->
9
+ <link rel="icon" type="image/x-icon" href="static/favicon/favicon.ico">
10
+ <link rel="icon" type="image/png" sizes="16x16" href="static/favicon/favicon-16x16.png">
11
+ <link rel="icon" type="image/png" sizes="32x32" href="static/favicon/favicon-32x32.png">
12
+ <link rel="apple-touch-icon" sizes="180x180" href="static/favicon/apple-touch-icon.png">
13
+ <link rel="icon" type="image/png" sizes="192x192" href="static/favicon/android-chrome-192x192.png">
14
+ <link rel="icon" type="image/png" sizes="512x512" href="static/favicon/android-chrome-512x512.png">
15
+
7
16
  <link rel="stylesheet" href="css/styles.css">
8
17
  <link rel="stylesheet" href="css/trending.css">
9
- <link rel="icon" type="image/svg+xml" href="static/img/logo.svg">
10
18
  <link rel="preconnect" href="https://fonts.googleapis.com">
11
19
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12
20
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
@@ -76,7 +84,7 @@
76
84
  <!-- Terminal command header at the top -->
77
85
  <div class="terminal-command-header">
78
86
  <div class="header-content">
79
- <h2 class="search-title"><span class="terminal-dot"></span><strong>Trending </strong><span class="title-params">(components/settings/templates)</span></h2>
87
+ <h2 class="search-title"><span class="terminal-dot"></span><strong>Trending </strong><span class="title-params">(agents/commands/settings/hooks/mcps)</span></h2>
80
88
  <p class="search-subtitle">⎿ Discover what the Claude Code community is using most</p>
81
89
  </div>
82
90
  </div>
@@ -120,7 +128,6 @@
120
128
  <button class="component-tab" data-type="settings">Settings</button>
121
129
  <button class="component-tab" data-type="hooks">Hooks</button>
122
130
  <button class="component-tab" data-type="mcps">MCPs</button>
123
- <button class="component-tab" data-type="templates">Templates</button>
124
131
  </div>
125
132
  </div>
126
133
 
@@ -159,6 +166,20 @@
159
166
  <!-- Popular categories will be populated by JavaScript -->
160
167
  </div>
161
168
  </div>
169
+
170
+ <!-- Top Countries Section -->
171
+ <div class="sidebar-section">
172
+ <div class="sidebar-header">
173
+ <h3 class="sidebar-title">
174
+ <span class="terminal-dot"></span>
175
+ <strong>Top Countries</strong>
176
+ </h3>
177
+ <p class="sidebar-subtitle">Top 5 countries by downloads</p>
178
+ </div>
179
+ <div class="top-countries-list" id="top-countries-list">
180
+ <!-- Top countries will be populated by JavaScript -->
181
+ </div>
182
+ </div>
162
183
  </aside>
163
184
  </div>
164
185
  </div>
package/docs/vercel.json CHANGED
@@ -28,6 +28,18 @@
28
28
  "source": "/templates",
29
29
  "destination": "/index.html"
30
30
  },
31
+ {
32
+ "source": "/plugins",
33
+ "destination": "/index.html"
34
+ },
35
+ {
36
+ "source": "/skills",
37
+ "destination": "/index.html"
38
+ },
39
+ {
40
+ "source": "/plugin/:name",
41
+ "destination": "/plugin.html"
42
+ },
31
43
  {
32
44
  "source": "/component/:type/:name*",
33
45
  "destination": "/component.html"
@@ -4,6 +4,14 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Workflow Builder - Claude Code Templates</title>
7
+ <!-- Favicon -->
8
+ <link rel="icon" type="image/x-icon" href="static/favicon/favicon.ico">
9
+ <link rel="icon" type="image/png" sizes="16x16" href="static/favicon/favicon-16x16.png">
10
+ <link rel="icon" type="image/png" sizes="32x32" href="static/favicon/favicon-32x32.png">
11
+ <link rel="apple-touch-icon" sizes="180x180" href="static/favicon/apple-touch-icon.png">
12
+ <link rel="icon" type="image/png" sizes="192x192" href="static/favicon/android-chrome-192x192.png">
13
+ <link rel="icon" type="image/png" sizes="512x512" href="static/favicon/android-chrome-512x512.png">
14
+
7
15
  <link rel="stylesheet" href="css/styles.css">
8
16
  <link rel="stylesheet" href="css/workflows.css">
9
17
  <link rel="stylesheet" href="css/workflows-modal.css">
@@ -1,12 +1,193 @@
1
1
  import os
2
2
  import json
3
3
  import requests
4
+ import subprocess
4
5
  from collections import defaultdict
5
6
  from dotenv import load_dotenv
7
+ from pathlib import Path
6
8
 
7
9
  # Load environment variables
8
10
  load_dotenv()
9
11
 
12
+ def run_security_validation():
13
+ """
14
+ Run security validation on all components and return the results.
15
+ Returns a dictionary with component paths as keys and security data as values.
16
+ """
17
+ print("🔒 Running security validation on components...")
18
+
19
+ try:
20
+ # Change to cli-tool directory to run npm command
21
+ cli_tool_dir = Path(__file__).parent / 'cli-tool'
22
+
23
+ # Run security audit and generate JSON report
24
+ result = subprocess.run(
25
+ ['npm', 'run', 'security-audit:json'],
26
+ cwd=cli_tool_dir,
27
+ capture_output=True,
28
+ text=True,
29
+ timeout=300 # 5 minute timeout
30
+ )
31
+
32
+ if result.returncode != 0:
33
+ print(f"⚠️ Security validation completed with warnings")
34
+ print(f" stdout: {result.stdout[:200]}")
35
+ print(f" stderr: {result.stderr[:200]}")
36
+ else:
37
+ print("✅ Security validation completed successfully")
38
+
39
+ # Read the generated security report
40
+ security_report_path = cli_tool_dir / 'security-report.json'
41
+
42
+ if not security_report_path.exists():
43
+ print("⚠️ Security report not found, skipping security metadata")
44
+ return {}
45
+
46
+ with open(security_report_path, 'r', encoding='utf-8') as f:
47
+ security_data = json.load(f)
48
+
49
+ # Transform security data into a lookup dictionary
50
+ # Key format: "agents/category/name" -> security metadata
51
+ security_lookup = {}
52
+
53
+ for component_result in security_data.get('components', []):
54
+ component_info = component_result.get('component', {})
55
+ component_path = component_info.get('path', '')
56
+ component_type = component_info.get('type', '')
57
+
58
+ if component_path:
59
+ # Extract category and name from path
60
+ # Path format: components/agents/development-team/frontend-developer.md
61
+ path_parts = component_path.replace('\\', '/').split('/')
62
+
63
+ # Handle both formats: "components/agents/..." and "cli-tool/components/agents/..."
64
+ if 'components' in path_parts:
65
+ components_idx = path_parts.index('components')
66
+ if len(path_parts) > components_idx + 3:
67
+ component_type = path_parts[components_idx + 1] # agents, commands, etc.
68
+ category = path_parts[components_idx + 2]
69
+ file_name = path_parts[components_idx + 3]
70
+ name = os.path.splitext(file_name)[0]
71
+
72
+ # Create lookup key
73
+ key = f"{component_type}/{category}/{name}"
74
+
75
+ # Extract security metadata
76
+ overall = component_result.get('overall', {})
77
+ validators = component_result.get('validators', {})
78
+
79
+ # Build validators object with detailed errors and warnings
80
+ validators_data = {}
81
+ for validator_name, validator_result in validators.items():
82
+ # Process errors to extract line/column information
83
+ processed_errors = []
84
+ for error in validator_result.get('errors', []):
85
+ error_data = {
86
+ 'level': error.get('level', 'error'),
87
+ 'code': error.get('code', ''),
88
+ 'message': error.get('message', ''),
89
+ 'timestamp': error.get('timestamp', '')
90
+ }
91
+
92
+ # Extract metadata with line/column info
93
+ metadata = error.get('metadata', {})
94
+ if metadata:
95
+ error_data['metadata'] = metadata
96
+
97
+ # Extract location info if available
98
+ if 'line' in metadata:
99
+ error_data['line'] = metadata['line']
100
+ if 'column' in metadata:
101
+ error_data['column'] = metadata['column']
102
+ if 'position' in metadata:
103
+ error_data['position'] = metadata['position']
104
+ if 'lineText' in metadata:
105
+ error_data['lineText'] = metadata['lineText']
106
+
107
+ # Extract examples array if present (for patterns with multiple matches)
108
+ if 'examples' in metadata:
109
+ error_data['examples'] = metadata['examples']
110
+
111
+ processed_errors.append(error_data)
112
+
113
+ # Process warnings similarly
114
+ processed_warnings = []
115
+ for warning in validator_result.get('warnings', []):
116
+ warning_data = {
117
+ 'level': warning.get('level', 'warning'),
118
+ 'code': warning.get('code', ''),
119
+ 'message': warning.get('message', ''),
120
+ 'timestamp': warning.get('timestamp', '')
121
+ }
122
+
123
+ # Extract metadata with line/column info
124
+ metadata = warning.get('metadata', {})
125
+ if metadata:
126
+ warning_data['metadata'] = metadata
127
+
128
+ # Extract location info if available
129
+ if 'line' in metadata:
130
+ warning_data['line'] = metadata['line']
131
+ if 'column' in metadata:
132
+ warning_data['column'] = metadata['column']
133
+ if 'position' in metadata:
134
+ warning_data['position'] = metadata['position']
135
+ if 'lineText' in metadata:
136
+ warning_data['lineText'] = metadata['lineText']
137
+
138
+ # Extract examples array if present
139
+ if 'examples' in metadata:
140
+ warning_data['examples'] = metadata['examples']
141
+
142
+ processed_warnings.append(warning_data)
143
+
144
+ validators_data[validator_name] = {
145
+ 'valid': validator_result.get('valid', False),
146
+ 'score': validator_result.get('score', 0),
147
+ 'errorCount': validator_result.get('errorCount', 0),
148
+ 'warningCount': validator_result.get('warningCount', 0),
149
+ 'errors': processed_errors,
150
+ 'warnings': processed_warnings,
151
+ 'info': validator_result.get('info', [])
152
+ }
153
+
154
+ security_lookup[key] = {
155
+ 'validated': True,
156
+ 'valid': overall.get('valid', False),
157
+ 'score': overall.get('score', 0),
158
+ 'errorCount': overall.get('errorCount', 0),
159
+ 'warningCount': overall.get('warningCount', 0),
160
+ 'lastValidated': security_data.get('timestamp', ''),
161
+ 'validators': validators_data
162
+ }
163
+
164
+ # Add hash if available from integrity validator
165
+ integrity_data = validators.get('integrity', {})
166
+ if 'info' in integrity_data:
167
+ for info_item in integrity_data['info']:
168
+ # info_item is a dictionary with code, message, metadata
169
+ if isinstance(info_item, dict):
170
+ metadata = info_item.get('metadata', {})
171
+ if 'fullHash' in metadata:
172
+ security_lookup[key]['hash'] = metadata['fullHash']
173
+ break
174
+ elif 'hash' in metadata:
175
+ security_lookup[key]['hash'] = metadata['hash']
176
+ break
177
+
178
+ print(f"✅ Security metadata extracted for {len(security_lookup)} components")
179
+ return security_lookup
180
+
181
+ except subprocess.TimeoutExpired:
182
+ print("⚠️ Security validation timed out after 5 minutes")
183
+ return {}
184
+ except FileNotFoundError:
185
+ print("⚠️ npm command not found, skipping security validation")
186
+ return {}
187
+ except Exception as e:
188
+ print(f"⚠️ Error running security validation: {e}")
189
+ return {}
190
+
10
191
  def fetch_download_stats():
11
192
  """
12
193
  Fetch download statistics from Supabase
@@ -35,9 +216,9 @@ def fetch_download_stats():
35
216
  all_downloads = []
36
217
  offset = 0
37
218
  limit = 1000
38
-
219
+
39
220
  # Fetch all records with pagination
40
- max_pages = 100 # Safety limit
221
+ max_pages = 200 # Safety limit (200 pages * 1000 records = 200,000 max)
41
222
  for page in range(max_pages):
42
223
  paginated_headers = headers.copy()
43
224
  paginated_headers['Range'] = f'{offset}-{offset + limit - 1}'
@@ -113,6 +294,7 @@ def fetch_download_stats():
113
294
  'setting': 'settings',
114
295
  'hook': 'hooks',
115
296
  'mcp': 'mcps',
297
+ 'skill': 'skills',
116
298
  'template': 'templates'
117
299
  }
118
300
 
@@ -157,6 +339,7 @@ def fetch_download_stats():
157
339
  'setting': 'settings',
158
340
  'hook': 'hooks',
159
341
  'mcp': 'mcps',
342
+ 'skill': 'skills',
160
343
  'template': 'templates'
161
344
  }
162
345
 
@@ -201,12 +384,16 @@ def generate_components_json():
201
384
  """
202
385
  components_base_path = 'cli-tool/components'
203
386
  templates_base_path = 'cli-tool/templates'
387
+ plugins_path = '.claude-plugin/marketplace.json'
204
388
  output_path = 'docs/components.json'
205
- components_data = {'agents': [], 'commands': [], 'mcps': [], 'settings': [], 'hooks': [], 'sandbox': [], 'templates': []}
206
-
389
+ components_data = {'agents': [], 'commands': [], 'mcps': [], 'settings': [], 'hooks': [], 'sandbox': [], 'skills': [], 'templates': [], 'plugins': []}
390
+
391
+ # Run security validation
392
+ security_metadata = run_security_validation()
393
+
207
394
  # Fetch download statistics
208
395
  download_stats = fetch_download_stats()
209
- component_types = ['agents', 'commands', 'mcps', 'settings', 'hooks', 'sandbox']
396
+ component_types = ['agents', 'commands', 'mcps', 'settings', 'hooks', 'sandbox', 'skills']
210
397
 
211
398
  print(f"Starting scan of {components_base_path} and {templates_base_path}...")
212
399
 
@@ -218,7 +405,71 @@ def generate_components_json():
218
405
  continue
219
406
 
220
407
  print(f"Scanning for {component_type} in {type_path}...")
221
-
408
+
409
+ # Special handling for skills - they use SKILL.md inside category/skill directories
410
+ if component_type == 'skills':
411
+ for category in os.listdir(type_path):
412
+ category_path = os.path.join(type_path, category)
413
+ if os.path.isdir(category_path) and not category.endswith('.md'):
414
+ for skill_dir in os.listdir(category_path):
415
+ skill_dir_path = os.path.join(category_path, skill_dir)
416
+ if os.path.isdir(skill_dir_path):
417
+ # Look for SKILL.md inside the skill directory
418
+ skill_file_path = os.path.join(skill_dir_path, 'SKILL.md')
419
+ if os.path.isfile(skill_file_path):
420
+ name = skill_dir # Use directory name as skill name
421
+
422
+ # Read file content
423
+ content = ''
424
+ description = ''
425
+ try:
426
+ with open(skill_file_path, 'r', encoding='utf-8') as f:
427
+ content = f.read()
428
+
429
+ # Extract description from frontmatter if available
430
+ if content.startswith('---'):
431
+ frontmatter_end = content.find('---', 3)
432
+ if frontmatter_end != -1:
433
+ frontmatter = content[3:frontmatter_end]
434
+ for line in frontmatter.split('\n'):
435
+ if line.startswith('description:'):
436
+ description = line.split('description:', 1)[1].strip()
437
+ break
438
+
439
+ except Exception as e:
440
+ print(f"Warning: Could not read file {skill_file_path}: {e}")
441
+
442
+ # Look up download count for this skill
443
+ download_key = f"{component_type}/{category}/{name}"
444
+ downloads = download_stats.get(download_key, 0)
445
+
446
+ # Look up security metadata for this skill
447
+ security_key = f"{component_type}/{category}/{name}"
448
+ security = security_metadata.get(security_key, {
449
+ 'validated': False,
450
+ 'valid': None,
451
+ 'score': None,
452
+ 'errorCount': 0,
453
+ 'warningCount': 0,
454
+ 'lastValidated': None
455
+ })
456
+
457
+ # Path includes category for proper organization
458
+ component = {
459
+ 'name': name, # Just the skill directory name
460
+ 'path': f"{category}/{name}", # category/skill-name format
461
+ 'category': category,
462
+ 'type': 'skill',
463
+ 'content': content,
464
+ 'description': description,
465
+ 'downloads': downloads,
466
+ 'security': security
467
+ }
468
+ components_data[component_type].append(component)
469
+ print(f" Processed skill: {category}/{name}")
470
+ continue # Skip the normal file scanning for skills
471
+
472
+ # Normal scanning for other component types
222
473
  for category in os.listdir(type_path):
223
474
  category_path = os.path.join(type_path, category)
224
475
  if os.path.isdir(category_path):
@@ -262,7 +513,18 @@ def generate_components_json():
262
513
  # The key in download_stats uses the plural form: agents/category/name
263
514
  download_key = f"{component_type}/{category}/{name}"
264
515
  downloads = download_stats.get(download_key, 0)
265
-
516
+
517
+ # Look up security metadata for this component
518
+ security_key = f"{component_type}/{category}/{name}"
519
+ security = security_metadata.get(security_key, {
520
+ 'validated': False,
521
+ 'valid': None,
522
+ 'score': None,
523
+ 'errorCount': 0,
524
+ 'warningCount': 0,
525
+ 'lastValidated': None
526
+ })
527
+
266
528
  component = {
267
529
  'name': name,
268
530
  'path': os.path.join(category, file_name).replace("\\", "/"),
@@ -270,7 +532,8 @@ def generate_components_json():
270
532
  'type': component_type[:-1], # singular form
271
533
  'content': content, # Add file content
272
534
  'description': description, # Add description for MCPs
273
- 'downloads': downloads # Add download count
535
+ 'downloads': downloads, # Add download count
536
+ 'security': security # Add security metadata
274
537
  }
275
538
  components_data[component_type].append(component)
276
539
 
@@ -360,15 +623,110 @@ def generate_components_json():
360
623
  else:
361
624
  print(f"Warning: Templates directory not found: {templates_base_path}")
362
625
 
363
- # Sort components alphabetically
626
+ # Load components metadata from marketplace.json (Claude Code standard)
627
+ components_marketplace_path = 'cli-tool/components/.claude-plugin/marketplace.json'
628
+ components_marketplace = None
629
+ if os.path.isfile(components_marketplace_path):
630
+ print(f"Loading components metadata from {components_marketplace_path}...")
631
+ try:
632
+ with open(components_marketplace_path, 'r', encoding='utf-8') as f:
633
+ components_marketplace = json.load(f)
634
+ print(f"✅ Loaded metadata for {len(components_marketplace.get('agents', []))} agents")
635
+ except Exception as e:
636
+ print(f"⚠️ Error reading components metadata from {components_marketplace_path}: {e}")
637
+
638
+ # Scan plugins from marketplace.json and store marketplace data
639
+ marketplace_full_data = None
640
+ if os.path.isfile(plugins_path):
641
+ print(f"Scanning for plugins in {plugins_path}...")
642
+ try:
643
+ with open(plugins_path, 'r', encoding='utf-8') as f:
644
+ marketplace_data = json.load(f)
645
+
646
+ # Store full marketplace data for inclusion in components.json
647
+ marketplace_full_data = marketplace_data
648
+
649
+ if 'plugins' in marketplace_data:
650
+ for plugin in marketplace_data['plugins']:
651
+ plugin_name = plugin.get('name', '')
652
+ plugin_description = plugin.get('description', '')
653
+ plugin_version = plugin.get('version', '1.0.0')
654
+ plugin_keywords = plugin.get('keywords', [])
655
+ plugin_author = plugin.get('author', {}).get('name', '')
656
+
657
+ # Get component lists with file names
658
+ commands_list = plugin.get('commands', [])
659
+ agents_list = plugin.get('agents', [])
660
+ mcps_list = plugin.get('mcpServers', [])
661
+
662
+ # Extract component names with category/folder from file paths
663
+ def extract_component_with_category(path):
664
+ # Extract category/name from path like "./cli-tool/components/commands/git/feature.md"
665
+ # Result should be "git/feature"
666
+ parts = path.split('/')
667
+ if len(parts) >= 2:
668
+ filename = parts[-1].replace('.md', '').replace('.json', '')
669
+ category = parts[-2]
670
+ return f"{category}/{filename}"
671
+ else:
672
+ # Fallback to just filename if path structure is unexpected
673
+ filename = path.split('/')[-1]
674
+ return filename.replace('.md', '').replace('.json', '')
675
+
676
+ commands_names = [extract_component_with_category(cmd) for cmd in commands_list]
677
+ agents_names = [extract_component_with_category(agent) for agent in agents_list]
678
+ mcps_names = [extract_component_with_category(mcp) for mcp in mcps_list]
679
+
680
+ # Look up download count for this plugin
681
+ plugin_download_key = f"plugins/{plugin_name}"
682
+ plugin_downloads = download_stats.get(plugin_download_key, 0)
683
+
684
+ # Create plugin entry
685
+ plugin_entry = {
686
+ 'name': plugin_name,
687
+ 'id': plugin_name,
688
+ 'type': 'plugin',
689
+ 'description': plugin_description,
690
+ 'version': plugin_version,
691
+ 'keywords': plugin_keywords,
692
+ 'author': plugin_author,
693
+ 'commands': len(commands_list),
694
+ 'agents': len(agents_list),
695
+ 'mcpServers': len(mcps_list),
696
+ 'commandsList': commands_names,
697
+ 'agentsList': agents_names,
698
+ 'mcpServersList': mcps_names,
699
+ 'installCommand': f'/plugin install {plugin_name}@claude-code-templates',
700
+ 'downloads': plugin_downloads
701
+ }
702
+ components_data['plugins'].append(plugin_entry)
703
+ print(f" Processed plugin: {plugin_name}")
704
+
705
+ print(f"✅ Processed {len(components_data['plugins'])} plugins from marketplace.json")
706
+ except Exception as e:
707
+ print(f"⚠️ Error reading plugins from {plugins_path}: {e}")
708
+ else:
709
+ print(f"Warning: Plugins file not found: {plugins_path}")
710
+
711
+ # Sort components alphabetically
364
712
  for component_type in components_data:
365
- if component_type == 'templates':
366
- # Sort templates by name since they don't have path
713
+ if component_type in ['templates', 'plugins']:
714
+ # Sort templates and plugins by name since they don't have path
367
715
  components_data[component_type].sort(key=lambda x: x['name'])
368
716
  else:
369
717
  # Sort other components by path
370
718
  components_data[component_type].sort(key=lambda x: x['path'])
371
719
 
720
+ # Add marketplace metadata (root level - our public marketplace)
721
+ if marketplace_full_data:
722
+ components_data['marketplace'] = marketplace_full_data
723
+ print("✅ Added public marketplace metadata to components.json")
724
+
725
+ # Add components marketplace metadata (Claude Code standard)
726
+ if components_marketplace:
727
+ components_data['componentsMarketplace'] = components_marketplace
728
+ print("✅ Added components marketplace metadata to components.json")
729
+
372
730
  try:
373
731
  with open(output_path, 'w', encoding='utf-8') as f:
374
732
  json.dump(components_data, f, indent=2, ensure_ascii=False)
@@ -377,11 +735,28 @@ def generate_components_json():
377
735
  # Log summary
378
736
  print("\n--- Generation Summary ---")
379
737
  for component_type, components in components_data.items():
738
+ # Skip marketplace metadata in summary (it's not a component type)
739
+ if component_type in ['marketplace', 'componentsMarketplace']:
740
+ continue
741
+
380
742
  print(f" - Found and processed {len(components)} {component_type}")
381
743
  if component_type == 'templates':
382
744
  languages = len([t for t in components if t.get('subtype') == 'language'])
383
745
  frameworks = len([t for t in components if t.get('subtype') == 'framework'])
384
746
  print(f" • {languages} languages, {frameworks} frameworks")
747
+ elif component_type == 'plugins':
748
+ total_commands = sum(p.get('commands', 0) for p in components)
749
+ total_agents = sum(p.get('agents', 0) for p in components)
750
+ total_mcps = sum(p.get('mcpServers', 0) for p in components)
751
+ print(f" • {total_commands} commands, {total_agents} agents, {total_mcps} MCPs")
752
+
753
+ # Security statistics for components with security metadata
754
+ if component_type not in ['templates', 'plugins']:
755
+ validated = len([c for c in components if c.get('security', {}).get('validated', False)])
756
+ valid_components = len([c for c in components if c.get('security', {}).get('valid', False)])
757
+ avg_score = sum(c.get('security', {}).get('score', 0) for c in components if c.get('security', {}).get('validated', False)) / validated if validated > 0 else 0
758
+ print(f" • Security: {validated} validated, {valid_components} passed, avg score: {avg_score:.1f}")
759
+
385
760
  print("--------------------------")
386
761
 
387
762
  except IOError as e:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-templates",
3
- "version": "1.21.13",
3
+ "version": "1.21.14",
4
4
  "description": "Component templates and tracking system for Claude Code",
5
5
  "main": "cli-tool/src/index.js",
6
6
  "bin": {
package/sync-api.sh ADDED
@@ -0,0 +1,50 @@
1
+ #!/bin/bash
2
+
3
+ # sync-api.sh - Sync API files from /api to /docs/api
4
+ # This ensures serverless functions are deployed correctly with Vercel
5
+
6
+ set -e
7
+
8
+ echo "🔄 Syncing API files from /api to /docs/api..."
9
+ echo ""
10
+
11
+ # Colors for output
12
+ GREEN='\033[0;32m'
13
+ BLUE='\033[0;34m'
14
+ NC='\033[0m' # No Color
15
+
16
+ # Check if source files exist
17
+ if [ ! -f "api/track-download-supabase.js" ]; then
18
+ echo "❌ Error: api/track-download-supabase.js not found"
19
+ exit 1
20
+ fi
21
+
22
+ if [ ! -f "api/package.json" ]; then
23
+ echo "❌ Error: api/package.json not found"
24
+ exit 1
25
+ fi
26
+
27
+ # Create docs/api directory if it doesn't exist
28
+ mkdir -p docs/api
29
+
30
+ # Copy files
31
+ echo "${BLUE}📄 Copying track-download-supabase.js...${NC}"
32
+ cp api/track-download-supabase.js docs/api/
33
+ echo "${GREEN}✓ Copied track-download-supabase.js${NC}"
34
+
35
+ echo "${BLUE}📦 Copying package.json...${NC}"
36
+ cp api/package.json docs/api/
37
+ echo "${GREEN}✓ Copied package.json${NC}"
38
+
39
+ echo ""
40
+ echo "${GREEN}✅ Sync completed successfully!${NC}"
41
+ echo ""
42
+ echo "📁 Files synced to docs/api/:"
43
+ ls -lh docs/api/ | grep -E "(track-download-supabase.js|package.json)"
44
+
45
+ echo ""
46
+ echo "📝 Next steps:"
47
+ echo " 1. Review changes: git diff docs/api/"
48
+ echo " 2. Commit changes: git add docs/api/ && git commit -m 'Sync API files'"
49
+ echo " 3. Deploy to Vercel: vercel --prod"
50
+ echo ""