quiver-cli 1.3.1 → 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 (407) 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 -52
  12. package/template/.agents/skills/apps/skybridge/SKILL.md +0 -52
  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 -265
  95. package/template/.agents/skills/data/prisma-cli/references/agent-safety.md +0 -27
  96. package/template/.agents/skills/data/prisma-cli/references/complete.md +0 -22
  97. package/template/.agents/skills/data/prisma-cli/references/db-execute.md +0 -78
  98. package/template/.agents/skills/data/prisma-cli/references/db-pull.md +0 -185
  99. package/template/.agents/skills/data/prisma-cli/references/db-push.md +0 -150
  100. package/template/.agents/skills/data/prisma-cli/references/db-seed.md +0 -188
  101. package/template/.agents/skills/data/prisma-cli/references/debug.md +0 -46
  102. package/template/.agents/skills/data/prisma-cli/references/dev.md +0 -157
  103. package/template/.agents/skills/data/prisma-cli/references/format.md +0 -48
  104. package/template/.agents/skills/data/prisma-cli/references/generate.md +0 -173
  105. package/template/.agents/skills/data/prisma-cli/references/init.md +0 -139
  106. package/template/.agents/skills/data/prisma-cli/references/mcp.md +0 -39
  107. package/template/.agents/skills/data/prisma-cli/references/migrate-deploy.md +0 -127
  108. package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +0 -145
  109. package/template/.agents/skills/data/prisma-cli/references/migrate-diff.md +0 -89
  110. package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +0 -80
  111. package/template/.agents/skills/data/prisma-cli/references/migrate-resolve.md +0 -57
  112. package/template/.agents/skills/data/prisma-cli/references/migrate-status.md +0 -65
  113. package/template/.agents/skills/data/prisma-cli/references/studio.md +0 -137
  114. package/template/.agents/skills/data/prisma-cli/references/validate.md +0 -53
  115. package/template/.agents/skills/data/prisma-client-api/SKILL.md +0 -216
  116. package/template/.agents/skills/data/prisma-client-api/references/client-methods.md +0 -223
  117. package/template/.agents/skills/data/prisma-client-api/references/constructor.md +0 -221
  118. package/template/.agents/skills/data/prisma-client-api/references/filters.md +0 -256
  119. package/template/.agents/skills/data/prisma-client-api/references/model-queries.md +0 -281
  120. package/template/.agents/skills/data/prisma-client-api/references/query-options.md +0 -276
  121. package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +0 -198
  122. package/template/.agents/skills/data/prisma-client-api/references/relations.md +0 -308
  123. package/template/.agents/skills/data/prisma-client-api/references/transactions.md +0 -184
  124. package/template/.agents/skills/design/impeccable/SKILL.md +0 -84
  125. package/template/.agents/skills/design/impeccable/reference/adapt.md +0 -312
  126. package/template/.agents/skills/design/impeccable/reference/adapt.native.md +0 -58
  127. package/template/.agents/skills/design/impeccable/reference/android.md +0 -46
  128. package/template/.agents/skills/design/impeccable/reference/animate.md +0 -89
  129. package/template/.agents/skills/design/impeccable/reference/audit.md +0 -136
  130. package/template/.agents/skills/design/impeccable/reference/audit.native.md +0 -139
  131. package/template/.agents/skills/design/impeccable/reference/bolder.md +0 -33
  132. package/template/.agents/skills/design/impeccable/reference/clarify.md +0 -94
  133. package/template/.agents/skills/design/impeccable/reference/colorize.md +0 -86
  134. package/template/.agents/skills/design/impeccable/reference/craft-floor.md +0 -44
  135. package/template/.agents/skills/design/impeccable/reference/craft.md +0 -5
  136. package/template/.agents/skills/design/impeccable/reference/critique.md +0 -806
  137. package/template/.agents/skills/design/impeccable/reference/degraded/asset-producer.md +0 -37
  138. package/template/.agents/skills/design/impeccable/reference/degraded/documenter.md +0 -24
  139. package/template/.agents/skills/design/impeccable/reference/degraded/finish-reviewer.md +0 -38
  140. package/template/.agents/skills/design/impeccable/reference/degraded/manual-edit-applier.md +0 -92
  141. package/template/.agents/skills/design/impeccable/reference/delight.md +0 -70
  142. package/template/.agents/skills/design/impeccable/reference/distill.md +0 -111
  143. package/template/.agents/skills/design/impeccable/reference/doctor.md +0 -54
  144. package/template/.agents/skills/design/impeccable/reference/document.md +0 -416
  145. package/template/.agents/skills/design/impeccable/reference/extract.md +0 -69
  146. package/template/.agents/skills/design/impeccable/reference/harden.md +0 -336
  147. package/template/.agents/skills/design/impeccable/reference/hooks.md +0 -111
  148. package/template/.agents/skills/design/impeccable/reference/init.md +0 -131
  149. package/template/.agents/skills/design/impeccable/reference/ios.md +0 -51
  150. package/template/.agents/skills/design/impeccable/reference/layout.md +0 -84
  151. package/template/.agents/skills/design/impeccable/reference/live-setup.md +0 -102
  152. package/template/.agents/skills/design/impeccable/reference/live.md +0 -323
  153. package/template/.agents/skills/design/impeccable/reference/new-work.md +0 -145
  154. package/template/.agents/skills/design/impeccable/reference/onboard.md +0 -234
  155. package/template/.agents/skills/design/impeccable/reference/operate.md +0 -61
  156. package/template/.agents/skills/design/impeccable/reference/optimize.md +0 -258
  157. package/template/.agents/skills/design/impeccable/reference/overdrive.md +0 -127
  158. package/template/.agents/skills/design/impeccable/reference/polish.md +0 -105
  159. package/template/.agents/skills/design/impeccable/reference/quieter.md +0 -99
  160. package/template/.agents/skills/design/impeccable/reference/routing.md +0 -18
  161. package/template/.agents/skills/design/impeccable/reference/shape.md +0 -59
  162. package/template/.agents/skills/design/impeccable/reference/typeset.md +0 -80
  163. package/template/.agents/skills/design/impeccable/reference/visualize.md +0 -46
  164. package/template/.agents/skills/design/impeccable/scripts/build-phase.mjs +0 -1022
  165. package/template/.agents/skills/design/impeccable/scripts/command-metadata.json +0 -94
  166. package/template/.agents/skills/design/impeccable/scripts/comp-diff.mjs +0 -391
  167. package/template/.agents/skills/design/impeccable/scripts/comp-spec.mjs +0 -513
  168. package/template/.agents/skills/design/impeccable/scripts/concept-seed.mjs +0 -814
  169. package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +0 -325
  170. package/template/.agents/skills/design/impeccable/scripts/context.mjs +0 -1565
  171. package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +0 -473
  172. package/template/.agents/skills/design/impeccable/scripts/data/font-index-failures.json +0 -121
  173. package/template/.agents/skills/design/impeccable/scripts/data/font-index.json +0 -1
  174. package/template/.agents/skills/design/impeccable/scripts/detect-csp.mjs +0 -198
  175. package/template/.agents/skills/design/impeccable/scripts/detect.mjs +0 -30
  176. package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +0 -2204
  177. package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +0 -432
  178. package/template/.agents/skills/design/impeccable/scripts/detector/design-system.mjs +0 -1311
  179. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +0 -9043
  180. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +0 -51
  181. package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +0 -434
  182. package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +0 -1319
  183. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +0 -1241
  184. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +0 -288
  185. package/template/.agents/skills/design/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -189
  186. package/template/.agents/skills/design/impeccable/scripts/detector/findings.mjs +0 -18
  187. package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +0 -213
  188. package/template/.agents/skills/design/impeccable/scripts/detector/profile/profiler.mjs +0 -166
  189. package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +0 -635
  190. package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +0 -5681
  191. package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +0 -596
  192. package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +0 -127
  193. package/template/.agents/skills/design/impeccable/scripts/detector/shared/fonts.mjs +0 -30
  194. package/template/.agents/skills/design/impeccable/scripts/detector/shared/inline-ignores.mjs +0 -148
  195. package/template/.agents/skills/design/impeccable/scripts/detector/shared/page.mjs +0 -7
  196. package/template/.agents/skills/design/impeccable/scripts/doctor.mjs +0 -329
  197. package/template/.agents/skills/design/impeccable/scripts/embed-prompt.mjs +0 -166
  198. package/template/.agents/skills/design/impeccable/scripts/font-match.mjs +0 -457
  199. package/template/.agents/skills/design/impeccable/scripts/generate-image.mjs +0 -447
  200. package/template/.agents/skills/design/impeccable/scripts/hook-admin.mjs +0 -819
  201. package/template/.agents/skills/design/impeccable/scripts/hook-before-edit.mjs +0 -538
  202. package/template/.agents/skills/design/impeccable/scripts/hook-lib.mjs +0 -2490
  203. package/template/.agents/skills/design/impeccable/scripts/hook.mjs +0 -79
  204. package/template/.agents/skills/design/impeccable/scripts/lib/artifact-schema.mjs +0 -93
  205. package/template/.agents/skills/design/impeccable/scripts/lib/composition-catalog.mjs +0 -200
  206. package/template/.agents/skills/design/impeccable/scripts/lib/concept-catalog.mjs +0 -396
  207. package/template/.agents/skills/design/impeccable/scripts/lib/design-parser.mjs +0 -880
  208. package/template/.agents/skills/design/impeccable/scripts/lib/font-fingerprint.mjs +0 -564
  209. package/template/.agents/skills/design/impeccable/scripts/lib/font-index.mjs +0 -130
  210. package/template/.agents/skills/design/impeccable/scripts/lib/hero-checks.mjs +0 -246
  211. package/template/.agents/skills/design/impeccable/scripts/lib/image-metrics.mjs +0 -306
  212. package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-config.mjs +0 -640
  213. package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-paths.mjs +0 -137
  214. package/template/.agents/skills/design/impeccable/scripts/lib/is-generated.mjs +0 -72
  215. package/template/.agents/skills/design/impeccable/scripts/lib/live-path-globs.mjs +0 -37
  216. package/template/.agents/skills/design/impeccable/scripts/lib/open-system-browser.mjs +0 -26
  217. package/template/.agents/skills/design/impeccable/scripts/lib/png.mjs +0 -281
  218. package/template/.agents/skills/design/impeccable/scripts/lib/provider.mjs +0 -5
  219. package/template/.agents/skills/design/impeccable/scripts/lib/raster.mjs +0 -194
  220. package/template/.agents/skills/design/impeccable/scripts/lib/roll-selection.mjs +0 -369
  221. package/template/.agents/skills/design/impeccable/scripts/lib/staleness-deep.mjs +0 -485
  222. package/template/.agents/skills/design/impeccable/scripts/lib/staleness-notice.mjs +0 -169
  223. package/template/.agents/skills/design/impeccable/scripts/lib/staleness.mjs +0 -533
  224. package/template/.agents/skills/design/impeccable/scripts/lib/surface-briefs.mjs +0 -149
  225. package/template/.agents/skills/design/impeccable/scripts/lib/target-args.mjs +0 -42
  226. package/template/.agents/skills/design/impeccable/scripts/lib/target-slug.mjs +0 -33
  227. package/template/.agents/skills/design/impeccable/scripts/lib/template-extensions.mjs +0 -146
  228. package/template/.agents/skills/design/impeccable/scripts/live/accept-css.mjs +0 -617
  229. package/template/.agents/skills/design/impeccable/scripts/live/accept-verify.mjs +0 -60
  230. package/template/.agents/skills/design/impeccable/scripts/live/browser-script-parts.mjs +0 -84
  231. package/template/.agents/skills/design/impeccable/scripts/live/completion.mjs +0 -28
  232. package/template/.agents/skills/design/impeccable/scripts/live/event-validation.mjs +0 -199
  233. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/astro.mjs +0 -47
  234. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/detect-utils.mjs +0 -73
  235. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/index.mjs +0 -143
  236. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/journal.mjs +0 -197
  237. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nextjs.mjs +0 -49
  238. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nuxt.mjs +0 -161
  239. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/script-src.mjs +0 -17
  240. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/static-html.mjs +0 -26
  241. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/sveltekit.mjs +0 -71
  242. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tag-strategy.mjs +0 -247
  243. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tanstack-start.mjs +0 -70
  244. package/template/.agents/skills/design/impeccable/scripts/live/frameworks/vite-generic.mjs +0 -42
  245. package/template/.agents/skills/design/impeccable/scripts/live/generation-preflight.mjs +0 -149
  246. package/template/.agents/skills/design/impeccable/scripts/live/insert-ui.mjs +0 -458
  247. package/template/.agents/skills/design/impeccable/scripts/live/instructions.mjs +0 -142
  248. package/template/.agents/skills/design/impeccable/scripts/live/manual-apply.mjs +0 -939
  249. package/template/.agents/skills/design/impeccable/scripts/live/manual-edit-routes.mjs +0 -357
  250. package/template/.agents/skills/design/impeccable/scripts/live/manual-edits-buffer.mjs +0 -152
  251. package/template/.agents/skills/design/impeccable/scripts/live/poll-lanes.mjs +0 -14
  252. package/template/.agents/skills/design/impeccable/scripts/live/project-ignores.mjs +0 -139
  253. package/template/.agents/skills/design/impeccable/scripts/live/roots.mjs +0 -508
  254. package/template/.agents/skills/design/impeccable/scripts/live/session-store.mjs +0 -563
  255. package/template/.agents/skills/design/impeccable/scripts/live/source-lock.mjs +0 -105
  256. package/template/.agents/skills/design/impeccable/scripts/live/source-search.mjs +0 -105
  257. package/template/.agents/skills/design/impeccable/scripts/live/svelte-ast.mjs +0 -969
  258. package/template/.agents/skills/design/impeccable/scripts/live/svelte-component.mjs +0 -1366
  259. package/template/.agents/skills/design/impeccable/scripts/live/sveltekit-adapter.mjs +0 -304
  260. package/template/.agents/skills/design/impeccable/scripts/live/tanstack-adapter.mjs +0 -259
  261. package/template/.agents/skills/design/impeccable/scripts/live/ui-surfaces.mjs +0 -75
  262. package/template/.agents/skills/design/impeccable/scripts/live/vocabulary.mjs +0 -171
  263. package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +0 -938
  264. package/template/.agents/skills/design/impeccable/scripts/live-browser-dom.js +0 -146
  265. package/template/.agents/skills/design/impeccable/scripts/live-browser-ignores.js +0 -242
  266. package/template/.agents/skills/design/impeccable/scripts/live-browser-session.js +0 -123
  267. package/template/.agents/skills/design/impeccable/scripts/live-browser.js +0 -12551
  268. package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +0 -1200
  269. package/template/.agents/skills/design/impeccable/scripts/live-complete.mjs +0 -107
  270. package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +0 -800
  271. package/template/.agents/skills/design/impeccable/scripts/live-discard-manual-edits.mjs +0 -51
  272. package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +0 -463
  273. package/template/.agents/skills/design/impeccable/scripts/live-insert.mjs +0 -292
  274. package/template/.agents/skills/design/impeccable/scripts/live-manual-edit-evidence.mjs +0 -368
  275. package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +0 -430
  276. package/template/.agents/skills/design/impeccable/scripts/live-resume.mjs +0 -123
  277. package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +0 -1698
  278. package/template/.agents/skills/design/impeccable/scripts/live-status.mjs +0 -71
  279. package/template/.agents/skills/design/impeccable/scripts/live-target.mjs +0 -30
  280. package/template/.agents/skills/design/impeccable/scripts/live-wrap.mjs +0 -927
  281. package/template/.agents/skills/design/impeccable/scripts/live.mjs +0 -334
  282. package/template/.agents/skills/design/impeccable/scripts/modern-screenshot.umd.js +0 -14
  283. package/template/.agents/skills/design/impeccable/scripts/palette.mjs +0 -628
  284. package/template/.agents/skills/design/impeccable/scripts/pin.mjs +0 -224
  285. package/template/.agents/skills/design/impeccable/scripts/serve-question.mjs +0 -1783
  286. package/template/.agents/skills/design/impeccable/scripts/surface-brief.mjs +0 -74
  287. package/template/.agents/skills/design/shadcn/SKILL.md +0 -277
  288. package/template/.agents/skills/design/shadcn/agents/openai.yml +0 -5
  289. package/template/.agents/skills/design/shadcn/assets/shadcn-small.png +0 -0
  290. package/template/.agents/skills/design/shadcn/assets/shadcn.png +0 -0
  291. package/template/.agents/skills/design/shadcn/cli.md +0 -290
  292. package/template/.agents/skills/design/shadcn/customization.md +0 -209
  293. package/template/.agents/skills/design/shadcn/evals/evals.json +0 -77
  294. package/template/.agents/skills/design/shadcn/mcp.md +0 -105
  295. package/template/.agents/skills/design/shadcn/registry.md +0 -277
  296. package/template/.agents/skills/design/shadcn/rules/base-vs-radix.md +0 -306
  297. package/template/.agents/skills/design/shadcn/rules/chat.md +0 -250
  298. package/template/.agents/skills/design/shadcn/rules/composition.md +0 -213
  299. package/template/.agents/skills/design/shadcn/rules/forms.md +0 -192
  300. package/template/.agents/skills/design/shadcn/rules/icons.md +0 -101
  301. package/template/.agents/skills/design/shadcn/rules/styling.md +0 -185
  302. package/template/.agents/skills/find-skills/SKILL.md +0 -141
  303. package/template/.agents/skills/hono/SKILL.md +0 -593
  304. package/template/.agents/skills/integrations/langfuse/SKILL.md +0 -150
  305. package/template/.agents/skills/integrations/langfuse/references/ci-cd.md +0 -41
  306. package/template/.agents/skills/integrations/langfuse/references/cli.md +0 -60
  307. package/template/.agents/skills/integrations/langfuse/references/create-dataset.md +0 -35
  308. package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +0 -87
  309. package/template/.agents/skills/integrations/langfuse/references/instrumentation.md +0 -121
  310. package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +0 -293
  311. package/template/.agents/skills/integrations/langfuse/references/prompt-engineering.md +0 -35
  312. package/template/.agents/skills/integrations/langfuse/references/prompt-migration.md +0 -79
  313. package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +0 -34
  314. package/template/.agents/skills/integrations/langfuse/references/setting-up-evals.md +0 -65
  315. package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +0 -35
  316. package/template/.agents/skills/integrations/langfuse/references/trace-evaluator-upgrade.md +0 -76
  317. package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +0 -66
  318. package/template/.agents/skills/integrations/langfuse/references/v4-project-migration.md +0 -75
  319. package/template/.agents/skills/integrations/posthog/SKILL.md +0 -102
  320. package/template/.agents/skills/integrations/posthog/references/error-tracking-alerts.md +0 -63
  321. package/template/.agents/skills/integrations/posthog/references/error-tracking-assigning-issues.md +0 -77
  322. package/template/.agents/skills/integrations/posthog/references/error-tracking-fingerprints.md +0 -57
  323. package/template/.agents/skills/integrations/posthog/references/error-tracking-monitoring.md +0 -140
  324. package/template/.agents/skills/integrations/posthog/references/error-tracking-nextjs.md +0 -490
  325. package/template/.agents/skills/integrations/posthog/references/error-tracking-source-maps.md +0 -45
  326. package/template/.agents/skills/integrations/posthog/references/feature-flags-best-practices.md +0 -139
  327. package/template/.agents/skills/integrations/posthog/references/feature-flags-react.md +0 -302
  328. package/template/.agents/skills/integrations/posthog/references/identify-users.md +0 -202
  329. package/template/.agents/skills/integrations/posthog/references/integration-example.md +0 -706
  330. package/template/.agents/skills/integrations/posthog/references/integration-nextjs.md +0 -385
  331. package/template/.agents/skills/integrations/posthog/references/integration-step-1-begin.md +0 -43
  332. package/template/.agents/skills/integrations/posthog/references/integration-step-2-edit.md +0 -37
  333. package/template/.agents/skills/integrations/posthog/references/integration-step-3-revise.md +0 -22
  334. package/template/.agents/skills/integrations/posthog/references/integration-step-4-conclude.md +0 -38
  335. package/template/.agents/skills/integrations/posthog/references/llm-analytics-anthropic.md +0 -200
  336. package/template/.agents/skills/integrations/posthog/references/llm-analytics-basics.md +0 -62
  337. package/template/.agents/skills/integrations/posthog/references/llm-analytics-costs.md +0 -197
  338. package/template/.agents/skills/integrations/posthog/references/llm-analytics-manual-capture.md +0 -397
  339. package/template/.agents/skills/integrations/posthog/references/llm-analytics-traces.md +0 -98
  340. package/template/.agents/skills/integrations/posthog/references/llm-analytics-vercel-ai.md +0 -120
  341. package/template/.agents/skills/repo/repo-ci/SKILL.md +0 -265
  342. package/template/.agents/skills/repo/repo-init-next-js/SKILL.md +0 -129
  343. package/template/.agents/skills/repo/repo-init-next-js/references/file-contents.md +0 -800
  344. package/template/.agents/skills/repo/repo-init-next-js/scripts/setup.sh +0 -47
  345. package/template/.agents/skills/repo/repo-init-node/SKILL.md +0 -196
  346. package/template/.agents/skills/skill-creator/LICENSE.txt +0 -202
  347. package/template/.agents/skills/skill-creator/SKILL.md +0 -485
  348. package/template/.agents/skills/skill-creator/agents/analyzer.md +0 -274
  349. package/template/.agents/skills/skill-creator/agents/comparator.md +0 -202
  350. package/template/.agents/skills/skill-creator/agents/grader.md +0 -223
  351. package/template/.agents/skills/skill-creator/assets/eval_review.html +0 -146
  352. package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  353. package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  354. package/template/.agents/skills/skill-creator/references/schemas.md +0 -430
  355. package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  356. package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  357. package/template/.agents/skills/skill-creator/scripts/generate_report.py +0 -326
  358. package/template/.agents/skills/skill-creator/scripts/improve_description.py +0 -247
  359. package/template/.agents/skills/skill-creator/scripts/package_skill.py +0 -136
  360. package/template/.agents/skills/skill-creator/scripts/quick_validate.py +0 -103
  361. package/template/.agents/skills/skill-creator/scripts/run_eval.py +0 -310
  362. package/template/.agents/skills/skill-creator/scripts/run_loop.py +0 -328
  363. package/template/.agents/skills/skill-creator/scripts/utils.py +0 -47
  364. package/template/.agents/skills/supabase/CHANGELOG.md +0 -78
  365. package/template/.agents/skills/supabase/SKILL.md +0 -149
  366. package/template/.agents/skills/supabase/assets/feedback-issue-template.md +0 -17
  367. package/template/.agents/skills/supabase/references/skill-feedback.md +0 -17
  368. package/template/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +0 -73
  369. package/template/.agents/skills/supabase-postgres-best-practices/SKILL.md +0 -64
  370. package/template/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +0 -170
  371. package/template/.agents/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
  372. package/template/.agents/skills/supabase-postgres-best-practices/references/_template.md +0 -34
  373. package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
  374. package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
  375. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
  376. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
  377. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
  378. package/template/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
  379. package/template/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
  380. package/template/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
  381. package/template/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
  382. package/template/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
  383. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
  384. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
  385. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
  386. package/template/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
  387. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
  388. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
  389. package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
  390. package/template/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
  391. package/template/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
  392. package/template/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
  393. package/template/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
  394. package/template/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
  395. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +0 -80
  396. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
  397. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
  398. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
  399. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
  400. package/template/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
  401. package/template/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
  402. package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
  403. package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -63
  404. package/template/.agents/skills/writing/humanizer/LICENSE +0 -21
  405. package/template/.agents/skills/writing/humanizer/README.md +0 -209
  406. package/template/.agents/skills/writing/humanizer/SKILL.md +0 -456
  407. package/template/.agents/upstreams.json +0 -115
