@khalidsaidi/skillrunner 0.1.2 → 0.1.3

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 (1112) hide show
  1. package/README.md +6 -4
  2. package/dist/cli.js +1904 -89
  3. package/dist/cli.js.map +1 -1
  4. package/dist/registry/dist/index.json +1858 -0
  5. package/dist/registry/skills/anthropic-algorithmic-art/SKILL.md +420 -0
  6. package/dist/registry/skills/anthropic-algorithmic-art/upstream/LICENSE.txt +202 -0
  7. package/dist/registry/skills/anthropic-algorithmic-art/upstream/SKILL.md +405 -0
  8. package/dist/registry/skills/anthropic-algorithmic-art/upstream/templates/generator_template.js +223 -0
  9. package/dist/registry/skills/anthropic-algorithmic-art/upstream/templates/viewer.html +599 -0
  10. package/dist/registry/skills/anthropic-brand-guidelines/SKILL.md +88 -0
  11. package/dist/registry/skills/anthropic-brand-guidelines/upstream/LICENSE.txt +202 -0
  12. package/dist/registry/skills/anthropic-brand-guidelines/upstream/SKILL.md +73 -0
  13. package/dist/registry/skills/anthropic-canvas-design/SKILL.md +145 -0
  14. package/dist/registry/skills/anthropic-canvas-design/upstream/LICENSE.txt +202 -0
  15. package/dist/registry/skills/anthropic-canvas-design/upstream/SKILL.md +130 -0
  16. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  17. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  18. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  19. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BigShoulders-OFL.txt +93 -0
  20. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  21. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Boldonse-OFL.txt +93 -0
  22. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Boldonse-Regular.ttf +0 -0
  23. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  24. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  25. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  26. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  27. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  28. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  29. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  30. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/DMMono-OFL.txt +93 -0
  31. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/DMMono-Regular.ttf +0 -0
  32. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/EricaOne-OFL.txt +94 -0
  33. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/EricaOne-Regular.ttf +0 -0
  34. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/GeistMono-Bold.ttf +0 -0
  35. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/GeistMono-OFL.txt +93 -0
  36. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/GeistMono-Regular.ttf +0 -0
  37. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Gloock-OFL.txt +93 -0
  38. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Gloock-Regular.ttf +0 -0
  39. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  40. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  41. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  42. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  43. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  44. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  45. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  46. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  47. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  48. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  49. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  50. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  51. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  52. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  53. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Italiana-OFL.txt +93 -0
  54. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Italiana-Regular.ttf +0 -0
  55. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  56. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  57. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  58. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Jura-Light.ttf +0 -0
  59. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Jura-Medium.ttf +0 -0
  60. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Jura-OFL.txt +93 -0
  61. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  62. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  63. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-Bold.ttf +0 -0
  64. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  65. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-Italic.ttf +0 -0
  66. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-OFL.txt +93 -0
  67. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Lora-Regular.ttf +0 -0
  68. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NationalPark-Bold.ttf +0 -0
  69. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NationalPark-OFL.txt +93 -0
  70. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NationalPark-Regular.ttf +0 -0
  71. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  72. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  73. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Outfit-Bold.ttf +0 -0
  74. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Outfit-OFL.txt +93 -0
  75. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Outfit-Regular.ttf +0 -0
  76. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  77. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PixelifySans-OFL.txt +93 -0
  78. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PoiretOne-OFL.txt +93 -0
  79. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  80. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  81. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/RedHatMono-OFL.txt +93 -0
  82. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  83. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Silkscreen-OFL.txt +93 -0
  84. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  85. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  86. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/SmoochSans-OFL.txt +93 -0
  87. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Tektur-Medium.ttf +0 -0
  88. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Tektur-OFL.txt +93 -0
  89. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/Tektur-Regular.ttf +0 -0
  90. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-Bold.ttf +0 -0
  91. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  92. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-Italic.ttf +0 -0
  93. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-OFL.txt +93 -0
  94. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/WorkSans-Regular.ttf +0 -0
  95. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/YoungSerif-OFL.txt +93 -0
  96. package/dist/registry/skills/anthropic-canvas-design/upstream/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  97. package/dist/registry/skills/anthropic-doc-coauthoring/SKILL.md +391 -0
  98. package/dist/registry/skills/anthropic-doc-coauthoring/upstream/SKILL.md +375 -0
  99. package/dist/registry/skills/anthropic-docx/SKILL.md +496 -0
  100. package/dist/registry/skills/anthropic-docx/upstream/LICENSE.txt +30 -0
  101. package/dist/registry/skills/anthropic-docx/upstream/SKILL.md +481 -0
  102. package/dist/registry/skills/anthropic-docx/upstream/scripts/__init__.py +1 -0
  103. package/dist/registry/skills/anthropic-docx/upstream/scripts/accept_changes.py +135 -0
  104. package/dist/registry/skills/anthropic-docx/upstream/scripts/comment.py +318 -0
  105. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/helpers/__init__.py +0 -0
  106. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/helpers/merge_runs.py +199 -0
  107. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/helpers/simplify_redlines.py +197 -0
  108. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/pack.py +159 -0
  109. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  110. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  111. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  112. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  113. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  114. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  115. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  116. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  117. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  118. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  119. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  120. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  121. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  122. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  123. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  124. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  125. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  126. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  127. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  128. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  129. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  130. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  131. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  132. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  133. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  134. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  135. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  136. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  137. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  138. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  139. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  140. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/mce/mc.xsd +75 -0
  141. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  142. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  143. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  144. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  145. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  146. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  147. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  148. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/soffice.py +183 -0
  149. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/unpack.py +132 -0
  150. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validate.py +111 -0
  151. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/__init__.py +15 -0
  152. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/base.py +847 -0
  153. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/docx.py +446 -0
  154. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/pptx.py +275 -0
  155. package/dist/registry/skills/anthropic-docx/upstream/scripts/office/validators/redlining.py +247 -0
  156. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/comments.xml +3 -0
  157. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/commentsExtended.xml +3 -0
  158. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/commentsExtensible.xml +3 -0
  159. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/commentsIds.xml +3 -0
  160. package/dist/registry/skills/anthropic-docx/upstream/scripts/templates/people.xml +3 -0
  161. package/dist/registry/skills/anthropic-frontend-design/SKILL.md +57 -0
  162. package/dist/registry/skills/anthropic-frontend-design/upstream/LICENSE.txt +177 -0
  163. package/dist/registry/skills/anthropic-frontend-design/upstream/SKILL.md +42 -0
  164. package/dist/registry/skills/anthropic-internal-comms/SKILL.md +47 -0
  165. package/dist/registry/skills/anthropic-internal-comms/upstream/LICENSE.txt +202 -0
  166. package/dist/registry/skills/anthropic-internal-comms/upstream/SKILL.md +32 -0
  167. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/3p-updates.md +47 -0
  168. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/company-newsletter.md +65 -0
  169. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/faq-answers.md +30 -0
  170. package/dist/registry/skills/anthropic-internal-comms/upstream/examples/general-comms.md +16 -0
  171. package/dist/registry/skills/anthropic-mcp-builder/SKILL.md +251 -0
  172. package/dist/registry/skills/anthropic-mcp-builder/upstream/LICENSE.txt +202 -0
  173. package/dist/registry/skills/anthropic-mcp-builder/upstream/SKILL.md +236 -0
  174. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/evaluation.md +602 -0
  175. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/mcp_best_practices.md +249 -0
  176. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/node_mcp_server.md +970 -0
  177. package/dist/registry/skills/anthropic-mcp-builder/upstream/reference/python_mcp_server.md +719 -0
  178. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/connections.py +151 -0
  179. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/evaluation.py +373 -0
  180. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/example_evaluation.xml +22 -0
  181. package/dist/registry/skills/anthropic-mcp-builder/upstream/scripts/requirements.txt +2 -0
  182. package/dist/registry/skills/anthropic-pdf/SKILL.md +329 -0
  183. package/dist/registry/skills/anthropic-pdf/upstream/LICENSE.txt +30 -0
  184. package/dist/registry/skills/anthropic-pdf/upstream/SKILL.md +314 -0
  185. package/dist/registry/skills/anthropic-pdf/upstream/forms.md +294 -0
  186. package/dist/registry/skills/anthropic-pdf/upstream/reference.md +612 -0
  187. package/dist/registry/skills/anthropic-pdf/upstream/scripts/check_bounding_boxes.py +65 -0
  188. package/dist/registry/skills/anthropic-pdf/upstream/scripts/check_fillable_fields.py +11 -0
  189. package/dist/registry/skills/anthropic-pdf/upstream/scripts/convert_pdf_to_images.py +33 -0
  190. package/dist/registry/skills/anthropic-pdf/upstream/scripts/create_validation_image.py +37 -0
  191. package/dist/registry/skills/anthropic-pdf/upstream/scripts/extract_form_field_info.py +122 -0
  192. package/dist/registry/skills/anthropic-pdf/upstream/scripts/extract_form_structure.py +115 -0
  193. package/dist/registry/skills/anthropic-pdf/upstream/scripts/fill_fillable_fields.py +98 -0
  194. package/dist/registry/skills/anthropic-pdf/upstream/scripts/fill_pdf_form_with_annotations.py +107 -0
  195. package/dist/registry/skills/anthropic-pptx/SKILL.md +247 -0
  196. package/dist/registry/skills/anthropic-pptx/upstream/LICENSE.txt +30 -0
  197. package/dist/registry/skills/anthropic-pptx/upstream/SKILL.md +232 -0
  198. package/dist/registry/skills/anthropic-pptx/upstream/editing.md +205 -0
  199. package/dist/registry/skills/anthropic-pptx/upstream/pptxgenjs.md +420 -0
  200. package/dist/registry/skills/anthropic-pptx/upstream/scripts/__init__.py +0 -0
  201. package/dist/registry/skills/anthropic-pptx/upstream/scripts/add_slide.py +195 -0
  202. package/dist/registry/skills/anthropic-pptx/upstream/scripts/clean.py +286 -0
  203. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/helpers/__init__.py +0 -0
  204. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/helpers/merge_runs.py +199 -0
  205. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/helpers/simplify_redlines.py +197 -0
  206. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/pack.py +159 -0
  207. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  208. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  209. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  210. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  211. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  212. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  213. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  214. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  215. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  216. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  217. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  218. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  219. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  220. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  221. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  222. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  223. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  224. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  225. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  226. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  227. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  228. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  229. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  230. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  231. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  232. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  233. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  234. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  235. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  236. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  237. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  238. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/mce/mc.xsd +75 -0
  239. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  240. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  241. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  242. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  243. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  244. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  245. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  246. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/soffice.py +183 -0
  247. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/unpack.py +132 -0
  248. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validate.py +111 -0
  249. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/__init__.py +15 -0
  250. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/base.py +847 -0
  251. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/docx.py +446 -0
  252. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/pptx.py +275 -0
  253. package/dist/registry/skills/anthropic-pptx/upstream/scripts/office/validators/redlining.py +247 -0
  254. package/dist/registry/skills/anthropic-pptx/upstream/scripts/thumbnail.py +289 -0
  255. package/dist/registry/skills/anthropic-skill-creator/SKILL.md +372 -0
  256. package/dist/registry/skills/anthropic-skill-creator/upstream/LICENSE.txt +202 -0
  257. package/dist/registry/skills/anthropic-skill-creator/upstream/SKILL.md +357 -0
  258. package/dist/registry/skills/anthropic-skill-creator/upstream/references/output-patterns.md +82 -0
  259. package/dist/registry/skills/anthropic-skill-creator/upstream/references/workflows.md +28 -0
  260. package/dist/registry/skills/anthropic-skill-creator/upstream/scripts/init_skill.py +303 -0
  261. package/dist/registry/skills/anthropic-skill-creator/upstream/scripts/package_skill.py +110 -0
  262. package/dist/registry/skills/anthropic-skill-creator/upstream/scripts/quick_validate.py +103 -0
  263. package/dist/registry/skills/anthropic-slack-gif-creator/SKILL.md +269 -0
  264. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/LICENSE.txt +202 -0
  265. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/SKILL.md +254 -0
  266. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/easing.py +234 -0
  267. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/frame_composer.py +176 -0
  268. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/gif_builder.py +269 -0
  269. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/core/validators.py +136 -0
  270. package/dist/registry/skills/anthropic-slack-gif-creator/upstream/requirements.txt +4 -0
  271. package/dist/registry/skills/anthropic-theme-factory/SKILL.md +73 -0
  272. package/dist/registry/skills/anthropic-theme-factory/upstream/LICENSE.txt +202 -0
  273. package/dist/registry/skills/anthropic-theme-factory/upstream/SKILL.md +59 -0
  274. package/dist/registry/skills/anthropic-theme-factory/upstream/theme-showcase.pdf +0 -0
  275. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/arctic-frost.md +19 -0
  276. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/botanical-garden.md +19 -0
  277. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/desert-rose.md +19 -0
  278. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/forest-canopy.md +19 -0
  279. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/golden-hour.md +19 -0
  280. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/midnight-galaxy.md +19 -0
  281. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/modern-minimalist.md +19 -0
  282. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/ocean-depths.md +19 -0
  283. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/sunset-boulevard.md +19 -0
  284. package/dist/registry/skills/anthropic-theme-factory/upstream/themes/tech-innovation.md +19 -0
  285. package/dist/registry/skills/anthropic-web-artifacts-builder/SKILL.md +89 -0
  286. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/LICENSE.txt +202 -0
  287. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/SKILL.md +74 -0
  288. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/scripts/bundle-artifact.sh +54 -0
  289. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/scripts/init-artifact.sh +322 -0
  290. package/dist/registry/skills/anthropic-web-artifacts-builder/upstream/scripts/shadcn-components.tar.gz +0 -0
  291. package/dist/registry/skills/anthropic-webapp-testing/SKILL.md +111 -0
  292. package/dist/registry/skills/anthropic-webapp-testing/upstream/LICENSE.txt +202 -0
  293. package/dist/registry/skills/anthropic-webapp-testing/upstream/SKILL.md +96 -0
  294. package/dist/registry/skills/anthropic-webapp-testing/upstream/examples/console_logging.py +35 -0
  295. package/dist/registry/skills/anthropic-webapp-testing/upstream/examples/element_discovery.py +40 -0
  296. package/dist/registry/skills/anthropic-webapp-testing/upstream/examples/static_html_automation.py +33 -0
  297. package/dist/registry/skills/anthropic-webapp-testing/upstream/scripts/with_server.py +106 -0
  298. package/dist/registry/skills/anthropic-xlsx/SKILL.md +307 -0
  299. package/dist/registry/skills/anthropic-xlsx/upstream/LICENSE.txt +30 -0
  300. package/dist/registry/skills/anthropic-xlsx/upstream/SKILL.md +292 -0
  301. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/helpers/__init__.py +0 -0
  302. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/helpers/merge_runs.py +199 -0
  303. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/helpers/simplify_redlines.py +197 -0
  304. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/pack.py +159 -0
  305. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  306. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  307. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  308. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  309. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  310. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  311. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  312. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  313. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  314. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  315. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  316. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  317. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  318. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  319. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  320. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  321. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  322. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  323. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  324. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  325. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  326. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  327. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  328. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  329. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  330. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  331. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  332. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  333. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  334. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  335. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  336. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/mce/mc.xsd +75 -0
  337. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  338. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  339. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  340. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  341. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  342. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  343. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  344. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/soffice.py +183 -0
  345. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/unpack.py +132 -0
  346. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validate.py +111 -0
  347. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/__init__.py +15 -0
  348. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/base.py +847 -0
  349. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/docx.py +446 -0
  350. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/pptx.py +275 -0
  351. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/office/validators/redlining.py +247 -0
  352. package/dist/registry/skills/anthropic-xlsx/upstream/scripts/recalc.py +184 -0
  353. package/dist/registry/skills/changelog-from-commits/SKILL.md +17 -0
  354. package/dist/registry/skills/changelog-from-commits/scripts/check.sh +5 -0
  355. package/dist/registry/skills/changelog-from-commits/scripts/run.sh +25 -0
  356. package/dist/registry/skills/code-review-checklist/SKILL.md +19 -0
  357. package/dist/registry/skills/debugging-playbook/SKILL.md +17 -0
  358. package/dist/registry/skills/dependency-audit-report/SKILL.md +18 -0
  359. package/dist/registry/skills/dependency-audit-report/scripts/check.sh +5 -0
  360. package/dist/registry/skills/dependency-audit-report/scripts/run.sh +9 -0
  361. package/dist/registry/skills/dependency-security-fix/SKILL.md +19 -0
  362. package/dist/registry/skills/dependency-security-fix/scripts/check.sh +8 -0
  363. package/dist/registry/skills/dependency-security-fix/scripts/run.sh +28 -0
  364. package/dist/registry/skills/deployment-checklist/SKILL.md +18 -0
  365. package/dist/registry/skills/docs-styleguide/SKILL.md +16 -0
  366. package/dist/registry/skills/git-commit-style/SKILL.md +16 -0
  367. package/dist/registry/skills/git-status-report/SKILL.md +17 -0
  368. package/dist/registry/skills/git-status-report/scripts/check.sh +5 -0
  369. package/dist/registry/skills/git-status-report/scripts/run.sh +16 -0
  370. package/dist/registry/skills/node-doctor/SKILL.md +31 -0
  371. package/dist/registry/skills/node-doctor/scripts/check.sh +5 -0
  372. package/dist/registry/skills/node-doctor/scripts/run.sh +12 -0
  373. package/dist/registry/skills/openai-cloudflare-deploy/SKILL.md +240 -0
  374. package/dist/registry/skills/openai-cloudflare-deploy/upstream/LICENSE.txt +201 -0
  375. package/dist/registry/skills/openai-cloudflare-deploy/upstream/SKILL.md +224 -0
  376. package/dist/registry/skills/openai-cloudflare-deploy/upstream/agents/openai.yaml +6 -0
  377. package/dist/registry/skills/openai-cloudflare-deploy/upstream/assets/cloudflare-small.svg +3 -0
  378. package/dist/registry/skills/openai-cloudflare-deploy/upstream/assets/cloudflare.png +0 -0
  379. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/README.md +89 -0
  380. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/api.md +190 -0
  381. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/configuration.md +182 -0
  382. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/gotchas.md +158 -0
  383. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/agents-sdk/patterns.md +192 -0
  384. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/README.md +175 -0
  385. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/configuration.md +111 -0
  386. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/dynamic-routing.md +82 -0
  387. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/features.md +96 -0
  388. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/sdk-integration.md +114 -0
  389. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-gateway/troubleshooting.md +88 -0
  390. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/README.md +138 -0
  391. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/api.md +87 -0
  392. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/configuration.md +88 -0
  393. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/gotchas.md +81 -0
  394. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ai-search/patterns.md +85 -0
  395. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/README.md +92 -0
  396. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/api.md +112 -0
  397. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/configuration.md +112 -0
  398. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/gotchas.md +85 -0
  399. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/analytics-engine/patterns.md +83 -0
  400. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/README.md +65 -0
  401. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/api.md +204 -0
  402. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/configuration.md +160 -0
  403. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/gotchas.md +225 -0
  404. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api/patterns.md +204 -0
  405. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/README.md +44 -0
  406. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/api.md +141 -0
  407. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/configuration.md +192 -0
  408. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/gotchas.md +125 -0
  409. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/api-shield/patterns.md +180 -0
  410. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/README.md +90 -0
  411. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/api.md +240 -0
  412. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/configuration.md +197 -0
  413. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/gotchas.md +111 -0
  414. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/argo-smart-routing/patterns.md +104 -0
  415. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/README.md +122 -0
  416. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/api.md +203 -0
  417. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/configuration.md +188 -0
  418. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/gotchas.md +208 -0
  419. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bindings/patterns.md +200 -0
  420. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/README.md +94 -0
  421. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/api.md +169 -0
  422. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/configuration.md +163 -0
  423. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/gotchas.md +114 -0
  424. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/bot-management/patterns.md +182 -0
  425. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/README.md +78 -0
  426. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/api.md +108 -0
  427. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/configuration.md +78 -0
  428. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/gotchas.md +88 -0
  429. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/browser-rendering/patterns.md +91 -0
  430. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/README.md +111 -0
  431. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/api.md +71 -0
  432. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/configuration.md +81 -0
  433. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/gotchas.md +92 -0
  434. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/c3/patterns.md +82 -0
  435. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/README.md +147 -0
  436. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/api.md +194 -0
  437. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/configuration.md +169 -0
  438. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/gotchas.md +132 -0
  439. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cache-reserve/patterns.md +197 -0
  440. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/README.md +85 -0
  441. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/api.md +187 -0
  442. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/configuration.md +188 -0
  443. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/gotchas.md +178 -0
  444. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/containers/patterns.md +202 -0
  445. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/README.md +99 -0
  446. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/api.md +196 -0
  447. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/configuration.md +180 -0
  448. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/gotchas.md +199 -0
  449. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/cron-triggers/patterns.md +190 -0
  450. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/README.md +133 -0
  451. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/api.md +196 -0
  452. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/configuration.md +188 -0
  453. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/gotchas.md +98 -0
  454. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/d1/patterns.md +189 -0
  455. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/README.md +41 -0
  456. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/api.md +164 -0
  457. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/configuration.md +93 -0
  458. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/gotchas.md +107 -0
  459. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/ddos/patterns.md +174 -0
  460. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/README.md +75 -0
  461. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/api.md +102 -0
  462. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/configuration.md +112 -0
  463. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/gotchas.md +150 -0
  464. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/patterns.md +182 -0
  465. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/do-storage/testing.md +183 -0
  466. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/README.md +185 -0
  467. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/api.md +187 -0
  468. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/configuration.md +160 -0
  469. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/gotchas.md +197 -0
  470. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/durable-objects/patterns.md +201 -0
  471. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/README.md +89 -0
  472. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/api.md +195 -0
  473. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/configuration.md +186 -0
  474. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/gotchas.md +196 -0
  475. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-routing/patterns.md +229 -0
  476. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/README.md +151 -0
  477. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/api.md +237 -0
  478. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/configuration.md +112 -0
  479. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/gotchas.md +125 -0
  480. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/email-workers/patterns.md +102 -0
  481. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/README.md +82 -0
  482. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/api.md +143 -0
  483. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/configuration.md +159 -0
  484. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/gotchas.md +77 -0
  485. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/hyperdrive/patterns.md +190 -0
  486. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/README.md +61 -0
  487. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/api.md +96 -0
  488. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/configuration.md +211 -0
  489. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/gotchas.md +99 -0
  490. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/images/patterns.md +115 -0
  491. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/README.md +89 -0
  492. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/api.md +160 -0
  493. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/configuration.md +144 -0
  494. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/gotchas.md +131 -0
  495. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/kv/patterns.md +196 -0
  496. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/README.md +105 -0
  497. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/api.md +187 -0
  498. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/configuration.md +173 -0
  499. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/gotchas.md +160 -0
  500. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/miniflare/patterns.md +181 -0
  501. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/README.md +99 -0
  502. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/api.md +199 -0
  503. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/configuration.md +114 -0
  504. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/gotchas.md +165 -0
  505. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/network-interconnect/patterns.md +166 -0
  506. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/README.md +87 -0
  507. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/api.md +164 -0
  508. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/configuration.md +169 -0
  509. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/gotchas.md +115 -0
  510. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/observability/patterns.md +105 -0
  511. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/README.md +88 -0
  512. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/api.md +204 -0
  513. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/configuration.md +201 -0
  514. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/gotchas.md +203 -0
  515. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages/patterns.md +204 -0
  516. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/README.md +98 -0
  517. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/api.md +143 -0
  518. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/configuration.md +122 -0
  519. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/gotchas.md +94 -0
  520. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pages-functions/patterns.md +137 -0
  521. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/README.md +105 -0
  522. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/api.md +208 -0
  523. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/configuration.md +98 -0
  524. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/gotchas.md +80 -0
  525. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pipelines/patterns.md +87 -0
  526. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/README.md +100 -0
  527. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/api.md +200 -0
  528. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/configuration.md +198 -0
  529. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/gotchas.md +181 -0
  530. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/pulumi/patterns.md +191 -0
  531. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/README.md +96 -0
  532. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/api.md +206 -0
  533. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/configuration.md +144 -0
  534. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/gotchas.md +206 -0
  535. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/queues/patterns.md +220 -0
  536. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/README.md +95 -0
  537. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/api.md +200 -0
  538. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/configuration.md +165 -0
  539. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/gotchas.md +190 -0
  540. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2/patterns.md +193 -0
  541. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/README.md +149 -0
  542. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/api.md +199 -0
  543. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/configuration.md +198 -0
  544. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/gotchas.md +170 -0
  545. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-data-catalog/patterns.md +191 -0
  546. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/README.md +128 -0
  547. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/api.md +158 -0
  548. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/configuration.md +147 -0
  549. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/gotchas.md +212 -0
  550. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/r2-sql/patterns.md +222 -0
  551. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/README.md +65 -0
  552. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/api.md +158 -0
  553. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/configuration.md +137 -0
  554. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/gotchas.md +133 -0
  555. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtime-sfu/patterns.md +174 -0
  556. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/README.md +113 -0
  557. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/api.md +212 -0
  558. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/configuration.md +203 -0
  559. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/gotchas.md +169 -0
  560. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/realtimekit/patterns.md +223 -0
  561. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/README.md +96 -0
  562. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/api.md +198 -0
  563. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/configuration.md +143 -0
  564. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/gotchas.md +194 -0
  565. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/sandbox/patterns.md +201 -0
  566. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/README.md +74 -0
  567. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/api.md +200 -0
  568. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/configuration.md +185 -0
  569. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/gotchas.md +97 -0
  570. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/secrets-store/patterns.md +207 -0
  571. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/README.md +138 -0
  572. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/api.md +183 -0
  573. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/configuration.md +196 -0
  574. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/gotchas.md +174 -0
  575. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/smart-placement/patterns.md +183 -0
  576. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/README.md +68 -0
  577. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/api.md +198 -0
  578. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/configuration.md +227 -0
  579. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/gotchas.md +86 -0
  580. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/snippets/patterns.md +135 -0
  581. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/README.md +52 -0
  582. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/api.md +181 -0
  583. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/configuration.md +194 -0
  584. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/gotchas.md +145 -0
  585. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/spectrum/patterns.md +196 -0
  586. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/README.md +65 -0
  587. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/api.md +199 -0
  588. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/configuration.md +186 -0
  589. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/gotchas.md +162 -0
  590. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/static-assets/patterns.md +189 -0
  591. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/README.md +114 -0
  592. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/api-live.md +195 -0
  593. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/api.md +199 -0
  594. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/configuration.md +141 -0
  595. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/gotchas.md +130 -0
  596. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/stream/patterns.md +184 -0
  597. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/README.md +89 -0
  598. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/api.md +200 -0
  599. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/configuration.md +176 -0
  600. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/gotchas.md +192 -0
  601. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tail-workers/patterns.md +180 -0
  602. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/README.md +102 -0
  603. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/api.md +178 -0
  604. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/configuration.md +197 -0
  605. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/gotchas.md +150 -0
  606. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/terraform/patterns.md +174 -0
  607. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/README.md +129 -0
  608. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/api.md +193 -0
  609. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/configuration.md +157 -0
  610. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/gotchas.md +147 -0
  611. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/networking.md +168 -0
  612. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/tunnel/patterns.md +192 -0
  613. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/README.md +82 -0
  614. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/api.md +239 -0
  615. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/configuration.md +179 -0
  616. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/gotchas.md +231 -0
  617. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turn/patterns.md +213 -0
  618. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/README.md +99 -0
  619. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/api.md +240 -0
  620. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/configuration.md +222 -0
  621. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/gotchas.md +218 -0
  622. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/turnstile/patterns.md +193 -0
  623. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/README.md +133 -0
  624. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/api.md +88 -0
  625. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/configuration.md +88 -0
  626. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/gotchas.md +76 -0
  627. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/vectorize/patterns.md +90 -0
  628. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/README.md +113 -0
  629. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/api.md +202 -0
  630. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/configuration.md +203 -0
  631. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/gotchas.md +204 -0
  632. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/waf/patterns.md +197 -0
  633. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/README.md +140 -0
  634. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/configuration.md +76 -0
  635. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/gotchas.md +82 -0
  636. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/integration.md +60 -0
  637. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/web-analytics/patterns.md +91 -0
  638. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/README.md +78 -0
  639. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/api.md +185 -0
  640. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/configuration.md +183 -0
  641. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/gotchas.md +139 -0
  642. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workerd/patterns.md +192 -0
  643. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/README.md +108 -0
  644. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/api.md +195 -0
  645. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/configuration.md +185 -0
  646. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/frameworks.md +197 -0
  647. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/gotchas.md +136 -0
  648. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers/patterns.md +198 -0
  649. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/README.md +197 -0
  650. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/api.md +112 -0
  651. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/configuration.md +97 -0
  652. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/gotchas.md +114 -0
  653. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-ai/patterns.md +120 -0
  654. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/README.md +89 -0
  655. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/api.md +196 -0
  656. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/configuration.md +167 -0
  657. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/gotchas.md +134 -0
  658. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-for-platforms/patterns.md +188 -0
  659. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/README.md +127 -0
  660. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/api.md +101 -0
  661. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/configuration.md +163 -0
  662. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/gotchas.md +88 -0
  663. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-playground/patterns.md +132 -0
  664. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/README.md +127 -0
  665. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/api.md +202 -0
  666. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/configuration.md +147 -0
  667. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/gotchas.md +167 -0
  668. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workers-vpc/patterns.md +209 -0
  669. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/README.md +69 -0
  670. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/api.md +185 -0
  671. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/configuration.md +151 -0
  672. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/gotchas.md +97 -0
  673. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/workflows/patterns.md +175 -0
  674. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/README.md +141 -0
  675. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/api.md +188 -0
  676. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/auth.md +73 -0
  677. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/configuration.md +197 -0
  678. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/gotchas.md +197 -0
  679. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/wrangler/patterns.md +209 -0
  680. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  681. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/README.md +111 -0
  682. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/api.md +112 -0
  683. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/configuration.md +90 -0
  684. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/gotchas.md +81 -0
  685. package/dist/registry/skills/openai-cloudflare-deploy/upstream/references/zaraz/patterns.md +74 -0
  686. package/dist/registry/skills/openai-develop-web-game/SKILL.md +164 -0
  687. package/dist/registry/skills/openai-develop-web-game/upstream/LICENSE.txt +201 -0
  688. package/dist/registry/skills/openai-develop-web-game/upstream/SKILL.md +149 -0
  689. package/dist/registry/skills/openai-develop-web-game/upstream/agents/openai.yaml +6 -0
  690. package/dist/registry/skills/openai-develop-web-game/upstream/assets/game-small.svg +4 -0
  691. package/dist/registry/skills/openai-develop-web-game/upstream/assets/game.png +0 -0
  692. package/dist/registry/skills/openai-develop-web-game/upstream/references/action_payloads.json +7 -0
  693. package/dist/registry/skills/openai-develop-web-game/upstream/scripts/web_game_playwright_client.js +356 -0
  694. package/dist/registry/skills/openai-doc/SKILL.md +95 -0
  695. package/dist/registry/skills/openai-doc/upstream/LICENSE.txt +201 -0
  696. package/dist/registry/skills/openai-doc/upstream/SKILL.md +80 -0
  697. package/dist/registry/skills/openai-doc/upstream/agents/openai.yaml +6 -0
  698. package/dist/registry/skills/openai-doc/upstream/assets/doc-small.svg +3 -0
  699. package/dist/registry/skills/openai-doc/upstream/assets/doc.png +0 -0
  700. package/dist/registry/skills/openai-doc/upstream/scripts/render_docx.py +296 -0
  701. package/dist/registry/skills/openai-figma/SKILL.md +58 -0
  702. package/dist/registry/skills/openai-figma/upstream/LICENSE.txt +202 -0
  703. package/dist/registry/skills/openai-figma/upstream/SKILL.md +42 -0
  704. package/dist/registry/skills/openai-figma/upstream/agents/openai.yaml +14 -0
  705. package/dist/registry/skills/openai-figma/upstream/assets/figma-small.svg +3 -0
  706. package/dist/registry/skills/openai-figma/upstream/assets/figma.png +0 -0
  707. package/dist/registry/skills/openai-figma/upstream/assets/icon.svg +28 -0
  708. package/dist/registry/skills/openai-figma/upstream/references/figma-mcp-config.md +35 -0
  709. package/dist/registry/skills/openai-figma/upstream/references/figma-tools-and-prompts.md +34 -0
  710. package/dist/registry/skills/openai-figma-implement-design/SKILL.md +279 -0
  711. package/dist/registry/skills/openai-figma-implement-design/upstream/LICENSE.txt +202 -0
  712. package/dist/registry/skills/openai-figma-implement-design/upstream/SKILL.md +264 -0
  713. package/dist/registry/skills/openai-figma-implement-design/upstream/agents/openai.yaml +14 -0
  714. package/dist/registry/skills/openai-figma-implement-design/upstream/assets/figma-small.svg +3 -0
  715. package/dist/registry/skills/openai-figma-implement-design/upstream/assets/figma.png +0 -0
  716. package/dist/registry/skills/openai-figma-implement-design/upstream/assets/icon.svg +28 -0
  717. package/dist/registry/skills/openai-gh-address-comments/SKILL.md +39 -0
  718. package/dist/registry/skills/openai-gh-address-comments/upstream/LICENSE.txt +202 -0
  719. package/dist/registry/skills/openai-gh-address-comments/upstream/SKILL.md +25 -0
  720. package/dist/registry/skills/openai-gh-address-comments/upstream/agents/openai.yaml +6 -0
  721. package/dist/registry/skills/openai-gh-address-comments/upstream/assets/github-small.svg +3 -0
  722. package/dist/registry/skills/openai-gh-address-comments/upstream/assets/github.png +0 -0
  723. package/dist/registry/skills/openai-gh-address-comments/upstream/scripts/fetch_comments.py +237 -0
  724. package/dist/registry/skills/openai-gh-fix-ci/SKILL.md +84 -0
  725. package/dist/registry/skills/openai-gh-fix-ci/upstream/LICENSE.txt +201 -0
  726. package/dist/registry/skills/openai-gh-fix-ci/upstream/SKILL.md +69 -0
  727. package/dist/registry/skills/openai-gh-fix-ci/upstream/agents/openai.yaml +6 -0
  728. package/dist/registry/skills/openai-gh-fix-ci/upstream/assets/github-small.svg +3 -0
  729. package/dist/registry/skills/openai-gh-fix-ci/upstream/assets/github.png +0 -0
  730. package/dist/registry/skills/openai-gh-fix-ci/upstream/scripts/inspect_pr_checks.py +509 -0
  731. package/dist/registry/skills/openai-imagegen/SKILL.md +189 -0
  732. package/dist/registry/skills/openai-imagegen/upstream/LICENSE.txt +201 -0
  733. package/dist/registry/skills/openai-imagegen/upstream/SKILL.md +174 -0
  734. package/dist/registry/skills/openai-imagegen/upstream/agents/openai.yaml +6 -0
  735. package/dist/registry/skills/openai-imagegen/upstream/assets/imagegen-small.svg +5 -0
  736. package/dist/registry/skills/openai-imagegen/upstream/assets/imagegen.png +0 -0
  737. package/dist/registry/skills/openai-imagegen/upstream/references/cli.md +132 -0
  738. package/dist/registry/skills/openai-imagegen/upstream/references/codex-network.md +28 -0
  739. package/dist/registry/skills/openai-imagegen/upstream/references/image-api.md +36 -0
  740. package/dist/registry/skills/openai-imagegen/upstream/references/prompting.md +81 -0
  741. package/dist/registry/skills/openai-imagegen/upstream/references/sample-prompts.md +384 -0
  742. package/dist/registry/skills/openai-imagegen/upstream/scripts/image_gen.py +876 -0
  743. package/dist/registry/skills/openai-jupyter-notebook/SKILL.md +122 -0
  744. package/dist/registry/skills/openai-jupyter-notebook/upstream/LICENSE.txt +201 -0
  745. package/dist/registry/skills/openai-jupyter-notebook/upstream/SKILL.md +107 -0
  746. package/dist/registry/skills/openai-jupyter-notebook/upstream/agents/openai.yaml +6 -0
  747. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/experiment-template.ipynb +110 -0
  748. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/jupyter-small.svg +3 -0
  749. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/jupyter.png +0 -0
  750. package/dist/registry/skills/openai-jupyter-notebook/upstream/assets/tutorial-template.ipynb +107 -0
  751. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/experiment-patterns.md +10 -0
  752. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/notebook-structure.md +17 -0
  753. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/quality-checklist.md +11 -0
  754. package/dist/registry/skills/openai-jupyter-notebook/upstream/references/tutorial-patterns.md +9 -0
  755. package/dist/registry/skills/openai-jupyter-notebook/upstream/scripts/new_notebook.py +130 -0
  756. package/dist/registry/skills/openai-linear/SKILL.md +101 -0
  757. package/dist/registry/skills/openai-linear/upstream/LICENSE.txt +202 -0
  758. package/dist/registry/skills/openai-linear/upstream/SKILL.md +87 -0
  759. package/dist/registry/skills/openai-linear/upstream/agents/openai.yaml +14 -0
  760. package/dist/registry/skills/openai-linear/upstream/assets/linear-small.svg +5 -0
  761. package/dist/registry/skills/openai-linear/upstream/assets/linear.png +0 -0
  762. package/dist/registry/skills/openai-netlify-deploy/SKILL.md +263 -0
  763. package/dist/registry/skills/openai-netlify-deploy/upstream/LICENSE.txt +201 -0
  764. package/dist/registry/skills/openai-netlify-deploy/upstream/SKILL.md +247 -0
  765. package/dist/registry/skills/openai-netlify-deploy/upstream/agents/openai.yaml +6 -0
  766. package/dist/registry/skills/openai-netlify-deploy/upstream/assets/netlify-small.svg +11 -0
  767. package/dist/registry/skills/openai-netlify-deploy/upstream/assets/netlify.png +0 -0
  768. package/dist/registry/skills/openai-netlify-deploy/upstream/references/cli-commands.md +162 -0
  769. package/dist/registry/skills/openai-netlify-deploy/upstream/references/deployment-patterns.md +303 -0
  770. package/dist/registry/skills/openai-netlify-deploy/upstream/references/netlify-toml.md +259 -0
  771. package/dist/registry/skills/openai-notion-knowledge-capture/SKILL.md +70 -0
  772. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/LICENSE.txt +7 -0
  773. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/SKILL.md +56 -0
  774. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/agents/openai.yaml +14 -0
  775. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/assets/notion-small.svg +11 -0
  776. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/assets/notion.png +0 -0
  777. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/evaluations/README.md +95 -0
  778. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/evaluations/conversation-to-wiki.json +31 -0
  779. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/evaluations/decision-record.json +31 -0
  780. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/examples/conversation-to-faq.md +226 -0
  781. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/examples/decision-capture.md +126 -0
  782. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/examples/how-to-guide.md +118 -0
  783. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/database-best-practices.md +112 -0
  784. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/decision-log-database.md +58 -0
  785. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/documentation-database.md +93 -0
  786. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/faq-database.md +57 -0
  787. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/how-to-guide-database.md +38 -0
  788. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/learning-database.md +35 -0
  789. package/dist/registry/skills/openai-notion-knowledge-capture/upstream/reference/team-wiki-database.md +27 -0
  790. package/dist/registry/skills/openai-notion-meeting-intelligence/SKILL.md +74 -0
  791. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/LICENSE.txt +7 -0
  792. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/SKILL.md +60 -0
  793. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/agents/openai.yaml +14 -0
  794. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/assets/notion-small.svg +11 -0
  795. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/assets/notion.png +0 -0
  796. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/evaluations/README.md +101 -0
  797. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/evaluations/decision-meeting-prep.json +35 -0
  798. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/evaluations/status-meeting-prep.json +35 -0
  799. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/customer-meeting.md +125 -0
  800. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/executive-review.md +78 -0
  801. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/project-decision.md +431 -0
  802. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/examples/sprint-planning.md +80 -0
  803. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/brainstorming-template.md +81 -0
  804. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/decision-meeting-template.md +94 -0
  805. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/one-on-one-template.md +58 -0
  806. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/retrospective-template.md +58 -0
  807. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/sprint-planning-template.md +68 -0
  808. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/status-update-template.md +74 -0
  809. package/dist/registry/skills/openai-notion-meeting-intelligence/upstream/reference/template-selection-guide.md +56 -0
  810. package/dist/registry/skills/openai-notion-research-documentation/SKILL.md +73 -0
  811. package/dist/registry/skills/openai-notion-research-documentation/upstream/LICENSE.txt +7 -0
  812. package/dist/registry/skills/openai-notion-research-documentation/upstream/SKILL.md +59 -0
  813. package/dist/registry/skills/openai-notion-research-documentation/upstream/agents/openai.yaml +14 -0
  814. package/dist/registry/skills/openai-notion-research-documentation/upstream/assets/notion-small.svg +11 -0
  815. package/dist/registry/skills/openai-notion-research-documentation/upstream/assets/notion.png +0 -0
  816. package/dist/registry/skills/openai-notion-research-documentation/upstream/evaluations/README.md +109 -0
  817. package/dist/registry/skills/openai-notion-research-documentation/upstream/evaluations/basic-research.json +28 -0
  818. package/dist/registry/skills/openai-notion-research-documentation/upstream/evaluations/research-to-database.json +29 -0
  819. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/competitor-analysis.md +283 -0
  820. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/market-research.md +62 -0
  821. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/technical-investigation.md +233 -0
  822. package/dist/registry/skills/openai-notion-research-documentation/upstream/examples/trip-planning.md +128 -0
  823. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/advanced-search.md +212 -0
  824. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/citations.md +190 -0
  825. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comparison-format.md +37 -0
  826. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comparison-template.md +44 -0
  827. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comprehensive-report-format.md +41 -0
  828. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/comprehensive-report-template.md +64 -0
  829. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/format-selection-guide.md +95 -0
  830. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/quick-brief-format.md +37 -0
  831. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/quick-brief-template.md +25 -0
  832. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/research-summary-format.md +33 -0
  833. package/dist/registry/skills/openai-notion-research-documentation/upstream/reference/research-summary-template.md +49 -0
  834. package/dist/registry/skills/openai-notion-spec-to-implementation/SKILL.md +72 -0
  835. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/LICENSE.txt +7 -0
  836. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/SKILL.md +58 -0
  837. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/agents/openai.yaml +14 -0
  838. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/assets/notion-small.svg +11 -0
  839. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/assets/notion.png +0 -0
  840. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/evaluations/README.md +120 -0
  841. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/evaluations/basic-spec-implementation.json +32 -0
  842. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/evaluations/spec-to-tasks.json +35 -0
  843. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/examples/api-feature.md +461 -0
  844. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/examples/database-migration.md +81 -0
  845. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/examples/ui-component.md +68 -0
  846. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/milestone-summary-template.md +27 -0
  847. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/progress-tracking.md +458 -0
  848. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/progress-update-template.md +25 -0
  849. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/quick-implementation-plan.md +26 -0
  850. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/spec-parsing.md +383 -0
  851. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/standard-implementation-plan.md +146 -0
  852. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/task-creation-template.md +34 -0
  853. package/dist/registry/skills/openai-notion-spec-to-implementation/upstream/reference/task-creation.md +441 -0
  854. package/dist/registry/skills/openai-openai-docs/SKILL.md +71 -0
  855. package/dist/registry/skills/openai-openai-docs/upstream/LICENSE.txt +201 -0
  856. package/dist/registry/skills/openai-openai-docs/upstream/SKILL.md +56 -0
  857. package/dist/registry/skills/openai-openai-docs/upstream/agents/openai.yaml +14 -0
  858. package/dist/registry/skills/openai-openai-docs/upstream/assets/openai-small.svg +3 -0
  859. package/dist/registry/skills/openai-openai-docs/upstream/assets/openai.png +0 -0
  860. package/dist/registry/skills/openai-pdf/SKILL.md +82 -0
  861. package/dist/registry/skills/openai-pdf/upstream/LICENSE.txt +201 -0
  862. package/dist/registry/skills/openai-pdf/upstream/SKILL.md +67 -0
  863. package/dist/registry/skills/openai-pdf/upstream/agents/openai.yaml +5 -0
  864. package/dist/registry/skills/openai-pdf/upstream/assets/pdf.png +0 -0
  865. package/dist/registry/skills/openai-playwright/SKILL.md +162 -0
  866. package/dist/registry/skills/openai-playwright/upstream/LICENSE.txt +201 -0
  867. package/dist/registry/skills/openai-playwright/upstream/NOTICE.txt +14 -0
  868. package/dist/registry/skills/openai-playwright/upstream/SKILL.md +147 -0
  869. package/dist/registry/skills/openai-playwright/upstream/agents/openai.yaml +6 -0
  870. package/dist/registry/skills/openai-playwright/upstream/assets/playwright-small.svg +3 -0
  871. package/dist/registry/skills/openai-playwright/upstream/assets/playwright.png +0 -0
  872. package/dist/registry/skills/openai-playwright/upstream/references/cli.md +116 -0
  873. package/dist/registry/skills/openai-playwright/upstream/references/workflows.md +95 -0
  874. package/dist/registry/skills/openai-playwright/upstream/scripts/playwright_cli.sh +25 -0
  875. package/dist/registry/skills/openai-render-deploy/SKILL.md +495 -0
  876. package/dist/registry/skills/openai-render-deploy/upstream/LICENSE.txt +201 -0
  877. package/dist/registry/skills/openai-render-deploy/upstream/SKILL.md +479 -0
  878. package/dist/registry/skills/openai-render-deploy/upstream/agents/openai.yaml +14 -0
  879. package/dist/registry/skills/openai-render-deploy/upstream/assets/docker.yaml +62 -0
  880. package/dist/registry/skills/openai-render-deploy/upstream/assets/go-api.yaml +35 -0
  881. package/dist/registry/skills/openai-render-deploy/upstream/assets/nextjs-postgres.yaml +35 -0
  882. package/dist/registry/skills/openai-render-deploy/upstream/assets/node-express.yaml +25 -0
  883. package/dist/registry/skills/openai-render-deploy/upstream/assets/python-django.yaml +89 -0
  884. package/dist/registry/skills/openai-render-deploy/upstream/assets/render-small.svg +3 -0
  885. package/dist/registry/skills/openai-render-deploy/upstream/assets/render.png +0 -0
  886. package/dist/registry/skills/openai-render-deploy/upstream/assets/static-site.yaml +54 -0
  887. package/dist/registry/skills/openai-render-deploy/upstream/references/blueprint-spec.md +718 -0
  888. package/dist/registry/skills/openai-render-deploy/upstream/references/codebase-analysis.md +49 -0
  889. package/dist/registry/skills/openai-render-deploy/upstream/references/configuration-guide.md +603 -0
  890. package/dist/registry/skills/openai-render-deploy/upstream/references/deployment-details.md +224 -0
  891. package/dist/registry/skills/openai-render-deploy/upstream/references/direct-creation.md +113 -0
  892. package/dist/registry/skills/openai-render-deploy/upstream/references/error-patterns.md +13 -0
  893. package/dist/registry/skills/openai-render-deploy/upstream/references/post-deploy-checks.md +36 -0
  894. package/dist/registry/skills/openai-render-deploy/upstream/references/runtimes.md +473 -0
  895. package/dist/registry/skills/openai-render-deploy/upstream/references/service-types.md +450 -0
  896. package/dist/registry/skills/openai-render-deploy/upstream/references/troubleshooting-basics.md +36 -0
  897. package/dist/registry/skills/openai-screenshot/SKILL.md +282 -0
  898. package/dist/registry/skills/openai-screenshot/upstream/LICENSE.txt +201 -0
  899. package/dist/registry/skills/openai-screenshot/upstream/SKILL.md +267 -0
  900. package/dist/registry/skills/openai-screenshot/upstream/agents/openai.yaml +6 -0
  901. package/dist/registry/skills/openai-screenshot/upstream/assets/screenshot-small.svg +5 -0
  902. package/dist/registry/skills/openai-screenshot/upstream/assets/screenshot.png +0 -0
  903. package/dist/registry/skills/openai-screenshot/upstream/scripts/ensure_macos_permissions.sh +54 -0
  904. package/dist/registry/skills/openai-screenshot/upstream/scripts/macos_display_info.swift +22 -0
  905. package/dist/registry/skills/openai-screenshot/upstream/scripts/macos_permissions.swift +40 -0
  906. package/dist/registry/skills/openai-screenshot/upstream/scripts/macos_window_info.swift +126 -0
  907. package/dist/registry/skills/openai-screenshot/upstream/scripts/take_screenshot.ps1 +163 -0
  908. package/dist/registry/skills/openai-screenshot/upstream/scripts/take_screenshot.py +585 -0
  909. package/dist/registry/skills/openai-security-best-practices/SKILL.md +102 -0
  910. package/dist/registry/skills/openai-security-best-practices/upstream/LICENSE.txt +201 -0
  911. package/dist/registry/skills/openai-security-best-practices/upstream/SKILL.md +86 -0
  912. package/dist/registry/skills/openai-security-best-practices/upstream/agents/openai.yaml +4 -0
  913. package/dist/registry/skills/openai-security-best-practices/upstream/references/golang-general-backend-security.md +826 -0
  914. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-express-web-server-security.md +1158 -0
  915. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-general-web-frontend-security.md +747 -0
  916. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-jquery-web-frontend-security.md +678 -0
  917. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
  918. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-typescript-react-web-frontend-security.md +990 -0
  919. package/dist/registry/skills/openai-security-best-practices/upstream/references/javascript-typescript-vue-web-frontend-security.md +791 -0
  920. package/dist/registry/skills/openai-security-best-practices/upstream/references/python-django-web-server-security.md +882 -0
  921. package/dist/registry/skills/openai-security-best-practices/upstream/references/python-fastapi-web-server-security.md +1036 -0
  922. package/dist/registry/skills/openai-security-best-practices/upstream/references/python-flask-web-server-security.md +705 -0
  923. package/dist/registry/skills/openai-security-ownership-map/SKILL.md +222 -0
  924. package/dist/registry/skills/openai-security-ownership-map/upstream/LICENSE.txt +201 -0
  925. package/dist/registry/skills/openai-security-ownership-map/upstream/SKILL.md +206 -0
  926. package/dist/registry/skills/openai-security-ownership-map/upstream/agents/openai.yaml +4 -0
  927. package/dist/registry/skills/openai-security-ownership-map/upstream/references/neo4j-import.md +60 -0
  928. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/build_ownership_map.py +956 -0
  929. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/community_maintainers.py +544 -0
  930. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/query_ownership.py +483 -0
  931. package/dist/registry/skills/openai-security-ownership-map/upstream/scripts/run_ownership_map.py +200 -0
  932. package/dist/registry/skills/openai-security-threat-model/SKILL.md +97 -0
  933. package/dist/registry/skills/openai-security-threat-model/upstream/LICENSE.txt +201 -0
  934. package/dist/registry/skills/openai-security-threat-model/upstream/SKILL.md +81 -0
  935. package/dist/registry/skills/openai-security-threat-model/upstream/agents/openai.yaml +4 -0
  936. package/dist/registry/skills/openai-security-threat-model/upstream/references/prompt-template.md +255 -0
  937. package/dist/registry/skills/openai-security-threat-model/upstream/references/security-controls-and-assets.md +32 -0
  938. package/dist/registry/skills/openai-sentry/SKILL.md +138 -0
  939. package/dist/registry/skills/openai-sentry/upstream/LICENSE.txt +201 -0
  940. package/dist/registry/skills/openai-sentry/upstream/SKILL.md +123 -0
  941. package/dist/registry/skills/openai-sentry/upstream/agents/openai.yaml +6 -0
  942. package/dist/registry/skills/openai-sentry/upstream/assets/sentry-small.svg +3 -0
  943. package/dist/registry/skills/openai-sentry/upstream/assets/sentry.png +0 -0
  944. package/dist/registry/skills/openai-sentry/upstream/scripts/sentry_api.py +238 -0
  945. package/dist/registry/skills/openai-skill-creator/SKILL.md +382 -0
  946. package/dist/registry/skills/openai-skill-creator/upstream/LICENSE.txt +202 -0
  947. package/dist/registry/skills/openai-skill-creator/upstream/SKILL.md +368 -0
  948. package/dist/registry/skills/openai-skill-creator/upstream/agents/openai.yaml +4 -0
  949. package/dist/registry/skills/openai-skill-creator/upstream/references/openai_yaml.md +43 -0
  950. package/dist/registry/skills/openai-skill-creator/upstream/scripts/generate_openai_yaml.py +225 -0
  951. package/dist/registry/skills/openai-skill-creator/upstream/scripts/init_skill.py +397 -0
  952. package/dist/registry/skills/openai-skill-creator/upstream/scripts/quick_validate.py +101 -0
  953. package/dist/registry/skills/openai-skill-installer/SKILL.md +72 -0
  954. package/dist/registry/skills/openai-skill-installer/upstream/LICENSE.txt +202 -0
  955. package/dist/registry/skills/openai-skill-installer/upstream/SKILL.md +58 -0
  956. package/dist/registry/skills/openai-skill-installer/upstream/agents/openai.yaml +5 -0
  957. package/dist/registry/skills/openai-skill-installer/upstream/assets/skill-installer-small.svg +3 -0
  958. package/dist/registry/skills/openai-skill-installer/upstream/assets/skill-installer.png +0 -0
  959. package/dist/registry/skills/openai-skill-installer/upstream/scripts/github_utils.py +21 -0
  960. package/dist/registry/skills/openai-skill-installer/upstream/scripts/install-skill-from-github.py +308 -0
  961. package/dist/registry/skills/openai-skill-installer/upstream/scripts/list-skills.py +107 -0
  962. package/dist/registry/skills/openai-sora/SKILL.md +168 -0
  963. package/dist/registry/skills/openai-sora/upstream/LICENSE.txt +201 -0
  964. package/dist/registry/skills/openai-sora/upstream/SKILL.md +153 -0
  965. package/dist/registry/skills/openai-sora/upstream/agents/openai.yaml +6 -0
  966. package/dist/registry/skills/openai-sora/upstream/assets/sora-small.svg +4 -0
  967. package/dist/registry/skills/openai-sora/upstream/assets/sora.png +0 -0
  968. package/dist/registry/skills/openai-sora/upstream/references/cinematic-shots.md +53 -0
  969. package/dist/registry/skills/openai-sora/upstream/references/cli.md +248 -0
  970. package/dist/registry/skills/openai-sora/upstream/references/codex-network.md +28 -0
  971. package/dist/registry/skills/openai-sora/upstream/references/prompting.md +137 -0
  972. package/dist/registry/skills/openai-sora/upstream/references/sample-prompts.md +95 -0
  973. package/dist/registry/skills/openai-sora/upstream/references/social-ads.md +42 -0
  974. package/dist/registry/skills/openai-sora/upstream/references/troubleshooting.md +58 -0
  975. package/dist/registry/skills/openai-sora/upstream/references/video-api.md +45 -0
  976. package/dist/registry/skills/openai-sora/upstream/scripts/sora.py +970 -0
  977. package/dist/registry/skills/openai-speech/SKILL.md +159 -0
  978. package/dist/registry/skills/openai-speech/upstream/LICENSE.txt +201 -0
  979. package/dist/registry/skills/openai-speech/upstream/SKILL.md +144 -0
  980. package/dist/registry/skills/openai-speech/upstream/agents/openai.yaml +6 -0
  981. package/dist/registry/skills/openai-speech/upstream/assets/speech-small.svg +3 -0
  982. package/dist/registry/skills/openai-speech/upstream/assets/speech.png +0 -0
  983. package/dist/registry/skills/openai-speech/upstream/references/accessibility.md +32 -0
  984. package/dist/registry/skills/openai-speech/upstream/references/audio-api.md +31 -0
  985. package/dist/registry/skills/openai-speech/upstream/references/cli.md +99 -0
  986. package/dist/registry/skills/openai-speech/upstream/references/codex-network.md +28 -0
  987. package/dist/registry/skills/openai-speech/upstream/references/ivr.md +32 -0
  988. package/dist/registry/skills/openai-speech/upstream/references/narration.md +31 -0
  989. package/dist/registry/skills/openai-speech/upstream/references/prompting.md +38 -0
  990. package/dist/registry/skills/openai-speech/upstream/references/sample-prompts.md +44 -0
  991. package/dist/registry/skills/openai-speech/upstream/references/voice-directions.md +80 -0
  992. package/dist/registry/skills/openai-speech/upstream/references/voiceover.md +31 -0
  993. package/dist/registry/skills/openai-speech/upstream/scripts/text_to_speech.py +528 -0
  994. package/dist/registry/skills/openai-spreadsheet/SKILL.md +137 -0
  995. package/dist/registry/skills/openai-spreadsheet/upstream/LICENSE.txt +201 -0
  996. package/dist/registry/skills/openai-spreadsheet/upstream/SKILL.md +122 -0
  997. package/dist/registry/skills/openai-spreadsheet/upstream/agents/openai.yaml +6 -0
  998. package/dist/registry/skills/openai-spreadsheet/upstream/assets/spreadsheet-small.svg +3 -0
  999. package/dist/registry/skills/openai-spreadsheet/upstream/assets/spreadsheet.png +0 -0
  1000. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
  1001. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
  1002. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
  1003. package/dist/registry/skills/openai-spreadsheet/upstream/references/examples/openpyxl/styling_spreadsheet.py +79 -0
  1004. package/dist/registry/skills/openai-transcribe/SKILL.md +96 -0
  1005. package/dist/registry/skills/openai-transcribe/upstream/LICENSE.txt +201 -0
  1006. package/dist/registry/skills/openai-transcribe/upstream/SKILL.md +81 -0
  1007. package/dist/registry/skills/openai-transcribe/upstream/agents/openai.yaml +6 -0
  1008. package/dist/registry/skills/openai-transcribe/upstream/assets/transcribe-small.svg +3 -0
  1009. package/dist/registry/skills/openai-transcribe/upstream/assets/transcribe.png +0 -0
  1010. package/dist/registry/skills/openai-transcribe/upstream/references/api.md +8 -0
  1011. package/dist/registry/skills/openai-transcribe/upstream/scripts/transcribe_diarize.py +276 -0
  1012. package/dist/registry/skills/openai-vercel-deploy/SKILL.md +84 -0
  1013. package/{LICENSE → dist/registry/skills/openai-vercel-deploy/upstream/LICENSE.txt} +1 -1
  1014. package/dist/registry/skills/openai-vercel-deploy/upstream/SKILL.md +68 -0
  1015. package/dist/registry/skills/openai-vercel-deploy/upstream/agents/openai.yaml +6 -0
  1016. package/dist/registry/skills/openai-vercel-deploy/upstream/assets/vercel-small.svg +5 -0
  1017. package/dist/registry/skills/openai-vercel-deploy/upstream/assets/vercel.png +0 -0
  1018. package/dist/registry/skills/openai-vercel-deploy/upstream/scripts/deploy.sh +301 -0
  1019. package/dist/registry/skills/openai-yeet/SKILL.md +44 -0
  1020. package/dist/registry/skills/openai-yeet/upstream/LICENSE.txt +201 -0
  1021. package/dist/registry/skills/openai-yeet/upstream/SKILL.md +28 -0
  1022. package/dist/registry/skills/openai-yeet/upstream/agents/openai.yaml +6 -0
  1023. package/dist/registry/skills/openai-yeet/upstream/assets/yeet-small.svg +3 -0
  1024. package/dist/registry/skills/openai-yeet/upstream/assets/yeet.png +0 -0
  1025. package/dist/registry/skills/pr-description-style/SKILL.md +16 -0
  1026. package/dist/registry/skills/react-maintenance-upgrade/SKILL.md +19 -0
  1027. package/dist/registry/skills/react-maintenance-upgrade/scripts/check.sh +8 -0
  1028. package/dist/registry/skills/react-maintenance-upgrade/scripts/run.sh +28 -0
  1029. package/dist/registry/skills/react-patterns/SKILL.md +16 -0
  1030. package/dist/registry/skills/release-notes-style/SKILL.md +16 -0
  1031. package/dist/registry/skills/repo-bootstrap/SKILL.md +33 -0
  1032. package/dist/registry/skills/repo-bootstrap/scripts/check.sh +8 -0
  1033. package/dist/registry/skills/repo-bootstrap/scripts/run.sh +44 -0
  1034. package/dist/registry/skills/run-build/SKILL.md +17 -0
  1035. package/dist/registry/skills/run-build/scripts/check.sh +5 -0
  1036. package/dist/registry/skills/run-build/scripts/run.sh +19 -0
  1037. package/dist/registry/skills/run-format/SKILL.md +17 -0
  1038. package/dist/registry/skills/run-format/scripts/check.sh +5 -0
  1039. package/dist/registry/skills/run-format/scripts/run.sh +8 -0
  1040. package/dist/registry/skills/run-lint/SKILL.md +17 -0
  1041. package/dist/registry/skills/run-lint/scripts/check.sh +5 -0
  1042. package/dist/registry/skills/run-lint/scripts/run.sh +19 -0
  1043. package/dist/registry/skills/run-tests/SKILL.md +17 -0
  1044. package/dist/registry/skills/run-tests/scripts/check.sh +5 -0
  1045. package/dist/registry/skills/run-tests/scripts/run.sh +20 -0
  1046. package/dist/registry/skills/run-typecheck/SKILL.md +17 -0
  1047. package/dist/registry/skills/run-typecheck/scripts/check.sh +8 -0
  1048. package/dist/registry/skills/run-typecheck/scripts/run.sh +23 -0
  1049. package/dist/registry/skills/security-hygiene/SKILL.md +17 -0
  1050. package/dist/registry/skills/terraform-drift-audit/SKILL.md +18 -0
  1051. package/dist/registry/skills/terraform-drift-audit/scripts/check.sh +3 -0
  1052. package/dist/registry/skills/terraform-drift-audit/scripts/run.sh +4 -0
  1053. package/dist/registry/skills/terraform-fmt-validate/SKILL.md +17 -0
  1054. package/dist/registry/skills/terraform-fmt-validate/scripts/check.sh +3 -0
  1055. package/dist/registry/skills/terraform-fmt-validate/scripts/run.sh +5 -0
  1056. package/dist/registry/skills/terraform-structure/SKILL.md +16 -0
  1057. package/dist/registry/skills/testing-playbook/SKILL.md +16 -0
  1058. package/package.json +10 -7
  1059. package/dist/cli.d.ts +0 -3
  1060. package/dist/cli.d.ts.map +0 -1
  1061. package/dist/commands/cursor.d.ts +0 -27
  1062. package/dist/commands/cursor.d.ts.map +0 -1
  1063. package/dist/commands/cursor.js +0 -80
  1064. package/dist/commands/cursor.js.map +0 -1
  1065. package/dist/commands/doctor.d.ts +0 -13
  1066. package/dist/commands/doctor.d.ts.map +0 -1
  1067. package/dist/commands/doctor.js +0 -59
  1068. package/dist/commands/doctor.js.map +0 -1
  1069. package/dist/commands/info.d.ts +0 -13
  1070. package/dist/commands/info.d.ts.map +0 -1
  1071. package/dist/commands/info.js +0 -102
  1072. package/dist/commands/info.js.map +0 -1
  1073. package/dist/commands/install.d.ts +0 -13
  1074. package/dist/commands/install.d.ts.map +0 -1
  1075. package/dist/commands/install.js +0 -167
  1076. package/dist/commands/install.js.map +0 -1
  1077. package/dist/commands/list.d.ts +0 -13
  1078. package/dist/commands/list.d.ts.map +0 -1
  1079. package/dist/commands/list.js +0 -51
  1080. package/dist/commands/list.js.map +0 -1
  1081. package/dist/commands/logs.d.ts +0 -15
  1082. package/dist/commands/logs.d.ts.map +0 -1
  1083. package/dist/commands/logs.js +0 -99
  1084. package/dist/commands/logs.js.map +0 -1
  1085. package/dist/commands/open.d.ts +0 -13
  1086. package/dist/commands/open.d.ts.map +0 -1
  1087. package/dist/commands/open.js +0 -30
  1088. package/dist/commands/open.js.map +0 -1
  1089. package/dist/commands/plan.d.ts +0 -14
  1090. package/dist/commands/plan.d.ts.map +0 -1
  1091. package/dist/commands/plan.js +0 -75
  1092. package/dist/commands/plan.js.map +0 -1
  1093. package/dist/commands/run.d.ts +0 -17
  1094. package/dist/commands/run.d.ts.map +0 -1
  1095. package/dist/commands/run.js +0 -143
  1096. package/dist/commands/run.js.map +0 -1
  1097. package/dist/commands/search.d.ts +0 -13
  1098. package/dist/commands/search.d.ts.map +0 -1
  1099. package/dist/commands/search.js +0 -32
  1100. package/dist/commands/search.js.map +0 -1
  1101. package/dist/commands/uninstall.d.ts +0 -13
  1102. package/dist/commands/uninstall.d.ts.map +0 -1
  1103. package/dist/commands/uninstall.js +0 -35
  1104. package/dist/commands/uninstall.js.map +0 -1
  1105. package/dist/util.d.ts +0 -7
  1106. package/dist/util.d.ts.map +0 -1
  1107. package/dist/util.js +0 -9
  1108. package/dist/util.js.map +0 -1
  1109. package/dist/utils/json.d.ts +0 -11
  1110. package/dist/utils/json.d.ts.map +0 -1
  1111. package/dist/utils/json.js +0 -10
  1112. package/dist/utils/json.js.map +0 -1
