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.
Files changed (281) hide show
  1. package/README.md +188 -0
  2. package/bin/quiver-cli.mjs +2 -0
  3. package/dist/cli.js +3074 -0
  4. package/package.json +55 -0
  5. package/template/.agents/AGENTS.md +25 -0
  6. package/template/.agents/commands/cp.md +116 -0
  7. package/template/.agents/commands/next-setup.md +1064 -0
  8. package/template/.agents/commands/tf-readme.md +38 -0
  9. package/template/.agents/config.json +60 -0
  10. package/template/.agents/skills/agent-browser/SKILL.md +55 -0
  11. package/template/.agents/skills/apps/skybridge/SKILL.md +46 -0
  12. package/template/.agents/skills/apps/skybridge/references/architecture.md +175 -0
  13. package/template/.agents/skills/apps/skybridge/references/copy-template.md +24 -0
  14. package/template/.agents/skills/apps/skybridge/references/csp.md +33 -0
  15. package/template/.agents/skills/apps/skybridge/references/deploy.md +33 -0
  16. package/template/.agents/skills/apps/skybridge/references/discover.md +84 -0
  17. package/template/.agents/skills/apps/skybridge/references/download-file.md +77 -0
  18. package/template/.agents/skills/apps/skybridge/references/fetch-and-render-data.md +151 -0
  19. package/template/.agents/skills/apps/skybridge/references/oauth.md +115 -0
  20. package/template/.agents/skills/apps/skybridge/references/open-external-links.md +71 -0
  21. package/template/.agents/skills/apps/skybridge/references/prompt-llm.md +20 -0
  22. package/template/.agents/skills/apps/skybridge/references/publish.md +19 -0
  23. package/template/.agents/skills/apps/skybridge/references/run-locally.md +51 -0
  24. package/template/.agents/skills/apps/skybridge/references/state-and-context.md +151 -0
  25. package/template/.agents/skills/apps/skybridge/references/ui-guidelines.md +205 -0
  26. package/template/.agents/skills/code/cleanup/SKILL.md +26 -0
  27. package/template/.agents/skills/code/vercel-react-best-practices/AGENTS.md +3810 -0
  28. package/template/.agents/skills/code/vercel-react-best-practices/README.md +123 -0
  29. package/template/.agents/skills/code/vercel-react-best-practices/SKILL.md +149 -0
  30. package/template/.agents/skills/code/vercel-react-best-practices/metadata.json +15 -0
  31. package/template/.agents/skills/code/vercel-react-best-practices/rules/_sections.md +46 -0
  32. package/template/.agents/skills/code/vercel-react-best-practices/rules/_template.md +28 -0
  33. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  34. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  35. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  36. package/template/.agents/skills/code/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  37. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  38. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  39. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  40. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  41. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-parallel.md +28 -0
  42. package/template/.agents/skills/code/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  43. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
  44. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  45. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  46. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  47. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  48. package/template/.agents/skills/code/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  49. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  50. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  51. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  52. package/template/.agents/skills/code/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  53. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  54. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  55. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  56. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  57. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  58. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  59. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  60. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  61. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  62. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  63. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  64. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  65. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  66. package/template/.agents/skills/code/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  67. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  68. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  69. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  70. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  71. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  72. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  73. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  74. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  75. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  76. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  77. package/template/.agents/skills/code/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  78. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  79. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  80. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  81. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  82. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  83. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  84. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  85. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  86. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  87. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  88. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  89. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  90. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  91. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  92. package/template/.agents/skills/code/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  93. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  94. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  95. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  96. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  97. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  98. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  99. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  100. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  101. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  102. package/template/.agents/skills/code/vercel-react-best-practices/rules/server-serialization.md +38 -0
  103. package/template/.agents/skills/data/prisma-cli/SKILL.md +247 -0
  104. package/template/.agents/skills/data/prisma-cli/references/db-execute.md +78 -0
  105. package/template/.agents/skills/data/prisma-cli/references/db-pull.md +185 -0
  106. package/template/.agents/skills/data/prisma-cli/references/db-push.md +148 -0
  107. package/template/.agents/skills/data/prisma-cli/references/db-seed.md +188 -0
  108. package/template/.agents/skills/data/prisma-cli/references/debug.md +46 -0
  109. package/template/.agents/skills/data/prisma-cli/references/dev.md +157 -0
  110. package/template/.agents/skills/data/prisma-cli/references/format.md +48 -0
  111. package/template/.agents/skills/data/prisma-cli/references/generate.md +173 -0
  112. package/template/.agents/skills/data/prisma-cli/references/init.md +136 -0
  113. package/template/.agents/skills/data/prisma-cli/references/mcp.md +38 -0
  114. package/template/.agents/skills/data/prisma-cli/references/migrate-deploy.md +127 -0
  115. package/template/.agents/skills/data/prisma-cli/references/migrate-dev.md +145 -0
  116. package/template/.agents/skills/data/prisma-cli/references/migrate-diff.md +89 -0
  117. package/template/.agents/skills/data/prisma-cli/references/migrate-reset.md +78 -0
  118. package/template/.agents/skills/data/prisma-cli/references/migrate-resolve.md +57 -0
  119. package/template/.agents/skills/data/prisma-cli/references/migrate-status.md +65 -0
  120. package/template/.agents/skills/data/prisma-cli/references/studio.md +137 -0
  121. package/template/.agents/skills/data/prisma-cli/references/validate.md +53 -0
  122. package/template/.agents/skills/data/prisma-client-api/SKILL.md +216 -0
  123. package/template/.agents/skills/data/prisma-client-api/references/client-methods.md +223 -0
  124. package/template/.agents/skills/data/prisma-client-api/references/constructor.md +208 -0
  125. package/template/.agents/skills/data/prisma-client-api/references/filters.md +256 -0
  126. package/template/.agents/skills/data/prisma-client-api/references/model-queries.md +281 -0
  127. package/template/.agents/skills/data/prisma-client-api/references/query-options.md +276 -0
  128. package/template/.agents/skills/data/prisma-client-api/references/raw-queries.md +194 -0
  129. package/template/.agents/skills/data/prisma-client-api/references/relations.md +308 -0
  130. package/template/.agents/skills/data/prisma-client-api/references/transactions.md +184 -0
  131. package/template/.agents/skills/design/impeccable/SKILL.md +176 -0
  132. package/template/.agents/skills/design/impeccable/reference/adapt.md +311 -0
  133. package/template/.agents/skills/design/impeccable/reference/animate.md +201 -0
  134. package/template/.agents/skills/design/impeccable/reference/audit.md +133 -0
  135. package/template/.agents/skills/design/impeccable/reference/bolder.md +113 -0
  136. package/template/.agents/skills/design/impeccable/reference/brand.md +108 -0
  137. package/template/.agents/skills/design/impeccable/reference/clarify.md +288 -0
  138. package/template/.agents/skills/design/impeccable/reference/codex.md +105 -0
  139. package/template/.agents/skills/design/impeccable/reference/colorize.md +257 -0
  140. package/template/.agents/skills/design/impeccable/reference/craft.md +123 -0
  141. package/template/.agents/skills/design/impeccable/reference/critique.md +767 -0
  142. package/template/.agents/skills/design/impeccable/reference/delight.md +302 -0
  143. package/template/.agents/skills/design/impeccable/reference/distill.md +111 -0
  144. package/template/.agents/skills/design/impeccable/reference/document.md +429 -0
  145. package/template/.agents/skills/design/impeccable/reference/extract.md +69 -0
  146. package/template/.agents/skills/design/impeccable/reference/harden.md +347 -0
  147. package/template/.agents/skills/design/impeccable/reference/init.md +172 -0
  148. package/template/.agents/skills/design/impeccable/reference/interaction-design.md +189 -0
  149. package/template/.agents/skills/design/impeccable/reference/layout.md +161 -0
  150. package/template/.agents/skills/design/impeccable/reference/live.md +718 -0
  151. package/template/.agents/skills/design/impeccable/reference/onboard.md +234 -0
  152. package/template/.agents/skills/design/impeccable/reference/optimize.md +258 -0
  153. package/template/.agents/skills/design/impeccable/reference/overdrive.md +130 -0
  154. package/template/.agents/skills/design/impeccable/reference/polish.md +241 -0
  155. package/template/.agents/skills/design/impeccable/reference/product.md +60 -0
  156. package/template/.agents/skills/design/impeccable/reference/quieter.md +99 -0
  157. package/template/.agents/skills/design/impeccable/reference/shape.md +165 -0
  158. package/template/.agents/skills/design/impeccable/reference/typeset.md +279 -0
  159. package/template/.agents/skills/design/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  160. package/template/.agents/skills/design/impeccable/scripts/command-metadata.json +94 -0
  161. package/template/.agents/skills/design/impeccable/scripts/context-signals.mjs +225 -0
  162. package/template/.agents/skills/design/impeccable/scripts/context.mjs +270 -0
  163. package/template/.agents/skills/design/impeccable/scripts/critique-storage.mjs +242 -0
  164. package/template/.agents/skills/design/impeccable/scripts/design-parser.mjs +835 -0
  165. package/template/.agents/skills/design/impeccable/scripts/detect-csp.mjs +198 -0
  166. package/template/.agents/skills/design/impeccable/scripts/detect.mjs +21 -0
  167. package/template/.agents/skills/design/impeccable/scripts/detector/browser/injected/index.mjs +1733 -0
  168. package/template/.agents/skills/design/impeccable/scripts/detector/cli/main.mjs +244 -0
  169. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns-browser.js +4551 -0
  170. package/template/.agents/skills/design/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
  171. package/template/.agents/skills/design/impeccable/scripts/detector/engines/browser/detect-url.mjs +252 -0
  172. package/template/.agents/skills/design/impeccable/scripts/detector/engines/regex/detect-text.mjs +535 -0
  173. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +986 -0
  174. package/template/.agents/skills/design/impeccable/scripts/detector/engines/static-html/detect-html.mjs +208 -0
  175. package/template/.agents/skills/design/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  176. package/template/.agents/skills/design/impeccable/scripts/detector/findings.mjs +12 -0
  177. package/template/.agents/skills/design/impeccable/scripts/detector/node/file-system.mjs +198 -0
  178. package/template/.agents/skills/design/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  179. package/template/.agents/skills/design/impeccable/scripts/detector/registry/antipatterns.mjs +419 -0
  180. package/template/.agents/skills/design/impeccable/scripts/detector/rules/checks.mjs +2316 -0
  181. package/template/.agents/skills/design/impeccable/scripts/detector/shared/color.mjs +124 -0
  182. package/template/.agents/skills/design/impeccable/scripts/detector/shared/constants.mjs +101 -0
  183. package/template/.agents/skills/design/impeccable/scripts/detector/shared/page.mjs +7 -0
  184. package/template/.agents/skills/design/impeccable/scripts/impeccable-paths.mjs +126 -0
  185. package/template/.agents/skills/design/impeccable/scripts/is-generated.mjs +69 -0
  186. package/template/.agents/skills/design/impeccable/scripts/live-accept.mjs +812 -0
  187. package/template/.agents/skills/design/impeccable/scripts/live-browser-session.js +123 -0
  188. package/template/.agents/skills/design/impeccable/scripts/live-browser.js +10316 -0
  189. package/template/.agents/skills/design/impeccable/scripts/live-commit-manual-edits.mjs +1241 -0
  190. package/template/.agents/skills/design/impeccable/scripts/live-complete.mjs +75 -0
  191. package/template/.agents/skills/design/impeccable/scripts/live-completion.mjs +19 -0
  192. package/template/.agents/skills/design/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
  193. package/template/.agents/skills/design/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
  194. package/template/.agents/skills/design/impeccable/scripts/live-event-validation.mjs +136 -0
  195. package/template/.agents/skills/design/impeccable/scripts/live-inject.mjs +557 -0
  196. package/template/.agents/skills/design/impeccable/scripts/live-insert-ui.mjs +458 -0
  197. package/template/.agents/skills/design/impeccable/scripts/live-insert.mjs +272 -0
  198. package/template/.agents/skills/design/impeccable/scripts/live-manual-edit-evidence.mjs +363 -0
  199. package/template/.agents/skills/design/impeccable/scripts/live-manual-edits-buffer.mjs +152 -0
  200. package/template/.agents/skills/design/impeccable/scripts/live-poll.mjs +379 -0
  201. package/template/.agents/skills/design/impeccable/scripts/live-resume.mjs +94 -0
  202. package/template/.agents/skills/design/impeccable/scripts/live-server.mjs +2322 -0
  203. package/template/.agents/skills/design/impeccable/scripts/live-session-store.mjs +289 -0
  204. package/template/.agents/skills/design/impeccable/scripts/live-status.mjs +61 -0
  205. package/template/.agents/skills/design/impeccable/scripts/live-svelte-component.mjs +826 -0
  206. package/template/.agents/skills/design/impeccable/scripts/live-sveltekit-adapter.mjs +274 -0
  207. package/template/.agents/skills/design/impeccable/scripts/live-ui-core.mjs +179 -0
  208. package/template/.agents/skills/design/impeccable/scripts/live-wrap.mjs +894 -0
  209. package/template/.agents/skills/design/impeccable/scripts/live.mjs +246 -0
  210. package/template/.agents/skills/design/impeccable/scripts/modern-screenshot.umd.js +14 -0
  211. package/template/.agents/skills/design/impeccable/scripts/palette.mjs +633 -0
  212. package/template/.agents/skills/design/impeccable/scripts/pin.mjs +214 -0
  213. package/template/.agents/skills/design/shadcn/SKILL.md +242 -0
  214. package/template/.agents/skills/design/shadcn/agents/openai.yml +5 -0
  215. package/template/.agents/skills/design/shadcn/assets/shadcn-small.png +0 -0
  216. package/template/.agents/skills/design/shadcn/assets/shadcn.png +0 -0
  217. package/template/.agents/skills/design/shadcn/cli.md +257 -0
  218. package/template/.agents/skills/design/shadcn/customization.md +202 -0
  219. package/template/.agents/skills/design/shadcn/evals/evals.json +47 -0
  220. package/template/.agents/skills/design/shadcn/mcp.md +94 -0
  221. package/template/.agents/skills/design/shadcn/rules/base-vs-radix.md +306 -0
  222. package/template/.agents/skills/design/shadcn/rules/composition.md +195 -0
  223. package/template/.agents/skills/design/shadcn/rules/forms.md +192 -0
  224. package/template/.agents/skills/design/shadcn/rules/icons.md +101 -0
  225. package/template/.agents/skills/design/shadcn/rules/styling.md +162 -0
  226. package/template/.agents/skills/find-skills/SKILL.md +142 -0
  227. package/template/.agents/skills/integrations/langfuse/SKILL.md +142 -0
  228. package/template/.agents/skills/integrations/langfuse/references/cli.md +52 -0
  229. package/template/.agents/skills/integrations/langfuse/references/error-analysis.md +100 -0
  230. package/template/.agents/skills/integrations/langfuse/references/instrumentation.md +134 -0
  231. package/template/.agents/skills/integrations/langfuse/references/judge-calibration.md +288 -0
  232. package/template/.agents/skills/integrations/langfuse/references/prompt-migration.md +234 -0
  233. package/template/.agents/skills/integrations/langfuse/references/sdk-upgrade.md +175 -0
  234. package/template/.agents/skills/integrations/langfuse/references/skill-feedback.md +52 -0
  235. package/template/.agents/skills/integrations/langfuse/references/user-feedback.md +88 -0
  236. package/template/.agents/skills/integrations/posthog/SKILL.md +102 -0
  237. package/template/.agents/skills/integrations/posthog/references/error-tracking-alerts.md +63 -0
  238. package/template/.agents/skills/integrations/posthog/references/error-tracking-assigning-issues.md +77 -0
  239. package/template/.agents/skills/integrations/posthog/references/error-tracking-fingerprints.md +57 -0
  240. package/template/.agents/skills/integrations/posthog/references/error-tracking-monitoring.md +140 -0
  241. package/template/.agents/skills/integrations/posthog/references/error-tracking-nextjs.md +490 -0
  242. package/template/.agents/skills/integrations/posthog/references/error-tracking-source-maps.md +45 -0
  243. package/template/.agents/skills/integrations/posthog/references/feature-flags-best-practices.md +139 -0
  244. package/template/.agents/skills/integrations/posthog/references/feature-flags-react.md +302 -0
  245. package/template/.agents/skills/integrations/posthog/references/identify-users.md +202 -0
  246. package/template/.agents/skills/integrations/posthog/references/integration-example.md +706 -0
  247. package/template/.agents/skills/integrations/posthog/references/integration-nextjs.md +385 -0
  248. package/template/.agents/skills/integrations/posthog/references/integration-step-1-begin.md +43 -0
  249. package/template/.agents/skills/integrations/posthog/references/integration-step-2-edit.md +37 -0
  250. package/template/.agents/skills/integrations/posthog/references/integration-step-3-revise.md +22 -0
  251. package/template/.agents/skills/integrations/posthog/references/integration-step-4-conclude.md +38 -0
  252. package/template/.agents/skills/integrations/posthog/references/llm-analytics-anthropic.md +200 -0
  253. package/template/.agents/skills/integrations/posthog/references/llm-analytics-basics.md +62 -0
  254. package/template/.agents/skills/integrations/posthog/references/llm-analytics-costs.md +197 -0
  255. package/template/.agents/skills/integrations/posthog/references/llm-analytics-manual-capture.md +397 -0
  256. package/template/.agents/skills/integrations/posthog/references/llm-analytics-traces.md +98 -0
  257. package/template/.agents/skills/integrations/posthog/references/llm-analytics-vercel-ai.md +120 -0
  258. package/template/.agents/skills/repo/repo-ci/SKILL.md +265 -0
  259. package/template/.agents/skills/repo/repo-init-next-js/SKILL.md +129 -0
  260. package/template/.agents/skills/repo/repo-init-next-js/references/file-contents.md +800 -0
  261. package/template/.agents/skills/repo/repo-init-next-js/scripts/setup.sh +47 -0
  262. package/template/.agents/skills/repo/repo-init-node/SKILL.md +196 -0
  263. package/template/.agents/skills/skill-creator/LICENSE.txt +202 -0
  264. package/template/.agents/skills/skill-creator/SKILL.md +485 -0
  265. package/template/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  266. package/template/.agents/skills/skill-creator/agents/comparator.md +202 -0
  267. package/template/.agents/skills/skill-creator/agents/grader.md +223 -0
  268. package/template/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  269. package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  270. package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  271. package/template/.agents/skills/skill-creator/references/schemas.md +430 -0
  272. package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  273. package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  274. package/template/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  275. package/template/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  276. package/template/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  277. package/template/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  278. package/template/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  279. package/template/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  280. package/template/.agents/skills/skill-creator/scripts/utils.py +47 -0
  281. package/template/.agents/upstreams.json +80 -0
