@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,114 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ UI/UX Pro Max Search - BM25 search engine for UI/UX style guides
5
+ Usage: python search.py "<query>" [--domain <domain>] [--stack <stack>] [--max-results 3]
6
+ python search.py "<query>" --design-system [-p "Project Name"]
7
+ python search.py "<query>" --design-system --persist [-p "Project Name"] [--page "dashboard"]
8
+
9
+ Domains: style, prompt, color, chart, landing, product, ux, typography
10
+ Stacks: html-tailwind, react, nextjs
11
+
12
+ Persistence (Master + Overrides pattern):
13
+ --persist Save design system to design-system/MASTER.md
14
+ --page Also create a page-specific override file in design-system/pages/
15
+ """
16
+
17
+ import argparse
18
+ import sys
19
+ import io
20
+ from core import CSV_CONFIG, AVAILABLE_STACKS, MAX_RESULTS, search, search_stack
21
+ from design_system import generate_design_system, persist_design_system
22
+
23
+ # Force UTF-8 for stdout/stderr to handle emojis on Windows (cp1252 default)
24
+ if sys.stdout.encoding and sys.stdout.encoding.lower() != 'utf-8':
25
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
26
+ if sys.stderr.encoding and sys.stderr.encoding.lower() != 'utf-8':
27
+ sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
28
+
29
+
30
+ def format_output(result):
31
+ """Format results for Claude consumption (token-optimized)"""
32
+ if "error" in result:
33
+ return f"Error: {result['error']}"
34
+
35
+ output = []
36
+ if result.get("stack"):
37
+ output.append(f"## UI Pro Max Stack Guidelines")
38
+ output.append(f"**Stack:** {result['stack']} | **Query:** {result['query']}")
39
+ else:
40
+ output.append(f"## UI Pro Max Search Results")
41
+ output.append(f"**Domain:** {result['domain']} | **Query:** {result['query']}")
42
+ output.append(f"**Source:** {result['file']} | **Found:** {result['count']} results\n")
43
+
44
+ for i, row in enumerate(result['results'], 1):
45
+ output.append(f"### Result {i}")
46
+ for key, value in row.items():
47
+ value_str = str(value)
48
+ if len(value_str) > 300:
49
+ value_str = value_str[:300] + "..."
50
+ output.append(f"- **{key}:** {value_str}")
51
+ output.append("")
52
+
53
+ return "\n".join(output)
54
+
55
+
56
+ if __name__ == "__main__":
57
+ parser = argparse.ArgumentParser(description="UI Pro Max Search")
58
+ parser.add_argument("query", help="Search query")
59
+ parser.add_argument("--domain", "-d", choices=list(CSV_CONFIG.keys()), help="Search domain")
60
+ parser.add_argument("--stack", "-s", choices=AVAILABLE_STACKS, help="Stack-specific search (html-tailwind, react, nextjs)")
61
+ parser.add_argument("--max-results", "-n", type=int, default=MAX_RESULTS, help="Max results (default: 3)")
62
+ parser.add_argument("--json", action="store_true", help="Output as JSON")
63
+ # Design system generation
64
+ parser.add_argument("--design-system", "-ds", action="store_true", help="Generate complete design system recommendation")
65
+ parser.add_argument("--project-name", "-p", type=str, default=None, help="Project name for design system output")
66
+ parser.add_argument("--format", "-f", choices=["ascii", "markdown"], default="ascii", help="Output format for design system")
67
+ # Persistence (Master + Overrides pattern)
68
+ parser.add_argument("--persist", action="store_true", help="Save design system to design-system/MASTER.md (creates hierarchical structure)")
69
+ parser.add_argument("--page", type=str, default=None, help="Create page-specific override file in design-system/pages/")
70
+ parser.add_argument("--output-dir", "-o", type=str, default=None, help="Output directory for persisted files (default: current directory)")
71
+
72
+ args = parser.parse_args()
73
+
74
+ # Design system takes priority
75
+ if args.design_system:
76
+ result = generate_design_system(
77
+ args.query,
78
+ args.project_name,
79
+ args.format,
80
+ persist=args.persist,
81
+ page=args.page,
82
+ output_dir=args.output_dir
83
+ )
84
+ print(result)
85
+
86
+ # Print persistence confirmation
87
+ if args.persist:
88
+ project_slug = args.project_name.lower().replace(' ', '-') if args.project_name else "default"
89
+ print("\n" + "=" * 60)
90
+ print(f"✅ Design system persisted to design-system/{project_slug}/")
91
+ print(f" 📄 design-system/{project_slug}/MASTER.md (Global Source of Truth)")
92
+ if args.page:
93
+ page_filename = args.page.lower().replace(' ', '-')
94
+ print(f" 📄 design-system/{project_slug}/pages/{page_filename}.md (Page Overrides)")
95
+ print("")
96
+ print(f"📖 Usage: When building a page, check design-system/{project_slug}/pages/[page].md first.")
97
+ print(f" If exists, its rules override MASTER.md. Otherwise, use MASTER.md.")
98
+ print("=" * 60)
99
+ # Stack search
100
+ elif args.stack:
101
+ result = search_stack(args.query, args.stack, args.max_results)
102
+ if args.json:
103
+ import json
104
+ print(json.dumps(result, indent=2, ensure_ascii=False))
105
+ else:
106
+ print(format_output(result))
107
+ # Domain search
108
+ else:
109
+ result = search(args.query, args.domain, args.max_results)
110
+ if args.json:
111
+ import json
112
+ print(json.dumps(result, indent=2, ensure_ascii=False))
113
+ else:
114
+ print(format_output(result))
@@ -0,0 +1,23 @@
1
+ # Attribution — thirdparty-web-interface-guidelines
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | **Upstream** | [vercel-labs/web-interface-guidelines](https://github.com/vercel-labs/web-interface-guidelines) |
6
+ | **Guidelines** | [vercel.com/design/guidelines](https://vercel.com/design/guidelines) |
7
+ | **Install script** | `curl -fsSL https://vercel.com/design/guidelines/install \| bash` |
8
+ | **Author** | Vercel Design Engineering |
9
+ | **License** | [MIT](https://github.com/vercel-labs/web-interface-guidelines/blob/main/LICENSE) — Copyright (c) 2025 Vercel Labs |
10
+ | **Local name** | `thirdparty-web-interface-guidelines` |
11
+ | **Curated in** | [kensaurus/skills](https://github.com/kensaurus/skills) |
12
+
13
+ ## Companion command
14
+
15
+ Slash command template: `commands/thirdparty-web-interface-guidelines.md`
16
+ Copy to `.cursor/commands/` in a project (or `~/.cursor/commands/` globally) for `/thirdparty-web-interface-guidelines`.
17
+
18
+ ## Update policy
19
+
20
+ 1. Fetch latest from `https://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md`.
21
+ 2. Update both `SKILL.md` and `commands/thirdparty-web-interface-guidelines.md`.
22
+ 3. Preserve `thirdparty-` prefix and attribution blocks.
23
+ 4. Run `./install.sh` or `cursor-sync`.
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: thirdparty-web-interface-guidelines
3
+ description: >
4
+ Third-party skill — Vercel Web Interface Guidelines compliance (focus,
5
+ forms, animation, copy). Use when the user names Vercel or web interface
6
+ guidelines. Generic a11y → audit-accessibility.
7
+ ---
8
+
9
+ # Web Interface Guidelines
10
+
11
+ > **Third-party skill** (upstream-maintained). See [ATTRIBUTION.md](ATTRIBUTION.md).
12
+ > Upstream: [vercel-labs/web-interface-guidelines](https://github.com/vercel-labs/web-interface-guidelines) · [vercel.com/design/guidelines](https://vercel.com/design/guidelines) · Local name: `thirdparty-web-interface-guidelines`
13
+
14
+ Review target files for compliance. Read files, check against rules below. Output concise but comprehensive—sacrifice grammar for brevity. High signal-to-noise.
15
+
16
+ When the user provides specific files or patterns, review those. Otherwise ask which files to review.
17
+
18
+ ## Rules
19
+
20
+ ### Accessibility
21
+
22
+ - Icon-only buttons need `aria-label`
23
+ - Form controls need `<label>` or `aria-label`
24
+ - Interactive elements need keyboard handlers (`onKeyDown`/`onKeyUp`)
25
+ - `<button>` for actions, `<a>`/`<Link>` for navigation (not `<div onClick>`)
26
+ - Images need `alt` (or `alt=""` if decorative)
27
+ - Decorative icons need `aria-hidden="true"`
28
+ - Async updates (toasts, validation) need `aria-live="polite"`
29
+ - Use semantic HTML (`<button>`, `<a>`, `<label>`, `<table>`) before ARIA
30
+ - Headings hierarchical `<h1>`–`<h6>`; include skip link for main content
31
+ - `scroll-margin-top` on heading anchors
32
+
33
+ ### Focus States
34
+
35
+ - Interactive elements need visible focus: `focus-visible:ring-*` or equivalent
36
+ - Never `outline-none` / `outline: none` without focus replacement
37
+ - Use `:focus-visible` over `:focus` (avoid focus ring on click)
38
+ - Group focus with `:focus-within` for compound controls
39
+
40
+ ### Forms
41
+
42
+ - Inputs need `autocomplete` and meaningful `name`
43
+ - Use correct `type` (`email`, `tel`, `url`, `number`) and `inputmode`
44
+ - Never block paste (`onPaste` + `preventDefault`)
45
+ - Labels clickable (`htmlFor` or wrapping control)
46
+ - Disable spellcheck on emails, codes, usernames (`spellCheck={false}`)
47
+ - Checkboxes/radios: label + control share single hit target (no dead zones)
48
+ - Submit button stays enabled until request starts; spinner during request
49
+ - Errors inline next to fields; focus first error on submit
50
+ - Placeholders end with `…` and show example pattern
51
+ - `autocomplete="off"` on non-auth fields to avoid password manager triggers
52
+ - Warn before navigation with unsaved changes (`beforeunload` or router guard)
53
+
54
+ ### Animation
55
+
56
+ - Honor `prefers-reduced-motion` (provide reduced variant or disable)
57
+ - Animate `transform`/`opacity` only (compositor-friendly)
58
+ - Never `transition: all`—list properties explicitly
59
+ - Set correct `transform-origin`
60
+ - SVG: transforms on `<g>` wrapper with `transform-box: fill-box; transform-origin: center`
61
+ - Animations interruptible—respond to user input mid-animation
62
+
63
+ ### Typography
64
+
65
+ - `…` not `...`
66
+ - Curly quotes `"` `"` not straight `"`
67
+ - Non-breaking spaces: `10&nbsp;MB`, `⌘&nbsp;K`, brand names
68
+ - Loading states end with `…`: `"Loading…"`, `"Saving…"`
69
+ - `font-variant-numeric: tabular-nums` for number columns/comparisons
70
+ - Use `text-wrap: balance` or `text-pretty` on headings (prevents widows)
71
+
72
+ ### Content Handling
73
+
74
+ - Text containers handle long content: `truncate`, `line-clamp-*`, or `break-words`
75
+ - Flex children need `min-w-0` to allow text truncation
76
+ - Handle empty states—don't render broken UI for empty strings/arrays
77
+ - User-generated content: anticipate short, average, and very long inputs
78
+
79
+ ### Images
80
+
81
+ - `<img>` needs explicit `width` and `height` (prevents CLS)
82
+ - Below-fold images: `loading="lazy"`
83
+ - Above-fold critical images: `priority` or `fetchpriority="high"`
84
+
85
+ ### Performance
86
+
87
+ - Large lists (>50 items): virtualize (`virtua`, `content-visibility: auto`)
88
+ - No layout reads in render (`getBoundingClientRect`, `offsetHeight`, `offsetWidth`, `scrollTop`)
89
+ - Batch DOM reads/writes; avoid interleaving
90
+ - Prefer uncontrolled inputs; controlled inputs must be cheap per keystroke
91
+ - Add `<link rel="preconnect">` for CDN/asset domains
92
+ - Critical fonts: `<link rel="preload" as="font">` with `font-display: swap`
93
+
94
+ ### Navigation & State
95
+
96
+ - URL reflects state—filters, tabs, pagination, expanded panels in query params
97
+ - Links use `<a>`/`<Link>` (Cmd/Ctrl+click, middle-click support)
98
+ - Deep-link all stateful UI (if uses `useState`, consider URL sync via nuqs or similar)
99
+ - Destructive actions need confirmation modal or undo window—never immediate
100
+
101
+ ### Touch & Interaction
102
+
103
+ - `touch-action: manipulation` (prevents double-tap zoom delay)
104
+ - `-webkit-tap-highlight-color` set intentionally
105
+ - `overscroll-behavior: contain` in modals/drawers/sheets
106
+ - During drag: disable text selection, `inert` on dragged elements
107
+ - `autoFocus` sparingly—desktop only, single primary input; avoid on mobile
108
+
109
+ ### Safe Areas & Layout
110
+
111
+ - Full-bleed layouts need `env(safe-area-inset-*)` for notches
112
+ - Avoid unwanted scrollbars: `overflow-x-hidden` on containers, fix content overflow
113
+ - Flex/grid over JS measurement for layout
114
+
115
+ ### Dark Mode & Theming
116
+
117
+ - `color-scheme: dark` on `<html>` for dark themes (fixes scrollbar, inputs)
118
+ - `<meta name="theme-color">` matches page background
119
+ - Native `<select>`: explicit `background-color` and `color` (Windows dark mode)
120
+
121
+ ### Locale & i18n
122
+
123
+ - Dates/times: use `Intl.DateTimeFormat` not hardcoded formats
124
+ - Numbers/currency: use `Intl.NumberFormat` not hardcoded formats
125
+ - Detect language via `Accept-Language` / `navigator.languages`, not IP
126
+ - Brand names, code tokens, identifiers: wrap with `translate="no"` to prevent garbled auto-translation
127
+
128
+ ### Hydration Safety
129
+
130
+ - Inputs with `value` need `onChange` (or use `defaultValue` for uncontrolled)
131
+ - Date/time rendering: guard against hydration mismatch (server vs client)
132
+ - `suppressHydrationWarning` only where truly needed
133
+
134
+ ### Hover & Interactive States
135
+
136
+ - Buttons/links need `hover:` state (visual feedback)
137
+ - Interactive states increase contrast: hover/active/focus more prominent than rest
138
+
139
+ ### Content & Copy
140
+
141
+ - Active voice: "Install the CLI" not "The CLI will be installed"
142
+ - Title Case for headings/buttons (Chicago style)
143
+ - Numerals for counts: "8 deployments" not "eight"
144
+ - Specific button labels: "Save API Key" not "Continue"
145
+ - Error messages include fix/next step, not just problem
146
+ - Second person; avoid first person
147
+ - `&` over "and" where space-constrained
148
+
149
+ ### Anti-patterns (flag these)
150
+
151
+ - `user-scalable=no` or `maximum-scale=1` disabling zoom
152
+ - `onPaste` with `preventDefault`
153
+ - `transition: all`
154
+ - `outline-none` without focus-visible replacement
155
+ - Inline `onClick` navigation without `<a>`
156
+ - `<div>` or `<span>` with click handlers (should be `<button>`)
157
+ - Images without dimensions
158
+ - Large arrays `.map()` without virtualization
159
+ - Form inputs without labels
160
+ - Icon buttons without `aria-label`
161
+ - Hardcoded date/number formats (use `Intl.*`)
162
+ - `autoFocus` without clear justification
163
+
164
+ ## Output Format
165
+
166
+ Group by file. Use `file:line` format (VS Code clickable). Terse findings.
167
+
168
+ ```text
169
+ ## src/Button.tsx
170
+
171
+ src/Button.tsx:42 - icon button missing aria-label
172
+ src/Button.tsx:18 - input lacks label
173
+ src/Button.tsx:55 - animation missing prefers-reduced-motion
174
+ src/Button.tsx:67 - transition: all → list properties
175
+
176
+ ## src/Modal.tsx
177
+
178
+ src/Modal.tsx:12 - missing overscroll-behavior: contain
179
+ src/Modal.tsx:34 - "..." → "…"
180
+
181
+ ## src/Card.tsx
182
+
183
+ ✓ pass
184
+ ```
185
+
186
+ State issue + location. Skip explanation unless fix non-obvious. No preamble.
187
+
188
+ ---
189
+
190
+ **Source:** [vercel-labs/web-interface-guidelines](https://github.com/vercel-labs/web-interface-guidelines) · [Vercel Web Interface Guidelines](https://vercel.com/design/guidelines). Installed in kenji as `thirdparty-web-interface-guidelines`. See [ATTRIBUTION.md](ATTRIBUTION.md).
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: workflow-build-feature
3
+ description: >
4
+ Build a feature end to end: spec and TDD, implement, unit tests, Playwright
5
+ check, PR. Use when "build a feature" or "implement this end-to-end".
6
+ Spec/TDD loop only → workflow-spec-tdd. One bug → workflow-fix-and-ship.
7
+ license: MIT
8
+ ---
9
+
10
+ # workflow-build-feature — End-to-End Feature Build
11
+
12
+ **Degree of freedom: MIXED.** How to implement Phase 2 `[HIGH freedom]`;
13
+ phase order and "no implementation before RED" `[LOW freedom — run exactly]`.
14
+
15
+ One command that runs the full feature loop. Don't skip phases — each gate
16
+ catches a class of defects the next phase can't.
17
+
18
+ ## How to reason
19
+
20
+ 1. **Contract** — what observable behavior is in / out of scope?
21
+ 2. **Sequence** — which phase is next, and what would skipping it hide?
22
+ 3. **Prove** — RED was real; GREEN and smoke cover the contract
23
+ 4. **Handoff** — PR evidence is complete; no silent "looks done"
24
+
25
+ ## Worked example
26
+
27
+ > **Contract:** "add a forgot-password link" — email reset, not a magic-link login rewrite.
28
+ > **Sequence:** spec + RED on the request-reset handler before any UI.
29
+ > **Prove:** RED failed on missing route; GREEN + Playwright submits the form and sees the check-email state.
30
+ > **Handoff:** PR links the spec, the RED/GREEN commands, and the smoke screenshot.
31
+
32
+ ## Self-critique before reporting
33
+
34
+ - **Phases intact** — none of spec / RED / unit / smoke / PR were skipped
35
+ - **RED was real** — the failing test existed before implementation
36
+ - **Full-stack** — if data was touched, the migration was applied and verified
37
+ - **Right owner** — one named bug → `workflow-fix-and-ship`; spec loop only → `workflow-spec-tdd`
38
+
39
+ ---
40
+
41
+ ## Phase sequence [LOW freedom — run exactly]
42
+
43
+ ```
44
+ 1. SPEC → workflow-spec-tdd (contract, plan, RED test)
45
+ 2. BUILD → implement against the spec (GREEN)
46
+ 3. UNIT TEST → test-unit (edge cases, mocks, coverage)
47
+ 4. SMOKE → test-playwright (drive the live app as a real user, fix pain points)
48
+ 5. PR → workflow-pr (create PR with test evidence)
49
+ ```
50
+ The turn ends at the Done criteria or at a real gate — a decision only the user can make, a missing credential, a failing service. A phase summary is a progress note, not a stopping point.
51
+
52
+ ---
53
+
54
+ ## Phase 1: Spec (read workflow-spec-tdd) [LOW freedom — run exactly]
55
+
56
+ > Read the `workflow-spec-tdd` skill and follow it.
57
+
58
+ Key outputs:
59
+ - Written spec (what it does, what it doesn't do, acceptance criteria)
60
+ - File-mapped implementation plan (which files to create/edit)
61
+ - A RED failing test that encodes the acceptance criteria
62
+
63
+ When the ask is loosely specified, read the relevant routes, schema, tests, and sibling features broadly before writing the spec, so it is grounded in what the repo does rather than the first plausible reading.
64
+
65
+ **Do not write implementation code until the spec and RED test exist.**
66
+
67
+ ---
68
+
69
+ ## Phase 2: Build [HIGH freedom]
70
+
71
+ Implement against the spec. Rules:
72
+ - One logical change per commit
73
+ - Match the file patterns already in the repo — no new abstractions unless the spec calls for them
74
+ - Full-stack: if the feature reads/writes data, verify the DB migration is applied before the frontend ships (see full-stack-ship-discipline rule)
75
+ - Scope stays where the spec put it. A pre-existing bug you find on the way is a follow-up in the PR description, not part of this change. Scratch scripts and one-off checks stay out of the repo. Edit files surgically — change the lines the feature needs, do not rewrite the file around them.
76
+
77
+ ---
78
+
79
+ ## Phase 3: Unit tests (read test-unit) [LOW freedom — hand off]
80
+
81
+ > Read the `test-unit` skill and follow it.
82
+
83
+ Focus on:
84
+ - The new code's happy path, error paths, and edge cases
85
+ - Any shared utility functions introduced
86
+
87
+ ---
88
+
89
+ ## Phase 4: Smoke test (read test-playwright) [LOW freedom — hand off]
90
+
91
+ > Read the `test-playwright` skill and follow it.
92
+
93
+ Drive the live app through the new feature as a real user. Fix pain points inline (full-stack: UI + API + DB). Capture screenshots as evidence.
94
+
95
+ Before any browser action, apply `protocol-browser-anti-stall` rules.
96
+
97
+ ---
98
+
99
+ ## Phase 5: PR (read workflow-pr) [LOW freedom — hand off]
100
+
101
+ > Read the `workflow-pr` skill and follow it.
102
+
103
+ Include in the PR description:
104
+ - Link to the spec / acceptance criteria
105
+ - Screenshots or screen recording from Phase 4
106
+ - Migration notes if schema changed
107
+
108
+ ---
109
+
110
+ ## Done criteria [LOW freedom — do not skip]
111
+
112
+ - [ ] Spec written and agreed
113
+ - [ ] RED test exists and was failing before implementation
114
+ - [ ] Implementation makes test GREEN
115
+ - [ ] Unit tests cover happy path + at least one error path
116
+ - [ ] Smoke test drove the live app and found no blockers
117
+ - [ ] DB migration applied and verified (if applicable)
118
+ - [ ] PR open with description and evidence
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: workflow-coding-discipline
3
+ description: >
4
+ Guardrails for writing, editing, refactoring, or debugging code: surface
5
+ assumptions, simplicity first, surgical changes. Use when vibe-coding keeps
6
+ producing wrong results, or for "think before coding" or "surgical changes".
7
+ license: MIT
8
+ ---
9
+
10
+ # Karpathy Behavioral Guidelines
11
+
12
+ **Degree of freedom: HIGH.** How strictly to apply each guardrail is judgment.
13
+ Trivial one-liners may skip the full loop; a wrong architectural guess may not.
14
+
15
+ ## How to reason
16
+
17
+ 1. **Observe** — what is already in the repo vs what you are about to invent
18
+ 2. **Interpret** — is this a one-liner or a tradeoff that needs a question?
19
+ 3. **Classify** — proceed / ask / simplify
20
+ 4. **Severity** — a silent assumption that changes public behavior is a fail
21
+
22
+ ## Worked example
23
+
24
+ > **Observe:** user said "just add caching"; repo already has TanStack Query on the same endpoint.
25
+ > **Interpret:** a second cache would duplicate, not simplify.
26
+ > **Classify:** ask, then reuse Query — do not add Redis.
27
+ > **Check:** surgical edit; no new abstraction.
28
+
29
+ ## Self-critique before reporting
30
+
31
+ - **Thought first** — confusion was surfaced, not coded through
32
+ - **Simpler option** — no extra layer without a repeating pattern
33
+ - **Surgical** — unrelated files untouched
34
+ - **Right owner** — scoped refactor → `workflow-refactor`; repo-wide pattern → `audit-code-quality`
35
+
36
+ Four guardrails to apply on every non-trivial coding task. Bias toward caution over speed. For trivial one-liners (typo fixes, obvious renames), use judgment — not every change needs full rigor.
37
+
38
+ If a project's own rules contradict any guideline below, the project rules win.
39
+
40
+ ---
41
+
42
+ ## 1. Think Before Coding [HIGH freedom]
43
+
44
+ **State your assumptions. Say when you're confused. Surface tradeoffs.**
45
+
46
+ Before writing code:
47
+
48
+ - State your assumptions explicitly. If uncertain, ask instead of guessing.
49
+ - If multiple interpretations exist, present them — don't silently pick one.
50
+ - If a simpler approach exists than what was requested, say so. Push back when warranted.
51
+ - If something is unclear, stop. Name what's confusing. Ask.
52
+
53
+ **Anti-pattern:** Reading an ambiguous request, picking one interpretation, building 200 lines, then discovering the user meant something else.
54
+
55
+ ---
56
+
57
+ ## 2. Simplicity First [HIGH freedom]
58
+
59
+ **Minimum code that solves the problem. Nothing speculative.**
60
+
61
+ - No features beyond what was asked.
62
+ - No abstractions for single-use code.
63
+ - No "flexibility" or "configurability" that wasn't requested.
64
+ - No error handling for impossible scenarios.
65
+ - No premature `try/catch`, `?.` chains, or `Array.isArray()` guards as the *primary* fix — those are symptom suppressors. Fix the root cause first; harden second.
66
+ - If you wrote 200 lines and it could be 50, rewrite it before showing the user.
67
+
68
+ **The test:** Would a senior engineer reading this say it's overcomplicated? If yes, simplify.
69
+
70
+ ---
71
+
72
+ ## 3. Surgical Changes [HIGH freedom]
73
+
74
+ **Touch only what you must. Clean up only your own mess.**
75
+
76
+ When editing existing code:
77
+
78
+ - Don't "improve" adjacent code, comments, or formatting that's outside the task.
79
+ - Don't refactor things that aren't broken.
80
+ - Match existing style, even if you'd do it differently.
81
+ - If you notice unrelated dead code or smells, **mention them** — don't delete or fix them in the same change.
82
+ - Add tests where the task asks for them or where the repo already keeps that kind of test; scratch scripts and one-off checks stay out of the repo.
83
+ - Edit in place — change the lines the task needs, don't rewrite the file around them.
84
+
85
+ When your changes create orphans:
86
+
87
+ - Remove imports, variables, or functions that *your* changes made unused.
88
+ - Don't remove pre-existing dead code unless explicitly asked.
89
+
90
+ **The test:** Every changed line in the diff should trace directly to the user's request. If a reviewer asks "why is this line different?" you should have an answer rooted in the task.
91
+
92
+ ---
93
+
94
+ ## 4. Goal-Driven Execution [HIGH freedom]
95
+
96
+ **Define success criteria. Loop until verified.**
97
+
98
+ Transform imperative tasks into verifiable goals:
99
+
100
+ | Instead of... | Transform to... |
101
+ |---|---|
102
+ | "Add validation" | "Write tests for invalid inputs, then make them pass" |
103
+ | "Fix the bug" | "Write a test that reproduces it, then make it pass" |
104
+ | "Refactor X" | "Ensure tests pass before and after" |
105
+ | "Make it work" | "Define what 'work' means as a verifiable check, then verify" |
106
+
107
+ For multi-step tasks, say in one line what you are about to do before the first tool call, then list the steps with the check that proves each:
108
+
109
+ ```
110
+ 1. [Step] → verify: [check]
111
+ 2. [Step] → verify: [check]
112
+ 3. [Step] → verify: [check]
113
+ ```
114
+
115
+ Strong success criteria let you loop independently. Weak criteria ("make it work") force the user back into the loop to clarify.
116
+
117
+ ---
118
+
119
+ ## Self-Check Before Returning a Result [LOW freedom — do not skip]
120
+
121
+ Before saying "done", confirm:
122
+
123
+ - [ ] Every diff line traces to the user's request (Surgical Changes)
124
+ - [ ] No unrequested features, abstractions, or configurability (Simplicity First)
125
+ - [ ] Assumptions stated, ambiguities surfaced, not silently picked (Think Before Coding)
126
+ - [ ] Success criteria defined and verified — not just "the code compiles" (Goal-Driven Execution)
127
+ - [ ] Adjacent code, comments, and formatting left alone unless touching them was the task
128
+
129
+ ---
130
+
131
+ ## When These Guidelines Are Working
132
+
133
+ - Diffs are minimal — no unrelated changes
134
+ - Code is simple the first time — fewer rewrites
135
+ - Clarifying questions appear *before* implementation, not after mistakes
136
+ - PRs feel hand-crafted, not AI-sprawled
137
+
138
+ ---
139
+
140
+ **Source:** Adapted from [forrestchang/andrej-karpathy-skills](https://github.com/forrestchang/andrej-karpathy-skills), distilled from Andrej Karpathy's observations on LLM coding pitfalls. MIT licensed.