@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,228 @@
1
+ ---
2
+ name: enhance-web-redesign
3
+ description: >
4
+ Upgrade an existing site/app to premium quality. Use when "redesign
5
+ this app" or "upgrade UI to premium". One-page polish → enhance-web-ui.
6
+ Plan-only slop audit → plan-antislop. New UI from scratch →
7
+ design-frontend.
8
+ license: MIT
9
+ ---
10
+
11
+ > Surface router: `/uiux`. You are here: `enhance-web-redesign`. Native iOS/Android (SwiftUI / Compose, no web layer) is out of scope — use Apple HIG / Material directly.
12
+
13
+ # Redesign Skill
14
+
15
+ **Degree of freedom: MIXED.** Taste and audit judgment `[HIGH freedom]`; keep-the-stack, no-break-functionality `[LOW freedom — run exactly]`.
16
+
17
+ ## How to reason
18
+
19
+ 1. **Scan** — framework, styling, current patterns
20
+ 2. **Triage** — AI-tells first (3+ = slop; kill those)
21
+ 3. **Fix** — existing stack, Fix Priority order; no rewrite
22
+ 4. **Preserve** — flows still work; deps exist before import
23
+
24
+ ## Worked example
25
+
26
+ > **Scan:** Vite + Tailwind v4; Inter everywhere; three equal feature cards; no hover.
27
+ > **Triage:** Inter, purple hero gradient, three cards, "Welcome to…" — four tells.
28
+ > **Fix:** Geist; one accent; asymmetric feature row; hover/active; keep routes.
29
+ > **Preserve:** `npm run build` green; no new framework.
30
+
31
+ ## Self-critique before reporting
32
+
33
+ - **Same stack** — no framework or styling-library migration
34
+ - **Tells killed** — Phase 0 fingerprints actually gone, not restyled in place
35
+ - **States exist** — hover/focus/loading/empty/error present
36
+ - **Right owner** — one-page polish → `enhance-web-ui`; plan-only slop → `plan-antislop`; greenfield → `design-frontend`
37
+
38
+ ## How This Works
39
+
40
+ When applied to an existing project, follow this sequence:
41
+
42
+ 1. **Scan** — Read the codebase. Identify the framework, styling method (Tailwind, vanilla CSS, styled-components, etc.), and current design patterns.
43
+ 2. **Diagnose** — Run through the audit below. List every generic pattern, weak point, and missing state you find.
44
+ 3. **Fix** — Apply targeted upgrades working with the existing stack. Do not rewrite from scratch. Improve what's there.
45
+
46
+ ## Phase 0: 60-Second AI-Tell Triage [HIGH freedom]
47
+
48
+ Before the full audit, scan for the highest-signal "AI-generated look" fingerprints. If you spot 3+, the page reads as slop and these are the fastest wins. (Distilled from anti-slop research — see [anti-slop-ui](https://github.com/awaken7050dev/anti-slop-ui) and [taste-skill](https://github.com/Leonxlnx/taste-skill).)
49
+
50
+ - [ ] **Inter / Roboto** as the only typeface
51
+ - [ ] **Purple→blue gradient** on hero, buttons, or icons
52
+ - [ ] **Three equal feature cards** in a row
53
+ - [ ] **Pill-shaped everything** (uniform `rounded-full` badges + buttons)
54
+ - [ ] **"Welcome to [Product]" / "improve your…"** hero copy
55
+ - [ ] **Em dashes** sprinkled through every sentence of body copy
56
+ - [ ] **Lucide/Feather icons** with a rocket = "launch", shield = "security"
57
+ - [ ] **Centered-everything** symmetrical layout with no asymmetry or overlap
58
+ - [ ] **Generic `shadow-lg`** pure-black shadows on white cards
59
+ - [ ] **No hover / active / focus states** on interactive elements
60
+ - [ ] **Cream / off-white page background** as the default canvas
61
+ - [ ] **Italic accent word** in every headline
62
+ - [ ] **"01 / 02 / 03" numbered or monospace eyebrow labels** above every section
63
+
64
+ Kill these first, then run the full audit.
65
+
66
+ ## Design Audit [HIGH freedom]
67
+
68
+ ### Typography
69
+
70
+ Check for these problems and fix them:
71
+
72
+ - **Browser default fonts or Inter everywhere.** Replace with a font that has character. Good options: `Geist`, `Outfit`, `Cabinet Grotesk`, `Satoshi`. For editorial/creative projects, pair a serif header with a sans-serif body.
73
+ - **Headlines lack presence.** Increase size for display text, tighten letter-spacing, reduce line-height. Headlines should feel heavy and intentional.
74
+ - **Body text too wide.** Limit paragraph width to roughly 65 characters. Increase line-height for readability.
75
+ - **Only Regular (400) and Bold (700) weights used.** Introduce Medium (500) and SemiBold (600) for more subtle hierarchy.
76
+ - **Numbers in proportional font.** Use a monospace font or enable tabular figures (`font-variant-numeric: tabular-nums`) for data-heavy interfaces.
77
+ - **Missing letter-spacing adjustments.** Use negative tracking for large headers, positive tracking for small caps or labels.
78
+ - **All-caps subheaders everywhere.** Try lowercase italics, sentence case, or small-caps instead.
79
+ - **Orphaned words.** Single words sitting alone on the last line. Fix with `text-wrap: balance` or `text-wrap: pretty`.
80
+
81
+ ### Color and Surfaces
82
+
83
+ - **Pure `#000000` background.** Replace with off-black, dark charcoal, or tinted dark (`#0a0a0a`, `#121212`, or a dark navy).
84
+ - **Oversaturated accent colors.** Keep saturation below 80%. Desaturate accents so they blend with neutrals instead of screaming.
85
+ - **More than one accent color.** Pick one. Remove the rest. Consistency beats variety.
86
+ - **Mixing warm and cool grays.** Stick to one gray family. Tint all grays with a consistent hue (warm or cool, not both).
87
+ - **Purple/blue "AI gradient" aesthetic.** This is the most common AI design fingerprint. Replace with neutral bases and a single, considered accent.
88
+ - **Generic `box-shadow`.** Tint shadows to match the background hue. Use colored shadows (e.g., dark blue shadow on a blue background) instead of pure black at low opacity.
89
+ - **Flat design with zero texture.** Add subtle noise, grain, or micro-patterns to backgrounds. Pure flat vectors feel sterile.
90
+ - **Perfectly even gradients.** Break the uniformity with radial gradients, noise overlays, or mesh gradients instead of standard linear 45-degree fades.
91
+ - **Inconsistent lighting direction.** Audit all shadows to ensure they suggest a single, consistent light source.
92
+ - **Random dark sections in a light mode page (or vice versa).** A single dark-background section breaking an otherwise light page looks like a copy-paste accident. Either commit to a full dark mode or keep a consistent background tone throughout. If contrast is needed, use a slightly darker shade of the same palette — not a sudden jump to `#111` in the middle of a cream page.
93
+ - **Empty, flat sections with no visual depth.** Sections that are just text on a plain background feel unfinished. Add high-quality background imagery (blurred, overlaid, or masked), subtle patterns, or ambient gradients. Use reliable placeholder sources like `https://picsum.photos/seed/{name}/1920/1080` when real assets are not available. Experiment with background images behind hero sections, feature blocks, or CTAs — even a subtle full-width photo at low opacity adds presence.
94
+
95
+ ### Layout
96
+
97
+ - **Everything centered and symmetrical.** Break symmetry with offset margins, mixed aspect ratios, or left-aligned headers over centered content.
98
+ - **Three equal card columns as feature row.** This is the most generic AI layout. Replace with a 2-column zig-zag, asymmetric grid, horizontal scroll, or masonry layout.
99
+ - **Using `height: 100vh` for full-screen sections.** Replace with `min-height: 100dvh` to prevent layout jumping on mobile browsers (iOS Safari viewport bug).
100
+ - **Complex flexbox percentage math.** Replace with CSS Grid for reliable multi-column structures.
101
+ - **No max-width container.** Add a container constraint (around 1200-1440px) with auto margins so content doesn't stretch edge-to-edge on wide screens.
102
+ - **Cards of equal height forced by flexbox.** Allow variable heights or use masonry when content varies in length.
103
+ - **Uniform border-radius on everything.** Vary the radius: tighter on inner elements, softer on containers.
104
+ - **No overlap or depth.** Elements sit flat next to each other. Use negative margins to create layering and visual depth.
105
+ - **Symmetrical vertical padding.** Top and bottom padding are always identical. Adjust optically — bottom padding often needs to be slightly larger.
106
+ - **Dashboard always has a left sidebar.** Try top navigation, a floating command menu, or a collapsible panel instead.
107
+ - **Missing whitespace.** Double the spacing. Let the design breathe. Dense layouts work for data dashboards, not for marketing pages.
108
+ - **Buttons not bottom-aligned in card groups.** When cards have different content lengths, CTAs end up at random heights. Pin buttons to the bottom of each card so they form a clean horizontal line regardless of content above.
109
+ - **Feature lists starting at different vertical positions.** In pricing tables or comparison cards, the list of features should start at the same Y position across all columns. Use consistent spacing above the list or fixed-height title/price blocks.
110
+ - **Inconsistent vertical rhythm in side-by-side elements.** When placing cards, columns, or panels next to each other, align shared elements (titles, descriptions, prices, buttons) across all items. Misaligned baselines make the layout look broken.
111
+ - **Mathematical alignment that looks optically wrong.** Centering by the math doesn't always look centered to the eye. Icons next to text, play buttons in circles, or text in buttons often need 1-2px optical adjustments to feel right.
112
+
113
+ ### Interactivity and States
114
+
115
+ - **No hover states on buttons.** Add background shift, slight scale, or translate on hover.
116
+ - **No active/pressed feedback.** Add a subtle `scale(0.98)` or `translateY(1px)` on press to simulate a physical click.
117
+ - **Instant transitions with zero duration.** Add smooth transitions (200-300ms) to all interactive elements.
118
+ - **Missing focus ring.** Ensure visible focus indicators for keyboard navigation. This is an accessibility requirement, not optional.
119
+ - **No loading states.** Replace generic circular spinners with skeleton loaders that match the layout shape.
120
+ - **No empty states.** An empty dashboard showing nothing is a missed opportunity. Design a composed "getting started" view.
121
+ - **No error states.** Add clear, inline error messages for forms. Do not use `window.alert()`.
122
+ - **Dead links.** Buttons that link to `#`. Either link to real destinations or visually disable them.
123
+ - **No indication of current page in navigation.** Style the active nav link differently so users know where they are.
124
+ - **Scroll jumping.** Anchor clicks jump instantly. Add `scroll-behavior: smooth`.
125
+ - **Animations using `top`, `left`, `width`, `height`.** Switch to `transform` and `opacity` for GPU-accelerated, smooth animation.
126
+
127
+ ### Content
128
+
129
+ - **Generic names like "John Doe" or "Jane Smith".** Use diverse, realistic-sounding names.
130
+ - **Fake round numbers like `99.99%`, `50%`, `$100.00`.** Use real figures where the repo or brief has them; otherwise label sample values as mock (`<!-- mock -->`) rather than inventing precise-looking ones (same rule as `enhance-web-landing` 4.9).
131
+ - **Placeholder company names like "Acme Corp", "Nexus", "SmartFlow".** Invent contextual, believable brand names.
132
+ - **AI copywriting clichés.** "Unleash", "Next-Gen", "Game-changer", "Tapestry", "In the world of…", "Welcome to [Product]" read as generated. Write plain, specific copy that names what the product does.
133
+ - **Exclamation marks in success messages.** Remove them. Be confident, not loud.
134
+ - **"Oops!" error messages.** Be direct: "Connection failed. Please try again."
135
+ - **Passive voice.** Use active voice: "We couldn't save your changes" instead of "Mistakes were made."
136
+ - **All blog post dates identical.** Randomize dates to appear real.
137
+ - **Same avatar image for multiple users.** Use unique assets for every distinct person.
138
+ - **Lorem Ipsum.** Never use placeholder latin text. Write real draft copy.
139
+ - **Title Case On Every Header.** Use sentence case instead.
140
+
141
+ ### Component Patterns
142
+
143
+ - **Generic card look (border + shadow + white background).** Remove the border, or use only background color, or use only spacing. Cards should exist only when elevation communicates hierarchy.
144
+ - **Always one filled button + one ghost button.** Add text links or tertiary styles to reduce visual noise.
145
+ - **Pill-shaped "New" and "Beta" badges.** Try square badges, flags, or plain text labels.
146
+ - **Accordion FAQ sections.** Use a side-by-side list, searchable help, or inline progressive disclosure.
147
+ - **3-card carousel testimonials with dots.** Replace with a masonry wall, embedded social posts, or a single rotating quote.
148
+ - **Pricing table with 3 towers.** Highlight the recommended tier with color and emphasis, not just extra height.
149
+ - **Modals for everything.** Use inline editing, slide-over panels, or expandable sections instead of popups for simple actions.
150
+ - **Avatar circles exclusively.** Try squircles or rounded squares for a less generic look.
151
+ - **Light/dark toggle always a sun/moon switch.** Use a dropdown, system preference detection, or integrate it into settings.
152
+ - **Footer link farm with 4 columns.** Simplify. Focus on main navigational paths and legally required links.
153
+
154
+ ### Iconography
155
+
156
+ - **Lucide or Feather icons exclusively.** These are the "default" AI icon choice. Use Phosphor, Heroicons, or a custom set for differentiation.
157
+ - **Rocketship for "Launch", shield for "Security".** Replace cliche metaphors with less obvious icons (bolt, fingerprint, spark, vault).
158
+ - **Inconsistent stroke widths across icons.** Audit all icons and standardize to one stroke weight.
159
+ - **Missing favicon.** Always include a branded favicon.
160
+ - **Stock "diverse team" photos.** Use real team photos, candid shots, or a consistent illustration style instead of uncanny stock imagery.
161
+
162
+ ### Code Quality
163
+
164
+ - **Div soup.** Use semantic HTML: `<nav>`, `<main>`, `<article>`, `<aside>`, `<section>`.
165
+ - **Inline styles mixed with CSS classes.** Move all styling to the project's styling system.
166
+ - **Hardcoded pixel widths.** Use relative units (`%`, `rem`, `em`, `max-width`) for flexible layouts.
167
+ - **Missing alt text on images.** Describe image content for screen readers. Never leave `alt=""` or `alt="image"` on meaningful images.
168
+ - **Arbitrary z-index values like `9999`.** Establish a clean z-index scale in the theme/variables.
169
+ - **Commented-out dead code.** Remove all debug artifacts before shipping.
170
+ - **Import hallucinations.** Check that every import actually exists in `package.json` or the project dependencies.
171
+ - **Missing meta tags.** Add proper `<title>`, `description`, `og:image`, and social sharing meta tags.
172
+
173
+ ### Strategic Omissions (What AI Typically Forgets)
174
+
175
+ - **No legal links.** Add privacy policy and terms of service links in the footer.
176
+ - **No "back" navigation.** Dead ends in user flows. Every page needs a way back.
177
+ - **No custom 404 page.** Design a helpful, branded "page not found" experience.
178
+ - **No form validation.** Add client-side validation for emails, required fields, and format checks.
179
+ - **No "skip to content" link.** Essential for keyboard users. Add a hidden skip-link.
180
+ - **No cookie consent.** If required by jurisdiction, add a compliant consent banner.
181
+
182
+ ## Upgrade Techniques [HIGH freedom]
183
+
184
+ When upgrading a project, pull from these high-impact techniques to replace generic patterns:
185
+
186
+ ### Typography Upgrades
187
+ - **Variable font animation.** Interpolate weight or width on scroll or hover for text that feels alive.
188
+ - **Outlined-to-fill transitions.** Text starts as a stroke outline and fills with color on scroll entry or interaction.
189
+ - **Text mask reveals.** Large typography acting as a window to video or animated imagery behind it.
190
+
191
+ ### Layout Upgrades
192
+ - **Broken grid / asymmetry.** Elements that deliberately ignore column structure — overlapping, bleeding off-screen, or offset with calculated randomness.
193
+ - **Whitespace maximization.** Aggressive use of negative space to force focus on a single element.
194
+ - **Parallax card stacks.** Sections that stick and physically stack over each other during scroll.
195
+ - **Split-screen scroll.** Two halves of the screen sliding in opposite directions.
196
+
197
+ ### Motion Upgrades
198
+ - **Smooth scroll with inertia.** Decouple scrolling from browser defaults for a heavier, cinematic feel.
199
+ - **Staggered entry.** Elements cascade in with slight delays, combining Y-axis translation with opacity fade. Never mount everything at once.
200
+ - **Spring physics.** Replace linear easing with spring-based motion for a natural, weighty feel on all interactive elements.
201
+ - **Scroll-driven reveals.** Content entering through expanding masks, wipes, or draw-on SVG paths tied to scroll progress.
202
+
203
+ ### Surface Upgrades
204
+ - **True glassmorphism.** Go beyond `backdrop-filter: blur`. Add a 1px inner border and a subtle inner shadow to simulate edge refraction.
205
+ - **Spotlight borders.** Card borders that illuminate dynamically under the cursor.
206
+ - **Grain and noise overlays.** A fixed, pointer-events-none overlay with subtle noise to break digital flatness.
207
+ - **Colored, tinted shadows.** Shadows that carry the hue of the background rather than using generic black.
208
+
209
+ ## Fix Priority [HIGH freedom]
210
+
211
+ Apply changes in this order for maximum visual impact with minimum risk:
212
+
213
+ 1. **Font swap** — biggest instant improvement, lowest risk
214
+ 2. **Color palette cleanup** — remove clashing or oversaturated colors
215
+ 3. **Hover and active states** — makes the interface feel alive
216
+ 4. **Layout and spacing** — proper grid, max-width, consistent padding
217
+ 5. **Replace generic components** — swap cliche patterns for modern alternatives
218
+ 6. **Add loading, empty, and error states** — makes it feel finished
219
+ 7. **Polish typography scale and spacing** — the premium final touch
220
+
221
+ ## Rules [LOW freedom — run exactly]
222
+
223
+ - Work with the existing tech stack. Do not migrate frameworks or styling libraries.
224
+ - Do not break existing functionality: keep routes, handlers, and states; run the repo's build and checks before reporting.
225
+ - Before importing any new library, check the project's dependency file first.
226
+ - If the project uses Tailwind, check the version (v3 vs v4) before modifying config.
227
+ - If the project has no framework, use vanilla CSS.
228
+ - Keep changes reviewable and focused. Small, targeted improvements over big rewrites.
@@ -0,0 +1,276 @@
1
+ ---
2
+ name: enhance-web-seo
3
+ description: >
4
+ Audit and fix SEO for a web app. Use when "improve SEO", "SEO audit", "add
5
+ meta tags", "add structured data", "sitemap", "canonical URLs", "Open
6
+ Graph", "Google indexing", "rich results", or "why is my site not ranking".
7
+ license: MIT
8
+ ---
9
+
10
+ # enhance-web-seo — SEO Audit & Implementation
11
+
12
+ **Degree of freedom: MIXED.** Title/snippet judgment `[HIGH freedom]`; live probes, robots/sitemap, and re-measure `[LOW freedom — run exactly]`.
13
+
14
+ **Google does not rank pages it cannot read, understand, or trust.** This skill
15
+ finds every gap between your app and how search engines see it, then fixes them
16
+ in order of impact.
17
+
18
+ Before browser work, read `protocol-browser-anti-stall` and apply it.
19
+
20
+ ## How to reason
21
+
22
+ 1. **Detect** — metadata API, robots, sitemap, generator
23
+ 2. **Measure** — live title, OG, JSON-LD, headings, LCP/CLS
24
+ 3. **Fix** — impact order: title → OG → robots/sitemap → JSON-LD → CWV
25
+ 4. **Re-measure** — same probes on each changed route
26
+
27
+ ## Worked example
28
+
29
+ > **Detect:** Next.js App Router; root `metadata` only; no `sitemap.ts`; `/robots.txt` 404.
30
+ > **Measure:** product pages inherit the home title; no canonical; no JSON-LD; LCP 3.1s.
31
+ > **Fix:** `generateMetadata` per product; `app/sitemap.ts` + robots; Product JSON-LD; image dimensions.
32
+ > **Re-measure:** unique titles; OG image resolves; sitemap lists products; LCP < 2.5s.
33
+
34
+ ## Self-critique before reporting
35
+
36
+ - **Live, not source-only** — titles/OG/JSON-LD read from the rendered head
37
+ - **Unique per page** — no inherited home title on inner routes
38
+ - **Indexable** — robots/sitemap exist; no accidental `Disallow: /` or noindex
39
+ - **Right owner** — JS/LCP budget → `audit-bundle-size`; AEO citations → `plan-aeo-readiness`
40
+
41
+ ---
42
+
43
+ ## Phase 0: Detect the stack [HIGH freedom]
44
+
45
+ ```
46
+ package.json → Next.js Metadata API, remix-utils/seo, @vueuse/head, etc.
47
+ src/app/layout.tsx → existing metadata export (Next.js App Router)
48
+ src/app/head.tsx → legacy Head component
49
+ public/robots.txt → existing robots config
50
+ public/sitemap.xml → existing sitemap
51
+ ```
52
+
53
+ Also check if a sitemap generator is configured (`next-sitemap`, `astro-sitemap`,
54
+ SvelteKit's `@sveltejs/adapter-static` sitemap, etc.).
55
+
56
+ ---
57
+
58
+ ## Phase 1: Live page audit (Playwright) [LOW freedom — run exactly]
59
+
60
+ For every public-facing route, run the following:
61
+
62
+ ### 1a. Navigate and capture head
63
+
64
+ ```javascript
65
+ // eval after goto
66
+ const seo = await page.evaluate(() => ({
67
+ title: document.title,
68
+ description: document.querySelector('meta[name="description"]')?.content,
69
+ canonical: document.querySelector('link[rel="canonical"]')?.href,
70
+ og_title: document.querySelector('meta[property="og:title"]')?.content,
71
+ og_description: document.querySelector('meta[property="og:description"]')?.content,
72
+ og_image: document.querySelector('meta[property="og:image"]')?.content,
73
+ og_url: document.querySelector('meta[property="og:url"]')?.content,
74
+ twitter_card: document.querySelector('meta[name="twitter:card"]')?.content,
75
+ robots: document.querySelector('meta[name="robots"]')?.content,
76
+ jsonld: [...document.querySelectorAll('script[type="application/ld+json"]')]
77
+ .map(s => s.textContent),
78
+ }));
79
+ ```
80
+
81
+ ### 1b. Heading hierarchy
82
+
83
+ ```javascript
84
+ const headings = await page.evaluate(() =>
85
+ [...document.querySelectorAll('h1,h2,h3,h4,h5,h6')]
86
+ .map(h => ({ tag: h.tagName, text: h.textContent.trim().slice(0, 60) }))
87
+ );
88
+ ```
89
+
90
+ Rules: exactly one `<h1>` per page; `<h2>` never skips to `<h4>` without `<h3>`.
91
+
92
+ ### 1c. Image alt text
93
+
94
+ ```javascript
95
+ const images = await page.evaluate(() =>
96
+ [...document.querySelectorAll('img')]
97
+ .filter(img => !img.alt || img.alt.trim() === '')
98
+ .map(img => img.src.slice(-60))
99
+ );
100
+ ```
101
+
102
+ ### 1d. Core Web Vitals
103
+
104
+ CWV (LCP, INP, CLS) is a ranking input. Measure field p75 via
105
+ CrUX/PSI. Do **not** fix CWV here — hand off:
106
+ - LCP / INP / CLS root cause → `audit-performance` §Loading Priority & Speculation
107
+ - JS weight → `audit-bundle-size`
108
+ - Instant navigations → `enhance-web-instant-nav`
109
+ Record before/after p75 in this skill's re-measure step.
110
+
111
+ ---
112
+
113
+ ## Phase 2: Technical SEO checks [HIGH freedom]
114
+
115
+ ### 2a. robots.txt
116
+
117
+ `goto` to `/robots.txt`. Check:
118
+ - File exists and returns 200 (not 404)
119
+ - No `Disallow: /` unless intentional (private app)
120
+ - Sitemap URL referenced: `Sitemap: https://yourdomain.com/sitemap.xml`
121
+ - No important pages accidentally blocked
122
+
123
+ ### 2b. Sitemap
124
+
125
+ Navigate to `/sitemap.xml` or `/sitemap-index.xml`. Check:
126
+ - Exists and is valid XML
127
+ - Contains all important public routes (not just `/`)
128
+ - `<lastmod>` dates are current, not hardcoded to a past date
129
+ - No 404 or noindex pages included
130
+
131
+ ### 2c. Structured data (JSON-LD)
132
+
133
+ Validate each JSON-LD block found in Phase 1a:
134
+ - `@context: "https://schema.org"` present
135
+ - `@type` matches the page content (Article, Product, Organization, WebSite, BreadcrumbList, FAQPage, etc.)
136
+ - Required fields for the type are present (check `references/structured-data-types.md`)
137
+ - No syntax errors in the JSON
138
+
139
+ ### 2d. Canonical URLs
140
+
141
+ - Every page has a `<link rel="canonical">` pointing to its definitive URL
142
+ - No page canonicalises to a 404 or redirect
143
+ - Pagination: page 2+ should have canonical pointing to itself (not page 1)
144
+ - Duplicate content (www vs non-www, http vs https): one canonical, one redirect
145
+
146
+ ---
147
+
148
+ ## Phase 3: Research current best practices [HIGH freedom]
149
+
150
+ Follow `/research`: Context7 for the framework's metadata, sitemap, and robots API; Firecrawl for current Google guidance on CWV, structured data, and rich results, dated to now. Anchor to the framework version actually installed.
151
+
152
+ ---
153
+
154
+ ## Phase 4: Fix — ordered by impact [HIGH freedom]
155
+
156
+ ### Priority 1 — Page title and meta description (every page)
157
+
158
+ Every public page needs a unique, descriptive title (50–60 chars) and
159
+ meta description (150–160 chars).
160
+
161
+ **Next.js App Router:**
162
+ ```typescript
163
+ // app/page.tsx
164
+ export const metadata: Metadata = {
165
+ title: 'Specific Page Title — Brand Name',
166
+ description: 'One or two sentences that describe this page for someone scanning search results.',
167
+ };
168
+ ```
169
+
170
+ **Next.js dynamic routes:**
171
+ ```typescript
172
+ export async function generateMetadata({ params }): Promise<Metadata> {
173
+ const item = await fetchItem(params.id);
174
+ return {
175
+ title: `${item.name} — Brand Name`,
176
+ description: item.summary,
177
+ openGraph: { title: item.name, description: item.summary, images: [item.coverImage] },
178
+ };
179
+ }
180
+ ```
181
+
182
+ ### Priority 2 — Open Graph and Twitter Card
183
+
184
+ Required for social sharing previews. Every page needs at minimum:
185
+ ```typescript
186
+ openGraph: {
187
+ title: 'Page Title',
188
+ description: 'Page description',
189
+ url: 'https://yourdomain.com/page',
190
+ siteName: 'Brand Name',
191
+ images: [{ url: '/og-image.png', width: 1200, height: 630 }],
192
+ type: 'website', // or 'article' for blog posts
193
+ },
194
+ twitter: {
195
+ card: 'summary_large_image',
196
+ title: 'Page Title',
197
+ description: 'Page description',
198
+ images: ['/og-image.png'],
199
+ },
200
+ ```
201
+
202
+ ### Priority 3 — robots.txt and sitemap
203
+
204
+ **robots.txt** (static file at `public/robots.txt`):
205
+ ```
206
+ User-agent: *
207
+ Allow: /
208
+
209
+ Sitemap: https://yourdomain.com/sitemap.xml
210
+ ```
211
+
212
+ **Sitemap** — use the framework's built-in generator where available:
213
+ - Next.js App Router: `app/sitemap.ts` returning `MetadataRoute.Sitemap`
214
+ - SvelteKit: `+server.ts` returning XML response
215
+ - Remix: `sitemap[.]xml.ts` resource route
216
+
217
+ ### Priority 4 — Structured data (JSON-LD)
218
+
219
+ Add to the relevant page layout:
220
+ ```typescript
221
+ // For a website home page
222
+ const jsonLd = {
223
+ '@context': 'https://schema.org',
224
+ '@type': 'WebSite',
225
+ name: 'Brand Name',
226
+ url: 'https://yourdomain.com',
227
+ potentialAction: {
228
+ '@type': 'SearchAction',
229
+ target: 'https://yourdomain.com/search?q={search_term_string}',
230
+ 'query-input': 'required name=search_term_string',
231
+ },
232
+ };
233
+ // Inject via: <script type="application/ld+json">{JSON.stringify(jsonLd)}</script>
234
+ ```
235
+
236
+ ### Priority 5 — Core Web Vitals fixes
237
+
238
+ See `audit-bundle-size` for JS bundle → LCP fixes.
239
+ For CLS: ensure images have explicit `width`/`height`, fonts use `font-display: swap`,
240
+ ads/embeds have reserved space.
241
+
242
+ ---
243
+
244
+ ## Phase 5: Verify with Playwright [LOW freedom — do not skip]
245
+
246
+ After fixes, re-run Phase 1 checks on each modified page. Confirm:
247
+ - `document.title` and meta description match the intent
248
+ - OG tags present and well-formed
249
+ - JSON-LD valid (no JSON.parse errors)
250
+ - LCP improved or within threshold
251
+ - No new console errors introduced
252
+
253
+ ---
254
+
255
+ ## SEO audit checklist
256
+
257
+ ```
258
+ Per page:
259
+ - [ ] Unique descriptive title (50–60 chars)
260
+ - [ ] Meta description (150–160 chars), not cut off
261
+ - [ ] Exactly one <h1>
262
+ - [ ] Heading hierarchy correct (no skipped levels)
263
+ - [ ] All images have alt text
264
+ - [ ] Canonical URL present and correct
265
+ - [ ] OG title, description, image
266
+ - [ ] Twitter card meta
267
+ - [ ] JSON-LD structured data where relevant
268
+
269
+ Site-wide:
270
+ - [ ] robots.txt exists and correct
271
+ - [ ] Sitemap exists and up to date
272
+ - [ ] No important pages noindexed accidentally
273
+ - [ ] HTTPS enforced, no mixed content
274
+ - [ ] LCP < 2.5 s
275
+ - [ ] CLS < 0.1
276
+ ```