@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,488 @@
1
+ ---
2
+ name: data-visualization
3
+ description: >
4
+ Build interactive, accessible charts and dashboards with Recharts, D3, or
5
+ Victory. Use when "chart", "graph", "data visualization", "analytics
6
+ dashboard", "metrics display", "time-series", "D3", or "Recharts".
7
+ license: MIT
8
+ ---
9
+
10
+ # Data Visualization Skill
11
+
12
+ **Degree of freedom: MIXED.** Chart type and encoding `[HIGH freedom]`;
13
+ existing-library/token probes and a11y fallback `[LOW freedom — run exactly]`.
14
+
15
+ ## How to reason
16
+
17
+ 1. **Observe** — existing chart library, tokens, data shape
18
+ 2. **Interpret** — reuse a component vs new chart type
19
+ 3. **Classify** — line / bar / area / donut / sparkline / table-fallback
20
+ 4. **Severity** — inaccessible or empty-state-less chart outranks a missing gradient
21
+
22
+ ## Worked example
23
+
24
+ > **Observe:** `package.json` has recharts; no `src/components/charts`; tokens define `--primary`.
25
+ > **Interpret:** reuse Recharts + tokens, not D3.
26
+ > **Classify:** `ResponsiveContainer` line chart + sr-only table; skeleton while loading.
27
+ > **Verify:** resizes; screen-reader table present; no second chart library.
28
+
29
+ ## Self-critique before reporting
30
+
31
+ - **Existing lib** — grepped `package.json`; did not add a second chart library
32
+ - **Accessible** — sr-only table or text alternative present
33
+ - **States** — loading + empty handled
34
+ - **Right owner** — event taxonomy → `audit-analytics`; empty/loading frames → `audit-ui-states`
35
+
36
+ Create beautiful, accessible, and interactive data visualizations for dashboards and reports.
37
+
38
+ Product-event coverage ("are we tracking the right events?") is `audit-analytics`,
39
+ not this skill. Empty/loading chart frames are `audit-ui-states`.
40
+
41
+ ## Check existing first [LOW freedom — run exactly]
42
+
43
+ **Before creating ANY visualization, verify:**
44
+
45
+ 1. **Check for existing chart libraries:**
46
+ ```bash
47
+ cat package.json | grep -i "recharts\|chart\|d3\|visx\|nivo\|tremor"
48
+ rg "LineChart|BarChart|PieChart" --type tsx -l | head -10
49
+ ```
50
+
51
+ 2. **Check for existing chart components:**
52
+ ```bash
53
+ ls -la src/components/charts/ src/components/dashboard/ 2>/dev/null
54
+ rg "ResponsiveContainer|Chart" --type tsx | head -10
55
+ ```
56
+
57
+ 3. **Check for design tokens:**
58
+ ```bash
59
+ cat tailwind.config.* | grep -A10 "chart\|colors"
60
+ ```
61
+
62
+ **Why:** Use existing chart library and styling conventions.
63
+
64
+ ## Recharts (Recommended for React) [HIGH freedom]
65
+
66
+ ### Line Chart
67
+ ```tsx
68
+ 'use client'
69
+ import {
70
+ LineChart,
71
+ Line,
72
+ XAxis,
73
+ YAxis,
74
+ CartesianGrid,
75
+ Tooltip,
76
+ ResponsiveContainer,
77
+ Legend,
78
+ } from 'recharts'
79
+
80
+ const data = [
81
+ { month: 'Jan', revenue: 4000, users: 2400 },
82
+ { month: 'Feb', revenue: 3000, users: 1398 },
83
+ { month: 'Mar', revenue: 2000, users: 9800 },
84
+ ]
85
+
86
+ export function RevenueChart() {
87
+ return (
88
+ <ResponsiveContainer width="100%" height={350}>
89
+ <LineChart data={data}>
90
+ <CartesianGrid strokeDasharray="3 3" className="stroke-muted" />
91
+ <XAxis
92
+ dataKey="month"
93
+ className="text-xs fill-muted-foreground"
94
+ tickLine={false}
95
+ axisLine={false}
96
+ />
97
+ <YAxis
98
+ className="text-xs fill-muted-foreground"
99
+ tickLine={false}
100
+ axisLine={false}
101
+ tickFormatter={(value) => `$${value}`}
102
+ />
103
+ <Tooltip
104
+ content={<CustomTooltip />}
105
+ cursor={{ stroke: 'hsl(var(--muted))' }}
106
+ />
107
+ <Legend />
108
+ <Line
109
+ type="monotone"
110
+ dataKey="revenue"
111
+ stroke="hsl(var(--primary))"
112
+ strokeWidth={2}
113
+ dot={{ fill: 'hsl(var(--primary))' }}
114
+ activeDot={{ r: 6 }}
115
+ />
116
+ <Line
117
+ type="monotone"
118
+ dataKey="users"
119
+ stroke="hsl(var(--secondary))"
120
+ strokeWidth={2}
121
+ dot={{ fill: 'hsl(var(--secondary))' }}
122
+ />
123
+ </LineChart>
124
+ </ResponsiveContainer>
125
+ )
126
+ }
127
+
128
+ function CustomTooltip({ active, payload, label }: any) {
129
+ if (!active || !payload) return null
130
+
131
+ return (
132
+ <div className="rounded-lg border bg-background p-2 shadow-sm">
133
+ <p className="text-sm font-medium">{label}</p>
134
+ {payload.map((entry: any, index: number) => (
135
+ <p key={index} className="text-sm" style={{ color: entry.color }}>
136
+ {entry.name}: {entry.value}
137
+ </p>
138
+ ))}
139
+ </div>
140
+ )
141
+ }
142
+ ```
143
+
144
+ ### Bar Chart
145
+ ```tsx
146
+ 'use client'
147
+ import { BarChart, Bar, XAxis, YAxis, ResponsiveContainer, Cell } from 'recharts'
148
+
149
+ const data = [
150
+ { name: 'Mon', value: 12 },
151
+ { name: 'Tue', value: 19 },
152
+ { name: 'Wed', value: 3 },
153
+ { name: 'Thu', value: 5 },
154
+ { name: 'Fri', value: 2 },
155
+ ]
156
+
157
+ export function WeeklyChart() {
158
+ return (
159
+ <ResponsiveContainer width="100%" height={200}>
160
+ <BarChart data={data}>
161
+ <XAxis
162
+ dataKey="name"
163
+ tickLine={false}
164
+ axisLine={false}
165
+ className="text-xs fill-muted-foreground"
166
+ />
167
+ <YAxis hide />
168
+ <Bar
169
+ dataKey="value"
170
+ radius={[4, 4, 0, 0]}
171
+ className="fill-primary"
172
+ >
173
+ {data.map((entry, index) => (
174
+ <Cell
175
+ key={index}
176
+ className={index === data.length - 1 ? 'fill-primary' : 'fill-primary/60'}
177
+ />
178
+ ))}
179
+ </Bar>
180
+ </BarChart>
181
+ </ResponsiveContainer>
182
+ )
183
+ }
184
+ ```
185
+
186
+ ### Area Chart with Gradient
187
+ ```tsx
188
+ 'use client'
189
+ import { AreaChart, Area, XAxis, YAxis, ResponsiveContainer } from 'recharts'
190
+
191
+ export function GradientAreaChart({ data }: { data: any[] }) {
192
+ return (
193
+ <ResponsiveContainer width="100%" height={200}>
194
+ <AreaChart data={data}>
195
+ <defs>
196
+ <linearGradient id="colorValue" x1="0" y1="0" x2="0" y2="1">
197
+ <stop offset="5%" stopColor="hsl(var(--primary))" stopOpacity={0.3} />
198
+ <stop offset="95%" stopColor="hsl(var(--primary))" stopOpacity={0} />
199
+ </linearGradient>
200
+ </defs>
201
+ <XAxis dataKey="date" hide />
202
+ <YAxis hide />
203
+ <Area
204
+ type="monotone"
205
+ dataKey="value"
206
+ stroke="hsl(var(--primary))"
207
+ strokeWidth={2}
208
+ fill="url(#colorValue)"
209
+ />
210
+ </AreaChart>
211
+ </ResponsiveContainer>
212
+ )
213
+ }
214
+ ```
215
+
216
+ ### Pie/Donut Chart
217
+ ```tsx
218
+ 'use client'
219
+ import { PieChart, Pie, Cell, ResponsiveContainer, Label } from 'recharts'
220
+
221
+ const COLORS = [
222
+ 'hsl(var(--primary))',
223
+ 'hsl(var(--secondary))',
224
+ 'hsl(var(--accent))',
225
+ 'hsl(var(--muted))',
226
+ ]
227
+
228
+ export function DonutChart({ data, total }: { data: any[]; total: number }) {
229
+ return (
230
+ <ResponsiveContainer width="100%" height={200}>
231
+ <PieChart>
232
+ <Pie
233
+ data={data}
234
+ cx="50%"
235
+ cy="50%"
236
+ innerRadius={60}
237
+ outerRadius={80}
238
+ paddingAngle={2}
239
+ dataKey="value"
240
+ >
241
+ {data.map((_, index) => (
242
+ <Cell key={index} fill={COLORS[index % COLORS.length]} />
243
+ ))}
244
+ <Label
245
+ value={total}
246
+ position="center"
247
+ className="fill-foreground text-2xl font-bold"
248
+ />
249
+ </Pie>
250
+ </PieChart>
251
+ </ResponsiveContainer>
252
+ )
253
+ }
254
+ ```
255
+
256
+ ## Sparklines (Mini Charts) [HIGH freedom]
257
+
258
+ ```tsx
259
+ 'use client'
260
+ import { LineChart, Line, ResponsiveContainer } from 'recharts'
261
+
262
+ interface SparklineProps {
263
+ data: number[]
264
+ color?: string
265
+ height?: number
266
+ }
267
+
268
+ export function Sparkline({ data, color = 'hsl(var(--primary))', height = 40 }: SparklineProps) {
269
+ const chartData = data.map((value, index) => ({ index, value }))
270
+
271
+ return (
272
+ <ResponsiveContainer width="100%" height={height}>
273
+ <LineChart data={chartData}>
274
+ <Line
275
+ type="monotone"
276
+ dataKey="value"
277
+ stroke={color}
278
+ strokeWidth={1.5}
279
+ dot={false}
280
+ />
281
+ </LineChart>
282
+ </ResponsiveContainer>
283
+ )
284
+ }
285
+
286
+ // Usage in stats card
287
+ <div className="flex items-center justify-between">
288
+ <div>
289
+ <p className="text-sm text-muted-foreground">Revenue</p>
290
+ <p className="text-2xl font-bold">$45,231</p>
291
+ </div>
292
+ <div className="w-20">
293
+ <Sparkline data={[10, 15, 8, 22, 18, 25, 30]} />
294
+ </div>
295
+ </div>
296
+ ```
297
+
298
+ ## Stat Cards with Trends [HIGH freedom]
299
+
300
+ ```tsx
301
+ import { ArrowUpIcon, ArrowDownIcon } from 'lucide-react'
302
+ import { cn } from '@/lib/utils'
303
+
304
+ interface StatCardProps {
305
+ title: string
306
+ value: string
307
+ change: number
308
+ trend: 'up' | 'down'
309
+ sparklineData?: number[]
310
+ }
311
+
312
+ export function StatCard({ title, value, change, trend, sparklineData }: StatCardProps) {
313
+ return (
314
+ <div className="rounded-xl border bg-card p-6">
315
+ <p className="text-sm font-medium text-muted-foreground">{title}</p>
316
+ <div className="mt-2 flex items-baseline justify-between">
317
+ <p className="text-3xl font-semibold">{value}</p>
318
+ <div className={cn(
319
+ 'flex items-center text-sm font-medium',
320
+ trend === 'up' ? 'text-green-600' : 'text-red-600'
321
+ )}>
322
+ {trend === 'up' ? (
323
+ <ArrowUpIcon className="mr-1 h-4 w-4" />
324
+ ) : (
325
+ <ArrowDownIcon className="mr-1 h-4 w-4" />
326
+ )}
327
+ {Math.abs(change)}%
328
+ </div>
329
+ </div>
330
+ {sparklineData && (
331
+ <div className="mt-4">
332
+ <Sparkline
333
+ data={sparklineData}
334
+ color={trend === 'up' ? 'rgb(22 163 74)' : 'rgb(220 38 38)'}
335
+ />
336
+ </div>
337
+ )}
338
+ </div>
339
+ )
340
+ }
341
+ ```
342
+
343
+ ## Real-time Data Updates [HIGH freedom]
344
+
345
+ ```tsx
346
+ 'use client'
347
+ import { useEffect, useState } from 'react'
348
+ import { LineChart, Line, ResponsiveContainer, YAxis } from 'recharts'
349
+
350
+ export function RealtimeChart() {
351
+ const [data, setData] = useState<{ time: number; value: number }[]>([])
352
+
353
+ useEffect(() => {
354
+ const interval = setInterval(() => {
355
+ setData((prev) => {
356
+ const newPoint = {
357
+ time: Date.now(),
358
+ value: Math.random() * 100,
359
+ }
360
+ // Keep last 20 points
361
+ const updated = [...prev, newPoint].slice(-20)
362
+ return updated
363
+ })
364
+ }, 1000)
365
+
366
+ return () => clearInterval(interval)
367
+ }, [])
368
+
369
+ return (
370
+ <ResponsiveContainer width="100%" height={100}>
371
+ <LineChart data={data}>
372
+ <YAxis domain={[0, 100]} hide />
373
+ <Line
374
+ type="monotone"
375
+ dataKey="value"
376
+ stroke="hsl(var(--primary))"
377
+ strokeWidth={2}
378
+ dot={false}
379
+ isAnimationActive={false}
380
+ />
381
+ </LineChart>
382
+ </ResponsiveContainer>
383
+ )
384
+ }
385
+ ```
386
+
387
+ ## D3.js for Custom Visualizations [HIGH freedom]
388
+
389
+ ```tsx
390
+ 'use client'
391
+ import { useEffect, useRef } from 'react'
392
+ import * as d3 from 'd3'
393
+
394
+ export function CustomD3Chart({ data }: { data: { label: string; value: number }[] }) {
395
+ const svgRef = useRef<SVGSVGElement>(null)
396
+
397
+ useEffect(() => {
398
+ if (!svgRef.current || !data.length) return
399
+
400
+ const svg = d3.select(svgRef.current)
401
+ const width = svgRef.current.clientWidth
402
+ const height = svgRef.current.clientHeight
403
+ const margin = { top: 20, right: 20, bottom: 30, left: 40 }
404
+
405
+ svg.selectAll('*').remove()
406
+
407
+ const x = d3
408
+ .scaleBand()
409
+ .domain(data.map((d) => d.label))
410
+ .range([margin.left, width - margin.right])
411
+ .padding(0.1)
412
+
413
+ const y = d3
414
+ .scaleLinear()
415
+ .domain([0, d3.max(data, (d) => d.value) || 0])
416
+ .nice()
417
+ .range([height - margin.bottom, margin.top])
418
+
419
+ // Bars
420
+ svg
421
+ .selectAll('rect')
422
+ .data(data)
423
+ .join('rect')
424
+ .attr('x', (d) => x(d.label) || 0)
425
+ .attr('y', height - margin.bottom)
426
+ .attr('width', x.bandwidth())
427
+ .attr('height', 0)
428
+ .attr('fill', 'hsl(var(--primary))')
429
+ .attr('rx', 4)
430
+ .transition()
431
+ .duration(750)
432
+ .attr('y', (d) => y(d.value))
433
+ .attr('height', (d) => y(0) - y(d.value))
434
+
435
+ // X Axis
436
+ svg
437
+ .append('g')
438
+ .attr('transform', `translate(0,${height - margin.bottom})`)
439
+ .call(d3.axisBottom(x).tickSize(0))
440
+ .selectAll('text')
441
+ .attr('class', 'fill-muted-foreground text-xs')
442
+
443
+ }, [data])
444
+
445
+ return <svg ref={svgRef} className="w-full h-64" />
446
+ }
447
+ ```
448
+
449
+ ## Accessibility [LOW freedom — run exactly]
450
+
451
+ ```tsx
452
+ // Always include ARIA labels and descriptions
453
+ <div role="img" aria-label="Revenue chart showing monthly data from January to December">
454
+ <ResponsiveContainer>
455
+ <LineChart data={data} aria-hidden="true">
456
+ {/* Chart content */}
457
+ </LineChart>
458
+ </ResponsiveContainer>
459
+
460
+ {/* Screen reader alternative */}
461
+ <table className="sr-only">
462
+ <caption>Monthly Revenue Data</caption>
463
+ <thead>
464
+ <tr><th>Month</th><th>Revenue</th></tr>
465
+ </thead>
466
+ <tbody>
467
+ {data.map((d) => (
468
+ <tr key={d.month}>
469
+ <td>{d.month}</td>
470
+ <td>${d.revenue}</td>
471
+ </tr>
472
+ ))}
473
+ </tbody>
474
+ </table>
475
+ </div>
476
+ ```
477
+
478
+ ## Validation [LOW freedom — do not skip]
479
+
480
+ After creating visualizations:
481
+
482
+ 1. **Responsive** → Charts resize properly on all screens
483
+ 2. **Accessible** → Screen reader alternatives provided
484
+ 3. **Performance** → Large datasets use virtualization/sampling
485
+ 4. **Loading states** → Skeleton shown while data loads
486
+ 5. **Empty states** → Meaningful message when no data
487
+ 6. **Color contrast** → Meets WCAG guidelines
488
+ 7. **Tooltips** → Provide detailed data on hover