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.
- package/README.md +197 -239
- package/dist/cli.js +3163 -2040
- package/package.json +10 -11
- package/template/.agents/AGENTS.md +0 -26
- package/template/.agents/commands/cp.md +0 -108
- package/template/.agents/commands/next-setup.md +0 -1064
- package/template/.agents/commands/review.md +0 -68
- package/template/.agents/commands/terraform-readme.md +0 -38
- package/template/.agents/config.json +0 -80
- package/template/.agents/plugins/opencode/rtk.ts +0 -34
- package/template/.agents/skills/agent-browser/SKILL.md +0 -52
- package/template/.agents/skills/apps/skybridge/SKILL.md +0 -52
- package/template/.agents/skills/code/cleanup/SKILL.md +0 -26
- package/template/.agents/skills/code/improve/SKILL.md +0 -122
- package/template/.agents/skills/code/improve/references/audit-playbook.md +0 -130
- package/template/.agents/skills/code/improve/references/closing-the-loop.md +0 -96
- package/template/.agents/skills/code/improve/references/plan-template.md +0 -197
- package/template/.agents/skills/code/vercel-react-best-practices/AGENTS.md +0 -3810
- package/template/.agents/skills/code/vercel-react-best-practices/README.md +0 -123
- package/template/.agents/skills/code/vercel-react-best-practices/SKILL.md +0 -149
- package/template/.agents/skills/code/vercel-react-best-practices/metadata.json +0 -15
- package/template/.agents/skills/code/vercel-react-best-practices/rules/_sections.md +0 -46
- package/template/.agents/skills/code/vercel-react-best-practices/rules/_template.md +0 -28
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-effect-event-deps.md +0 -56
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-api-routes.md +0 -38
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +0 -37
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-defer-await.md +0 -82
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-dependencies.md +0 -51
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-parallel.md +0 -28
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-analyzable-paths.md +0 -63
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -60
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-preload.md +0 -50
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-early-exit.md +0 -50
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-index-maps.md +0 -37
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-request-idle-callback.md +0 -105
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-activity.md +0 -26
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo.md +0 -44
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-react.md +0 -76
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -149
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-no-shared-module-state.md +0 -50
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +0 -34
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-serialization.md +0 -38
- package/template/.agents/skills/data/prisma-cli/SKILL.md +0 -265
- package/template/.agents/skills/data/prisma-cli/references/agent-safety.md +0 -27
- package/template/.agents/skills/data/prisma-cli/references/complete.md +0 -22
- package/template/.agents/skills/data/prisma-cli/references/db-execute.md +0 -78
- package/template/.agents/skills/data/prisma-cli/references/db-pull.md +0 -185
- package/template/.agents/skills/data/prisma-cli/references/db-push.md +0 -150
- package/template/.agents/skills/data/prisma-cli/references/db-seed.md +0 -188
- package/template/.agents/skills/data/prisma-cli/references/debug.md +0 -46
- package/template/.agents/skills/data/prisma-cli/references/dev.md +0 -157
- package/template/.agents/skills/data/prisma-cli/references/format.md +0 -48
- package/template/.agents/skills/data/prisma-cli/references/generate.md +0 -173
- package/template/.agents/skills/data/prisma-cli/references/init.md +0 -139
- package/template/.agents/skills/data/prisma-cli/references/mcp.md +0 -39
- package/template/.agents/skills/data/prisma-cli/references/migrate-deploy.md +0 -127
- package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +0 -145
- package/template/.agents/skills/data/prisma-cli/references/migrate-diff.md +0 -89
- package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +0 -80
- package/template/.agents/skills/data/prisma-cli/references/migrate-resolve.md +0 -57
- package/template/.agents/skills/data/prisma-cli/references/migrate-status.md +0 -65
- package/template/.agents/skills/data/prisma-cli/references/studio.md +0 -137
- package/template/.agents/skills/data/prisma-cli/references/validate.md +0 -53
- package/template/.agents/skills/data/prisma-client-api/SKILL.md +0 -216
- package/template/.agents/skills/data/prisma-client-api/references/client-methods.md +0 -223
- package/template/.agents/skills/data/prisma-client-api/references/constructor.md +0 -221
- package/template/.agents/skills/data/prisma-client-api/references/filters.md +0 -256
- package/template/.agents/skills/data/prisma-client-api/references/model-queries.md +0 -281
- package/template/.agents/skills/data/prisma-client-api/references/query-options.md +0 -276
- package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +0 -198
- package/template/.agents/skills/data/prisma-client-api/references/relations.md +0 -308
- package/template/.agents/skills/data/prisma-client-api/references/transactions.md +0 -184
- package/template/.agents/skills/design/impeccable/SKILL.md +0 -84
- package/template/.agents/skills/design/impeccable/reference/adapt.md +0 -312
- package/template/.agents/skills/design/impeccable/reference/adapt.native.md +0 -58
- package/template/.agents/skills/design/impeccable/reference/android.md +0 -46
- package/template/.agents/skills/design/impeccable/reference/animate.md +0 -89
- package/template/.agents/skills/design/impeccable/reference/audit.md +0 -136
- package/template/.agents/skills/design/impeccable/reference/audit.native.md +0 -139
- package/template/.agents/skills/design/impeccable/reference/bolder.md +0 -33
- package/template/.agents/skills/design/impeccable/reference/clarify.md +0 -94
- package/template/.agents/skills/design/impeccable/reference/colorize.md +0 -86
- package/template/.agents/skills/design/impeccable/reference/craft-floor.md +0 -44
- package/template/.agents/skills/design/impeccable/reference/craft.md +0 -5
- package/template/.agents/skills/design/impeccable/reference/critique.md +0 -806
- package/template/.agents/skills/design/impeccable/reference/degraded/asset-producer.md +0 -37
- package/template/.agents/skills/design/impeccable/reference/degraded/documenter.md +0 -24
- package/template/.agents/skills/design/impeccable/reference/degraded/finish-reviewer.md +0 -38
- package/template/.agents/skills/design/impeccable/reference/degraded/manual-edit-applier.md +0 -92
- package/template/.agents/skills/design/impeccable/reference/delight.md +0 -70
- package/template/.agents/skills/design/impeccable/reference/distill.md +0 -111
- package/template/.agents/skills/design/impeccable/reference/doctor.md +0 -54
- package/template/.agents/skills/design/impeccable/reference/document.md +0 -416
- package/template/.agents/skills/design/impeccable/reference/extract.md +0 -69
- package/template/.agents/skills/design/impeccable/reference/harden.md +0 -336
- package/template/.agents/skills/design/impeccable/reference/hooks.md +0 -111
- package/template/.agents/skills/design/impeccable/reference/init.md +0 -131
- package/template/.agents/skills/design/impeccable/reference/ios.md +0 -51
- package/template/.agents/skills/design/impeccable/reference/layout.md +0 -84
- package/template/.agents/skills/design/impeccable/reference/live-setup.md +0 -102
- package/template/.agents/skills/design/impeccable/reference/live.md +0 -323
- package/template/.agents/skills/design/impeccable/reference/new-work.md +0 -145
- package/template/.agents/skills/design/impeccable/reference/onboard.md +0 -234
- package/template/.agents/skills/design/impeccable/reference/operate.md +0 -61
- package/template/.agents/skills/design/impeccable/reference/optimize.md +0 -258
- package/template/.agents/skills/design/impeccable/reference/overdrive.md +0 -127
- package/template/.agents/skills/design/impeccable/reference/polish.md +0 -105
- package/template/.agents/skills/design/impeccable/reference/quieter.md +0 -99
- package/template/.agents/skills/design/impeccable/reference/routing.md +0 -18
- package/template/.agents/skills/design/impeccable/reference/shape.md +0 -59
- package/template/.agents/skills/design/impeccable/reference/typeset.md +0 -80
- package/template/.agents/skills/design/impeccable/reference/visualize.md +0 -46
- package/template/.agents/skills/design/impeccable/scripts/build-phase.mjs +0 -1022
- package/template/.agents/skills/design/impeccable/scripts/command-metadata.json +0 -94
- package/template/.agents/skills/design/impeccable/scripts/comp-diff.mjs +0 -391
- package/template/.agents/skills/design/impeccable/scripts/comp-spec.mjs +0 -513
- package/template/.agents/skills/design/impeccable/scripts/concept-seed.mjs +0 -814
- package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +0 -325
- package/template/.agents/skills/design/impeccable/scripts/context.mjs +0 -1565
- package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +0 -473
- package/template/.agents/skills/design/impeccable/scripts/data/font-index-failures.json +0 -121
- package/template/.agents/skills/design/impeccable/scripts/data/font-index.json +0 -1
- package/template/.agents/skills/design/impeccable/scripts/detect-csp.mjs +0 -198
- package/template/.agents/skills/design/impeccable/scripts/detect.mjs +0 -30
- package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +0 -2204
- package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +0 -432
- package/template/.agents/skills/design/impeccable/scripts/detector/design-system.mjs +0 -1311
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +0 -9043
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +0 -51
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +0 -434
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +0 -1319
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +0 -1241
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +0 -288
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -189
- package/template/.agents/skills/design/impeccable/scripts/detector/findings.mjs +0 -18
- package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +0 -213
- package/template/.agents/skills/design/impeccable/scripts/detector/profile/profiler.mjs +0 -166
- package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +0 -635
- package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +0 -5681
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +0 -596
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +0 -127
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/fonts.mjs +0 -30
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/inline-ignores.mjs +0 -148
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/page.mjs +0 -7
- package/template/.agents/skills/design/impeccable/scripts/doctor.mjs +0 -329
- package/template/.agents/skills/design/impeccable/scripts/embed-prompt.mjs +0 -166
- package/template/.agents/skills/design/impeccable/scripts/font-match.mjs +0 -457
- package/template/.agents/skills/design/impeccable/scripts/generate-image.mjs +0 -447
- package/template/.agents/skills/design/impeccable/scripts/hook-admin.mjs +0 -819
- package/template/.agents/skills/design/impeccable/scripts/hook-before-edit.mjs +0 -538
- package/template/.agents/skills/design/impeccable/scripts/hook-lib.mjs +0 -2490
- package/template/.agents/skills/design/impeccable/scripts/hook.mjs +0 -79
- package/template/.agents/skills/design/impeccable/scripts/lib/artifact-schema.mjs +0 -93
- package/template/.agents/skills/design/impeccable/scripts/lib/composition-catalog.mjs +0 -200
- package/template/.agents/skills/design/impeccable/scripts/lib/concept-catalog.mjs +0 -396
- package/template/.agents/skills/design/impeccable/scripts/lib/design-parser.mjs +0 -880
- package/template/.agents/skills/design/impeccable/scripts/lib/font-fingerprint.mjs +0 -564
- package/template/.agents/skills/design/impeccable/scripts/lib/font-index.mjs +0 -130
- package/template/.agents/skills/design/impeccable/scripts/lib/hero-checks.mjs +0 -246
- package/template/.agents/skills/design/impeccable/scripts/lib/image-metrics.mjs +0 -306
- package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-config.mjs +0 -640
- package/template/.agents/skills/design/impeccable/scripts/lib/impeccable-paths.mjs +0 -137
- package/template/.agents/skills/design/impeccable/scripts/lib/is-generated.mjs +0 -72
- package/template/.agents/skills/design/impeccable/scripts/lib/live-path-globs.mjs +0 -37
- package/template/.agents/skills/design/impeccable/scripts/lib/open-system-browser.mjs +0 -26
- package/template/.agents/skills/design/impeccable/scripts/lib/png.mjs +0 -281
- package/template/.agents/skills/design/impeccable/scripts/lib/provider.mjs +0 -5
- package/template/.agents/skills/design/impeccable/scripts/lib/raster.mjs +0 -194
- package/template/.agents/skills/design/impeccable/scripts/lib/roll-selection.mjs +0 -369
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness-deep.mjs +0 -485
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness-notice.mjs +0 -169
- package/template/.agents/skills/design/impeccable/scripts/lib/staleness.mjs +0 -533
- package/template/.agents/skills/design/impeccable/scripts/lib/surface-briefs.mjs +0 -149
- package/template/.agents/skills/design/impeccable/scripts/lib/target-args.mjs +0 -42
- package/template/.agents/skills/design/impeccable/scripts/lib/target-slug.mjs +0 -33
- package/template/.agents/skills/design/impeccable/scripts/lib/template-extensions.mjs +0 -146
- package/template/.agents/skills/design/impeccable/scripts/live/accept-css.mjs +0 -617
- package/template/.agents/skills/design/impeccable/scripts/live/accept-verify.mjs +0 -60
- package/template/.agents/skills/design/impeccable/scripts/live/browser-script-parts.mjs +0 -84
- package/template/.agents/skills/design/impeccable/scripts/live/completion.mjs +0 -28
- package/template/.agents/skills/design/impeccable/scripts/live/event-validation.mjs +0 -199
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/astro.mjs +0 -47
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/detect-utils.mjs +0 -73
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/index.mjs +0 -143
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/journal.mjs +0 -197
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nextjs.mjs +0 -49
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/nuxt.mjs +0 -161
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/script-src.mjs +0 -17
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/static-html.mjs +0 -26
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/sveltekit.mjs +0 -71
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tag-strategy.mjs +0 -247
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/tanstack-start.mjs +0 -70
- package/template/.agents/skills/design/impeccable/scripts/live/frameworks/vite-generic.mjs +0 -42
- package/template/.agents/skills/design/impeccable/scripts/live/generation-preflight.mjs +0 -149
- package/template/.agents/skills/design/impeccable/scripts/live/insert-ui.mjs +0 -458
- package/template/.agents/skills/design/impeccable/scripts/live/instructions.mjs +0 -142
- package/template/.agents/skills/design/impeccable/scripts/live/manual-apply.mjs +0 -939
- package/template/.agents/skills/design/impeccable/scripts/live/manual-edit-routes.mjs +0 -357
- package/template/.agents/skills/design/impeccable/scripts/live/manual-edits-buffer.mjs +0 -152
- package/template/.agents/skills/design/impeccable/scripts/live/poll-lanes.mjs +0 -14
- package/template/.agents/skills/design/impeccable/scripts/live/project-ignores.mjs +0 -139
- package/template/.agents/skills/design/impeccable/scripts/live/roots.mjs +0 -508
- package/template/.agents/skills/design/impeccable/scripts/live/session-store.mjs +0 -563
- package/template/.agents/skills/design/impeccable/scripts/live/source-lock.mjs +0 -105
- package/template/.agents/skills/design/impeccable/scripts/live/source-search.mjs +0 -105
- package/template/.agents/skills/design/impeccable/scripts/live/svelte-ast.mjs +0 -969
- package/template/.agents/skills/design/impeccable/scripts/live/svelte-component.mjs +0 -1366
- package/template/.agents/skills/design/impeccable/scripts/live/sveltekit-adapter.mjs +0 -304
- package/template/.agents/skills/design/impeccable/scripts/live/tanstack-adapter.mjs +0 -259
- package/template/.agents/skills/design/impeccable/scripts/live/ui-surfaces.mjs +0 -75
- package/template/.agents/skills/design/impeccable/scripts/live/vocabulary.mjs +0 -171
- package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +0 -938
- package/template/.agents/skills/design/impeccable/scripts/live-browser-dom.js +0 -146
- package/template/.agents/skills/design/impeccable/scripts/live-browser-ignores.js +0 -242
- package/template/.agents/skills/design/impeccable/scripts/live-browser-session.js +0 -123
- package/template/.agents/skills/design/impeccable/scripts/live-browser.js +0 -12551
- package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +0 -1200
- package/template/.agents/skills/design/impeccable/scripts/live-complete.mjs +0 -107
- package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +0 -800
- package/template/.agents/skills/design/impeccable/scripts/live-discard-manual-edits.mjs +0 -51
- package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +0 -463
- package/template/.agents/skills/design/impeccable/scripts/live-insert.mjs +0 -292
- package/template/.agents/skills/design/impeccable/scripts/live-manual-edit-evidence.mjs +0 -368
- package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +0 -430
- package/template/.agents/skills/design/impeccable/scripts/live-resume.mjs +0 -123
- package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +0 -1698
- package/template/.agents/skills/design/impeccable/scripts/live-status.mjs +0 -71
- package/template/.agents/skills/design/impeccable/scripts/live-target.mjs +0 -30
- package/template/.agents/skills/design/impeccable/scripts/live-wrap.mjs +0 -927
- package/template/.agents/skills/design/impeccable/scripts/live.mjs +0 -334
- package/template/.agents/skills/design/impeccable/scripts/modern-screenshot.umd.js +0 -14
- package/template/.agents/skills/design/impeccable/scripts/palette.mjs +0 -628
- package/template/.agents/skills/design/impeccable/scripts/pin.mjs +0 -224
- package/template/.agents/skills/design/impeccable/scripts/serve-question.mjs +0 -1783
- package/template/.agents/skills/design/impeccable/scripts/surface-brief.mjs +0 -74
- package/template/.agents/skills/design/shadcn/SKILL.md +0 -277
- package/template/.agents/skills/design/shadcn/agents/openai.yml +0 -5
- package/template/.agents/skills/design/shadcn/assets/shadcn-small.png +0 -0
- package/template/.agents/skills/design/shadcn/assets/shadcn.png +0 -0
- package/template/.agents/skills/design/shadcn/cli.md +0 -290
- package/template/.agents/skills/design/shadcn/customization.md +0 -209
- package/template/.agents/skills/design/shadcn/evals/evals.json +0 -77
- package/template/.agents/skills/design/shadcn/mcp.md +0 -105
- package/template/.agents/skills/design/shadcn/registry.md +0 -277
- package/template/.agents/skills/design/shadcn/rules/base-vs-radix.md +0 -306
- package/template/.agents/skills/design/shadcn/rules/chat.md +0 -250
- package/template/.agents/skills/design/shadcn/rules/composition.md +0 -213
- package/template/.agents/skills/design/shadcn/rules/forms.md +0 -192
- package/template/.agents/skills/design/shadcn/rules/icons.md +0 -101
- package/template/.agents/skills/design/shadcn/rules/styling.md +0 -185
- package/template/.agents/skills/find-skills/SKILL.md +0 -141
- package/template/.agents/skills/hono/SKILL.md +0 -593
- package/template/.agents/skills/integrations/langfuse/SKILL.md +0 -150
- package/template/.agents/skills/integrations/langfuse/references/ci-cd.md +0 -41
- package/template/.agents/skills/integrations/langfuse/references/cli.md +0 -60
- package/template/.agents/skills/integrations/langfuse/references/create-dataset.md +0 -35
- package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +0 -87
- package/template/.agents/skills/integrations/langfuse/references/instrumentation.md +0 -121
- package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +0 -293
- package/template/.agents/skills/integrations/langfuse/references/prompt-engineering.md +0 -35
- package/template/.agents/skills/integrations/langfuse/references/prompt-migration.md +0 -79
- package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +0 -34
- package/template/.agents/skills/integrations/langfuse/references/setting-up-evals.md +0 -65
- package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +0 -35
- package/template/.agents/skills/integrations/langfuse/references/trace-evaluator-upgrade.md +0 -76
- package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +0 -66
- package/template/.agents/skills/integrations/langfuse/references/v4-project-migration.md +0 -75
- package/template/.agents/skills/integrations/posthog/SKILL.md +0 -102
- package/template/.agents/skills/integrations/posthog/references/error-tracking-alerts.md +0 -63
- package/template/.agents/skills/integrations/posthog/references/error-tracking-assigning-issues.md +0 -77
- package/template/.agents/skills/integrations/posthog/references/error-tracking-fingerprints.md +0 -57
- package/template/.agents/skills/integrations/posthog/references/error-tracking-monitoring.md +0 -140
- package/template/.agents/skills/integrations/posthog/references/error-tracking-nextjs.md +0 -490
- package/template/.agents/skills/integrations/posthog/references/error-tracking-source-maps.md +0 -45
- package/template/.agents/skills/integrations/posthog/references/feature-flags-best-practices.md +0 -139
- package/template/.agents/skills/integrations/posthog/references/feature-flags-react.md +0 -302
- package/template/.agents/skills/integrations/posthog/references/identify-users.md +0 -202
- package/template/.agents/skills/integrations/posthog/references/integration-example.md +0 -706
- package/template/.agents/skills/integrations/posthog/references/integration-nextjs.md +0 -385
- package/template/.agents/skills/integrations/posthog/references/integration-step-1-begin.md +0 -43
- package/template/.agents/skills/integrations/posthog/references/integration-step-2-edit.md +0 -37
- package/template/.agents/skills/integrations/posthog/references/integration-step-3-revise.md +0 -22
- package/template/.agents/skills/integrations/posthog/references/integration-step-4-conclude.md +0 -38
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-anthropic.md +0 -200
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-basics.md +0 -62
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-costs.md +0 -197
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-manual-capture.md +0 -397
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-traces.md +0 -98
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-vercel-ai.md +0 -120
- package/template/.agents/skills/repo/repo-ci/SKILL.md +0 -265
- package/template/.agents/skills/repo/repo-init-next-js/SKILL.md +0 -129
- package/template/.agents/skills/repo/repo-init-next-js/references/file-contents.md +0 -800
- package/template/.agents/skills/repo/repo-init-next-js/scripts/setup.sh +0 -47
- package/template/.agents/skills/repo/repo-init-node/SKILL.md +0 -196
- package/template/.agents/skills/skill-creator/LICENSE.txt +0 -202
- package/template/.agents/skills/skill-creator/SKILL.md +0 -485
- package/template/.agents/skills/skill-creator/agents/analyzer.md +0 -274
- package/template/.agents/skills/skill-creator/agents/comparator.md +0 -202
- package/template/.agents/skills/skill-creator/agents/grader.md +0 -223
- package/template/.agents/skills/skill-creator/assets/eval_review.html +0 -146
- package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/template/.agents/skills/skill-creator/references/schemas.md +0 -430
- package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/template/.agents/skills/skill-creator/scripts/generate_report.py +0 -326
- package/template/.agents/skills/skill-creator/scripts/improve_description.py +0 -247
- package/template/.agents/skills/skill-creator/scripts/package_skill.py +0 -136
- package/template/.agents/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/template/.agents/skills/skill-creator/scripts/run_eval.py +0 -310
- package/template/.agents/skills/skill-creator/scripts/run_loop.py +0 -328
- package/template/.agents/skills/skill-creator/scripts/utils.py +0 -47
- package/template/.agents/skills/supabase/CHANGELOG.md +0 -78
- package/template/.agents/skills/supabase/SKILL.md +0 -149
- package/template/.agents/skills/supabase/assets/feedback-issue-template.md +0 -17
- package/template/.agents/skills/supabase/references/skill-feedback.md +0 -17
- package/template/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +0 -73
- package/template/.agents/skills/supabase-postgres-best-practices/SKILL.md +0 -64
- package/template/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +0 -170
- package/template/.agents/skills/supabase-postgres-best-practices/references/_sections.md +0 -39
- package/template/.agents/skills/supabase-postgres-best-practices/references/_template.md +0 -34
- package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +0 -55
- package/template/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +0 -49
- package/template/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +0 -46
- package/template/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +0 -44
- package/template/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +0 -41
- package/template/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +0 -46
- package/template/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +0 -54
- package/template/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +0 -53
- package/template/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +0 -50
- package/template/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +0 -50
- package/template/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +0 -56
- package/template/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +0 -68
- package/template/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +0 -50
- package/template/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +0 -54
- package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +0 -45
- package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +0 -55
- package/template/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +0 -55
- package/template/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +0 -44
- package/template/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +0 -40
- package/template/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +0 -48
- package/template/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +0 -43
- package/template/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +0 -45
- package/template/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +0 -80
- package/template/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +0 -46
- package/template/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +0 -59
- package/template/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +0 -55
- package/template/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +0 -55
- package/template/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +0 -61
- package/template/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +0 -54
- package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +0 -50
- package/template/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +0 -63
- package/template/.agents/skills/writing/humanizer/LICENSE +0 -21
- package/template/.agents/skills/writing/humanizer/README.md +0 -209
- package/template/.agents/skills/writing/humanizer/SKILL.md +0 -456
- package/template/.agents/upstreams.json +0 -115
package/README.md
CHANGED
|
@@ -1,298 +1,256 @@
|
|
|
1
1
|
# quiver-cli
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
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
|
-
##
|
|
17
|
+
## Why V2?
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
42
|
-
quiver-cli
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
122
|
-
quiver-cli
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
`
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
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
|
|
182
|
-
quiver-cli
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
223
|
-
|
|
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
|
|
227
|
-
quiver-cli
|
|
228
|
-
quiver-cli
|
|
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
|
-
|
|
232
|
-
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
256
|
-
|
|
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
|
-
|
|
263
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
276
|
-
|
|
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
|
-
|
|
169
|
+
quiver-cli migrate --dry-run --json
|
|
170
|
+
quiver-cli migrate
|
|
282
171
|
```
|
|
283
172
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
|
248
|
+
pnpm vitest run test/package.test.ts
|
|
249
|
+
pnpm build
|
|
250
|
+
node bin/quiver-cli.mjs help
|
|
295
251
|
```
|
|
296
252
|
|
|
297
|
-
The
|
|
298
|
-
|
|
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).
|