@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,143 @@
1
+ ---
2
+ name: enhance-email-deliverability
3
+ description: >
4
+ Audit and fix email deliverability: SPF, DKIM, DMARC, reputation, bounces
5
+ and complaints, list hygiene, unsubscribe compliance. Use when "emails go to
6
+ spam", "set up SPF/DKIM", or "check deliverability". Templates →
7
+ design-email.
8
+ license: MIT
9
+ ---
10
+
11
+ # enhance-email-deliverability — Inbox placement & lawful send
12
+
13
+ **Degree of freedom: MIXED.** Scoring auth/hygiene
14
+ `[HIGH freedom]`; DNS/config apply `[LOW freedom — after approval]`.
15
+ Audit-and-fix. Templates stay on `design-email`.
16
+
17
+ Close the gap between "the email sends" and "the email arrives". A beautiful
18
+ transactional template in spam is a broken signup flow.
19
+
20
+ Deliverability = authentication + reputation + hygiene + compliance. Miss any
21
+ one and placement collapses.
22
+
23
+ **Audit first. Apply DNS/config on approval.** Template markup stays on
24
+ `design-email`.
25
+
26
+ ## This skill vs neighbors
27
+
28
+ | Skill | Owns |
29
+ |---|---|
30
+ | **enhance-email-deliverability** (this) | SPF/DKIM/DMARC, bounces, complaints, unsubscribe headers |
31
+ | `design-email` | Template markup, copy, React Email / MJML |
32
+ | `plan-privacy-compliance` | Consent to collect; this owns consent *to send* |
33
+ | `audit-analytics` | Whether open/click events fire (not inbox placement) |
34
+
35
+ "Build a welcome email" alone → `design-email`; this skill owns inbox placement, not templates.
36
+
37
+ ## How to reason
38
+
39
+ 1. **Observe** — SPF/DKIM/DMARC records and a real message's Authentication-Results
40
+ 2. **Interpret** — pass raw SPF/DKIM but fail alignment? `+all`? DNS-only DKIM?
41
+ 3. **Classify** — auth fail / hygiene hole / compliance miss / template (hand off)
42
+ 4. **Severity** — no DMARC or `+all` blocks inbox placement
43
+
44
+ ## Worked example
45
+
46
+ > **Observe:** one SPF with `+all`; DKIM TXT present; no DMARC; marketing and
47
+ > password-resets share `example.com`.
48
+ > **Interpret:** anyone can spoof; Gmail/Yahoo bulk will fail; a campaign
49
+ > complaint can sink transactional mail.
50
+ > **Classify:** auth fail + domain mixing.
51
+ > **Fix:** SPF `-all` (or `~all` while warming), DMARC `p=none`+`rua` then
52
+ > tighten, split transactional vs marketing domains — apply DNS only after approval.
53
+
54
+ ---
55
+
56
+ ## Phase 0 — Detect sending setup [HIGH freedom]
57
+
58
+ - Provider: Resend / Postmark / SES / SendGrid / Mailgun / SMTP
59
+ - Sending domain(s) and DNS host
60
+ - Transactional vs marketing — **they should not share a domain**
61
+ - Where templates live (hand content issues to `design-email`)
62
+
63
+ ---
64
+
65
+ ## Phase 1 — Authentication (pass/fail gate) [HIGH freedom; headers not DNS-only]
66
+
67
+ **SPF** — Authorizes the provider. Exactly one record. Under 10 DNS lookups.
68
+ Not `+all`.
69
+
70
+ **DKIM** — Signing on at the provider; public key in DNS; **real message
71
+ headers** signed (not DNS-only). 2048-bit keys.
72
+
73
+ **DMARC** — Record present. `p=none` (monitor) vs `quarantine` / `reject`.
74
+ `rua` reporting address. Gmail/Yahoo require DMARC for bulk senders.
75
+ **Alignment:** visible From domain matches SPF/DKIM domains. Misalignment
76
+ passes raw SPF/DKIM and still fails DMARC.
77
+
78
+ **PTR / dedicated IP** — if self-hosted or dedicated: PTR set, warmed, not
79
+ blocklisted.
80
+
81
+ ---
82
+
83
+ ## Phase 2 — Reputation & hygiene [HIGH freedom]
84
+
85
+ **Bounces** — Hard bounces via webhook → suppression list honored on every send.
86
+
87
+ **Complaints** — Feedback loops / provider webhooks → immediate suppress.
88
+
89
+ **List hygiene (marketing)** — Opted-in only (cross-check
90
+ `plan-privacy-compliance`). No purchased lists. Inactive addresses removed.
91
+
92
+ **Sending patterns** — Warm new domains. Separate transactional vs marketing
93
+ so a campaign complaint does not sink password resets.
94
+
95
+ **Content flags** — Image-only, spammy phrasing, broken links, missing
96
+ plain-text → `design-email`.
97
+
98
+ ---
99
+
100
+ ## Phase 3 — Compliance footer [HIGH freedom]
101
+
102
+ - Marketing: functional unsubscribe **and** one-click `List-Unsubscribe`
103
+ headers (Gmail/Yahoo bulk). Transactional is exempt only if it is genuinely
104
+ transactional.
105
+ - Physical address + sender ID — CAN-SPAM (US) and Japan 特定電子メール法
106
+ for advertising mail.
107
+ - Unsubscribes honored on the *next* send.
108
+
109
+ ---
110
+
111
+ ## Definition of Done
112
+
113
+ - [ ] Streams identified and separated
114
+ - [ ] SPF / DKIM (real headers) / DMARC + alignment scored
115
+ - [ ] Bounce + complaint → suppression list
116
+ - [ ] Consent + inactive policy noted
117
+ - [ ] Warming addressed if cold
118
+ - [ ] One-click unsubscribe on marketing; legal footer present
119
+ - [ ] Template flags handed to `design-email`
120
+ - [ ] DNS/config applied only after approval
121
+
122
+ ## Self-critique before applying DNS [LOW freedom — do not skip]
123
+
124
+ 1. **Real headers** — DKIM scored from a sent message, not DNS-only
125
+ 2. **Alignment** — From domain matches SPF/DKIM domains
126
+ 3. **Streams split** — marketing must not share the transactional domain
127
+ 4. **Right owner** — markup/copy → `design-email`
128
+ 5. **Apply only on approval**
129
+
130
+ ## Output format
131
+
132
+ 1. **Auth table** — SPF / DKIM / DMARC / alignment — pass/fail + exact fix
133
+ 2. **Hygiene** — bounce / complaint / list / warming
134
+ 3. **Compliance** — unsubscribe / footer / law
135
+ 4. **Fix plan** — auth first, then hygiene, then compliance
136
+ 5. Apply approved DNS/config; templates → `design-email`
137
+
138
+ ## Related
139
+
140
+ - `design-email` — markup and copy
141
+ - `plan-privacy-compliance` — consent to collect / to mail
142
+ - `audit-analytics` — open/click instrumentation
143
+ - `backend-patterns` — webhook + suppression store
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: enhance-growth-loops
3
+ description: >
4
+ Add growth loops to a live product: a "powered by" badge, shareable
5
+ artifacts, invites and referral credit, each with K-factor events. Use when
6
+ "referral program", "viral loop", "powered by badge", or "get users to
7
+ invite".
8
+ license: MIT
9
+ ---
10
+
11
+ # enhance-growth-loops — Output that recruits the next user
12
+
13
+ **Degree of freedom: MIXED.** Which loop fits the product `[HIGH freedom]`;
14
+ consent for invites, badge rules, event names, and per-loop measurement
15
+ `[LOW freedom — run exactly]`.
16
+
17
+ Apply-now. A funnel spends acquisition; a loop reinvests it — the output of
18
+ one user (a shared artifact, a badge on their site, an invite) becomes the
19
+ input for the next. Build one or two loops, measure each separately, and stop
20
+ calling a funnel step a loop.
21
+
22
+ ## This skill vs neighbors
23
+
24
+ | Skill | Owns |
25
+ |---|---|
26
+ | **enhance-growth-loops** (this) | Badge, share, invite, referral mechanics and their events |
27
+ | `enhance-web-conversion` | Landing/pricing copy and upgrade prompts |
28
+ | `enhance-onboarding` | Getting the *invited* user to value (loop closes there) |
29
+ | `backend-patterns` | Referral credit ledger, idempotent reward grants |
30
+ | `audit-analytics` | Taxonomy the loop events must fit |
31
+ | `plan-gtm` | Chose the loop in its channel plan |
32
+
33
+ Do **not** fire for "write the referral email" alone → `design-email`.
34
+
35
+ ## How to reason
36
+
37
+ 1. **Loop** — what user output can carry the product to a stranger, and who sees it?
38
+ 2. **Exposure** — how many strangers per active user per month, realistically?
39
+ 3. **Conversion** — of those, how many can reach value without talking to anyone?
40
+ 4. **Reinvest** — what does the new user produce that feeds the same loop?
41
+ 5. **Measure** — K = exposures × conversion per user; one K per loop, never blended
42
+
43
+ ## Worked example
44
+
45
+ > **Loop:** a photo-pairing app produces a shared result page per session.
46
+ > **Exposure:** ~3 recipients per session view the page; "Made with …" footer.
47
+ > **Conversion:** page has a one-tap "try it" that opens the product ungated → value before signup.
48
+ > **Reinvest:** the recipient's first session produces another shared page.
49
+ > **Measure:** `share_created`, `share_viewed { referrer }`, `loop_signup { loop: "share" }`; K ≈ 3 × 0.04 = 0.12 per session.
50
+
51
+ ## Self-critique before reporting
52
+
53
+ - **One K per loop** — badge, share, and invite each have their own exposure and conversion events
54
+ - **Consent** — invites are user-initiated, single-send, with the recipient's opt-out; no contact-list scraping
55
+ - **Badge honest** — removable on paid plans; links to a page that says what the product did
56
+ - **Value before signup** — the landing side of every loop shows the artifact before asking for an account
57
+ - **Right owner** — copy → `enhance-web-conversion`; reward ledger → `backend-patterns`
58
+
59
+ ---
60
+
61
+ ## Loop catalogue [HIGH freedom — choose one or two]
62
+
63
+ | Loop | Mechanism | Numbers to expect | Build notes |
64
+ |---|---|---|---|
65
+ | **Powered-by badge** | free plan shows "Made with X" on public output | 0.5–3% conversion, near-total exposure of every viewer | removable on paid; links to a "what this is" page with the artifact visible |
66
+ | **Shareable artifact** | result page / export / public dashboard | exposure = recipients per share | ungated view; one-tap "try with your own"; OG image of the artifact |
67
+ | **Templates & galleries** | users publish templates others clone | slow start, compounding | attribution to creator; clone = activation event |
68
+ | **Invite / collaboration** | product is better with a teammate | warm invites convert 10–25% | invite flow inside the value moment; invitee lands on the shared object |
69
+ | **Referral credit** | both sides get credit, storage, or a month | SaaS referral rate ~4.75%, referred conversion ~7.9%, top quartile 12%+ | idempotent grant on the *referred user's activation*, not signup; fraud cap per referrer |
70
+ | **Public changelog / build in public** | releases as content | content loop, not viral | pairs with `docs-launch-kit` |
71
+
72
+ Value before signup lifts referred conversion 2–5× — every loop's landing
73
+ side shows the artifact first.
74
+
75
+ ## Procedure
76
+
77
+ ### 1. Pick and size [HIGH freedom]
78
+ Estimate exposure and conversion per active user from current data (or write
79
+ **unmeasured**). A loop with K < 0.05 is a nice touch, not a channel; say so.
80
+
81
+ ### 2. Build the artifact side [HIGH freedom]
82
+ Public route renders the artifact without auth; OG tags carry a real
83
+ screenshot (`enhance-web-seo` for meta); one primary "try it" action that
84
+ lands the stranger in the product's ungated path (`enhance-onboarding`).
85
+
86
+ ### 3. Build the ask [LOW freedom — rules]
87
+ - Badge: on free-plan output only; removable for paid; alt text says what the product is.
88
+ - Invite: user types or picks recipients; one email per recipient per invite; recipient can opt out of future invites; no address-book import without explicit per-send confirmation.
89
+ - Referral: unique link or code; reward granted once, idempotently, when the referred user hits `activated`; per-referrer cap; terms visible.
90
+
91
+ ### 4. Events [LOW freedom — names]
92
+
93
+ ```
94
+ badge_viewed { host } · badge_clicked
95
+ share_created { kind } · share_viewed { referrer } · share_cta_clicked
96
+ invite_sent { count } · invite_accepted
97
+ referral_link_created · referral_signup · referral_activated · referral_reward_granted
98
+ loop_signup { loop }
99
+ ```
100
+
101
+ Consent-gated; no recipient PII in properties. Reconcile with `audit-analytics`.
102
+
103
+ ### 5. Verify
104
+ - Public artifact renders logged-out; OG preview shows the artifact
105
+ - Invite sends once per recipient; opt-out honored (test with a second inbox)
106
+ - Referral reward granted exactly once on activation; cap enforced
107
+ - K per loop computed from events after 7 days (or **unmeasured** with the date it will be)
108
+
109
+ ## Guardrails
110
+
111
+ - **No dark patterns** — no pre-checked "invite all", no fake "3 friends joined", no unremovable badge on paid.
112
+ - **Anti-spam** — rate limits on invites and shares; report/opt-out link on every invite.
113
+ - **Rewards on activation, not signup** — signup rewards get farmed.
114
+ - **One K per loop** — never blend loops into one "viral coefficient".
115
+
116
+ ## Chains with
117
+
118
+ - **`plan-gtm`** → the loop named in the channel plan.
119
+ - **`enhance-onboarding`** → the invitee's path to value.
120
+ - **`backend-patterns`** → credit ledger, idempotency, rate limits.
121
+ - **`enhance-web-seo`** → OG and meta on public artifact routes.
122
+ - **`test-playwright`** → logged-out artifact view and invite path.
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: enhance-lifecycle-email
3
+ description: >
4
+ Lifecycle email from product events: activation nudges, trial expiry by
5
+ activated vs stalled, limit-reached upgrades, win-back, with exits and
6
+ consent. Use when "onboarding emails", "drip sequence", or "win-back
7
+ email". Templates → design-email.
8
+ license: MIT
9
+ ---
10
+
11
+ # enhance-lifecycle-email — Emails that arrive because something happened
12
+
13
+ **Degree of freedom: MIXED.** Sequence content and cadence `[HIGH freedom]`;
14
+ trigger-before-timer rule, exit conditions, consent, idempotent sends, and
15
+ event names `[LOW freedom — run exactly]`.
16
+
17
+ Apply-now. Behavior-triggered sends are the primary path; timers are the
18
+ fallback for users who produce no signal. Every email is gated on a product
19
+ event, exits the moment the user does the thing, and reports its own
20
+ open/click/conversion. Templates come from `design-email`; inbox placement
21
+ from `enhance-email-deliverability`.
22
+
23
+ ## This skill vs neighbors
24
+
25
+ | Skill | Owns |
26
+ |---|---|
27
+ | **enhance-lifecycle-email** (this) | Which email fires on which event, exits, cadence, measurement |
28
+ | `design-email` | Template design and copy craft for each message |
29
+ | `enhance-email-deliverability` | SPF/DKIM/DMARC, bounces, list hygiene |
30
+ | `enhance-onboarding` | The in-app path the emails point back to |
31
+ | `data-pipeline` | Idempotent scheduling / cron correctness for sends |
32
+ | `plan-privacy-compliance` | Consent basis and retention for marketing mail |
33
+
34
+ Do **not** fire for "design the welcome email" alone → `design-email`.
35
+
36
+ ## How to reason
37
+
38
+ 1. **Signal** — which product event (or its absence for N hours) says this user needs this email?
39
+ 2. **Exit** — which event ends the sequence because the goal was reached?
40
+ 3. **Track** — activated vs stalled users get different messages at the same calendar point
41
+ 4. **Cadence** — spacing follows the product's time-to-value, not a default day-0/3/7
42
+ 5. **Measure** — each send has delivered / opened / clicked / converted events tied to the trigger
43
+
44
+ ## Worked example
45
+
46
+ > **Signal:** `signup_completed` with no `activated` after 24 h → "the one thing to try" email with a deep link to the sample-data path.
47
+ > **Exit:** `activated` fires → the activation track stops; the habit track starts.
48
+ > **Track:** trial day 11 — activated users get "here is what you built and what happens to it"; stalled users get "let us set it up with you" — no discount for an empty account.
49
+ > **Cadence:** TTV median for this product is ~2 h, so the fallback nudge is at 24 h, not day 3.
50
+ > **Measure:** `email_sent { sequence, step, trigger }` … `email_converted { goal }`; activation nudge → 14% of stalled users activate within 48 h.
51
+
52
+ ## Self-critique before reporting
53
+
54
+ - **Trigger first** — every email names its product-event trigger; timers appear only as "no signal after N h" fallbacks
55
+ - **Exits present** — every sequence lists the event that stops it
56
+ - **Two tracks at expiry** — activated and stalled users receive different messages
57
+ - **Consent and unsubscribe** — transactional vs marketing classification stated; one-click unsubscribe on marketing; suppression list respected
58
+ - **Idempotent** — a retried job cannot send twice (`data-pipeline` pattern)
59
+ - **Right owner** — template craft → `design-email`; deliverability → `enhance-email-deliverability`
60
+
61
+ ---
62
+
63
+ ## Sequences [HIGH freedom — choose; each row optional]
64
+
65
+ | Sequence | Trigger | Exit | Notes |
66
+ |---|---|---|---|
67
+ | **Welcome** | `signup_completed` | — | one email; the single next action, not a feature tour |
68
+ | **Activation nudge** | no `activated` within TTV × 3 (fallback ≈ 24 h) | `activated` | deep link to the shortest path; users without the core action in 48 h are the highest churn risk |
69
+ | **Setup stall** | `setup_started` without `setup_completed` for 24 h | `setup_completed` | name the exact step left |
70
+ | **Habit** | `activated` | `habit_reached` | day-3 / day-7 value reminders keyed to what they created |
71
+ | **Trial expiry** | `trial_ends_at − 3d`, `−1d`, `0`, `+3d` | `checkout_completed` | **split by `activated`**: activated → what you built and what happens to it, price, one CTA; stalled → help to value, no discount |
72
+ | **Limit reached** | `limit_reached { resource }` | `checkout_completed` | what unlocks, price, one-click; mirrors the in-app prompt |
73
+ | **Win-back** | no session for 30 d (activated users only) | any session | one email, then stop; new-feature framing |
74
+ | **Dunning** | `payment_failed` | `payment_succeeded` | day 0 / 3 / 7; transactional |
75
+
76
+ Behavior-triggered sequences report roughly 3× the click-through and
77
+ markedly higher conversion than calendar drips (vendor-reported; treat as a
78
+ reason to test, not a board number). Late-trial emails matter: most trial
79
+ conversions happen in the second half — do not stop the sequence on day 7.
80
+
81
+ ## Procedure
82
+
83
+ ### 1. Map events [LOW freedom]
84
+ Confirm the product emits `signup_completed`, `setup_completed`, `activated`,
85
+ `habit_reached`, `limit_reached`, `trial_ends_at`, `checkout_completed`,
86
+ `payment_failed` (or their equivalents). Missing ones → `enhance-onboarding`
87
+ / `audit-analytics` first; an email on an unmeasured trigger is a timer in
88
+ disguise.
89
+
90
+ ### 2. Design the tracks [HIGH freedom]
91
+ Pick sequences from the table; write trigger, exit, audience, message goal,
92
+ and CTA for each step. Cadence from the measured TTV. Hand the copy brief to
93
+ `design-email`.
94
+
95
+ ### 3. Wire [LOW freedom — rules]
96
+ - Provider: the one already in the repo (Resend, Postmark, SES, Customer.io, Loops); no second ESP.
97
+ - Each send keyed by `(user_id, sequence, step)` — idempotent; retries cannot double-send.
98
+ - Classification per email: transactional (dunning, expiry-day facts) vs marketing (nudges, win-back); marketing carries one-click unsubscribe and honors the suppression list; consent basis recorded (`plan-privacy-compliance` if unclear).
99
+ - Exits evaluated at send time, not enqueue time.
100
+ - Quiet hours and per-user daily cap (≤ 1 marketing email per day).
101
+
102
+ ### 4. Events [LOW freedom — names]
103
+
104
+ ```
105
+ email_sent { sequence, step, trigger }
106
+ email_delivered · email_opened · email_clicked { link }
107
+ email_converted { sequence, goal_event }
108
+ email_unsubscribed { sequence }
109
+ ```
110
+
111
+ ### 5. Verify
112
+ - Test user: trigger → email within the window; performing the exit event stops the next step (observe no send)
113
+ - Retry the job: exactly one send per `(user, sequence, step)`
114
+ - Unsubscribe → no further marketing mail; transactional still delivered
115
+ - Report: sequences, triggers, exits, first-week `email_converted` by sequence (or **unmeasured** with date)
116
+
117
+ ## Guardrails
118
+
119
+ - **No timers as the default.** A calendar drip is the fallback for silence.
120
+ - **No discount for an empty account.** Stalled users get help, not a coupon.
121
+ - **Consent and classification stated per email.** Marketing without an unsubscribe does not ship.
122
+ - **One ESP.** Do not add a second provider to get a feature.
123
+
124
+ ## Chains with
125
+
126
+ - **`enhance-onboarding`** → the events and the in-app path every email links to.
127
+ - **`design-email`** → templates and copy.
128
+ - **`enhance-email-deliverability`** → before the first sequence goes live.
129
+ - **`data-pipeline`** → idempotent scheduling.
130
+ - **`iterate-gtm-weekly`** → reads `email_converted` by sequence.
@@ -0,0 +1,193 @@
1
+ ---
2
+ name: enhance-motion
3
+ description: >
4
+ Audit an existing app's motion, then apply one coherent, performant,
5
+ reduced-motion-safe pass. Use when "motion pass", "animate the app", or "add
6
+ micro-interactions across the app". One new animation → design-motion.
7
+ license: MIT
8
+ ---
9
+
10
+ # enhance-motion — Coherent Motion for an Existing App
11
+
12
+ **Degree of freedom: MIXED.** Tier and token judgment `[HIGH freedom]`; reduced-motion, GPU-only, and verify `[LOW freedom — run exactly]`.
13
+
14
+ Add motion to an app that already exists, without fragmenting its visual language.
15
+ The failure mode this prevents: bolting on one hero animation, three different easing
16
+ curves, and a heavyweight library where a CSS class would do — motion that fights the
17
+ design system instead of reinforcing it.
18
+
19
+ > **Motion must be coherent, purposeful, reduced-motion-safe, and 60fps.** Pick the
20
+ > **lightest tool that fits** each interaction. Every animation gets its timing and
21
+ > easing from a **motion-token SSOT**, not ad-hoc magic numbers.
22
+
23
+ This skill **applies** motion and verifies it. For a from-scratch motion cookbook (no
24
+ existing system to respect), use `design-motion`. For pure animation-perf triage, use
25
+ `audit-performance`.
26
+
27
+ **Before any browser interaction, read `protocol-browser-anti-stall` and apply it.**
28
+
29
+ ## How to reason
30
+
31
+ 1. **Inventory** — libraries, easings, durations, reduced-motion coverage
32
+ 2. **Right-size** — lightest tier that fits; prefer what's already installed
33
+ 3. **Tokenize** — one motion-token SSOT; no magic numbers
34
+ 4. **Gate** — reduced-motion degrades; transform/opacity only; 60fps
35
+
36
+ ## Worked example
37
+
38
+ > **Inventory:** Tailwind `duration-300` + one `framer-motion` modal; no reduced-motion; four easings.
39
+ > **Right-size:** buttons stay CSS; lists get Auto-Animate; modal stays Motion; no GSAP.
40
+ > **Tokenize:** `--motion-fast/base/slow` + three easings in the theme file.
41
+ > **Gate:** `motion-reduce:` zeros travel; layout props not animated; modal 60fps.
42
+
43
+ ## Self-critique before reporting
44
+
45
+ - **Coherent** — same interaction shares one duration/easing
46
+ - **Reduced-motion** — spatial movement drops; essential opacity stays
47
+ - **GPU-only** — no width/height/top/left animation
48
+ - **Right owner** — one isolated new animation → `design-motion`; perf-only triage → `audit-performance`
49
+
50
+ ---
51
+
52
+ ## Phase 0 — Detect the design system and current motion [HIGH freedom]
53
+
54
+ ### 0a. Applicability gate
55
+
56
+ This skill targets **web / React (or Vue/Svelte) UI**. If the repo is a CLI, library,
57
+ backend, or non-visual target, **bow out** and say so.
58
+
59
+ ### 0b. Inventory the design system + motion state
60
+
61
+ Reuse the `audit-uiux-design-system` detection, then focus on motion:
62
+
63
+ ```bash
64
+ # Libraries already present
65
+ cat package.json | grep -iE "motion|framer|gsap|auto-animate|tw-animate|animate.css|react-spring"
66
+ # Existing CSS motion + Tailwind config
67
+ rg -n "@keyframes|animation:|transition:" -g "*.css"
68
+ rg -n "animate-|transition-|duration-|ease-" -g "*.{tsx,jsx,vue,svelte}" -c
69
+ # Existing JS motion
70
+ rg -n "motion\.|useSpring|AnimatePresence|useScroll|gsap|autoAnimate" -g "*.{tsx,jsx}" -c
71
+ # Reduced-motion support (critical)
72
+ rg -n "prefers-reduced-motion|motion-safe|motion-reduce|useReducedMotion" -g "*.{tsx,jsx,css}"
73
+ ```
74
+
75
+ ### 0c. Record discovery
76
+
77
+ ```
78
+ STACK: framework=<...> · CSS=<Tailwind v3/v4 / CSS Modules / ...> · UI lib=<...>
79
+ MOTION TODAY: libraries=<...> · easings in use=<list> · durations in use=<list>
80
+ REDUCED MOTION: honored? <yes/no — where>
81
+ INCOHERENCE FOUND: <e.g. 4 easing curves, 3 durations for the same interaction>
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Phase 1 — Choose the tier + define the motion-token SSOT [HIGH freedom]
87
+
88
+ ### 1a. Research (current)
89
+
90
+ Follow the `/research` protocol: Context7 for the chosen library's current API, Firecrawl
91
+ for current patterns dated to now. Anchor to versions actually installed. Motion (formerly
92
+ Framer Motion) is `motion` on npm.
93
+
94
+ ### 1b. Right-size the library per interaction
95
+
96
+ Do **not** add every library. Pick the lightest tool that fits, and prefer what the repo
97
+ already uses if it's adequate:
98
+
99
+ | Tier | Tool | Use for |
100
+ |---|---|---|
101
+ | 1 — CSS utility | `tw-animate-css` (Tailwind v4 successor to `tailwindcss-animate`; shadcn's default) or existing Tailwind keyframes | fades, accordions, enter/exit utility classes, simple hovers |
102
+ | 2 — zero-config layout | `@formkit/auto-animate` | list/table add·remove·reorder, expanding sections — no config |
103
+ | 3 — component transitions | `motion` (motion.dev) — scoped to **component transitions, `AnimatePresence`, gestures, spring hovers** | modals, tabs, toasts, presence, drag |
104
+ | 4 — complex timelines | `gsap` — **only** when Tier 3 cannot express it | scroll narratives, sequenced SVG, scrubbed timelines |
105
+ | Reference | Kinetics (kinetics.colorion.co) | curated copy-paste pattern **source** — adapt to tokens; not a dependency |
106
+
107
+ State the chosen tier(s) and why. Keep the dependency footprint minimal.
108
+
109
+ ### 1c. Define the motion-token SSOT
110
+
111
+ Motion values are tokens, coherent with the existing scale (collapse the incoherence found
112
+ in 0c into one set). Add to the token source (Tailwind theme / CSS variables):
113
+
114
+ ```css
115
+ /* durations */ --motion-fast: 120ms; --motion-base: 200ms; --motion-slow: 320ms;
116
+ /* easings */ --ease-standard: cubic-bezier(0.2,0,0,1); /* enter/state */
117
+ --ease-emphasized: cubic-bezier(0.3,0,0,1); /* prominent */
118
+ --ease-exit: cubic-bezier(0.4,0,1,1); /* exit */
119
+ /* distance */ --motion-shift: 8px;
120
+ ```
121
+
122
+ All animations reference these — no inline magic numbers. Micro-interactions ≤ ~150ms,
123
+ entrances ~200–320ms, exits faster than entrances.
124
+
125
+ ---
126
+
127
+ ## Phase 2 — Apply motion, tier by tier [HIGH freedom]
128
+
129
+ Work interaction-by-interaction; prefer mechanical, token-driven edits. For each element,
130
+ use the lightest fitting tier from 1b.
131
+
132
+ - **Buttons / links / cards:** Tier 1 CSS — `hover`, `active` (scale 0.98), `focus-visible`
133
+ ring, using tokens. Distinct response per element type.
134
+ - **Lists / grids / expandable sections:** Tier 2 Auto-Animate — wrap the parent; items
135
+ animate on add/remove/reorder with zero per-item code.
136
+ - **Modals / dialogs / toasts / tabs / dropdowns:** Tier 3 Motion — `AnimatePresence` for
137
+ exit, backdrop fade + content scale/slide, tab indicator slide. Gestures (`drag`,
138
+ `whileHover`, `whileTap`) where they add feel.
139
+ - **Page/route transitions:** template/layout-level fade+shift, kept subtle (respect the
140
+ "component transitions only" scope — no heavyweight route choreography by default).
141
+ - **Scroll narratives / hero timelines:** Tier 4 GSAP only if genuinely needed.
142
+
143
+ Preserve all existing functionality and states — motion is additive. Never remove a
144
+ handler or state to "simplify."
145
+
146
+ ---
147
+
148
+ ## Phase 3 — Accessibility & performance gates [LOW freedom — run exactly]
149
+
150
+ - **Reduced motion:** every animation degrades under `prefers-reduced-motion: reduce`.
151
+ Use `useReducedMotion()` (Motion), `motion-safe:`/`motion-reduce:` (Tailwind), or a CSS
152
+ media query that drops durations to ~0. Essential feedback stays (opacity), spatial
153
+ movement is removed.
154
+ - **GPU-only:** animate `transform` / `opacity` only. No animating `width/height/top/left`.
155
+ - **No CLS:** transitions must not shift layout unexpectedly; reserve space.
156
+ - **Interruptibility:** enter/exit must not trap state if toggled rapidly.
157
+
158
+ ```bash
159
+ rg -n "animate\[.*(width|height|top|left|margin)" -g "*.{tsx,css}" # flag layout-triggering
160
+ rg -n "prefers-reduced-motion|useReducedMotion|motion-reduce" -g "*.{tsx,css}" # confirm coverage
161
+ ```
162
+
163
+ ---
164
+
165
+ ## Phase 4 — Verify and report [LOW freedom — do not skip]
166
+
167
+ - **playwright-cli:** navigate touched routes, capture before/after screenshots to
168
+ `.playwright-mcp/`, check `console` for errors, confirm animations run
169
+ and reduced-motion drops them (toggle emulation).
170
+ - **60fps:** spot-check in DevTools Performance for any Tier 3/4 animation.
171
+ - **Build/typecheck:** run the repo's commands; fix anything introduced.
172
+
173
+ ```markdown
174
+ ## Motion Enhancement — report
175
+ **Stack:** [..] **Tiers used:** CSS/tw-animate-css · Auto-Animate · Motion · (GSAP: y/n)
176
+ **Motion tokens:** durations [..] · easings [..] — single source in [file]
177
+ **Coherence fixed:** collapsed [N] easings → 3, [N] durations → 3
178
+ **Applied to:** buttons/cards (CSS), lists (Auto-Animate), modals/tabs/toasts (Motion), ...
179
+ **A11y:** prefers-reduced-motion honored across [N] components (evidence)
180
+ **Perf:** transform/opacity only; [component] verified 60fps; no CLS
181
+ **Verification:** build ✓ · console clean ✓ · before/after screenshots [paths]
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Related
187
+
188
+ - `design-motion` — from-scratch motion cookbook (Framer/Motion/GSAP/CSS patterns)
189
+ - `audit-uiux-design-system` — the broader visual coherency audit this builds on
190
+ - `audit-performance` — animation performance / Core Web Vitals triage
191
+ - `audit-accessibility` — reduced-motion and focus-order verification
192
+ - `housekeep-design` — if motion incoherence is part of wider design drift, consolidate first
193
+ - `protocol-browser-anti-stall` — required for the browser verification step