@kensaurus/skills 0.0.0-stage → 2.1.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 (425) 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 +1790 -0
  6. package/LICENSE +21 -0
  7. package/LICENSE-APACHE +62 -0
  8. package/NOTICE +13 -0
  9. package/README.md +821 -2
  10. package/SECURITY.md +55 -0
  11. package/agents/code-reviewer.md +60 -0
  12. package/agents/completion-judge.md +89 -0
  13. package/agents/db-migrator.md +125 -0
  14. package/agents/debugger.md +47 -0
  15. package/agents/deploy-checker.md +100 -0
  16. package/agents/perf-monitor.md +74 -0
  17. package/assets/favicon.png +0 -0
  18. package/assets/logo-light.png +0 -0
  19. package/assets/logo.png +0 -0
  20. package/assets/logo.svg +6 -0
  21. package/assets/og.png +0 -0
  22. package/bin/install.mjs +1127 -0
  23. package/bin/kenji.js +2 -0
  24. package/commands/adr.md +17 -0
  25. package/commands/aeo-plan.md +18 -0
  26. package/commands/arch-boundaries.md +17 -0
  27. package/commands/aso-plan.md +18 -0
  28. package/commands/auth-flows.md +19 -0
  29. package/commands/backup-plan.md +17 -0
  30. package/commands/burndown-full.md +25 -0
  31. package/commands/capacitor-plan.md +18 -0
  32. package/commands/codemod-safety.md +22 -0
  33. package/commands/commit.md +18 -0
  34. package/commands/complete-everything.md +40 -0
  35. package/commands/cost-plan.md +19 -0
  36. package/commands/deadcode-plan.md +26 -0
  37. package/commands/deadcode.md +32 -0
  38. package/commands/debug-issue.md +17 -0
  39. package/commands/deps-plan.md +18 -0
  40. package/commands/docs-plan.md +17 -0
  41. package/commands/doctrine.md +19 -0
  42. package/commands/error-plan.md +19 -0
  43. package/commands/feedback-to-closure.md +36 -0
  44. package/commands/fix-issue.md +76 -0
  45. package/commands/gate-logic.md +26 -0
  46. package/commands/green-repo.md +36 -0
  47. package/commands/grill-me.md +19 -0
  48. package/commands/gtm-plan.md +21 -0
  49. package/commands/gtm-weekly.md +17 -0
  50. package/commands/gtm.md +22 -0
  51. package/commands/handoff.md +15 -0
  52. package/commands/housekeep-backlog.md +18 -0
  53. package/commands/housekeep-files.md +22 -0
  54. package/commands/housekeep-gates.md +18 -0
  55. package/commands/instant-nav.md +11 -0
  56. package/commands/integrity-plan.md +19 -0
  57. package/commands/launch-kit.md +16 -0
  58. package/commands/mcp-guide.md +40 -0
  59. package/commands/mobile-plan.md +19 -0
  60. package/commands/native-rn-monorepo/README.md +78 -0
  61. package/commands/native-rn-monorepo/android-build.md +26 -0
  62. package/commands/native-rn-monorepo/android-install.md +32 -0
  63. package/commands/native-rn-monorepo/android-logcat.md +37 -0
  64. package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
  65. package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
  66. package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
  67. package/commands/native-rn-monorepo/rn-reset.md +50 -0
  68. package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
  69. package/commands/native-rn-monorepo/rn-verify.md +53 -0
  70. package/commands/perf-plan.md +18 -0
  71. package/commands/plan-mode.md +74 -0
  72. package/commands/pr.md +16 -0
  73. package/commands/pricing-plan.md +20 -0
  74. package/commands/privacy-plan.md +18 -0
  75. package/commands/readability.md +12 -0
  76. package/commands/readme.md +15 -0
  77. package/commands/refactor.md +15 -0
  78. package/commands/release-prep.md +17 -0
  79. package/commands/research.md +25 -0
  80. package/commands/responsive-audit.md +21 -0
  81. package/commands/review-code.md +18 -0
  82. package/commands/rls-plan.md +18 -0
  83. package/commands/secrets-plan.md +18 -0
  84. package/commands/security-plan.md +19 -0
  85. package/commands/ship-and-observe.md +36 -0
  86. package/commands/skill-conflicts.md +19 -0
  87. package/commands/slop-plan.md +18 -0
  88. package/commands/stub-plan.md +18 -0
  89. package/commands/test-mutation.md +16 -0
  90. package/commands/test-plan.md +17 -0
  91. package/commands/test.md +29 -0
  92. package/commands/thirdparty-web-interface-guidelines.md +185 -0
  93. package/commands/uiux-plan.md +18 -0
  94. package/commands/uiux.md +45 -0
  95. package/commands/update-deps.md +21 -0
  96. package/commands/validation-plan.md +19 -0
  97. package/commands-portable/fix-issue.md +72 -0
  98. package/commands-portable/plan-mode.md +92 -0
  99. package/commands-portable/research.md +91 -0
  100. package/docs/screenshots/README.md +5 -0
  101. package/docs/screenshots/audit-dark.png +0 -0
  102. package/docs/screenshots/build-dark.png +0 -0
  103. package/docs/screenshots/grill-dark.png +0 -0
  104. package/docs/screenshots/hero-dark.png +0 -0
  105. package/docs/screenshots/hero-light.png +0 -0
  106. package/docs/screenshots/ship-dark.png +0 -0
  107. package/docs/screenshots/src/showcase.html +320 -0
  108. package/hooks/completion-gate.mjs +258 -0
  109. package/hooks/cursor-hooks.json +13 -0
  110. package/hooks/hooks.json +15 -0
  111. package/install.sh +21 -0
  112. package/llms.txt +40 -0
  113. package/mcp/README.md +266 -0
  114. package/mcp/VERSIONS.md +41 -0
  115. package/mcp/mcp-full.json.template +124 -0
  116. package/mcp/mcp.json.template +29 -0
  117. package/mcp/pinned-versions.json +27 -0
  118. package/package.json +94 -4
  119. package/rules/approved-plan-execution.mdc +65 -0
  120. package/rules/full-stack-ship-discipline.mdc +37 -0
  121. package/rules/native-rn-monorepo/README.md +63 -0
  122. package/rules/native-rn-monorepo/_project.mdc +69 -0
  123. package/rules/native-rn-monorepo/native-android.mdc +72 -0
  124. package/rules/native-rn-monorepo/native-ios.mdc +61 -0
  125. package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
  126. package/rules/native-rn-monorepo/web.mdc +60 -0
  127. package/rules/project-starter/components.mdc +54 -0
  128. package/rules/project-starter/data-fetching.mdc +77 -0
  129. package/rules/project-starter/git.mdc +41 -0
  130. package/rules/project-starter/supabase.mdc +37 -0
  131. package/rules/project-starter/tailwind.mdc +48 -0
  132. package/rules/project-starter/typescript.mdc +36 -0
  133. package/rules/project-starter/web-performance.mdc +42 -0
  134. package/rules/senior-engineer.mdc +30 -0
  135. package/rules/shell-first-search.mdc +19 -0
  136. package/rules/skill-workflows.mdc +35 -0
  137. package/rules/verification-before-completion.mdc +57 -0
  138. package/skills/audit-accessibility/SKILL.md +441 -0
  139. package/skills/audit-agent-speed/SKILL.md +181 -0
  140. package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
  141. package/skills/audit-analytics/SKILL.md +138 -0
  142. package/skills/audit-auth-flows/SKILL.md +267 -0
  143. package/skills/audit-backend-architecture/SKILL.md +266 -0
  144. package/skills/audit-backend-architecture/references/patterns.md +386 -0
  145. package/skills/audit-bundle-size/SKILL.md +295 -0
  146. package/skills/audit-cicd/SKILL.md +218 -0
  147. package/skills/audit-code-quality/SKILL.md +314 -0
  148. package/skills/audit-code-review/SKILL.md +289 -0
  149. package/skills/audit-codemod-safety/SKILL.md +159 -0
  150. package/skills/audit-db-schema/SKILL.md +465 -0
  151. package/skills/audit-db-schema/references/details.md +110 -0
  152. package/skills/audit-doctrine/SKILL.md +189 -0
  153. package/skills/audit-env-parity/SKILL.md +133 -0
  154. package/skills/audit-fe-api/SKILL.md +458 -0
  155. package/skills/audit-gate-logic/SKILL.md +219 -0
  156. package/skills/audit-i18n/SKILL.md +339 -0
  157. package/skills/audit-infra-cost/SKILL.md +142 -0
  158. package/skills/audit-langfuse-llm/SKILL.md +468 -0
  159. package/skills/audit-langfuse-llm/references/details.md +226 -0
  160. package/skills/audit-llm-security/SKILL.md +147 -0
  161. package/skills/audit-monetization-iap/SKILL.md +137 -0
  162. package/skills/audit-payment-system/SKILL.md +268 -0
  163. package/skills/audit-payment-system/references/checklist.md +283 -0
  164. package/skills/audit-performance/SKILL.md +383 -0
  165. package/skills/audit-performance/references/loading-priority-2026.md +81 -0
  166. package/skills/audit-realworld/SKILL.md +287 -0
  167. package/skills/audit-registry-listing/SKILL.md +122 -0
  168. package/skills/audit-resilience/SKILL.md +153 -0
  169. package/skills/audit-responsive/SKILL.md +221 -0
  170. package/skills/audit-responsive/references/checklist.md +166 -0
  171. package/skills/audit-security/SKILL.md +289 -0
  172. package/skills/audit-skill-conflicts/SKILL.md +178 -0
  173. package/skills/audit-ui-states/SKILL.md +146 -0
  174. package/skills/audit-uiux-design-system/SKILL.md +475 -0
  175. package/skills/audit-uiux-design-system/references/details.md +71 -0
  176. package/skills/audit-ux/SKILL.md +381 -0
  177. package/skills/audit-ux/references/details.md +245 -0
  178. package/skills/audit-ux-journeys/SKILL.md +215 -0
  179. package/skills/audit-ux-journeys/references/checklist.md +179 -0
  180. package/skills/backend-db-performance/SKILL.md +441 -0
  181. package/skills/backend-error-handling/SKILL.md +489 -0
  182. package/skills/backend-error-handling/references/details.md +58 -0
  183. package/skills/backend-observability/SKILL.md +88 -0
  184. package/skills/backend-patterns/SKILL.md +499 -0
  185. package/skills/backend-patterns/references/architecture-patterns.md +298 -0
  186. package/skills/backend-realtime/SKILL.md +403 -0
  187. package/skills/backend-realtime/references/patterns.md +74 -0
  188. package/skills/burndown-full/SKILL.md +174 -0
  189. package/skills/complete-everything/SKILL.md +295 -0
  190. package/skills/data-pipeline/SKILL.md +109 -0
  191. package/skills/data-visualization/SKILL.md +488 -0
  192. package/skills/debug-error/SKILL.md +322 -0
  193. package/skills/debug-fe-be-integration/SKILL.md +459 -0
  194. package/skills/debug-sentry-monitor/SKILL.md +497 -0
  195. package/skills/debug-sentry-monitor/references/details.md +165 -0
  196. package/skills/deploy-npm/SKILL.md +394 -0
  197. package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
  198. package/skills/deploy-verify/SKILL.md +489 -0
  199. package/skills/design-api/SKILL.md +379 -0
  200. package/skills/design-canvas/SKILL.md +155 -0
  201. package/skills/design-email/SKILL.md +370 -0
  202. package/skills/design-frontend/SKILL.md +143 -0
  203. package/skills/design-generative-art/SKILL.md +474 -0
  204. package/skills/design-mobile-first/SKILL.md +506 -0
  205. package/skills/design-motion/SKILL.md +333 -0
  206. package/skills/design-motion/references/delight-interactions.md +191 -0
  207. package/skills/design-prd/SKILL.md +443 -0
  208. package/skills/design-system/SKILL.md +457 -0
  209. package/skills/design-theme/SKILL.md +226 -0
  210. package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
  211. package/skills/docs-adr/SKILL.md +168 -0
  212. package/skills/docs-coauthor/SKILL.md +368 -0
  213. package/skills/docs-comparison-pages/SKILL.md +117 -0
  214. package/skills/docs-domain-modeling/SKILL.md +97 -0
  215. package/skills/docs-launch-kit/SKILL.md +139 -0
  216. package/skills/docs-writer/SKILL.md +469 -0
  217. package/skills/enhance-agent-guardrails/SKILL.md +164 -0
  218. package/skills/enhance-arch-boundaries/SKILL.md +154 -0
  219. package/skills/enhance-capacitor-ui/SKILL.md +463 -0
  220. package/skills/enhance-capacitor-ui/references/details.md +750 -0
  221. package/skills/enhance-email-deliverability/SKILL.md +143 -0
  222. package/skills/enhance-growth-loops/SKILL.md +122 -0
  223. package/skills/enhance-lifecycle-email/SKILL.md +130 -0
  224. package/skills/enhance-motion/SKILL.md +193 -0
  225. package/skills/enhance-onboarding/SKILL.md +148 -0
  226. package/skills/enhance-pwa/SKILL.md +303 -0
  227. package/skills/enhance-readability/SKILL.md +146 -0
  228. package/skills/enhance-readme/SKILL.md +496 -0
  229. package/skills/enhance-readme/package-lock.json +187 -0
  230. package/skills/enhance-readme/package.json +17 -0
  231. package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
  232. package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
  233. package/skills/enhance-skill-prompts/SKILL.md +167 -0
  234. package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
  235. package/skills/enhance-ux-laws/SKILL.md +409 -0
  236. package/skills/enhance-web-conversion/SKILL.md +155 -0
  237. package/skills/enhance-web-forms/SKILL.md +154 -0
  238. package/skills/enhance-web-instant-nav/SKILL.md +138 -0
  239. package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
  240. package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
  241. package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
  242. package/skills/enhance-web-landing/SKILL.md +459 -0
  243. package/skills/enhance-web-landing/references/details.md +773 -0
  244. package/skills/enhance-web-redesign/SKILL.md +228 -0
  245. package/skills/enhance-web-seo/SKILL.md +276 -0
  246. package/skills/enhance-web-ui/SKILL.md +473 -0
  247. package/skills/enhance-web-ui/references/details.md +674 -0
  248. package/skills/enhance-web-ux/HEURISTICS.md +248 -0
  249. package/skills/enhance-web-ux/PATTERNS.md +375 -0
  250. package/skills/enhance-web-ux/SKILL.md +464 -0
  251. package/skills/enhance-web-ux/examples.md +222 -0
  252. package/skills/enhance-web-ux/references/details.md +406 -0
  253. package/skills/enhance-web-web3d/SKILL.md +397 -0
  254. package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
  255. package/skills/handoff/SKILL.md +66 -0
  256. package/skills/housekeep-backlog/SKILL.md +149 -0
  257. package/skills/housekeep-dead-code/SKILL.md +387 -0
  258. package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
  259. package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
  260. package/skills/housekeep-design/SKILL.md +207 -0
  261. package/skills/housekeep-files/SKILL.md +220 -0
  262. package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
  263. package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
  264. package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
  265. package/skills/housekeep-gates/SKILL.md +174 -0
  266. package/skills/iterate-agent-harness/SKILL.md +137 -0
  267. package/skills/iterate-gtm-weekly/SKILL.md +103 -0
  268. package/skills/iterate-post-launch/SKILL.md +292 -0
  269. package/skills/meta-mcp-builder/SKILL.md +313 -0
  270. package/skills/meta-skill-creator/SKILL.md +304 -0
  271. package/skills/mobile-capacitor-platform/SKILL.md +103 -0
  272. package/skills/mobile-emulator-start/SKILL.md +296 -0
  273. package/skills/mobile-emulator-test/SKILL.md +491 -0
  274. package/skills/mobile-emulator-test/references/details.md +478 -0
  275. package/skills/mobile-rn-performance/SKILL.md +107 -0
  276. package/skills/mobile-rn-screen/SKILL.md +476 -0
  277. package/skills/mobile-rn-screen/references/details.md +785 -0
  278. package/skills/mushi-health/SKILL.md +206 -0
  279. package/skills/mushi-integration/SKILL.md +257 -0
  280. package/skills/plan-aeo-readiness/SKILL.md +166 -0
  281. package/skills/plan-antislop/SKILL.md +281 -0
  282. package/skills/plan-aso/SKILL.md +149 -0
  283. package/skills/plan-backup-dr/SKILL.md +131 -0
  284. package/skills/plan-capacitor-hardening/SKILL.md +217 -0
  285. package/skills/plan-data-integrity/SKILL.md +187 -0
  286. package/skills/plan-dead-code/SKILL.md +386 -0
  287. package/skills/plan-dead-code/references/knip-config.md +214 -0
  288. package/skills/plan-dead-code/references/output-templates.md +133 -0
  289. package/skills/plan-dead-code/references/preservation-contract.md +50 -0
  290. package/skills/plan-dead-code/references/residue-greps.md +84 -0
  291. package/skills/plan-dependency-provenance/SKILL.md +200 -0
  292. package/skills/plan-docs-sync/SKILL.md +143 -0
  293. package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
  294. package/skills/plan-docs-sync/references/output-templates.md +33 -0
  295. package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
  296. package/skills/plan-error-handling/SKILL.md +205 -0
  297. package/skills/plan-gtm/SKILL.md +276 -0
  298. package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
  299. package/skills/plan-input-validation/SKILL.md +179 -0
  300. package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
  301. package/skills/plan-mobile-readiness/SKILL.md +171 -0
  302. package/skills/plan-perf-audit/SKILL.md +145 -0
  303. package/skills/plan-perf-audit/references/audit-scope.md +51 -0
  304. package/skills/plan-perf-audit/references/output-templates.md +33 -0
  305. package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
  306. package/skills/plan-pricing/SKILL.md +173 -0
  307. package/skills/plan-privacy-compliance/SKILL.md +148 -0
  308. package/skills/plan-rls-audit/SKILL.md +231 -0
  309. package/skills/plan-secrets-audit/SKILL.md +181 -0
  310. package/skills/plan-security-audit/SKILL.md +168 -0
  311. package/skills/plan-security-audit/references/output-templates.md +36 -0
  312. package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
  313. package/skills/plan-security-audit/references/preservation-contract.md +18 -0
  314. package/skills/plan-stub-checker/SKILL.md +216 -0
  315. package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
  316. package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
  317. package/skills/plan-stub-checker/references/output-templates.md +63 -0
  318. package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
  319. package/skills/plan-test-coverage/SKILL.md +170 -0
  320. package/skills/plan-test-coverage/references/methodology.md +54 -0
  321. package/skills/plan-test-coverage/references/output-templates.md +34 -0
  322. package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
  323. package/skills/plan-uiux-unification/SKILL.md +230 -0
  324. package/skills/plan-uiux-unification/references/output-templates.md +67 -0
  325. package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
  326. package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
  327. package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
  328. package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
  329. package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
  330. package/skills/research/SKILL.md +422 -0
  331. package/skills/test-exploratory/SKILL.md +165 -0
  332. package/skills/test-exploratory/references/charter-template.md +29 -0
  333. package/skills/test-load/SKILL.md +126 -0
  334. package/skills/test-mutation/SKILL.md +160 -0
  335. package/skills/test-playwright/SKILL.md +354 -0
  336. package/skills/test-qa/SKILL.md +364 -0
  337. package/skills/test-qa/references/details.md +268 -0
  338. package/skills/test-red-team/SKILL.md +386 -0
  339. package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
  340. package/skills/test-unit/SKILL.md +259 -0
  341. package/skills/test-unit/references/details.md +267 -0
  342. package/skills/test-visual-regression/SKILL.md +132 -0
  343. package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
  344. package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
  345. package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
  346. package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
  347. package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
  348. package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
  349. package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
  350. package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
  351. package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
  352. package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
  353. package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
  354. package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
  355. package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  356. package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  357. package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  358. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  359. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  360. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  361. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  362. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
  363. package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  364. package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  365. package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  366. package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  367. package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
  368. package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
  369. package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  370. package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  371. package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
  372. package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
  373. package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
  374. package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
  375. package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
  376. package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
  377. package/skills/workflow-build-feature/SKILL.md +118 -0
  378. package/skills/workflow-coding-discipline/SKILL.md +140 -0
  379. package/skills/workflow-environment-ready/SKILL.md +128 -0
  380. package/skills/workflow-feature-flag/SKILL.md +262 -0
  381. package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
  382. package/skills/workflow-fix-and-ship/SKILL.md +136 -0
  383. package/skills/workflow-git-commit/SKILL.md +200 -0
  384. package/skills/workflow-green-repo/SKILL.md +166 -0
  385. package/skills/workflow-grilling/SKILL.md +73 -0
  386. package/skills/workflow-gtm/SKILL.md +153 -0
  387. package/skills/workflow-housekeep/SKILL.md +453 -0
  388. package/skills/workflow-housekeep/references/templates.md +109 -0
  389. package/skills/workflow-launch-ready/SKILL.md +145 -0
  390. package/skills/workflow-merge-conflicts/SKILL.md +62 -0
  391. package/skills/workflow-onboard/SKILL.md +99 -0
  392. package/skills/workflow-parallel-agents/SKILL.md +164 -0
  393. package/skills/workflow-pr/SKILL.md +197 -0
  394. package/skills/workflow-quality-gate/SKILL.md +147 -0
  395. package/skills/workflow-refactor/SKILL.md +274 -0
  396. package/skills/workflow-release-prep/SKILL.md +207 -0
  397. package/skills/workflow-ship-and-observe/SKILL.md +164 -0
  398. package/skills/workflow-spec-tdd/SKILL.md +141 -0
  399. package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
  400. package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
  401. package/skills-cursor/babysit/SKILL.md +17 -0
  402. package/skills-cursor/canvas/SKILL.md +142 -0
  403. package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
  404. package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
  405. package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
  406. package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
  407. package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
  408. package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
  409. package/skills-cursor/canvas/sdk/index.d.ts +47 -0
  410. package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
  411. package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
  412. package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
  413. package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
  414. package/skills-cursor/create-hook/SKILL.md +238 -0
  415. package/skills-cursor/create-rule/SKILL.md +185 -0
  416. package/skills-cursor/create-skill/SKILL.md +269 -0
  417. package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
  418. package/skills-cursor/create-subagent/SKILL.md +228 -0
  419. package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
  420. package/skills-cursor/shell/SKILL.md +22 -0
  421. package/skills-cursor/split-to-prs/SKILL.md +47 -0
  422. package/skills-cursor/statusline/SKILL.md +193 -0
  423. package/skills-cursor/update-cli-config/SKILL.md +85 -0
  424. package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
  425. package/skills.sh.json +297 -0
