quiver-cli 1.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/README.md +197 -239
  2. package/dist/cli.js +3163 -2040
  3. package/package.json +10 -11
  4. package/template/.agents/AGENTS.md +0 -26
  5. package/template/.agents/commands/cp.md +0 -108
  6. package/template/.agents/commands/next-setup.md +0 -1064
  7. package/template/.agents/commands/review.md +0 -68
  8. package/template/.agents/commands/terraform-readme.md +0 -38
  9. package/template/.agents/config.json +0 -80
  10. package/template/.agents/plugins/opencode/rtk.ts +0 -34
  11. package/template/.agents/skills/agent-browser/SKILL.md +0 -51
  12. package/template/.agents/skills/apps/skybridge/SKILL.md +0 -50
  13. package/template/.agents/skills/code/cleanup/SKILL.md +0 -26
  14. package/template/.agents/skills/code/improve/SKILL.md +0 -122
  15. package/template/.agents/skills/code/improve/references/audit-playbook.md +0 -130
  16. package/template/.agents/skills/code/improve/references/closing-the-loop.md +0 -96
  17. package/template/.agents/skills/code/improve/references/plan-template.md +0 -197
  18. package/template/.agents/skills/code/vercel-react-best-practices/AGENTS.md +0 -3810
  19. package/template/.agents/skills/code/vercel-react-best-practices/README.md +0 -123
  20. package/template/.agents/skills/code/vercel-react-best-practices/SKILL.md +0 -149
  21. package/template/.agents/skills/code/vercel-react-best-practices/metadata.json +0 -15
  22. package/template/.agents/skills/code/vercel-react-best-practices/rules/_sections.md +0 -46
  23. package/template/.agents/skills/code/vercel-react-best-practices/rules/_template.md +0 -28
  24. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-effect-event-deps.md +0 -56
  25. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  26. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  27. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  28. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  29. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +0 -37
  30. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-defer-await.md +0 -82
  31. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  32. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-parallel.md +0 -28
  33. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  34. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-analyzable-paths.md +0 -63
  35. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -60
  36. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  37. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  38. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  39. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  40. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  41. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  42. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  43. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  44. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  45. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  46. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  47. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  48. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  49. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  50. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  51. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  52. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  53. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  54. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  55. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-request-idle-callback.md +0 -105
  56. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  57. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  58. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  59. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  60. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  61. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  62. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  63. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  64. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  65. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  66. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  67. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  68. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  69. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  70. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  71. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  72. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  73. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  74. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  75. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  76. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  77. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  78. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  79. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  80. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  81. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  82. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  83. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  84. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  85. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  86. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  87. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  88. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  89. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -149
  90. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-no-shared-module-state.md +0 -50
  91. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  92. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +0 -34
  93. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-serialization.md +0 -38
  94. package/template/.agents/skills/data/prisma-cli/SKILL.md +0 -247
  95. package/template/.agents/skills/data/prisma-cli/references/db-execute.md +0 -78
  96. package/template/.agents/skills/data/prisma-cli/references/db-pull.md +0 -185
  97. package/template/.agents/skills/data/prisma-cli/references/db-push.md +0 -148
  98. package/template/.agents/skills/data/prisma-cli/references/db-seed.md +0 -188
  99. package/template/.agents/skills/data/prisma-cli/references/debug.md +0 -46
  100. package/template/.agents/skills/data/prisma-cli/references/dev.md +0 -157
  101. package/template/.agents/skills/data/prisma-cli/references/format.md +0 -48
  102. package/template/.agents/skills/data/prisma-cli/references/generate.md +0 -173
  103. package/template/.agents/skills/data/prisma-cli/references/init.md +0 -136
  104. package/template/.agents/skills/data/prisma-cli/references/mcp.md +0 -38
  105. package/template/.agents/skills/data/prisma-cli/references/migrate-deploy.md +0 -127
  106. package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +0 -145
  107. package/template/.agents/skills/data/prisma-cli/references/migrate-diff.md +0 -89
  108. package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +0 -78
  109. package/template/.agents/skills/data/prisma-cli/references/migrate-resolve.md +0 -57
  110. package/template/.agents/skills/data/prisma-cli/references/migrate-status.md +0 -65
  111. package/template/.agents/skills/data/prisma-cli/references/studio.md +0 -137
  112. package/template/.agents/skills/data/prisma-cli/references/validate.md +0 -53
  113. package/template/.agents/skills/data/prisma-client-api/SKILL.md +0 -216
  114. package/template/.agents/skills/data/prisma-client-api/references/client-methods.md +0 -223
  115. package/template/.agents/skills/data/prisma-client-api/references/constructor.md +0 -208
  116. package/template/.agents/skills/data/prisma-client-api/references/filters.md +0 -256
  117. package/template/.agents/skills/data/prisma-client-api/references/model-queries.md +0 -281
  118. package/template/.agents/skills/data/prisma-client-api/references/query-options.md +0 -276
  119. package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +0 -194
  120. package/template/.agents/skills/data/prisma-client-api/references/relations.md +0 -308
  121. package/template/.agents/skills/data/prisma-client-api/references/transactions.md +0 -184
  122. package/template/.agents/skills/design/impeccable/SKILL.md +0 -84
  123. package/template/.agents/skills/design/impeccable/reference/adapt.md +0 -312
  124. package/template/.agents/skills/design/impeccable/reference/adapt.native.md +0 -58
  125. package/template/.agents/skills/design/impeccable/reference/android.md +0 -40
  126. package/template/.agents/skills/design/impeccable/reference/animate.md +0 -86
  127. package/template/.agents/skills/design/impeccable/reference/audit.md +0 -136
  128. package/template/.agents/skills/design/impeccable/reference/audit.native.md +0 -139
  129. package/template/.agents/skills/design/impeccable/reference/bolder.md +0 -31
  130. package/template/.agents/skills/design/impeccable/reference/clarify.md +0 -94
  131. package/template/.agents/skills/design/impeccable/reference/colorize.md +0 -86
  132. package/template/.agents/skills/design/impeccable/reference/craft-floor.md +0 -42
  133. package/template/.agents/skills/design/impeccable/reference/craft.md +0 -5
  134. package/template/.agents/skills/design/impeccable/reference/critique.md +0 -788
  135. package/template/.agents/skills/design/impeccable/reference/degraded/asset-producer.md +0 -90
  136. package/template/.agents/skills/design/impeccable/reference/degraded/documenter.md +0 -24
  137. package/template/.agents/skills/design/impeccable/reference/degraded/finish-reviewer.md +0 -37
  138. package/template/.agents/skills/design/impeccable/reference/degraded/manual-edit-applier.md +0 -92
  139. package/template/.agents/skills/design/impeccable/reference/delight.md +0 -70
  140. package/template/.agents/skills/design/impeccable/reference/distill.md +0 -111
  141. package/template/.agents/skills/design/impeccable/reference/doctor.md +0 -53
  142. package/template/.agents/skills/design/impeccable/reference/document.md +0 -416
  143. package/template/.agents/skills/design/impeccable/reference/extract.md +0 -69
  144. package/template/.agents/skills/design/impeccable/reference/harden.md +0 -336
  145. package/template/.agents/skills/design/impeccable/reference/hooks.md +0 -105
  146. package/template/.agents/skills/design/impeccable/reference/init.md +0 -125
  147. package/template/.agents/skills/design/impeccable/reference/ios.md +0 -45
  148. package/template/.agents/skills/design/impeccable/reference/layout.md +0 -84
  149. package/template/.agents/skills/design/impeccable/reference/live-setup.md +0 -102
  150. package/template/.agents/skills/design/impeccable/reference/live.md +0 -323
  151. package/template/.agents/skills/design/impeccable/reference/new-work.md +0 -105
  152. package/template/.agents/skills/design/impeccable/reference/onboard.md +0 -234
  153. package/template/.agents/skills/design/impeccable/reference/operate.md +0 -61
  154. package/template/.agents/skills/design/impeccable/reference/optimize.md +0 -258
  155. package/template/.agents/skills/design/impeccable/reference/overdrive.md +0 -127
  156. package/template/.agents/skills/design/impeccable/reference/polish.md +0 -97
  157. package/template/.agents/skills/design/impeccable/reference/quieter.md +0 -99
  158. package/template/.agents/skills/design/impeccable/reference/routing.md +0 -18
  159. package/template/.agents/skills/design/impeccable/reference/shape.md +0 -59
  160. package/template/.agents/skills/design/impeccable/reference/typeset.md +0 -80
  161. package/template/.agents/skills/design/impeccable/reference/visualize.md +0 -47
  162. package/template/.agents/skills/design/impeccable/scripts/command-metadata.json +0 -94
  163. package/template/.agents/skills/design/impeccable/scripts/concept-seed.mjs +0 -558
  164. package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +0 -334
  165. package/template/.agents/skills/design/impeccable/scripts/context.mjs +0 -1450
  166. package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +0 -213
  167. package/template/.agents/skills/design/impeccable/scripts/detect-csp.mjs +0 -198
  168. package/template/.agents/skills/design/impeccable/scripts/detect.mjs +0 -21
  169. package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +0 -2023
  170. package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +0 -438
  171. package/template/.agents/skills/design/impeccable/scripts/detector/design-system.mjs +0 -983
  172. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +0 -8283
  173. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +0 -50
  174. package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +0 -372
  175. package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +0 -768
  176. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +0 -1186
  177. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +0 -264
  178. package/template/.agents/skills/design/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -189
  179. package/template/.agents/skills/design/impeccable/scripts/detector/findings.mjs +0 -18
  180. package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +0 -212
  181. package/template/.agents/skills/design/impeccable/scripts/detector/profile/profiler.mjs +0 -166
  182. package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +0 -617
  183. package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +0 -5580
  184. package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +0 -124
  185. package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +0 -112
  186. package/template/.agents/skills/design/impeccable/scripts/detector/shared/fonts.mjs +0 -30
  187. package/template/.agents/skills/design/impeccable/scripts/detector/shared/inline-ignores.mjs +0 -148
  188. package/template/.agents/skills/design/impeccable/scripts/detector/shared/page.mjs +0 -7
  189. package/template/.agents/skills/design/impeccable/scripts/doctor.mjs +0 -336
  190. package/template/.agents/skills/design/impeccable/scripts/embed-prompt.mjs +0 -133
  191. package/template/.agents/skills/design/impeccable/scripts/generate-image.mjs +0 -240
  192. package/template/.agents/skills/design/impeccable/scripts/hook-admin.mjs +0 -741
  193. package/template/.agents/skills/design/impeccable/scripts/hook-before-edit.mjs +0 -516
  194. package/template/.agents/skills/design/impeccable/scripts/hook-lib.mjs +0 -2100
  195. package/template/.agents/skills/design/impeccable/scripts/hook.mjs +0 -78
  196. package/template/.agents/skills/design/impeccable/scripts/lib/artifact-schema.mjs +0 -93
  197. package/template/.agents/skills/design/impeccable/scripts/lib/composition-catalog.mjs +0 -200
  198. package/template/.agents/skills/design/impeccable/scripts/lib/concept-catalog.mjs +0 -357
  199. package/template/.agents/skills/design/impeccable/scripts/lib/design-parser.mjs +0 -842
  200. package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-config.mjs +0 -658
  201. package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-paths.mjs +0 -137
  202. package/template/.agents/skills/design/impeccable/scripts/lib/is-generated.mjs +0 -69
  203. package/template/.agents/skills/design/impeccable/scripts/lib/provider.mjs +0 -5
  204. package/template/.agents/skills/design/impeccable/scripts/lib/roll-selection.mjs +0 -362
  205. package/template/.agents/skills/design/impeccable/scripts/lib/staleness-deep.mjs +0 -457
  206. package/template/.agents/skills/design/impeccable/scripts/lib/staleness-notice.mjs +0 -169
  207. package/template/.agents/skills/design/impeccable/scripts/lib/staleness.mjs +0 -457
  208. package/template/.agents/skills/design/impeccable/scripts/lib/surface-briefs.mjs +0 -151
  209. package/template/.agents/skills/design/impeccable/scripts/lib/target-args.mjs +0 -42
  210. package/template/.agents/skills/design/impeccable/scripts/lib/target-slug.mjs +0 -33
  211. package/template/.agents/skills/design/impeccable/scripts/lib/template-extensions.mjs +0 -146
  212. package/template/.agents/skills/design/impeccable/scripts/live/accept-css.mjs +0 -617
  213. package/template/.agents/skills/design/impeccable/scripts/live/accept-verify.mjs +0 -60
  214. package/template/.agents/skills/design/impeccable/scripts/live/browser-script-parts.mjs +0 -55
  215. package/template/.agents/skills/design/impeccable/scripts/live/completion.mjs +0 -28
  216. package/template/.agents/skills/design/impeccable/scripts/live/event-validation.mjs +0 -199
  217. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/astro.mjs +0 -47
  218. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/detect-utils.mjs +0 -73
  219. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/index.mjs +0 -143
  220. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/journal.mjs +0 -197
  221. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nextjs.mjs +0 -49
  222. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nuxt.mjs +0 -161
  223. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/script-src.mjs +0 -17
  224. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/static-html.mjs +0 -26
  225. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/sveltekit.mjs +0 -71
  226. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tag-strategy.mjs +0 -247
  227. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tanstack-start.mjs +0 -70
  228. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/vite-generic.mjs +0 -42
  229. package/template/.agents/skills/design/impeccable/scripts/live/generation-preflight.mjs +0 -149
  230. package/template/.agents/skills/design/impeccable/scripts/live/insert-ui.mjs +0 -458
  231. package/template/.agents/skills/design/impeccable/scripts/live/instructions.mjs +0 -142
  232. package/template/.agents/skills/design/impeccable/scripts/live/manual-apply.mjs +0 -939
  233. package/template/.agents/skills/design/impeccable/scripts/live/manual-edit-routes.mjs +0 -357
  234. package/template/.agents/skills/design/impeccable/scripts/live/manual-edits-buffer.mjs +0 -152
  235. package/template/.agents/skills/design/impeccable/scripts/live/poll-lanes.mjs +0 -14
  236. package/template/.agents/skills/design/impeccable/scripts/live/roots.mjs +0 -508
  237. package/template/.agents/skills/design/impeccable/scripts/live/session-store.mjs +0 -563
  238. package/template/.agents/skills/design/impeccable/scripts/live/source-lock.mjs +0 -105
  239. package/template/.agents/skills/design/impeccable/scripts/live/source-search.mjs +0 -105
  240. package/template/.agents/skills/design/impeccable/scripts/live/svelte-ast.mjs +0 -961
  241. package/template/.agents/skills/design/impeccable/scripts/live/svelte-component.mjs +0 -1342
  242. package/template/.agents/skills/design/impeccable/scripts/live/sveltekit-adapter.mjs +0 -316
  243. package/template/.agents/skills/design/impeccable/scripts/live/tanstack-adapter.mjs +0 -280
  244. package/template/.agents/skills/design/impeccable/scripts/live/ui-core.mjs +0 -180
  245. package/template/.agents/skills/design/impeccable/scripts/live/vocabulary.mjs +0 -171
  246. package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +0 -954
  247. package/template/.agents/skills/design/impeccable/scripts/live-browser-dom.js +0 -146
  248. package/template/.agents/skills/design/impeccable/scripts/live-browser-session.js +0 -123
  249. package/template/.agents/skills/design/impeccable/scripts/live-browser.js +0 -12512
  250. package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +0 -1244
  251. package/template/.agents/skills/design/impeccable/scripts/live-complete.mjs +0 -107
  252. package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +0 -683
  253. package/template/.agents/skills/design/impeccable/scripts/live-discard-manual-edits.mjs +0 -51
  254. package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +0 -503
  255. package/template/.agents/skills/design/impeccable/scripts/live-insert.mjs +0 -292
  256. package/template/.agents/skills/design/impeccable/scripts/live-manual-edit-evidence.mjs +0 -368
  257. package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +0 -429
  258. package/template/.agents/skills/design/impeccable/scripts/live-resume.mjs +0 -123
  259. package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +0 -1661
  260. package/template/.agents/skills/design/impeccable/scripts/live-status.mjs +0 -71
  261. package/template/.agents/skills/design/impeccable/scripts/live-target.mjs +0 -30
  262. package/template/.agents/skills/design/impeccable/scripts/live-wrap.mjs +0 -927
  263. package/template/.agents/skills/design/impeccable/scripts/live.mjs +0 -359
  264. package/template/.agents/skills/design/impeccable/scripts/modern-screenshot.umd.js +0 -14
  265. package/template/.agents/skills/design/impeccable/scripts/palette.mjs +0 -628
  266. package/template/.agents/skills/design/impeccable/scripts/pin.mjs +0 -221
  267. package/template/.agents/skills/design/impeccable/scripts/serve-question.mjs +0 -932
  268. package/template/.agents/skills/design/impeccable/scripts/surface-brief.mjs +0 -74
  269. package/template/.agents/skills/design/shadcn/SKILL.md +0 -277
  270. package/template/.agents/skills/design/shadcn/agents/openai.yml +0 -5
  271. package/template/.agents/skills/design/shadcn/assets/shadcn-small.png +0 -0
  272. package/template/.agents/skills/design/shadcn/assets/shadcn.png +0 -0
  273. package/template/.agents/skills/design/shadcn/cli.md +0 -290
  274. package/template/.agents/skills/design/shadcn/customization.md +0 -209
  275. package/template/.agents/skills/design/shadcn/evals/evals.json +0 -77
  276. package/template/.agents/skills/design/shadcn/mcp.md +0 -105
  277. package/template/.agents/skills/design/shadcn/registry.md +0 -277
  278. package/template/.agents/skills/design/shadcn/rules/base-vs-radix.md +0 -306
  279. package/template/.agents/skills/design/shadcn/rules/chat.md +0 -224
  280. package/template/.agents/skills/design/shadcn/rules/composition.md +0 -213
  281. package/template/.agents/skills/design/shadcn/rules/forms.md +0 -192
  282. package/template/.agents/skills/design/shadcn/rules/icons.md +0 -101
  283. package/template/.agents/skills/design/shadcn/rules/styling.md +0 -185
  284. package/template/.agents/skills/find-skills/SKILL.md +0 -141
  285. package/template/.agents/skills/hono/SKILL.md +0 -579
  286. package/template/.agents/skills/integrations/langfuse/SKILL.md +0 -146
  287. package/template/.agents/skills/integrations/langfuse/references/ci-cd.md +0 -41
  288. package/template/.agents/skills/integrations/langfuse/references/cli.md +0 -60
  289. package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +0 -88
  290. package/template/.agents/skills/integrations/langfuse/references/instrumentation.md +0 -121
  291. package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +0 -291
  292. package/template/.agents/skills/integrations/langfuse/references/prompt-engineering.md +0 -35
  293. package/template/.agents/skills/integrations/langfuse/references/prompt-migration.md +0 -79
  294. package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +0 -55
  295. package/template/.agents/skills/integrations/langfuse/references/trace-evaluator-upgrade.md +0 -76
  296. package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +0 -92
  297. package/template/.agents/skills/integrations/langfuse/references/v4-project-migration.md +0 -73
  298. package/template/.agents/skills/integrations/posthog/SKILL.md +0 -102
  299. package/template/.agents/skills/integrations/posthog/references/error-tracking-alerts.md +0 -63
  300. package/template/.agents/skills/integrations/posthog/references/error-tracking-assigning-issues.md +0 -77
  301. package/template/.agents/skills/integrations/posthog/references/error-tracking-fingerprints.md +0 -57
  302. package/template/.agents/skills/integrations/posthog/references/error-tracking-monitoring.md +0 -140
  303. package/template/.agents/skills/integrations/posthog/references/error-tracking-nextjs.md +0 -490
  304. package/template/.agents/skills/integrations/posthog/references/error-tracking-source-maps.md +0 -45
  305. package/template/.agents/skills/integrations/posthog/references/feature-flags-best-practices.md +0 -139
  306. package/template/.agents/skills/integrations/posthog/references/feature-flags-react.md +0 -302
  307. package/template/.agents/skills/integrations/posthog/references/identify-users.md +0 -202
  308. package/template/.agents/skills/integrations/posthog/references/integration-example.md +0 -706
  309. package/template/.agents/skills/integrations/posthog/references/integration-nextjs.md +0 -385
  310. package/template/.agents/skills/integrations/posthog/references/integration-step-1-begin.md +0 -43
  311. package/template/.agents/skills/integrations/posthog/references/integration-step-2-edit.md +0 -37
  312. package/template/.agents/skills/integrations/posthog/references/integration-step-3-revise.md +0 -22
  313. package/template/.agents/skills/integrations/posthog/references/integration-step-4-conclude.md +0 -38
  314. package/template/.agents/skills/integrations/posthog/references/llm-analytics-anthropic.md +0 -200
  315. package/template/.agents/skills/integrations/posthog/references/llm-analytics-basics.md +0 -62
  316. package/template/.agents/skills/integrations/posthog/references/llm-analytics-costs.md +0 -197
  317. package/template/.agents/skills/integrations/posthog/references/llm-analytics-manual-capture.md +0 -397
  318. package/template/.agents/skills/integrations/posthog/references/llm-analytics-traces.md +0 -98
  319. package/template/.agents/skills/integrations/posthog/references/llm-analytics-vercel-ai.md +0 -120
  320. package/template/.agents/skills/repo/repo-ci/SKILL.md +0 -265
  321. package/template/.agents/skills/repo/repo-init-next-js/SKILL.md +0 -129
  322. package/template/.agents/skills/repo/repo-init-next-js/references/file-contents.md +0 -800
  323. package/template/.agents/skills/repo/repo-init-next-js/scripts/setup.sh +0 -47
  324. package/template/.agents/skills/repo/repo-init-node/SKILL.md +0 -196
  325. package/template/.agents/skills/skill-creator/LICENSE.txt +0 -202
  326. package/template/.agents/skills/skill-creator/SKILL.md +0 -485
  327. package/template/.agents/skills/skill-creator/agents/analyzer.md +0 -274
  328. package/template/.agents/skills/skill-creator/agents/comparator.md +0 -202
  329. package/template/.agents/skills/skill-creator/agents/grader.md +0 -223
  330. package/template/.agents/skills/skill-creator/assets/eval_review.html +0 -146
  331. package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  332. package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  333. package/template/.agents/skills/skill-creator/references/schemas.md +0 -430
  334. package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  335. package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  336. package/template/.agents/skills/skill-creator/scripts/generate_report.py +0 -326
  337. package/template/.agents/skills/skill-creator/scripts/improve_description.py +0 -247
  338. package/template/.agents/skills/skill-creator/scripts/package_skill.py +0 -136
  339. package/template/.agents/skills/skill-creator/scripts/quick_validate.py +0 -103
  340. package/template/.agents/skills/skill-creator/scripts/run_eval.py +0 -310
  341. package/template/.agents/skills/skill-creator/scripts/run_loop.py +0 -328
  342. package/template/.agents/skills/skill-creator/scripts/utils.py +0 -47
  343. package/template/.agents/skills/supabase/CHANGELOG.md +0 -71
  344. package/template/.agents/skills/supabase/SKILL.md +0 -145
  345. package/template/.agents/skills/supabase/assets/feedback-issue-template.md +0 -17
  346. package/template/.agents/skills/supabase/references/skill-feedback.md +0 -17
  347. package/template/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +0 -73
  348. package/template/.agents/skills/supabase-postgres-best-practices/SKILL.md +0 -64
  349. package/template/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +0 -170
  350. package/template/.agents/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
  351. package/template/.agents/skills/supabase-postgres-best-practices/references/_template.md +0 -34
  352. package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
  353. package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
  354. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
  355. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
  356. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
  357. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
  358. package/template/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
  359. package/template/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
  360. package/template/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
  361. package/template/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
  362. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
  363. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
  364. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
  365. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
  366. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
  367. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
  368. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
  369. package/template/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
  370. package/template/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
  371. package/template/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
  372. package/template/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
  373. package/template/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
  374. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +0 -80
  375. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
  376. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
  377. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
  378. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
  379. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
  380. package/template/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
  381. package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
  382. package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -63
  383. package/template/.agents/skills/writing/humanizer/SKILL.md +0 -621
  384. package/template/.agents/upstreams.json +0 -116
