quiver-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +188 -0
- package/bin/quiver-cli.mjs +2 -0
- package/dist/cli.js +3074 -0
- package/package.json +55 -0
- package/template/.agents/AGENTS.md +25 -0
- package/template/.agents/commands/cp.md +116 -0
- package/template/.agents/commands/next-setup.md +1064 -0
- package/template/.agents/commands/tf-readme.md +38 -0
- package/template/.agents/config.json +60 -0
- package/template/.agents/skills/agent-browser/SKILL.md +55 -0
- package/template/.agents/skills/apps/skybridge/SKILL.md +46 -0
- package/template/.agents/skills/apps/skybridge/references/architecture.md +175 -0
- package/template/.agents/skills/apps/skybridge/references/copy-template.md +24 -0
- package/template/.agents/skills/apps/skybridge/references/csp.md +33 -0
- package/template/.agents/skills/apps/skybridge/references/deploy.md +33 -0
- package/template/.agents/skills/apps/skybridge/references/discover.md +84 -0
- package/template/.agents/skills/apps/skybridge/references/download-file.md +77 -0
- package/template/.agents/skills/apps/skybridge/references/fetch-and-render-data.md +151 -0
- package/template/.agents/skills/apps/skybridge/references/oauth.md +115 -0
- package/template/.agents/skills/apps/skybridge/references/open-external-links.md +71 -0
- package/template/.agents/skills/apps/skybridge/references/prompt-llm.md +20 -0
- package/template/.agents/skills/apps/skybridge/references/publish.md +19 -0
- package/template/.agents/skills/apps/skybridge/references/run-locally.md +51 -0
- package/template/.agents/skills/apps/skybridge/references/state-and-context.md +151 -0
- package/template/.agents/skills/apps/skybridge/references/ui-guidelines.md +205 -0
- package/template/.agents/skills/code/cleanup/SKILL.md +26 -0
- package/template/.agents/skills/code/vercel-react-best-practices/AGENTS.md +3810 -0
- package/template/.agents/skills/code/vercel-react-best-practices/README.md +123 -0
- package/template/.agents/skills/code/vercel-react-best-practices/SKILL.md +149 -0
- package/template/.agents/skills/code/vercel-react-best-practices/metadata.json +15 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/_sections.md +46 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/_template.md +28 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-defer-await.md +82 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
- package/template/.agents/skills/code/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/template/.agents/skills/data/prisma-cli/SKILL.md +247 -0
- package/template/.agents/skills/data/prisma-cli/references/db-execute.md +78 -0
- package/template/.agents/skills/data/prisma-cli/references/db-pull.md +185 -0
- package/template/.agents/skills/data/prisma-cli/references/db-push.md +148 -0
- package/template/.agents/skills/data/prisma-cli/references/db-seed.md +188 -0
- package/template/.agents/skills/data/prisma-cli/references/debug.md +46 -0
- package/template/.agents/skills/data/prisma-cli/references/dev.md +157 -0
- package/template/.agents/skills/data/prisma-cli/references/format.md +48 -0
- package/template/.agents/skills/data/prisma-cli/references/generate.md +173 -0
- package/template/.agents/skills/data/prisma-cli/references/init.md +136 -0
- package/template/.agents/skills/data/prisma-cli/references/mcp.md +38 -0
- package/template/.agents/skills/data/prisma-cli/references/migrate-deploy.md +127 -0
- package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +145 -0
- package/template/.agents/skills/data/prisma-cli/references/migrate-diff.md +89 -0
- package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +78 -0
- package/template/.agents/skills/data/prisma-cli/references/migrate-resolve.md +57 -0
- package/template/.agents/skills/data/prisma-cli/references/migrate-status.md +65 -0
- package/template/.agents/skills/data/prisma-cli/references/studio.md +137 -0
- package/template/.agents/skills/data/prisma-cli/references/validate.md +53 -0
- package/template/.agents/skills/data/prisma-client-api/SKILL.md +216 -0
- package/template/.agents/skills/data/prisma-client-api/references/client-methods.md +223 -0
- package/template/.agents/skills/data/prisma-client-api/references/constructor.md +208 -0
- package/template/.agents/skills/data/prisma-client-api/references/filters.md +256 -0
- package/template/.agents/skills/data/prisma-client-api/references/model-queries.md +281 -0
- package/template/.agents/skills/data/prisma-client-api/references/query-options.md +276 -0
- package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +194 -0
- package/template/.agents/skills/data/prisma-client-api/references/relations.md +308 -0
- package/template/.agents/skills/data/prisma-client-api/references/transactions.md +184 -0
- package/template/.agents/skills/design/impeccable/SKILL.md +176 -0
- package/template/.agents/skills/design/impeccable/reference/adapt.md +311 -0
- package/template/.agents/skills/design/impeccable/reference/animate.md +201 -0
- package/template/.agents/skills/design/impeccable/reference/audit.md +133 -0
- package/template/.agents/skills/design/impeccable/reference/bolder.md +113 -0
- package/template/.agents/skills/design/impeccable/reference/brand.md +108 -0
- package/template/.agents/skills/design/impeccable/reference/clarify.md +288 -0
- package/template/.agents/skills/design/impeccable/reference/codex.md +105 -0
- package/template/.agents/skills/design/impeccable/reference/colorize.md +257 -0
- package/template/.agents/skills/design/impeccable/reference/craft.md +123 -0
- package/template/.agents/skills/design/impeccable/reference/critique.md +767 -0
- package/template/.agents/skills/design/impeccable/reference/delight.md +302 -0
- package/template/.agents/skills/design/impeccable/reference/distill.md +111 -0
- package/template/.agents/skills/design/impeccable/reference/document.md +429 -0
- package/template/.agents/skills/design/impeccable/reference/extract.md +69 -0
- package/template/.agents/skills/design/impeccable/reference/harden.md +347 -0
- package/template/.agents/skills/design/impeccable/reference/init.md +172 -0
- package/template/.agents/skills/design/impeccable/reference/interaction-design.md +189 -0
- package/template/.agents/skills/design/impeccable/reference/layout.md +161 -0
- package/template/.agents/skills/design/impeccable/reference/live.md +718 -0
- package/template/.agents/skills/design/impeccable/reference/onboard.md +234 -0
- package/template/.agents/skills/design/impeccable/reference/optimize.md +258 -0
- package/template/.agents/skills/design/impeccable/reference/overdrive.md +130 -0
- package/template/.agents/skills/design/impeccable/reference/polish.md +241 -0
- package/template/.agents/skills/design/impeccable/reference/product.md +60 -0
- package/template/.agents/skills/design/impeccable/reference/quieter.md +99 -0
- package/template/.agents/skills/design/impeccable/reference/shape.md +165 -0
- package/template/.agents/skills/design/impeccable/reference/typeset.md +279 -0
- package/template/.agents/skills/design/impeccable/scripts/cleanup-deprecated.mjs +284 -0
- package/template/.agents/skills/design/impeccable/scripts/command-metadata.json +94 -0
- package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +225 -0
- package/template/.agents/skills/design/impeccable/scripts/context.mjs +270 -0
- package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +242 -0
- package/template/.agents/skills/design/impeccable/scripts/design-parser.mjs +835 -0
- package/template/.agents/skills/design/impeccable/scripts/detect-csp.mjs +198 -0
- package/template/.agents/skills/design/impeccable/scripts/detect.mjs +21 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +1733 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +244 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +4551 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +252 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +535 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +986 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +208 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/findings.mjs +12 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +198 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/profile/profiler.mjs +166 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +419 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +2316 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +124 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +101 -0
- package/template/.agents/skills/design/impeccable/scripts/detector/shared/page.mjs +7 -0
- package/template/.agents/skills/design/impeccable/scripts/impeccable-paths.mjs +126 -0
- package/template/.agents/skills/design/impeccable/scripts/is-generated.mjs +69 -0
- package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +812 -0
- package/template/.agents/skills/design/impeccable/scripts/live-browser-session.js +123 -0
- package/template/.agents/skills/design/impeccable/scripts/live-browser.js +10316 -0
- package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +1241 -0
- package/template/.agents/skills/design/impeccable/scripts/live-complete.mjs +75 -0
- package/template/.agents/skills/design/impeccable/scripts/live-completion.mjs +19 -0
- package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
- package/template/.agents/skills/design/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
- package/template/.agents/skills/design/impeccable/scripts/live-event-validation.mjs +136 -0
- package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +557 -0
- package/template/.agents/skills/design/impeccable/scripts/live-insert-ui.mjs +458 -0
- package/template/.agents/skills/design/impeccable/scripts/live-insert.mjs +272 -0
- package/template/.agents/skills/design/impeccable/scripts/live-manual-edit-evidence.mjs +363 -0
- package/template/.agents/skills/design/impeccable/scripts/live-manual-edits-buffer.mjs +152 -0
- package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +379 -0
- package/template/.agents/skills/design/impeccable/scripts/live-resume.mjs +94 -0
- package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +2322 -0
- package/template/.agents/skills/design/impeccable/scripts/live-session-store.mjs +289 -0
- package/template/.agents/skills/design/impeccable/scripts/live-status.mjs +61 -0
- package/template/.agents/skills/design/impeccable/scripts/live-svelte-component.mjs +826 -0
- package/template/.agents/skills/design/impeccable/scripts/live-sveltekit-adapter.mjs +274 -0
- package/template/.agents/skills/design/impeccable/scripts/live-ui-core.mjs +179 -0
- package/template/.agents/skills/design/impeccable/scripts/live-wrap.mjs +894 -0
- package/template/.agents/skills/design/impeccable/scripts/live.mjs +246 -0
- package/template/.agents/skills/design/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/template/.agents/skills/design/impeccable/scripts/palette.mjs +633 -0
- package/template/.agents/skills/design/impeccable/scripts/pin.mjs +214 -0
- package/template/.agents/skills/design/shadcn/SKILL.md +242 -0
- package/template/.agents/skills/design/shadcn/agents/openai.yml +5 -0
- 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 +257 -0
- package/template/.agents/skills/design/shadcn/customization.md +202 -0
- package/template/.agents/skills/design/shadcn/evals/evals.json +47 -0
- package/template/.agents/skills/design/shadcn/mcp.md +94 -0
- package/template/.agents/skills/design/shadcn/rules/base-vs-radix.md +306 -0
- package/template/.agents/skills/design/shadcn/rules/composition.md +195 -0
- package/template/.agents/skills/design/shadcn/rules/forms.md +192 -0
- package/template/.agents/skills/design/shadcn/rules/icons.md +101 -0
- package/template/.agents/skills/design/shadcn/rules/styling.md +162 -0
- package/template/.agents/skills/find-skills/SKILL.md +142 -0
- package/template/.agents/skills/integrations/langfuse/SKILL.md +142 -0
- package/template/.agents/skills/integrations/langfuse/references/cli.md +52 -0
- package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +100 -0
- package/template/.agents/skills/integrations/langfuse/references/instrumentation.md +134 -0
- package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +288 -0
- package/template/.agents/skills/integrations/langfuse/references/prompt-migration.md +234 -0
- package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +175 -0
- package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +52 -0
- package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +88 -0
- package/template/.agents/skills/integrations/posthog/SKILL.md +102 -0
- package/template/.agents/skills/integrations/posthog/references/error-tracking-alerts.md +63 -0
- package/template/.agents/skills/integrations/posthog/references/error-tracking-assigning-issues.md +77 -0
- package/template/.agents/skills/integrations/posthog/references/error-tracking-fingerprints.md +57 -0
- package/template/.agents/skills/integrations/posthog/references/error-tracking-monitoring.md +140 -0
- package/template/.agents/skills/integrations/posthog/references/error-tracking-nextjs.md +490 -0
- package/template/.agents/skills/integrations/posthog/references/error-tracking-source-maps.md +45 -0
- package/template/.agents/skills/integrations/posthog/references/feature-flags-best-practices.md +139 -0
- package/template/.agents/skills/integrations/posthog/references/feature-flags-react.md +302 -0
- package/template/.agents/skills/integrations/posthog/references/identify-users.md +202 -0
- package/template/.agents/skills/integrations/posthog/references/integration-example.md +706 -0
- package/template/.agents/skills/integrations/posthog/references/integration-nextjs.md +385 -0
- package/template/.agents/skills/integrations/posthog/references/integration-step-1-begin.md +43 -0
- package/template/.agents/skills/integrations/posthog/references/integration-step-2-edit.md +37 -0
- package/template/.agents/skills/integrations/posthog/references/integration-step-3-revise.md +22 -0
- package/template/.agents/skills/integrations/posthog/references/integration-step-4-conclude.md +38 -0
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-anthropic.md +200 -0
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-basics.md +62 -0
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-costs.md +197 -0
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-manual-capture.md +397 -0
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-traces.md +98 -0
- package/template/.agents/skills/integrations/posthog/references/llm-analytics-vercel-ai.md +120 -0
- package/template/.agents/skills/repo/repo-ci/SKILL.md +265 -0
- package/template/.agents/skills/repo/repo-init-next-js/SKILL.md +129 -0
- package/template/.agents/skills/repo/repo-init-next-js/references/file-contents.md +800 -0
- package/template/.agents/skills/repo/repo-init-next-js/scripts/setup.sh +47 -0
- package/template/.agents/skills/repo/repo-init-node/SKILL.md +196 -0
- package/template/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/template/.agents/skills/skill-creator/SKILL.md +485 -0
- package/template/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/template/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/template/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/template/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/template/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/template/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/template/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/template/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/template/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/template/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/template/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/template/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/template/.agents/upstreams.json +80 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
> **Additional context needed**: quality bar (MVP vs flagship).
|
|
2
|
+
|
|
3
|
+
Perform a meticulous final pass to catch all the small details that separate good work from great work. The difference between shipped and polished.
|
|
4
|
+
|
|
5
|
+
Detector and automated QA output are defect evidence only. A clean script result is never proof that the design is strong; gather browser evidence and inspect the real interaction path.
|
|
6
|
+
|
|
7
|
+
## Design System Discovery
|
|
8
|
+
|
|
9
|
+
Aligning the feature to the design system is **not optional**. Polish without alignment is decoration on top of drift, and it makes the next person's job harder. Discovery comes before any other polish work.
|
|
10
|
+
|
|
11
|
+
1. **Find the design system**: Search for design system documentation, component libraries, style guides, or token definitions. Study the core patterns: design principles, target audience, color tokens, spacing scale, typography styles, component API, motion conventions.
|
|
12
|
+
2. **Note the conventions**: How are shared components imported? What spacing scale is used? Which colors come from tokens vs hard-coded values? What motion and interaction patterns are established? What flow shapes are used for comparable actions (modal vs full-page, inline vs route, save-on-blur vs explicit submit)?
|
|
13
|
+
3. **Identify drift, then name the root cause**: For every deviation, classify it as a **missing token** (the value should exist in the system but doesn't), a **one-off implementation** (a shared component already exists but wasn't used), or a **conceptual misalignment** (the feature's flow, IA, or hierarchy doesn't match neighboring features). The fix differs by category: patch the value, swap to the shared component, or rework the flow. Fixing the symptom without naming the cause is how drift compounds.
|
|
14
|
+
|
|
15
|
+
If a design system exists, polish **must** align the feature with it. If none exists, polish against the conventions visible in the codebase. **If anything about the system is ambiguous, ask. Never guess at design system principles.**
|
|
16
|
+
|
|
17
|
+
## Pre-Polish Assessment
|
|
18
|
+
|
|
19
|
+
Understand the current state and goals before touching anything:
|
|
20
|
+
|
|
21
|
+
1. **Review completeness**:
|
|
22
|
+
- Is it functionally complete?
|
|
23
|
+
- Are there known issues to preserve (mark with TODOs)?
|
|
24
|
+
- What's the quality bar? (MVP vs flagship feature?)
|
|
25
|
+
- When does it ship? (How much time for polish?)
|
|
26
|
+
|
|
27
|
+
2. **Think experience-first**: Who actually uses this, and what's the best possible experience for them? Effective design beats decorative polish; a feature that looks beautiful but fights the user's flow is not polished. Walk the path from their perspective before opening DevTools.
|
|
28
|
+
|
|
29
|
+
3. **Identify polish areas**:
|
|
30
|
+
- Visual inconsistencies
|
|
31
|
+
- Spacing and alignment issues
|
|
32
|
+
- Interaction state gaps
|
|
33
|
+
- Copy inconsistencies
|
|
34
|
+
- Edge cases and error states
|
|
35
|
+
- Loading and transition smoothness
|
|
36
|
+
- Information architecture and flow drift (does this feature reveal complexity the way neighboring features do?)
|
|
37
|
+
|
|
38
|
+
4. **Pull in any prior critique** (optional signal): If `/impeccable critique` has been run on the same target, its priority issues are a useful prior for what to address first. Resolve the target to a file path or URL, then:
|
|
39
|
+
```bash
|
|
40
|
+
slug=$(node .agents/skills/design/impeccable/scripts/critique-storage.mjs slug "<resolved>")
|
|
41
|
+
node .agents/skills/design/impeccable/scripts/critique-storage.mjs latest "$slug"
|
|
42
|
+
```
|
|
43
|
+
Exit 0 with body = found; fold the P0/P1 items into your polish list and mention the snapshot path so the user sees what you read. Exit 2 = no snapshot, continue without it. The critique is one input among many. Do your own pass either way.
|
|
44
|
+
|
|
45
|
+
5. **Triage cosmetic vs functional**: Classify each issue as **cosmetic** (looks off, doesn't impede the user) or **functional** (breaks, blocks, or confuses the experience). When polish time is tight, functional issues ship first; cosmetic ones can land in a follow-up. Quality should be consistent; never perfect one corner while leaving another rough.
|
|
46
|
+
|
|
47
|
+
**CRITICAL**: Polish is the last step, not the first. Don't polish work that's not functionally complete.
|
|
48
|
+
|
|
49
|
+
## Polish Systematically
|
|
50
|
+
|
|
51
|
+
Work through these dimensions methodically:
|
|
52
|
+
|
|
53
|
+
### Visual Alignment & Spacing
|
|
54
|
+
|
|
55
|
+
- **Pixel-perfect alignment**: Everything lines up to grid
|
|
56
|
+
- **Consistent spacing**: All gaps use spacing scale (no random 13px gaps)
|
|
57
|
+
- **Optical alignment**: Adjust for visual weight (icons may need offset for optical centering)
|
|
58
|
+
- **Responsive consistency**: Spacing and alignment work at all breakpoints
|
|
59
|
+
- **Grid adherence**: Elements snap to baseline grid
|
|
60
|
+
|
|
61
|
+
**Check**:
|
|
62
|
+
- Enable grid overlay and verify alignment
|
|
63
|
+
- Check spacing with browser inspector
|
|
64
|
+
- Test at multiple viewport sizes
|
|
65
|
+
- Look for elements that "feel" off
|
|
66
|
+
|
|
67
|
+
### Information Architecture & Flow
|
|
68
|
+
|
|
69
|
+
Visual polish on a misshapen flow is wasted work. Match the *shape* of the experience to the system, not just the surface.
|
|
70
|
+
|
|
71
|
+
- **Progressive disclosure**: Match how much is revealed when, compared to neighboring features. A settings page exposing 40 fields when the rest of the app reveals 5 at a time is drift, even if every field is perfectly styled.
|
|
72
|
+
- **Established user flows**: Multi-step actions follow the same shape as comparable flows elsewhere: modal vs full-page, inline edit vs separate route, save-on-blur vs explicit submit, optimistic vs pessimistic updates.
|
|
73
|
+
- **Hierarchy & complexity**: The same conceptual weight gets the same visual weight throughout. Primary actions don't become tertiary in one corner of the product, and tertiary actions don't shout.
|
|
74
|
+
- **Empty, loading, and arrival transitions**: How content arrives, updates, and leaves matches how it does in adjacent features.
|
|
75
|
+
- **Naming and mental model**: The feature uses the same nouns and verbs as the rest of the system. A "Workspace" here shouldn't be a "Project" three screens away.
|
|
76
|
+
|
|
77
|
+
### Typography Refinement
|
|
78
|
+
|
|
79
|
+
- **Hierarchy consistency**: Same elements use same sizes/weights throughout
|
|
80
|
+
- **Line length**: 45-75 characters for body text
|
|
81
|
+
- **Line height**: Appropriate for font size and context
|
|
82
|
+
- **Widows & orphans**: No single words on last line
|
|
83
|
+
- **Hyphenation**: Appropriate for language and column width
|
|
84
|
+
- **Kerning**: Adjust letter spacing where needed (especially headlines)
|
|
85
|
+
- **Font loading**: No FOUT/FOIT flashes
|
|
86
|
+
|
|
87
|
+
### Color & Contrast
|
|
88
|
+
|
|
89
|
+
- **Contrast ratios**: All text meets WCAG standards
|
|
90
|
+
- **Consistent token usage**: No hard-coded colors, all use design tokens
|
|
91
|
+
- **Theme consistency**: Works in all theme variants
|
|
92
|
+
- **Color meaning**: Same colors mean same things throughout
|
|
93
|
+
- **Accessible focus**: Focus indicators visible with sufficient contrast
|
|
94
|
+
- **Gray on color**: Never put gray text on colored backgrounds; use a shade of that color or transparency
|
|
95
|
+
|
|
96
|
+
### Interaction States
|
|
97
|
+
|
|
98
|
+
Every interactive element needs all states:
|
|
99
|
+
|
|
100
|
+
- **Default**: Resting state
|
|
101
|
+
- **Hover**: Subtle feedback (color, scale, shadow)
|
|
102
|
+
- **Focus**: Keyboard focus indicator (never remove without replacement)
|
|
103
|
+
- **Active**: Click/tap feedback
|
|
104
|
+
- **Disabled**: Clearly non-interactive
|
|
105
|
+
- **Loading**: Async action feedback
|
|
106
|
+
- **Error**: Validation or error state
|
|
107
|
+
- **Success**: Successful completion
|
|
108
|
+
|
|
109
|
+
**Missing states create confusion and broken experiences**.
|
|
110
|
+
|
|
111
|
+
### Micro-interactions & Transitions
|
|
112
|
+
|
|
113
|
+
- **Smooth transitions**: All state changes animated appropriately (150-300ms)
|
|
114
|
+
- **Consistent easing**: Use ease-out-quart/quint/expo for natural deceleration. Never bounce or elastic; they feel dated.
|
|
115
|
+
- **No jank**: Smooth animations; use atmospheric blur/filter/mask/shadow effects when they add polish, but bound expensive paint areas and avoid casual layout-property animation
|
|
116
|
+
- **Appropriate motion**: Motion serves purpose, not decoration
|
|
117
|
+
- **Reduced motion**: Respects `prefers-reduced-motion`
|
|
118
|
+
|
|
119
|
+
### Content & Copy
|
|
120
|
+
|
|
121
|
+
- **Consistent terminology**: Same things called same names throughout
|
|
122
|
+
- **Consistent capitalization**: Title Case vs Sentence case applied consistently
|
|
123
|
+
- **Grammar & spelling**: No typos
|
|
124
|
+
- **Appropriate length**: Not too wordy, not too terse
|
|
125
|
+
- **Punctuation consistency**: Periods on sentences, not on labels (unless all labels have them)
|
|
126
|
+
|
|
127
|
+
### Icons & Images
|
|
128
|
+
|
|
129
|
+
- **Consistent style**: All icons from same family or matching style
|
|
130
|
+
- **Appropriate sizing**: Icons sized consistently for context
|
|
131
|
+
- **Proper alignment**: Icons align with adjacent text optically
|
|
132
|
+
- **Alt text**: All images have descriptive alt text
|
|
133
|
+
- **Loading states**: Images don't cause layout shift, proper aspect ratios
|
|
134
|
+
- **Retina support**: 2x assets for high-DPI screens
|
|
135
|
+
|
|
136
|
+
### Forms & Inputs
|
|
137
|
+
|
|
138
|
+
- **Label consistency**: All inputs properly labeled
|
|
139
|
+
- **Required indicators**: Clear and consistent
|
|
140
|
+
- **Error messages**: Helpful and consistent
|
|
141
|
+
- **Tab order**: Logical keyboard navigation
|
|
142
|
+
- **Auto-focus**: Appropriate (don't overuse)
|
|
143
|
+
- **Validation timing**: Consistent (on blur vs on submit)
|
|
144
|
+
|
|
145
|
+
### Edge Cases & Error States
|
|
146
|
+
|
|
147
|
+
- **Loading states**: All async actions have loading feedback
|
|
148
|
+
- **Empty states**: Helpful empty states, not just blank space
|
|
149
|
+
- **Error states**: Clear error messages with recovery paths
|
|
150
|
+
- **Success states**: Confirmation of successful actions
|
|
151
|
+
- **Long content**: Handles very long names, descriptions, etc.
|
|
152
|
+
- **No content**: Handles missing data gracefully
|
|
153
|
+
- **Offline**: Appropriate offline handling (if applicable)
|
|
154
|
+
|
|
155
|
+
### Responsiveness
|
|
156
|
+
|
|
157
|
+
- **All breakpoints**: Test mobile, tablet, desktop
|
|
158
|
+
- **Touch targets**: 44x44px minimum on touch devices
|
|
159
|
+
- **Readable text**: No text smaller than 14px on mobile
|
|
160
|
+
- **No horizontal scroll**: Content fits viewport
|
|
161
|
+
- **Appropriate reflow**: Content adapts logically
|
|
162
|
+
|
|
163
|
+
### Performance
|
|
164
|
+
|
|
165
|
+
- **Fast initial load**: Optimize critical path
|
|
166
|
+
- **No layout shift**: Elements don't jump after load (CLS)
|
|
167
|
+
- **Smooth interactions**: No lag or jank
|
|
168
|
+
- **Optimized images**: Appropriate formats and sizes
|
|
169
|
+
- **Lazy loading**: Off-screen content loads lazily
|
|
170
|
+
|
|
171
|
+
### Code Quality
|
|
172
|
+
|
|
173
|
+
- **Remove console logs**: No debug logging in production
|
|
174
|
+
- **Remove commented code**: Clean up dead code
|
|
175
|
+
- **Remove unused imports**: Clean up unused dependencies
|
|
176
|
+
- **Consistent naming**: Variables and functions follow conventions
|
|
177
|
+
- **Type safety**: No TypeScript `any` or ignored errors
|
|
178
|
+
- **Accessibility**: Proper ARIA labels and semantic HTML
|
|
179
|
+
|
|
180
|
+
## Polish Checklist
|
|
181
|
+
|
|
182
|
+
Go through systematically:
|
|
183
|
+
|
|
184
|
+
- [ ] Aligned to the design system (drift named and resolved by root cause)
|
|
185
|
+
- [ ] Information architecture and flow shape match neighboring features
|
|
186
|
+
- [ ] Visual alignment perfect at all breakpoints
|
|
187
|
+
- [ ] Spacing uses design tokens consistently
|
|
188
|
+
- [ ] Typography hierarchy consistent
|
|
189
|
+
- [ ] All interactive states implemented
|
|
190
|
+
- [ ] All transitions smooth (60fps)
|
|
191
|
+
- [ ] Copy is consistent and polished
|
|
192
|
+
- [ ] Icons are consistent and properly sized
|
|
193
|
+
- [ ] All forms properly labeled and validated
|
|
194
|
+
- [ ] Error states are helpful
|
|
195
|
+
- [ ] Loading states are clear
|
|
196
|
+
- [ ] Empty states are welcoming
|
|
197
|
+
- [ ] Touch targets are 44x44px minimum
|
|
198
|
+
- [ ] Contrast ratios meet WCAG AA
|
|
199
|
+
- [ ] Keyboard navigation works
|
|
200
|
+
- [ ] Focus indicators visible
|
|
201
|
+
- [ ] No console errors or warnings
|
|
202
|
+
- [ ] No layout shift on load
|
|
203
|
+
- [ ] Works in all supported browsers
|
|
204
|
+
- [ ] Respects reduced motion preference
|
|
205
|
+
- [ ] Code is clean (no TODOs, console.logs, commented code)
|
|
206
|
+
|
|
207
|
+
**IMPORTANT**: Polish is about details. Zoom in. Squint at it. Use it yourself. The little things add up.
|
|
208
|
+
|
|
209
|
+
Sweat the details. Zoom in until the alignment is right and the spacing reads as deliberate. Then ship.
|
|
210
|
+
|
|
211
|
+
**NEVER**:
|
|
212
|
+
- Polish before it's functionally complete
|
|
213
|
+
- Polish without aligning to the design system; that's decoration on drift
|
|
214
|
+
- Guess at design system principles instead of asking when something is ambiguous
|
|
215
|
+
- Spend hours on polish if it ships in 30 minutes (triage)
|
|
216
|
+
- Introduce bugs while polishing (test thoroughly)
|
|
217
|
+
- Ignore systematic issues (if spacing is off everywhere, fix the system, not just one screen)
|
|
218
|
+
- Perfect one thing while leaving others rough (consistent quality level)
|
|
219
|
+
- Create new one-off components when design system equivalents exist
|
|
220
|
+
- Hard-code values that should use design tokens
|
|
221
|
+
- Introduce new patterns or flows that diverge from established ones
|
|
222
|
+
|
|
223
|
+
## Final Verification
|
|
224
|
+
|
|
225
|
+
Before marking as done:
|
|
226
|
+
|
|
227
|
+
- **Use it yourself**: Actually interact with the feature.
|
|
228
|
+
- **Test on real devices**: Not just browser DevTools.
|
|
229
|
+
- **Ask someone else to review**: Fresh eyes catch things.
|
|
230
|
+
- **Compare to design**: Match intended design.
|
|
231
|
+
- **Check all states**: Don't just test happy path.
|
|
232
|
+
- **Treat automation carefully**: Run detector or QA commands when they are available and relevant, fix their defects, but never cite a clean result as proof that the work is polished.
|
|
233
|
+
|
|
234
|
+
## Clean Up
|
|
235
|
+
|
|
236
|
+
After polishing, ensure code quality:
|
|
237
|
+
|
|
238
|
+
- **Replace custom implementations**: If the design system provides a component you reimplemented, switch to the shared version.
|
|
239
|
+
- **Remove orphaned code**: Delete unused styles, components, or files made obsolete by polish.
|
|
240
|
+
- **Consolidate tokens**: If you introduced new values, check whether they should be tokens.
|
|
241
|
+
- **Verify DRYness**: Look for duplication introduced during polishing and consolidate.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Product register
|
|
2
|
+
|
|
3
|
+
When design SERVES the product: app UIs, admin dashboards, settings panels, data tables, tools, authenticated surfaces, anything where the user is in a task.
|
|
4
|
+
|
|
5
|
+
## The product slop test
|
|
6
|
+
|
|
7
|
+
Not "would someone say AI made this." Familiarity is often a feature here. The test is: would a user fluent in the category's best tools (Linear, Figma, Notion, Raycast, Stripe come to mind) sit down and trust this interface, or pause at every subtly-off component?
|
|
8
|
+
|
|
9
|
+
Product UI's failure mode isn't flatness, it's strangeness without purpose: over-decorated buttons, mismatched form controls, gratuitous motion, display fonts where labels should be, invented affordances for standard tasks. The bar is earned familiarity. The tool should disappear into the task.
|
|
10
|
+
|
|
11
|
+
## Typography
|
|
12
|
+
|
|
13
|
+
- **One family is often right.** Product UIs don't need display/body pairing. A well-tuned sans carries headings, buttons, labels, body, data.
|
|
14
|
+
- **Fixed rem scale, not fluid.** Clamp-sized headings don't serve product UI. Users view at consistent DPI, and a fluid h1 that shrinks in a sidebar looks worse, not better.
|
|
15
|
+
- **Tighter scale ratio.** 1.125–1.2 between steps is typical. More type elements here than on brand surfaces; exaggerated contrast creates noise.
|
|
16
|
+
- **Line length still applies for prose** (65–75ch). Data and compact UI can run denser; tables at 120ch+ are fine.
|
|
17
|
+
|
|
18
|
+
## Color
|
|
19
|
+
|
|
20
|
+
Product defaults to Restrained. A single surface can earn Committed (a dashboard where one category color carries a report, an onboarding flow with a drenched welcome screen), but Restrained is the floor.
|
|
21
|
+
|
|
22
|
+
- State-rich semantic vocabulary: hover, focus, active, disabled, selected, loading, error, warning, success, info. Standardize these.
|
|
23
|
+
- Accent color used for primary actions, current selection, and state indicators only, not decoration.
|
|
24
|
+
- A second neutral layer for sidebars, toolbars, and panels (slightly cooler or warmer than the content surface).
|
|
25
|
+
|
|
26
|
+
## Layout
|
|
27
|
+
|
|
28
|
+
- Responsive behavior is structural (collapse sidebar, responsive table, breakpoint-driven columns), not fluid typography.
|
|
29
|
+
|
|
30
|
+
## Components
|
|
31
|
+
|
|
32
|
+
Every interactive component has: default, hover, focus, active, disabled, loading, error. Don't ship with half of these.
|
|
33
|
+
|
|
34
|
+
- Skeleton states for loading, not spinners in the middle of content.
|
|
35
|
+
- Empty states that teach the interface, not "nothing here."
|
|
36
|
+
- Consistent affordances across the surface. Same button shape. Same form-control vocabulary. Same icon style.
|
|
37
|
+
|
|
38
|
+
## Motion
|
|
39
|
+
|
|
40
|
+
- 150–250 ms on most transitions. Users are in flow; don't make them wait for choreography.
|
|
41
|
+
- Motion conveys state, not decoration. State change, feedback, loading, reveal: nothing else.
|
|
42
|
+
- No orchestrated page-load sequences. Product loads into a task; users don't want to watch it load.
|
|
43
|
+
|
|
44
|
+
## Product bans (on top of the shared absolute bans)
|
|
45
|
+
|
|
46
|
+
- Decorative motion that doesn't convey state.
|
|
47
|
+
- Inconsistent component vocabulary across screens. If the "save" button looks different in two places, one is wrong.
|
|
48
|
+
- Display fonts in UI labels, buttons, data.
|
|
49
|
+
- Reinventing standard affordances for flavor (custom scrollbars, weird form controls, non-standard modals).
|
|
50
|
+
- Heavy color or full-saturation accents on inactive states.
|
|
51
|
+
- Modal as first thought. Modals are usually laziness. Exhaust inline / progressive alternatives first.
|
|
52
|
+
|
|
53
|
+
## Product permissions
|
|
54
|
+
|
|
55
|
+
Product can afford things brand surfaces can't.
|
|
56
|
+
|
|
57
|
+
- System fonts and familiar sans defaults (Inter, SF Pro, system-ui stacks).
|
|
58
|
+
- Standard navigation patterns: top bar + side nav, breadcrumbs, tabs, command palettes.
|
|
59
|
+
- Density. Tables with many rows, panels with many labels, dense information when users need it.
|
|
60
|
+
- Consistency over surprise. The same visual vocabulary screen to screen is a virtue; delight is saved for moments, not pages.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Quiet design is harder than bold design. Subtlety needs precision. Reduce visual intensity in designs that are too loud, aggressive, or overstimulating without losing personality or making the result generic.
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Register
|
|
6
|
+
|
|
7
|
+
Brand: "quieter" means more restrained palette, more whitespace, more typographic air. Drama is reduced, not eliminated; the POV stays intact.
|
|
8
|
+
|
|
9
|
+
Product: "quieter" means reducing visual noise. Fewer background accents, flatter cards, less color, less motion. The tool should disappear more completely into the task.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Assess Current State
|
|
14
|
+
|
|
15
|
+
Analyze what makes the design feel too intense:
|
|
16
|
+
|
|
17
|
+
1. **Identify intensity sources**:
|
|
18
|
+
- **Color saturation**: Overly bright or saturated colors
|
|
19
|
+
- **Contrast extremes**: Too much high-contrast juxtaposition
|
|
20
|
+
- **Visual weight**: Too many bold, heavy elements competing
|
|
21
|
+
- **Animation excess**: Too much motion or overly dramatic effects
|
|
22
|
+
- **Complexity**: Too many visual elements, patterns, or decorations
|
|
23
|
+
- **Scale**: Everything is large and loud with no hierarchy
|
|
24
|
+
|
|
25
|
+
2. **Understand the context**:
|
|
26
|
+
- What's the purpose? (Marketing vs tool vs reading experience)
|
|
27
|
+
- Who's the audience? (Some contexts need energy)
|
|
28
|
+
- What's working? (Don't throw away good ideas)
|
|
29
|
+
- What's the core message? (Preserve what matters)
|
|
30
|
+
|
|
31
|
+
If any of these are unclear from the codebase, STOP and call the `question` tool to clarify.
|
|
32
|
+
|
|
33
|
+
**CRITICAL**: "Quieter" doesn't mean boring or generic. It means refined and easier on the eyes. Think luxury, not laziness.
|
|
34
|
+
|
|
35
|
+
## Plan Refinement
|
|
36
|
+
|
|
37
|
+
Create a strategy to reduce intensity while maintaining impact:
|
|
38
|
+
|
|
39
|
+
- **Color approach**: Desaturate or shift to more restrained tones?
|
|
40
|
+
- **Hierarchy approach**: Which elements should stay bold (very few), which should recede?
|
|
41
|
+
- **Simplification approach**: What can be removed entirely?
|
|
42
|
+
- **Sophistication approach**: How can we signal quality through restraint?
|
|
43
|
+
|
|
44
|
+
**IMPORTANT**: Subtlety requires precision. Quiet without intent collapses to generic.
|
|
45
|
+
|
|
46
|
+
## Refine the Design
|
|
47
|
+
|
|
48
|
+
Systematically reduce intensity across these dimensions:
|
|
49
|
+
|
|
50
|
+
### Color Refinement
|
|
51
|
+
- **Reduce saturation**: Shift from fully saturated to 70-85% saturation
|
|
52
|
+
- **Soften palette**: Replace bright colors with muted tones
|
|
53
|
+
- **Reduce color variety**: Use fewer colors more thoughtfully
|
|
54
|
+
- **Neutral dominance**: Let neutrals do more work, use color as accent (10% rule)
|
|
55
|
+
- **Gentler contrasts**: High contrast only where it matters most
|
|
56
|
+
- **Tinted grays**: Use warm or cool tinted grays instead of pure gray. Adds depth without loudness
|
|
57
|
+
- **Never gray on color**: If you have gray text on a colored background, use a darker shade of that color or transparency instead
|
|
58
|
+
|
|
59
|
+
### Visual Weight Reduction
|
|
60
|
+
- **Typography**: Reduce font weights (900 → 600, 700 → 500), decrease sizes where appropriate
|
|
61
|
+
- **Hierarchy through subtlety**: Use weight, size, and space instead of color and boldness
|
|
62
|
+
- **White space**: Increase breathing room, reduce density
|
|
63
|
+
- **Borders & lines**: Reduce thickness, decrease opacity, or remove entirely
|
|
64
|
+
|
|
65
|
+
### Simplification
|
|
66
|
+
- **Remove decorative elements**: Gradients, shadows, patterns, textures that don't serve purpose
|
|
67
|
+
- **Simplify shapes**: Reduce border radius extremes, simplify custom shapes
|
|
68
|
+
- **Reduce layering**: Flatten visual hierarchy where possible
|
|
69
|
+
- **Clean up effects**: Reduce or remove blur effects, glows, multiple shadows
|
|
70
|
+
|
|
71
|
+
### Motion Reduction
|
|
72
|
+
- **Reduce animation intensity**: Shorter distances (10-20px instead of 40px), gentler easing
|
|
73
|
+
- **Remove decorative animations**: Keep functional motion, remove flourishes
|
|
74
|
+
- **Subtle micro-interactions**: Replace dramatic effects with gentle feedback
|
|
75
|
+
- **Refined easing**: Use ease-out-quart for smooth, understated motion. Never bounce or elastic
|
|
76
|
+
- **Remove animations entirely** if they're not serving a clear purpose
|
|
77
|
+
|
|
78
|
+
### Composition Refinement
|
|
79
|
+
- **Reduce scale jumps**: Smaller contrast between sizes creates calmer feeling
|
|
80
|
+
- **Align to grid**: Bring rogue elements back into systematic alignment
|
|
81
|
+
- **Even out spacing**: Replace extreme spacing variations with consistent rhythm
|
|
82
|
+
|
|
83
|
+
**NEVER**:
|
|
84
|
+
- Make everything the same size/weight (hierarchy still matters)
|
|
85
|
+
- Remove all color (quiet ≠ grayscale)
|
|
86
|
+
- Eliminate all personality (maintain character through refinement)
|
|
87
|
+
- Sacrifice usability for aesthetics (functional elements still need clear affordances)
|
|
88
|
+
- Make everything small and light (some anchors needed)
|
|
89
|
+
|
|
90
|
+
## Verify Quality
|
|
91
|
+
|
|
92
|
+
Ensure refinement maintains quality:
|
|
93
|
+
|
|
94
|
+
- **Still functional**: Can users still accomplish tasks easily?
|
|
95
|
+
- **Still distinctive**: Does it have character, or is it generic now?
|
|
96
|
+
- **Better reading**: Is text easier to read for extended periods?
|
|
97
|
+
- **Restrained, not absent**: Does the POV survive the cuts?
|
|
98
|
+
|
|
99
|
+
When the result feels right, hand off to `/impeccable polish` for the final pass.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Shape the UX and UI for a feature before any code is written. This command produces a **design brief**: a structured artifact that guides implementation through discovery, not guesswork.
|
|
2
|
+
|
|
3
|
+
**Scope**: Design planning only. This command does NOT write code. It produces the thinking that makes code good.
|
|
4
|
+
|
|
5
|
+
**Output**: A design brief that can be handed off to /impeccable craft, or directly to /impeccable for freeform implementation. When visual direction probes are used, the images are supporting artifacts, not the primary output.
|
|
6
|
+
|
|
7
|
+
## Philosophy
|
|
8
|
+
|
|
9
|
+
Most AI-generated UIs fail not because of bad code, but because of skipped thinking. They jump to "here's a card grid" without asking "what is the user trying to accomplish?" This command inverts that: understand deeply first, so implementation is precise.
|
|
10
|
+
|
|
11
|
+
## Phase 1: Discovery Interview
|
|
12
|
+
|
|
13
|
+
**Do NOT write any code or make any design decisions during this phase.** Your only job is to understand the feature deeply enough to make excellent design decisions later.
|
|
14
|
+
|
|
15
|
+
This is a required interaction, not optional guidance. Ask these questions in conversation, adapting based on answers. Don't dump them all at once; have a natural dialogue. STOP and call the `question` tool to clarify.
|
|
16
|
+
|
|
17
|
+
### Interview cadence
|
|
18
|
+
|
|
19
|
+
Discovery includes at least one user-answer round unless PRODUCT.md, DESIGN.md, or an already-confirmed brief directly answers the needed inputs. With a sparse prompt, do **not** synthesize a complete brief for confirmation on the first response.
|
|
20
|
+
|
|
21
|
+
- Use the harness's structured question tool when one exists. Otherwise, ask directly in chat and stop.
|
|
22
|
+
- Ask **2-3 questions per round**, then wait for answers.
|
|
23
|
+
- Treat PRODUCT.md and DESIGN.md as anchors; they reduce repeated questions but do **not** replace shape for craft. Shape is task-specific.
|
|
24
|
+
- One round is the default. Add a second only if the first answers leave material gaps. Don't run a second round just to feel thorough.
|
|
25
|
+
- Round 1 should clarify purpose, audience/context, content/scope, and (for brand) visual direction.
|
|
26
|
+
- Round 2, when needed, fills in whatever's still genuinely missing.
|
|
27
|
+
|
|
28
|
+
**Assert-then-confirm, not menu-with-escape.** When PRODUCT.md and the user's prompt make one option obvious, name it and ask the user to confirm or override. Don't enumerate "Restrained / Committed / Or something else?" as a real choice; "This reads as Restrained, confirm?" beats a four-option menu when the answer is already clear.
|
|
29
|
+
|
|
30
|
+
### Purpose & Context
|
|
31
|
+
- What is this feature for? What problem does it solve?
|
|
32
|
+
- Who specifically will use it? (Not "users"; be specific: role, context, frequency)
|
|
33
|
+
- What does success look like? How will you know this feature is working?
|
|
34
|
+
- What's the user's state of mind when they reach this feature? (Rushed? Exploring? Anxious? Focused?)
|
|
35
|
+
|
|
36
|
+
### Content & Data
|
|
37
|
+
- What content or data does this feature display or collect?
|
|
38
|
+
- What are the realistic ranges? (Minimum, typical, maximum, e.g., 0 items, 5 items, 500 items)
|
|
39
|
+
- What are the edge cases? (Empty state, error state, first-time use, power user)
|
|
40
|
+
- Is any content dynamic? What changes and how often?
|
|
41
|
+
- What visual assets are real content here? Note required images, product shots, illustrations, maps, textures, diagrams, generated objects, or existing project assets.
|
|
42
|
+
|
|
43
|
+
### Design Direction
|
|
44
|
+
|
|
45
|
+
Force a visual decision on three fronts. Skip anything PRODUCT.md or DESIGN.md already answers; ask only what's missing.
|
|
46
|
+
|
|
47
|
+
- **Color strategy for this surface.** Pick one: Restrained / Committed / Full palette / Drenched. Can override the project default if the surface earns it (e.g. a drenched hero inside an otherwise Restrained product).
|
|
48
|
+
- **Theme via scene sentence.** Write one sentence of physical context for this surface: who uses it, where, under what ambient light, in what mood. The sentence forces dark vs light. If it doesn't, add detail until it does.
|
|
49
|
+
- **Two or three named anchor references.** Specific products, brands, objects. Not adjectives like "modern" or "clean."
|
|
50
|
+
|
|
51
|
+
### Scope
|
|
52
|
+
|
|
53
|
+
Always ask. Sketch quality and shipped quality are different outputs; don't guess between them.
|
|
54
|
+
|
|
55
|
+
- **Fidelity.** Sketch / mid-fi / high-fi / production-ready?
|
|
56
|
+
- **Breadth.** One screen / a flow / a whole surface?
|
|
57
|
+
- **Interactivity.** Static visual / interactive prototype / shipped-quality component?
|
|
58
|
+
- **Time intent.** Quick exploration, or polish until it ships?
|
|
59
|
+
|
|
60
|
+
Scope answers are task-scoped. Don't write them to PRODUCT.md or DESIGN.md; carry them through the design brief only.
|
|
61
|
+
|
|
62
|
+
### Constraints
|
|
63
|
+
- Are there technical constraints? (Framework, performance budget, browser support)
|
|
64
|
+
- Are there content constraints? (Localization, dynamic text length, user-generated content)
|
|
65
|
+
- Mobile/responsive requirements?
|
|
66
|
+
- Accessibility requirements beyond WCAG AA?
|
|
67
|
+
|
|
68
|
+
### Anti-Goals
|
|
69
|
+
- What should this NOT be? What would be a wrong direction?
|
|
70
|
+
- What's the biggest risk of getting this wrong?
|
|
71
|
+
|
|
72
|
+
## Phase 1.5: Visual Direction Probe (Capability-Gated)
|
|
73
|
+
|
|
74
|
+
After the discovery interview, generate a small set of visual direction probes **before** writing the final brief when all of these are true:
|
|
75
|
+
|
|
76
|
+
- The work is **net-new** or directionally ambiguous enough that visual exploration will clarify the brief.
|
|
77
|
+
- The requested fidelity is **mid-fi, high-fi, or production-ready**. Skip for sketch-only planning.
|
|
78
|
+
- The current harness gives you native image generation (Codex's `image_gen`, an equivalent MCP tool, or similar). Don't ask the user to install APIs or tooling.
|
|
79
|
+
|
|
80
|
+
When those conditions are met, this step is mandatory. If image generation isn't natively available, do not ask the user to install APIs or tooling. State in one line that the image step is skipped because the harness lacks native image generation, then proceed. The one-line announcement is required, not optional; it forces a conscious decision instead of letting the step quietly evaporate.
|
|
81
|
+
|
|
82
|
+
Use probes to explore visual lanes, not to replace the brief.
|
|
83
|
+
|
|
84
|
+
Do not skip probes because the final UI will be semantic, editable, code-native, responsive, or accessible. Those are implementation requirements, not reasons to avoid visual exploration.
|
|
85
|
+
|
|
86
|
+
### What to generate
|
|
87
|
+
|
|
88
|
+
Generate **2 to 4** distinct direction probes based on the discovery answers, especially:
|
|
89
|
+
|
|
90
|
+
- Color strategy
|
|
91
|
+
- Theme scene sentence
|
|
92
|
+
- Named anchor references
|
|
93
|
+
- Scope and fidelity
|
|
94
|
+
|
|
95
|
+
The probes should differ in primary visual direction (hierarchy, topology, density, typographic voice, or color strategy), not just palette tweaks.
|
|
96
|
+
|
|
97
|
+
### How to use the probes
|
|
98
|
+
|
|
99
|
+
- Treat them as **direction tests**, not final designs.
|
|
100
|
+
- Use them to pressure-test whether the brief is pointing at the right lane.
|
|
101
|
+
- Ask the user which direction feels closest, what feels off, and what should carry forward.
|
|
102
|
+
- If the probes reveal a mismatch, revise the brief inputs before finalizing the brief.
|
|
103
|
+
|
|
104
|
+
### Important limits
|
|
105
|
+
|
|
106
|
+
- Do **not** skip discovery because image generation is available.
|
|
107
|
+
- Do **not** treat generated imagery as final UX specification, final copy, or final accessibility behavior.
|
|
108
|
+
- Do **not** use this step for minor refinements of existing work. It's for shaping a new surface or clarifying a big directional choice.
|
|
109
|
+
|
|
110
|
+
If image generation isn't natively available, announce the skip in one line and proceed to the design brief.
|
|
111
|
+
|
|
112
|
+
## Phase 2: Design Brief
|
|
113
|
+
|
|
114
|
+
After the interview and any required probes, present a brief and **end your response**. The user must confirm before any implementation runs. Do not present a brief and then continue to code in the same response, even if the brief feels obvious to you. The user's confirmation is the gate.
|
|
115
|
+
|
|
116
|
+
**Choose the brief shape based on how clear the answers are:**
|
|
117
|
+
|
|
118
|
+
- **Compact form (3-5 bullets)** when discovery was crisp and the original prompt + PRODUCT.md already pinned scope, content, and direction. State what you're building, the visual lane, and end with one or two specific questions or a clear "confirm or override?" prompt. This is the default for typical craft requests with a clear prompt.
|
|
119
|
+
- **Full structured form (sections below)** when the task is genuinely ambiguous, multi-screen, or when the user asked for shape as a standalone step. Use this when the discipline of structure earns its weight.
|
|
120
|
+
|
|
121
|
+
Don't pad a clear brief into a long one to look thorough. A 70-line brief restating answers the user just gave is noise, not rigor. Equally, don't skip the confirmation pause to look efficient: the pause is the point.
|
|
122
|
+
|
|
123
|
+
Present the brief, then **stop and wait for explicit confirmation**. You are not the judge of whether the user already approved. Even when the brief feels obviously right, ask once and wait. The pause is what separates shape from premature implementation.
|
|
124
|
+
|
|
125
|
+
### Brief Structure
|
|
126
|
+
|
|
127
|
+
**1. Feature Summary** (2-3 sentences)
|
|
128
|
+
What this is, who it's for, what it needs to accomplish.
|
|
129
|
+
|
|
130
|
+
**2. Primary User Action**
|
|
131
|
+
The single most important thing a user should do or understand here.
|
|
132
|
+
|
|
133
|
+
**3. Design Direction**
|
|
134
|
+
Color strategy (Restrained / Committed / Full palette / Drenched) + the theme scene sentence + 2–3 named anchor references. Reference PRODUCT.md and DESIGN.md where they already answer, and note any per-surface overrides.
|
|
135
|
+
|
|
136
|
+
If you ran the Visual Direction Probe step, name which probe direction won and what changed in the brief because of it.
|
|
137
|
+
|
|
138
|
+
**4. Scope**
|
|
139
|
+
Fidelity, breadth, interactivity, and time intent from the Scope section of the interview. Task-scoped; these don't persist beyond the brief.
|
|
140
|
+
|
|
141
|
+
**5. Layout Strategy**
|
|
142
|
+
High-level spatial approach: what gets emphasis, what's secondary, how information flows. Describe the visual hierarchy and rhythm, not specific CSS.
|
|
143
|
+
|
|
144
|
+
**6. Key States**
|
|
145
|
+
List every state the feature needs: default, empty, loading, error, success, edge cases. For each, note what the user needs to see and feel.
|
|
146
|
+
|
|
147
|
+
**7. Interaction Model**
|
|
148
|
+
How users interact with this feature. What happens on click, hover, scroll? What feedback do they get? What's the flow from entry to completion?
|
|
149
|
+
|
|
150
|
+
**8. Content Requirements**
|
|
151
|
+
What copy, labels, empty state messages, error messages, and microcopy are needed. Note any dynamic content and its realistic ranges. For image-led surfaces, also list the required image/media roles and their likely source (project asset, generated raster, semantic SVG/CSS, canvas/WebGL, icon library, or accepted omission).
|
|
152
|
+
|
|
153
|
+
**9. Recommended References**
|
|
154
|
+
Based on the brief, list which impeccable reference files would be most valuable during implementation (e.g., layout.md for complex layouts, animate.md for animated features, interaction-design.md for form-heavy features, typeset.md for typography-driven pages, colorize.md for color-led brands).
|
|
155
|
+
|
|
156
|
+
**10. Open Questions**
|
|
157
|
+
Anything genuinely unresolved. Don't list "open questions" you've already recommended a default for; assert the default and move on. If you'd write `Recommend: X` next to a question, just decide X.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
STOP and call the `question` tool to clarify. Ask for explicit confirmation of the brief before finishing.
|
|
162
|
+
|
|
163
|
+
If the user disagrees with any part, revisit the relevant discovery questions. A shape run is incomplete until the user confirms direction.
|
|
164
|
+
|
|
165
|
+
Once confirmed, the brief is complete. The user can now hand it to /impeccable, or use it to guide any other implementation approach. (If the user wants the full discovery-then-build flow in one step, they should use /impeccable craft instead, which runs this command internally.)
|