@@ -0,0 +1,347 @@
1
+ Designs that only work with perfect data aren't production-ready. Harden the interface against the inputs, errors, languages, and network conditions that real users will throw at it.
2
+
3
+ ## Assess Hardening Needs
4
+
5
+ Identify weaknesses and edge cases:
6
+
7
+ 1. **Test with extreme inputs**:
8
+ - Very long text (names, descriptions, titles)
9
+ - Very short text (empty, single character)
10
+ - Special characters (emoji, RTL text, accents)
11
+ - Large numbers (millions, billions)
12
+ - Many items (1000+ list items, 50+ options)
13
+ - No data (empty states)
14
+
15
+ 2. **Test error scenarios**:
16
+ - Network failures (offline, slow, timeout)
17
+ - API errors (400, 401, 403, 404, 500)
18
+ - Validation errors
19
+ - Permission errors
20
+ - Rate limiting
21
+ - Concurrent operations
22
+
23
+ 3. **Test internationalization**:
24
+ - Long translations (German is often 30% longer than English)
25
+ - RTL languages (Arabic, Hebrew)
26
+ - Character sets (Chinese, Japanese, Korean, emoji)
27
+ - Date/time formats
28
+ - Number formats (1,000 vs 1.000)
29
+ - Currency symbols
30
+
31
+ **CRITICAL**: Designs that only work with perfect data aren't production-ready. Harden against reality.
32
+
33
+ ## Hardening Dimensions
34
+
35
+ Systematically improve resilience:
36
+
37
+ ### Text Overflow & Wrapping
38
+
39
+ **Long text handling**:
40
+ ```css
41
+ /* Single line with ellipsis */
42
+ .truncate {
43
+ overflow: hidden;
44
+ text-overflow: ellipsis;
45
+ white-space: nowrap;
46
+ }
47
+
48
+ /* Multi-line with clamp */
49
+ .line-clamp {
50
+ display: -webkit-box;
51
+ -webkit-line-clamp: 3;
52
+ -webkit-box-orient: vertical;
53
+ overflow: hidden;
54
+ }
55
+
56
+ /* Allow wrapping */
57
+ .wrap {
58
+ word-wrap: break-word;
59
+ overflow-wrap: break-word;
60
+ hyphens: auto;
61
+ }
62
+ ```
63
+
64
+ **Flex/Grid overflow**:
65
+ ```css
66
+ /* Prevent flex items from overflowing */
67
+ .flex-item {
68
+ min-width: 0; /* Allow shrinking below content size */
69
+ overflow: hidden;
70
+ }
71
+
72
+ /* Prevent grid items from overflowing */
73
+ .grid-item {
74
+ min-width: 0;
75
+ min-height: 0;
76
+ }
77
+ ```
78
+
79
+ **Responsive text sizing**:
80
+ - Use `clamp()` for fluid typography
81
+ - Set minimum readable sizes (14px on mobile)
82
+ - Test text scaling (zoom to 200%)
83
+ - Ensure containers expand with text
84
+
85
+ ### Internationalization (i18n)
86
+
87
+ **Text expansion**:
88
+ - Add 30-40% space budget for translations
89
+ - Use flexbox/grid that adapts to content
90
+ - Test with longest language (usually German)
91
+ - Avoid fixed widths on text containers
92
+
93
+ ```jsx
94
+ // ❌ Bad: Assumes short English text
95
+ <button className="w-24">Submit</button>
96
+
97
+ // ✅ Good: Adapts to content
98
+ <button className="px-4 py-2">Submit</button>
99
+ ```
100
+
101
+ **RTL (Right-to-Left) support**:
102
+ ```css
103
+ /* Use logical properties */
104
+ margin-inline-start: 1rem; /* Not margin-left */
105
+ padding-inline: 1rem; /* Not padding-left/right */
106
+ border-inline-end: 1px solid; /* Not border-right */
107
+
108
+ /* Or use dir attribute */
109
+ [dir="rtl"] .arrow { transform: scaleX(-1); }
110
+ ```
111
+
112
+ **Character set support**:
113
+ - Use UTF-8 encoding everywhere
114
+ - Test with Chinese/Japanese/Korean (CJK) characters
115
+ - Test with emoji (they can be 2-4 bytes)
116
+ - Handle different scripts (Latin, Cyrillic, Arabic, etc.)
117
+
118
+ **Date/Time formatting**:
119
+ ```javascript
120
+ // ✅ Use Intl API for proper formatting
121
+ new Intl.DateTimeFormat('en-US').format(date); // 1/15/2024
122
+ new Intl.DateTimeFormat('de-DE').format(date); // 15.1.2024
123
+
124
+ new Intl.NumberFormat('en-US', {
125
+ style: 'currency',
126
+ currency: 'USD'
127
+ }).format(1234.56); // $1,234.56
128
+ ```
129
+
130
+ **Pluralization**:
131
+ ```javascript
132
+ // ❌ Bad: Assumes English pluralization
133
+ `${count} item${count !== 1 ? 's' : ''}`
134
+
135
+ // ✅ Good: Use proper i18n library
136
+ t('items', { count }) // Handles complex plural rules
137
+ ```
138
+
139
+ ### Error Handling
140
+
141
+ **Network errors**:
142
+ - Show clear error messages
143
+ - Provide retry button
144
+ - Explain what happened
145
+ - Offer offline mode (if applicable)
146
+ - Handle timeout scenarios
147
+
148
+ ```jsx
149
+ // Error states with recovery
150
+ {error && (
151
+ <ErrorMessage>
152
+ <p>Failed to load data. {error.message}</p>
153
+ <button onClick={retry}>Try again</button>
154
+ </ErrorMessage>
155
+ )}
156
+ ```
157
+
158
+ **Form validation errors**:
159
+ - Inline errors near fields
160
+ - Clear, specific messages
161
+ - Suggest corrections
162
+ - Don't block submission unnecessarily
163
+ - Preserve user input on error
164
+
165
+ **API errors**:
166
+ - Handle each status code appropriately
167
+ - 400: Show validation errors
168
+ - 401: Redirect to login
169
+ - 403: Show permission error
170
+ - 404: Show not found state
171
+ - 429: Show rate limit message
172
+ - 500: Show generic error, offer support
173
+
174
+ **Graceful degradation**:
175
+ - Core functionality works without JavaScript
176
+ - Images have alt text
177
+ - Progressive enhancement
178
+ - Fallbacks for unsupported features
179
+
180
+ ### Edge Cases & Boundary Conditions
181
+
182
+ **Empty states**:
183
+ - No items in list
184
+ - No search results
185
+ - No notifications
186
+ - No data to display
187
+ - Provide clear next action
188
+
189
+ **Loading states**:
190
+ - Initial load
191
+ - Pagination load
192
+ - Refresh
193
+ - Show what's loading ("Loading your projects...")
194
+ - Time estimates for long operations
195
+
196
+ **Large datasets**:
197
+ - Pagination or virtual scrolling
198
+ - Search/filter capabilities
199
+ - Performance optimization
200
+ - Don't load all 10,000 items at once
201
+
202
+ **Concurrent operations**:
203
+ - Prevent double-submission (disable button while loading)
204
+ - Handle race conditions
205
+ - Optimistic updates with rollback
206
+ - Conflict resolution
207
+
208
+ **Permission states**:
209
+ - No permission to view
210
+ - No permission to edit
211
+ - Read-only mode
212
+ - Clear explanation of why
213
+
214
+ **Browser compatibility**:
215
+ - Polyfills for modern features
216
+ - Fallbacks for unsupported CSS
217
+ - Feature detection (not browser detection)
218
+ - Test in target browsers
219
+
220
+ ### Input Validation & Sanitization
221
+
222
+ **Client-side validation**:
223
+ - Required fields
224
+ - Format validation (email, phone, URL)
225
+ - Length limits
226
+ - Pattern matching
227
+ - Custom validation rules
228
+
229
+ **Server-side validation** (always):
230
+ - Never trust client-side only
231
+ - Validate and sanitize all inputs
232
+ - Protect against injection attacks
233
+ - Rate limiting
234
+
235
+ **Constraint handling**:
236
+ ```html
237
+ <!-- Set clear constraints -->
238
+ <input
239
+ type="text"
240
+ maxlength="100"
241
+ pattern="[A-Za-z0-9]+"
242
+ required
243
+ aria-describedby="username-hint"
244
+ />
245
+ <small id="username-hint">
246
+ Letters and numbers only, up to 100 characters
247
+ </small>
248
+ ```
249
+
250
+ ### Accessibility Resilience
251
+
252
+ **Keyboard navigation**:
253
+ - All functionality accessible via keyboard
254
+ - Logical tab order
255
+ - Focus management in modals
256
+ - Skip links for long content
257
+
258
+ **Screen reader support**:
259
+ - Proper ARIA labels
260
+ - Announce dynamic changes (live regions)
261
+ - Descriptive alt text
262
+ - Semantic HTML
263
+
264
+ **Motion sensitivity**:
265
+ ```css
266
+ @media (prefers-reduced-motion: reduce) {
267
+ * {
268
+ animation-duration: 0.01ms !important;
269
+ animation-iteration-count: 1 !important;
270
+ transition-duration: 0.01ms !important;
271
+ }
272
+ }
273
+ ```
274
+
275
+ **High contrast mode**:
276
+ - Test in Windows high contrast mode
277
+ - Don't rely only on color
278
+ - Provide alternative visual cues
279
+
280
+ ### Performance Resilience
281
+
282
+ **Slow connections**:
283
+ - Progressive image loading
284
+ - Skeleton screens
285
+ - Optimistic UI updates
286
+ - Offline support (service workers)
287
+
288
+ **Memory leaks**:
289
+ - Clean up event listeners
290
+ - Cancel subscriptions
291
+ - Clear timers/intervals
292
+ - Abort pending requests on unmount
293
+
294
+ **Throttling & Debouncing**:
295
+ ```javascript
296
+ // Debounce search input
297
+ const debouncedSearch = debounce(handleSearch, 300);
298
+
299
+ // Throttle scroll handler
300
+ const throttledScroll = throttle(handleScroll, 100);
301
+ ```
302
+
303
+ ## Testing Strategies
304
+
305
+ **Manual testing**:
306
+ - Test with extreme data (very long, very short, empty)
307
+ - Test in different languages
308
+ - Test offline
309
+ - Test slow connection (throttle to 3G)
310
+ - Test with screen reader
311
+ - Test keyboard-only navigation
312
+ - Test on old browsers
313
+
314
+ **Automated testing**:
315
+ - Unit tests for edge cases
316
+ - Integration tests for error scenarios
317
+ - E2E tests for critical paths
318
+ - Visual regression tests
319
+ - Accessibility tests (axe, WAVE)
320
+
321
+ **IMPORTANT**: Hardening is about expecting the unexpected. Real users will do things you never imagined.
322
+
323
+ **NEVER**:
324
+ - Assume perfect input (validate everything)
325
+ - Ignore internationalization (design for global)
326
+ - Leave error messages generic ("Error occurred")
327
+ - Forget offline scenarios
328
+ - Trust client-side validation alone
329
+ - Use fixed widths for text
330
+ - Assume English-length text
331
+ - Block entire interface when one component errors
332
+
333
+ ## Verify Hardening
334
+
335
+ Test thoroughly with edge cases:
336
+
337
+ - **Long text**: Try names with 100+ characters
338
+ - **Emoji**: Use emoji in all text fields
339
+ - **RTL**: Test with Arabic or Hebrew
340
+ - **CJK**: Test with Chinese/Japanese/Korean
341
+ - **Network issues**: Disable internet, throttle connection
342
+ - **Large datasets**: Test with 1000+ items
343
+ - **Concurrent actions**: Click submit 10 times rapidly
344
+ - **Errors**: Force API errors, test all error states
345
+ - **Empty**: Remove all data, test empty states
346
+
347
+ When edge cases are covered, hand off to `/impeccable polish` for the final pass.
@@ -0,0 +1,172 @@
1
+ # Init Flow
2
+
3
+ The setup command for a project. One codebase crawl feeds everything it writes:
4
+
5
+ - **PRODUCT.md** (strategic): root project file for register, target users, product purpose, brand personality, anti-references, strategic design principles. Answers "who/what/why".
6
+ - **DESIGN.md** (visual): root project file for visual theme, color palette, typography, components, layout. Follows the [Google Stitch DESIGN.md format](https://stitch.withgoogle.com/docs/design-md/format/). Answers "how it looks".
7
+ - **`.impeccable/live/config.json`** (live mode): pre-configured so `/impeccable live` boots straight into variant mode with no first-time detour.
8
+
9
+ It closes by pointing the user at the best command to run next. Every other impeccable command reads PRODUCT.md and DESIGN.md before doing any work.
10
+
11
+ ## Step 1: Load current state
12
+
13
+ Check what already exists. PRODUCT.md and DESIGN.md live at the project root, or under `.agents/context/` or `docs/` (case-insensitive). Read whichever are present with your native file tool. Also note whether `.impeccable/live/config.json` already exists (Step 6 leaves it untouched if so).
14
+
15
+ Decision tree:
16
+ - **Neither file exists (empty project or no context yet)**: do Steps 2-4 (write PRODUCT.md), then decide on DESIGN.md based on whether there's code to analyze.
17
+ - **PRODUCT.md exists, DESIGN.md missing**: skip to Step 5 and offer to run `/impeccable document` for DESIGN.md.
18
+ - **PRODUCT.md exists but has no `## Register` section (legacy)**: add it. Infer a hypothesis from the codebase (see Step 2), confirm with the user, write the field.
19
+ - **Both exist**: STOP and call the `question` tool to clarify. Ask which file to refresh. Skip the one the user doesn't want changed.
20
+ - **Just DESIGN.md exists (unusual)**: do Steps 2-4 to produce PRODUCT.md.
21
+
22
+ Never silently overwrite an existing file. Always confirm first.
23
+
24
+ If init was invoked as a setup blocker by another command, such as `/impeccable craft landing page`, pause that command here. Complete init, then resume the original command. Your own writes are the freshest source; no reload needed. For craft, resume into shape next; init creates project context, but it is not a substitute for the task-specific shape interview and confirmed design brief.
25
+
26
+ ## Step 2: Explore the codebase
27
+
28
+ Before asking questions, thoroughly scan the project to discover what you can. This single crawl feeds PRODUCT.md, DESIGN.md, **and** the live-mode framework detection in Step 6, so be thorough once rather than re-scanning later:
29
+
30
+ - **README and docs**: Project purpose, target audience, any stated goals
31
+ - **Package.json / config files**: Tech stack, dependencies, existing design libraries, **and the framework** (Vite/SPA, Next.js, Nuxt, SvelteKit, Astro, multi-page static) plus the HTML entry the browser actually loads
32
+ - **Existing components**: Current design patterns, spacing, typography in use
33
+ - **Brand assets**: Logos, favicons, color values already defined
34
+ - **Design tokens / CSS variables**: Existing color palettes, font stacks, spacing scales
35
+ - **Any style guides or brand documentation**
36
+
37
+ Also form a **register hypothesis** from what you find:
38
+
39
+ - Brand signals: `/`, `/about`, `/pricing`, `/blog/*`, `/docs/*`, hero sections, big typography, scroll-driven sections, landing-page-shaped content.
40
+ - Product signals: `/app/*`, `/dashboard`, `/settings`, `/(auth)`, forms, data tables, side/top nav, app-shell components.
41
+
42
+ Register is a hypothesis at this point, not a decision; Step 3 confirms it.
43
+
44
+ Note what you've learned and what remains unclear. Also note any rough edges worth a follow-up command (thin hierarchy, flat or gray palette, missing error/empty states, dull copy); Step 7 turns these into concrete recommendations without re-analyzing.
45
+
46
+ ## Step 3: Ask strategic questions (for PRODUCT.md)
47
+
48
+ STOP and call the `question` tool to clarify. Ask only about what you couldn't infer from the codebase.
49
+
50
+ ### Interview mode, not confirmation mode
51
+
52
+ If the repo is empty or the user's brief is sparse, run a short interview before proposing PRODUCT.md. Do **not** turn a one-sentence request into a complete inferred PRODUCT.md and ask for blanket confirmation.
53
+
54
+ - Use the harness's structured question tool when one exists. Otherwise, ask directly in chat and stop.
55
+ - Ask **2-3 questions per round**, then wait for answers.
56
+ - Use inferred answers as hypotheses or options, not as finished facts.
57
+ - Complete at least one real user-answer round before drafting PRODUCT.md, unless every required answer is directly discoverable from repo docs.
58
+ - Round 1 should establish register, users/purpose, and desired outcome.
59
+ - Round 2 should establish brand personality or references, anti-references, and accessibility needs.
60
+
61
+ ### Minimum viable interview
62
+
63
+ Ask enough to complete PRODUCT.md. At minimum, cover register confirmation, users and purpose, brand personality, anti-references, and accessibility needs unless each answer is directly discoverable from repo context. After at least one interview round, you may propose inferred answers, but the user must confirm them before you write PRODUCT.md. Never synthesize PRODUCT.md from the original task prompt alone.
64
+
65
+ ### Register (ask first; it shapes everything below)
66
+
67
+ Every design task is either **brand** (marketing, landing, campaign, long-form content, portfolio: design IS the product) or **product** (app UI, admin, dashboards, tools: design SERVES the product).
68
+
69
+ If Step 2 produced a clear hypothesis, lead with it: *"From the codebase, this looks like a [brand / product] surface. Does that match your intent, or should we treat it differently?"*
70
+
71
+ If the signal is genuinely split (e.g. a product with a big marketing landing), STOP and call the `question` tool to clarify. Ask which register describes the **primary** surface. The register can be overridden per task later, but PRODUCT.md carries one default.
72
+
73
+ ### Users & Purpose
74
+ - Who uses this? What's their context when using it?
75
+ - What job are they trying to get done?
76
+ - For brand: what emotions should the interface evoke? (confidence, delight, calm, urgency)
77
+ - For product: what workflow are they in? What's the primary task on any given screen?
78
+
79
+ ### Brand & Personality
80
+ - How would you describe the brand personality in 3 words?
81
+ - Reference sites or apps that capture the right feel? What specifically about them?
82
+ - Push for specific named references with the *specific* thing about them that fits this brand, not generic "modern" adjectives or category-bucket lanes.
83
+ - What should this explicitly NOT look like? Any anti-references?
84
+
85
+ ### Accessibility & Inclusion
86
+ - Specific accessibility requirements? (WCAG level, known user needs)
87
+ - Considerations for reduced motion, color blindness, or other accommodations?
88
+
89
+ Skip questions where the answer is already clear. **Do NOT ask about colors, fonts, radii, or visual styling here.** Those belong in DESIGN.md, not PRODUCT.md.
90
+
91
+ ## Step 4: Write PRODUCT.md
92
+
93
+ Write PRODUCT.md only after the user has confirmed the strategic answers from Step 3. If an inferred answer is uncertain or unconfirmed, ask before writing.
94
+
95
+ Synthesize into a strategic document:
96
+
97
+ ```markdown
98
+ # Product
99
+
100
+ ## Register
101
+
102
+ product
103
+
104
+ ## Users
105
+ [Who they are, their context, the job to be done]
106
+
107
+ ## Product Purpose
108
+ [What this product does, why it exists, what success looks like]
109
+
110
+ ## Brand Personality
111
+ [Voice, tone, 3-word personality, emotional goals]
112
+
113
+ ## Anti-references
114
+ [What this should NOT look like. Specific bad-example sites or patterns to avoid.]
115
+
116
+ ## Design Principles
117
+ [3-5 strategic principles derived from the conversation. Principles like "practice what you preach", "show, don't tell", "expert confidence". NOT visual rules like "use OKLCH" or "magenta accent".]
118
+
119
+ ## Accessibility & Inclusion
120
+ [WCAG level, known user needs, considerations]
121
+ ```
122
+
123
+ Register is either `brand` or `product` as a bare value. No prose, no commentary.
124
+
125
+ Write to `PROJECT_ROOT/PRODUCT.md`. If `.impeccable.md` existed, the loader already renamed it; merge into that content rather than starting from scratch.
126
+
127
+ ## Step 5: Decide on DESIGN.md
128
+
129
+ Offer `/impeccable document` either way. Two paths:
130
+
131
+ - **Code exists** (CSS tokens, components, a running site): "I can generate a DESIGN.md that captures your visual system (colors, typography, components) so variants stay on-brand. Want to do that now?"
132
+ - **Pre-implementation** (empty project): "I can seed a starter DESIGN.md from five quick questions about color strategy, type direction, motion energy, and references. You can re-run once there's code, to capture the real tokens. Want to do that now?"
133
+
134
+ If the user agrees, delegate to `/impeccable document` (it auto-detects scan vs seed). Load its reference and follow that flow.
135
+
136
+ If the user prefers to skip, mention they can run `/impeccable document` any time later.
137
+
138
+ ## Step 6: Configure live mode (when code exists)
139
+
140
+ If the project has code with HTML entries and a dev server (the same "code exists" condition that puts `/impeccable document` in scan mode), pre-configure live mode now. You already identified the framework and the served HTML entry in Step 2, so this is nearly free, and it spares the user the first-time setup detour when they later run `/impeccable live`.
141
+
142
+ **Skip this step for empty / pre-implementation projects** (nothing to inject into yet). Tell the user live mode will configure itself the first time they run it once there's code.
143
+
144
+ **If `.impeccable/live/config.json` already exists, leave it untouched** and note that live mode is already configured.
145
+
146
+ Otherwise:
147
+
148
+ 1. Write `.impeccable/live/config.json`. Choose `files` (the HTML entries the browser actually loads), `insertBefore`, and `commentSyntax` from the framework table in [live.md](live.md)'s **First-time setup** section, using the framework you found in Step 2. That table is canonical; do not restate it here. For multi-page static sites, prefer a glob (`["public/**/*.html"]`) over a literal list.
149
+ 2. Run `node .agents/skills/design/impeccable/scripts/detect-csp.mjs`. If it reports a patchable shape (`append-arrays` / `append-string`), use the **consent prompt template** from live.md before editing any source file. On decline, skip the patch. For `middleware` / `meta-tag` shapes, surface the detected files and ask the user to add `http://localhost:8400` to `script-src` and `connect-src` manually. For `null`, there's nothing to do.
150
+ 3. Set `cspChecked: true` in the config once CSP is handled (patched, declined, manual, or not needed). The schema and per-shape patch details live in live.md's First-time setup; follow it rather than duplicating.
151
+
152
+ Writing the config file is harmless and needs no consent; only the CSP **source-file patch** requires a yes.
153
+
154
+ ## Step 7: Recommend starting points, then wrap up
155
+
156
+ Summarize tersely:
157
+ - Register captured (brand / product)
158
+ - What was written (PRODUCT.md, DESIGN.md, live config, or a subset)
159
+ - The 3-5 strategic principles from PRODUCT.md that will guide future work
160
+ - If DESIGN.md or live config is pending, one line on how to set it up later
161
+
162
+ Then recommend the **best commands to run next**, drawn from what your Step 2 crawl already surfaced. Do not run a fresh analysis here; surface observations you already have. Tailor to register and to what you saw, offer the 2-4 most relevant (not a menu dump), and give the exact command to type. Group by intent:
163
+
164
+ - **Build something new**: `/impeccable craft <feature>` (shape, then build end-to-end) or `/impeccable shape <feature>` (plan first). Lead with this for empty or early-stage projects.
165
+ - **Improve what's there**: name the specific surface. `/impeccable critique <page>` for a scored UX review; `/impeccable audit <area>` for a11y / perf / responsive checks; `/impeccable polish <component>` for a pre-ship pass. When the crawl flagged a specific weakness, point the matching command at it: thin hierarchy or spacing → `layout`, flat or gray palette → `colorize`, missing error / empty states → `harden` or `onboard`, dull or unclear copy → `clarify`.
166
+ - **Iterate visually**: `/impeccable live` (configured in Step 6) to pick elements in the browser and generate variants in place.
167
+
168
+ The full command menu is one bare `/impeccable` away; keep this list short and pointed.
169
+
170
+ If init was invoked as a blocker by another impeccable command (e.g. the user ran `/impeccable polish` with no PRODUCT.md), resume that original task now. Your own writes are the freshest source; no reload needed.
171
+
172
+ Optionally STOP and call the `question` tool to clarify. Ask whether they'd like a brief summary of PRODUCT.md appended to AGENTS.md for easier agent reference. If yes, append a short **Design Context** pointer section there.