vaspera 2.9.2 → 2.10.1

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 (327) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +58 -1
  3. package/dist/__tests__/autofix/branch-manager.test.d.ts +2 -0
  4. package/dist/__tests__/autofix/branch-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/autofix/branch-manager.test.js +60 -0
  6. package/dist/__tests__/autofix/branch-manager.test.js.map +1 -0
  7. package/dist/__tests__/autofix/commit-generator.test.d.ts +2 -0
  8. package/dist/__tests__/autofix/commit-generator.test.d.ts.map +1 -0
  9. package/dist/__tests__/autofix/commit-generator.test.js +147 -0
  10. package/dist/__tests__/autofix/commit-generator.test.js.map +1 -0
  11. package/dist/__tests__/autofix/constitution.test.d.ts +9 -0
  12. package/dist/__tests__/autofix/constitution.test.d.ts.map +1 -0
  13. package/dist/__tests__/autofix/constitution.test.js +421 -0
  14. package/dist/__tests__/autofix/constitution.test.js.map +1 -0
  15. package/dist/__tests__/autofix/pr-generator.test.d.ts +2 -0
  16. package/dist/__tests__/autofix/pr-generator.test.d.ts.map +1 -0
  17. package/dist/__tests__/autofix/pr-generator.test.js +152 -0
  18. package/dist/__tests__/autofix/pr-generator.test.js.map +1 -0
  19. package/dist/__tests__/property-test-helpers.d.ts +87 -0
  20. package/dist/__tests__/property-test-helpers.d.ts.map +1 -0
  21. package/dist/__tests__/property-test-helpers.js +136 -0
  22. package/dist/__tests__/property-test-helpers.js.map +1 -0
  23. package/dist/__tests__/scanners/ai-code/ai-detector.test.d.ts +2 -0
  24. package/dist/__tests__/scanners/ai-code/ai-detector.test.d.ts.map +1 -0
  25. package/dist/__tests__/scanners/ai-code/ai-detector.test.js +188 -0
  26. package/dist/__tests__/scanners/ai-code/ai-detector.test.js.map +1 -0
  27. package/dist/__tests__/scanners/ai-code/confidence-scorer.test.d.ts +2 -0
  28. package/dist/__tests__/scanners/ai-code/confidence-scorer.test.d.ts.map +1 -0
  29. package/dist/__tests__/scanners/ai-code/confidence-scorer.test.js +363 -0
  30. package/dist/__tests__/scanners/ai-code/confidence-scorer.test.js.map +1 -0
  31. package/dist/__tests__/scanners/ai-code/hallucination-checker.test.d.ts +2 -0
  32. package/dist/__tests__/scanners/ai-code/hallucination-checker.test.d.ts.map +1 -0
  33. package/dist/__tests__/scanners/ai-code/hallucination-checker.test.js +226 -0
  34. package/dist/__tests__/scanners/ai-code/hallucination-checker.test.js.map +1 -0
  35. package/dist/__tests__/scanners/ai-code/index.test.d.ts +2 -0
  36. package/dist/__tests__/scanners/ai-code/index.test.d.ts.map +1 -0
  37. package/dist/__tests__/scanners/ai-code/index.test.js +214 -0
  38. package/dist/__tests__/scanners/ai-code/index.test.js.map +1 -0
  39. package/dist/__tests__/scanners/dast/index.test.d.ts +2 -0
  40. package/dist/__tests__/scanners/dast/index.test.d.ts.map +1 -0
  41. package/dist/__tests__/scanners/dast/index.test.js +183 -0
  42. package/dist/__tests__/scanners/dast/index.test.js.map +1 -0
  43. package/dist/__tests__/scanners/dast/nuclei.test.d.ts +2 -0
  44. package/dist/__tests__/scanners/dast/nuclei.test.d.ts.map +1 -0
  45. package/dist/__tests__/scanners/dast/nuclei.test.js +166 -0
  46. package/dist/__tests__/scanners/dast/nuclei.test.js.map +1 -0
  47. package/dist/__tests__/scanners/dast/zap.test.d.ts +2 -0
  48. package/dist/__tests__/scanners/dast/zap.test.d.ts.map +1 -0
  49. package/dist/__tests__/scanners/dast/zap.test.js +158 -0
  50. package/dist/__tests__/scanners/dast/zap.test.js.map +1 -0
  51. package/dist/__tests__/scanners/deploy/health-checker.test.d.ts +2 -0
  52. package/dist/__tests__/scanners/deploy/health-checker.test.d.ts.map +1 -0
  53. package/dist/__tests__/scanners/deploy/health-checker.test.js +67 -0
  54. package/dist/__tests__/scanners/deploy/health-checker.test.js.map +1 -0
  55. package/dist/__tests__/scanners/deploy/index.test.d.ts +2 -0
  56. package/dist/__tests__/scanners/deploy/index.test.d.ts.map +1 -0
  57. package/dist/__tests__/scanners/deploy/index.test.js +84 -0
  58. package/dist/__tests__/scanners/deploy/index.test.js.map +1 -0
  59. package/dist/__tests__/scanners/deploy/provider-detector.test.d.ts +2 -0
  60. package/dist/__tests__/scanners/deploy/provider-detector.test.d.ts.map +1 -0
  61. package/dist/__tests__/scanners/deploy/provider-detector.test.js +88 -0
  62. package/dist/__tests__/scanners/deploy/provider-detector.test.js.map +1 -0
  63. package/dist/__tests__/scanners/deploy/types.test.d.ts +2 -0
  64. package/dist/__tests__/scanners/deploy/types.test.d.ts.map +1 -0
  65. package/dist/__tests__/scanners/deploy/types.test.js +126 -0
  66. package/dist/__tests__/scanners/deploy/types.test.js.map +1 -0
  67. package/dist/__tests__/scanners/fp-feedback.test.d.ts +2 -0
  68. package/dist/__tests__/scanners/fp-feedback.test.d.ts.map +1 -0
  69. package/dist/__tests__/scanners/fp-feedback.test.js +202 -0
  70. package/dist/__tests__/scanners/fp-feedback.test.js.map +1 -0
  71. package/dist/__tests__/scanners/fp-filter.property.test.d.ts +9 -0
  72. package/dist/__tests__/scanners/fp-filter.property.test.d.ts.map +1 -0
  73. package/dist/__tests__/scanners/fp-filter.property.test.js +253 -0
  74. package/dist/__tests__/scanners/fp-filter.property.test.js.map +1 -0
  75. package/dist/__tests__/scanners/fp-filter.test.d.ts +2 -0
  76. package/dist/__tests__/scanners/fp-filter.test.d.ts.map +1 -0
  77. package/dist/__tests__/scanners/fp-filter.test.js +234 -0
  78. package/dist/__tests__/scanners/fp-filter.test.js.map +1 -0
  79. package/dist/__tests__/scanners/fp-tracker.test.d.ts +2 -0
  80. package/dist/__tests__/scanners/fp-tracker.test.d.ts.map +1 -0
  81. package/dist/__tests__/scanners/fp-tracker.test.js +262 -0
  82. package/dist/__tests__/scanners/fp-tracker.test.js.map +1 -0
  83. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.d.ts +10 -0
  84. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.d.ts.map +1 -0
  85. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.js +238 -0
  86. package/dist/__tests__/scanners/logic/endpoint-analyzer.property.test.js.map +1 -0
  87. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.d.ts +2 -0
  88. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.d.ts.map +1 -0
  89. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.js +55 -0
  90. package/dist/__tests__/scanners/logic/endpoint-analyzer.test.js.map +1 -0
  91. package/dist/__tests__/scanners/logic/index.test.d.ts +2 -0
  92. package/dist/__tests__/scanners/logic/index.test.d.ts.map +1 -0
  93. package/dist/__tests__/scanners/logic/index.test.js +165 -0
  94. package/dist/__tests__/scanners/logic/index.test.js.map +1 -0
  95. package/dist/__tests__/scanners/logic/types.test.d.ts +2 -0
  96. package/dist/__tests__/scanners/logic/types.test.d.ts.map +1 -0
  97. package/dist/__tests__/scanners/logic/types.test.js +85 -0
  98. package/dist/__tests__/scanners/logic/types.test.js.map +1 -0
  99. package/dist/__tests__/scanners/runtime/app-launcher.test.d.ts +2 -0
  100. package/dist/__tests__/scanners/runtime/app-launcher.test.d.ts.map +1 -0
  101. package/dist/__tests__/scanners/runtime/app-launcher.test.js +94 -0
  102. package/dist/__tests__/scanners/runtime/app-launcher.test.js.map +1 -0
  103. package/dist/__tests__/scanners/runtime/golden-path-runner.test.d.ts +2 -0
  104. package/dist/__tests__/scanners/runtime/golden-path-runner.test.d.ts.map +1 -0
  105. package/dist/__tests__/scanners/runtime/golden-path-runner.test.js +195 -0
  106. package/dist/__tests__/scanners/runtime/golden-path-runner.test.js.map +1 -0
  107. package/dist/__tests__/scanners/runtime/index.test.d.ts +2 -0
  108. package/dist/__tests__/scanners/runtime/index.test.d.ts.map +1 -0
  109. package/dist/__tests__/scanners/runtime/index.test.js +120 -0
  110. package/dist/__tests__/scanners/runtime/index.test.js.map +1 -0
  111. package/dist/__tests__/scanners/runtime/types.test.d.ts +2 -0
  112. package/dist/__tests__/scanners/runtime/types.test.d.ts.map +1 -0
  113. package/dist/__tests__/scanners/runtime/types.test.js +126 -0
  114. package/dist/__tests__/scanners/runtime/types.test.js.map +1 -0
  115. package/dist/__tests__/scanners/scale/bottleneck-detector.test.d.ts +2 -0
  116. package/dist/__tests__/scanners/scale/bottleneck-detector.test.d.ts.map +1 -0
  117. package/dist/__tests__/scanners/scale/bottleneck-detector.test.js +187 -0
  118. package/dist/__tests__/scanners/scale/bottleneck-detector.test.js.map +1 -0
  119. package/dist/__tests__/scanners/scale/index.test.d.ts +2 -0
  120. package/dist/__tests__/scanners/scale/index.test.d.ts.map +1 -0
  121. package/dist/__tests__/scanners/scale/index.test.js +87 -0
  122. package/dist/__tests__/scanners/scale/index.test.js.map +1 -0
  123. package/dist/__tests__/scanners/scale/load-profiler.test.d.ts +2 -0
  124. package/dist/__tests__/scanners/scale/load-profiler.test.d.ts.map +1 -0
  125. package/dist/__tests__/scanners/scale/load-profiler.test.js +122 -0
  126. package/dist/__tests__/scanners/scale/load-profiler.test.js.map +1 -0
  127. package/dist/__tests__/scanners/scale/types.test.d.ts +2 -0
  128. package/dist/__tests__/scanners/scale/types.test.d.ts.map +1 -0
  129. package/dist/__tests__/scanners/scale/types.test.js +129 -0
  130. package/dist/__tests__/scanners/scale/types.test.js.map +1 -0
  131. package/dist/action/pr-comment.test.js +4 -0
  132. package/dist/action/pr-comment.test.js.map +1 -1
  133. package/dist/action/sarif-upload.test.js +4 -0
  134. package/dist/action/sarif-upload.test.js.map +1 -1
  135. package/dist/autofix/branch-manager.d.ts +115 -0
  136. package/dist/autofix/branch-manager.d.ts.map +1 -0
  137. package/dist/autofix/branch-manager.js +308 -0
  138. package/dist/autofix/branch-manager.js.map +1 -0
  139. package/dist/autofix/commit-generator.d.ts +55 -0
  140. package/dist/autofix/commit-generator.d.ts.map +1 -0
  141. package/dist/autofix/commit-generator.js +277 -0
  142. package/dist/autofix/commit-generator.js.map +1 -0
  143. package/dist/autofix/constitution.d.ts +77 -0
  144. package/dist/autofix/constitution.d.ts.map +1 -0
  145. package/dist/autofix/constitution.js +261 -0
  146. package/dist/autofix/constitution.js.map +1 -0
  147. package/dist/autofix/constitution.schema.d.ts +441 -0
  148. package/dist/autofix/constitution.schema.d.ts.map +1 -0
  149. package/dist/autofix/constitution.schema.js +144 -0
  150. package/dist/autofix/constitution.schema.js.map +1 -0
  151. package/dist/autofix/index.d.ts +13 -0
  152. package/dist/autofix/index.d.ts.map +1 -0
  153. package/dist/autofix/index.js +15 -0
  154. package/dist/autofix/index.js.map +1 -0
  155. package/dist/autofix/pr-generator.d.ts +57 -0
  156. package/dist/autofix/pr-generator.d.ts.map +1 -0
  157. package/dist/autofix/pr-generator.js +597 -0
  158. package/dist/autofix/pr-generator.js.map +1 -0
  159. package/dist/autofix/types.d.ts +151 -0
  160. package/dist/autofix/types.d.ts.map +1 -0
  161. package/dist/autofix/types.js +22 -0
  162. package/dist/autofix/types.js.map +1 -0
  163. package/dist/eval/fixtures.d.ts +20 -0
  164. package/dist/eval/fixtures.d.ts.map +1 -1
  165. package/dist/eval/fixtures.js +430 -0
  166. package/dist/eval/fixtures.js.map +1 -1
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +874 -0
  169. package/dist/index.js.map +1 -1
  170. package/dist/install-skills.d.ts +11 -0
  171. package/dist/install-skills.d.ts.map +1 -0
  172. package/dist/install-skills.js +81 -0
  173. package/dist/install-skills.js.map +1 -0
  174. package/dist/scanners/ai-code/ai-detector.d.ts +25 -0
  175. package/dist/scanners/ai-code/ai-detector.d.ts.map +1 -0
  176. package/dist/scanners/ai-code/ai-detector.js +192 -0
  177. package/dist/scanners/ai-code/ai-detector.js.map +1 -0
  178. package/dist/scanners/ai-code/confidence-scorer.d.ts +40 -0
  179. package/dist/scanners/ai-code/confidence-scorer.d.ts.map +1 -0
  180. package/dist/scanners/ai-code/confidence-scorer.js +148 -0
  181. package/dist/scanners/ai-code/confidence-scorer.js.map +1 -0
  182. package/dist/scanners/ai-code/hallucination-checker.d.ts +36 -0
  183. package/dist/scanners/ai-code/hallucination-checker.d.ts.map +1 -0
  184. package/dist/scanners/ai-code/hallucination-checker.js +298 -0
  185. package/dist/scanners/ai-code/hallucination-checker.js.map +1 -0
  186. package/dist/scanners/ai-code/index.d.ts +30 -0
  187. package/dist/scanners/ai-code/index.d.ts.map +1 -0
  188. package/dist/scanners/ai-code/index.js +224 -0
  189. package/dist/scanners/ai-code/index.js.map +1 -0
  190. package/dist/scanners/ai-code/types.d.ts +192 -0
  191. package/dist/scanners/ai-code/types.d.ts.map +1 -0
  192. package/dist/scanners/ai-code/types.js +37 -0
  193. package/dist/scanners/ai-code/types.js.map +1 -0
  194. package/dist/scanners/cache.d.ts.map +1 -1
  195. package/dist/scanners/cache.js +4 -0
  196. package/dist/scanners/cache.js.map +1 -1
  197. package/dist/scanners/dast/index.d.ts +39 -0
  198. package/dist/scanners/dast/index.d.ts.map +1 -0
  199. package/dist/scanners/dast/index.js +259 -0
  200. package/dist/scanners/dast/index.js.map +1 -0
  201. package/dist/scanners/dast/nuclei.d.ts +26 -0
  202. package/dist/scanners/dast/nuclei.d.ts.map +1 -0
  203. package/dist/scanners/dast/nuclei.js +354 -0
  204. package/dist/scanners/dast/nuclei.js.map +1 -0
  205. package/dist/scanners/dast/types.d.ts +306 -0
  206. package/dist/scanners/dast/types.d.ts.map +1 -0
  207. package/dist/scanners/dast/types.js +52 -0
  208. package/dist/scanners/dast/types.js.map +1 -0
  209. package/dist/scanners/dast/zap.d.ts +26 -0
  210. package/dist/scanners/dast/zap.d.ts.map +1 -0
  211. package/dist/scanners/dast/zap.js +453 -0
  212. package/dist/scanners/dast/zap.js.map +1 -0
  213. package/dist/scanners/deploy/health-checker.d.ts +38 -0
  214. package/dist/scanners/deploy/health-checker.d.ts.map +1 -0
  215. package/dist/scanners/deploy/health-checker.js +272 -0
  216. package/dist/scanners/deploy/health-checker.js.map +1 -0
  217. package/dist/scanners/deploy/index.d.ts +44 -0
  218. package/dist/scanners/deploy/index.d.ts.map +1 -0
  219. package/dist/scanners/deploy/index.js +208 -0
  220. package/dist/scanners/deploy/index.js.map +1 -0
  221. package/dist/scanners/deploy/provider-detector.d.ts +25 -0
  222. package/dist/scanners/deploy/provider-detector.d.ts.map +1 -0
  223. package/dist/scanners/deploy/provider-detector.js +177 -0
  224. package/dist/scanners/deploy/provider-detector.js.map +1 -0
  225. package/dist/scanners/deploy/types.d.ts +406 -0
  226. package/dist/scanners/deploy/types.d.ts.map +1 -0
  227. package/dist/scanners/deploy/types.js +58 -0
  228. package/dist/scanners/deploy/types.js.map +1 -0
  229. package/dist/scanners/deploy/vercel-integration.d.ts +52 -0
  230. package/dist/scanners/deploy/vercel-integration.d.ts.map +1 -0
  231. package/dist/scanners/deploy/vercel-integration.js +280 -0
  232. package/dist/scanners/deploy/vercel-integration.js.map +1 -0
  233. package/dist/scanners/fp-feedback.d.ts +140 -0
  234. package/dist/scanners/fp-feedback.d.ts.map +1 -0
  235. package/dist/scanners/fp-feedback.js +292 -0
  236. package/dist/scanners/fp-feedback.js.map +1 -0
  237. package/dist/scanners/fp-filter.d.ts +94 -0
  238. package/dist/scanners/fp-filter.d.ts.map +1 -0
  239. package/dist/scanners/fp-filter.js +397 -0
  240. package/dist/scanners/fp-filter.js.map +1 -0
  241. package/dist/scanners/fp-tracker.d.ts +125 -0
  242. package/dist/scanners/fp-tracker.d.ts.map +1 -0
  243. package/dist/scanners/fp-tracker.js +330 -0
  244. package/dist/scanners/fp-tracker.js.map +1 -0
  245. package/dist/scanners/index.d.ts.map +1 -1
  246. package/dist/scanners/index.js +56 -0
  247. package/dist/scanners/index.js.map +1 -1
  248. package/dist/scanners/index.test.js +6 -6
  249. package/dist/scanners/index.test.js.map +1 -1
  250. package/dist/scanners/logic/auth-flow-analyzer.d.ts +18 -0
  251. package/dist/scanners/logic/auth-flow-analyzer.d.ts.map +1 -0
  252. package/dist/scanners/logic/auth-flow-analyzer.js +384 -0
  253. package/dist/scanners/logic/auth-flow-analyzer.js.map +1 -0
  254. package/dist/scanners/logic/endpoint-analyzer.d.ts +29 -0
  255. package/dist/scanners/logic/endpoint-analyzer.d.ts.map +1 -0
  256. package/dist/scanners/logic/endpoint-analyzer.js +528 -0
  257. package/dist/scanners/logic/endpoint-analyzer.js.map +1 -0
  258. package/dist/scanners/logic/index.d.ts +41 -0
  259. package/dist/scanners/logic/index.d.ts.map +1 -0
  260. package/dist/scanners/logic/index.js +268 -0
  261. package/dist/scanners/logic/index.js.map +1 -0
  262. package/dist/scanners/logic/types.d.ts +254 -0
  263. package/dist/scanners/logic/types.d.ts.map +1 -0
  264. package/dist/scanners/logic/types.js +142 -0
  265. package/dist/scanners/logic/types.js.map +1 -0
  266. package/dist/scanners/runtime/app-launcher.d.ts +33 -0
  267. package/dist/scanners/runtime/app-launcher.d.ts.map +1 -0
  268. package/dist/scanners/runtime/app-launcher.js +419 -0
  269. package/dist/scanners/runtime/app-launcher.js.map +1 -0
  270. package/dist/scanners/runtime/golden-path-runner.d.ts +48 -0
  271. package/dist/scanners/runtime/golden-path-runner.d.ts.map +1 -0
  272. package/dist/scanners/runtime/golden-path-runner.js +373 -0
  273. package/dist/scanners/runtime/golden-path-runner.js.map +1 -0
  274. package/dist/scanners/runtime/index.d.ts +41 -0
  275. package/dist/scanners/runtime/index.d.ts.map +1 -0
  276. package/dist/scanners/runtime/index.js +164 -0
  277. package/dist/scanners/runtime/index.js.map +1 -0
  278. package/dist/scanners/runtime/playwright-executor.d.ts +50 -0
  279. package/dist/scanners/runtime/playwright-executor.d.ts.map +1 -0
  280. package/dist/scanners/runtime/playwright-executor.js +387 -0
  281. package/dist/scanners/runtime/playwright-executor.js.map +1 -0
  282. package/dist/scanners/runtime/types.d.ts +215 -0
  283. package/dist/scanners/runtime/types.d.ts.map +1 -0
  284. package/dist/scanners/runtime/types.js +40 -0
  285. package/dist/scanners/runtime/types.js.map +1 -0
  286. package/dist/scanners/scale/bottleneck-detector.d.ts +17 -0
  287. package/dist/scanners/scale/bottleneck-detector.d.ts.map +1 -0
  288. package/dist/scanners/scale/bottleneck-detector.js +250 -0
  289. package/dist/scanners/scale/bottleneck-detector.js.map +1 -0
  290. package/dist/scanners/scale/capacity-estimator.d.ts +17 -0
  291. package/dist/scanners/scale/capacity-estimator.d.ts.map +1 -0
  292. package/dist/scanners/scale/capacity-estimator.js +197 -0
  293. package/dist/scanners/scale/capacity-estimator.js.map +1 -0
  294. package/dist/scanners/scale/index.d.ts +37 -0
  295. package/dist/scanners/scale/index.d.ts.map +1 -0
  296. package/dist/scanners/scale/index.js +101 -0
  297. package/dist/scanners/scale/index.js.map +1 -0
  298. package/dist/scanners/scale/load-profiler.d.ts +48 -0
  299. package/dist/scanners/scale/load-profiler.d.ts.map +1 -0
  300. package/dist/scanners/scale/load-profiler.js +377 -0
  301. package/dist/scanners/scale/load-profiler.js.map +1 -0
  302. package/dist/scanners/scale/types.d.ts +529 -0
  303. package/dist/scanners/scale/types.d.ts.map +1 -0
  304. package/dist/scanners/scale/types.js +57 -0
  305. package/dist/scanners/scale/types.js.map +1 -0
  306. package/dist/scanners/secrets.d.ts.map +1 -1
  307. package/dist/scanners/secrets.js +13 -2
  308. package/dist/scanners/secrets.js.map +1 -1
  309. package/dist/scanners/types.d.ts +1 -1
  310. package/dist/scanners/types.d.ts.map +1 -1
  311. package/dist/scanners/types.js +4 -0
  312. package/dist/scanners/types.js.map +1 -1
  313. package/package.json +8 -4
  314. package/skills/vaspera-add-tests/SKILL.md +102 -0
  315. package/skills/vaspera-ai-verify/SKILL.md +166 -0
  316. package/skills/vaspera-audit/SKILL.md +67 -0
  317. package/skills/vaspera-certify/SKILL.md +130 -0
  318. package/skills/vaspera-deploy/SKILL.md +152 -0
  319. package/skills/vaspera-fix-critical/SKILL.md +52 -0
  320. package/skills/vaspera-fix-high/SKILL.md +81 -0
  321. package/skills/vaspera-fix-medium/SKILL.md +56 -0
  322. package/skills/vaspera-fix-rls/SKILL.md +85 -0
  323. package/skills/vaspera-harden/SKILL.md +102 -0
  324. package/skills/vaspera-help/SKILL.md +61 -0
  325. package/skills/vaspera-load-test/SKILL.md +167 -0
  326. package/skills/vaspera-verify/SKILL.md +70 -0
  327. package/skills/vaspera-verify-e2e/SKILL.md +117 -0
