@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,148 @@
1
+ ---
2
+ name: enhance-onboarding
3
+ description: >
4
+ Activation pass: define the activation event, cut steps to first value, add
5
+ templates, sample data, a short checklist, and signup → activated events.
6
+ Use when "improve onboarding", "users sign up and leave", or "activation
7
+ rate".
8
+ license: MIT
9
+ ---
10
+
11
+ # enhance-onboarding — First session to first value
12
+
13
+ **Degree of freedom: MIXED.** Choosing the activation event and which
14
+ patterns fit `[HIGH freedom]`; the event names, the new-user walkthrough, and
15
+ the before/after step count `[LOW freedom — run exactly]`.
16
+
17
+ Apply-now. The product already works; two-thirds of the people who sign up
18
+ never see it work (median B2B activation 37%, Userpilot n=62). This skill
19
+ shortens the path from landing to the first real outcome and proves it with
20
+ events, not a tour.
21
+
22
+ ## This skill vs neighbors
23
+
24
+ | Skill | Owns |
25
+ |---|---|
26
+ | **enhance-onboarding** (this) | Landing → signup → first value → habit, as one journey |
27
+ | `enhance-web-ux` | Any single route's flows and density |
28
+ | `audit-ui-states` | Empty / loading / error states audit (findings) |
29
+ | `enhance-web-forms` | Form structure, validation, a11y |
30
+ | `audit-analytics` | Whether events exist and fire after consent |
31
+ | `enhance-web-conversion` | Pricing, upgrade prompts — after activation |
32
+ | `design-email` | Day-1/3/7 re-engagement mail this skill may request |
33
+ | `plan-gtm` | Decides *what* activation means for the business; this skill builds it |
34
+
35
+ Do **not** fire for "add a product tour" as stated — tours are a last resort here.
36
+
37
+ ## How to reason
38
+
39
+ 1. **Define** — the activation event is the first outcome the user came for, not signup or tour-end
40
+ 2. **Measure** — current steps and drop-off from landing to that event (instrument first if blind)
41
+ 3. **Cut** — every field, screen, or decision before the event that can wait
42
+ 4. **Guide** — what remains gets a template, sample data, a ≤5-item checklist, or one contextual hint
43
+ 5. **Verify** — a fresh user reaches the event in fewer steps; events fire; nothing else regressed
44
+
45
+ ## Worked example
46
+
47
+ > **Define:** a kakeibo app — `activated` = first transaction categorized, not
48
+ > account created.
49
+ > **Measure:** landing → 6-field signup → email verify → empty dashboard →
50
+ > "Add account" → "Add transaction" = 9 steps, verification email lost on mobile.
51
+ > **Cut:** OAuth + magic link; name/currency inferred from locale; verify later.
52
+ > **Guide:** empty dashboard becomes "Start with sample month" + "Add your first
53
+ > expense"; 3-item checklist ends at the activation event.
54
+ > **Verify:** 9 → 4 steps; `activated` fires on first categorized row; Playwright
55
+ > new-user path green; existing password login untouched.
56
+
57
+ ## Self-critique before reporting
58
+
59
+ - **Event is value** — `activated` fires on an outcome, never on `signup_completed` or tour end
60
+ - **Steps counted** — before/after step counts are in the report from a real walkthrough
61
+ - **Nothing removed** — every auth provider, setting, and route still exists; fields were deferred, not deleted
62
+ - **Consent-gated** — no event fires before the consent state the app already uses
63
+ - **Right owner** — pricing/upgrade → `enhance-web-conversion`; single-route polish → `enhance-web-ux`
64
+
65
+ ---
66
+
67
+ ## Procedure
68
+
69
+ ### 1. Define activation [HIGH freedom]
70
+
71
+ Reforge order: **Setup** (must-have info) → **Aha** (core value once) →
72
+ **Habit** (core action at its natural frequency). `activated` is the aha. Pick
73
+ it by asking: *what did they come to do, and when have they done it once?* One
74
+ event, written as `activated` plus the domain event that triggers it (e.g.
75
+ `transaction_categorized`). Add `setup_completed` and `habit_reached` (e.g. 3
76
+ sessions in 7 days) so setup drop-off and retention are measurable too. When
77
+ analytics already exist, prefer the event combination that best predicts
78
+ 3-month retention; a valid activation event shows ≥ 2× retention for the users
79
+ who hit it. Payment is never the activation event.
80
+
81
+ ### 2. Measure the current path [LOW freedom — run exactly]
82
+
83
+ 1. Fresh browser profile (or emulator) — walk landing → activation as a stranger.
84
+ 2. Record each step: URL, fields, decisions, waits (email, verification, payment).
85
+ 3. Pull funnel numbers if analytics exist; otherwise write **unmeasured** and
86
+ add instrumentation in step 4 before any redesign is judged.
87
+
88
+ Benchmarks for judging (sources in `plan-gtm/references/benchmarks-2026.md`):
89
+ median B2B activation 37%, good = p60 / great = p80 for the product type;
90
+ time-to-value over 24 h → activation collapses below 25%; top quartile first
91
+ value under 5 minutes; day-7 return ≥ 7% of a new cohort is top quartile.
92
+ Checklist completion averages ~19% (engaged users finish ~5 items) — a
93
+ checklist supports the path, it does not replace cutting it.
94
+
95
+ ### 3. Cut and guide [HIGH freedom — choose; each pattern below is optional]
96
+
97
+ | Do | Avoid |
98
+ |---|---|
99
+ | Try before signup when the value shows in one session (7% of self-serve products now lead ungated; value-before-signup lifts referred conversion 2–5×) | Signup wall in front of a demo |
100
+ | OAuth / magic link; password as fallback; one optional "how did you hear about us" field | 6+ field forms, phone, company size |
101
+ | Infer locale, currency, timezone; ask firmographics after first value | Profile wizard before the product |
102
+ | Empty state = one primary action + "start from a template / sample data" | Blank screen with a "+" icon |
103
+ | ≤5-item checklist, open by default, first item pre-completed, completion detected by real events, last item **is** the activation event | 12-item tour of every menu |
104
+ | Guidance embedded in the UI (+20% engagement vs modals); tours only user-triggered and ≤4 steps (67% completion vs 31% timer-triggered; 7+ steps 16%) | Autoplay tours, modal stacks, welcome videos |
105
+ | Personalize with at most one JTBD question — and use the answer (65% collect it, 18% use it) | Role/industry quiz before value |
106
+ | Day-1/3/7 email nudges tied to unfinished checklist items (→ `design-email`) | Generic "welcome aboard" mail; sales outreach minutes after signup |
107
+ | Keep card-required trials only if `plan-gtm` chose that model | Payment before value by accident |
108
+
109
+ Deferred fields move to settings or a later prompt; nothing is deleted.
110
+
111
+ ### 4. Instrument [LOW freedom — names]
112
+
113
+ Use the app's existing analytics SDK and consent gate. Canonical events:
114
+
115
+ ```
116
+ signup_started · signup_completed { method, source }
117
+ onboarding_step_completed { step }
118
+ setup_completed
119
+ activated { via: <domain_event> }
120
+ habit_reached { sessions, window_days }
121
+ ```
122
+
123
+ Server-side where possible; same analytics project as the marketing site so
124
+ `page_viewed { utm, referrer }` joins to signup. Reconcile naming with
125
+ `audit-analytics` when a taxonomy already exists. No PII in properties. Fire
126
+ nothing before consent.
127
+
128
+ ### 5. Verify [LOW freedom — run exactly]
129
+
130
+ - New-user Playwright path from landing to `activated` — passes, step count ≤ target
131
+ - Existing login providers, settings, and routes — unchanged (regression pass)
132
+ - Events visible in the analytics debug view or test sink
133
+ - Report: steps before/after, TTV estimate, events added, files touched
134
+
135
+ ## Guardrails
136
+
137
+ - **No dark patterns** — no fake progress, forced card, hidden skip, or pre-checked upsell.
138
+ - **Defer, never delete** — collected data the business needs moves later in the journey.
139
+ - **Do not invent numbers** — funnel cells stay "unmeasured" until events exist.
140
+ - **One journey** — landing to first value; the rest of the app is another skill's.
141
+
142
+ ## Chains with
143
+
144
+ - **`plan-gtm`** → defines the business meaning of activation; this skill ships it.
145
+ - **`audit-ui-states`** → empty/loading/error findings feed step 3.
146
+ - **`enhance-web-forms`** → the signup form itself.
147
+ - **`enhance-web-conversion`** → upgrade prompts after activation.
148
+ - **`test-playwright`** → lock the new-user path.
@@ -0,0 +1,303 @@
1
+ ---
2
+ name: enhance-pwa
3
+ description: >
4
+ Add or upgrade PWA features: manifest, service worker, offline mode, install
5
+ prompt, push, background sync. Use when "make it a PWA", "offline support",
6
+ or "install prompt". Native → mobile-capacitor-platform.
7
+ license: MIT
8
+ ---
9
+
10
+ # enhance-pwa — Make It Installable and Offline-Ready
11
+
12
+ **Degree of freedom: MIXED.** Strategy and prompt timing `[HIGH freedom]`; caching rules, Capacitor bypass, and the installability check `[LOW freedom — run exactly]`.
13
+
14
+ **A PWA closes the gap between "website" and "app".** Users can install it to
15
+ their home screen, it loads instantly from cache, and it keeps working when the
16
+ network drops. This skill adds those capabilities to any existing web app without
17
+ breaking what already works.
18
+
19
+ ## How to reason
20
+
21
+ 1. **Audit** — manifest, SW, framework plugin already present
22
+ 2. **Choose** — caching strategy per asset type; Workbox over raw SW
23
+ 3. **Ship** — installable manifest + offline fallback + autoUpdate
24
+ 4. **Prove** — DevTools shows no installability errors; offline revisit works; Capacitor bridge not intercepted
25
+
26
+ ## Worked example
27
+
28
+ > **Audit:** Next.js app; no manifest link; no SW; also ships Capacitor.
29
+ > **Choose:** Serwist (Workbox fork) via `@serwist/turbopack`; NetworkFirst APIs; CacheFirst images; skip `capacitor://`.
30
+ > **Ship:** `manifest.webmanifest` + 192/512 icons + `/offline.html`; install prompt after first success.
31
+ > **Prove:** offline revisit of `/` works; DevTools Manifest pane shows no installability errors; native bridge still functions.
32
+
33
+ ## Self-critique before reporting
34
+
35
+ - **No stale deploys** — `autoUpdate`, not silent stale cache
36
+ - **No secrets in cache** — auth tokens and sensitive APIs are NetworkOnly
37
+ - **Offline path** — fallback page or cached shell, not a browser error
38
+ - **Right owner** — native Capacitor shell → `mobile-capacitor-platform`; confirm bridge via `mobile-emulator-test`
39
+
40
+ ---
41
+
42
+ ## Phase 0: Audit what already exists [HIGH freedom]
43
+
44
+ ```
45
+ public/manifest.json or public/manifest.webmanifest → existing manifest
46
+ public/sw.js or src/sw.ts → existing service worker
47
+ vite.config.* → vite-plugin-pwa already configured?
48
+ next.config.* → next-pwa or @serwist/* already configured?
49
+ package.json → workbox-*, serwist, @serwist/*, vite-plugin-pwa, next-pwa, @vite-pwa/nuxt
50
+ ```
51
+
52
+ Also check the basics in the page (Lighthouse 12+ has no PWA category):
53
+ ```javascript
54
+ // eval after goto
55
+ const pwaReady = {
56
+ manifest: !!document.querySelector('link[rel="manifest"]'),
57
+ sw: 'serviceWorker' in navigator,
58
+ https: location.protocol === 'https:' || location.hostname === 'localhost',
59
+ };
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Phase 1: Research framework-specific PWA tooling [HIGH freedom]
65
+
66
+ Follow `/research`: Context7 for the PWA plugin that matches the framework (`vite-plugin-pwa`, `@serwist/turbopack` or `@serwist/next`, `@vite-pwa/nuxt`), Firecrawl for current service-worker and offline guidance. Search the plugin name as written and anchor to the framework version actually installed — recognizing a package is not knowing its current API.
67
+
68
+ ---
69
+
70
+ ## Phase 2: Web App Manifest [HIGH freedom]
71
+
72
+ The manifest is what makes the app installable. Create or improve
73
+ `public/manifest.webmanifest`:
74
+
75
+ ```json
76
+ {
77
+ "name": "Full App Name",
78
+ "short_name": "Short Name",
79
+ "description": "One sentence about what the app does",
80
+ "start_url": "/",
81
+ "display": "standalone",
82
+ "background_color": "#ffffff",
83
+ "theme_color": "#6366f1",
84
+ "orientation": "portrait-primary",
85
+ "icons": [
86
+ { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable any" },
87
+ { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable any" }
88
+ ],
89
+ "screenshots": [
90
+ { "src": "/screenshots/home.png", "sizes": "1280x720", "type": "image/png", "form_factor": "wide" },
91
+ { "src": "/screenshots/home-mobile.png", "sizes": "390x844", "type": "image/png", "form_factor": "narrow" }
92
+ ]
93
+ }
94
+ ```
95
+
96
+ Reference the manifest in `<head>`:
97
+ ```html
98
+ <link rel="manifest" href="/manifest.webmanifest" />
99
+ <meta name="theme-color" content="#6366f1" />
100
+ <meta name="apple-mobile-web-app-capable" content="yes" />
101
+ <meta name="apple-mobile-web-app-status-bar-style" content="default" />
102
+ <link rel="apple-touch-icon" href="/icons/icon-192.png" />
103
+ ```
104
+
105
+ **Icon requirements:**
106
+ - 192×192 and 512×512 minimum; add 180×180 for Apple Touch Icon
107
+ - PNG with transparent background OR maskable (safe zone = inner 80%)
108
+ - Generate from a single source SVG using `sharp` or `pwa-asset-generator`
109
+
110
+ ---
111
+
112
+ ## Phase 3: Service Worker — caching strategy [HIGH freedom]
113
+
114
+ Use **Workbox** (via the framework plugin) rather than writing raw service
115
+ worker code. Choose the right caching strategy per asset type:
116
+
117
+ | Asset type | Strategy | Why |
118
+ |------------|----------|-----|
119
+ | App shell (HTML/JS/CSS) | CacheFirst + revision hash | Fast loads, updated on deploy |
120
+ | API data (list/detail) | NetworkFirst with 5s timeout | Fresh data, offline fallback |
121
+ | Images | CacheFirst, 30-day expiry | Rarely changes |
122
+ | Fonts | CacheFirst, 1-year expiry | Never changes |
123
+ | Analytics/telemetry | NetworkOnly | No value in caching |
124
+
125
+ ### Vite (vite-plugin-pwa)
126
+
127
+ ```typescript
128
+ // vite.config.ts
129
+ import { VitePWA } from 'vite-plugin-pwa';
130
+
131
+ VitePWA({
132
+ registerType: 'autoUpdate',
133
+ workbox: {
134
+ globPatterns: ['**/*.{js,css,html,ico,png,svg,webp}'],
135
+ runtimeCaching: [
136
+ {
137
+ urlPattern: /^https:\/\/.*\/api\//,
138
+ handler: 'NetworkFirst',
139
+ options: {
140
+ cacheName: 'api-cache',
141
+ expiration: { maxAgeSeconds: 60 * 60 * 24 },
142
+ networkTimeoutSeconds: 5,
143
+ },
144
+ },
145
+ ],
146
+ },
147
+ manifest: { /* inline or separate file */ },
148
+ })
149
+ ```
150
+
151
+ ### Next.js (Serwist, or an existing next-pwa)
152
+
153
+ Next.js has no built-in service worker. It ships the `app/manifest.ts` file
154
+ convention, and 16.3 added an experimental `experimental.useOffline` flag that
155
+ detects connectivity and retries requests but does not cache pages. For
156
+ Workbox-style caching the Next.js PWA guide points to Serwist, a Workbox fork:
157
+ `@serwist/turbopack` for Turbopack builds (the `next build` default since
158
+ Next.js 16) or `@serwist/next` for webpack builds. Take the setup for the
159
+ installed Next.js version from the Serwist docs.
160
+
161
+ `@ducanh2912/next-pwa` is webpack-only (last release 10.2.9, September 2024)
162
+ and its README recommends migrating to `@serwist/next`. Keep it only where a
163
+ repo already uses it, and on Next.js 16+ build with `next build --webpack`:
164
+
165
+ ```javascript
166
+ // next.config.mjs
167
+ import withPWA from '@ducanh2912/next-pwa';
168
+ export default withPWA({
169
+ dest: 'public',
170
+ cacheOnFrontEndNav: true,
171
+ aggressiveFrontEndNavCaching: true,
172
+ reloadOnOnline: true,
173
+ })({ /* rest of next config */ });
174
+ ```
175
+
176
+ ### Capacitor compatibility
177
+
178
+ If the app also ships as a Capacitor native app, the service worker must not
179
+ intercept Capacitor's bridge requests. Add to the service worker:
180
+
181
+ ```javascript
182
+ // Do not cache Capacitor bridge calls
183
+ if (event.request.url.includes('capacitor://') ||
184
+ event.request.url.includes('ionic://')) {
185
+ return; // let it pass through
186
+ }
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Phase 4: Offline page and graceful degradation [HIGH freedom]
192
+
193
+ When the network is unavailable and a cached response does not exist, show a
194
+ helpful offline page rather than a browser error:
195
+
196
+ ```html
197
+ <!-- public/offline.html -->
198
+ <h1>You are offline</h1>
199
+ <p>Check your connection and try again. Pages you have visited recently will still load.</p>
200
+ <button onclick="location.reload()">Try again</button>
201
+ ```
202
+
203
+ Register it as the fallback. Workbox's `navigateFallback` answers every
204
+ non-precached navigation with one HTML file, online or not, so it is the SPA
205
+ shell (vite-plugin-pwa defaults it to `index.html`), not an offline page. For
206
+ server-rendered pages, precache `offline.html` and attach it to the
207
+ navigation route:
208
+ ```javascript
209
+ // workbox (generateSW) options; clear the SPA fallback so this route runs
210
+ navigateFallback: null,
211
+ runtimeCaching: [{
212
+ urlPattern: ({ request }) => request.mode === 'navigate',
213
+ handler: 'NetworkFirst', // NetworkOnly if pages carry per-user data
214
+ options: { cacheName: 'pages', precacheFallback: { fallbackURL: '/offline.html' } },
215
+ }],
216
+ // hand-written service worker: offlineFallback() from workbox-recipes
217
+ ```
218
+
219
+ With Serwist (Next.js), precache the page through `additionalPrecacheEntries`
220
+ and list it in the `Serwist` constructor's `fallbacks.entries` with a
221
+ `request.destination === 'document'` matcher.
222
+
223
+ ---
224
+
225
+ ## Phase 5: Install prompt (optional but high-value) [HIGH freedom]
226
+
227
+ Do not use the browser's default install prompt — it appears at the wrong time.
228
+ Instead, intercept `beforeinstallprompt` and show it when the user has
229
+ demonstrated value (e.g. after completing a core action):
230
+
231
+ ```typescript
232
+ // hooks/useInstallPrompt.ts
233
+ let deferredPrompt: BeforeInstallPromptEvent | null = null;
234
+
235
+ window.addEventListener('beforeinstallprompt', (e) => {
236
+ e.preventDefault();
237
+ deferredPrompt = e as BeforeInstallPromptEvent;
238
+ });
239
+
240
+ export function triggerInstallPrompt() {
241
+ if (!deferredPrompt) return;
242
+ deferredPrompt.prompt();
243
+ deferredPrompt.userChoice.then(() => { deferredPrompt = null; });
244
+ }
245
+ ```
246
+
247
+ Show a custom banner with clear benefits ("Install for offline access and faster loads"),
248
+ not just "Add to Home Screen". `beforeinstallprompt` fires only in Chromium browsers;
249
+ Safari (including iOS) and Firefox never fire it, so on iOS show Share → Add to
250
+ Home Screen instructions instead.
251
+
252
+ ---
253
+
254
+ ## Phase 6: Push notifications (if backend supports it) [HIGH freedom]
255
+
256
+ Only implement push if the app has a genuine reason to send notifications
257
+ (not just to ask for permission on first load — users will deny that).
258
+
259
+ ```typescript
260
+ async function subscribeToPush(userId: string) {
261
+ const registration = await navigator.serviceWorker.ready;
262
+ const subscription = await registration.pushManager.subscribe({
263
+ userVisibleOnly: true,
264
+ applicationServerKey: urlBase64ToUint8Array(process.env.NEXT_PUBLIC_VAPID_KEY!),
265
+ });
266
+ // Save subscription to backend
267
+ await fetch('/api/push/subscribe', {
268
+ method: 'POST',
269
+ body: JSON.stringify({ userId, subscription }),
270
+ });
271
+ }
272
+ ```
273
+
274
+ For the backend, use `web-push` (Node.js) or your platform's push service.
275
+
276
+ ---
277
+
278
+ ## Phase 7: Verify installability and offline [LOW freedom — do not skip]
279
+
280
+ Lighthouse removed its PWA category in v12.0 (April 2024), so there is no PWA
281
+ score to target. Check in Chrome DevTools → Application instead: the
282
+ **Manifest** pane's Installability section must list no errors, and in
283
+ **Service workers** tick **Offline** and reload `start_url`.
284
+
285
+ Key checks:
286
+ - [ ] Manifest present and installable
287
+ - [ ] Service worker registered
288
+ - [ ] Works offline (offline page or cached response)
289
+ - [ ] HTTPS (localhost counts)
290
+ - [ ] `viewport` meta tag present
291
+ - [ ] Icons correct size and format
292
+ - [ ] `start_url` loads while offline
293
+
294
+ ---
295
+
296
+ ## Guardrails
297
+
298
+ - **Service worker caching can break deployments** if old caches persist.
299
+ Use `registerType: 'autoUpdate'` (the new service worker takes control at once; open tabs reload only when the app registers through `virtual:pwa-register`, e.g. `registerSW({ immediate: true })`) or `'prompt'` (the user is asked to reload) — never a silent background update that keeps serving stale precached code.
300
+ - **Never cache auth tokens or sensitive API responses** in the service worker.
301
+ - **Test offline mode manually** via DevTools → Network → Offline before shipping.
302
+ - **Capacitor apps**: confirm the Capacitor bridge still works after adding the
303
+ service worker by running `mobile-emulator-test`.
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: enhance-readability
3
+ description: >
4
+ Audit and fix how easily content is understood: line length (CPL), reading
5
+ level, grouping, deadspace, icons or tables that cut verbosity. Use when
6
+ "hard to read", "too dense", "reading level", "cognitive load", or "turn
7
+ this prose into a table".
8
+ license: MIT
9
+ ---
10
+
11
+ > Surface router: `/uiux`. You are here: `enhance-readability`. Native iOS/Android (SwiftUI / Compose, no web layer) is out of scope — use Apple HIG / Material directly.
12
+
13
+ # enhance-readability — Make content understood
14
+
15
+ **Degree of freedom: MIXED.** Text-metric measurement `[LOW freedom — run exactly]`;
16
+ grouping, iconography, and tone `[HIGH freedom]`.
17
+
18
+ Audit-and-fix. The goal is **comprehension**: the least mental effort for the
19
+ reader to understand the content. `enhance-web-ui` makes it look good;
20
+ `audit-responsive` makes it fit the screen; this makes it *understood*.
21
+
22
+ The backbone is **Cognitive Load Theory** (working memory is small — cut
23
+ extraneous load) and **Gestalt** (the brain auto-groups visual elements —
24
+ design with that). A consequence of CLT / information overload: showing
25
+ *more* information can raise extraneous load and lower understanding. Replacing
26
+ a dense paragraph with one table or diagram is a comprehension win **only when
27
+ the visual reduces total load** versus the text it replaces — never decoration.
28
+
29
+ ## How to reason
30
+
31
+ 1. **Observe** — what makes this effortful? (dense text / no hierarchy / wall of prose / no whitespace / wrong register)
32
+ 2. **Diagnose** — which of the six channels, and which Gestalt / CLT principle
33
+ 3. **Classify load** — extraneous (bad presentation — always cut) vs intrinsic (inherent complexity — restructure / chunk) vs germane (productive — keep)
34
+ 4. **Lever** — cheapest channel that removes that load
35
+ 5. **Severity** — how much it blocks understanding on the primary path
36
+
37
+ ## Worked example
38
+
39
+ > **Observe:** a pricing section is 3 dense paragraphs comparing 4 plans, 105 CPL, one grey block.
40
+ > **Diagnose:** dim 4 (comparison is a table), dim 3 (no proximity grouping), dim 1 (CPL 105 > 80), dim 5 (no whitespace).
41
+ > **Classify:** extraneous (prose form) + intrinsic (4-way comparison → chunk into a table).
42
+ > **Lever:** generate a 4-column comparison table; cap surrounding text at 66ch; icon per tier.
43
+ > **Handoff:** table collapse on mobile → `audit-responsive`; table tokens → `audit-uiux-design-system`.
44
+
45
+ ## Self-critique before reporting
46
+
47
+ - **Load reduced** — each change names extraneous vs intrinsic; "looks cleaner" is not the test
48
+ - **Right owner** — breakpoints → `audit-responsive`; personality → `enhance-web-ui`; WCAG floor → `audit-accessibility`; voice authenticity → `plan-antislop`; tokens → `audit-uiux-design-system`
49
+ - **Language-correct** — CJK judged at 40 CPL (WCAG 2.2 SC 1.4.8)
50
+ - **Visuals earn their place** — generated graphic reduces load vs the text it replaces
51
+ - **Voice intact** — tone lowers effort without flattening the author
52
+
53
+ ## The six channels (one goal: lower cognitive load)
54
+
55
+ 1. **Text** — legibility and reading level (measurable).
56
+ 2. **Separation** — Gestalt figure-ground + similarity (weight / color / rule).
57
+ 3. **Layout** — proximity + chunking (~4 working-memory units) + hierarchy.
58
+ 4. **Iconography & graphics** — icons paired with text; generate a visual only if load drops.
59
+ 5. **Deadspace** — negative space that directs focus. "Is space aiding understanding," not "fix the 1440px grid."
60
+ 6. **Tone & accent** — register/rhythm for the audience. Authenticity / AI-tells → `plan-antislop`.
61
+
62
+ Each is sized per form factor as *comprehension judgment*, not breakpoint CSS.
63
+
64
+ ## Boundary — what this skill does NOT own
65
+
66
+ - **Breakpoint layout / matcher / CSS grid / "desktop = stretched phone"** → `audit-responsive`
67
+ - **Visual personality, brand, aesthetic composition** → `enhance-web-ui`
68
+ - **WCAG pass/fail contrast/size floor** → `audit-accessibility` (this skill treats the floor as the minimum)
69
+ - **Voice authenticity / anti-slop** → `plan-antislop`
70
+ - **Design-token / system coherence** → `audit-uiux-design-system`
71
+
72
+ Note and hand off. Do not duplicate.
73
+
74
+ ## Text thresholds (Phase 1) [LOW freedom — run exactly]
75
+
76
+ House targets, measured not eyeballed. CPL/CJK and line-height come from
77
+ [WCAG 2.2 SC 1.4.8 Visual Presentation](https://www.w3.org/WAI/WCAG22/Understanding/visual-presentation.html)
78
+ (AAA *mechanism* criterion; we use the numbers as authoring targets):
79
+
80
+ - **CPL / measure**: 50–75, ~66 sweet spot; hard limit **80 Latin**, **40 CJK** (日本語).
81
+ - **Line-height**: 1.5–1.8 body. **Font**: body ≥16px (16–18 optimal). **Paragraphs**: 2–4 lines.
82
+ - **Contrast**: WCAG AA floor is the minimum, not the goal — flag pale secondary text.
83
+ - **Alignment**: left-align *running text* (do not justify). Opposite of `audit-responsive`'s left-stacked-*layout* anti-pattern.
84
+ - **Reading level**: Flesch-Kincaid ≤8 for general UI (plain-language house target, not WCAG); sentences <~20 words; front-load; chunk.
85
+
86
+ ## Phase 0 — Scope the content surfaces [HIGH freedom]
87
+
88
+ Identify where *understanding* is the job: article/doc bodies, comparisons,
89
+ dashboards, onboarding, help/FAQ, dense forms, data-heavy views, empty/error
90
+ copy. Note language(s) (CJK vs Latin) and the primary comprehension goal
91
+ ("decide between plans", "learn the concept", "complete the task").
92
+
93
+ ## Phase 1 — Measure text legibility [LOW freedom — run exactly]
94
+
95
+ Per surface, measure rendered values: CPL at real width, line-height, body/caption
96
+ px, paragraph length, contrast, alignment, reading level. Record value-vs-threshold.
97
+
98
+ ## Phase 2 — Visual channels (2, 3, 5) against Gestalt [HIGH freedom]
99
+
100
+ - **Separation (2):** distinct types look distinct, or one undifferentiated stream?
101
+ - **Grouping (3):** related close, unrelated apart? Chunked to working-memory size? Clear first-look target?
102
+ - **Deadspace (5):** whitespace separates and focuses, or everything is crammed and left-stacked? (Use of space for comprehension — not the breakpoint grid.)
103
+
104
+ ## Phase 3 — Iconography & graphics (4) [HIGH freedom]
105
+
106
+ Where prose carries a load a visual would carry better, propose (and generate if
107
+ the environment supports it) a comparison table, flow/step diagram, scan-anchor
108
+ icons, or a chart. Test: does it *reduce* total load vs the text it replaces?
109
+ If not, do not add it. Existing icons: paired with text and consistent, or noise?
110
+ (NN/g: almost no icon is universal without a label.)
111
+
112
+ ## Phase 4 — Tone (6), then fix in the system [HIGH freedom]
113
+
114
+ Register right for audience and goal (short + direct for tasks; warmer for
115
+ onboarding). Preserve author voice. Fixes use the repo's design tokens and type
116
+ scale — never one-off values; systemic gaps → `audit-uiux-design-system`.
117
+ Generated visuals follow the design system. Keep diffs to comprehension.
118
+
119
+ ## Definition of Done
120
+
121
+ - [ ] Surfaces scoped with per-surface comprehension goal; language(s) noted
122
+ - [ ] Text measured value-vs-threshold (CPL incl. CJK, line-height, px, paragraph, contrast, align, reading level)
123
+ - [ ] Separation, grouping, and deadspace assessed against Gestalt / CLT
124
+ - [ ] Iconography/graphics assessed; visuals generated only if load drops
125
+ - [ ] Tone assessed; author voice preserved
126
+ - [ ] Findings classified by channel + load type + severity
127
+ - [ ] Fixes use tokens/scale; systemic gaps flagged
128
+ - [ ] Boundary respected (responsive / web-ui / a11y / antislop / design-system)
129
+ - [ ] Self-critique applied; every change names the load it removes
130
+
131
+ ## Output format
132
+
133
+ 1. **Text measurement table** — surface | CPL | line-height | px | paragraph | contrast | align | reading level | vs threshold
134
+ 2. **Channel findings** — surface | channel (1–6) | Gestalt/CLT principle | load type | severity | fix
135
+ 3. **Proposed/generated visuals** — load-reduction rationale
136
+ 4. **Fixes applied** — token CSS + regrouping + visuals + copy/tone, before/after
137
+ 5. **Handoffs** — breakpoints / personality / WCAG / voice / tokens
138
+
139
+ ## Related
140
+
141
+ - `enhance-web-ui` — looks good (composition / personality)
142
+ - `audit-responsive` — container reflow per breakpoint
143
+ - `audit-accessibility` — WCAG pass/fail floor
144
+ - `plan-antislop` — voice authenticity / AI tells
145
+ - `audit-uiux-design-system` — tokens / component SSOT
146
+ - `enhance-web-ux` — flows / IA / information density of the *task*, not reading measure