claudeinone-cli 1.0.2 → 1.0.3

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 (428) hide show
  1. package/kit/.claude/.ck.json +9 -0
  2. package/kit/.claude/.ckignore +12 -0
  3. package/kit/.claude/agents/accessibility-auditor.md +46 -0
  4. package/kit/.claude/agents/api-designer.md +43 -0
  5. package/kit/.claude/agents/backend-developer.md +54 -0
  6. package/kit/.claude/agents/brainstormer.md +33 -0
  7. package/kit/.claude/agents/campaign-manager.md +36 -0
  8. package/kit/.claude/agents/code-reviewer.md +39 -0
  9. package/kit/.claude/agents/content-creator.md +38 -0
  10. package/kit/.claude/agents/copywriter.md +42 -0
  11. package/kit/.claude/agents/database-admin.md +37 -0
  12. package/kit/.claude/agents/debugger.md +46 -0
  13. package/kit/.claude/agents/devops-engineer.md +41 -0
  14. package/kit/.claude/agents/docs-manager.md +33 -0
  15. package/kit/.claude/agents/email-wizard.md +40 -0
  16. package/kit/.claude/agents/frontend-developer.md +52 -0
  17. package/kit/.claude/agents/fullstack-developer.md +55 -0
  18. package/kit/.claude/agents/git-manager.md +40 -0
  19. package/kit/.claude/agents/i18n-specialist.md +46 -0
  20. package/kit/.claude/agents/integration-specialist.md +48 -0
  21. package/kit/.claude/agents/journal-writer.md +39 -0
  22. package/kit/.claude/agents/mcp-manager.md +57 -0
  23. package/kit/.claude/agents/mobile-developer.md +38 -0
  24. package/kit/.claude/agents/performance-optimizer.md +38 -0
  25. package/kit/.claude/agents/planner.md +56 -0
  26. package/kit/.claude/agents/project-manager.md +34 -0
  27. package/kit/.claude/agents/refactorer.md +43 -0
  28. package/kit/.claude/agents/researcher.md +45 -0
  29. package/kit/.claude/agents/risk-analyst.md +33 -0
  30. package/kit/.claude/agents/scalability-consultant.md +39 -0
  31. package/kit/.claude/agents/scout.md +25 -0
  32. package/kit/.claude/agents/security-auditor.md +42 -0
  33. package/kit/.claude/agents/seo-specialist.md +44 -0
  34. package/kit/.claude/agents/skill-creator.md +64 -0
  35. package/kit/.claude/agents/social-media-manager.md +35 -0
  36. package/kit/.claude/agents/systems-designer.md +35 -0
  37. package/kit/.claude/agents/technology-strategist.md +43 -0
  38. package/kit/.claude/agents/tester.md +40 -0
  39. package/kit/.claude/agents/ui-ux-designer.md +40 -0
  40. package/kit/.claude/commands/co/ask.md +29 -0
  41. package/kit/.claude/commands/co/bootstrap-auto-fast.md +28 -0
  42. package/kit/.claude/commands/co/bootstrap-auto-parallel.md +29 -0
  43. package/kit/.claude/commands/co/bootstrap-auto.md +30 -0
  44. package/kit/.claude/commands/co/bootstrap.md +31 -0
  45. package/kit/.claude/commands/co/brainstorm.md +27 -0
  46. package/kit/.claude/commands/co/campaign.md +28 -0
  47. package/kit/.claude/commands/co/changelog.md +25 -0
  48. package/kit/.claude/commands/co/checkpoint.md +25 -0
  49. package/kit/.claude/commands/co/ci.md +26 -0
  50. package/kit/.claude/commands/co/ck-help.md +24 -0
  51. package/kit/.claude/commands/co/coding-level.md +24 -0
  52. package/kit/.claude/commands/co/content-cro.md +26 -0
  53. package/kit/.claude/commands/co/content-enhance.md +26 -0
  54. package/kit/.claude/commands/co/content-fast.md +24 -0
  55. package/kit/.claude/commands/co/content-good.md +26 -0
  56. package/kit/.claude/commands/co/cook.md +33 -0
  57. package/kit/.claude/commands/co/debug.md +26 -0
  58. package/kit/.claude/commands/co/deploy.md +25 -0
  59. package/kit/.claude/commands/co/design-3d.md +27 -0
  60. package/kit/.claude/commands/co/design-describe.md +25 -0
  61. package/kit/.claude/commands/co/design-fast.md +25 -0
  62. package/kit/.claude/commands/co/design-good.md +28 -0
  63. package/kit/.claude/commands/co/design-screenshot.md +26 -0
  64. package/kit/.claude/commands/co/design-video.md +26 -0
  65. package/kit/.claude/commands/co/docker.md +24 -0
  66. package/kit/.claude/commands/co/docs-api.md +25 -0
  67. package/kit/.claude/commands/co/docs-init.md +26 -0
  68. package/kit/.claude/commands/co/docs-readme.md +24 -0
  69. package/kit/.claude/commands/co/docs-summarize.md +25 -0
  70. package/kit/.claude/commands/co/docs-update.md +25 -0
  71. package/kit/.claude/commands/co/env-check.md +25 -0
  72. package/kit/.claude/commands/co/fix-ci.md +29 -0
  73. package/kit/.claude/commands/co/fix-fast.md +28 -0
  74. package/kit/.claude/commands/co/fix-hard.md +33 -0
  75. package/kit/.claude/commands/co/fix-logs.md +28 -0
  76. package/kit/.claude/commands/co/fix-types.md +28 -0
  77. package/kit/.claude/commands/co/fix-ui.md +28 -0
  78. package/kit/.claude/commands/co/fix.md +27 -0
  79. package/kit/.claude/commands/co/git-cm.md +26 -0
  80. package/kit/.claude/commands/co/git-cp.md +26 -0
  81. package/kit/.claude/commands/co/git-pr.md +26 -0
  82. package/kit/.claude/commands/co/index.md +24 -0
  83. package/kit/.claude/commands/co/integrate-polar.md +29 -0
  84. package/kit/.claude/commands/co/integrate-sepay.md +29 -0
  85. package/kit/.claude/commands/co/journal.md +27 -0
  86. package/kit/.claude/commands/co/k8s.md +24 -0
  87. package/kit/.claude/commands/co/kanban.md +25 -0
  88. package/kit/.claude/commands/co/lint-fix.md +24 -0
  89. package/kit/.claude/commands/co/load.md +25 -0
  90. package/kit/.claude/commands/co/migrate.md +28 -0
  91. package/kit/.claude/commands/co/mock.md +26 -0
  92. package/kit/.claude/commands/co/mode.md +24 -0
  93. package/kit/.claude/commands/co/monitor.md +25 -0
  94. package/kit/.claude/commands/co/new-feature.md +27 -0
  95. package/kit/.claude/commands/co/optimize.md +26 -0
  96. package/kit/.claude/commands/co/plan-archive.md +24 -0
  97. package/kit/.claude/commands/co/plan-ci.md +28 -0
  98. package/kit/.claude/commands/co/plan-cro.md +27 -0
  99. package/kit/.claude/commands/co/plan-fast.md +24 -0
  100. package/kit/.claude/commands/co/plan-hard.md +27 -0
  101. package/kit/.claude/commands/co/plan-parallel.md +25 -0
  102. package/kit/.claude/commands/co/plan-two.md +29 -0
  103. package/kit/.claude/commands/co/plan-validate.md +27 -0
  104. package/kit/.claude/commands/co/plan.md +27 -0
  105. package/kit/.claude/commands/co/pr.md +25 -0
  106. package/kit/.claude/commands/co/preview.md +26 -0
  107. package/kit/.claude/commands/co/refactor.md +25 -0
  108. package/kit/.claude/commands/co/release.md +25 -0
  109. package/kit/.claude/commands/co/review-a11y.md +24 -0
  110. package/kit/.claude/commands/co/review-codebase-parallel.md +27 -0
  111. package/kit/.claude/commands/co/review-codebase.md +27 -0
  112. package/kit/.claude/commands/co/review-perf.md +24 -0
  113. package/kit/.claude/commands/co/review-security.md +25 -0
  114. package/kit/.claude/commands/co/scaffold.md +25 -0
  115. package/kit/.claude/commands/co/scout.md +26 -0
  116. package/kit/.claude/commands/co/secure.md +26 -0
  117. package/kit/.claude/commands/co/seed.md +25 -0
  118. package/kit/.claude/commands/co/seo-audit.md +24 -0
  119. package/kit/.claude/commands/co/seo-keywords.md +25 -0
  120. package/kit/.claude/commands/co/skill-create.md +29 -0
  121. package/kit/.claude/commands/co/skill-fix-logs.md +28 -0
  122. package/kit/.claude/commands/co/slide-create.md +24 -0
  123. package/kit/.claude/commands/co/spawn.md +24 -0
  124. package/kit/.claude/commands/co/terraform.md +24 -0
  125. package/kit/.claude/commands/co/test-gen.md +24 -0
  126. package/kit/.claude/commands/co/test-ui.md +27 -0
  127. package/kit/.claude/commands/co/test.md +26 -0
  128. package/kit/.claude/commands/co/use-mcp.md +25 -0
  129. package/kit/.claude/commands/co/video-script.md +25 -0
  130. package/kit/.claude/commands/co/watzup.md +25 -0
  131. package/kit/.claude/commands/co/worktree.md +25 -0
  132. package/kit/.claude/commands/co/write-blog.md +25 -0
  133. package/kit/.claude/commands/co/write-copy.md +24 -0
  134. package/kit/.claude/commands/co/write-email.md +25 -0
  135. package/kit/.claude/commands/content/content-cro.md +26 -0
  136. package/kit/.claude/commands/content/content-enhance.md +26 -0
  137. package/kit/.claude/commands/content/content-fast.md +24 -0
  138. package/kit/.claude/commands/content/content-good.md +26 -0
  139. package/kit/.claude/commands/content/enhance.md +26 -0
  140. package/kit/.claude/commands/content/good.md +26 -0
  141. package/kit/.claude/commands/core/ask.md +29 -0
  142. package/kit/.claude/commands/core/bootstrap-auto-fast.md +28 -0
  143. package/kit/.claude/commands/core/bootstrap-auto-parallel.md +29 -0
  144. package/kit/.claude/commands/core/bootstrap-auto.md +30 -0
  145. package/kit/.claude/commands/core/bootstrap.md +31 -0
  146. package/kit/.claude/commands/core/ck-help.md +24 -0
  147. package/kit/.claude/commands/core/coding-level.md +24 -0
  148. package/kit/.claude/commands/core/cook.md +33 -0
  149. package/kit/.claude/commands/core/debug.md +26 -0
  150. package/kit/.claude/commands/core/journal.md +27 -0
  151. package/kit/.claude/commands/core/kanban.md +25 -0
  152. package/kit/.claude/commands/core/preview.md +26 -0
  153. package/kit/.claude/commands/core/scout.md +26 -0
  154. package/kit/.claude/commands/core/test-ui.md +27 -0
  155. package/kit/.claude/commands/core/test.md +26 -0
  156. package/kit/.claude/commands/core/use-mcp.md +25 -0
  157. package/kit/.claude/commands/core/watzup.md +25 -0
  158. package/kit/.claude/commands/core/worktree.md +25 -0
  159. package/kit/.claude/commands/design/3d.md +27 -0
  160. package/kit/.claude/commands/design/design-3d.md +27 -0
  161. package/kit/.claude/commands/design/design-describe.md +25 -0
  162. package/kit/.claude/commands/design/design-fast.md +25 -0
  163. package/kit/.claude/commands/design/design-good.md +28 -0
  164. package/kit/.claude/commands/design/design-screenshot.md +26 -0
  165. package/kit/.claude/commands/design/design-video.md +26 -0
  166. package/kit/.claude/commands/design/good.md +28 -0
  167. package/kit/.claude/commands/design/video.md +26 -0
  168. package/kit/.claude/commands/docs/docs-init.md +26 -0
  169. package/kit/.claude/commands/docs/docs-summarize.md +25 -0
  170. package/kit/.claude/commands/docs/docs-update.md +25 -0
  171. package/kit/.claude/commands/docs/init.md +26 -0
  172. package/kit/.claude/commands/docs/summarize.md +25 -0
  173. package/kit/.claude/commands/fix/ci.md +29 -0
  174. package/kit/.claude/commands/fix/fast.md +28 -0
  175. package/kit/.claude/commands/fix/fix-ci.md +29 -0
  176. package/kit/.claude/commands/fix/fix-fast.md +28 -0
  177. package/kit/.claude/commands/fix/fix-hard.md +33 -0
  178. package/kit/.claude/commands/fix/fix-logs.md +28 -0
  179. package/kit/.claude/commands/fix/fix-types.md +28 -0
  180. package/kit/.claude/commands/fix/fix-ui.md +28 -0
  181. package/kit/.claude/commands/fix/hard.md +33 -0
  182. package/kit/.claude/commands/fix/logs.md +28 -0
  183. package/kit/.claude/commands/fix/types.md +28 -0
  184. package/kit/.claude/commands/fix/ui.md +28 -0
  185. package/kit/.claude/commands/git/cp.md +26 -0
  186. package/kit/.claude/commands/git/git-cm.md +26 -0
  187. package/kit/.claude/commands/git/git-cp.md +26 -0
  188. package/kit/.claude/commands/git/git-pr.md +26 -0
  189. package/kit/.claude/commands/integrate/integrate-polar.md +29 -0
  190. package/kit/.claude/commands/integrate/integrate-sepay.md +29 -0
  191. package/kit/.claude/commands/integrate/sepay.md +29 -0
  192. package/kit/.claude/commands/plan/ci.md +28 -0
  193. package/kit/.claude/commands/plan/cro.md +27 -0
  194. package/kit/.claude/commands/plan/hard.md +27 -0
  195. package/kit/.claude/commands/plan/plan-archive.md +24 -0
  196. package/kit/.claude/commands/plan/plan-ci.md +28 -0
  197. package/kit/.claude/commands/plan/plan-cro.md +27 -0
  198. package/kit/.claude/commands/plan/plan-fast.md +24 -0
  199. package/kit/.claude/commands/plan/plan-hard.md +27 -0
  200. package/kit/.claude/commands/plan/plan-parallel.md +25 -0
  201. package/kit/.claude/commands/plan/plan-two.md +29 -0
  202. package/kit/.claude/commands/plan/plan-validate.md +27 -0
  203. package/kit/.claude/commands/plan/plan.md +27 -0
  204. package/kit/.claude/commands/plan/validate.md +27 -0
  205. package/kit/.claude/commands/skill/fix-logs.md +28 -0
  206. package/kit/.claude/commands/skill/skill-create.md +29 -0
  207. package/kit/.claude/commands/skill/skill-fix-logs.md +28 -0
  208. package/kit/.claude/settings.json +16 -0
  209. package/kit/.claude/skills/ai-anthropic.md +100 -0
  210. package/kit/.claude/skills/ai-context-engineering.md +113 -0
  211. package/kit/.claude/skills/ai-gemini.md +152 -0
  212. package/kit/.claude/skills/ai-langchain.md +93 -0
  213. package/kit/.claude/skills/ai-llamaindex.md +179 -0
  214. package/kit/.claude/skills/ai-mcp-builder.md +101 -0
  215. package/kit/.claude/skills/ai-openai.md +250 -0
  216. package/kit/.claude/skills/ai-prompt-engineering.md +173 -0
  217. package/kit/.claude/skills/ai-rag.md +91 -0
  218. package/kit/.claude/skills/ai-vectordb.md +215 -0
  219. package/kit/.claude/skills/analytics-segment.md +161 -0
  220. package/kit/.claude/skills/api-caching.md +103 -0
  221. package/kit/.claude/skills/api-documentation.md +50 -0
  222. package/kit/.claude/skills/api-graphql.md +234 -0
  223. package/kit/.claude/skills/api-openapi.md +116 -0
  224. package/kit/.claude/skills/api-pagination-filtering.md +239 -0
  225. package/kit/.claude/skills/api-rate-limiting.md +179 -0
  226. package/kit/.claude/skills/api-rest-advanced.md +50 -0
  227. package/kit/.claude/skills/api-rest.md +217 -0
  228. package/kit/.claude/skills/api-trpc.md +173 -0
  229. package/kit/.claude/skills/api-versioning.md +70 -0
  230. package/kit/.claude/skills/api-webhooks.md +226 -0
  231. package/kit/.claude/skills/arch-clean-code.md +226 -0
  232. package/kit/.claude/skills/arch-clean.md +91 -0
  233. package/kit/.claude/skills/arch-cqrs.md +229 -0
  234. package/kit/.claude/skills/arch-ddd.md +85 -0
  235. package/kit/.claude/skills/arch-event-driven.md +189 -0
  236. package/kit/.claude/skills/arch-microservices.md +80 -0
  237. package/kit/.claude/skills/arch-monorepo.md +87 -0
  238. package/kit/.claude/skills/arch-multi-tenant.md +81 -0
  239. package/kit/.claude/skills/arch-serverless.md +86 -0
  240. package/kit/.claude/skills/auth-clerk.md +97 -0
  241. package/kit/.claude/skills/auth-jwt.md +143 -0
  242. package/kit/.claude/skills/auth-lucia.md +93 -0
  243. package/kit/.claude/skills/auth-nextauth.md +446 -0
  244. package/kit/.claude/skills/auth-oauth.md +208 -0
  245. package/kit/.claude/skills/auth-oauth2.md +110 -0
  246. package/kit/.claude/skills/auth-passkeys.md +109 -0
  247. package/kit/.claude/skills/auth-session.md +88 -0
  248. package/kit/.claude/skills/backend-dotnet.md +414 -0
  249. package/kit/.claude/skills/backend-express.md +129 -0
  250. package/kit/.claude/skills/backend-fastify.md +104 -0
  251. package/kit/.claude/skills/backend-go.md +205 -0
  252. package/kit/.claude/skills/backend-graphql.md +149 -0
  253. package/kit/.claude/skills/backend-grpc.md +382 -0
  254. package/kit/.claude/skills/backend-hono.md +95 -0
  255. package/kit/.claude/skills/backend-java-spring.md +198 -0
  256. package/kit/.claude/skills/backend-nodejs-express.md +165 -0
  257. package/kit/.claude/skills/backend-nodejs.md +143 -0
  258. package/kit/.claude/skills/backend-php-laravel.md +156 -0
  259. package/kit/.claude/skills/backend-python-django.md +200 -0
  260. package/kit/.claude/skills/backend-python-fastapi.md +169 -0
  261. package/kit/.claude/skills/backend-ruby-rails.md +190 -0
  262. package/kit/.claude/skills/backend-rust.md +182 -0
  263. package/kit/.claude/skills/backend-websockets.md +392 -0
  264. package/kit/.claude/skills/cache-redis.md +195 -0
  265. package/kit/.claude/skills/caching-strategies.md +100 -0
  266. package/kit/.claude/skills/cloud-aws.md +165 -0
  267. package/kit/.claude/skills/cloud-azure.md +187 -0
  268. package/kit/.claude/skills/cloud-cloudflare.md +74 -0
  269. package/kit/.claude/skills/cloud-fly.md +94 -0
  270. package/kit/.claude/skills/cloud-gcp.md +160 -0
  271. package/kit/.claude/skills/cloud-railway.md +92 -0
  272. package/kit/.claude/skills/cloud-render.md +70 -0
  273. package/kit/.claude/skills/cloud-serverless.md +68 -0
  274. package/kit/.claude/skills/cloud-vercel.md +76 -0
  275. package/kit/.claude/skills/component-patterns.md +50 -0
  276. package/kit/.claude/skills/content-management.md +197 -0
  277. package/kit/.claude/skills/cors-security.md +50 -0
  278. package/kit/.claude/skills/data-csv-excel.md +210 -0
  279. package/kit/.claude/skills/database-optimization.md +196 -0
  280. package/kit/.claude/skills/databases-transactions.md +68 -0
  281. package/kit/.claude/skills/db-cassandra.md +89 -0
  282. package/kit/.claude/skills/db-drizzle.md +363 -0
  283. package/kit/.claude/skills/db-dynamodb.md +83 -0
  284. package/kit/.claude/skills/db-elasticsearch.md +105 -0
  285. package/kit/.claude/skills/db-firebase-firestore.md +191 -0
  286. package/kit/.claude/skills/db-mongodb.md +198 -0
  287. package/kit/.claude/skills/db-mysql.md +50 -0
  288. package/kit/.claude/skills/db-neon.md +72 -0
  289. package/kit/.claude/skills/db-planetscale.md +76 -0
  290. package/kit/.claude/skills/db-postgresql.md +50 -0
  291. package/kit/.claude/skills/db-prisma.md +414 -0
  292. package/kit/.claude/skills/db-redis.md +50 -0
  293. package/kit/.claude/skills/db-sqlite.md +149 -0
  294. package/kit/.claude/skills/db-supabase.md +445 -0
  295. package/kit/.claude/skills/devops-ci-cd.md +271 -0
  296. package/kit/.claude/skills/devops-database-backup.md +77 -0
  297. package/kit/.claude/skills/devops-docker.md +93 -0
  298. package/kit/.claude/skills/devops-github-actions.md +82 -0
  299. package/kit/.claude/skills/devops-health-checks.md +50 -0
  300. package/kit/.claude/skills/devops-kubernetes.md +109 -0
  301. package/kit/.claude/skills/devops-logging.md +163 -0
  302. package/kit/.claude/skills/devops-monitoring.md +203 -0
  303. package/kit/.claude/skills/devops-pulumi.md +94 -0
  304. package/kit/.claude/skills/devops-secrets.md +166 -0
  305. package/kit/.claude/skills/devops-terraform.md +226 -0
  306. package/kit/.claude/skills/error-boundaries.md +84 -0
  307. package/kit/.claude/skills/file-storage.md +50 -0
  308. package/kit/.claude/skills/frontend-angular.md +104 -0
  309. package/kit/.claude/skills/frontend-astro.md +94 -0
  310. package/kit/.claude/skills/frontend-bundle-analysis.md +147 -0
  311. package/kit/.claude/skills/frontend-forms.md +134 -0
  312. package/kit/.claude/skills/frontend-htmx.md +86 -0
  313. package/kit/.claude/skills/frontend-nextjs.md +188 -0
  314. package/kit/.claude/skills/frontend-pwa.md +105 -0
  315. package/kit/.claude/skills/frontend-react-hooks.md +238 -0
  316. package/kit/.claude/skills/frontend-react.md +129 -0
  317. package/kit/.claude/skills/frontend-remix-advanced.md +106 -0
  318. package/kit/.claude/skills/frontend-remix.md +101 -0
  319. package/kit/.claude/skills/frontend-solid.md +99 -0
  320. package/kit/.claude/skills/frontend-state-management.md +134 -0
  321. package/kit/.claude/skills/frontend-state.md +106 -0
  322. package/kit/.claude/skills/frontend-svelte.md +121 -0
  323. package/kit/.claude/skills/frontend-testing.md +100 -0
  324. package/kit/.claude/skills/frontend-vite.md +94 -0
  325. package/kit/.claude/skills/frontend-vue.md +133 -0
  326. package/kit/.claude/skills/frontend-webpack.md +93 -0
  327. package/kit/.claude/skills/functional-programming.md +50 -0
  328. package/kit/.claude/skills/hooks-custom.md +50 -0
  329. package/kit/.claude/skills/http-server.md +50 -0
  330. package/kit/.claude/skills/i18n-general.md +89 -0
  331. package/kit/.claude/skills/i18n-localization.md +191 -0
  332. package/kit/.claude/skills/i18n-nextjs.md +127 -0
  333. package/kit/.claude/skills/infrastructure-docker-compose.md +77 -0
  334. package/kit/.claude/skills/infrastructure-serverless.md +177 -0
  335. package/kit/.claude/skills/jwt-tokens.md +50 -0
  336. package/kit/.claude/skills/logging-winston.md +106 -0
  337. package/kit/.claude/skills/messaging-kafka.md +102 -0
  338. package/kit/.claude/skills/messaging-rabbitmq.md +50 -0
  339. package/kit/.claude/skills/mobile-capacitor.md +109 -0
  340. package/kit/.claude/skills/mobile-expo.md +101 -0
  341. package/kit/.claude/skills/mobile-flutter.md +259 -0
  342. package/kit/.claude/skills/mobile-react-native.md +238 -0
  343. package/kit/.claude/skills/monitoring-apm.md +50 -0
  344. package/kit/.claude/skills/monitoring-error-tracking.md +217 -0
  345. package/kit/.claude/skills/nodejs-streams.md +168 -0
  346. package/kit/.claude/skills/oauth-integration.md +50 -0
  347. package/kit/.claude/skills/patterns-dependency-injection.md +218 -0
  348. package/kit/.claude/skills/patterns-factory-singleton.md +209 -0
  349. package/kit/.claude/skills/patterns-observer-pubsub.md +210 -0
  350. package/kit/.claude/skills/payment-lemonsqueezy.md +101 -0
  351. package/kit/.claude/skills/payment-square.md +178 -0
  352. package/kit/.claude/skills/payment-stripe.md +206 -0
  353. package/kit/.claude/skills/perf-bundle.md +100 -0
  354. package/kit/.claude/skills/perf-web-vitals.md +102 -0
  355. package/kit/.claude/skills/performance-database-connection-pooling.md +67 -0
  356. package/kit/.claude/skills/performance-metrics.md +73 -0
  357. package/kit/.claude/skills/performance-optimization.md +208 -0
  358. package/kit/.claude/skills/performance-web-vitals.md +169 -0
  359. package/kit/.claude/skills/rate-limiting.md +77 -0
  360. package/kit/.claude/skills/reactive-programming.md +50 -0
  361. package/kit/.claude/skills/realtime-database.md +50 -0
  362. package/kit/.claude/skills/realtime-subscriptions.md +218 -0
  363. package/kit/.claude/skills/saas-ab-testing.md +90 -0
  364. package/kit/.claude/skills/saas-analytics.md +113 -0
  365. package/kit/.claude/skills/saas-billing.md +106 -0
  366. package/kit/.claude/skills/saas-email.md +88 -0
  367. package/kit/.claude/skills/saas-feature-flags.md +83 -0
  368. package/kit/.claude/skills/saas-onboarding.md +96 -0
  369. package/kit/.claude/skills/saas-user-onboarding.md +207 -0
  370. package/kit/.claude/skills/security-encryption.md +216 -0
  371. package/kit/.claude/skills/security-owasp.md +212 -0
  372. package/kit/.claude/skills/security-secrets-rotation.md +64 -0
  373. package/kit/.claude/skills/seo-content.md +94 -0
  374. package/kit/.claude/skills/seo-technical.md +101 -0
  375. package/kit/.claude/skills/serverless-framework.md +151 -0
  376. package/kit/.claude/skills/sharding-scaling.md +50 -0
  377. package/kit/.claude/skills/styling-css-modules.md +219 -0
  378. package/kit/.claude/skills/styling-styled-components.md +206 -0
  379. package/kit/.claude/skills/styling-tailwind.md +206 -0
  380. package/kit/.claude/skills/test-e2e.md +86 -0
  381. package/kit/.claude/skills/test-integration.md +216 -0
  382. package/kit/.claude/skills/test-performance.md +162 -0
  383. package/kit/.claude/skills/test-tdd.md +170 -0
  384. package/kit/.claude/skills/test-unit.md +301 -0
  385. package/kit/.claude/skills/testing-accessibility.md +117 -0
  386. package/kit/.claude/skills/testing-contract.md +75 -0
  387. package/kit/.claude/skills/testing-e2e-advanced.md +50 -0
  388. package/kit/.claude/skills/testing-load-stress.md +79 -0
  389. package/kit/.claude/skills/testing-mutation.md +92 -0
  390. package/kit/.claude/skills/testing-snapshot.md +50 -0
  391. package/kit/.claude/skills/testing-vitest.md +172 -0
  392. package/kit/.claude/skills/tooling-biome.md +91 -0
  393. package/kit/.claude/skills/tooling-build-tools.md +166 -0
  394. package/kit/.claude/skills/tooling-bun.md +94 -0
  395. package/kit/.claude/skills/tooling-eslint.md +103 -0
  396. package/kit/.claude/skills/tooling-git.md +79 -0
  397. package/kit/.claude/skills/tooling-monorepo.md +162 -0
  398. package/kit/.claude/skills/tooling-testing-frameworks.md +207 -0
  399. package/kit/.claude/skills/tooling-typescript.md +156 -0
  400. package/kit/.claude/skills/ui-a11y.md +106 -0
  401. package/kit/.claude/skills/ui-framer.md +106 -0
  402. package/kit/.claude/skills/ui-gsap.md +102 -0
  403. package/kit/.claude/skills/ui-radix.md +82 -0
  404. package/kit/.claude/skills/ui-shadcn.md +463 -0
  405. package/kit/.claude/skills/ui-tailwind.md +98 -0
  406. package/kit/.claude/skills/ui-threejs.md +110 -0
  407. package/kit/.claude/skills/ui-tokens.md +97 -0
  408. package/kit/.claude/skills/utilities-date-time.md +170 -0
  409. package/kit/.claude/skills/validation-schemas.md +110 -0
  410. package/kit/.claude/skills/version-control-git.md +144 -0
  411. package/kit/.claude/skills/web-accessibility-wcag.md +102 -0
  412. package/kit/.claude/skills/web-astro.md +197 -0
  413. package/kit/.claude/skills/web-html-css.md +224 -0
  414. package/kit/.claude/skills/web-htmx.md +99 -0
  415. package/kit/.claude/skills/web-nextjs-advanced.md +202 -0
  416. package/kit/.claude/skills/web-remix.md +194 -0
  417. package/kit/.claude/skills/web-seo.md +99 -0
  418. package/kit/.claude/skills/web-svelte.md +234 -0
  419. package/kit/.claude/skills/websocket-server.md +50 -0
  420. package/kit/.claude/skills/writing-marketing.md +89 -0
  421. package/kit/.claude/skills/writing-technical.md +119 -0
  422. package/kit/CLAUDE.md +206 -0
  423. package/kit/README.md +150 -0
  424. package/kit/SKILLS_INDEX.md +188 -0
  425. package/kit/docs/README.md +3 -0
  426. package/kit/journals/README.md +3 -0
  427. package/kit/plans/README.md +3 -0
  428. package/package.json +3 -1