@@ -0,0 +1,990 @@
1
+ # React (JavaScript/TypeScript) Web Security Spec (React 19.x, TypeScript 5.x)
2
+
3
+ This document is designed as a **security spec** that supports:
4
+
5
+ 1. **Secure-by-default code generation** for new React code.
6
+ 2. **Security review / vulnerability hunting** in existing React code (passive “notice issues while working” and active “scan the repo and report findings”).
7
+
8
+ It is intentionally written as a set of **normative requirements** (“MUST/SHOULD/MAY”) plus **audit rules** (what bad patterns look like, how to detect them, and how to fix/mitigate them).
9
+
10
+ ---
11
+
12
+ ## 0) Safety, boundaries, and anti-abuse constraints (MUST FOLLOW)
13
+
14
+ * MUST NOT request, output, log, or commit secrets (API keys, OAuth client secrets, private keys, session cookies, JWTs, signing keys).
15
+
16
+ * Frontend note: anything shipped to the browser is observable by end users and attackers (view-source, devtools, proxies); never treat client code or “env vars in the bundle” as secret. ([create-react-app.dev][1])
17
+ * MUST NOT “fix” security by disabling protections (e.g., turning off CSP to “make it work”, adding `unsafe-inline`/`unsafe-eval` without a documented, constrained plan, disabling CSRF protections when using cookies, widening CORS, skipping sanitization, or “temporary” bypasses that ship). ([OWASP Cheat Sheet Series][2])
18
+ * MUST provide **evidence-based findings** during audits: cite file paths, code snippets, and configuration values that justify the claim.
19
+ * MUST treat uncertainty honestly: if a protection might exist in infra (CDN/WAF/reverse proxy), report it as “not visible in app code; verify via runtime headers / edge config”.
20
+ * MUST assume any data that crosses a trust boundary (URL, storage, network, postMessage, third-party scripts) can be attacker-influenced unless proven otherwise (see §2.1).
21
+
22
+ ---
23
+
24
+ ## 1) Operating modes
25
+
26
+ ### 1.1 Generation mode (default)
27
+
28
+ When asked to write new React code or modify existing code:
29
+
30
+ * MUST follow every **MUST** requirement in this spec.
31
+ * SHOULD follow every **SHOULD** requirement unless the user explicitly says otherwise.
32
+ * MUST prefer safe-by-default APIs and proven libraries over custom security code.
33
+ * MUST avoid introducing new risky sinks (raw HTML insertion, direct DOM sinks like `innerHTML`, dynamic code execution, untrusted redirects/navigation, third‑party script injection, unsafe token storage, etc.). ([MDN Web Docs][3])
34
+
35
+ ### 1.2 Passive review mode (always on while editing)
36
+
37
+ While working anywhere in a React repo (even if the user did not ask for a security scan):
38
+
39
+ * MUST “notice” violations of this spec in touched/nearby code.
40
+ * SHOULD mention issues as they come up, with a brief explanation + safe fix.
41
+
42
+ ### 1.3 Active audit mode (explicit scan request)
43
+
44
+ When the user asks to “scan”, “audit”, or “hunt for vulns”:
45
+
46
+ * MUST systematically search the codebase for violations of this spec.
47
+ * MUST output findings in a structured format (see §2.3).
48
+
49
+ Recommended audit order:
50
+
51
+ 1. App entrypoints, build tooling (Vite/Webpack/CRA/Next), deployment configs, CDN/static hosting config.
52
+ 2. Secrets & configuration exposure (env vars, runtime config injection, source maps).
53
+ 3. Rendering of untrusted data (XSS/DOM XSS), especially `dangerouslySetInnerHTML`, markdown/HTML renderers, URL attributes.
54
+ 4. Direct DOM usage and dangerous JS execution (`innerHTML`, `eval`, `new Function`, `document.write`, etc.).
55
+ 5. Auth & session patterns (token storage, cookies, CSRF interactions, OAuth flows).
56
+ 6. Network layer (axios/fetch wrappers, dynamic base URLs, credentialed requests, data exfil risks).
57
+ 7. Navigation & redirect handling (open redirects, `window.location`, `target=_blank`, `window.open`).
58
+ 8. Third-party scripts/tags/analytics and integrity controls (CSP, SRI).
59
+ 9. Service worker/PWA behavior (HTTPS, caching rules, update strategy).
60
+ 10. Security headers posture (CSP, clickjacking, nosniff, referrer policy) in app or at the edge. ([OWASP Cheat Sheet Series][2])
61
+
62
+ ---
63
+
64
+ ## 2) Definitions and review guidance
65
+
66
+ ### 2.1 Untrusted input (treat as attacker-controlled unless proven otherwise)
67
+
68
+ Examples include:
69
+
70
+ * URL-derived data: `window.location`, query params, hash fragments, route params.
71
+ * Any data from browser storage: `localStorage`, `sessionStorage`, `IndexedDB` (including data previously written by the app—because XSS or extensions can tamper with it). ([OWASP Cheat Sheet Series][4])
72
+ * Any data from cross-window messaging: `window.postMessage` payloads. ([OWASP Cheat Sheet Series][4])
73
+ * Any data from remote APIs, webhooks proxied to the client, GraphQL responses, CMS content, feature flag services.
74
+ * Any persisted user content (profiles, comments, rich text, markdown) rendered in the UI.
75
+ * Any data produced by third-party scripts or tag managers (treat as untrusted unless strongly controlled). ([OWASP Cheat Sheet Series][5])
76
+
77
+ ### 2.2 State-changing request (frontend perspective)
78
+
79
+ A request is state-changing if it can create/update/delete data, change auth/session state, trigger side effects (purchase, email send, webhook), or initiate privileged actions.
80
+
81
+ Frontend-specific note:
82
+
83
+ * State changes are often triggered by `fetch/axios` calls or form submissions. If authentication is cookie-based, these calls can be CSRF-relevant (§4 REACT-CSRF-001). ([OWASP Cheat Sheet Series][6])
84
+
85
+ ### 2.3 Required audit finding format
86
+
87
+ For each issue found, output:
88
+
89
+ * Rule ID:
90
+ * Severity: Critical / High / Medium / Low
91
+ * Location: file path + component/function + line(s)
92
+ * Evidence: the exact code/config snippet
93
+ * Impact: what could go wrong, who can exploit it
94
+ * Fix: safe change (prefer minimal diff)
95
+ * Mitigation: defense-in-depth if immediate fix is hard
96
+ * False positive notes: what to verify if uncertain
97
+
98
+ ---
99
+
100
+ ## 3) Secure baseline: minimum production configuration (MUST in production)
101
+
102
+ This is the smallest “production baseline” that prevents common React frontend misconfigurations.
103
+
104
+ ### 3.1 Production build and configuration hygiene (MUST)
105
+
106
+ * MUST ship a production build (minified, no dev-only overlays/tools, correct mode flags).
107
+ * MUST ensure build-time configuration does not embed secrets into the shipped JS/HTML/CSS. Build-time “environment variables” are not secret; treat them as public. ([create-react-app.dev][1])
108
+ * SHOULD treat source maps as sensitive operational artifacts:
109
+
110
+ * Either don’t publish them publicly, or publish them only where intended (e.g., behind auth or to an error-reporting provider), because they can reveal code structure and internal URLs.
111
+
112
+ ### 3.2 Browser-enforced protections (SHOULD, but baseline expectation for modern apps)
113
+
114
+ * SHOULD deploy a CSP as defense-in-depth against XSS, and keep it compatible with your React build (avoid `unsafe-inline` and `unsafe-eval` unless strictly necessary and documented). ([OWASP Cheat Sheet Series][2])
115
+ * SHOULD use Subresource Integrity (SRI) for any third-party script/style loaded from a CDN (or self-host instead). ([MDN Web Docs][7])
116
+ * SHOULD enable clickjacking defenses via `frame-ancestors` (CSP) and/or `X-Frame-Options`, unless embedding is an explicit product requirement. ([MDN Web Docs][8])
117
+
118
+ ### 3.3 High-risk features baseline (MUST if used)
119
+
120
+ * If rendering any user-provided HTML/markdown/rich text:
121
+
122
+ * MUST sanitize before insertion and avoid raw DOM sinks. ([OWASP Cheat Sheet Series][9])
123
+ * If using service workers / PWA:
124
+
125
+ * MUST serve over HTTPS and implement a safe caching/update strategy (service workers are powerful request/response proxies). ([MDN Web Docs][10])
126
+
127
+ ---
128
+
129
+ ## 4) Rules (generation + audit)
130
+
131
+ Each rule contains: required practice, insecure patterns, detection hints, and remediation.
132
+
133
+ ### REACT-CONFIG-001: Never embed secrets in the client bundle (env vars are public)
134
+
135
+ Severity: Critical (if secrets exposed)
136
+
137
+ Required:
138
+
139
+ * MUST NOT place secrets in React code, in `public/` assets, or in build-time environment variables intended for client consumption.
140
+ * MUST assume any value available to the React app at runtime can be extracted by an attacker.
141
+
142
+ Insecure patterns:
143
+
144
+ * Using build-time env vars for secrets:
145
+
146
+ * `process.env.REACT_APP_*` containing private keys or credentials.
147
+ * `import.meta.env.VITE_*` containing secrets.
148
+ * Hard-coded secrets in JS/TS, `.env` committed, or secrets in `public/config.json` served to all users.
149
+
150
+ Detection hints:
151
+
152
+ * Search for:
153
+
154
+ * `REACT_APP_`, `VITE_`, `NEXT_PUBLIC_`, `process.env.`, `import.meta.env.`
155
+ * `apiKey`, `secret`, `token`, `private`, `password`, `client_secret`
156
+ * Inspect `public/` for runtime config JSON.
157
+
158
+ Fix:
159
+
160
+ * Move secrets server-side (API, BFF, serverless function).
161
+ * Use a backend to mint short-lived, scoped tokens if the browser needs to call third-party APIs.
162
+
163
+ Notes:
164
+
165
+ * CRA explicitly warns not to store secrets and notes env vars are embedded into the build and visible to anyone inspecting files. ([create-react-app.dev][1])
166
+ * Vite explicitly notes that variables exposed to client code end up in the client bundle and should not contain sensitive info. ([vitejs][11])
167
+
168
+ ---
169
+
170
+ ### REACT-XSS-001: Do not use `dangerouslySetInnerHTML` with untrusted content (sanitize or avoid)
171
+
172
+ Severity: High (Only if you can prove attacker-controlled HTML reaches it)
173
+
174
+ Required:
175
+
176
+ * MUST avoid `dangerouslySetInnerHTML` unless absolutely necessary.
177
+ * If it must be used:
178
+
179
+ * MUST sanitize untrusted HTML with a proven sanitizer (e.g., DOMPurify) and an allowlist-oriented configuration.
180
+ * MUST keep the sanitization logic centralized and heavily reviewed.
181
+ * SHOULD add a CSP and consider Trusted Types (see REACT-TT-001).
182
+
183
+ Insecure patterns:
184
+
185
+ * `<div dangerouslySetInnerHTML={{ __html: userHtml }} />` where `userHtml` is from API/URL/storage.
186
+ * “Sanitization” done with regexes, ad-hoc stripping, or incomplete allowlists.
187
+
188
+ Detection hints:
189
+
190
+ * Grep: `dangerouslySetInnerHTML`, `__html:`
191
+ * Trace the origin of the HTML string (API/CMS/URL/localStorage).
192
+
193
+ Fix:
194
+
195
+ * Replace with safe rendering:
196
+
197
+ * Render structured data as React elements/components instead of HTML strings.
198
+ * If rich text is required, sanitize with DOMPurify (or equivalent) and render the sanitized output.
199
+ * Add CSP; remove dangerous sinks where possible.
200
+
201
+ Notes:
202
+
203
+ * React explicitly warns that `dangerouslySetInnerHTML` is dangerous and can introduce XSS if misused. ([React][12])
204
+ * OWASP explicitly calls out React’s `dangerouslySetInnerHTML` without sanitization as a common framework “escape hatch” pitfall. ([OWASP Cheat Sheet Series][9])
205
+ * DOMPurify describes itself as an XSS sanitizer for HTML/SVG/MathML. ([GitHub][13])
206
+
207
+ ---
208
+
209
+ ### REACT-XSS-002: Rely on React’s escaping-by-default behavior; do not bypass it
210
+
211
+ Severity: High (when bypassed)
212
+
213
+ Required:
214
+
215
+ * MUST render untrusted strings via normal JSX interpolation (`{value}`) and React props, which are escaped by default.
216
+ * MUST NOT build HTML strings from untrusted data and then inject them into the DOM via any means.
217
+ * SHOULD treat any “escape hatch” as high risk and require review.
218
+
219
+ Insecure patterns:
220
+
221
+ * Converting untrusted text into HTML and injecting it:
222
+
223
+ * `element.innerHTML = userValue`
224
+ * `document.write(userValue)`
225
+ * `insertAdjacentHTML(..., userValue)`
226
+
227
+ Detection hints:
228
+
229
+ * Grep for DOM sinks: `innerHTML`, `outerHTML`, `insertAdjacentHTML`, `document.write`, `DOMParser`, `createContextualFragment`.
230
+
231
+ Fix:
232
+
233
+ * Render text content through React (JSX) so it is escaped.
234
+ * If you truly need HTML, sanitize and apply REACT-XSS-001 + REACT-TT-001.
235
+
236
+ Notes:
237
+
238
+ * React documentation (JSX) states that React DOM escapes values embedded in JSX before rendering to help prevent injection attacks. ([React][14])
239
+
240
+ ---
241
+
242
+ ### REACT-DOM-001: Avoid DOM XSS injection sinks in React code (use safe alternatives)
243
+
244
+ Severity: High
245
+
246
+ Required:
247
+
248
+ * MUST avoid direct DOM injection sinks, even outside React rendering, unless strongly controlled.
249
+ * If a DOM sink is required:
250
+
251
+ * MUST ensure inputs are trusted/validated/sanitized.
252
+ * SHOULD enforce Trusted Types (REACT-TT-001).
253
+
254
+ Insecure patterns:
255
+
256
+ * `someEl.innerHTML = untrusted`
257
+ * `document.write(untrusted)`
258
+ * `new DOMParser().parseFromString(untrusted, 'text/html')` followed by insertion
259
+
260
+ Detection hints:
261
+
262
+ * Grep for: `innerHTML`, `outerHTML`, `document.write`, `DOMParser`, `Range().createContextualFragment`, `insertAdjacentHTML`
263
+
264
+ Fix:
265
+
266
+ * Prefer:
267
+
268
+ * `textContent` for text insertion.
269
+ * React rendering rather than manual DOM manipulation.
270
+ * A vetted sanitizer for any required HTML parsing.
271
+
272
+ Notes:
273
+
274
+ * Trusted Types documentation defines HTML sinks like `Element.innerHTML` and `document.write()` as injection sinks that can execute script when given attacker-controlled input. ([MDN Web Docs][3])
275
+ * OWASP HTML5 guidance recommends using `textContent` instead of `innerHTML` for assigning untrusted data. ([OWASP Cheat Sheet Series][4])
276
+
277
+ ---
278
+
279
+ ### REACT-URL-001: Validate and constrain untrusted URLs used in `href`, `src`, navigation, and redirects
280
+
281
+ Severity: High Only when you can prove they are attacker controlled
282
+
283
+ Required:
284
+
285
+ * MUST treat any URL derived from untrusted input as dangerous.
286
+ * MUST allowlist schemes and (when applicable) hosts:
287
+
288
+ * Typically allow only `https:` (and maybe `http:` for localhost/dev) and relative URLs for in-app navigation.
289
+ * MUST explicitly block `javascript:` and dangerous `data:` uses unless you have specialized validation and a clear use case.
290
+ * SHOULD prefer same-site relative paths (e.g., `/settings`) over absolute URLs.
291
+ * MUST validate “returnTo/next/redirect” parameters (see REACT-REDIRECT-001).
292
+
293
+ Insecure patterns:
294
+
295
+ * `<img src={userProvidedUrl}>...` (can be used for tracking / data exfil; also risky if used for scripts/iframes)
296
+ * `window.location = next`
297
+ * `navigate(next)` where `next` comes from query params without validation
298
+
299
+ Detection hints:
300
+
301
+ * Search for:
302
+
303
+ * `href={`, `src={`, `window.location`, `location.href`, `window.open`, `navigate(`, `redirectTo`, `returnTo`, `next=`
304
+ * Track whether the value is derived from URL/query/storage/API.
305
+
306
+ Fix:
307
+
308
+ * Implement a shared `safeUrl()` utility:
309
+
310
+ * Parse with `new URL(value, base)`
311
+ * Enforce scheme allowlist and host allowlist (or enforce same-origin)
312
+ * For redirects: allow only relative paths (starting with `/`) or a strict allowlist of absolute origins.
313
+ * Fall back to a safe default when validation fails.
314
+
315
+ Notes:
316
+
317
+ * OWASP explicitly notes React’s `dangerouslySetInnerHTML` risk and also states React cannot safely handle `javascript:` or `data:` URLs without specialized validation. ([OWASP Cheat Sheet Series][9])
318
+
319
+ ---
320
+
321
+ ### REACT-MARKUP-001: Markdown / rich text rendering must be configured safely
322
+
323
+ Severity: Medium
324
+
325
+ Required:
326
+
327
+ * MUST assume markdown/rich text can be attacker-controlled if it comes from users or CMS.
328
+ * MUST ensure raw HTML is not rendered unless sanitized.
329
+ * SHOULD prefer markdown renderers that:
330
+
331
+ * Do not allow raw HTML by default, or
332
+ * Can be configured to disallow raw HTML, or
333
+ * Sanitize HTML output before rendering.
334
+
335
+ Insecure patterns:
336
+
337
+ * Markdown rendering with “raw HTML passthrough” enabled (e.g., options/plugins that allow HTML).
338
+ * Rendering user-provided SVG/MathML/HTML inline without sanitization.
339
+
340
+ Detection hints:
341
+
342
+ * Search for common libraries and risky options:
343
+
344
+ * `marked`, `markdown-it`, `react-markdown`, `rehype-raw`, `sanitize: false`, `allowDangerousHtml`, etc.
345
+ * Look for `dangerouslySetInnerHTML` used with “markdown output”.
346
+
347
+ Fix:
348
+
349
+ * Disable raw HTML passthrough.
350
+ * Sanitize output with a proven sanitizer (e.g., DOMPurify) before rendering.
351
+
352
+ Notes:
353
+
354
+ * OWASP XSS guidance emphasizes that framework escape hatches require output encoding and/or HTML sanitization. ([OWASP Cheat Sheet Series][9])
355
+
356
+ ---
357
+
358
+ ### REACT-TT-001: Use Trusted Types (with CSP) to harden DOM XSS sinks where feasible
359
+
360
+ Severity: Low
361
+
362
+ Required:
363
+
364
+ * SHOULD consider enabling Trusted Types in report-only mode first, then enforce once violations are addressed.
365
+ * SHOULD centralize Trusted Types policies and treat them as high-risk code requiring review.
366
+ * MUST NOT create permissive policies that simply “pass through” untrusted strings.
367
+
368
+ Insecure patterns:
369
+
370
+ * A Trusted Types policy that returns the raw string without sanitization for HTML sinks.
371
+ * Many scattered policies across the codebase (hard to audit).
372
+
373
+ Detection hints:
374
+
375
+ * Search for:
376
+
377
+ * `trustedTypes.createPolicy`
378
+ * CSP directives: `require-trusted-types-for`, `trusted-types`
379
+ * Search for remaining DOM sinks (REACT-DOM-001).
380
+
381
+ Fix:
382
+
383
+ * Implement a small number of tightly scoped policies:
384
+
385
+ * HTML policy uses sanitizer (DOMPurify or equivalent).
386
+ * Script URL policy uses strict allowlists.
387
+ * Run in report-only mode, fix violations, then enforce.
388
+
389
+ Notes:
390
+
391
+ * MDN describes Trusted Types as a way to ensure input is transformed (commonly sanitized) before being passed to injection sinks, and highlights HTML sinks (`innerHTML`, `document.write`) and JS URL sinks (`script.src`). ([MDN Web Docs][3])
392
+ * The W3C Trusted Types spec frames this as reducing DOM XSS risk by locking down sinks to typed values created by reviewed policies. ([W3C][15])
393
+
394
+ ---
395
+
396
+ ### REACT-CSP-001: Deploy and maintain a CSP as defense-in-depth (especially when rendering untrusted content)
397
+
398
+ Severity: Medium to High
399
+
400
+ Required:
401
+
402
+ * SHOULD deploy CSP in production; MUST do so for apps that render untrusted content or integrate third-party scripts.
403
+ * SHOULD avoid `unsafe-inline` and `unsafe-eval` when possible.
404
+ * SHOULD use CSP nonces/hashes for inline scripts if needed, and keep policy realistic.
405
+ * SHOULD use CSP to require/encourage SRI where appropriate.
406
+
407
+ Insecure patterns:
408
+
409
+ * No CSP at all on the app shell (SPA entry HTML).
410
+ * CSP that relies on `unsafe-inline`/`unsafe-eval` broadly without justification.
411
+ * `script-src *` or overly broad sources.
412
+
413
+ Detection hints:
414
+
415
+ * Look for CSP configuration:
416
+
417
+ * Server/CDN config, headers in `index.html` responses, or framework config.
418
+ * If absent in repo, mark as “verify at edge”.
419
+
420
+ Fix:
421
+
422
+ * Add CSP via HTTP response headers (preferred).
423
+ * Start with report-only to reduce breakage, then enforce.
424
+
425
+ Notes:
426
+
427
+ * OWASP describes CSP as “defense in depth” against XSS and notes it can help enforce SRI even on static sites, but should not be the only defense. ([OWASP Cheat Sheet Series][2])
428
+
429
+ ---
430
+
431
+ ### REACT-SRI-001: Use Subresource Integrity (SRI) for third-party scripts and styles (or self-host)
432
+
433
+ Severity: Low
434
+
435
+ Required:
436
+
437
+ * MUST treat third-party JS as equivalent to running arbitrary code in your origin.
438
+ * If loading from a CDN or third party:
439
+
440
+ * SHOULD use SRI (`integrity=...`) and `crossorigin` where applicable.
441
+ * SHOULD pin exact versions (avoid “latest” URLs).
442
+ * SHOULD prefer self-hosting for critical code.
443
+
444
+ Insecure patterns:
445
+
446
+ * `<script src="https://cdn.example.com/lib/latest.js"></script>` with no integrity.
447
+ * Tag managers that dynamically load arbitrary scripts without governance.
448
+
449
+ Detection hints:
450
+
451
+ * Search in `public/index.html`, templates, or SSR wrappers for:
452
+
453
+ * `<script src=`, `<link rel="stylesheet" href=`
454
+ * Tag manager snippets (GTM, Segment, etc.)
455
+ * Identify scripts loaded dynamically in runtime JS.
456
+
457
+ Fix:
458
+
459
+ * Add SRI hashes for stable third-party assets or self-host.
460
+ * Apply governance controls for tag managers (see REACT-3P-001).
461
+
462
+ Notes:
463
+
464
+ * MDN describes SRI as a security feature enabling browsers to verify fetched resources (e.g., from a CDN) haven’t been manipulated by checking a cryptographic hash. ([MDN Web Docs][7])
465
+ * OWASP CSP guidance notes CSP can enforce SRI and is useful even on static sites. ([OWASP Cheat Sheet Series][2])
466
+
467
+ ---
468
+
469
+ ### REACT-3P-001: Third-party JavaScript and tag managers must be minimized and governed
470
+
471
+ Severity: High
472
+
473
+ Required:
474
+
475
+ * MUST minimize third-party scripts and treat each as a supply-chain risk.
476
+ * MUST know exactly what third-party JS executes in your origin and why.
477
+ * SHOULD implement governance:
478
+
479
+ * Review and pin versions (or mirror in-house).
480
+ * Restrict data access (data-layer approach).
481
+ * Use SRI and CSP; consider sandboxing untrusted UI in iframes where possible.
482
+
483
+ Insecure patterns:
484
+
485
+ * Unreviewed analytics/ads scripts running with full access to DOM, cookies, storage, and user data.
486
+ * Tag managers that can be changed by non-engineering roles with no change control.
487
+
488
+ Detection hints:
489
+
490
+ * Search for common vendor snippets in HTML/JS:
491
+
492
+ * GTM, Segment, Hotjar, FullStory, etc.
493
+ * Look for dynamic script insertion:
494
+
495
+ * `document.createElement('script')`, `.src = ...`, `.appendChild(script)`
496
+
497
+ Fix:
498
+
499
+ * Reduce to only necessary vendors.
500
+ * Where feasible:
501
+
502
+ * Self-host or mirror scripts.
503
+ * Use SRI.
504
+ * Limit data exposure via a controlled data layer.
505
+
506
+ Notes:
507
+
508
+ * OWASP notes third-party JS server compromise can inject malicious JS, and highlights risks like arbitrary code execution and disclosure of sensitive info to third parties. ([OWASP Cheat Sheet Series][5])
509
+
510
+ ---
511
+
512
+ ### REACT-AUTH-001: Token and session handling must be resilient to XSS (avoid sensitive storage in Web Storage)
513
+
514
+ Severity: Medium
515
+
516
+ Required:
517
+
518
+ * SHOULD avoid storing session identifiers or long-lived tokens in `localStorage` (and generally in Web Storage) because XSS can exfiltrate them.
519
+ * If tokens must exist client-side:
520
+
521
+ * SHOULD prefer in-memory storage with short lifetimes and refresh mechanisms.
522
+ * MUST scope and rotate tokens; avoid long-lived bearer tokens in persistent storage.
523
+ * SHOULD prefer HTTPOnly cookies for session tokens when possible (requires CSRF strategy: see REACT-CSRF-001).
524
+
525
+ Insecure patterns:
526
+
527
+ * `localStorage.setItem('token', ...)` / `sessionStorage.setItem('token', ...)` for auth tokens.
528
+ * Persisting refresh tokens in `localStorage`.
529
+ * Treating data from Web Storage as trusted.
530
+
531
+ Detection hints:
532
+
533
+ * Grep for: `localStorage.`, `sessionStorage.`, `setItem(`, `getItem(`, `token`, `jwt`, `refresh`
534
+ * Search auth code for “remember me” storing tokens persistently.
535
+
536
+ Fix:
537
+
538
+ * Move to HTTPOnly cookies (server change) + CSRF protections, or use short-lived in-memory tokens.
539
+ * Reduce token scope and lifetime.
540
+
541
+ Notes:
542
+
543
+ * OWASP HTML5 guidance recommends avoiding sensitive info and session identifiers in local storage and warns that a single XSS can steal all data in Web Storage. ([OWASP Cheat Sheet Series][4])
544
+ * OAuth browser-based apps guidance discusses that tokens stored in persistent browser storage like localStorage can be accessible to malicious JS (e.g., via XSS). ([IETF Datatracker][16])
545
+
546
+ ---
547
+
548
+ ### REACT-CSRF-001: Cookie-authenticated, state-changing requests MUST be CSRF-protected
549
+
550
+ Severity: High
551
+
552
+ NOTE: If the application does not use cookie based auth (using Authentication header for example), then CSRF is not a concern.
553
+
554
+ Required:
555
+
556
+ * If the app relies on cookies for authentication:
557
+
558
+ * MUST protect state-changing requests (POST/PUT/PATCH/DELETE) against CSRF.
559
+ * SHOULD include a CSRF token mechanism (synchronizer token or double-submit cookie) or other robust pattern appropriate to the backend.
560
+ * SHOULD use SameSite cookies as defense-in-depth, not as the sole defense.
561
+
562
+ Insecure patterns:
563
+
564
+ * `fetch('/api/transfer', { method: 'POST', credentials: 'include' })` with no CSRF token/header, relying only on cookies.
565
+ * Using GET for state-changing operations.
566
+
567
+ Detection hints:
568
+
569
+ * Enumerate state-changing network calls and check:
570
+
571
+ * Is `credentials: 'include'` or `withCredentials: true` used?
572
+ * Is a CSRF token header included (e.g., `X-CSRF-Token`)?
573
+ * Search for “csrf” utilities; if absent, treat as suspicious.
574
+
575
+ Fix:
576
+
577
+ * Add CSRF token flow:
578
+
579
+ * Fetch token from a safe endpoint and attach to state-changing requests.
580
+ * Validate server-side.
581
+ * Keep SameSite cookies and Origin/Referer validation as defense-in-depth.
582
+
583
+ Notes:
584
+
585
+ * OWASP CSRF guidance explains SameSite behavior (Lax/Strict/None) as a defense-in-depth technique and why Lax is often the usability/security balance, but it is not a complete substitute for CSRF protections. ([OWASP Cheat Sheet Series][6])
586
+
587
+ ---
588
+
589
+ ### REACT-AUTHZ-001: Do not rely on frontend-only authorization
590
+
591
+ Severity: High (only if used as primary protection)
592
+
593
+ Required:
594
+
595
+ * MUST treat all frontend authorization checks as UX only.
596
+ * MUST enforce authorization on the server for any protected resource or action.
597
+
598
+ Insecure patterns:
599
+
600
+ * “Protected” actions hidden in UI but callable by API without server checks.
601
+ * Client checks like `if (user.isAdmin) { showAdminPanel(); }` with no server-side enforcement.
602
+
603
+ Detection hints:
604
+
605
+ * Look for UI gating around sensitive actions and verify server endpoints enforce authorization.
606
+ * In a frontend-only audit, report as “client checks are not security; verify backend”.
607
+
608
+ Fix:
609
+
610
+ * Add/confirm server-side authorization checks.
611
+ * Keep frontend gating only as convenience.
612
+
613
+ Notes:
614
+
615
+ * This is a general web app security property; React cannot protect server resources by itself.
616
+
617
+ ---
618
+
619
+ ### REACT-NET-001: Prevent data exfiltration and credential leakage via dynamic outbound requests
620
+
621
+ Severity: Medium to High
622
+
623
+ Required:
624
+
625
+ * MUST avoid making authenticated requests to attacker-controlled origins.
626
+ * SHOULD avoid allowing user input to control request destination (scheme/host/port).
627
+ * SHOULD centralize network clients (fetch/axios) with:
628
+
629
+ * fixed `baseURL` (or strict allowlist),
630
+ * strict handling of redirects,
631
+ * explicit `credentials` usage.
632
+
633
+ Insecure patterns:
634
+
635
+ * `fetch(userProvidedUrl, { credentials: 'include' })`
636
+ * `axios.create({ baseURL: userProvidedBase })`
637
+ * “URL fetch/preview” features in the client that hit arbitrary domains with sensitive headers.
638
+
639
+ Detection hints:
640
+
641
+ * Search for `fetch(` / `axios(` where the first argument or `baseURL` is derived from:
642
+
643
+ * query params, localStorage, API responses, postMessage
644
+ * Search for `credentials: 'include'`, `withCredentials: true`.
645
+
646
+ Fix:
647
+
648
+ * Enforce destination allowlists; disallow cross-origin requests unless explicitly required.
649
+ * Strip credentials/Authorization headers for any non-allowlisted destination.
650
+
651
+ Notes:
652
+
653
+ * Even if the browser limits some cross-origin behavior, leaking tokens/headers to untrusted endpoints is still a common failure mode.
654
+
655
+ ---
656
+
657
+ ### REACT-REDIRECT-001: Prevent open redirects and untrusted navigation
658
+
659
+ Severity: Medium
660
+
661
+ Required:
662
+
663
+ * MUST validate redirect/navigation targets derived from untrusted input (`next`, `returnTo`, `redirect`).
664
+ * SHOULD only allow same-site relative paths, or a strict allowlist of trusted origins for absolute URLs.
665
+
666
+ Insecure patterns:
667
+
668
+ * `window.location.href = new URLSearchParams(location.search).get('next')`
669
+ * `navigate(next)` where `next` comes from query params.
670
+
671
+ Detection hints:
672
+
673
+ * Search for: `next`, `returnTo`, `redirect`, `window.location`, `navigate(`
674
+ * Trace origin of the redirect target.
675
+
676
+ Fix:
677
+
678
+ * Only allow relative paths (`/^\/[^\s]*$/`) or allowlisted origins.
679
+ * Fall back to a safe default (e.g., `/`) when invalid.
680
+
681
+ Notes:
682
+
683
+ * Open redirects are frequently used in phishing and can undermine SSO/OAuth flows.
684
+
685
+ ---
686
+
687
+ ### REACT-SW-001: Service workers are high-privilege; require HTTPS and safe caching/update rules
688
+
689
+ Severity: Medium
690
+
691
+ Required:
692
+
693
+ * MUST serve service workers over HTTPS (except `localhost` dev), and deploy only in secure contexts.
694
+ * MUST avoid caching sensitive authenticated API responses unless explicitly designed and threat-modeled.
695
+ * SHOULD implement safe update strategy (prompt reload, versioned caches, remove old caches on activate).
696
+
697
+ Insecure patterns:
698
+
699
+ * Registering a service worker for an authenticated app and caching “everything” indiscriminately.
700
+ * Long-lived caches containing PII or user-specific content shared across accounts.
701
+
702
+ Detection hints:
703
+
704
+ * Search for:
705
+
706
+ * `navigator.serviceWorker.register`
707
+ * `workbox`, `precacheAndRoute`, custom `fetch` handlers
708
+ * Inspect caching patterns (`caches.open`, `cache.put`, `respondWith`).
709
+
710
+ Fix:
711
+
712
+ * Restrict caching to static assets only (JS/CSS/images) unless you have a designed offline model.
713
+ * Ensure cache keys are user-scoped if user-specific data must be cached.
714
+ * Provide a clear update mechanism.
715
+
716
+ Notes:
717
+
718
+ * MDN notes service workers require HTTPS for security reasons and act like a proxy for requests/responses. ([MDN Web Docs][10])
719
+ * “Secure contexts” exist to prevent MITM attackers from accessing powerful APIs; service workers are an example of such a powerful feature. ([MDN Web Docs][18])
720
+
721
+ ---
722
+
723
+ ### REACT-HEADERS-001: Ensure essential security headers are set for the React app shell (app or edge)
724
+
725
+ Severity: Medium
726
+
727
+ Required (typical SPA served from an origin):
728
+
729
+ * SHOULD set:
730
+
731
+ * CSP (`Content-Security-Policy`)
732
+ * `X-Content-Type-Options: nosniff`
733
+ * Clickjacking protection (`frame-ancestors` in CSP and/or `X-Frame-Options`)
734
+ * `Referrer-Policy`
735
+ * `Permissions-Policy` as appropriate
736
+ * MUST ensure these are set somewhere (CDN/edge/server), even if not in repo.
737
+
738
+ Insecure patterns:
739
+
740
+ * No security headers anywhere (app or edge).
741
+ * CSP missing on apps that render untrusted content or use third-party scripts.
742
+
743
+ Detection hints:
744
+
745
+ * Check server/CDN config in repo (nginx, Cloudflare, Vercel config, etc.).
746
+ * If absent, flag as “verify at runtime/edge”.
747
+
748
+ Fix:
749
+
750
+ * Set headers centrally at the edge.
751
+ * Keep CSP realistic and iterative (report-only → enforce).
752
+
753
+ Notes:
754
+
755
+ * MDN clickjacking guidance discusses defenses including `X-Frame-Options` and CSP `frame-ancestors`. ([MDN Web Docs][8])
756
+ * OWASP CSP guidance explains delivery via response headers and recommends headers as the preferred mechanism. ([OWASP Cheat Sheet Series][2])
757
+
758
+ ---
759
+
760
+ ### REACT-POSTMSG-001: `postMessage` must validate origin and treat payload as untrusted data
761
+
762
+ Severity: Medium to High (depends on what messages can do)
763
+
764
+ Required:
765
+
766
+ * MUST specify exact `targetOrigin` when sending messages (not `*`) unless there is a strict reason.
767
+ * MUST validate `event.origin` on receipt and validate message shape.
768
+ * MUST NOT evaluate message data as code or insert it into the DOM as HTML.
769
+
770
+ Insecure patterns:
771
+
772
+ * `window.postMessage(data, '*')` to unknown targets.
773
+ * Receiving:
774
+
775
+ * `window.addEventListener('message', (e) => { eval(e.data) })`
776
+ * `element.innerHTML = e.data`
777
+
778
+ Detection hints:
779
+
780
+ * Search: `postMessage(`, `addEventListener('message'`
781
+ * Check for origin checks and safe handling.
782
+
783
+ Fix:
784
+
785
+ * Add strict origin allowlists and schema validation (e.g., zod).
786
+ * Treat message payload strictly as data; render safely via React.
787
+
788
+ Notes:
789
+
790
+ * OWASP HTML5 guidance recommends specifying expected origin for `postMessage`, checking sender origin, validating data, and avoiding eval/innerHTML with message content. ([OWASP Cheat Sheet Series][4])
791
+
792
+ ---
793
+
794
+ ### REACT-FILE-001: File uploads and previews must not create client-side active content vulnerabilities
795
+
796
+ Severity: Medium (can be High if stored-XSS possible)
797
+
798
+ Required:
799
+
800
+ * MUST treat user-uploaded files and previews as potentially malicious.
801
+ * MUST NOT render uploaded HTML/SVG/other active content inline unless sanitized and explicitly required.
802
+ * SHOULD validate file types client-side for UX, but MUST rely on server-side validation for security.
803
+
804
+ Insecure patterns:
805
+
806
+ * Rendering user-uploaded HTML as content.
807
+ * Inline rendering of untrusted SVG/HTML via `dangerouslySetInnerHTML` or `<iframe srcdoc=...>` without sanitization.
808
+
809
+ Detection hints:
810
+
811
+ * Search for upload components and preview logic:
812
+
813
+ * `input type="file"`, `FileReader`, `URL.createObjectURL`, `<iframe>`, `<object>`, `<embed>`.
814
+ * Trace where uploaded content is later displayed.
815
+
816
+ Fix:
817
+
818
+ * Restrict accepted types, sanitize where needed, and prefer download/attachment flows for risky types.
819
+ * Ensure server enforces the real policy (type checking, renaming, scanning, storing outside webroot).
820
+
821
+ Notes:
822
+
823
+ * OWASP file upload guidance highlights allowlisting extensions, validating file type, generating filenames, limiting size, storing outside webroot, and considering “client-side active content (XSS, CSRF, etc.)” when files are publicly retrievable. ([OWASP Cheat Sheet Series][19])
824
+
825
+ ---
826
+
827
+ ### REACT-SUPPLY-001: Dependency and supply-chain hygiene (frontend + build tooling)
828
+
829
+ Severity: Low
830
+
831
+ Required:
832
+
833
+ * MUST use a lockfile and enforce reproducible installs in CI.
834
+ * SHOULD regularly audit dependencies and respond quickly to advisories for:
835
+
836
+ * React, react-dom, router libs, build tooling (Vite/Webpack), sanitizers, auth libs, etc.
837
+ * SHOULD reduce exposure to install-time script attacks and typosquatting risk.
838
+
839
+ Audit focus:
840
+
841
+ * CI should use `npm ci` (or Yarn frozen lockfile / pnpm equivalent) to prevent drift.
842
+ * Use vulnerability scanning (`npm audit`, GitHub Dependabot/alerts, etc.).
843
+
844
+ Insecure patterns:
845
+
846
+ * No lockfile or lockfile ignored in CI.
847
+ * `npm install` in CI producing non-reproducible builds.
848
+ * Unpinned or unreviewed high-risk deps; sudden major updates without review.
849
+ * Blindly running install scripts from third-party packages.
850
+
851
+ Detection hints:
852
+
853
+ * Check for lockfiles: `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`.
854
+ * Check CI scripts for `npm install` vs `npm ci`.
855
+ * Search for `postinstall` scripts and suspicious build steps.
856
+
857
+ Fix:
858
+
859
+ * Use lockfile and enforce it in CI (e.g., `npm ci`).
860
+ * Run audits regularly; pin/upgrade responsibly.
861
+ * Consider restricting install scripts where feasible.
862
+
863
+ Notes:
864
+
865
+ * npm docs describe `npm audit` as submitting the project dependency tree to the registry to receive a report of known vulnerabilities and (optionally) applying remediations via `npm audit fix`, while noting some vulns require manual review. ([npm Docs][20])
866
+ * npm docs describe `npm ci` as intended for automated/CI environments, requiring an existing lockfile and failing if `package.json` and lockfile do not match. ([npm Docs][21])
867
+ * OWASP NPM security guidance recommends enforcing the lockfile and explicitly calls out `npm ci` / `yarn install --frozen-lockfile` to abort on inconsistencies, and highlights the risk of install-time scripts and the option to use `--ignore-scripts` to reduce attack surface. ([OWASP Cheat Sheet Series][22])
868
+
869
+ ---
870
+
871
+ ## 5) Practical scanning heuristics (how to “hunt”)
872
+
873
+ When actively scanning, use these high-signal patterns:
874
+
875
+ * Raw HTML / XSS escape hatches:
876
+
877
+ * `dangerouslySetInnerHTML`, `__html:`
878
+ * Markdown HTML passthrough flags: `rehype-raw`, `allowDangerousHtml`, `sanitize: false`
879
+ * DOM XSS sinks:
880
+
881
+ * `innerHTML`, `outerHTML`, `insertAdjacentHTML`, `document.write`, `DOMParser`, `createContextualFragment`
882
+ * Dangerous JS execution:
883
+
884
+ * `eval(`, `new Function(`, `setTimeout("`, `setInterval("`
885
+ * Untrusted URL injection / navigation:
886
+
887
+ * `href={` / `src={` with untrusted values
888
+ * `window.location`, `location.href`, `window.open`, `navigate(`
889
+ * Query params: `next`, `returnTo`, `redirect`
890
+ * Token/session risk:
891
+
892
+ * `localStorage.setItem`, `sessionStorage.setItem`, `getItem(` with `token`, `jwt`, `refresh`
893
+ * Cookie/CSRF coupling:
894
+
895
+ * `credentials: 'include'`, `withCredentials: true` on state-changing requests without CSRF headers
896
+ * Third-party scripts:
897
+
898
+ * `<script src=...>` in `public/index.html`
899
+ * Tag manager snippets and dynamic script insertion
900
+ * Service workers:
901
+
902
+ * `navigator.serviceWorker.register`, Workbox usage, custom `fetch` handlers
903
+ * postMessage:
904
+
905
+ * `postMessage(` with `*`, missing `event.origin` checks
906
+ * Supply chain:
907
+
908
+ * Missing lockfile, CI uses `npm install`, no audit step, risky postinstall scripts
909
+
910
+ Always try to confirm:
911
+
912
+ * data origin (untrusted vs trusted)
913
+ * sink type (React escape hatch vs DOM sink vs navigation vs storage)
914
+ * protective controls present (sanitization, allowlists, CSP/Trusted Types, CSRF tokens, headers, governance)
915
+
916
+ ---
917
+
918
+ ## 6) Sources (accessed 2026-01-26)
919
+
920
+ Primary React documentation:
921
+
922
+ * React 19 stable announcement — `https://react.dev/blog/2024/12/05/react-19` ([React][23])
923
+ * React DOM docs: `dangerouslySetInnerHTML` warning — `https://react.dev/reference/react-dom/components/common#dangerouslysetting-the-inner-html` ([React][12])
924
+ * React (legacy) JSX escaping statement — `https://legacy.reactjs.org/docs/introducing-jsx.html` ([React][14])
925
+
926
+ OWASP Cheat Sheet Series:
927
+
928
+ * Cross Site Scripting Prevention (framework escape hatches; React `dangerouslySetInnerHTML`; URL validation notes) — `https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][9])
929
+ * Content Security Policy — `https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][2])
930
+ * Cross-Site Request Forgery Prevention — `https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][6])
931
+ * HTML5 Security (Web Storage, postMessage, tabnabbing, sandboxed frames) — `https://cheatsheetseries.owasp.org/cheatsheets/HTML5_Security_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][4])
932
+ * Third Party JavaScript Management — `https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][5])
933
+ * File Upload — `https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][19])
934
+ * NPM Security best practices — `https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html` ([OWASP Cheat Sheet Series][22])
935
+
936
+ Browser / platform references (MDN, W3C):
937
+
938
+ * Trusted Types API — `https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API` ([MDN Web Docs][3])
939
+ * W3C Trusted Types spec — `https://www.w3.org/TR/trusted-types/` ([W3C][15])
940
+ * Subresource Integrity — `https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity` ([MDN Web Docs][7])
941
+ * Clickjacking defenses overview — `https://developer.mozilla.org/en-US/docs/Web/Security/Attacks/Clickjacking` ([MDN Web Docs][8])
942
+ * Using Service Workers (HTTPS requirement; proxy-like behavior) — `https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers` ([MDN Web Docs][10])
943
+ * Secure contexts (powerful APIs restricted to HTTPS) — `https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Secure_Contexts` ([MDN Web Docs][18])
944
+ * Link `rel` values (noopener/noreferrer) — `https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel` ([MDN Web Docs][17])
945
+
946
+ Build tooling / env exposure references:
947
+
948
+ * Create React App env variables warning — `https://create-react-app.dev/docs/adding-custom-environment-variables/` ([create-react-app.dev][1])
949
+ * Vite env variables security notes — `https://vite.dev/guide/env-and-mode` ([vitejs][11])
950
+
951
+ Auth/token storage guidance:
952
+
953
+ * OAuth 2.0 for Browser-Based Apps (token storage discussion) — `https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps` ([IETF Datatracker][16])
954
+
955
+ Dependency tooling references:
956
+
957
+ * npm audit docs — `https://docs.npmjs.com/cli/v10/commands/npm-audit/` ([npm Docs][20])
958
+ * npm ci docs — `https://docs.npmjs.com/cli/v10/commands/npm-ci/` ([npm Docs][21])
959
+
960
+ Sanitizer reference:
961
+
962
+ * DOMPurify — `https://github.com/cure53/DOMPurify` ([GitHub][13])
963
+
964
+ [1]: https://create-react-app.dev/docs/adding-custom-environment-variables/ "Adding Custom Environment Variables | Create React App"
965
+ [2]: https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html "Content Security Policy - OWASP Cheat Sheet Series"
966
+ [3]: https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API "Trusted Types API - Web APIs | MDN"
967
+ [4]: https://cheatsheetseries.owasp.org/cheatsheets/HTML5_Security_Cheat_Sheet.html "HTML5 Security - OWASP Cheat Sheet Series"
968
+ [5]: https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html "Third Party Javascript Management - OWASP Cheat Sheet Series"
969
+ [6]: https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html "Cross-Site Request Forgery Prevention - OWASP Cheat Sheet Series"
970
+ [7]: https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Subresource_Integrity "Subresource Integrity - Security | MDN"
971
+ [8]: https://developer.mozilla.org/en-US/docs/Web/Security/Attacks/Clickjacking "Clickjacking - Security | MDN"
972
+ [9]: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html "Cross Site Scripting Prevention - OWASP Cheat Sheet Series"
973
+ [10]: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers "Using Service Workers - Web APIs | MDN"
974
+ [11]: https://vite.dev/guide/env-and-mode "Env Variables and Modes | Vite"
975
+ [12]: https://react.dev/reference/react-dom/components/common "Common components (e.g. <div>) – React"
976
+ [13]: https://github.com/cure53/DOMPurify "GitHub - cure53/DOMPurify: DOMPurify - a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. DOMPurify works with a secure default, but offers a lot of configurability and hooks. Demo:"
977
+ [14]: https://legacy.reactjs.org/docs/introducing-jsx.html "Introducing JSX – React"
978
+ [15]: https://www.w3.org/TR/trusted-types/ "Trusted Types"
979
+ [16]: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps "
980
+
981
+ draft-ietf-oauth-browser-based-apps-26
982
+
983
+ "
984
+ [17]: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel "HTML attribute: rel - HTML | MDN"
985
+ [18]: https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Secure_Contexts "Secure contexts - Security | MDN"
986
+ [19]: https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html "File Upload - OWASP Cheat Sheet Series"
987
+ [20]: https://docs.npmjs.com/cli/v10/commands/npm-audit "npm-audit | npm Docs"
988
+ [21]: https://docs.npmjs.com/cli/v10/commands/npm-ci "npm-ci | npm Docs"
989
+ [22]: https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html "NPM Security - OWASP Cheat Sheet Series"
990
+ [23]: https://react.dev/blog/2024/12/05/react-19 "React v19 – React"