@kensaurus/skills 0.0.0-stage → 2.0.0

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 (423) hide show
  1. package/.claude-plugin/marketplace.json +53 -0
  2. package/.claude-plugin/plugin.json +40 -0
  3. package/.cursor-plugin/plugin.json +38 -0
  4. package/.mcp.json +28 -0
  5. package/CHANGELOG.md +1761 -0
  6. package/LICENSE +21 -0
  7. package/NOTICE +13 -0
  8. package/README.md +820 -2
  9. package/SECURITY.md +55 -0
  10. package/agents/code-reviewer.md +60 -0
  11. package/agents/completion-judge.md +89 -0
  12. package/agents/db-migrator.md +125 -0
  13. package/agents/debugger.md +47 -0
  14. package/agents/deploy-checker.md +100 -0
  15. package/agents/perf-monitor.md +74 -0
  16. package/assets/favicon.png +0 -0
  17. package/assets/logo-light.png +0 -0
  18. package/assets/logo.png +0 -0
  19. package/assets/logo.svg +6 -0
  20. package/assets/og.png +0 -0
  21. package/bin/install.mjs +1127 -0
  22. package/bin/kenji.js +2 -0
  23. package/commands/adr.md +17 -0
  24. package/commands/aeo-plan.md +18 -0
  25. package/commands/arch-boundaries.md +17 -0
  26. package/commands/aso-plan.md +18 -0
  27. package/commands/auth-flows.md +19 -0
  28. package/commands/backup-plan.md +17 -0
  29. package/commands/burndown-full.md +25 -0
  30. package/commands/capacitor-plan.md +18 -0
  31. package/commands/codemod-safety.md +22 -0
  32. package/commands/commit.md +18 -0
  33. package/commands/complete-everything.md +40 -0
  34. package/commands/cost-plan.md +19 -0
  35. package/commands/deadcode-plan.md +26 -0
  36. package/commands/deadcode.md +32 -0
  37. package/commands/debug-issue.md +17 -0
  38. package/commands/deps-plan.md +18 -0
  39. package/commands/docs-plan.md +17 -0
  40. package/commands/doctrine.md +19 -0
  41. package/commands/error-plan.md +19 -0
  42. package/commands/feedback-to-closure.md +36 -0
  43. package/commands/fix-issue.md +76 -0
  44. package/commands/gate-logic.md +26 -0
  45. package/commands/green-repo.md +36 -0
  46. package/commands/grill-me.md +19 -0
  47. package/commands/gtm-plan.md +21 -0
  48. package/commands/gtm-weekly.md +17 -0
  49. package/commands/gtm.md +22 -0
  50. package/commands/handoff.md +15 -0
  51. package/commands/housekeep-backlog.md +18 -0
  52. package/commands/housekeep-files.md +22 -0
  53. package/commands/housekeep-gates.md +18 -0
  54. package/commands/instant-nav.md +11 -0
  55. package/commands/integrity-plan.md +19 -0
  56. package/commands/launch-kit.md +16 -0
  57. package/commands/mcp-guide.md +40 -0
  58. package/commands/mobile-plan.md +19 -0
  59. package/commands/native-rn-monorepo/README.md +78 -0
  60. package/commands/native-rn-monorepo/android-build.md +26 -0
  61. package/commands/native-rn-monorepo/android-install.md +32 -0
  62. package/commands/native-rn-monorepo/android-logcat.md +37 -0
  63. package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
  64. package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
  65. package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
  66. package/commands/native-rn-monorepo/rn-reset.md +50 -0
  67. package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
  68. package/commands/native-rn-monorepo/rn-verify.md +53 -0
  69. package/commands/perf-plan.md +18 -0
  70. package/commands/plan-mode.md +74 -0
  71. package/commands/pr.md +16 -0
  72. package/commands/pricing-plan.md +20 -0
  73. package/commands/privacy-plan.md +18 -0
  74. package/commands/readability.md +12 -0
  75. package/commands/readme.md +15 -0
  76. package/commands/refactor.md +15 -0
  77. package/commands/release-prep.md +17 -0
  78. package/commands/research.md +25 -0
  79. package/commands/responsive-audit.md +21 -0
  80. package/commands/review-code.md +18 -0
  81. package/commands/rls-plan.md +18 -0
  82. package/commands/secrets-plan.md +18 -0
  83. package/commands/security-plan.md +19 -0
  84. package/commands/ship-and-observe.md +36 -0
  85. package/commands/skill-conflicts.md +19 -0
  86. package/commands/slop-plan.md +18 -0
  87. package/commands/stub-plan.md +18 -0
  88. package/commands/test-mutation.md +16 -0
  89. package/commands/test-plan.md +17 -0
  90. package/commands/test.md +29 -0
  91. package/commands/thirdparty-web-interface-guidelines.md +185 -0
  92. package/commands/uiux-plan.md +18 -0
  93. package/commands/uiux.md +45 -0
  94. package/commands/update-deps.md +21 -0
  95. package/commands/validation-plan.md +19 -0
  96. package/commands-portable/fix-issue.md +72 -0
  97. package/commands-portable/plan-mode.md +92 -0
  98. package/commands-portable/research.md +91 -0
  99. package/docs/screenshots/README.md +5 -0
  100. package/docs/screenshots/audit-dark.png +0 -0
  101. package/docs/screenshots/build-dark.png +0 -0
  102. package/docs/screenshots/grill-dark.png +0 -0
  103. package/docs/screenshots/hero-dark.png +0 -0
  104. package/docs/screenshots/hero-light.png +0 -0
  105. package/docs/screenshots/ship-dark.png +0 -0
  106. package/docs/screenshots/src/showcase.html +320 -0
  107. package/hooks/completion-gate.mjs +258 -0
  108. package/hooks/cursor-hooks.json +13 -0
  109. package/hooks/hooks.json +15 -0
  110. package/install.sh +21 -0
  111. package/llms.txt +40 -0
  112. package/mcp/README.md +266 -0
  113. package/mcp/VERSIONS.md +41 -0
  114. package/mcp/mcp-full.json.template +124 -0
  115. package/mcp/mcp.json.template +29 -0
  116. package/mcp/pinned-versions.json +27 -0
  117. package/package.json +93 -4
  118. package/rules/approved-plan-execution.mdc +65 -0
  119. package/rules/full-stack-ship-discipline.mdc +37 -0
  120. package/rules/native-rn-monorepo/README.md +63 -0
  121. package/rules/native-rn-monorepo/_project.mdc +69 -0
  122. package/rules/native-rn-monorepo/native-android.mdc +72 -0
  123. package/rules/native-rn-monorepo/native-ios.mdc +61 -0
  124. package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
  125. package/rules/native-rn-monorepo/web.mdc +60 -0
  126. package/rules/project-starter/components.mdc +54 -0
  127. package/rules/project-starter/data-fetching.mdc +77 -0
  128. package/rules/project-starter/git.mdc +41 -0
  129. package/rules/project-starter/supabase.mdc +37 -0
  130. package/rules/project-starter/tailwind.mdc +48 -0
  131. package/rules/project-starter/typescript.mdc +36 -0
  132. package/rules/project-starter/web-performance.mdc +42 -0
  133. package/rules/senior-engineer.mdc +30 -0
  134. package/rules/shell-first-search.mdc +19 -0
  135. package/rules/skill-workflows.mdc +35 -0
  136. package/rules/verification-before-completion.mdc +57 -0
  137. package/skills/audit-accessibility/SKILL.md +441 -0
  138. package/skills/audit-agent-speed/SKILL.md +181 -0
  139. package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
  140. package/skills/audit-analytics/SKILL.md +138 -0
  141. package/skills/audit-auth-flows/SKILL.md +267 -0
  142. package/skills/audit-backend-architecture/SKILL.md +266 -0
  143. package/skills/audit-backend-architecture/references/patterns.md +386 -0
  144. package/skills/audit-bundle-size/SKILL.md +296 -0
  145. package/skills/audit-cicd/SKILL.md +218 -0
  146. package/skills/audit-code-quality/SKILL.md +314 -0
  147. package/skills/audit-code-review/SKILL.md +289 -0
  148. package/skills/audit-codemod-safety/SKILL.md +159 -0
  149. package/skills/audit-db-schema/SKILL.md +465 -0
  150. package/skills/audit-db-schema/references/details.md +110 -0
  151. package/skills/audit-doctrine/SKILL.md +189 -0
  152. package/skills/audit-env-parity/SKILL.md +133 -0
  153. package/skills/audit-fe-api/SKILL.md +458 -0
  154. package/skills/audit-gate-logic/SKILL.md +219 -0
  155. package/skills/audit-i18n/SKILL.md +339 -0
  156. package/skills/audit-infra-cost/SKILL.md +142 -0
  157. package/skills/audit-langfuse-llm/SKILL.md +468 -0
  158. package/skills/audit-langfuse-llm/references/details.md +226 -0
  159. package/skills/audit-llm-security/SKILL.md +147 -0
  160. package/skills/audit-monetization-iap/SKILL.md +137 -0
  161. package/skills/audit-payment-system/SKILL.md +268 -0
  162. package/skills/audit-payment-system/references/checklist.md +283 -0
  163. package/skills/audit-performance/SKILL.md +383 -0
  164. package/skills/audit-performance/references/loading-priority-2026.md +81 -0
  165. package/skills/audit-realworld/SKILL.md +287 -0
  166. package/skills/audit-registry-listing/SKILL.md +122 -0
  167. package/skills/audit-resilience/SKILL.md +154 -0
  168. package/skills/audit-responsive/SKILL.md +221 -0
  169. package/skills/audit-responsive/references/checklist.md +166 -0
  170. package/skills/audit-security/SKILL.md +289 -0
  171. package/skills/audit-skill-conflicts/SKILL.md +178 -0
  172. package/skills/audit-ui-states/SKILL.md +146 -0
  173. package/skills/audit-uiux-design-system/SKILL.md +475 -0
  174. package/skills/audit-uiux-design-system/references/details.md +71 -0
  175. package/skills/audit-ux/SKILL.md +379 -0
  176. package/skills/audit-ux/references/details.md +245 -0
  177. package/skills/audit-ux-journeys/SKILL.md +215 -0
  178. package/skills/audit-ux-journeys/references/checklist.md +179 -0
  179. package/skills/backend-db-performance/SKILL.md +441 -0
  180. package/skills/backend-error-handling/SKILL.md +489 -0
  181. package/skills/backend-error-handling/references/details.md +58 -0
  182. package/skills/backend-observability/SKILL.md +88 -0
  183. package/skills/backend-patterns/SKILL.md +499 -0
  184. package/skills/backend-patterns/references/architecture-patterns.md +298 -0
  185. package/skills/backend-realtime/SKILL.md +403 -0
  186. package/skills/backend-realtime/references/patterns.md +74 -0
  187. package/skills/burndown-full/SKILL.md +174 -0
  188. package/skills/complete-everything/SKILL.md +295 -0
  189. package/skills/data-pipeline/SKILL.md +109 -0
  190. package/skills/data-visualization/SKILL.md +488 -0
  191. package/skills/debug-error/SKILL.md +322 -0
  192. package/skills/debug-fe-be-integration/SKILL.md +459 -0
  193. package/skills/debug-sentry-monitor/SKILL.md +497 -0
  194. package/skills/debug-sentry-monitor/references/details.md +165 -0
  195. package/skills/deploy-npm/SKILL.md +394 -0
  196. package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
  197. package/skills/deploy-verify/SKILL.md +489 -0
  198. package/skills/design-api/SKILL.md +379 -0
  199. package/skills/design-canvas/SKILL.md +155 -0
  200. package/skills/design-email/SKILL.md +370 -0
  201. package/skills/design-frontend/SKILL.md +143 -0
  202. package/skills/design-generative-art/SKILL.md +474 -0
  203. package/skills/design-mobile-first/SKILL.md +506 -0
  204. package/skills/design-motion/SKILL.md +333 -0
  205. package/skills/design-motion/references/delight-interactions.md +191 -0
  206. package/skills/design-prd/SKILL.md +443 -0
  207. package/skills/design-system/SKILL.md +457 -0
  208. package/skills/design-theme/SKILL.md +226 -0
  209. package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
  210. package/skills/docs-adr/SKILL.md +168 -0
  211. package/skills/docs-coauthor/SKILL.md +368 -0
  212. package/skills/docs-comparison-pages/SKILL.md +117 -0
  213. package/skills/docs-domain-modeling/SKILL.md +97 -0
  214. package/skills/docs-launch-kit/SKILL.md +139 -0
  215. package/skills/docs-writer/SKILL.md +469 -0
  216. package/skills/enhance-agent-guardrails/SKILL.md +164 -0
  217. package/skills/enhance-arch-boundaries/SKILL.md +154 -0
  218. package/skills/enhance-capacitor-ui/SKILL.md +463 -0
  219. package/skills/enhance-capacitor-ui/references/details.md +750 -0
  220. package/skills/enhance-email-deliverability/SKILL.md +143 -0
  221. package/skills/enhance-growth-loops/SKILL.md +122 -0
  222. package/skills/enhance-lifecycle-email/SKILL.md +130 -0
  223. package/skills/enhance-motion/SKILL.md +193 -0
  224. package/skills/enhance-onboarding/SKILL.md +148 -0
  225. package/skills/enhance-pwa/SKILL.md +304 -0
  226. package/skills/enhance-readability/SKILL.md +146 -0
  227. package/skills/enhance-readme/SKILL.md +496 -0
  228. package/skills/enhance-readme/package-lock.json +187 -0
  229. package/skills/enhance-readme/package.json +17 -0
  230. package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
  231. package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
  232. package/skills/enhance-skill-prompts/SKILL.md +167 -0
  233. package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
  234. package/skills/enhance-web-conversion/SKILL.md +155 -0
  235. package/skills/enhance-web-forms/SKILL.md +154 -0
  236. package/skills/enhance-web-instant-nav/SKILL.md +138 -0
  237. package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
  238. package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
  239. package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
  240. package/skills/enhance-web-landing/SKILL.md +459 -0
  241. package/skills/enhance-web-landing/references/details.md +773 -0
  242. package/skills/enhance-web-redesign/SKILL.md +228 -0
  243. package/skills/enhance-web-seo/SKILL.md +276 -0
  244. package/skills/enhance-web-ui/SKILL.md +473 -0
  245. package/skills/enhance-web-ui/references/details.md +674 -0
  246. package/skills/enhance-web-ux/HEURISTICS.md +242 -0
  247. package/skills/enhance-web-ux/PATTERNS.md +375 -0
  248. package/skills/enhance-web-ux/SKILL.md +464 -0
  249. package/skills/enhance-web-ux/examples.md +222 -0
  250. package/skills/enhance-web-ux/references/details.md +406 -0
  251. package/skills/enhance-web-web3d/SKILL.md +397 -0
  252. package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
  253. package/skills/handoff/SKILL.md +66 -0
  254. package/skills/housekeep-backlog/SKILL.md +149 -0
  255. package/skills/housekeep-dead-code/SKILL.md +387 -0
  256. package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
  257. package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
  258. package/skills/housekeep-design/SKILL.md +207 -0
  259. package/skills/housekeep-files/SKILL.md +220 -0
  260. package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
  261. package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
  262. package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
  263. package/skills/housekeep-gates/SKILL.md +174 -0
  264. package/skills/iterate-agent-harness/SKILL.md +137 -0
  265. package/skills/iterate-gtm-weekly/SKILL.md +103 -0
  266. package/skills/iterate-post-launch/SKILL.md +292 -0
  267. package/skills/meta-mcp-builder/SKILL.md +313 -0
  268. package/skills/meta-skill-creator/SKILL.md +304 -0
  269. package/skills/mobile-capacitor-platform/SKILL.md +104 -0
  270. package/skills/mobile-emulator-start/SKILL.md +296 -0
  271. package/skills/mobile-emulator-test/SKILL.md +491 -0
  272. package/skills/mobile-emulator-test/references/details.md +478 -0
  273. package/skills/mobile-rn-performance/SKILL.md +107 -0
  274. package/skills/mobile-rn-screen/SKILL.md +476 -0
  275. package/skills/mobile-rn-screen/references/details.md +785 -0
  276. package/skills/mushi-health/SKILL.md +206 -0
  277. package/skills/mushi-integration/SKILL.md +257 -0
  278. package/skills/plan-aeo-readiness/SKILL.md +166 -0
  279. package/skills/plan-antislop/SKILL.md +281 -0
  280. package/skills/plan-aso/SKILL.md +149 -0
  281. package/skills/plan-backup-dr/SKILL.md +131 -0
  282. package/skills/plan-capacitor-hardening/SKILL.md +217 -0
  283. package/skills/plan-data-integrity/SKILL.md +187 -0
  284. package/skills/plan-dead-code/SKILL.md +386 -0
  285. package/skills/plan-dead-code/references/knip-config.md +214 -0
  286. package/skills/plan-dead-code/references/output-templates.md +133 -0
  287. package/skills/plan-dead-code/references/preservation-contract.md +50 -0
  288. package/skills/plan-dead-code/references/residue-greps.md +84 -0
  289. package/skills/plan-dependency-provenance/SKILL.md +200 -0
  290. package/skills/plan-docs-sync/SKILL.md +143 -0
  291. package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
  292. package/skills/plan-docs-sync/references/output-templates.md +33 -0
  293. package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
  294. package/skills/plan-error-handling/SKILL.md +205 -0
  295. package/skills/plan-gtm/SKILL.md +276 -0
  296. package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
  297. package/skills/plan-input-validation/SKILL.md +179 -0
  298. package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
  299. package/skills/plan-mobile-readiness/SKILL.md +171 -0
  300. package/skills/plan-perf-audit/SKILL.md +145 -0
  301. package/skills/plan-perf-audit/references/audit-scope.md +51 -0
  302. package/skills/plan-perf-audit/references/output-templates.md +33 -0
  303. package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
  304. package/skills/plan-pricing/SKILL.md +173 -0
  305. package/skills/plan-privacy-compliance/SKILL.md +148 -0
  306. package/skills/plan-rls-audit/SKILL.md +231 -0
  307. package/skills/plan-secrets-audit/SKILL.md +181 -0
  308. package/skills/plan-security-audit/SKILL.md +168 -0
  309. package/skills/plan-security-audit/references/output-templates.md +36 -0
  310. package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
  311. package/skills/plan-security-audit/references/preservation-contract.md +18 -0
  312. package/skills/plan-stub-checker/SKILL.md +216 -0
  313. package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
  314. package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
  315. package/skills/plan-stub-checker/references/output-templates.md +63 -0
  316. package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
  317. package/skills/plan-test-coverage/SKILL.md +170 -0
  318. package/skills/plan-test-coverage/references/methodology.md +54 -0
  319. package/skills/plan-test-coverage/references/output-templates.md +34 -0
  320. package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
  321. package/skills/plan-uiux-unification/SKILL.md +230 -0
  322. package/skills/plan-uiux-unification/references/output-templates.md +67 -0
  323. package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
  324. package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
  325. package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
  326. package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
  327. package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
  328. package/skills/research/SKILL.md +422 -0
  329. package/skills/test-exploratory/SKILL.md +165 -0
  330. package/skills/test-exploratory/references/charter-template.md +29 -0
  331. package/skills/test-load/SKILL.md +126 -0
  332. package/skills/test-mutation/SKILL.md +160 -0
  333. package/skills/test-playwright/SKILL.md +354 -0
  334. package/skills/test-qa/SKILL.md +364 -0
  335. package/skills/test-qa/references/details.md +268 -0
  336. package/skills/test-red-team/SKILL.md +387 -0
  337. package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
  338. package/skills/test-unit/SKILL.md +259 -0
  339. package/skills/test-unit/references/details.md +267 -0
  340. package/skills/test-visual-regression/SKILL.md +132 -0
  341. package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
  342. package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
  343. package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
  344. package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
  345. package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
  346. package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
  347. package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
  348. package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
  349. package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
  350. package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
  351. package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
  352. package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
  353. package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  354. package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  355. package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  356. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  357. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  358. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  359. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  360. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
  361. package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  362. package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  363. package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  364. package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  365. package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
  366. package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
  367. package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  368. package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  369. package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
  370. package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
  371. package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
  372. package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
  373. package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
  374. package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
  375. package/skills/workflow-build-feature/SKILL.md +118 -0
  376. package/skills/workflow-coding-discipline/SKILL.md +140 -0
  377. package/skills/workflow-environment-ready/SKILL.md +128 -0
  378. package/skills/workflow-feature-flag/SKILL.md +262 -0
  379. package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
  380. package/skills/workflow-fix-and-ship/SKILL.md +136 -0
  381. package/skills/workflow-git-commit/SKILL.md +200 -0
  382. package/skills/workflow-green-repo/SKILL.md +166 -0
  383. package/skills/workflow-grilling/SKILL.md +73 -0
  384. package/skills/workflow-gtm/SKILL.md +153 -0
  385. package/skills/workflow-housekeep/SKILL.md +453 -0
  386. package/skills/workflow-housekeep/references/templates.md +109 -0
  387. package/skills/workflow-launch-ready/SKILL.md +145 -0
  388. package/skills/workflow-merge-conflicts/SKILL.md +62 -0
  389. package/skills/workflow-onboard/SKILL.md +99 -0
  390. package/skills/workflow-parallel-agents/SKILL.md +164 -0
  391. package/skills/workflow-pr/SKILL.md +197 -0
  392. package/skills/workflow-quality-gate/SKILL.md +147 -0
  393. package/skills/workflow-refactor/SKILL.md +274 -0
  394. package/skills/workflow-release-prep/SKILL.md +207 -0
  395. package/skills/workflow-ship-and-observe/SKILL.md +164 -0
  396. package/skills/workflow-spec-tdd/SKILL.md +141 -0
  397. package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
  398. package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
  399. package/skills-cursor/babysit/SKILL.md +17 -0
  400. package/skills-cursor/canvas/SKILL.md +142 -0
  401. package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
  402. package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
  403. package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
  404. package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
  405. package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
  406. package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
  407. package/skills-cursor/canvas/sdk/index.d.ts +47 -0
  408. package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
  409. package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
  410. package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
  411. package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
  412. package/skills-cursor/create-hook/SKILL.md +238 -0
  413. package/skills-cursor/create-rule/SKILL.md +185 -0
  414. package/skills-cursor/create-skill/SKILL.md +269 -0
  415. package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
  416. package/skills-cursor/create-subagent/SKILL.md +228 -0
  417. package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
  418. package/skills-cursor/shell/SKILL.md +22 -0
  419. package/skills-cursor/split-to-prs/SKILL.md +47 -0
  420. package/skills-cursor/statusline/SKILL.md +193 -0
  421. package/skills-cursor/update-cli-config/SKILL.md +85 -0
  422. package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
  423. package/skills.sh.json +296 -0