@@ -1,141 +0,0 @@
1
- ---
2
- name: find-skills
3
- description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
4
- ---
5
-
6
- # Find Skills
7
-
8
- This skill helps you discover and install skills from the open agent skills ecosystem.
9
-
10
- ## When to Use This Skill
11
-
12
- Use this skill when the user:
13
-
14
- - Asks "how do I do X" where X might be a common task with an existing skill
15
- - Says "find a skill for X" or "is there a skill for X"
16
- - Asks "can you do X" where X is a specialized capability
17
- - Expresses interest in extending agent capabilities
18
- - Wants to search for tools, templates, or workflows
19
- - Mentions they wish they had help with a specific domain (design, testing, deployment, etc.)
20
-
21
- ## What is the Skills CLI?
22
-
23
- The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem. Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools.
24
-
25
- **Key commands:**
26
-
27
- - `npx skills find [query] [--owner <owner>]` - Search for skills interactively or by keyword, optionally scoped to a GitHub owner
28
- - `npx skills add <package>` - Install a skill from GitHub or other sources
29
- - `npx skills update` - Update all installed skills
30
-
31
- **Browse skills at:** https://skills.sh/
32
-
33
- ## How to Help Users Find Skills
34
-
35
- ### Step 1: Understand What They Need
36
-
37
- When a user asks for help with something, identify:
38
-
39
- 1. The domain (e.g., React, testing, design, deployment)
40
- 2. The specific task (e.g., writing tests, creating animations, reviewing PRs)
41
- 3. Whether this is a common enough task that a skill likely exists
42
-
43
- ### Step 2: Check the Leaderboard First
44
-
45
- Before running a CLI search, check the [skills.sh leaderboard](https://skills.sh/) to see if a well-known skill already exists for the domain. The leaderboard ranks skills by total installs, surfacing the most popular and battle-tested options.
46
-
47
- For example, top skills for web development include:
48
- - `vercel-labs/agent-skills` — React, Next.js, web design (100K+ installs each)
49
- - `anthropics/skills` — Frontend design, document processing (100K+ installs)
50
-
51
- ### Step 3: Search for Skills
52
-
53
- If the leaderboard doesn't cover the user's need, run the find command:
54
-
55
- ```bash
56
- npx skills find [query] [--owner <owner>]
57
- ```
58
-
59
- For example:
60
-
61
- - User asks "how do I make my React app faster?" → `npx skills find react performance`
62
- - User asks "can you help me with PR reviews?" → `npx skills find pr review`
63
- - User asks "I need to create a changelog" → `npx skills find changelog`
64
-
65
- ### Step 4: Verify Quality Before Recommending
66
-
67
- **Do not recommend a skill based solely on search results.** Always verify:
68
-
69
- 1. **Install count** — Prefer skills with 1K+ installs. Be cautious with anything under 100.
70
- 2. **Source reputation** — Official sources (`vercel-labs`, `anthropics`, `microsoft`) are more trustworthy than unknown authors.
71
- 3. **GitHub stars** — Check the source repository. A skill from a repo with <100 stars should be treated with skepticism.
72
-
73
- ### Step 5: Present Options to the User
74
-
75
- When you find relevant skills, present them to the user with:
76
-
77
- 1. The skill name and what it does
78
- 2. The install count and source
79
- 3. The install command they can run
80
- 4. A link to learn more at skills.sh
81
-
82
- Example response:
83
-
84
- ```
85
- I found a skill that might help! The "react-best-practices" skill provides
86
- React and Next.js performance optimization guidelines from Vercel Engineering.
87
- (185K installs)
88
-
89
- To install it:
90
- npx skills add vercel-labs/agent-skills@react-best-practices
91
-
92
- Learn more: https://skills.sh/vercel-labs/agent-skills/react-best-practices
93
- ```
94
-
95
- ### Step 6: Offer to Install
96
-
97
- If the user wants to proceed, you can install the skill for them:
98
-
99
- ```bash
100
- npx skills add <owner/repo@skill> -g -y
101
- ```
102
-
103
- The `-g` flag installs globally (user-level) and `-y` skips confirmation prompts.
104
-
105
- ## Common Skill Categories
106
-
107
- When searching, consider these common categories:
108
-
109
- | Category | Example Queries |
110
- | --------------- | ---------------------------------------- |
111
- | Web Development | react, nextjs, typescript, css, tailwind |
112
- | Testing | testing, jest, playwright, e2e |
113
- | DevOps | deploy, docker, kubernetes, ci-cd |
114
- | Documentation | docs, readme, changelog, api-docs |
115
- | Code Quality | review, lint, refactor, best-practices |
116
- | Design | ui, ux, design-system, accessibility |
117
- | Productivity | workflow, automation, git |
118
-
119
- ## Tips for Effective Searches
120
-
121
- 1. **Use specific keywords**: "react testing" is better than just "testing"
122
- 2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd"
123
- 3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills`
124
-
125
- ## When No Skills Are Found
126
-
127
- If no relevant skills exist:
128
-
129
- 1. Acknowledge that no existing skill was found
130
- 2. Offer to help with the task directly using your general capabilities
131
- 3. Suggest the user could create their own skill with `npx skills init`
132
-
133
- Example:
134
-
135
- ```
136
- I searched for skills related to "xyz" but didn't find any matches.
137
- I can still help you with this task directly! Would you like me to proceed?
138
-
139
- If this is something you do often, you could create your own skill:
140
- npx skills init my-xyz-skill
141
- ```
@@ -1,579 +0,0 @@
1
- ---
2
- name: hono
3
- description: Use when building Hono web applications or when the user asks about Hono APIs, routing, middleware, JSX, validation, testing, or streaming. TRIGGER when code imports from 'hono' or 'hono/*', or user mentions Hono. Use `npx hono request` to test endpoints.
4
- ---
5
-
6
- # Hono Skill
7
-
8
- Build Hono web applications. This skill provides inline API knowledge for AI. Use `npx hono request` to test endpoints. If the `hono-docs` MCP server is configured, prefer its tools for the latest documentation over the inline reference.
9
-
10
- ## Hono CLI Usage
11
-
12
- ### Request Testing
13
-
14
- Test endpoints without starting an HTTP server. Uses `app.request()` internally.
15
-
16
- ```bash
17
- # GET request
18
- npx hono request [file] -P /path
19
-
20
- # POST request with JSON body
21
- npx hono request [file] -X POST -P /api/users -d '{"name": "test"}'
22
- ```
23
-
24
- **Note:** Do not pass credentials directly in CLI arguments. Use environment variables for sensitive values. `hono request` does not support Cloudflare Workers bindings (KV, D1, R2, etc.). When bindings are required, use `workers-fetch` instead:
25
-
26
- ```bash
27
- npx workers-fetch /path
28
- npx workers-fetch -X POST -H "Content-Type:application/json" -d '{"name":"test"}' /api/users
29
- ```
30
-
31
- ---
32
-
33
- ## Hono API Reference
34
-
35
- ### App Constructor
36
-
37
- ```ts
38
- import { Hono } from 'hono'
39
-
40
- const app = new Hono()
41
-
42
- // With TypeScript generics
43
- type Env = {
44
- Bindings: { DATABASE: D1Database; KV: KVNamespace }
45
- Variables: { user: User }
46
- }
47
- const app = new Hono<Env>()
48
- ```
49
-
50
- ### Routing Methods
51
-
52
- ```ts
53
- app.get('/path', handler)
54
- app.post('/path', handler)
55
- app.put('/path', handler)
56
- app.delete('/path', handler)
57
- app.patch('/path', handler)
58
- app.options('/path', handler)
59
- app.all('/path', handler) // all HTTP methods
60
- app.on('PURGE', '/path', handler) // custom method
61
- app.on(['PUT', 'DELETE'], '/path', handler) // multiple methods
62
- ```
63
-
64
- ### Routing Patterns
65
-
66
- ```ts
67
- // Path parameters
68
- app.get('/user/:name', (c) => {
69
- const name = c.req.param('name')
70
- return c.json({ name })
71
- })
72
-
73
- // Multiple params
74
- app.get('/posts/:id/comments/:commentId', (c) => {
75
- const { id, commentId } = c.req.param()
76
- })
77
-
78
- // Optional parameters
79
- app.get('/api/animal/:type?', (c) => c.text('Animal!'))
80
-
81
- // Wildcards
82
- app.get('/wild/*/card', (c) => c.text('Wildcard'))
83
-
84
- // Regexp constraints
85
- app.get('/post/:date{[0-9]+}/:title{[a-z]+}', (c) => {
86
- const { date, title } = c.req.param()
87
- })
88
-
89
- // Chained routes
90
- app
91
- .get('/endpoint', (c) => c.text('GET'))
92
- .post((c) => c.text('POST'))
93
- .delete((c) => c.text('DELETE'))
94
- ```
95
-
96
- ### Route Grouping
97
-
98
- ```ts
99
- // Using route()
100
- const api = new Hono()
101
- api.get('/users', (c) => c.json([]))
102
-
103
- const app = new Hono()
104
- app.route('/api', api) // mounts at /api/users
105
-
106
- // Using basePath()
107
- const app = new Hono().basePath('/api')
108
- app.get('/users', (c) => c.json([])) // GET /api/users
109
- ```
110
-
111
- ### Error Handling
112
-
113
- ```ts
114
- app.notFound((c) => c.json({ message: 'Not Found' }, 404))
115
-
116
- app.onError((err, c) => {
117
- console.error(err)
118
- return c.json({ message: 'Internal Server Error' }, 500)
119
- })
120
- ```
121
-
122
- ---
123
-
124
- ## Context (c)
125
-
126
- ### Response Methods
127
-
128
- ```ts
129
- c.text('Hello') // text/plain
130
- c.json({ message: 'Hello' }) // application/json
131
- c.html('<h1>Hello</h1>') // text/html
132
- c.redirect('/new-path') // 302 redirect
133
- c.redirect('/new-path', 301) // 301 redirect
134
- c.body('raw body', 200, headers) // raw response
135
- c.notFound() // 404 response
136
- ```
137
-
138
- ### Headers & Status
139
-
140
- ```ts
141
- c.status(201)
142
- c.header('X-Custom', 'value')
143
- c.header('Cache-Control', 'no-store')
144
- ```
145
-
146
- ### Variables (request-scoped data)
147
-
148
- ```ts
149
- // In middleware
150
- c.set('user', { id: 1, name: 'Alice' })
151
-
152
- // In handler
153
- const user = c.get('user')
154
- // or
155
- const user = c.var.user
156
- ```
157
-
158
- ### Environment (Cloudflare Workers)
159
-
160
- ```ts
161
- const value = await c.env.KV.get('key')
162
- const db = c.env.DATABASE
163
- c.executionCtx.waitUntil(promise)
164
- ```
165
-
166
- ### Renderer
167
-
168
- ```ts
169
- app.use(async (c, next) => {
170
- c.setRenderer((content) =>
171
- c.html(
172
- <html><body>{content}</body></html>
173
- )
174
- )
175
- await next()
176
- })
177
-
178
- app.get('/', (c) => c.render(<h1>Hello</h1>))
179
- ```
180
-
181
- ---
182
-
183
- ## HonoRequest (c.req)
184
-
185
- ```ts
186
- c.req.param('id') // path parameter
187
- c.req.param() // all path params as object
188
- c.req.query('page') // query string parameter
189
- c.req.query() // all query params as object
190
- c.req.queries('tags') // multiple values: ?tags=A&tags=B → ['A', 'B']
191
- c.req.header('Authorization') // request header
192
- c.req.header() // all headers (keys are lowercase)
193
-
194
- // Body parsing
195
- await c.req.json() // parse JSON body
196
- await c.req.text() // parse text body
197
- await c.req.formData() // parse as FormData
198
- await c.req.parseBody() // parse multipart/form-data or urlencoded
199
- await c.req.arrayBuffer() // parse as ArrayBuffer
200
- await c.req.blob() // parse as Blob
201
-
202
- // Validated data (used with validator middleware)
203
- c.req.valid('json')
204
- c.req.valid('query')
205
- c.req.valid('form')
206
- c.req.valid('param')
207
-
208
- // Properties
209
- c.req.url // full URL string
210
- c.req.path // pathname
211
- c.req.method // HTTP method
212
- c.req.raw // underlying Request object
213
- ```
214
-
215
- ---
216
-
217
- ## Middleware
218
-
219
- ### Using Built-in Middleware
220
-
221
- ```ts
222
- import { cors } from 'hono/cors'
223
- import { logger } from 'hono/logger'
224
- import { basicAuth } from 'hono/basic-auth'
225
- import { prettyJSON } from 'hono/pretty-json'
226
- import { secureHeaders } from 'hono/secure-headers'
227
- import { etag } from 'hono/etag'
228
- import { compress } from 'hono/compress'
229
- import { poweredBy } from 'hono/powered-by'
230
- import { timing } from 'hono/timing'
231
- import { cache } from 'hono/cache'
232
- import { bearerAuth } from 'hono/bearer-auth'
233
- import { jwt } from 'hono/jwt'
234
- import { csrf } from 'hono/csrf'
235
- import { ipRestriction } from 'hono/ip-restriction'
236
- import { bodyLimit } from 'hono/body-limit'
237
- import { requestId } from 'hono/request-id'
238
- import { methodOverride } from 'hono/method-override'
239
- import { trailingSlash, trimTrailingSlash } from 'hono/trailing-slash'
240
-
241
- // Registration
242
- app.use(logger()) // all routes
243
- app.use('/api/*', cors()) // specific path
244
- app.post('/api/*', basicAuth({ username: 'admin', password: 'secret' }))
245
- ```
246
-
247
- ### Custom Middleware
248
-
249
- ```ts
250
- // Inline
251
- app.use(async (c, next) => {
252
- const start = Date.now()
253
- await next()
254
- const elapsed = Date.now() - start
255
- c.res.headers.set('X-Response-Time', `${elapsed}ms`)
256
- })
257
-
258
- // Reusable with createMiddleware
259
- import { createMiddleware } from 'hono/factory'
260
-
261
- const auth = createMiddleware(async (c, next) => {
262
- const token = c.req.header('Authorization')
263
- if (!token) return c.json({ error: 'Unauthorized' }, 401)
264
- await next()
265
- })
266
-
267
- app.use('/api/*', auth)
268
- ```
269
-
270
- ### Middleware Execution Order
271
-
272
- Middleware executes in registration order. `await next()` calls the next middleware/handler, and code after `next()` runs on the way back:
273
-
274
- ```
275
- Request → mw1 before → mw2 before → handler → mw2 after → mw1 after → Response
276
- ```
277
-
278
- ```ts
279
- app.use(async (c, next) => {
280
- // before handler
281
- await next()
282
- // after handler
283
- })
284
- ```
285
-
286
- ---
287
-
288
- ## Validation
289
-
290
- Validation targets: `json`, `form`, `query`, `header`, `param`, `cookie`.
291
-
292
- ### Zod Validator
293
-
294
- ```ts
295
- import { zValidator } from '@hono/zod-validator'
296
- import { z } from 'zod'
297
-
298
- const schema = z.object({
299
- title: z.string().min(1),
300
- body: z.string()
301
- })
302
-
303
- app.post('/posts', zValidator('json', schema), (c) => {
304
- const data = c.req.valid('json') // fully typed
305
- return c.json(data, 201)
306
- })
307
- ```
308
-
309
- ### Valibot / Standard Schema Validator
310
-
311
- ```ts
312
- import { sValidator } from '@hono/standard-validator'
313
- import * as v from 'valibot'
314
-
315
- const schema = v.object({ name: v.string(), age: v.number() })
316
-
317
- app.post('/users', sValidator('json', schema), (c) => {
318
- const data = c.req.valid('json')
319
- return c.json(data, 201)
320
- })
321
- ```
322
-
323
- ---
324
-
325
- ## JSX
326
-
327
- ### Setup
328
-
329
- In `tsconfig.json`:
330
-
331
- ```json
332
- {
333
- "compilerOptions": {
334
- "jsx": "react-jsx",
335
- "jsxImportSource": "hono/jsx"
336
- }
337
- }
338
- ```
339
-
340
- Or use pragma: `/** @jsxImportSource hono/jsx */`
341
-
342
- **Important:** Files using JSX must have a `.tsx` extension. Rename `.ts` to `.tsx` or the compiler will fail.
343
-
344
- ### Components
345
-
346
- ```tsx
347
- import type { PropsWithChildren } from 'hono/jsx'
348
-
349
- const Layout = (props: PropsWithChildren) => (
350
- <html>
351
- <head>
352
- <title>My App</title>
353
- </head>
354
- <body>{props.children}</body>
355
- </html>
356
- )
357
-
358
- const UserCard = ({ name }: { name: string }) => (
359
- <div class="card">
360
- <h2>{name}</h2>
361
- </div>
362
- )
363
-
364
- app.get('/', (c) => {
365
- return c.html(
366
- <Layout>
367
- <UserCard name="Alice" />
368
- </Layout>
369
- )
370
- })
371
- ```
372
-
373
- ### jsxRenderer Middleware
374
-
375
- Use `jsxRenderer` middleware for layouts. See `npx hono docs /docs/middleware/builtin/jsx-renderer` for details.
376
-
377
- ### Async Components
378
-
379
- ```tsx
380
- const UserList = async () => {
381
- const users = await fetchUsers()
382
- return (
383
- <ul>
384
- {users.map((u) => (
385
- <li>{u.name}</li>
386
- ))}
387
- </ul>
388
- )
389
- }
390
- ```
391
-
392
- ### Fragments
393
-
394
- ```tsx
395
- const Items = () => (
396
- <>
397
- <li>Item 1</li>
398
- <li>Item 2</li>
399
- </>
400
- )
401
- ```
402
-
403
- ---
404
-
405
- ## Streaming
406
-
407
- ```ts
408
- import { stream, streamText, streamSSE } from 'hono/streaming'
409
-
410
- // Basic stream
411
- app.get('/stream', (c) => {
412
- return stream(c, async (stream) => {
413
- stream.onAbort(() => console.log('Aborted'))
414
- await stream.write(new Uint8Array([0x48, 0x65]))
415
- await stream.pipe(readableStream)
416
- })
417
- })
418
-
419
- // Text stream
420
- app.get('/stream-text', (c) => {
421
- return streamText(c, async (stream) => {
422
- await stream.writeln('Hello')
423
- await stream.sleep(1000)
424
- await stream.write('World')
425
- })
426
- })
427
-
428
- // Server-Sent Events
429
- app.get('/sse', (c) => {
430
- return streamSSE(c, async (stream) => {
431
- let id = 0
432
- while (true) {
433
- await stream.writeSSE({
434
- data: JSON.stringify({ time: new Date().toISOString() }),
435
- event: 'time-update',
436
- id: String(id++)
437
- })
438
- await stream.sleep(1000)
439
- }
440
- })
441
- })
442
- ```
443
-
444
- ---
445
-
446
- ## Testing with app.request()
447
-
448
- Test endpoints without starting an HTTP server:
449
-
450
- ```ts
451
- // GET
452
- const res = await app.request('/posts')
453
- expect(res.status).toBe(200)
454
- expect(await res.json()).toEqual({ posts: [] })
455
-
456
- // POST with JSON
457
- const res = await app.request('/posts', {
458
- method: 'POST',
459
- body: JSON.stringify({ title: 'Hello' }),
460
- headers: { 'Content-Type': 'application/json' }
461
- })
462
-
463
- // POST with FormData
464
- const formData = new FormData()
465
- formData.append('name', 'Alice')
466
- const res = await app.request('/users', { method: 'POST', body: formData })
467
-
468
- // With mock env (Cloudflare Workers bindings)
469
- const res = await app.request('/api/data', {}, { KV: mockKV, DATABASE: mockDB })
470
-
471
- // Using Request object
472
- const req = new Request('http://localhost/api', { method: 'DELETE' })
473
- const res = await app.request(req)
474
- ```
475
-
476
- ---
477
-
478
- ## Hono Client (RPC)
479
-
480
- Type-safe API client using shared types between server and client.
481
-
482
- **IMPORTANT: Routes MUST be chained for type inference to work. Without chaining, the client cannot infer route types.**
483
-
484
- ```ts
485
- // Server: routes MUST be chained to preserve types
486
- const route = app
487
- .post('/posts', zValidator('json', schema), (c) => {
488
- return c.json({ ok: true }, 201)
489
- })
490
- .get('/posts', (c) => {
491
- return c.json({ posts: [] })
492
- })
493
- export type AppType = typeof route
494
-
495
- // Client: use hc() with the exported type
496
- import { hc } from 'hono/client'
497
- import type { AppType } from './server'
498
-
499
- const client = hc<AppType>('http://localhost:8787/')
500
- const res = await client.posts.$post({ json: { title: 'Hello' } })
501
- const data = await res.json() // fully typed
502
- ```
503
-
504
- Type utilities:
505
-
506
- ```ts
507
- import type { InferRequestType, InferResponseType } from 'hono/client'
508
-
509
- type ReqType = InferRequestType<typeof client.posts.$post>
510
- type ResType = InferResponseType<typeof client.posts.$post, 200>
511
- ```
512
-
513
- ---
514
-
515
- ## Helpers
516
-
517
- Helpers are utility functions imported from `hono/<helper-name>`:
518
-
519
- ```ts
520
- import { getConnInfo } from 'hono/conninfo'
521
- import { getCookie, setCookie, deleteCookie } from 'hono/cookie'
522
- import { css, Style } from 'hono/css'
523
- import { createFactory } from 'hono/factory'
524
- import { html, raw } from 'hono/html'
525
- import { stream, streamText, streamSSE } from 'hono/streaming'
526
- import { testClient } from 'hono/testing'
527
- import { upgradeWebSocket } from 'hono/cloudflare-workers' // or other adapter
528
- ```
529
-
530
- Available helpers: Accepts, Adapter, ConnInfo, Cookie, css, Dev, Factory, html, JWT, Proxy, Route, SSG, Streaming, Testing, WebSocket.
531
-
532
- For details, use `npx hono docs /docs/helpers/<helper-name>`.
533
-
534
- ### Factory
535
-
536
- Use `createFactory` to define `Env` once and share it across app, middleware, and handlers:
537
-
538
- ```ts
539
- import { createFactory } from 'hono/factory'
540
-
541
- const factory = createFactory<Env>()
542
-
543
- // Create app (Env type is inherited)
544
- const app = factory.createApp()
545
-
546
- // Create middleware (Env type is inherited, no need to pass generics)
547
- const mw = factory.createMiddleware(async (c, next) => {
548
- await next()
549
- })
550
-
551
- // Create handlers separately (preserves type inference)
552
- const handlers = factory.createHandlers(logger(), (c) => c.json({ message: 'Hello' }))
553
- app.get('/api', ...handlers)
554
- ```
555
-
556
- ---
557
-
558
- ## Best Practices
559
-
560
- - Write handlers inline in route definitions for proper type inference of path params.
561
- - Use `app.route()` to organize large apps by feature, not Rails-style controllers.
562
- - Use `createFactory()` to share Env type across app, middleware, and handlers.
563
- - Use `c.set()`/`c.get()` to pass data between middleware and handlers.
564
- - Chain validators for multiple request parts (param + query + json).
565
- - Export app type for RPC: `export type AppType = typeof routes`
566
- - Use `app.request()` for testing — no server startup needed.
567
-
568
- ## Adapters
569
-
570
- Hono runs on multiple runtimes. The default export works for Cloudflare Workers, Deno, and Bun. For Node.js, use the Node adapter:
571
-
572
- ```ts
573
- // Cloudflare Workers / Deno / Bun
574
- export default app
575
-
576
- // Node.js
577
- import { serve } from '@hono/node-server'
578
- serve(app)
579
- ```