package/README.md CHANGED
@@ -1,298 +1,256 @@
1
1
  # quiver-cli
2
2
 
3
- Compose a selected subset of skills, slash commands, provider plugins and MCP
4
- servers from a central catalog into any repo as **native configs** for
5
- opencode, Claude Code and Codex with **lockfile-based drift awareness**.
3
+ Quiver V2 installs skills from direct GitHub sources, plus custom skills,
4
+ commands, provider plugins and MCP servers from catalogs. Each installed entry
5
+ has its own source pin and drift baseline. Runtime output remains native to
6
+ OpenCode, Claude Code and Codex; there is no extra agent runtime.
6
7
 
7
- One thing done right: repo composition + drift detection. No marketplace, no
8
- extra agents, no command abstraction.
8
+ **Release status:** this branch documents V2, targeting 2.0.0. The published
9
+ CLI remains 1.3.1 until the V2 release; use a source build to try these contracts.
9
10
 
10
- - **One source of truth** — `.agents/` + `quiver.lock`, committed to the repo.
11
- - **Native output** `.opencode/`, `opencode.json`, `.claude/`, `.mcp.json`,
12
- `.codex/` are generated and gitignored; each tool loads its own format.
13
- - **Drift detection** — content digests for skills/commands, tool snapshots for
14
- MCP servers (including tool-description poisoning).
15
- - **Upstream awareness** — know when a source repo updates a skill you imported.
11
+ - Commit `.agents/` and `quiver.lock`. They are the project's local source of truth.
12
+ - Generate provider files with `sync`; do not edit or commit generated output.
13
+ - Use `check` for local drift and MCP snapshots, and `update` for source changes.
14
+ - Catalog content lives in [quiver-catalog](https://github.com/nbialk/quiver-catalog),
15
+ not in the CLI package.
16
16
 
17
- ## Quick start
17
+ ## Why V2?
18
18
 
19
- Requires **Node >= 20.12** (the interactive pickers depend on it; `init`, `add`,
20
- `remove` and `providers` abort on older versions).
19
+ In V1, "up to date" meant matching the configured catalog. With the default
20
+ bundled catalog, external skill updates depended on a catalog import and a new
21
+ CLI release. V2 removes that bottleneck: external skills track their original
22
+ repositories, while custom and curated content stays in a separate catalog.
23
+ Each installation keeps its own source revision; updates remain explicit.
21
24
 
22
- From the root of the target repository:
25
+ Read the [V2 guide](https://github.com/nbialk/quiver-cli/blob/main/docs/v2.md)
26
+ for the motivation, release highlights, breaking changes and upgrade walkthrough.
23
27
 
24
- ```bash
25
- pnpm dlx quiver-cli init
26
- ```
27
-
28
- The interactive picker lets you select skills, commands and MCP servers from
29
- the catalog; quiver then materializes them into `.agents/`, writes
30
- `quiver.lock`, generates the native provider configs and patches `.gitignore`.
31
-
32
- ```bash
33
- git add .agents quiver.lock .gitignore
34
- git commit -m "chore: add agent config"
35
- ```
28
+ ## Quick Start
36
29
 
37
- Restart your AI tool (opencode, Claude Code, Codex) to load the configs.
38
- Day to day:
30
+ Requires **Node >= 20.12.0**. From the target repository, choose one setup:
39
31
 
40
32
  ```bash
41
- quiver-cli add mcp:context7 # add one entry (skill:/command:/mcp:/plugin:)
42
- quiver-cli sync # regenerate provider configs from .agents/
43
- quiver-cli check # detect drift (CI-friendly: --json, exit 1)
33
+ quiver-cli init # interactive entry and provider selection
34
+ quiver-cli init --empty # alternative: local setup, no catalog fetch or network
44
35
  ```
45
36
 
46
- ## Commands
47
-
48
- | Command | Description |
49
- | -------------------------- | ----------------------------------------------------------------- |
50
- | `quiver-cli init` | Interactive picker; write native configs + `quiver.lock` |
51
- | `quiver-cli add <id>` | Add one entry (`skill:`, `command:`, `mcp:`, `plugin:`) |
52
- | `quiver-cli remove <id>` | Remove one entry; keep lockfile + configs consistent (alias: `rm`)|
53
- | `quiver-cli disable <id>` | Turn an MCP server off locally (`mcp:<name>`, gitignored override)|
54
- | `quiver-cli enable <id>` | Turn a locally disabled MCP server back on |
55
- | `quiver-cli update [id]` | Pull newer catalog content into `.agents/` (all or one entry) |
56
- | `quiver-cli sync` | Regenerate provider configs from `.agents/`; warn on drift |
57
- | `quiver-cli providers` | Change which tools get configs (`opencode`, `claude`, `codex`) |
58
- | `quiver-cli list` | Show skills, commands, plugins + MCP tool counts (alias: `ls`) |
59
- | `quiver-cli check` | Detect drift: skill digests, provider shims, MCP tool snapshots |
60
- | `quiver-cli upstream` | Check source repos for skill updates (catalog maintenance) |
61
- | `quiver-cli upstream pull` | Pull latest upstream content into the catalog (`[skill]`) |
62
- | `quiver-cli help` | Show help |
63
- | `quiver-cli version` | Show the version + any available update (`-v`, `--version`) |
64
-
65
- Options: `-f/--force`, `--all/-y` (non-interactive), `--json`
66
- (check/upstream/list/update), `--providers=opencode,claude` (set the generated
67
- configs for `init`, `sync` and `providers`), `--catalog=<source>` (catalog
68
- source for `init` and `upstream`), `--offline` (skip MCP re-introspection
69
- during `check`), `-V/--verbose` (full tool lists and description diffs in
70
- `check`), `--accept` (record the current MCP tool snapshots as the new
71
- baseline in `check`), `--introspect-stdio` (allow running stdio MCP servers
72
- during `check`).
73
-
74
- Value flags are written with `=` (`--providers=opencode,claude`,
75
- `--catalog=github:acme/catalog`); the space-separated form is not supported.
76
- `quiver-cli providers` also accepts the list as a positional
77
- (`quiver-cli providers opencode,claude`) and falls back to an interactive
78
- multiselect pre-filled with the current selection.
79
-
80
- ## What gets generated
81
-
82
- | Artifact | opencode | Claude Code | Codex |
83
- | -------- | --------------------------- | --------------------------- | ---------------------------- |
84
- | Skills | `.opencode/skills/*` (link) | `.claude/skills/*` (link) | native from `.agents/skills` |
85
- | Commands | `.opencode/commands/*` | `.claude/commands/*` (link) | (not supported yet) |
86
- | MCP | `opencode.json` | `.mcp.json` | `.codex/config.toml` |
87
- | Settings | `.opencode/tui.json` | `.claude/settings.json` | — |
88
- | Plugins | `.opencode/plugins/*` | — | — |
89
- | Guide | `AGENTS.md` (link) | `CLAUDE.md` (link) | `AGENTS.md` (native) |
90
-
91
- `AGENTS.md` at the repo root is a symlink to `.agents/AGENTS.md` (created only
92
- when the catalog ships one); `CLAUDE.md` links to it. Both are written
93
- independently of the provider selection. Codex reads skills and `AGENTS.md`
94
- natively from the repo, so no shims are emitted for those.
95
-
96
- By default configs are generated for all three tools. `init` asks which ones
97
- you use (or pass `--providers=opencode,claude`); the choice is stored in
98
- `quiver.lock`, and deselected tools have their generated files cleaned up on
99
- `sync`.
100
-
101
- Besides `mcpServers` and `plugins`, `.agents/config.json` carries provider
102
- overlays that are copied into the generated configs:
103
-
104
- | Key | Effect |
105
- | ---------- | ----------------------------------------------------------------- |
106
- | `opencode` | Merged with the selected MCP servers into `opencode.json` |
107
- | `tui` | Emitted as `.opencode/tui.json` |
108
- | `claude` | `claude.settings` is written verbatim to `.claude/settings.json` |
109
- | `shared` | Free-form values carried through into the repo's `config.json` |
110
-
111
- Selected local plugins are copied under `.agents/plugins/opencode/` and linked
112
- into OpenCode's plugin discovery directory.
113
-
114
- MCP `${VAR}` placeholders are emitted as OpenCode-native `{env:VAR}` references,
115
- so generated `opencode.json` files never contain resolved secret values.
116
-
117
- The bundled catalog includes the official RTK OpenCode adapter. Install RTK
118
- separately, then enable the adapter per repository:
37
+ `init --all` explicitly selects all eligible catalog entries. `--yes`/`-y`
38
+ confirms defaults, not selection of everything. Non-interactive selection needs
39
+ `--all` or `--empty`; JSON mode never opens a picker. Initialization preserves
40
+ existing local content and refuses to replace an existing lockfile.
119
41
 
120
42
  ```bash
121
- quiver-cli add plugin:rtk
122
- quiver-cli check # also verifies that the rtk binary is on PATH
43
+ quiver-cli add # browse remaining catalog entries
44
+ quiver-cli add mcp:context7 # select one entry
45
+ quiver-cli add --all # explicitly select all remaining entries
46
+ quiver-cli add github:vercel-labs/agent-skills/skills/react-best-practices --name=react-performance
47
+ quiver-cli sync # local provider regeneration
48
+ quiver-cli check --offline # local checks only
123
49
  ```
124
50
 
125
- ## Toggling MCP servers locally
126
-
127
- Some MCP servers are only worth their token cost for specific tasks. Instead
128
- of removing them, switch them off locally:
129
-
130
- ```bash
131
- quiver-cli disable mcp:posthog # drop it from the generated provider configs
132
- quiver-cli enable mcp:posthog # bring it back - instant, no re-introspection
133
- ```
134
-
135
- The state lives in `.agents/config.local.json` (gitignored), so toggling never
136
- touches the committed `.agents/config.json`, `quiver.lock` or your teammates'
137
- setups. Disabled servers keep their lockfile entry and tool snapshot; `list`
138
- marks them as `disabled`, and `check` skips their re-introspection.
139
-
140
- ## The lockfile
51
+ Commit `.agents/`, `quiver.lock` and the generated ignore rules, then restart
52
+ your provider to load its configuration. Keep `.env.local` and
53
+ `.agents/config.local.json` private and gitignored.
141
54
 
142
- `quiver.lock` records, per entry: source path, content digest, and — for MCP
143
- servers — a **tool snapshot** (`{ description, inputSchemaHash }` per tool).
144
- This is the basis for `sync` and `check`.
55
+ ## Sources And Pins
145
56
 
146
- ## `check` drift awareness
57
+ Direct skill sources use `github:owner/repo[/path][#ref]`. The selected directory
58
+ must contain `SKILL.md`; accompanying references and scripts are installed too.
59
+ Use `--name=<alias>` to choose the installed name without changing its source.
147
60
 
148
- `check` is the single drift command. It compares four things:
61
+ - No `#ref` tracks the repository's default branch, not an assumed `main`.
62
+ - A named branch or tag resolves that exact ref on installation and update.
63
+ - A full 40-character commit SHA is fixed. Quiver does not select semver ranges
64
+ or automatically switch to a newer version tag.
65
+ - A unique bare name is accepted where an entry is expected. Disambiguate with
66
+ `skill:name`, `command:name`, `plugin:name` or `mcp:name` when names overlap.
149
67
 
150
- - **Skills/commands**: compares the stored digest against the current `.agents/`
151
- content.
152
- - **Provider shims**: verifies the generated `.opencode/`, `.claude/`, `.codex/`
153
- configs match the lockfile (missing, stale or out-of-sync files) fix with
154
- `quiver-cli sync`.
155
- - **Plugin requirements**: warns when an installed plugin needs a binary that is
156
- not on `PATH` (e.g. `rtk`).
157
- - **MCP servers** (the real lever): re-introspects `tools/list` and diffs against
158
- the snapshot → new/removed tools, changed input schemas, and — security
159
- critical — **changed tool descriptions** (defends against tool-description
160
- poisoning), shown as a readable before/after.
68
+ The default discovery source is `github:nbialk/quiver-catalog`. Its
69
+ `catalog.json` contains pointers to external skills; custom skills, commands,
70
+ plugins and MCP definitions live alongside it. `posthog-custom` is the curated
71
+ Quiver variant, not an unchanged copy of the original PostHog skills. Choose
72
+ an original source explicitly if that is what you want.
161
73
 
162
- The first successful introspection records a baseline; subsequent `check` runs
163
- diff against it. stdio servers run foreign code and are only introspected with
164
- `--introspect-stdio`.
74
+ Catalog pointers are resolved afresh for **new installs only**. Installed entries
75
+ record their own repository/path, requested ref, resolved commit and pristine
76
+ source digest in `quiver.lock`. Changing a catalog alias never retargets an
77
+ installed entry, and its updates do not depend on that alias remaining available.
165
78
 
166
- **OAuth-protected servers** (e.g. Linear): `check` reuses opencode's MCP
167
- credentials (`~/.local/share/opencode/mcp-auth.json`, read-only — quiver never
168
- refreshes or rewrites them). Authenticate once with
169
- `opencode mcp auth <name>`, then re-run `quiver-cli check` to record the tool
170
- snapshot. Without a valid token the server is skipped with an actionable hint,
171
- and `quiver-cli list` shows why the tool count is missing.
172
-
173
- Pass `--offline` to skip MCP re-introspection entirely and check only digests
174
- and provider shims — no network, no foreign code, useful for a fast local
175
- sanity check.
176
-
177
- Once a reported MCP change has been reviewed and is legitimate, record it as the
178
- new baseline:
79
+ Teams can select a custom catalog at initialization:
179
80
 
180
81
  ```bash
181
- quiver-cli check -V # full tool lists and description before/after
182
- quiver-cli check --accept # adopt the current snapshots
82
+ quiver-cli init --catalog=github:acme/agent-catalog
83
+ quiver-cli init --catalog=github:acme/monorepo/tools/agents#stable
84
+ quiver-cli init --catalog=local:/absolute/path/agent-catalog
183
85
  ```
184
86
 
185
- `quiver-cli check --json` is CI-friendly (exit 1 on drift).
186
-
187
- ## `upstream` source updates
188
-
189
- `upstream` is a **catalog-maintenance** command, not a per-repo one. `check`
190
- detects drift between the lockfile and the repo's `.agents/`; `upstream` answers
191
- a different question: **has the source repo updated a skill since it was
192
- imported into the catalog?**
193
-
194
- Because it records baselines (and `pull` rewrites skill copies) **in the catalog
195
- itself**, run it where the catalog is writable — inside the quiver-cli repo, or
196
- against a writable local checkout via `--catalog=local:/absolute/path/.agents`.
197
- Run from a consuming repo, where the catalog is the read-only installed package
198
- (or a remote cache), it aborts with guidance; use `quiver-cli check` /
199
- `quiver-cli update` there instead.
200
-
201
- Origins live in `template/.agents/upstreams.json` (`repo`, `path`, `ref` per
202
- skill). `quiver-cli upstream` queries the GitHub Commits API for the latest
203
- commit touching each path:
87
+ The locator points to the catalog directory itself; append `/.agents` only if
88
+ that is where the catalog actually lives. `local:` is for explicit absolute
89
+ development paths, never paths relative to the CLI package. Local installations
90
+ record their source root, path and digest; they do not invent a Git commit pin.
204
91
 
205
- - First run records a baseline commit per skill.
206
- - Later runs report `up to date`, `upstream updated <old> → <new>`, or `skipped`
207
- (e.g. rate-limited). To lift the anonymous 60 req/h limit, provide a token via
208
- `GITHUB_TOKEN`/`GH_TOKEN` (env or repo `.env.local`), or just log in with the
209
- `gh` CLI its token is picked up automatically.
210
- - Skills flagged `curated: true` are reported as **drift-curated** — they were
211
- modified after import, so changes must be reconciled by hand.
92
+ GitHub downloads use commit-addressed caches under `~/.cache/quiver/catalogs/`
93
+ (or `$XDG_CACHE_HOME/quiver/catalogs/`). Private sources require read access via
94
+ `GITHUB_TOKEN`, then `GH_TOKEN`, then an authenticated `gh` CLI, in that order.
95
+ Authentication, missing paths, invalid refs and rate limits are errors, never
96
+ evidence that an entry is up to date.
212
97
 
213
- `quiver-cli upstream pull [skill]` fetches the latest upstream content into the
214
- catalog via a shallow sparse git clone and records the new baseline. Curated
215
- skills are skipped unless `--force` is given. Repos consuming the catalog then
216
- pick the changes up with `quiver-cli update` (local modifications are never
217
- overwritten without `--force`). `quiver-cli upstream --json` is CI-friendly
218
- (exit 1 on drift).
98
+ ## Local Drift
219
99
 
220
- ## Remote catalogs
100
+ `sync` reads installed `.agents/` content and regenerates provider files. It
101
+ does not fetch sources, advance pins or accept changed lockfile digests. A fresh
102
+ clone can use its committed local files without reaching the catalog.
221
103
 
222
- By default `init` uses the catalog bundled with the package. Teams can host
223
- their own catalog in a GitHub repo and point `init` at it:
104
+ Normal `check` is project-read-only. It compares content/config digests, provider
105
+ files, plugin binary requirements and observed MCP tool descriptions/schemas
106
+ against recorded baselines. It does not silently save a first MCP snapshot.
224
107
 
225
108
  ```bash
226
- quiver-cli init --catalog=github:acme/agent-catalog # .agents at repo root
227
- quiver-cli init --catalog=github:acme/monorepo/tools/.agents # subdirectory
228
- quiver-cli init --catalog=github:acme/agent-catalog#v2 # branch or tag
109
+ quiver-cli check --json
110
+ quiver-cli check --offline
111
+ quiver-cli check mcp:context7 --verbose
112
+ quiver-cli check mcp:context7 --accept # explicitly record the observed snapshot
113
+ quiver-cli check skill:cleanup --offline --accept
114
+ quiver-cli check --all --accept # explicit acceptance for all entries
229
115
  ```
230
116
 
231
- The source is recorded in `quiver.lock` together with the **resolved commit
232
- SHA** (`catalog.ref` / `catalog.resolved`):
117
+ Acceptance updates only the selected local baseline and successfully observed
118
+ MCP snapshots. It does **not** change the pristine source digest, prove source
119
+ authenticity or approve later overwrites of accepted customizations. Missing or
120
+ unsafe local artifacts cannot be accepted.
233
121
 
234
- - `add` installs from the pinned SHA reproducible, and served from the local
235
- cache without network when possible.
236
- - `update` re-resolves the ref (branch/tag HEAD), moves the pin forward and
237
- pulls newer content into `.agents/`.
122
+ `check --offline` performs no network access and runs no stdio MCP code. Skipped,
123
+ missing-baseline or authentication-blocked MCP observations are reported as
124
+ incomplete, not current. In JSON output, inspect `complete` as well as `ok`:
125
+ an intentional offline skip can pass local checks without certifying live tools.
126
+ A missing baseline on a queried server, detected drift or an authentication
127
+ failure produces a nonzero exit code.
238
128
 
239
- Catalogs are downloaded via the GitHub tarball API and cached under
240
- `~/.cache/quiver/catalogs/` (content-addressed by commit SHA, immutable).
241
- `XDG_CACHE_HOME` is honoured if set.
129
+ Stdio introspection requires `--introspect-stdio`, which permits running foreign
130
+ code. For OAuth-protected HTTP servers, Quiver can reuse OpenCode credentials
131
+ read-only; it does not refresh them. Authenticate with `opencode mcp auth <name>`,
132
+ review with `check`, then explicitly accept the snapshot. `inspect <name>` shows
133
+ recorded MCP tools, descriptions and estimated token cost without a source fetch.
242
134
 
243
- ### Private repos & tokens
244
-
245
- For private catalog repos (and to lift API rate limits), provide a GitHub
246
- token. Resolution order: `GITHUB_TOKEN` → `GH_TOKEN` → the `gh` CLI.
247
-
248
- **The cleanest way is the `gh` CLI** — no token to manage, just the familiar
249
- browser-confirm flow:
135
+ ## Source Updates
250
136
 
251
137
  ```bash
252
- gh auth login # browser confirmation; quiver picks up the token automatically
138
+ quiver-cli update --dry-run --json
139
+ quiver-cli update skill:react-performance
140
+ quiver-cli update skill:react-performance --source=github:acme/skills/react#stable --dry-run
253
141
  ```
254
142
 
255
- Once `gh` is authenticated, quiver uses its token automatically. For CI or
256
- environments without `gh`, set `GITHUB_TOKEN` (or `GH_TOKEN`) instead:
257
-
258
- ```bash
259
- GITHUB_TOKEN=ghp_… quiver-cli add mcp:context7
260
- ```
143
+ `update [id]` resolves each installed entry's recorded source independently.
144
+ Without an ID it considers all installed entries. A dry run writes nothing in
145
+ the project, including the lockfile or provider files; it may populate caches.
261
146
 
262
- The token needs read access to the catalog repo. quiver never writes tokens to
263
- generated configs or the lockfile.
147
+ Local edits, including previously accepted customizations, are preserved unless
148
+ you approve discarding them with `--force`. This is destructive content approval,
149
+ not permission to follow a different catalog pointer. Only a targeted
150
+ `update <id> --source=github:...` explicitly retargets an entry. An absolute
151
+ `--source=local:/path/to/artifact` is also supported for local development.
264
152
 
265
- ## Secrets
153
+ Application is staged per entry, with rollback for handled I/O failures. Entries
154
+ that succeed remain correctly locked if later entries fail. This is not a global
155
+ or crash-atomic transaction. If rollback itself fails, recovery backups are
156
+ retained under `.quiver-stage-*`; review the reported location before cleanup.
157
+ Provider generation is separate: repair derived output with `quiver-cli sync`.
266
158
 
267
- MCP servers referencing `${VAR}` placeholders resolve from `.env.local` at the
268
- repo root (gitignored). `init`/`add` generate an `.env.local.example` listing
269
- exactly the variables the selected servers need (none needed → no file). For
270
- Codex, secret headers are mapped to `env_http_headers` so secrets never land in
271
- the committed `config.toml`.
159
+ ## Migrating From V1
272
160
 
273
- ## Staying up to date
161
+ **Migration does not automatically connect old entries to upstream sources.**
162
+ Follow the [V2 upgrade walkthrough](https://github.com/nbialk/quiver-cli/blob/main/docs/v2.md#upgrading-an-existing-project)
163
+ to migrate metadata first and then review source assignments separately.
274
164
 
275
- quiver-cli checks npm for a newer release (at most once a day, cached under
276
- `~/.cache/quiver/`, or `XDG_CACHE_HOME` if set) and prints a one-line notice
277
- after a command when an update is available. `quiver-cli version` checks on
278
- demand. Update with:
165
+ V1 projects can still `list`, `sync` and `check` their local installation without
166
+ fetching the former bundled catalog. Mutations of the lockfile require migration:
279
167
 
280
168
  ```bash
281
- pnpm add -g quiver-cli # or: npm i -g quiver-cli / yarn global add quiver-cli
169
+ quiver-cli migrate --dry-run --json
170
+ quiver-cli migrate
282
171
  ```
283
172
 
284
- The check is best-effort and never blocks or fails a command. It is silenced
285
- automatically for `--json`, non-interactive shells and CI, and can be disabled
286
- entirely with `QUIVER_NO_UPDATE_NOTIFIER=1`.
173
+ Migration changes metadata only. Installed files, IDs, paths, local digests and
174
+ MCP snapshots stay unchanged. Historical origins remain explicitly **legacy and
175
+ unverified**; migration neither fetches content nor fabricates source digests.
176
+
177
+ An old `local:template/.agents` locator is preserved as historical provenance,
178
+ not reinterpreted relative to the new package and not automatically mapped to
179
+ quiver-catalog or an original author's repository. Legacy entries need a reviewed,
180
+ explicit `update <id> --source=github:...` before source updates are possible.
181
+ Use direct sources for new additions when the historical discovery catalog is
182
+ no longer available. Curated V1 content is never silently replaced by originals.
183
+
184
+ ## Provider Output
185
+
186
+ Provider behavior is unchanged in V2: all providers consume local installed
187
+ content, not the discovery catalog or a live remote source.
188
+
189
+ | Artifact | OpenCode | Claude Code | Codex |
190
+ | -------- | -------- | ----------- | ----- |
191
+ | Skills | `.opencode/skills/*` links | `.claude/skills/*` links | native `.agents/skills` |
192
+ | Commands | `.opencode/commands/*` | `.claude/commands/*` links | not supported |
193
+ | MCP | `opencode.json` | `.mcp.json` | `.codex/config.toml` |
194
+ | Settings | `.opencode/tui.json` | `.claude/settings.json` | none |
195
+ | Plugins | `.opencode/plugins/*` links | none | none |
196
+ | Guide | `AGENTS.md` link | `CLAUDE.md` link | native `AGENTS.md` |
197
+
198
+ When `.agents/AGENTS.md` exists, root `AGENTS.md` links to it and `CLAUDE.md`
199
+ links to `AGENTS.md`, independently of provider selection. Ignore rules for
200
+ these generated guides are root-only, so nested source guides remain committable.
201
+
202
+ `init --providers=opencode,claude` selects providers explicitly; otherwise the
203
+ picker offers all three. `providers [a,b]` changes the stored selection and
204
+ regenerates output, cleaning deselected providers. `sync` uses that selection;
205
+ it no longer accepts `--providers`.
206
+
207
+ `.agents/config.json` holds MCP/plugin definitions and provider overlays:
208
+ `opencode` merges into `opencode.json`, `tui` becomes `.opencode/tui.json`,
209
+ `claude.settings` becomes `.claude/settings.json`, and `shared` stays local.
210
+ The catalog's `plugin:rtk` adapter requires RTK installed separately; `check`
211
+ verifies its binary is on `PATH`.
212
+
213
+ `disable mcp:<name>` and `enable mcp:<name>` only change gitignored
214
+ `.agents/config.local.json` and generated output. They preserve committed config,
215
+ pins and snapshots. `list` marks disabled servers, and `check` skips their live
216
+ introspection. `remove <id>` removes an installation; local changes require
217
+ explicit `--force` approval. `rm` and `ls` remain aliases for `remove` and `list`.
218
+
219
+ MCP `${VAR}` placeholders use `.env.local`. Generated OpenCode configuration uses
220
+ `{env:VAR}`; Codex uses `env_http_headers` for secret headers. Example env files
221
+ contain variable names, not credentials. Never commit real secrets or generated
222
+ provider files.
223
+
224
+ ## Limits And Safety
225
+
226
+ - GitHub is the only remote source host. Quiver does not hydrate Git LFS objects
227
+ or submodules.
228
+ - Symlinks inside a selected skill are unsupported. Digests cover file bytes
229
+ and relative paths, not executable bits or other file modes.
230
+ - Quiver copies direct skill scripts but does not execute them. Provider agents
231
+ may execute installed scripts, commands or plugins; installation is not a
232
+ security guarantee. Review sources and updates before enabling them.
233
+ - MCP snapshots expose changes, including possible tool-description poisoning;
234
+ they do not certify a server as safe. See [SECURITY.md](SECURITY.md).
235
+
236
+ Run `quiver-cli help` for command-specific flags. Value options require `=`,
237
+ for example `--name=alias` or `--source=github:owner/repo/path#ref`. There is no
238
+ `upstream` or `outdated` command; use `update --dry-run` for source changes.
239
+ `version` reports the installed CLI version locally. Optional npm update notices
240
+ after online install/update operations can be disabled with
241
+ `QUIVER_NO_UPDATE_NOTIFIER=1`; local/offline commands do not trigger them.
287
242
 
288
243
  ## Development
289
244
 
290
245
  ```bash
291
246
  pnpm install
292
- pnpm build # tsup -> dist/cli.js
293
247
  pnpm typecheck
294
- pnpm test # vitest
248
+ pnpm vitest run test/package.test.ts
249
+ pnpm build
250
+ node bin/quiver-cli.mjs help
295
251
  ```
296
252
 
297
- The catalog lives under `template/.agents/`. Edit it to change what's available
298
- to install.
253
+ The npm package includes `bin/` and `dist/`, plus npm's standard package metadata,
254
+ README and license. It contains no bundled catalog or skill payloads. Contribute
255
+ catalog changes to [quiver-catalog](https://github.com/nbialk/quiver-catalog), not
256
+ this repository's installed `.agents/`. See [CONTRIBUTING.md](CONTRIBUTING.md).