@@ -0,0 +1,167 @@
1
+ ---
2
+ name: enhance-skill-prompts
3
+ description: >
4
+ Upgrade how an existing SKILL.md instructs, not what it does: freedom, a
5
+ classification contract, one worked example, an evidence rubric, effort. Use
6
+ when "enhance this skill's prompts", "upgrade skill authoring", or "apply
7
+ the prompt playbook".
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # enhance-skill-prompts — Upgrade HOW a skill instructs, never WHAT it does
13
+
14
+ **Degree of freedom: LOW-to-MEDIUM.** This is a fragile transformation. A
15
+ well-meant rewrite can change behavior. Follow the phases in order. Preserve
16
+ intent, scope, and family semantics exactly. If a change would alter
17
+ behavior, scope, or read-only / plan-only / apply-now stance, stop and flag
18
+ it instead.
19
+
20
+ Grounded in [docs/PROMPT-ENHANCEMENT-PLAYBOOK.md](../../docs/PROMPT-ENHANCEMENT-PLAYBOOK.md)
21
+ and the annotated exemplar
22
+ [references/exemplar-audit-auth-flows.md](references/exemplar-audit-auth-flows.md).
23
+ Live reference after the exemplar was applied:
24
+ `skills/audit-auth-flows/SKILL.md`. New skill from scratch →
25
+ `meta-skill-creator`.
26
+
27
+ ## Phase 0 — Classify the skill [HIGH freedom]
28
+
29
+ Read the target SKILL.md and determine:
30
+
31
+ - **Family & register:** audit/plan (interpretive → mostly HIGH) vs
32
+ housekeep/deploy/migration (fragile sequences → LOW where a step must be
33
+ exact).
34
+ - **Judgment points:** triage, severity, root cause, winner-selection → T2/T3.
35
+ - **Fragile steps:** probes, baseline capture, destructive ops → T1 LOW.
36
+ - **Existing example:** is the `## Worked example` a real few-shot (chain plus output shape on a concrete case) or a placeholder?
37
+ - **Effort tier (T7):** which family the skill belongs to, and therefore which `effort:` it declares.
38
+
39
+ State the classification before editing. It decides which techniques apply.
40
+
41
+ ## Phase 1 — Apply T1–T8 (only where they fit) [HIGH freedom]
42
+
43
+ Apply in this order. Skip any technique that does not fit and record why.
44
+
45
+ **T1 — Declare degrees of freedom.** Short register line under the H1.
46
+ Where mixed, tag fragile phases `[LOW freedom — run exactly]` and
47
+ interpretive ones `[HIGH freedom]`. Do not over-constrain interpretive
48
+ audits or under-constrain fragile sequences.
49
+
50
+ **T2 — One named-stage judgment frame.** The stages a conclusion must
51
+ pass through (audits: Observe → Interpret → Classify → Severity; plans:
52
+ Propose → Risk → Keep-working → Phase). Place it ONCE near the top and
53
+ reference it. It defines what a finding must contain, not how to think:
54
+ reasoning depth comes from `effort:` (T7), and generic "think step by
55
+ step" or "double-check" prose is dead weight on Opus 5.5.
56
+
57
+ **T3 — Exactly one worked example.** The chain AND the output shape on a
58
+ realistic case, labeled illustrative. Put it right after the T2 frame.
59
+
60
+ **T4 — Self-critique rubric before output.** Explicit, answerable checks
61
+ (evidenced-not-assumed, reproducible, severity-justified, right-owner,
62
+ no-false-safety). Plan skills: run this before presenting the burndown.
63
+ Opus 5.5 self-verifies unprompted, so each rubric line must name the
64
+ evidence it is checked against (a tool result, a rendered rect, a header,
65
+ a CI run); a line that is a generic re-check ("verify your work",
66
+ "double-check") is cut. Principle-based ("constitutional-style") checking
67
+ belongs here as a rubric, not a label.
68
+
69
+ **T5 — Terminology consistency.** One term per concept. Unify
70
+ gate/check/guard, finding/issue/problem, user/caller/client to the skill's
71
+ dominant term.
72
+
73
+ **T6 — Conciseness.** Cut restated context the agent already has. Never
74
+ trim a fragile step's exactness. Net tokens should usually drop even after
75
+ T2+T3.
76
+
77
+ **T7 — Effort routing.** Declare `effort:` in frontmatter by family:
78
+ audit / plan / judge / security / architecture → `high` (`xhigh` only for
79
+ the hardest planning, with a measured reason); mechanical, read-only,
80
+ formatting, handoff, inventory → `low`; ordinary implementation → omit
81
+ (Opus 5.5 defaults to `medium`, which matches Opus 5 at high). A read-only
82
+ inventory skill may add `context: fork` + `agent: Explore` to keep the main
83
+ context clean. Cursor ignores the key; `validate:skills` checks its value.
84
+ Effort is the only thinking control on Opus 5.5 — never steer depth with
85
+ prose ("think harder", "don't overthink", "double-check").
86
+
87
+ **T8 — Volume, shape, and communication.** Each rule once, at normal
88
+ volume, with its reason — drop MUST / NEVER / CRITICAL markers, "be
89
+ thorough", and update suppressors ("no preamble", "don't narrate"): Opus
90
+ 5.5 follows instructions literally, so emphasis over-triggers and
91
+ suppressors leave the user blind between tool calls. State the success
92
+ condition instead of a prohibition list. Exception: frontend design
93
+ direction works best as *named* default patterns to avoid (cream
94
+ background, italic accent word in headlines, "01 / 02 / 03" section
95
+ labels, monospace labels, pill buttons, Inter / Roboto, purple gradients,
96
+ three equal cards) — "avoid a generic AI look" swaps one default for
97
+ another. Numbered steps only for fragile sequences (destructive ops, auth,
98
+ migrations, baseline capture); judgment phases get outcomes, constraints,
99
+ and how to verify. The always-on verification rule already asks for an
100
+ intent line, load-bearing notes and a standalone recap; do not repeat it
101
+ per skill and never suppress it ("no preamble", "hold findings"). Skills
102
+ that run unattended add one line saying when the turn may end.
103
+
104
+ ## How to reason
105
+
106
+ 1. **Observe** — existing H1 register, phases, examples, body length
107
+ 2. **Interpret** — which of T1–T8 are missing vs already present as headings or keys
108
+ 3. **Classify** — apply / skip-with-reason / stop (would change behavior)
109
+ 4. **Severity** — a trigger or stance change is an invalid edit
110
+
111
+ ## Worked example
112
+
113
+ > **Observe:** `meta-skill-creator` has T1 and a technique table; no `## Worked example`.
114
+ > **Interpret:** the table mention is not T3; the agent still has no few-shot.
115
+ > **Classify:** add one `## Worked example` + `## Self-critique` after the table; do not rewrite Anatomy or frontmatter.
116
+ > **Invariant:** description triggers unchanged; still "create a pack SKILL.md".
117
+
118
+ ## Self-critique before reporting
119
+
120
+ - **Headings exist** — T3 is `## Worked example`, T4 is `## Self-critique…`, not a table cell
121
+ - **Behavior same** — no phase-order, stance, or trigger change
122
+ - **One example** — not a second tutorial
123
+ - **Right owner** — new skill from scratch → `meta-skill-creator`
124
+
125
+ ## Phase 2 — Preserve invariants [LOW freedom — run exactly]
126
+
127
+ The edit is invalid if any of these break:
128
+
129
+ - Same **name, description triggers, and scope** — routing must not change.
130
+ - Same **behavior and stance** — read-only stays read-only; apply-now stays
131
+ apply-now; plan-only stays plan-only; phase order and Definition-of-Done
132
+ coverage unchanged in substance.
133
+ - **House limits** — description ≤320 chars (same folding as
134
+ `scripts/validate-skills.mjs`), body <500 lines, name matches dir.
135
+ - **Frontmatter:** `name` and `description` untouched unless a within-budget
136
+ description change is explicitly requested. Adding or adjusting `effort:`
137
+ (T7) is allowed and is not a routing change.
138
+ - Cross-references use live skill names; the responsive skill is `audit-responsive`.
139
+ - Strip `<!-- TECHNIQUE -->` comments from live SKILL.md (they belong only
140
+ in the exemplar).
141
+
142
+ If any invariant would break, revert that change and note it.
143
+
144
+ ## Phase 3 — Report the diff [LOW freedom — do not skip]
145
+
146
+ Do not silently rewrite. Present, per skill:
147
+
148
+ 1. **Classification** — family | register | judgment points | fragile steps | has-example?
149
+ 2. **Technique table** — technique | applied? | where | why-skipped-if-not
150
+ 3. **Section diffs** — before/after for each change
151
+ 4. **Invariant check** — each invariant | holds?
152
+
153
+ Apply on approval. For a batch, finish one skill as reference, get
154
+ sign-off, then proceed.
155
+
156
+ ## Definition of Done
157
+
158
+ - [ ] Skill classified before editing
159
+ - [ ] T1–T8 applied or skipped with a reason
160
+ - [ ] Invariants verified; frontmatter triggers unchanged
161
+ - [ ] Diff reported; applied only on approval
162
+
163
+ ## Related
164
+
165
+ - `meta-skill-creator` — new SKILL.md from scratch
166
+ - `audit-skill-conflicts` — routing / coherence after a batch
167
+ - `validate:skills` — per-file spec after edits
@@ -0,0 +1,311 @@
1
+ > Teaching copy of `audit-auth-flows` with technique annotations (`<!-- TECHNIQUE -->`).
2
+ > Live shipped file (comments stripped; pack frontmatter unchanged):
3
+ > `skills/audit-auth-flows/SKILL.md`.
4
+
5
+ ---
6
+ name: audit-auth-flows
7
+ description: >
8
+ Read-only audit of app-layer auth: route×gate matrix, session lifecycle,
9
+ OAuth, provider traps (getSession vs getUser, middleware-only gates,
10
+ CVE-2025-29927). Use when "audit our auth" or "check middleware protection".
11
+ RLS → plan-rls-audit.
12
+ license: MIT
13
+ effort: high
14
+ ---
15
+
16
+ <!-- TECHNIQUE: effort routing. A security audit is judgment work, so the
17
+ frontmatter declares `effort: high`; the model default is medium. Claude Code
18
+ honors the key, Cursor ignores it. Mechanical fixed-sequence skills declare
19
+ `effort: low`. Read-only does not mean low: audits are read-only and high. -->
20
+
21
+ # audit-auth-flows — Middleware is edge routing, not a security boundary
22
+
23
+ ## Degree of freedom: MIXED — declared per phase
24
+
25
+ <!-- TECHNIQUE: T1 degree-of-freedom declaration (Anthropic official). The
26
+ skill states its register up front and per phase, so the agent knows where
27
+ to reason freely and where to follow exact steps. It pairs with the `effort:`
28
+ key above: the register line says where to reason freely; the effort key says
29
+ how deep. This header is the single most important addition. -->
30
+
31
+ - Phases 0–4 (discovery, judgment): **[HIGH freedom]** — reason about what
32
+ you find; checklists prompt investigation, they are not tick-scripts.
33
+ - Phase 5 (live probes) and the getSession grep: **[LOW freedom — run
34
+ exactly]** — a skipped probe is an unproven claim, not a saved step.
35
+
36
+ Read-only. Map the auth surface and prove, route by route, that identity is
37
+ verified where it matters. Then stop. Hand fixes to a follow-up session.
38
+
39
+ **2026 consensus (official, post CVE-2025-29927):** Next.js middleware
40
+ runs before cache and routing. Vercel: *"We do not recommend Middleware
41
+ to be the sole method of protecting routes in your application."* An
42
+ audit that only reads `middleware.ts` and declares the app safe has
43
+ missed the point. Defense in depth: edge + route handler / server action
44
+ + data layer. Each layer covers a different part of the request path.
45
+
46
+ ## How to reason in this audit
47
+
48
+ <!-- TECHNIQUE: T2 named-stage chain (not "think step by step"). Thinking is
49
+ always on for the model and `effort` in frontmatter sets its depth, so this
50
+ is not a reasoning script: it is the record shape every finding carries, so
51
+ no finding can be written without its evidence, its meaning, its bucket, and
52
+ a justified severity. Placed once, referenced by each phase. -->
53
+
54
+ Every finding is recorded in this shape, in this order:
55
+
56
+ 1. **Observe** — what does the code/probe actually show? (quote the line or the response)
57
+ 2. **Interpret** — what does that mean for who can reach what? (don't assume intent)
58
+ 3. **Classify** — real exposure / defense-in-depth-gap / correct-as-is / needs-a-probe
59
+ 4. **Severity** — by blast radius: unauth data access & auth bypass = critical;
60
+ everything else justified against what an attacker actually gains.
61
+
62
+ If you cannot complete Interpret from static code, it is a **needs-a-probe**
63
+ item for Phase 5, not a conclusion.
64
+
65
+ ## Worked example
66
+
67
+ <!-- TECHNIQUE: T3 one worked example, shown in the chain's order AND the
68
+ finding-row shape. Examples pin format — the model matches their length and
69
+ structure — so label it illustrative, keep it realistic, and add a second only
70
+ where it varies the judgment (a different Classify outcome), not a second
71
+ tutorial. The output-format section carries the rest. -->
72
+
73
+ > **Observe:** `middleware.ts` matcher is `['/dashboard/:path*']`. The route
74
+ > `/api/orders/[id]` has no check in the handler.
75
+ > **Interpret:** API routes are not under the matcher, so middleware never
76
+ > runs on them; the order endpoint is reachable without auth. Layout-level
77
+ > checks don't cover direct API calls.
78
+ > **Classify:** real exposure (not merely a defense-in-depth gap — data is
79
+ > actually reachable).
80
+ > **Severity:** critical — unauthenticated data access.
81
+ > **Finding row:** `/api/orders/[id]` | edge+route | critical | matcher
82
+ > excludes /api; handler has no `getUser()` check | probe P5-a confirmed
83
+ > 200 while logged out.
84
+
85
+ ## This skill vs neighbors
86
+
87
+ | Skill | Owns |
88
+ |---|---|
89
+ | **audit-auth-flows** (this) | Session lifecycle, route×gate matrix, OAuth, provider traps |
90
+ | `audit-security` | OWASP checklist (injection, headers, deps) — may fix inline |
91
+ | `plan-security-audit` | Plan-only hardening burndown |
92
+ | `plan-rls-audit` | Data-layer who-can-read-which-rows |
93
+ | `plan-secrets-audit` | Where `service_role` / keys live |
94
+ | `plan-privacy-compliance` | Consent / policy vs collection — not session gates |
95
+ | `backend-patterns` | Building the middleware / guard fixes after this audit |
96
+ | `test-exploratory` | Live guest vs logged-in probe (runtime complement to this static matrix) |
97
+
98
+ ---
99
+
100
+ ## Phase 0 — Detect the auth stack [HIGH freedom]
101
+
102
+ Identify: provider (Supabase Auth / NextAuth / Clerk / Auth0 / custom),
103
+ framework protection (Next.js middleware + `matcher`, route guards,
104
+ server-action checks), session transport (cookie vs `localStorage` vs
105
+ `Authorization` header), token model (JWT vs server session). Enumerate
106
+ pages, API routes, server actions, edge functions, admin areas. Record
107
+ the pinned framework version — auth CVEs are version-gated.
108
+
109
+ ---
110
+
111
+ ## Phase 1 — Route × gate coverage matrix [HIGH freedom — the centerpiece]
112
+
113
+ Every protected route / action, one row. Apply the reasoning chain per row.
114
+
115
+ | route/action | intended access | gate that protects it | verified server-side? | data-layer backstop? |
116
+
117
+ Hunt the gaps this exposes:
118
+
119
+ - **Matcher holes** — `config.matcher` misses a protected path. API
120
+ routes and server actions often bypass page middleware — each needs
121
+ its own check.
122
+ - **Layout-only protection** — a layout/wrapper is a client-side
123
+ illusion. It does not gate data fetches or direct API/action calls.
124
+ - **Middleware-as-only-gate** — the CVE-2025-29927 class. Any route
125
+ where middleware is the *sole* authorization layer is a finding
126
+ **regardless of framework version or host**. Patching the CVE is not
127
+ defense in depth.
128
+ - **Server action exposure** — Next.js server actions are POST
129
+ endpoints callable directly. Each mutating action must check identity
130
+ itself.
131
+ - **Unlisted routes** — grep the router; do not trust the matcher list.
132
+
133
+ ---
134
+
135
+ ## Phase 2 — Provider and framework traps [HIGH freedom, except the grep = LOW]
136
+
137
+ **Supabase (check first on this stack):**
138
+
139
+ - **[LOW freedom — run exactly]** `grep -rn "getSession(" <server-code-paths>`.
140
+ <!-- TECHNIQUE: T1 applied to the fragile bit. Promoted from advisory
141
+ prose to an explicit "run exactly" step so the agent cannot reason past
142
+ the grep. -->
143
+ Treat every server-side hit as a finding until proven client-side-only.
144
+ Official JS docs: cookie/storage values *may not be authentic*;
145
+ `getSession()` is strongly advised against for authorization.
146
+ `getUser()` performs a network request to the Auth server and *can* be
147
+ used to base authorization rules. Newer SSR guides also use
148
+ `getClaims()` to *refresh* cookies — that is not a substitute for
149
+ verifying identity at the handler.
150
+ - Service-role key on any client-exposed path → `plan-secrets-audit`.
151
+ RLS assumed but not enforcing → `plan-rls-audit` (data-layer
152
+ backstop; this skill is the app layer above it).
153
+ - `autoRefreshToken` disabled without manual refresh; JWT expiry
154
+ absurdly short (<300s) hammering refresh.
155
+
156
+ **Next.js CVE-2025-29927** (GHSA-f82v-jwr5-mffw, critical): bypass
157
+ authorization if the check occurs only in middleware, via the internal
158
+ `x-middleware-subrequest` header. **Patched:** 12.3.5 / 13.5.9 /
159
+ 14.2.25 / 15.2.3. **Impacted:** self-hosted `next start` and
160
+ `output: 'standalone'`. Vercel-hosted apps were incidentally
161
+ protected; Netlify and Cloudflare Workers were not affected. Workaround
162
+ if unpatched: drop `x-middleware-subrequest` before it hits Next.
163
+ If below the fix → P0 *and* a defense-in-depth finding. Also sweep
164
+ later Next.js auth CVEs (do not treat 29927 as the only one).
165
+
166
+ **General rule:** any "the framework enforces auth at the edge"
167
+ assumption is a finding, whatever the framework.
168
+
169
+ **NextAuth / Clerk / Auth0** — session strategy (JWT vs database),
170
+ callback / redirect validation, and whether `auth()` / session checks
171
+ actually run server-side per protected operation.
172
+
173
+ ---
174
+
175
+ ## Phase 3 — Session lifecycle [HIGH freedom]
176
+
177
+ **Cookies** — `HttpOnly`, `Secure`, `SameSite` (Lax min, Strict for
178
+ sensitive); scoped path/domain; not readable by JS. Token in
179
+ `localStorage` is XSS-exfiltratable — flag it; CSRF-vs-XSS must be a
180
+ deliberate choice.
181
+
182
+ **Logout that actually logs out** — a stateless JWT stays valid until
183
+ expiry if logout only clears the client. Confirm server-side
184
+ invalidation (Supabase `signOut` revokes the refresh token). Probe it
185
+ (Phase 5). Official sessions FAQ: access tokens can still be presented
186
+ after sign-out unless the app also checks revocation / uses
187
+ `getUser()`.
188
+
189
+ **Rotation & timeouts** — rotate on privilege change (login, role
190
+ elevation) to kill fixation; idle timeout and absolute-max lifetime
191
+ both present. Current norm: short access tokens, longer **rotated**
192
+ refresh tokens with reuse detection, capped absolute session.
193
+
194
+ **Refresh-token rotation + reuse detection** — official Supabase
195
+ sessions docs: a refresh token is single-use, with two exceptions
196
+ (default **10s reuse interval** — do not widen; parent-token retry for
197
+ lost responses). Outside those exceptions the **whole session family
198
+ is revoked**. Disabling that in Advanced Settings is "generally not
199
+ recommended" — flag if widened or disabled.
200
+
201
+ ---
202
+
203
+ ## Phase 4 — Credentials, OAuth, authorization [HIGH freedom]
204
+
205
+ **OAuth / OIDC** — `state` (CSRF on the callback), PKCE for public
206
+ clients, redirect-URI allowlist exact-match, provider `email_verified`
207
+ checked before trust, account-linking collisions handled.
208
+
209
+ **Credential flows** — reset tokens single-use + expiring + not leaked
210
+ in URL/referrer; **user enumeration** via differing error text or
211
+ timing on login/reset/signup; rate limiting on auth endpoints
212
+ specifically; MFA state cannot be skipped mid-flow.
213
+
214
+ **Authorization above the data layer** — not just "is logged in" but
215
+ "is allowed"; IDOR on API params (`/api/orders/:id` scoped to caller?);
216
+ admin routes gated by role server-side. Name which layer each control
217
+ lives in. `plan-rls-audit` owns the data-layer half.
218
+
219
+ ---
220
+
221
+ ## Phase 5 — Live probes [LOW freedom — run each, in order, non-prod]
222
+
223
+ <!-- TECHNIQUE: T1 low-freedom exact steps for the fragile part. These are
224
+ not suggestions; each is a labeled probe whose result is evidence. The
225
+ reasoning chain's "needs-a-probe" items resolve here. -->
226
+
227
+ Force the failures rather than only reading code. Log each as
228
+ `P5-x | expected | actual | evidence`:
229
+
230
+ - **P5-a** Hit each protected route / API / action **unauthenticated** →
231
+ expect deny (not a redirect that still returns data).
232
+ - **P5-b** Replay a **logged-out** session token → expect reject.
233
+ - **P5-c** Tamper the session cookie / swap another user's identifier →
234
+ reject.
235
+ - **P5-d** IDOR: as user A, request user B's object by id → deny.
236
+ - **P5-e** If Next.js is version-vulnerable or self-hosted: send
237
+ `x-middleware-subrequest` and confirm WAF/edge *and* a route-handler
238
+ check still stop it.
239
+ - **P5-f** User-enumeration: compare wrong-password vs nonexistent-user
240
+ (text + timing).
241
+
242
+ Do not run these against production. Do not write exploit PoCs into
243
+ the repo.
244
+
245
+ ---
246
+
247
+ ## Self-critique before reporting [LOW freedom — do not skip]
248
+
249
+ <!-- TECHNIQUE: T4 evidence check before output. Opus 5.5 self-verifies
250
+ without being told, so this is not a "double-check your work" step — every
251
+ item names a specific piece of evidence (quote, probe, layer) a finding must
252
+ carry, and findings without it are dropped or downgraded. Add items that
253
+ name evidence; never generic "verify" lines. -->
254
+
255
+ Challenge every finding against this rubric; drop or downgrade any that fail:
256
+
257
+ 1. **Evidenced, not assumed** — quoted line or probe result? If it rests on
258
+ "the code probably…", mark unconfirmed or run the probe.
259
+ 2. **Reproducible** — did the probe succeed twice, or once? Flaky ≠ finding.
260
+ 3. **Severity justified** — "critical" requires actual unauth access or
261
+ bypass, not theoretical risk.
262
+ 4. **Right layer** — app-layer (yours) or data-layer (→ `plan-rls-audit`)?
263
+ 5. **No false safety** — did you confirm a gate *works*, or only that it
264
+ *exists*? A check a probe bypassed is critical, not a pass.
265
+
266
+ ---
267
+
268
+ ## Definition of Done
269
+
270
+ - [ ] Auth stack + framework version recorded
271
+ - [ ] Degree-of-freedom respected: Phase 5 probes and the getSession grep
272
+ run exactly, in order
273
+ - [ ] Route×gate matrix complete; every row reasoned
274
+ Observe→Interpret→Classify→Severity
275
+ - [ ] Matcher holes, layout-only, middleware-as-sole-gate, unprotected
276
+ server actions surfaced
277
+ - [ ] `getSession()`-for-authz grepped; `getUser()` confirmed on every
278
+ server gate
279
+ - [ ] CVE-2025-29927 (and later auth CVEs) checked against the pinned version
280
+ - [ ] Cookie flags, localStorage exposure, CSRF pairing assessed
281
+ - [ ] Server-side logout invalidation confirmed by probe; rotation +
282
+ idle/absolute timeouts present
283
+ - [ ] Refresh reuse interval not widened; family revocation not disabled
284
+ - [ ] OAuth state / PKCE / redirect-allowlist / email_verified checked
285
+ - [ ] User-enumeration, reset tokens, auth-endpoint rate limits, MFA-skip
286
+ checked
287
+ - [ ] App-layer authorization (roles, IDOR, admin) split from the RLS half
288
+ - [ ] Live probes run non-prod; each logged pass/fail
289
+ - [ ] Self-critique rubric applied; unevidenced/flaky findings dropped or
290
+ downgraded
291
+ - [ ] Read-only — findings presented, not patched
292
+
293
+ ## Output format
294
+
295
+ 1. **Route × gate matrix** — the table, gaps highlighted
296
+ 2. **Findings** — issue | layer (edge/route/data) | severity (critical =
297
+ unauth access / auth bypass) | file:line or probe | fix shape — each
298
+ finding in the worked-example shape
299
+ 3. **Provider-trap list** — exact call to change (`getSession` →
300
+ `getUser`, etc.)
301
+ 4. **Probe log** — P5-x | expected | actual | evidence
302
+ 5. **Fix plan** — auth-bypass and getSession-authz first, then session
303
+ lifecycle, then enumeration/OAuth. Handoffs: `plan-rls-audit`,
304
+ `plan-secrets-audit`, `plan-security-audit`, `backend-patterns`.
305
+ Present and stop.
306
+
307
+ <!-- TECHNIQUE: T5 terminology — this file uses finding (not issue/problem),
308
+ gate (not check/guard) for the auth layer, and probe for live evidence.
309
+ T6 conciseness — neighbor table kept (routing), official CVE/getSession/
310
+ getClaims/10s facts kept (not restated twice). Teaching comments live only
311
+ in this exemplar; strip them from the live SKILL.md. -->