@@ -0,0 +1,183 @@
1
+ # GTM benchmarks and sources (verified 2026-09-17)
2
+
3
+ Shared by `plan-gtm`, `plan-pricing`, `enhance-onboarding`,
4
+ `enhance-web-conversion`, `enhance-lifecycle-email`, `enhance-growth-loops`,
5
+ `docs-launch-kit`, `docs-comparison-pages`, `audit-registry-listing`,
6
+ `iterate-gtm-weekly`. Quote a number only with its row here; if a row is
7
+ missing, write **unmeasured** or **no benchmark** in the plan.
8
+
9
+ ## Free-to-paid by model
10
+
11
+ ChartMogul × Growth Unhinged (Kyle Poyar) × ProductLed, ~200 self-serve
12
+ products, Jan 2026. Conversion measured within 6 months of signup.
13
+
14
+ | Model | Good (p50) | Great (p75) | Notes |
15
+ |---|---|---|---|
16
+ | Freemium (gated) | 3–5% | 8–12% | 26% of products lead with it |
17
+ | Freemium, ungated (try before account) | 7–9% | 8–12% | 7% of products; adoption play |
18
+ | Free trial, no card | 4–6% | 10–15% | 57% of products; 14-day modal (62%) |
19
+ | Free trial, card required | 25–35% | 50–60% | 20% of trials; ~5× no-card; ~65% fewer signups |
20
+ | Reverse trial | 4–6% | 8–12% | 7% of products; **not statistically distinct** |
21
+ | Interactive demo (dummy data) | — | — | 7% of products |
22
+
23
+ Median across all models **8%**; 20% of trial products convert under 2.5%,
24
+ 23% above 25%. Per 1,000 visitors: freemium ≈ 90 signups → 5 paid; no-card
25
+ trial 45 → 4; card trial 35 → 11. One dual-CTA change (free plan *or*
26
+ 14-day card trial) lifted premium trial starts 26%. PQL-driven conversion
27
+ runs ~3× the 9% average; only 24–34% of PLG companies track PQLs/activation.
28
+
29
+ - https://www.growthunhinged.com/p/free-to-paid-conversion-report
30
+ - https://chartmogul.com/reports/saas-conversion-report/
31
+ - https://www.growthunhinged.com/p/how-to-improve-free-to-paid-conversion
32
+ - https://productled.com/blog/product-led-growth-benchmarks
33
+ - https://userpilot.com/blog/saas-average-conversion-rate/ (First Page Sage and
34
+ GrowthSpree report higher B2B bands: opt-in 14–18%, opt-out 44–49%)
35
+
36
+ ## Activation, time-to-value, retention
37
+
38
+ | Metric | Number | Source |
39
+ |---|---|---|
40
+ | B2B SaaS activation, average / median | 37.5% / 37% (n=62) | Userpilot 2025 |
41
+ | PLG vs sales-led activation | 34.6% vs 41.6% | Userpilot 2025 |
42
+ | Activation by vertical | AI/ML 54.8% · dev tools ~40% · MarTech 24% · FinTech 5% | Userpilot 2025 |
43
+ | Activation median, all products / SaaS | 25% / 30%; good = p60, great = p80 | Lenny × Timen, 500+ products |
44
+ | Time-to-value, average / median | 1 d 12 h / 1 d 2 h; top quartile < 5 min | Userpilot 2025 |
45
+ | TTV > 24 h | activation collapses below 25% | Userpilot analysis |
46
+ | Day-1 activation, top products / median | 21% / 5% | Amplitude 2025 (2,600+ cos) |
47
+ | Day-7 return of a new cohort | ≥ 7% = top quartile | Amplitude 2025 |
48
+ | Month-3 loss of new users, median product | 96% | Amplitude 2025 |
49
+ | Valid activation event | ≥ 2× retention for users who hit it | Lenny × Timen |
50
+ | Onboarding checklist completion | 19–20% avg; engaged users finish ~5 items | Chameleon 2025 (550M interactions) |
51
+ | Tour completion | click-triggered 67% vs timer 31%; 3–4 steps 72–74%, 7+ steps 16% | Chameleon 2025 |
52
+ | Embedded guidance vs modal | +20% engagement | Chameleon 2025 |
53
+ | Personalization | 65% collect signup data, 18% use it | Chameleon 2025 |
54
+
55
+ - https://userpilot.com/saas-product-metrics/
56
+ - https://www.lennysnewsletter.com/p/what-is-a-good-activation-rate
57
+ - https://www.linkedin.com/posts/elenaverna_growth-data-activity-7377023750262644736-buVc
58
+ - https://www.chameleon.io/benchmark-report
59
+ - https://www.reforge.com/guides/analyze-activation (Setup → Aha → Habit)
60
+ - https://posthog.com/product-engineers/activation-metrics (pick the event combo that best predicts 3-month retention)
61
+
62
+ ## Pricing and packaging
63
+
64
+ - Hybrid (seat + usage) pricing 27% → 41% of B2B SaaS in 2025; seat-only
65
+ 21% → 15%; 29% sell AI credits, 33% plan to. AI-native companies 4× more
66
+ likely to price on outcomes. — https://www.growthunhinged.com/p/2025-state-of-b2b-monetization
67
+ - Annual discount norm 15–25%; state it as "2 months free", not "save 17%".
68
+ Hiding the enterprise price removes the anchor and hurts middle-tier
69
+ conversion — show "from $X". — https://productphilosophy.com/articles/pricing-page-conversion-architecture-twelve-elements
70
+ - Three tiers good-better-best, recommended middle, higher tier on the right
71
+ as anchor, same CTA verb on every column, "No credit card required" under
72
+ the button when true. — https://kompassify.com/blog/pricing-page-best-practices
73
+ - Underpricing attracts the curious, not the committed: one indie raise
74
+ £9 → £19 moved month-3 retention 42% → 67%. — https://www.indiehackers.com/post/i-underpriced-my-saas-for-4-months-and-it-almost-broke-me-not-the-way-you-think-a0ae21a1e6
75
+
76
+ ## Pricing research and value metric
77
+
78
+ - Order of methods: Van Westendorp (acceptable range; directional) →
79
+ Gabor-Granger (revenue-maximizing point on one tier) → MaxDiff (rank
80
+ features for tier placement) → conjoint (price bundles). —
81
+ https://thesaaslibrary.com/pricing-research-methods-saas-founders/
82
+ - Value metric = the unit the price attaches to; "subscription vs usage" is
83
+ a payment cadence question, not the metric. A good metric is understandable
84
+ by the buyer, estimable before signing, and diverges from cost. 41% of
85
+ software buyers cite unpredictable cost as the primary objection to
86
+ usage pricing (2025 survey). — https://softwarepricing.com/blog/value-metric-decision/
87
+ - Score candidates on value connection, fairness/familiarity, predictability,
88
+ scalability, billability; simulate on historical accounts. —
89
+ https://www.pacepricing.com/blog/the-ultimate-guide-to-value-metrics-for-b2b-saas-pricing-monetization ·
90
+ https://enablism.com/resources/value-metrics-for-b2b-pricing/ ·
91
+ https://www.getmonetizely.com/articles/how-to-choose-the-right-saas-pricing-metric-with-value-metric-examples
92
+
93
+ ## Lifecycle email
94
+
95
+ - Behavior-triggered sequences vs calendar drips: vendor-reported ~3–4× the
96
+ click-through and up to ~30% higher conversion (Userpilot, Customer.io,
97
+ Bessemer citations); no independent primary study — treat as direction. —
98
+ https://www.digitalapplied.com/blog/saas-customer-onboarding-email-sequence-2026-crm-playbook ·
99
+ https://ustechautomations.com/resources/blog/automate-saas-free-trial-onboarding-activation-2026
100
+ - Timers are the fallback for users with no signal; exit the sequence the
101
+ moment the goal event fires; split expiry messaging by activated vs
102
+ stalled. — https://www.getfluxly.com/blog/lifecycle-email-automation-saas
103
+ - 70–85% of trial-to-paid conversions happen in the second half of the
104
+ trial; sequences that stop on day 7 of 14 under-perform. Cadence:
105
+ activation push days 1–3, value reinforcement 4–10, conversion CTA 11–14. —
106
+ https://www.growthspreeofficial.com/blogs/b2b-saas-trial-to-paid-conversion-rate-benchmarks-2026-by-trial-type-acv-length-credit-card
107
+ - Users without the core activation action inside 48 h carry the highest
108
+ churn probability — the day-2 nudge is the highest-leverage single email. —
109
+ https://ustechautomations.com/resources/blog/automate-saas-free-trial-onboarding-activation-2026
110
+
111
+ ## Open-source monetization
112
+
113
+ - Managed cloud carries 48–73% of revenue at MongoDB, Confluent, Elastic; the
114
+ cloud line grows faster than the company. GitLab open-core: 23% growth,
115
+ 117% NRR (Q1 FY27). Open-core self-host → paid conversion ~0.5–2%.
116
+ - Relicensing (Elastic, Redis) cost contributors to permanent forks and
117
+ gained no visible revenue; both reversed. A license is a distribution
118
+ decision; monetization is who runs the software.
119
+ - AGPL + commercial dual license is the proven open-core shape; some buyers
120
+ (Google) ban AGPL outright. BSL / FSL are source-available, not OSI.
121
+ - https://www.saasmag.com/open-source-saas-monetization-license-product/
122
+ - https://ossalt.com/guides/open-core-vs-source-available-business-models-2026
123
+ - https://finitestate.io/blog/the-complete-guide-to-open-source-licenses
124
+ - https://fsl.software/
125
+
126
+ ## Distribution
127
+
128
+ | Channel | Number | Source |
129
+ |---|---|---|
130
+ | Show HN front page (dev tool) | 5–30k visits, 50–400 signups, < 5% conv; #1 ≈ 300k daily uniques | Causo Hub 2026 |
131
+ | Show HN clearing 10 points | 62% (2022) → 11% (2025) | DoDataThings analysis |
132
+ | Show HN timing | 12–17 UTC, Tue–Thu; ~+200 GitHub stars vs off-peak | DoDataThings analysis |
133
+ | Product Hunt featured rate | 60–98% (2020–23) → ~10% | awesome-directories 2025; PH newsletter |
134
+ | Product Hunt B2B visit→signup | 1–2% | Causo Hub 2026 |
135
+ | Comparison pages in a pSEO test | 28% of pages → 78% of clicks, 6 of 7 leads | nicodigital, 162 pages |
136
+ | llms.txt | Google: zero effect on Search / AI Overviews (2026-06-15); AI crawlers rarely fetch it; coding assistants do read it on docs sites | digitalapplied 2026 |
137
+ | AI citations | third-party publishers earn 6.5× more citations than owned domains | geoaura 2026 |
138
+ | SaaS referral rate / referred conversion | 4.75% avg / 7.86%, top quartile 12%+ | bloop.plus |
139
+ | "Powered by" badge | 0.5–3% conversion, ~100% exposure; value-before-signup lifts referred conversion 2–5× | nativeviralloop |
140
+ | Warm invites (user-sent, named recipient) | 10–25% accept → signup | nativeviralloop |
141
+
142
+ - https://hub.causo.ai/guides/show-hn-launch-playbook-technical-founders-2026
143
+ - https://hub.causo.ai/guides/product-hunt-vs-hacker-news-vs-betalist-2026
144
+ - https://dodatathings.dev/blog/launch-platform-roi-the-math-nobody-shares
145
+ - https://news.ycombinator.com/showhn.html (rules: runnable thing, no signup wall, no vote solicitation)
146
+ - https://awesome-directories.com/blog/product-hunt-launch-guide-2025-algorithm-changes/
147
+ - https://www.producthunt.com/newsletters/archive/33951-the-roundup-is-product-hunt-dead
148
+ - https://www.nicodigital.com/technical-seo/programmatic-seo-experiment-162-pages/
149
+ - https://developers.google.com/search/docs/essentials/spam-policies (scaled content abuse covers AI-generated pages)
150
+ - https://www.digitalapplied.com/blog/google-llms-txt-no-seo-value-lighthouse-audit-2026
151
+ - https://nativeviralloop.com/knowledge/viral-loop-metrics.html
152
+ - https://www.reforge.com/blog/growth-loops
153
+
154
+ ## Positioning and messaging
155
+
156
+ - Dunford order: competitive alternatives (incl. spreadsheets / do nothing)
157
+ → unique attributes → value themes with proof → who cares most → market
158
+ category → optional trend. — https://www.aprildunford.com/post/a-quickstart-guide-to-positioning
159
+ - Five-second test with ICP respondents: what is it, for whom, what outcome;
160
+ "doppelganger" check with the logo removed. — https://www.electriccopy.tech/blog/how-to-test-messaging-on-a-budget
161
+ - North-star: classify the game (attention / transaction / productivity),
162
+ define the value moment as a time-bound behavior, confirm it leads revenue
163
+ and retention, pick 3–5 inputs with owners. — https://amplitude.com/blog/product-north-star-metric
164
+ - PQA (account fit + usage) says *when*; PQL (economic buyer present) says
165
+ *whom*. — https://www.elenaverna.com/p/elenas-2024-b2b-product-led-sales
166
+
167
+ ## Failure modes (why GTM plans die)
168
+
169
+ CB Insights, 431 VC-backed shutdowns since 2023: 43% poor product-market fit,
170
+ 29% timing, 19% unit economics; 18% pricing, 14% marketing.
171
+
172
+ 1. Building before validating — no ICP interviews.
173
+ 2. Generic hero — fails the five-second test; written for investors.
174
+ 3. Underpricing "to reduce friction".
175
+ 4. No distribution hypothesis — "first-time founders focus on product, second-time on distribution".
176
+ 5. Activation untracked (~66%) or defined as payment.
177
+ 6. AI-generated content at scale — Google spam policy; HN removes AI-written posts.
178
+ 7. Launching once instead of per release.
179
+ 8. Reverse trial or AI credits as a fix — neither shows a conversion lift.
180
+
181
+ - https://www.cbinsights.com/research/report/startup-failure-reasons-top/
182
+ - https://github.com/dovzhikova/developer-tools-gtm-checklist
183
+ - https://gtm-labs.co/open-source-go-to-market (README first 10 lines = hero)
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: plan-input-validation
3
+ description: >
4
+ Plan-only trust-boundary audit for missing validation, injection, XSS, and
5
+ forged requests across forms, APIs, and webhooks. Use when "validate my
6
+ inputs", "is my app injection-safe?", "check my forms", or "can someone
7
+ forge requests?".
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # Input-Validation & Trust-Boundary Audit + Hardening Plan
13
+
14
+ **Degree of freedom: HIGH** — map trust boundaries, score gaps, emit a plan.
15
+ Stay **plan-only**. No Zod, sanitizers, or webhook edits until approved.
16
+
17
+ ## This skill vs neighbors
18
+
19
+ | Skill | Owns |
20
+ |---|---|
21
+ | **plan-input-validation** (this) | Trust-boundary / injection plan |
22
+ | `enhance-web-forms` | Apply production form quality |
23
+ | `plan-security-audit` | OWASP umbrella burndown |
24
+
25
+
26
+ **Role:** Senior application security engineer (trust-boundary lens).
27
+
28
+ **Task:** Map every point untrusted data enters, score validate/sanitize/authenticate
29
+ gaps, phase remediations, emit `plan-input-validation.md`. **Audit & plan only — no
30
+ code changes until each phase is approved.**
31
+
32
+ **Walk every boundary. Find what's trusted that shouldn't be. Change nothing until approved.**
33
+
34
+ ## How to reason (every plan item)
35
+
36
+ 1. **Propose** — schema, sanitize, signature verify, or allowlist
37
+ 2. **Risk** — forgeable money/data, stored XSS, or injection
38
+ 3. **Keep-working** — boundaries that already validate + authenticate
39
+ 4. **Phase** — Forgeable paths → XSS → Schema pass → Uploads (do not execute)
40
+
41
+ ## Worked example
42
+
43
+ > **Propose:** verify the Stripe webhook with `constructEvent` on the raw body; reject empty secrets; return 400 on bad signatures.
44
+ > **Risk:** empty-signing-secret bypass — anyone can forge `invoice.paid` and credit quota.
45
+ > **Keep-working:** checkout session creation already uses the server-side secret.
46
+ > **Phase:** Phase 1 — Forgeable money/data paths.
47
+ > **Note:** origin proof ≠ safe to interpolate into SQL/HTML.
48
+
49
+ AI agents write code that works on the inputs you showed them. Two signature patterns
50
+ recur: `dangerouslySetInnerHTML` without DOMPurify (XSS), and webhook handlers without
51
+ real signature verification — the reported empty-signing-secret bypass class, where an
52
+ empty secret lets any attacker forge valid signatures and credit unlimited quota
53
+ without payment.
54
+
55
+ This skill is the **audit-and-plan** half. Execution goes to `backend-patterns` /
56
+ `backend-error-handling` / `audit-security` after you approve each phase.
57
+
58
+ ---
59
+
60
+ ## When this fires
61
+
62
+ Trigger phrases: *"validate my inputs"*, *"is this injection-safe"*, *"check my
63
+ forms / API"*, *"XSS"*, *"dangerouslySetInnerHTML"*, *"my Stripe webhook"*, *"can
64
+ requests be forged"*, *"sanitize user content"*, *"pre-launch input hardening"*.
65
+
66
+ Do **not** fire for: row-level access (`plan-rls-audit`), credential exposure
67
+ (`plan-secrets-audit`), or broad architecture review (`plan-security-audit`).
68
+ This skill owns the *boundary where untrusted data enters*.
69
+
70
+ ---
71
+
72
+ ## The four boundary classes [HIGH freedom]
73
+
74
+ ### 1 · Form & API input
75
+ - **No schema validation** — bodies/params/query without Zod (or equivalent).
76
+ - **Type-coerced trust** — `Number(req.body.amount)` with no bounds.
77
+ - **Missing field-level checks** — email format, length caps, enum membership.
78
+ - **Mass assignment** — spreading `req.body` into DB insert/update (`role`,
79
+ `is_admin`, `credits`).
80
+ - **SQL/RPC injection** — string-interpolated queries or raw user input into SQL.
81
+
82
+ ### 2 · Rendered untrusted content (XSS)
83
+ - **`dangerouslySetInnerHTML` / `v-html` / `innerHTML`** without DOMPurify.
84
+ - **URL/attribute injection** — `javascript:` URIs, unvalidated redirects.
85
+ - **Stored XSS** — content saved now, rendered raw later.
86
+
87
+ ### 3 · Webhooks & forged requests *(Stripe-aware)*
88
+ - **Signature not verified** — or verified against **empty secret**
89
+ (empty-secret bypass class).
90
+ - **Raw-body mistake** — `JSON.stringify(req.body)` instead of raw bytes.
91
+ - **No idempotency** — Stripe at-least-once retries double-process.
92
+ - **Cross-gateway trust** — fulfilling without checking callback source.
93
+ - **Missing timestamp tolerance** — replay window open.
94
+ - **Returns 500 not 400** on bad signature → infinite Stripe retries.
95
+
96
+ ### 4 · File uploads & other boundaries
97
+ - **No type/size/MIME validation**; trusting client content-type.
98
+ - **Path traversal** in filenames; **SSRF** in user-supplied URLs.
99
+ - **Concurrency** — read-modify-write races without DB constraints.
100
+
101
+ ---
102
+
103
+ ## Procedure [HIGH freedom — plan only]
104
+
105
+ 1. **Map boundaries.** Enumerate every untrusted entry point. Skip absent ones.
106
+ 2. **Test each.** For every boundary: validated? sanitized? authenticated?
107
+ 3. **Score.** Severity = reachability × impact.
108
+ 4. **Phase** into shippable groups mapped to execution skills.
109
+ 5. **Emit `plan-input-validation.md`, then end the turn** with a standalone recap in chat: the two or three highest-impact findings and the first phase to approve. The file is the deliverable — write it before the recap. **Do not edit code.**
110
+
111
+ ---
112
+
113
+ ## Guardrails
114
+
115
+ - **Plan only.** No Zod schemas, sanitizers, or webhook config changes.
116
+ - **Validate at the boundary, not after.**
117
+ - **Signature ≠ safety.** Origin proof ≠ safe to interpolate into SQL/HTML.
118
+ - **Don't trust the client copy.** Browser-only checks are UX, not security.
119
+ - **Stack-specific raw-body note.** Call out Next.js + Stripe raw-body requirement.
120
+ - **Minimal quoting** of source.
121
+
122
+ ## Self-critique before the burndown [LOW freedom — do not skip]
123
+
124
+ 1. **evidenced-not-assumed** — every boundary cites path:line; skip classes that do not exist
125
+ 2. **plan-only** — no Zod schemas, DOMPurify, or webhook config
126
+ 3. **severity/phase justified** — unauthenticated write / forgeable money is Critical
127
+ 4. **right-owner** — RLS row access → `plan-rls-audit`; leaked keys → `plan-secrets-audit`; OWASP umbrella → `plan-security-audit`
128
+ 5. **no-false-safety** — browser-only checks are UX; signature ≠ sanitization; empty webhook secret is a bypass
129
+
130
+ ---
131
+
132
+ ## Report template — `plan-input-validation.md`
133
+
134
+ ```markdown
135
+ # Input-Validation & Trust-Boundary Audit — <repo>
136
+
137
+ _Audit-only. Nothing changes until each phase is approved._
138
+
139
+ ## Scope
140
+ - Boundaries found: forms / API / webhooks / uploads / rendered content
141
+ - Stack: Supabase ☐ Stripe ☐ Next.js ☐ | Assumptions: …
142
+
143
+ ## Verdict
144
+ | Boundary class | Findings | Critical | Unauthenticated write reachable? |
145
+ |----------------|----------|----------|----------------------------------|
146
+ | Form & API | n | n | … |
147
+ | Rendered (XSS) | n | n | … |
148
+ | Webhooks | n | n | … |
149
+ | Uploads/other | n | n | … |
150
+
151
+ ## Findings
152
+ | # | Boundary | path:line | Missing: validate/sanitize/authenticate | Sev | Direction |
153
+ |---|----------|-----------|-----------------------------------------|-----|-----------|
154
+ | I1 | Stripe webhook | api/webhooks/stripe.ts:12 | authenticate (no constructEvent) | Crit | verify raw body against secret; 400 on fail |
155
+ | I2 | comment render | Comment.tsx:30 | sanitize (dangerouslySetInnerHTML) | High | DOMPurify before render |
156
+ | I3 | profile update | actions/profile.ts:8 | validate (mass assignment) | High | Zod allowlist; drop role/credits |
157
+
158
+ ## Phased burndown
159
+ - **Phase 1 — Forgeable money/data paths** → `backend-patterns` — webhooks, mass-assign
160
+ - **Phase 2 — XSS / rendered content** → `backend-error-handling` / `enhance-web-ux` — I2…
161
+ - **Phase 3 — Schema validation pass** → `backend-patterns` — Zod at every boundary
162
+ - **Phase 4 — Uploads & concurrency** → `audit-security` — files, races
163
+
164
+ ## Execution handoff
165
+ Approve a phase to run it. Re-run after; for webhooks, verify with Stripe CLI
166
+ fixtures (real signed events) not mocked payloads.
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Chains with
172
+
173
+ - **Security spine** — entry layer (**this skill**); data access: `plan-rls-audit`;
174
+ credentials: `plan-secrets-audit`.
175
+ - **Execution:** `backend-patterns`, `backend-error-handling`, `audit-security`,
176
+ `audit-fe-api`.
177
+ - **Verify:** `test-red-team` + Stripe CLI signed webhook fixtures.
178
+
179
+ > Planned at high effort; executed at the default effort under the approved-plan execution rule (`approved-plan-execution.mdc`), which forbids reward hacking and feature deletion on any model. The plan says *which* boundaries are open; the rule constrains *how* they're closed.
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: plan-llm-cost-guardrails
3
+ description: >
4
+ Plan-only audit of an LLM app's runaway-cost and quota-abuse exposure. Use
5
+ when "cap my AI costs", "my LLM bill could blow up", "rate limit my AI",
6
+ "token budget", "runaway agent loop", or hardening LLM features before
7
+ launch.
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # LLM Cost-Guardrail Audit + Remediation Plan
13
+
14
+ **Degree of freedom: HIGH** — inventory call sites, score unbounded
15
+ paths, plan. Stay **plan-only**. No limits or routing changes until approved.
16
+
17
+ ## This skill vs neighbors
18
+
19
+ | Skill | Owns |
20
+ |---|---|
21
+ | **plan-llm-cost-guardrails** (this) | Token / quota / runaway-loop plan |
22
+ | `audit-langfuse-llm` | Quality and cost traces |
23
+ | `audit-infra-cost` | Hosting / egress bill |
24
+ | `audit-llm-security` | Unbounded consumption as an attack |
25
+
26
+ ## How to reason (every plan item)
27
+
28
+ 1. **Propose** — token cap, kill switch, breaker, or fallback
29
+ 2. **Risk** — worst-case spend × who can reach the path
30
+ 3. **Keep-working** — call sites that already bound tokens and account usage
31
+ 4. **Phase** — caps → breakers → fallback → visibility (do not execute)
32
+
33
+ ## Worked example
34
+
35
+ > **Propose:** per-user daily token cap + hard daily-spend kill switch on `lib/ai.ts`.
36
+ > **Risk:** public `/api/chat` can replay a 50K context until the bill dies; RPM-only does not count.
37
+ > **Keep-working:** summarizer path already sets `max_tokens`.
38
+ > **Phase:** Phase 1 — caps & kill switch.
39
+
40
+ **Role:** Senior platform engineer (LLM spend + abuse resistance).
41
+
42
+ **Task:** Inventory every LLM call site, test against the 3-layer guardrail model,
43
+ score unbounded paths, phase remediations, emit `plan-llm-cost-guardrails.md`.
44
+ **Audit & plan only — no limits or routing changes until approved.**
45
+
46
+ **Find every path to a runaway bill. Cap it. Change nothing until approved.**
47
+
48
+ Token cost scales with **input + output tokens**, not request count — a single
49
+ 50K-token context replayed three times can exhaust a budget while staying under any
50
+ RPM cap. Vibe-coded AI features ship with no spend cap, no per-user quota, no
51
+ output-token cap, no circuit breaker — compounded by prompt-injection cost amplification
52
+ and forged-webhook quota fraud (the empty-signing-secret bypass class).
53
+
54
+ This is the *prevention* counterpart to Langfuse observability: Langfuse tells you
55
+ what spend *happened*; this audits what's *capped*.
56
+
57
+ ---
58
+
59
+ ## When this fires
60
+
61
+ Trigger phrases: *"cap my AI costs"*, *"my LLM bill could explode"*, *"rate limit
62
+ my AI"*, *"token budget"*, *"someone could drain my quota"*, *"runaway agent
63
+ loop"*, *"per-user AI limits"*, *"pre-launch cost hardening"*.
64
+
65
+ Do **not** fire for: output quality/evals (`audit-langfuse-llm`), generic API
66
+ performance, or trace visibility (`plan-error-handling`). This owns *bounded spend*.
67
+
68
+ ---
69
+
70
+ ## The audit — 3-layer guardrail model [HIGH freedom]
71
+
72
+ ### Layer 1 · Limits (token-aware, not request-count)
73
+ - **Token-bucket / quota per (user, model)** — any per-identity limit?
74
+ - **Token-based, not just RPM** — prompt-TPM and output-TPM ceilings.
75
+ - **Output-token / context caps** — `max_tokens` (Anthropic),
76
+ `max_completion_tokens` or `max_output_tokens` (OpenAI); bound worst-case
77
+ cost; truncate RAG context.
78
+ - **Short + long windows** — per-minute burst *and* per-day/month budget.
79
+ - **Tiered limits** — free vs paid wired to Stripe entitlement.
80
+
81
+ ### Layer 2 · Circuit breakers
82
+ - **Cost-velocity breaker** — spend/min threshold.
83
+ - **Loop / repeat detection** — retry-storms, growing-context loops.
84
+ - **Daily-spend kill switch** — hard cap backstop.
85
+ - **Error-rate breaker** — mostly-failing caller identity.
86
+
87
+ ### Layer 3 · Fallback chain
88
+ - **Primary → cheaper model → cache → graceful 503.**
89
+ - **Semantic cache** before paid calls.
90
+ - **Model routing by complexity** — flag patterns that send every call to the most
91
+ expensive model tier.
92
+
93
+ ### Cross-cutting
94
+ - **Streaming usage accounting** — read usage from the stream or spend is
95
+ invisible: OpenAI Chat Completions sends it only with
96
+ `stream_options.include_usage`; Anthropic sends it in `message_start` and
97
+ cumulative `message_delta` events.
98
+ - **Retry discipline** — token-aware backoff.
99
+ - **Abuse vectors** — unauthenticated AI endpoints; hand boundary fixes to
100
+ `plan-input-validation`.
101
+ - **Langfuse cost alerts** — 50/75/90% thresholds; per-user attribution.
102
+
103
+ ---
104
+
105
+ ## Procedure [HIGH freedom]
106
+
107
+ 1. **Inventory LLM call sites** and public AI endpoints.
108
+ 2. **Test each against Layers 1–3.**
109
+ 3. **Score** = worst-case spend × reachability.
110
+ 4. **Phase** — Layer 1 caps and daily kill switch first.
111
+ 5. **Emit `plan-llm-cost-guardrails.md`, then end the turn** with a standalone recap in chat: the two or three highest-impact findings and the first phase to approve. The file is the deliverable — write it before the recap.
112
+
113
+ ---
114
+
115
+ ## Guardrails [LOW freedom — run exactly]
116
+
117
+ - **Plan only.** No limits, gateway config, or routing changes.
118
+ - **Spend cap is non-negotiable for launch** — flag absence as at least High.
119
+ - **Token-aware or it doesn't count** — don't credit RPM-only limits.
120
+ - **Bounded blast radius**, not zero runaways.
121
+ - **Cross-hand abuse** to `plan-input-validation`.
122
+
123
+ ## Self-critique before the burndown [LOW freedom — do not skip]
124
+
125
+ 1. **evidenced-not-assumed** — each unbounded path names a call site, not "we should cap AI"
126
+ 2. **plan-only** — no limits, gateway, or routing edits this pass
127
+ 3. **phase justified** — Layer 1 caps + daily kill switch before fallback polish
128
+ 4. **right-owner** — quality/evals → `audit-langfuse-llm`; unauth AI input → `plan-input-validation`
129
+ 5. **no-false-safety** — RPM-only is not a token cap; missing spend cap is at least High
130
+
131
+ ---
132
+
133
+ ## Report template — `plan-llm-cost-guardrails.md`
134
+
135
+ ```markdown
136
+ # LLM Cost-Guardrail Audit — <repo>
137
+
138
+ _Audit-only. No limits or routing change until each phase is approved._
139
+
140
+ ## Scope
141
+ - LLM call sites: n | Public AI endpoints: n | Langfuse present: ☐
142
+
143
+ ## Verdict
144
+ | Layer | Present? | Worst gap |
145
+ |-------|----------|-----------|
146
+ | 1 Limits (token-aware) | partial | unbounded max_tokens |
147
+ | 2 Circuit breakers | ❌ | no daily kill switch |
148
+ | 3 Fallback chain | ❌ | limit = hard error |
149
+
150
+ ## Findings
151
+ | # | Call site | Unbounded path | Worst-case | Missing layer | Sev | Direction |
152
+ |---|-----------|----------------|------------|---------------|-----|-----------|
153
+
154
+ ## Phased burndown
155
+ - **Phase 1 — Caps & kill switch** → `backend-patterns`
156
+ - **Phase 2 — Circuit breakers** → `backend-patterns`
157
+ - **Phase 3 — Fallback chain** → `backend-patterns`
158
+ - **Phase 4 — Visibility** → `audit-langfuse-llm` / `backend-observability`
159
+ - **Cross-hand** → `plan-input-validation`
160
+
161
+ ## Execution handoff
162
+ Simulate a runaway in test env after Phase 1; confirm cap holds before bill moves.
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Chains with
168
+
169
+ - **Observability & spend loop** — pairs with `plan-error-handling` (visibility) and
170
+ `audit-langfuse-llm` (quality); this owns *bounded spend*.
171
+ - **`audit-llm-security`** — LLM10 unbounded consumption is the attack-shaped twin.
172
+ - **`audit-infra-cost`** — hosting/egress, not tokens.
173
+ - **Execution:** `backend-patterns`, `audit-langfuse-llm`, `backend-observability`.
174
+ - **Verify:** sandbox load/abuse test — caps, breakers, fallback trip before spend escapes.
175
+
176
+ > Planned at high effort; executed at the default effort under the approved-plan execution rule (`approved-plan-execution.mdc`), which forbids reward hacking and feature deletion on any model.