@@ -0,0 +1,97 @@
1
+ # Design Tokens
2
+
3
+ ## Overview
4
+ Design tokens are named variables for design decisions (colors, spacing, typography) that maintain consistency across platforms.
5
+
6
+ ## CSS Custom Properties (Variables)
7
+
8
+ ```css
9
+ /* globals.css */
10
+ :root {
11
+ /* Colors */
12
+ --color-primary-50: #eff6ff;
13
+ --color-primary-500: #3b82f6;
14
+ --color-primary-600: #2563eb;
15
+ --color-primary-900: #1e3a8a;
16
+
17
+ /* Semantic colors */
18
+ --color-background: #ffffff;
19
+ --color-foreground: #0f172a;
20
+ --color-muted: #f1f5f9;
21
+ --color-muted-foreground: #64748b;
22
+ --color-border: #e2e8f0;
23
+
24
+ /* Spacing */
25
+ --spacing-xs: 0.25rem;
26
+ --spacing-sm: 0.5rem;
27
+ --spacing-md: 1rem;
28
+ --spacing-lg: 1.5rem;
29
+ --spacing-xl: 2rem;
30
+
31
+ /* Typography */
32
+ --font-sans: 'Inter', system-ui, sans-serif;
33
+ --font-mono: 'Fira Code', 'Courier New', monospace;
34
+ --font-size-sm: 0.875rem;
35
+ --font-size-base: 1rem;
36
+ --font-size-lg: 1.125rem;
37
+
38
+ /* Radius */
39
+ --radius-sm: 0.25rem;
40
+ --radius-md: 0.5rem;
41
+ --radius-lg: 0.75rem;
42
+ --radius-full: 9999px;
43
+ }
44
+
45
+ [data-theme="dark"] {
46
+ --color-background: #0f172a;
47
+ --color-foreground: #f8fafc;
48
+ --color-muted: #1e293b;
49
+ --color-border: #334155;
50
+ }
51
+ ```
52
+
53
+ ## Tailwind CSS v4 Tokens
54
+
55
+ ```css
56
+ /* app/globals.css */
57
+ @import "tailwindcss";
58
+
59
+ @theme {
60
+ --color-primary: #3b82f6;
61
+ --color-primary-hover: #2563eb;
62
+ --font-family-sans: 'Inter', sans-serif;
63
+ --spacing-page: 1.5rem;
64
+ --radius-card: 0.75rem;
65
+ }
66
+ ```
67
+
68
+ ## TypeScript Token Object
69
+
70
+ ```typescript
71
+ // lib/tokens.ts
72
+ export const tokens = {
73
+ colors: {
74
+ primary: { 50: '#eff6ff', 500: '#3b82f6', 900: '#1e3a8a' },
75
+ gray: { 50: '#f9fafb', 500: '#6b7280', 900: '#111827' },
76
+ success: '#22c55e',
77
+ warning: '#f59e0b',
78
+ error: '#ef4444',
79
+ },
80
+ spacing: { xs: '4px', sm: '8px', md: '16px', lg: '24px', xl: '32px' },
81
+ fontSize: { sm: '14px', base: '16px', lg: '18px', xl: '20px', '2xl': '24px' },
82
+ borderRadius: { sm: '4px', md: '8px', lg: '12px', full: '9999px' },
83
+ } as const;
84
+
85
+ type Colors = typeof tokens.colors;
86
+ export type ColorKey = keyof Colors;
87
+ ```
88
+
89
+ ## Best Practices
90
+ - Use semantic tokens (`--color-background`) not literal tokens (`--color-white`) in components
91
+ - Dark mode: swap semantic tokens, not all literal tokens
92
+ - Define tokens once in CSS variables, reference everywhere
93
+ - Use Tailwind v4 `@theme` to expose tokens as utility classes
94
+
95
+ ## Resources
96
+ - [Tailwind v4 theming](https://tailwindcss.com/docs/theme)
97
+ - [Design Tokens W3C spec](https://www.w3.org/community/design-tokens/)
@@ -0,0 +1,170 @@
1
+ # Date & Time Handling
2
+
3
+ Working with dates, timezones, and scheduling.
4
+
5
+ ## date-fns Library
6
+
7
+ ```typescript
8
+ import {
9
+ format,
10
+ parse,
11
+ addDays,
12
+ isBefore,
13
+ differenceInDays,
14
+ startOfDay,
15
+ endOfDay
16
+ } from 'date-fns';
17
+
18
+ // Format dates
19
+ const formatted = format(new Date(), 'yyyy-MM-dd HH:mm:ss');
20
+
21
+ // Parse dates
22
+ const parsed = parse('2024-01-15', 'yyyy-MM-dd', new Date());
23
+
24
+ // Manipulate dates
25
+ const tomorrow = addDays(new Date(), 1);
26
+ const nextWeek = addDays(new Date(), 7);
27
+
28
+ // Compare dates
29
+ const isExpired = isBefore(expiryDate, new Date());
30
+
31
+ // Calculate differences
32
+ const daysDiff = differenceInDays(new Date(), pastDate);
33
+
34
+ // Get start/end of day
35
+ const dayStart = startOfDay(new Date());
36
+ const dayEnd = endOfDay(new Date());
37
+ ```
38
+
39
+ ## Day.js (Lightweight)
40
+
41
+ ```typescript
42
+ import dayjs from 'dayjs';
43
+ import utc from 'dayjs/plugin/utc';
44
+ import timezone from 'dayjs/plugin/timezone';
45
+
46
+ dayjs.extend(utc);
47
+ dayjs.extend(timezone);
48
+
49
+ // Basic operations
50
+ const now = dayjs();
51
+ const formatted = now.format('YYYY-MM-DD HH:mm:ss');
52
+ const tomorrow = now.add(1, 'day');
53
+
54
+ // Timezone handling
55
+ const nyTime = dayjs().tz('America/New_York');
56
+ const londonTime = dayjs().tz('Europe/London');
57
+
58
+ console.log(nyTime.format('HH:mm')); // New York time
59
+ console.log(londonTime.format('HH:mm')); // London time
60
+ ```
61
+
62
+ ## Cron Jobs
63
+
64
+ ```typescript
65
+ import cron from 'node-cron';
66
+ import schedule from 'node-schedule';
67
+
68
+ // node-cron syntax
69
+ // Run every day at 2 AM
70
+ cron.schedule('0 2 * * *', async () => {
71
+ console.log('Running daily task');
72
+ await cleanupExpiredTokens();
73
+ });
74
+
75
+ // Run every Monday at 9 AM
76
+ cron.schedule('0 9 * * 1', async () => {
77
+ console.log('Weekly report');
78
+ await generateWeeklyReport();
79
+ });
80
+
81
+ // node-schedule syntax
82
+ const job = schedule.scheduleJob('0 9 * * 1', async () => {
83
+ console.log('Scheduled task running');
84
+ });
85
+
86
+ // Cancel job
87
+ job.cancel();
88
+ ```
89
+
90
+ ## Timezone Handling
91
+
92
+ ```typescript
93
+ function convertToTimezone(date: Date, timezone: string): string {
94
+ return dayjs(date).tz(timezone).format('YYYY-MM-DD HH:mm:ss');
95
+ }
96
+
97
+ // Examples
98
+ console.log(convertToTimezone(new Date(), 'America/New_York'));
99
+ console.log(convertToTimezone(new Date(), 'Europe/London'));
100
+ console.log(convertToTimezone(new Date(), 'Asia/Tokyo'));
101
+
102
+ // Store times in UTC, display in user's timezone
103
+ async function getUserEvents(userId: string) {
104
+ const user = await db.users.findById(userId);
105
+ const events = await db.events.findByUserId(userId);
106
+
107
+ return events.map(event => ({
108
+ ...event,
109
+ displayTime: dayjs(event.startTime).tz(user.timezone)
110
+ }));
111
+ }
112
+ ```
113
+
114
+ ## Recurring Schedules
115
+
116
+ ```typescript
117
+ import RRule from 'rrule';
118
+
119
+ // Repeat every weekday at 9 AM
120
+ const rule = new RRule({
121
+ freq: RRule.DAILY,
122
+ byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR],
123
+ dtstart: new Date(2024, 0, 1, 9, 0)
124
+ });
125
+
126
+ // Get next 10 occurrences
127
+ const occurrences = rule.all().slice(0, 10);
128
+
129
+ // Monthly subscription billing
130
+ const billingRule = new RRule({
131
+ freq: RRule.MONTHLY,
132
+ bymonthday: 1, // First day of month
133
+ dtstart: new Date()
134
+ });
135
+ ```
136
+
137
+ ## Date Range Queries
138
+
139
+ ```typescript
140
+ // Find events in date range
141
+ async function getEventsInRange(startDate: Date, endDate: Date) {
142
+ return await db.events.find({
143
+ startTime: { $gte: startDate, $lte: endDate }
144
+ });
145
+ }
146
+
147
+ // Find upcoming events
148
+ async function getUpcomingEvents(days: number = 7) {
149
+ const today = dayjs().startOf('day').toDate();
150
+ const futureDate = dayjs().add(days, 'day').endOf('day').toDate();
151
+
152
+ return await db.events.find({
153
+ startTime: { $gte: today, $lte: futureDate }
154
+ });
155
+ }
156
+ ```
157
+
158
+ ## Best Practices
159
+
160
+ ✅ **Store in UTC** - Always store dates in UTC
161
+ ✅ **Display in user timezone** - Convert for display
162
+ ✅ **Use ISO strings** - For API communication
163
+ ✅ **Avoid time libraries** - Use date-fns or Day.js
164
+ ✅ **Test with timezones** - Include timezone in tests
165
+
166
+ ## Resources
167
+
168
+ - [date-fns Documentation](https://date-fns.org/)
169
+ - [Day.js Documentation](https://day.js.org/)
170
+ - [RRule Documentation](https://github.com/jakubroztocil/rrule)
@@ -0,0 +1,110 @@
1
+ # Schema Validation
2
+
3
+ Validating data structure and types.
4
+
5
+ ## Zod
6
+
7
+ ```typescript
8
+ import { z } from 'zod';
9
+
10
+ const UserSchema = z.object({
11
+ id: z.string().uuid(),
12
+ email: z.string().email(),
13
+ age: z.number().min(18).max(120),
14
+ status: z.enum(['active', 'inactive', 'pending']),
15
+ createdAt: z.date(),
16
+ tags: z.array(z.string()).optional(),
17
+ profile: z.object({
18
+ bio: z.string().optional(),
19
+ avatar: z.string().url()
20
+ })
21
+ });
22
+
23
+ type User = z.infer<typeof UserSchema>;
24
+
25
+ // Validate
26
+ const user = await UserSchema.parseAsync(userData);
27
+
28
+ // Validate with error handling
29
+ const result = UserSchema.safeParse(userData);
30
+ if (!result.success) {
31
+ console.error(result.error.flatten());
32
+ }
33
+
34
+ // Custom validation
35
+ const PasswordSchema = z.string()
36
+ .min(8, 'Too short')
37
+ .regex(/[A-Z]/, 'Need uppercase')
38
+ .regex(/[0-9]/, 'Need number');
39
+ ```
40
+
41
+ ## Yup
42
+
43
+ ```typescript
44
+ import * as Yup from 'yup';
45
+
46
+ const schema = Yup.object({
47
+ email: Yup.string().email().required(),
48
+ password: Yup.string().min(8).required(),
49
+ age: Yup.number().min(18).required()
50
+ });
51
+
52
+ schema.validate({
53
+ email: 'test@example.com',
54
+ password: 'secure123',
55
+ age: 25
56
+ }).then(valid => {
57
+ console.log(valid);
58
+ }).catch(err => {
59
+ console.error(err.message);
60
+ });
61
+
62
+ // Async validation
63
+ const schema = Yup.object({
64
+ email: Yup.string().email().required().test(
65
+ 'unique-email',
66
+ 'Email already exists',
67
+ async (email) => {
68
+ const exists = await checkEmailExists(email);
69
+ return !exists;
70
+ }
71
+ )
72
+ });
73
+ ```
74
+
75
+ ## Runtime Type Checking
76
+
77
+ ```typescript
78
+ // Using a simple validator
79
+ const validate = (data: unknown, schema: any): boolean => {
80
+ return schema.safeParse(data).success;
81
+ };
82
+
83
+ // API route validation
84
+ app.post('/api/users', (req, res) => {
85
+ const result = UserSchema.safeParse(req.body);
86
+
87
+ if (!result.success) {
88
+ return res.status(400).json({
89
+ errors: result.error.flatten()
90
+ });
91
+ }
92
+
93
+ // result.data is now typed as User
94
+ const user = await db.users.create(result.data);
95
+ res.status(201).json(user);
96
+ });
97
+ ```
98
+
99
+ ## Best Practices
100
+
101
+ ✅ **Type inference** - Use z.infer for TypeScript types
102
+ ✅ **Custom messages** - Clear error messages
103
+ ✅ **Async validation** - For unique fields
104
+ ✅ **Reusable schemas** - DRY validation
105
+ ✅ **Server & client** - Validate both sides
106
+
107
+ ## Resources
108
+
109
+ - [Zod Documentation](https://zod.dev/)
110
+ - [Yup Documentation](https://github.com/jquense/yup)
@@ -0,0 +1,144 @@
1
+ # Git Version Control
2
+
3
+ Source code management and collaboration.
4
+
5
+ ## Git Basics
6
+
7
+ ```bash
8
+ # Initialize repository
9
+ git init
10
+
11
+ # Clone repository
12
+ git clone https://github.com/user/repo.git
13
+
14
+ # Check status
15
+ git status
16
+
17
+ # Stage changes
18
+ git add .
19
+ git add src/file.ts
20
+
21
+ # Commit
22
+ git commit -m "feat: add new feature"
23
+
24
+ # Push to remote
25
+ git push origin main
26
+
27
+ # Pull latest changes
28
+ git pull origin main
29
+ ```
30
+
31
+ ## Branching Strategy
32
+
33
+ ```bash
34
+ # Create branch
35
+ git checkout -b feature/new-feature
36
+
37
+ # Switch branch
38
+ git checkout main
39
+
40
+ # List branches
41
+ git branch -a
42
+
43
+ # Delete branch
44
+ git branch -d feature/new-feature
45
+ git branch -D feature/force-delete
46
+
47
+ # Merge branch
48
+ git merge feature/new-feature
49
+
50
+ # Rebase (linear history)
51
+ git rebase main
52
+ ```
53
+
54
+ ## Advanced Git
55
+
56
+ ```bash
57
+ # View commit history
58
+ git log --oneline --graph --all
59
+
60
+ # Check specific commit
61
+ git show abc123
62
+
63
+ # Revert commit
64
+ git revert abc123
65
+
66
+ # Cherry-pick commit
67
+ git cherry-pick abc123
68
+
69
+ # Stash changes
70
+ git stash
71
+ git stash list
72
+ git stash pop
73
+
74
+ # Interactive rebase
75
+ git rebase -i HEAD~5
76
+ ```
77
+
78
+ ## Git Workflows
79
+
80
+ ```bash
81
+ # GitHub Flow (simple)
82
+ git checkout -b feature-branch
83
+ # Make changes
84
+ git commit -m "Add feature"
85
+ git push origin feature-branch
86
+ # Create Pull Request
87
+
88
+ # Git Flow (complex projects)
89
+ git checkout -b develop
90
+ git checkout -b release/1.0.0
91
+ git checkout -b hotfix/critical-bug
92
+ ```
93
+
94
+ ## Undoing Changes
95
+
96
+ ```bash
97
+ # Undo unstaged changes
98
+ git checkout -- src/file.ts
99
+
100
+ # Undo staged changes
101
+ git reset HEAD src/file.ts
102
+
103
+ # Undo commit (keep changes)
104
+ git reset --soft HEAD~1
105
+
106
+ # Undo commit (discard changes)
107
+ git reset --hard HEAD~1
108
+
109
+ # Amend last commit
110
+ git commit --amend --no-edit
111
+ ```
112
+
113
+ ## Remote Management
114
+
115
+ ```bash
116
+ # List remotes
117
+ git remote -v
118
+
119
+ # Add remote
120
+ git remote add origin https://github.com/user/repo.git
121
+
122
+ # Change remote URL
123
+ git remote set-url origin https://github.com/user/new-repo.git
124
+
125
+ # Remove remote
126
+ git remote remove origin
127
+
128
+ # Fetch all remotes
129
+ git fetch --all
130
+ ```
131
+
132
+ ## Best Practices
133
+
134
+ ✅ **Meaningful commits** - Clear commit messages
135
+ ✅ **Small commits** - One feature per commit
136
+ ✅ **Branch per feature** - Isolate work
137
+ ✅ **Code review** - Pull request process
138
+ ✅ **Protected main** - Require approvals
139
+
140
+ ## Resources
141
+
142
+ - [Git Documentation](https://git-scm.com/doc)
143
+ - [GitHub Guides](https://guides.github.com/)
144
+ - [Atlassian Git Tutorials](https://www.atlassian.com/git)
@@ -0,0 +1,102 @@
1
+ # WCAG & Accessibility Standards
2
+
3
+ Web Content Accessibility Guidelines compliance.
4
+
5
+ ## WCAG Levels
6
+
7
+ ```
8
+ WCAG 2.1 has three levels:
9
+ - Level A: Basic accessibility
10
+ - Level AA: Enhanced accessibility (recommended)
11
+ - Level AAA: Advanced accessibility
12
+ ```
13
+
14
+ ## Perceivable
15
+
16
+ ```html
17
+ <!-- Images need alt text -->
18
+ <img src="dog.jpg" alt="Brown dog playing in park">
19
+
20
+ <!-- Color not only indicator -->
21
+ <label>
22
+ <input type="checkbox"> Required field
23
+ </label>
24
+ <!-- Don't rely only on color -->
25
+
26
+ <!-- Captions for video -->
27
+ <video>
28
+ <track kind="captions" src="captions.vtt">
29
+ </video>
30
+
31
+ <!-- Sufficient contrast -->
32
+ <style>
33
+ body { color: #333; background: #fff; } /* 21:1 ratio */
34
+ </style>
35
+ ```
36
+
37
+ ## Operable
38
+
39
+ ```html
40
+ <!-- Keyboard navigation -->
41
+ <button>Accessible button</button>
42
+ <a href="/page">Link</a>
43
+
44
+ <!-- Skip navigation -->
45
+ <a href="#main" class="skip-link">Skip to main</a>
46
+
47
+ <!-- Focus visible -->
48
+ <style>
49
+ button:focus-visible {
50
+ outline: 2px solid blue;
51
+ }
52
+ </style>
53
+
54
+ <!-- Sufficient time -->
55
+ <!-- No auto-refreshing content -->
56
+ ```
57
+
58
+ ## Understandable
59
+
60
+ ```html
61
+ <!-- Clear language -->
62
+ <label for="email">Email address</label>
63
+ <input id="email" type="email" required>
64
+
65
+ <!-- Consistent navigation -->
66
+ <!-- Menu in same location -->
67
+
68
+ <!-- Error prevention -->
69
+ <input type="email" required>
70
+ <span class="error" role="alert">Invalid email</span>
71
+ ```
72
+
73
+ ## Robust
74
+
75
+ ```html
76
+ <!-- Valid HTML -->
77
+ <div role="navigation">Menu</div>
78
+
79
+ <!-- ARIA labels -->
80
+ <button aria-label="Close menu">×</button>
81
+
82
+ <!-- Semantic HTML -->
83
+ <nav>Navigation</nav>
84
+ <main>Main content</main>
85
+ <footer>Footer</footer>
86
+ ```
87
+
88
+ ## Testing Checklist
89
+
90
+ - [ ] Keyboard navigation works
91
+ - [ ] Color contrast ≥ 4.5:1
92
+ - [ ] All images have alt text
93
+ - [ ] Form labels associated
94
+ - [ ] Focus indicator visible
95
+ - [ ] No auto-playing content
96
+ - [ ] Heading hierarchy correct
97
+ - [ ] Links descriptive
98
+
99
+ ## Resources
100
+
101
+ - [WCAG 2.1 Guidelines](https://www.w3.org/WAI/WCAG21/quickref/)
102
+ - [ARIA Best Practices](https://www.w3.org/WAI/ARIA/apg/)