@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,133 @@
1
+ # Output template — `plan-dead-code.md`
2
+
3
+ Copy this shape. The numbers below are illustrative; every count in a real
4
+ report comes from an executed command, and the only estimated column is
5
+ "After Phase 1".
6
+
7
+ **One row per chain head.** A dead file explains its own exports and the
8
+ packages only it imported — those are *children*, listed in the last column,
9
+ never as separate rows. Twenty-seven findings that collapse to three heads is
10
+ a three-row table, and reporting it as twenty-seven inflates the work.
11
+
12
+ ````markdown
13
+ # Dead-Code Audit — <repo>
14
+
15
+ _Audit-only. Nothing is deleted, fixed, or installed until each phase is approved._
16
+
17
+ ## Stack fingerprint
18
+ - Bundler: Vite 6 · React 19 · TS paths: yes (`@/*`)
19
+ - shadcn: `src/components/ui` (34 files)
20
+ - Supabase: types at `src/types/supabase.ts` · Edge Functions: `supabase/functions` (5)
21
+ - Dynamic surfaces: `src/router.tsx:18` template-string lazy import
22
+ - Existing: no knip config · ESLint `no-unused-vars: warn` · tsconfig `noUnusedLocals: false`
23
+ - Behavior locked by tests? partial — `src/lib/**` covered, `src/routes/**` not
24
+
25
+ ## Proposed `knip.json`
26
+ ```json
27
+ <adapted from references/knip-config.md>
28
+ ```
29
+ Configuration hints resolved: 3 (vite plugin entry, vitest plugin, tailwind postcss)
30
+ First-run findings: 312 → after configuration: 41. **271 were never dead code.**
31
+
32
+ ## Baseline
33
+ | Issue type | `--production` | default | After Phase 1 (est.) |
34
+ |---|---|---|---|
35
+ | Unused files | 9 | 15 | 0 |
36
+ | Unused dependencies | 4 | 4 | 0 |
37
+ | Unused devDependencies | 0 | 3 | 3 |
38
+ | Unlisted dependencies | 1 | 1 | 0 (add) |
39
+ | Unresolved imports | 0 | 0 | 0 |
40
+ | Unused exports | 22 | 61 | ~6 |
41
+ | Unused exported types | 6 | 22 | ~4 |
42
+ | Unused enum members | 0 | 4 | 4 |
43
+ | Duplicate exports | 0 | 2 | 2 |
44
+ | **Total (`--max-issues` seed)** | **12** | **41** | — |
45
+
46
+ Production mode is the number that should reach 0 first: those are findings in
47
+ shipped code.
48
+
49
+ ## Findings (chain heads only)
50
+ | # | Type | Path / symbol | Verdict | Sev | Effort | Children |
51
+ |---|---|---|---|---|---|---|
52
+ | D1 | file | `src/lib/formatDate.ts` | kill | Med | S | dep `date-fns`, exports ×3 |
53
+ | D2 | file | `src/components/ui/{accordion,carousel,…}.tsx` ×7 | kill — unused shadcn, re-addable | Low | S | exports ×14, dep `embla-carousel-react` |
54
+ | D3 | file | `src/components/DashboardV2.tsx` | kill — router imports `Dashboard.tsx` | Med | S | exports ×2 |
55
+ | D4 | export | `src/lib/utils.ts` — 23 of 31 exports unused | kill barrel; inline 8 to callers | Med | **M** | — |
56
+ | D5 | dep | `axios` (fetch used everywhere) | kill | **High** — advisory GHSA-… | S | — |
57
+ | D6 | unlisted | `clsx` imported, never declared | add at the resolved version | Med | S | — |
58
+ | K1 | file | `src/routes/Admin.tsx` | keep-config → `entry: ["src/routes/*.tsx!"]` | — | S | — |
59
+ | K2 | export | `src/lib/api.ts#client` | keep-tagged → `@public` (used by `scripts/`) | — | S | — |
60
+ | K3 | export | `src/hooks/useAuth.ts#__testReset` | keep-tagged → `@internal` (production mode only) | — | S | — |
61
+ | N1 | file | `public/img/legacy/**` (12 files) | needs-owner — reached by template string? | — | S | — |
62
+
63
+ Verdicts: `kill` · `keep-tagged` · `keep-config` · `needs-owner`. **A keep row
64
+ always names its remedy** — a keep with no remedy is an `ignore` in disguise,
65
+ and the next agent will delete it.
66
+
67
+ ## Residue metrics
68
+ | Metric | Count |
69
+ |---|---|
70
+ | `console.log/debug/info` outside tests | 41 |
71
+ | `debugger` | 2 |
72
+ | `.only` / `.skip` / `.todo` | 1 / 6 / 0 |
73
+ | commented-out code blocks | 18 |
74
+ | `@ts-ignore` + `@ts-expect-error` / `eslint-disable` | 9 / 14 |
75
+ | `: any` / `as any` | 37 |
76
+ | empty `catch {}` | 5 |
77
+ | unused locals (`tsc --noEmit`) | not run — `noUnusedLocals` is off |
78
+ | orphan `public/` assets | 12 (3.4 MB) |
79
+ | env referenced-not-declared / declared-not-referenced | 2 / 5 |
80
+ | duplication (`jscpd`) | 6.2% · 7 clones ≥50 tokens |
81
+ | `*V2` / `*New` / `*Old` / `* copy` files | 4 |
82
+ | **bundle leak (`service_role` in `dist`)** | **0 — clean** |
83
+
84
+ ## Root causes
85
+ Not a list of items — the thing to fix:
86
+ 1. `src/lib/utils.ts` is a dumping ground (D4). One split removes 23 findings.
87
+ 2. shadcn was installed wholesale (D2). 7 of 34 components are unwired.
88
+ 3. `noUnusedLocals` has never been on, so nothing inside files was ever checked.
89
+
90
+ ## Phased burndown
91
+ - **Phase 1 — Config + files** → commit `knip.json`; delete D1–D3. Re-run; expect deps to *rise* before they fall.
92
+ - **Phase 2 — Exports + types** → `--fix-type exports,types`; split D4; linter cascade; repeat until stable.
93
+ - **Phase 3 — Dependencies** → remove D5 + chain survivors; add D6; clean install; build.
94
+ - **Phase 4 — Residue** → console, `debugger`, `.only`, commented blocks, orphan versions, assets, `.env.example` sync.
95
+ - **Phase 5 — Suppressions** → 9 `@ts-ignore` → fix or `@ts-expect-error` + reason.
96
+ - **Phase 6 — Ratchet** → `knip` script + CI job at `--max-issues 3`, into the `housekeep-gates` aggregator.
97
+ - **Phase 7 — Supabase arm** → 2 never-queried tables, 1 uninvoked Edge Function, 3 unused indexes, types-drift guard. Drops are migrations, after approval.
98
+
99
+ Risk per phase, and what must keep working: Phase 1 must not break the
100
+ template-string router (K1); Phase 3 must not remove a dep reached only from
101
+ `tailwind.config.ts`; Phase 7 touches no production data.
102
+
103
+ ## Ratchet target
104
+ `--max-issues` seed: 41 default / 12 production → after Phase 3: ≤10 / 0 → target 0 / 0.
105
+ Duplication 6.2% → ≤4%. Suppressions 23 → ≤15. All shrink-only.
106
+
107
+ ## Execution handoff
108
+ Approve a phase to run it via `housekeep-dead-code`. `.skip` rows and TODO
109
+ counts → `housekeep-backlog`. Duplication → `workflow-refactor`. Schema drops →
110
+ `plan-data-integrity` then `db-migrator`.
111
+ ````
112
+
113
+ ## Why the table has a Children column
114
+
115
+ Without it, agents report chains as independent findings and the plan looks
116
+ five times larger than the work. The re-run after Phase 1 is where children
117
+ disappear — and where a *few new* findings appear, because deleting a file can
118
+ orphan the dependency only it imported. Both directions are expected; say so
119
+ in the plan so the apply pass does not treat the delta as a surprise.
120
+
121
+ ## Severity and effort
122
+
123
+ **Severity** — High: an unused dependency with an open advisory, an orphan file
124
+ holding credentials or PII fixtures, duplicated business logic that has already
125
+ diverged. Medium: unused files and exports. Low: unused types, enum members,
126
+ class members.
127
+
128
+ **Effort** — S: delete a file, drop an `export` keyword. M: a barrel, a
129
+ dumping-ground split, a duplicate merge. L: anything needing a framework config
130
+ change or a database migration.
131
+
132
+ Severity orders the phases; effort decides whether an item belongs here or in
133
+ `workflow-refactor`.
@@ -0,0 +1,50 @@
1
+ # Preservation contract — plan-dead-code
2
+
3
+ This pass produces a document. It changes no behavior and no files other than
4
+ writing `plan-dead-code.md`.
5
+
6
+ ## Never do in this pass
7
+
8
+ - **Delete, `--fix`, `rm`, or edit `package.json` / the lockfile.** The
9
+ deliverable is a report plus a *proposed* config.
10
+ - **Commit `knip.json`.** It lives in the report; `housekeep-dead-code`
11
+ commits it.
12
+ - **Add an `ignore` glob** for anything other than a machine-generated file
13
+ you regenerate rather than edit. `entry`, `paths`, `--production`, and the
14
+ `@public` / `@internal` / `@alias` tags are the real remedies.
15
+ - **Report a chain child as its own finding.** Children live under their head.
16
+ - **Treat a passing test as proof something is alive.** Production mode
17
+ decides reachability; a test that only imports dead code is dead too.
18
+ - **Print an env value, a token, or a connection string.** Names only.
19
+ - **Write to a database.** Every schema query in Phase 3g is read-only.
20
+ - **Estimate a count.** Every baseline number comes from an executed command.
21
+ If a check could not run, the row reads `not run` with the reason.
22
+
23
+ ## Before any change proposal
24
+
25
+ One line per phase: **what currently works here that must keep working.** The
26
+ router, the auth flow, the build, the scripts CI runs, the webhook nobody
27
+ imports. A phase without that line is not reviewable.
28
+
29
+ ## Verdict buckets
30
+
31
+ | Bucket | Meaning |
32
+ |---|---|
33
+ | `kill` | Unreachable in production mode *after* the config was settled |
34
+ | `keep-tagged` | Reachable, or deliberately public — remedy is `@public` / `@internal` / `@alias` |
35
+ | `keep-config` | The finding is a gap in Knip's model — remedy is `entry`, `paths`, or a plugin |
36
+ | `chain` | Disappears when its parent goes; not counted separately |
37
+ | `needs-owner` | Plausibly dead, but a human must decide. Never upgraded to `kill` to shrink the list |
38
+ | `defer` | Real, but over M effort → `workflow-refactor` / `housekeep-backlog` |
39
+
40
+ ## The failure this contract prevents
41
+
42
+ An agent runs `knip` on a vibe-coded repo, gets three hundred findings, and
43
+ starts deleting. Typecheck stays green and the unit tests stay green, because
44
+ neither can see a route loaded by template string, an Edge Function called by
45
+ a Stripe webhook, or an asset referenced from a CSS `url()`. The app breaks in
46
+ production, and the commit that broke it deleted forty other things at the same
47
+ time.
48
+
49
+ Configuration first, evidence per row, and one category per commit exist to
50
+ make that specific outcome impossible.
@@ -0,0 +1,84 @@
1
+ # Residue grep pack
2
+
3
+ What Knip cannot see: junk *inside* live files, plus assets, env, and
4
+ duplication. `plan-dead-code` records the counts; `housekeep-dead-code`
5
+ applies the fix column. Adjust `src` to the detected source directory.
6
+
7
+ **Counting convention.** Use `rg -o … | wc -l` for a repo total of *matches*.
8
+ `rg -c` prints per-file counts of matching *lines*, so two `console.log` calls
9
+ on one line count once — fine for triage, wrong for a ratchet. Pick one and
10
+ keep it: the baseline and the post-cleanup number must be produced by the same
11
+ command or the ratchet compares nothing.
12
+
13
+ | Class | Count command | Fix (housekeep only) |
14
+ |---|---|---|
15
+ | Debug logging | `rg -o "console\.(log\|debug\|info)\(" src --glob '!**/*.{test,spec}.*' \| wc -l` | Delete, or route through the project's existing logger. **Never add a logger to satisfy this pass.** `console.error/warn` in catch blocks stay. |
16
+ | `debugger` | `rg -n "^\s*debugger;?\s*$" src` | Delete |
17
+ | Focused tests | `rg -n "\b(it\|test\|describe)\.only\(" src tests e2e 2>/dev/null` | Remove the **modifier**. `.only` silently disables the rest of its file, so the suite may go red — that is a bug it was hiding |
18
+ | Skipped tests | `rg -n "\b(it\|test\|describe)\.(skip\|todo)\(\|\bx(it\|describe)\(" src tests e2e 2>/dev/null` | Do not delete the test → un-skip and fix, or register rows in `housekeep-backlog` |
19
+ | Commented-out code | `rg -n "^\s*//\s*(const\|let\|var\|import\|export\|return\|if \(\|for \(\|await \|function\|\}\|<[A-Za-z])" src` | Delete the block. Git is the archive; "keep for reference" is not a reason |
20
+ | Placeholders | `rg -n -i "your logic here\|implement me\|lorem ipsum\|placeholder text\|TODO: implement" src` | Wire or delete. If the control is user-visible → `plan-stub-checker` |
21
+ | TODO / FIXME / HACK | `rg -o "TODO\|FIXME\|HACK\|XXX" src \| wc -l` | Count only → `housekeep-backlog` |
22
+ | Orphan versions | `rg --files src \| rg -i "(v2\|v3\|new\|old\|copy\|backup\|final\|tmp)\.(tsx?\|css)$"` | Confirm which one the router/imports actually use; delete the rest. The survivor keeps its original name |
23
+ | Dumping grounds | see script below | >15 exports: split by domain, or inline single-caller helpers |
24
+ | `@ts-ignore` / `@ts-expect-error` | `rg -o "@ts-ignore\|@ts-expect-error" src \| wc -l` | Fix the type, or convert to `@ts-expect-error <reason>` — it self-expires, and TS reports it once the error is gone |
25
+ | `eslint-disable` | `rg -o "eslint-disable\|biome-ignore" src \| wc -l` | Per-line with a reason, or fix. File-level disables are removed and the file fixed |
26
+ | `any` | `rg -o ":\s*any\b\|as any\b\|<any>" src \| wc -l` | Ratchet metric. Fix only where it hides a real bug this pass. **Never widen a type to remove a suppression** |
27
+ | Empty catch | `rg -n -U "catch\s*(\([^)]*\))?\s*\{\s*\}" src` | Log + rethrow, or one line saying why swallowing is correct |
28
+ | Orphan assets | see script below | Delete. Confirm no reference from CSS, `index.html`, or storage seeds first |
29
+ | Env drift | see script below | Add missing keys to `.env.example`; remove declared-but-unreferenced. **Names only — never print values** |
30
+ | Duplication | `npx jscpd src --min-tokens 50 --min-lines 5 --reporters console` | Behavior-preserving → `workflow-refactor`, never bundled with a deletion commit |
31
+ | Bundle leak | `npm run build && rg -l "service_role\|SUPABASE_SERVICE_ROLE" dist` | **Any hit stops the pass** → `plan-secrets-audit` immediately |
32
+
33
+ The bundle-leak row is not dead-code hygiene — it is the one check here that
34
+ can find a live credential in shipped output. Run it even if the rest of
35
+ Phase 3 is skipped.
36
+
37
+ ## Dumping grounds
38
+
39
+ An AI-written `lib/utils.ts` accretes helpers nobody deletes. Rank by export
40
+ count so the barrel itself becomes the finding:
41
+
42
+ ```bash
43
+ for f in $(rg --files src | rg "(utils|helpers)/.*\.tsx?$|lib/utils\.tsx?$"); do
44
+ echo "$(rg -c '^export ' "$f" 2>/dev/null || echo 0) $f"
45
+ done | sort -rn
46
+ ```
47
+
48
+ If one file explains twenty unused-export findings, that is **one M-effort
49
+ fix**, not twenty S-effort ones. Report the barrel.
50
+
51
+ ## Orphan assets
52
+
53
+ ```bash
54
+ for f in $(find public -type f ! -name "*.md" 2>/dev/null); do
55
+ b=$(basename "$f")
56
+ rg -q --fixed-strings "$b" src index.html 2>/dev/null || echo "orphan: $f ($(du -h "$f" | cut -f1))"
57
+ done
58
+ ```
59
+
60
+ Repeat for `src/assets` against `src`. Because the loop searches `src`, fonts
61
+ referenced only from a CSS `@font-face` count as used.
62
+
63
+ **Known false positive:** hashed or templated references
64
+ (`` `/img/${slug}.png` ``, Vite's `new URL('./x.png', import.meta.url)`) never
65
+ match a basename scan. A directory reached only by template string is
66
+ `needs-owner`, not dead.
67
+
68
+ ## Env drift
69
+
70
+ Both directions matter: referenced-but-undeclared breaks production;
71
+ declared-but-unreferenced is dead config.
72
+
73
+ ```bash
74
+ rg -o "import\.meta\.env\.[A-Z0-9_]+" src | sed 's/.*env\.//' | sort -u > /tmp/env-used
75
+ rg -o "process\.env\.[A-Z0-9_]+" src | sed 's/.*env\.//' | sort -u >> /tmp/env-used
76
+ sort -u -o /tmp/env-used /tmp/env-used
77
+ rg -o "^[A-Z0-9_]+" .env.example | sort -u > /tmp/env-declared
78
+
79
+ echo "referenced, not declared:"; comm -23 /tmp/env-used /tmp/env-declared
80
+ echo "declared, not referenced:"; comm -13 /tmp/env-used /tmp/env-declared
81
+ ```
82
+
83
+ Any `VITE_` / `NEXT_PUBLIC_` key whose value is not meant for the browser is a
84
+ secrets finding, not an env-hygiene one → `plan-secrets-audit`.
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: plan-dependency-provenance
3
+ description: >
4
+ Plan-only audit of dependencies for hallucinated or slopsquatted packages,
5
+ supply-chain risk, and license gaps. Use when "check my dependencies", "is
6
+ this package real", "slopsquatting", "SBOM", or "did the AI hallucinate a
7
+ package".
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # Dependency Provenance & Supply-Chain Audit + Remediation Plan
13
+
14
+ **Degree of freedom: HIGH** — resolve, classify, plan. Stay **plan-only**.
15
+ Never install a suspect package to "check".
16
+
17
+ ## This skill vs neighbors
18
+
19
+ | Skill | Owns |
20
+ |---|---|
21
+ | **plan-dependency-provenance** (this) | Slopsquatting / SBOM / license plan |
22
+ | `plan-security-audit` | OWASP umbrella burndown |
23
+ | `workflow-housekeep` | Apply dependency updates after approval |
24
+ | `plan-dead-code` | Unimported deps + unreachable source (graph fact) |
25
+
26
+ ## How to reason (every plan item)
27
+
28
+ 1. **Propose** — verify, remove, pin, or license-remediate a package
29
+ 2. **Risk** — squat, unsigned install, license conflict, or lockfile roll
30
+ 3. **Keep-working** — packages that already resolve, pin, and license clean
31
+ 4. **Phase** — verify/remove → lock & pin → license → de-bloat (do not execute)
32
+
33
+ ## Worked example
34
+
35
+ > **Propose:** remove `fast-cache-utils` (no registry hit); do not `npm install` it to "check".
36
+ > **Risk:** AI-suggested name is a squat — install *is* the attack.
37
+ > **Keep-working:** `zod` resolves, MIT, maintained repo.
38
+ > **Phase:** Phase 1 — verify/remove suspect packages.
39
+
40
+ **Role:** Senior supply-chain engineer + open-source compliance specialist.
41
+
42
+ **Task:** Resolve every direct dependency against its registry, run checklist A–E,
43
+ build the provenance table, phase remediations, emit `plan-dependency-provenance.md`.
44
+ **Audit & plan only — never install suspect packages to verify.**
45
+
46
+ **Verify every package is real, safe, and licensed. Install nothing until approved.**
47
+
48
+ In a vibe-coding loop "just install the suggested package" is the default move —
49
+ and it's now a documented attack surface. The Cloud Security Alliance's 2026
50
+ research found AI coding tools recommend **non-existent package names ~20% of the
51
+ time**, and **43% of those hallucinated names recur on every run of the same prompt.**
52
+ Consistent hallucinations are predictable; predictable names are registerable.
53
+ Attackers pre-register them on npm/PyPI — **slopsquatting** — then wait for
54
+ developers (or autonomous agents) to run the exact `npm install` / `pip install`
55
+ the AI just wrote. With agents executing their own generated install commands, the
56
+ human checkpoint disappears entirely.
57
+
58
+ This skill is the **audit-and-plan** half. Execution (removal, replacement, pinning,
59
+ license remediation) is handed off after you approve each phase.
60
+
61
+ ---
62
+
63
+ ## When this fires
64
+
65
+ Trigger phrases: *"check my dependencies"*, *"is this package real"*,
66
+ *"slopsquatting"*, *"are my packages safe"*, *"audit my supply chain"*, *"license
67
+ check"*, *"generate an SBOM"*, *"did the AI invent a package"*, *"pre-launch /
68
+ pre-open-source dependency audit"*.
69
+
70
+ Do **not** fire for: routine version bumps (`/update-deps`), bundle-size trimming
71
+ (`audit-bundle-size`), or general repo cleanup (`workflow-housekeep`). This skill
72
+ owns *existence, integrity, provenance, and licensing* of dependencies.
73
+
74
+ ---
75
+
76
+ ## Why a dedicated skill
77
+
78
+ `/update-deps` assumes the packages are *legitimate* and just need upgrading.
79
+ This skill asks the prior question the AI era forces: *is this package even real,
80
+ who published it, when, and under what license?*
81
+
82
+ ---
83
+
84
+ ## The audit [HIGH freedom]
85
+
86
+ ### A · Existence & slopsquatting (the AI-era core)
87
+ - **Resolve every direct dependency** against its registry, including names you recognize — recognizing a name is not knowing its current registry state. Flag any that don't
88
+ exist, were published very recently, have near-zero downloads, or inconsistent history.
89
+ - **Typo / confusion check** — names one edit away from a popular package
90
+ (`reqests`, `lodahs`), or conflation names merging two real packages.
91
+ - **AI-origin flag** — obscure/novel deps in vibe-coded projects: guilty-until-verified.
92
+ - **Maintainer & repo signals** — no source repo, single recent maintainer: elevate.
93
+
94
+ ### B · Lockfile & integrity
95
+ - **Lockfile present and committed?** No lockfile = every install is a fresh roll.
96
+ - **Pinned vs floating** — wildcard/`^`/`latest` on security-sensitive deps.
97
+ - **Lockfile drift** — manifest and lockfile disagree.
98
+
99
+ ### C · Provenance & patch history
100
+ - **Source repo reachable**, actively maintained, not archived.
101
+ - **Known vulnerabilities** — flag deps with open advisories (recommend Socket.dev /
102
+ Phylum / `npm audit` / `pip-audit` in execution).
103
+ - **Install scripts** — postinstall reaching network/filesystem: flag for review.
104
+
105
+ ### D · Licensing
106
+ - **License inventory** — SPDX per dependency. Flag copyleft in proprietary paths,
107
+ "no license", conflicts with project license.
108
+ - **Attribution gaps** — bundled code lacking NOTICE.
109
+
110
+ ### E · Bloat & blast radius
111
+ - **Transitive depth** — direct vs total; duplicate libs.
112
+ - **Unused dependencies** — declared but never imported. Flag the *manifest
113
+ fact* here; the module-graph proof and removal belong to `plan-dead-code`
114
+ → `housekeep-dead-code`. Do not hand-verify with a grep — a dep reached
115
+ only from a config string looks unused and is not.
116
+
117
+ For each finding: package, issue, evidence, severity, remediation *direction*.
118
+
119
+ ---
120
+
121
+ ## Procedure [HIGH freedom]
122
+
123
+ 1. **Inventory.** Parse manifests + lockfiles. State ecosystems and resolution limits.
124
+ 2. **Resolve & classify.** Checklist A–E. Tag Critical / High / Med / Low.
125
+ 3. **Build the provenance table** — key artifact.
126
+ 4. **Phase the burndown.** Verify/remove suspect packages first.
127
+ 5. **Emit `plan-dependency-provenance.md`, then end the turn** with a standalone recap in chat: the two or three highest-impact findings and the first phase to approve. The file is the deliverable — write it before the recap. **Do not install anything.**
128
+
129
+ ---
130
+
131
+ ## Guardrails [LOW freedom — run exactly]
132
+
133
+ - **Plan only.** No `install`, `add`, `remove`, `update`, or lockfile edits.
134
+ - **Never install to "check".** That is exactly the attack.
135
+ - **Guilty until verified** for AI-suggested obscure deps.
136
+ - **Existence ≠ safety.** Run the full checklist.
137
+ - **License is a real finding.**
138
+ - **Recommend `create-hook`** pre-install allowlist as regression gate.
139
+ - **Minimal quoting** of manifests.
140
+
141
+ ## Self-critique before the burndown [LOW freedom — do not skip]
142
+
143
+ 1. **evidenced-not-assumed** — registry resolve (or "none found"), not vibe
144
+ 2. **plan-only** — no install/add/remove/update to "check"
145
+ 3. **phase justified** — squat/non-existent is Phase 1, not de-bloat
146
+ 4. **right-owner** — routine bumps → `/update-deps`; bundle trim → `audit-bundle-size`; unimported deps + dead source → `plan-dead-code`
147
+ 5. **no-false-safety** — exists ≠ safe; license is a finding
148
+
149
+ ---
150
+
151
+ ## Report template — `plan-dependency-provenance.md`
152
+
153
+ ```markdown
154
+ # Dependency Provenance & Supply-Chain Audit — <repo>
155
+
156
+ _Audit-only. Nothing is installed, removed, or upgraded until each phase is approved._
157
+
158
+ ## Scope
159
+ - Ecosystems: npm ☐ pip ☐ other ☐ | Direct deps: n Transitive: n
160
+ - Lockfile(s): present ☐ committed ☐ | Assumptions: …
161
+
162
+ ## Verdict
163
+ | Severity | Count | Worst case |
164
+ |----------|-------|-----------|
165
+ | Critical | n | non-existent / squat-suspect / malicious package installed |
166
+ | High | n | no lockfile, license conflict, open advisory |
167
+ | Medium | n | floating pins, abandoned upstream |
168
+ | Low | n | bloat, unused deps |
169
+
170
+ ## Provenance table (suspect + notable)
171
+ | Package | Exists? | First pub | Weekly DLs | License | Repo | Verdict |
172
+ |---------|---------|-----------|------------|---------|------|---------|
173
+ | fast-cache-utils | ❓ none found | — | — | — | none | Crit: likely hallucinated → remove |
174
+
175
+ ## Findings
176
+ | # | Package | Issue | Evidence | Sev | Direction |
177
+ |---|---------|-------|----------|-----|-----------|
178
+
179
+ ## Phased burndown
180
+ - **Phase 1 — Verify/remove suspect packages** → manual verify + removal
181
+ - **Phase 2 — Lock & pin** → `workflow-housekeep`
182
+ - **Phase 3 — License & advisories** → wire Socket.dev/Phylum/npm-audit
183
+ - **Phase 4 — De-bloat** → remove unused/duplicate deps
184
+ - **Gate** → `create-hook` pre-install allowlist
185
+
186
+ ## Execution handoff
187
+ Approve a phase to run it. Re-scan after; add the install-time gate.
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Chains with
193
+
194
+ - **Pre-launch hardening loop** — supply-chain layer alongside security spine.
195
+ - **`plan-secrets-audit`** — both feed `create-hook` regression gates.
196
+ - **Execution:** `workflow-housekeep`, `create-hook`, `/update-deps` (after verified),
197
+ `audit-security`.
198
+ - **Verify:** re-resolve tree; confirm install-time gate is live.
199
+
200
+ > Planned at high effort; executed at the default effort under the approved-plan execution rule (`approved-plan-execution.mdc`). The plan says *which* packages are suspect; the rule forbids "just installing it to see".
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: plan-docs-sync
3
+ description: >
4
+ Plan-only audit of documentation against actual code behavior. Use when
5
+ "docs drift", "sync docs with code", "audit documentation", "stale README",
6
+ "onboarding docs broken", "phantom docs", or "docs out of date".
7
+ Decisions/ADRs → docs-adr.
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # Docs Drift Audit + Sync Plan
13
+
14
+ **Degree of freedom: MIXED** — inventory globs are exact; drift judgment
15
+ is high. Stay **plan-only**. No rewrites until approved.
16
+
17
+ **Role:** Senior engineer + technical writer.
18
+
19
+ **Task:** Audit all documentation against what the code **actually does**, find every drift,
20
+ plan corrections. README, CONTRIBUTING, setup/onboarding, API docs, JSDoc/docstrings,
21
+ architecture notes, `.env.example`, CLI `--help`, changelogs. **Audit & plan only.**
22
+
23
+ ## This skill vs neighbors
24
+
25
+ | Skill | Does |
26
+ |-------|------|
27
+ | **plan-docs-sync** (this) | Plan doc corrections from code truth |
28
+ | `docs-writer` | Write/improve docs (execution) |
29
+ | `workflow-housekeep` | README refresh as part of housekeeping |
30
+ | `plan-stub-checker` | Stubs/dead UI — often surfaces phantom docs |
31
+
32
+ **Loop position:** run **last** in the six-skill plan loop. See `docs/PLAN-LOOPS.md`.
33
+
34
+ ## How to reason (every plan item)
35
+
36
+ 1. **Propose** — correction that makes the doc match code truth
37
+ 2. **Risk** — onboard fail, phantom API, or invented behavior if left stale
38
+ 3. **Keep-working** — claims already backed by path:line
39
+ 4. **Phase** — factual drift first; wording last (do not execute)
40
+
41
+ ## Worked example
42
+
43
+ > **Propose:** drop `STRIPE_WEBHOOK_SECRET` from the README setup list (absent from `.env.example` and code); document `POST /v1/webhooks/stripe` which exists undocumented.
44
+ > **Risk:** onboarding fails on a phantom env var; integrators miss a live endpoint.
45
+ > **Keep-working:** CONTRIBUTING install steps match `package.json` scripts.
46
+ > **Phase:** first sync slice — factual drift only.
47
+
48
+ ---
49
+
50
+ ## ⛔ Preservation Contract [LOW freedom — run exactly]
51
+
52
+ Read `references/preservation-contract.md`. Acknowledge in output #1.
53
+
54
+ Core guardrail: **docs describe real, current behavior — never aspirational or invented.**
55
+
56
+ ---
57
+
58
+ ## References
59
+
60
+ | File | Contents |
61
+ |------|----------|
62
+ | `references/drift-taxonomy.md` | Types, detection passes, guardrails |
63
+ | `references/output-templates.md` | Burndown, phased sync plan |
64
+
65
+ ---
66
+
67
+ ## Phase flow
68
+
69
+ ```
70
+ 1. Inventory all doc surfaces
71
+ 2. Code-as-source-of-truth pass
72
+ 3. Reverse pass (missing docs)
73
+ 4. Onboarding replay (.env.example + CLI help)
74
+ 5. Signature + cross-doc consistency + links
75
+ 6. Burndown + phased sync plan
76
+ 7. Research + guardrails (docs-as-code, CI drift checks)
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Phase 1 — Doc inventory [LOW freedom — run exactly]
82
+
83
+ ```
84
+ Glob: README.md CONTRIBUTING.md docs/**/*.md **/*README*.md
85
+ Glob: .env.example
86
+ ```
87
+
88
+ List: README, CONTRIBUTING, docs/, inline JSDoc targets, OpenAPI, CLI help, changelog.
89
+
90
+ ---
91
+
92
+ ## Phase 2–5 — Detection [HIGH freedom]
93
+
94
+ Execute all passes in `references/drift-taxonomy.md`.
95
+
96
+ **Onboarding-drift check (standout):** extract env var names + setup commands from onboarding docs; diff against `.env.example` keys and `package.json` scripts; run CLI `--help` where safe and compare.
97
+
98
+ Every drift: **doc claim** + **code truth** (path:line). Can't verify → `[NEEDS VERIFICATION]`.
99
+
100
+ ---
101
+
102
+ ## Phase 6 — Burndown + sync plan [HIGH freedom — plan only]
103
+
104
+ Template: `references/output-templates.md`
105
+
106
+ Quantify: e.g. "9 phantom env vars, 14 undocumented endpoints, 6 onboarding steps that fail".
107
+
108
+ Per drift: before/after correction + "what's still accurate here". **Plan only — no rewrites until approval.**
109
+
110
+ **Industry enhancements** (Firecrawl, current year): docs-as-code, doc-in-same-PR, CI drift vs `.env.example` + CLI help, generated API refs, `llms.txt`.
111
+
112
+ ## Self-critique before the burndown [LOW freedom — do not skip]
113
+
114
+ 1. **evidenced-not-assumed** — every drift is doc claim + code path:line (or `[NEEDS VERIFICATION]`)
115
+ 2. **plan-only** — no rewrites; deletions are proposals
116
+ 3. **phase justified** — factual drift before wording polish
117
+ 4. **right-owner** — why-we-chose-X → `docs-adr`; stubs/dead UI → `plan-stub-checker`
118
+ 5. **no-false-safety** — never document invented or aspirational behavior
119
+
120
+ ---
121
+
122
+ ## Required output (in order)
123
+
124
+ 1. Preservation-contract acknowledgment
125
+ 2. Drift taxonomy results (counts per type)
126
+ 3. Per-doc drift inventory (checklist)
127
+ 4. Burndown table (code-truth + risk)
128
+ 5. Sync + enhancement plan, phased
129
+ 6. Guardrails/tooling
130
+ 7. Research notes + citations
131
+ 8. Open questions / `[NEEDS VERIFICATION]` list
132
+
133
+ End the turn with a standalone recap in chat: the two or three highest-impact drifts and the first sync slice to approve. The report is the deliverable — write it before the recap.
134
+
135
+ ---
136
+
137
+ ## Rules [LOW freedom — run exactly]
138
+
139
+ - Plan only — do not rewrite docs until approved.
140
+ - Code is source of truth. Every drift = doc claim + code fact.
141
+ - Never document invented or aspirational behavior.
142
+ - Stale docs get corrected, not deleted. Deletions are proposals.
143
+ - Separate factual drift vs subjective wording improvement.
@@ -0,0 +1,43 @@
1
+ # Drift Taxonomy & Methodology
2
+
3
+ ## Types
4
+
5
+ | Type | Definition |
6
+ |------|------------|
7
+ | **stale** | Doc describes old behavior (renamed params, changed defaults, moved files) |
8
+ | **missing** | Shipped feature/flag/endpoint/env with no docs |
9
+ | **phantom** | Doc describes feature/route/option that no longer exists or never shipped |
10
+ | **contradictory** | Two docs disagree, or doc vs inline comment disagree |
11
+ | **onboarding-breaking** | Setup steps fail — wrong install cmd, env var mismatch, dead link, outdated version |
12
+ | **inline-rot** | Comments/docstrings lie; `@param`/`@returns` ≠ signature |
13
+ | **api-contract** | Documented request/response ≠ actual endpoint/schema |
14
+
15
+ ## Detection passes
16
+
17
+ 1. **Code-as-source-of-truth:** for each doc claim, find proving/disproving code. Cite both.
18
+ 2. **Reverse pass (missing docs):** routes, exported APIs, env vars, CLI commands, flags, config keys → zero docs?
19
+ 3. **Onboarding replay:** setup docs vs `package.json` scripts, `.env.example`, install/run, CLI `--help`.
20
+ 4. **Onboarding-drift CI pattern:** correlate doc env/setup claims against live `.env.example` + `npm run … -- --help` output.
21
+ 5. **Signature check:** JSDoc/docstring vs real function signature.
22
+ 6. **Cross-doc consistency:** README vs CONTRIBUTING vs inline vs API docs.
23
+ 7. **Link/asset check:** internal links, anchors, referenced files resolve.
24
+
25
+ ## Discovery commands
26
+
27
+ ```
28
+ Glob: **/*.md **/docs/**
29
+ Glob: **/.env.example
30
+ Read: package.json scripts
31
+ Shell: npm run <cli> -- --help (when safe)
32
+ Grep: "@param|@returns" glob "*.{ts,tsx,js,py}"
33
+ Glob: **/openapi.* **/swagger.*
34
+ ```
35
+
36
+ ## Guardrails (research-backed)
37
+
38
+ - **Docs-as-code:** doc updates in same PR as behavior change
39
+ - PR checklist: "did behavior change? update doc in this PR"
40
+ - CI: correlate onboarding docs vs `.env.example` + CLI help
41
+ - Auto-generate API reference from OpenAPI/source where possible
42
+ - Hand-written = *why*; generated = *what*
43
+ - `llms.txt` for external AI-readable docs when applicable