@@ -0,0 +1,152 @@
1
+ ---
2
+ description: Run deployment verification and health checks (M9)
3
+ argument-hint: "[deployment-url]"
4
+ allowed-tools: Bash, Read, Write, Glob, Grep
5
+ ---
6
+
7
+ Run deployment verification against a deployed app.
8
+
9
+ ## Steps
10
+
11
+ 1. **Validate deployment URL**
12
+ - Require deployment URL as argument
13
+ - Validate URL format
14
+
15
+ 2. **Detect deployment provider**
16
+ - Use `deploy_detect` MCP tool
17
+ - Check for Vercel, AWS, GCP, Railway, Render, Fly
18
+
19
+ 3. **Load deployment config**
20
+ - Look for `.vaspera/deploy.yaml`
21
+ - If not found, offer to generate sample config
22
+
23
+ 4. **Run health checks**
24
+ - Check configured health endpoints
25
+ - Default: `/`, `/api/health`
26
+ - Measure response times and status codes
27
+
28
+ 5. **Run smoke tests**
29
+ - Execute tests from config
30
+ - Check status codes, latency, response bodies
31
+
32
+ 6. **Analyze results**
33
+ - Calculate health score (0-100)
34
+ - Calculate smoke test score (0-100)
35
+ - Calculate overall deploy score
36
+
37
+ 7. **Present results**
38
+ ```
39
+ Deployment Verification Results
40
+ ================================
41
+ Provider: Vercel (detected)
42
+ URL: https://my-app.vercel.app
43
+
44
+ Health Checks:
45
+ ┌────────────────┬──────────┬──────────┬────────────┐
46
+ │ Endpoint │ Status │ Code │ Time (ms) │
47
+ ├────────────────┼──────────┼──────────┼────────────┤
48
+ │ / │ ✅ healthy│ 200 │ 89 │
49
+ │ /api/health │ ✅ healthy│ 200 │ 45 │
50
+ │ /api/data │ ⚠️ degraded│ 200 │ 612 │
51
+ └────────────────┴──────────┴──────────┴────────────┘
52
+
53
+ Smoke Tests:
54
+ ┌────────────────────────┬──────────┬────────────┐
55
+ │ Test │ Status │ Time (ms) │
56
+ ├────────────────────────┼──────────┼────────────┤
57
+ │ Homepage loads │ ✅ PASS │ 89 │
58
+ │ API health check │ ✅ PASS │ 45 │
59
+ │ User can login │ ❌ FAIL │ 1200 │
60
+ └────────────────────────┴──────────┴────────────┘
61
+
62
+ Scores:
63
+ - Health: 87/100
64
+ - Smoke Tests: 67/100
65
+ - Overall: 77/100
66
+
67
+ Certification Level: 🟡 APPROVED
68
+ → Ship with monitoring
69
+ ```
70
+
71
+ 8. **Vercel-specific actions** (if Vercel detected)
72
+ - List recent deployments
73
+ - Promote preview to production
74
+ - Rollback to previous version
75
+
76
+ ## Config Format
77
+
78
+ Config is defined in `.vaspera/deploy.yaml`:
79
+
80
+ ```yaml
81
+ provider: vercel # Optional, auto-detected
82
+
83
+ healthEndpoints:
84
+ - /
85
+ - /api/health
86
+ - /api/ready
87
+
88
+ smokeTests:
89
+ - name: "Homepage loads"
90
+ endpoint: "/"
91
+ method: GET
92
+ expectedStatus: 200
93
+
94
+ - name: "API health check"
95
+ endpoint: "/api/health"
96
+ method: GET
97
+ expectedStatus: 200
98
+ assertions:
99
+ - type: latency
100
+ operator: lt
101
+ value: 500
102
+
103
+ - name: "User can login"
104
+ endpoint: "/api/auth/login"
105
+ method: POST
106
+ expectedStatus: 200
107
+ body:
108
+ email: "test@example.com"
109
+ password: "testpass"
110
+
111
+ canary:
112
+ enabled: true
113
+ trafficPercent: 10
114
+ duration: "10m"
115
+ thresholds:
116
+ errorRate: 0.01
117
+ p95Latency: 500
118
+ rollbackOnFailure: true
119
+
120
+ rollback:
121
+ autoRollback: true
122
+ retainVersions: 5
123
+ ```
124
+
125
+ ## MCP Tools Used
126
+
127
+ - `deploy_detect` — Detect deployment provider
128
+ - `deploy_verify` — Full verification
129
+ - `deploy_health` — Quick health check
130
+ - `deploy_config_generate` — Create sample config
131
+ - `deploy_vercel_list` — List Vercel deployments
132
+ - `deploy_vercel_promote` — Promote to production
133
+ - `deploy_vercel_rollback` — Rollback deployment
134
+
135
+ ## Vercel Integration
136
+
137
+ Set `VERCEL_TOKEN` for full Vercel integration:
138
+ ```bash
139
+ export VERCEL_TOKEN=your_token_here
140
+ ```
141
+
142
+ Commands available with Vercel token:
143
+ - List recent deployments
144
+ - Promote preview to production
145
+ - Rollback to previous version
146
+
147
+ ## Important
148
+
149
+ - Always verify deployment URLs before promoting to production
150
+ - Smoke tests hit the actual deployment — use test data
151
+ - Canary analysis requires the app to be running for the duration
152
+ - Rollbacks are immediate — verify the target deployment first
@@ -0,0 +1,52 @@
1
+ ---
2
+ description: Fix all CRITICAL severity security findings
3
+ argument-hint: "[project-path: defaults to .]"
4
+ allowed-tools: Read, Edit, Write, Bash, Grep, Glob
5
+ ---
6
+
7
+ Remediate all CRITICAL severity findings with verification loop.
8
+
9
+ ## Steps
10
+
11
+ 1. **Load audit findings**
12
+ - Read latest from `.vaspera/audit/*.json` (most recent by timestamp)
13
+ - If no audit exists, run `/vaspera-audit` first
14
+ - Filter findings where `severity === "critical"`
15
+
16
+ 2. **Categorize critical findings**
17
+ Critical categories:
18
+ - Unhandled async/await (crashes)
19
+ - Missing auth checks (unauthorized access)
20
+ - Missing RLS policies (data leakage)
21
+ - Hardcoded secrets (credential exposure)
22
+ - Raw SQL injection (CWE-89)
23
+ - dangerouslySetInnerHTML (XSS, CWE-79)
24
+ - Publicly exposed endpoints
25
+ - Missing CORS configuration
26
+
27
+ 3. **For each finding**
28
+ - Show file location with context (3 lines before/after)
29
+ - Preview the fix (before/after diff)
30
+ - Apply fix:
31
+ - Auto-apply if pattern has `safeToAutoApply: true`
32
+ - Otherwise, confirm with user
33
+ - Run `npm run build` to verify no compile errors
34
+
35
+ 4. **Verification loop**
36
+ - After fixing a group of related findings, re-run the targeted scanner
37
+ - Example: after fixing gitleaks findings, run gitleaks again
38
+ - Confirm finding count decreased
39
+ - If new findings appear (regressions), flag immediately
40
+
41
+ 5. **Final report**
42
+ - N critical findings fixed
43
+ - M critical findings remaining (with reasons)
44
+ - Any regressions introduced
45
+ - Suggest `/vaspera-fix-high` as next step
46
+
47
+ ## Important
48
+
49
+ - ALWAYS run `npm run build` after each fix to catch compile errors early
50
+ - NEVER skip the verification loop — re-scan to confirm fixes worked
51
+ - Stage changes but do NOT commit unless user requests
52
+ - If a fix requires manual intervention, explain why and provide guidance
@@ -0,0 +1,81 @@
1
+ ---
2
+ description: Fix HIGH severity findings in 4 rounds
3
+ argument-hint: "[project-path: defaults to .]"
4
+ allowed-tools: Read, Edit, Write, Bash, Grep, Glob
5
+ ---
6
+
7
+ Remediate HIGH severity findings systematically in 4 rounds.
8
+
9
+ ## Steps
10
+
11
+ 1. **Load audit findings**
12
+ - Read latest from `.vaspera/audit/*.json`
13
+ - Filter findings where `severity === "high"`
14
+ - Group by category for round assignment
15
+
16
+ 2. **Round A: Input Validation**
17
+ Target findings related to:
18
+ - Missing Zod schemas
19
+ - Missing safeParse calls
20
+ - Missing 400 responses for invalid input
21
+ - Unvalidated user input
22
+
23
+ For each:
24
+ - Add Zod schema if missing
25
+ - Replace direct access with safeParse
26
+ - Add proper error responses
27
+ - Run `npm run build` to verify
28
+
29
+ 3. **Round B: TypeScript Strictness**
30
+ Target findings related to:
31
+ - `any` type annotations
32
+ - Missing explicit return types
33
+ - Unsafe type assertions (`as unknown as T`)
34
+
35
+ For each:
36
+ - Replace `any` with proper types or `unknown`
37
+ - Add explicit return types to functions
38
+ - Replace unsafe casts with type guards
39
+ - Run `npm run build` to verify
40
+
41
+ 4. **Round C: UI Resilience**
42
+ Target findings related to:
43
+ - Missing loading states
44
+ - Missing error states
45
+ - Missing empty states
46
+ - Missing cleanup for subscriptions/listeners
47
+ - Missing Error Boundaries
48
+
49
+ For each:
50
+ - Add loading/error/empty state handling
51
+ - Add cleanup in useEffect return
52
+ - Wrap risky components in Error Boundaries
53
+ - Run `npm run build` to verify
54
+
55
+ 5. **Round D: API Hardening**
56
+ Target findings related to:
57
+ - Error response leaking internal details
58
+ - Missing revalidatePath calls
59
+ - Inconsistent response shapes
60
+
61
+ For each:
62
+ - Sanitize error responses
63
+ - Add cache invalidation
64
+ - Standardize response format
65
+ - Run `npm run build` to verify
66
+
67
+ 6. **After each round**
68
+ - Commit with: `fix: resolve high-severity issues (round X)`
69
+ - Re-scan to verify finding count decreased
70
+ - Report progress: N fixed in round X
71
+
72
+ 7. **Final report**
73
+ - Total high findings fixed across all rounds
74
+ - Remaining high findings (if any)
75
+ - Suggest `/vaspera-fix-medium` as next step
76
+
77
+ ## Important
78
+
79
+ - Complete each round fully before moving to next
80
+ - Commit after each round for clean rollback if needed
81
+ - If a fix is unclear, ask for guidance rather than guessing
@@ -0,0 +1,56 @@
1
+ ---
2
+ description: Fix MEDIUM severity findings
3
+ argument-hint: "[project-path: defaults to .]"
4
+ allowed-tools: Read, Edit, Write, Bash, Grep, Glob
5
+ ---
6
+
7
+ Remediate MEDIUM severity findings in a single pass.
8
+
9
+ ## Steps
10
+
11
+ 1. **Load audit findings**
12
+ - Read latest from `.vaspera/audit/*.json`
13
+ - Filter findings where `severity === "medium"`
14
+
15
+ 2. **Categorize and fix**
16
+ Medium categories:
17
+
18
+ **Code Quality**
19
+ - Missing test files → Add basic test coverage
20
+ - Code duplication → Extract shared utilities
21
+ - Components >300 lines → Split into smaller components
22
+ - Hardcoded strings → Extract to constants/i18n
23
+
24
+ **Type Safety**
25
+ - Missing return types → Add explicit return types
26
+ - Implicit any (not explicit) → Add proper typing
27
+
28
+ **Error Handling**
29
+ - No structured logging → Add logger calls
30
+ - Inconsistent error responses → Standardize format
31
+ - No error boundaries → Add React Error Boundaries
32
+
33
+ **Architecture**
34
+ - Manual schema management → Add migration files
35
+ - Scattered Supabase clients → Centralize client creation
36
+
37
+ 3. **For each finding**
38
+ - Show context and proposed fix
39
+ - Apply fix with user confirmation
40
+ - Run `npm run build` to verify
41
+
42
+ 4. **Verification**
43
+ - After all fixes, re-run audit
44
+ - Confirm medium count decreased
45
+ - Flag any regressions
46
+
47
+ 5. **Final report**
48
+ - N medium findings fixed
49
+ - Remaining medium findings
50
+ - Suggest `/vaspera-add-tests` as next step
51
+
52
+ ## Important
53
+
54
+ - Medium fixes are lower priority but improve maintainability
55
+ - Some fixes may require architectural decisions — ask if unclear
56
+ - Stage changes but do NOT commit unless user requests
@@ -0,0 +1,85 @@
1
+ ---
2
+ description: Generate and apply Supabase Row Level Security policies
3
+ argument-hint: "[project-path: defaults to .]"
4
+ allowed-tools: Read, Write, Bash, Grep, Glob
5
+ ---
6
+
7
+ Generate RLS policies for Supabase tables to prevent unauthorized data access.
8
+
9
+ ## Steps
10
+
11
+ 1. **Discover tables**
12
+ - Scan `supabase/migrations/` for CREATE TABLE statements
13
+ - Scan seed files for table references
14
+ - Scan codebase for `supabase.from('table_name')` calls
15
+ - Build complete table inventory
16
+
17
+ 2. **Detect existing policies**
18
+ - Look for `CREATE POLICY` statements in migrations
19
+ - Look for `ALTER TABLE ... ENABLE ROW LEVEL SECURITY`
20
+ - Identify tables with RLS enabled vs disabled
21
+
22
+ 3. **Analyze access patterns**
23
+ For each `supabase.from()` call:
24
+ - What columns are selected?
25
+ - Is there a `.eq('user_id', ...)` filter?
26
+ - Is it in an authenticated context?
27
+ - Infer ownership column (usually `user_id` or `owner_id`)
28
+
29
+ 4. **Generate migration**
30
+ For tables missing RLS:
31
+ ```sql
32
+ -- Enable RLS
33
+ ALTER TABLE table_name ENABLE ROW LEVEL SECURITY;
34
+
35
+ -- SELECT: users can only read their own rows
36
+ CREATE POLICY "Users can view own rows"
37
+ ON table_name FOR SELECT
38
+ USING (auth.uid() = user_id);
39
+
40
+ -- INSERT: users can only insert with their user_id
41
+ CREATE POLICY "Users can insert own rows"
42
+ ON table_name FOR INSERT
43
+ WITH CHECK (auth.uid() = user_id);
44
+
45
+ -- UPDATE: users can only update their own rows
46
+ CREATE POLICY "Users can update own rows"
47
+ ON table_name FOR UPDATE
48
+ USING (auth.uid() = user_id);
49
+
50
+ -- DELETE: users can only delete their own rows
51
+ CREATE POLICY "Users can delete own rows"
52
+ ON table_name FOR DELETE
53
+ USING (auth.uid() = user_id);
54
+ ```
55
+
56
+ 5. **Write migration file**
57
+ - Create `supabase/migrations/{timestamp}_add_rls_policies.sql`
58
+ - Include all generated policies
59
+
60
+ 6. **Generate RLS-REPORT.md**
61
+ ```markdown
62
+ # RLS Policy Report
63
+
64
+ ## Tables with RLS
65
+ | Table | SELECT | INSERT | UPDATE | DELETE |
66
+ |-------|--------|--------|--------|--------|
67
+ | users | ✅ | ✅ | ✅ | ✅ |
68
+
69
+ ## Tables MISSING RLS (CRITICAL)
70
+ - orders (no policies, added in migration)
71
+
72
+ ## Service Role Usage (review required)
73
+ - src/api/admin.ts:42 — uses service role key
74
+ ```
75
+
76
+ 7. **Optionally apply**
77
+ - If user confirms: `supabase db push`
78
+ - Otherwise: leave migration file for manual review
79
+
80
+ ## Important
81
+
82
+ - RLS is the MOST IMPORTANT security control for multi-tenant Supabase apps
83
+ - Missing RLS = any authenticated user can read ALL data
84
+ - Service role key bypasses RLS — flag all usages for review
85
+ - Always test policies locally before pushing to production
@@ -0,0 +1,102 @@
1
+ ---
2
+ description: Run complete 6-phase hardening pipeline
3
+ argument-hint: "[project-path: defaults to .]"
4
+ allowed-tools: Read, Edit, Write, Bash, Grep, Glob
5
+ ---
6
+
7
+ Execute the full hardening pipeline with verification at each phase.
8
+
9
+ ## Pipeline Overview
10
+
11
+ ```
12
+ Phase 1: Audit → Baseline assessment
13
+ Phase 2: Fix Critical → Resolve all CRITICAL findings
14
+ Phase 3: Fix High → Resolve HIGH findings (4 rounds)
15
+ Phase 4: Fix Medium → Resolve MEDIUM findings
16
+ Phase 5: Add Tests → Generate security tests
17
+ Phase 6: Verify → Before/after comparison
18
+ ```
19
+
20
+ ## Execution
21
+
22
+ ### Phase 1: Audit
23
+ Run `/vaspera-audit` to establish baseline.
24
+ - Record initial Production Readiness Score
25
+ - Save finding counts by severity
26
+
27
+ ### Phase 2: Fix Critical
28
+ Run `/vaspera-fix-critical`
29
+ - Must resolve ALL critical findings before proceeding
30
+ - Commit: `fix: resolve critical security issues`
31
+ - **Gate**: If any critical remains, STOP and report
32
+
33
+ ### Phase 3: Fix High
34
+ Run `/vaspera-fix-high`
35
+ - 4 rounds: validation → types → UI → API
36
+ - Commit after each round: `fix: resolve high-severity issues (round X)`
37
+ - **Verification**: Re-scan after each round
38
+
39
+ ### Phase 4: Fix Medium
40
+ Run `/vaspera-fix-medium`
41
+ - Single pass through medium findings
42
+ - Commit: `fix: resolve medium-severity issues`
43
+
44
+ ### Phase 5: Add Tests
45
+ Run `/vaspera-add-tests`
46
+ - Priority: API routes → data layer → UI → utilities
47
+ - Commit: `test: add security tests for critical paths`
48
+ - **Gate**: `npm test` must pass
49
+
50
+ ### Phase 6: Verify
51
+ Run `/vaspera-verify`
52
+ - Generate HARDENING-REPORT.md
53
+ - Compare before/after scores
54
+ - Flag any regressions
55
+
56
+ ## Pre-commit Gate
57
+
58
+ Before each commit, verify:
59
+ - [ ] `npm run build` passes (TypeScript)
60
+ - [ ] `npm test` passes (all tests)
61
+ - [ ] No new console.logs introduced
62
+ - [ ] No commented code added
63
+ - [ ] No circular imports
64
+
65
+ ## Failure Handling
66
+
67
+ **Build fails**: Pause, report error, suggest fix
68
+ **Tests fail**: Roll back phase changes, report
69
+ **Regressions detected**: Flag prominently, pause for review
70
+
71
+ ## Final Report
72
+
73
+ ```markdown
74
+ # Hardening Complete
75
+
76
+ ## Score Improvement
77
+ Before: XX/100 (LEVEL)
78
+ After: YY/100 (LEVEL)
79
+ Delta: +ZZ points
80
+
81
+ ## Findings Resolved
82
+ - Critical: X → 0
83
+ - High: Y → N
84
+ - Medium: Z → M
85
+
86
+ ## Commits Made
87
+ 1. fix: resolve critical security issues
88
+ 2. fix: resolve high-severity issues (round A)
89
+ ...
90
+
91
+ ## Next Steps
92
+ - Review and merge PR
93
+ - Deploy to staging
94
+ - Run production certification
95
+ ```
96
+
97
+ ## Important
98
+
99
+ - This is a LONG-RUNNING operation — may take 30+ minutes
100
+ - Each phase commits independently for clean rollback
101
+ - The pipeline can be resumed from any phase if interrupted
102
+ - Do NOT push to remote unless user explicitly requests
@@ -0,0 +1,61 @@
1
+ ---
2
+ description: List all available Vaspera Hardening skills
3
+ argument-hint: ""
4
+ allowed-tools: Bash
5
+ ---
6
+
7
+ Display the Vaspera Hardening skill menu.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ Vaspera Hardening Skills
13
+ ========================
14
+
15
+ AUDIT & VERIFY
16
+ /vaspera-audit Run security audit, write findings to .vaspera/audit/
17
+ /vaspera-verify Compare before/after audit state, generate report
18
+ /vaspera-verify-e2e Runtime verification (M7) - test app actually works
19
+
20
+ FIX BY SEVERITY
21
+ /vaspera-fix-critical Fix all CRITICAL severity findings
22
+ /vaspera-fix-high Fix HIGH severity findings (4 rounds)
23
+ /vaspera-fix-medium Fix MEDIUM severity findings
24
+
25
+ SPECIALIZED
26
+ /vaspera-fix-rls Generate Supabase RLS policies
27
+ /vaspera-add-tests Generate security tests (priority order)
28
+
29
+ ORCHESTRATION
30
+ /vaspera-harden Full 6-phase hardening pipeline
31
+ (audit → fix-critical → fix-high → fix-medium → add-tests → verify)
32
+
33
+ RUNTIME & SCALE (M7-M8)
34
+ /vaspera-verify-e2e Launch app, run golden paths, calculate runtime score
35
+ /vaspera-load-test Run k6 load tests, detect bottlenecks, estimate capacity
36
+ /vaspera-certify Full production readiness certification (all dimensions)
37
+
38
+ DEPLOYMENT (M9)
39
+ /vaspera-deploy Health checks, smoke tests, Vercel integration
40
+
41
+ AI CODE VERIFICATION (M10)
42
+ /vaspera-ai-verify Detect AI patterns, hallucinations, confidence scoring
43
+
44
+ DISCOVERY
45
+ /vaspera-help This menu
46
+
47
+ MCP TOOLS (stateful operations)
48
+ hardening_dashboard Portfolio view across all projects
49
+ certification_* Stateful certification workflow
50
+ consensus_* Multi-agent consensus calculation
51
+ runtime_* Runtime verification (7 tools)
52
+ scale_* Scale assessment (5 tools)
53
+ deploy_* Deployment verification (7 tools)
54
+ ```
55
+
56
+ ## Usage Tips
57
+
58
+ - Start with `/vaspera-audit` to get a baseline
59
+ - Fix by severity: critical → high → medium
60
+ - Run `/vaspera-verify` after fixes to confirm improvement
61
+ - Use `/vaspera-harden` for the full automated pipeline