shmakk 1.1.0 → 1.2.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 (450) hide show
  1. package/README.md +16 -1
  2. package/package.json +6 -3
  3. package/scripts/import-skills.js +536 -0
  4. package/scripts/install-skills.js +64 -0
  5. package/skills/ai-elements.md +482 -0
  6. package/skills/architecture.md +151 -0
  7. package/skills/backend-adapter-aws-lambda.md +204 -0
  8. package/skills/backend-adapter-express.md +177 -0
  9. package/skills/backend-adapter-fastify.md +222 -0
  10. package/skills/backend-adapter-fetch.md +200 -0
  11. package/skills/backend-api-docs.md +22 -0
  12. package/skills/backend-aspire.md +232 -0
  13. package/skills/backend-aspnet-core.md +62 -0
  14. package/skills/backend-build-chatgpt-app.md +321 -0
  15. package/skills/backend-build-mcp-app.md +393 -0
  16. package/skills/backend-build-mcp-server.md +222 -0
  17. package/skills/backend-build-mcpb.md +200 -0
  18. package/skills/backend-building-ai-agent-on-cloudflare.md +401 -0
  19. package/skills/backend-caching.md +206 -0
  20. package/skills/backend-chatgpt-app-submission.md +157 -0
  21. package/skills/backend-chatgpt-apps.md +321 -0
  22. package/skills/backend-client-setup.md +318 -0
  23. package/skills/backend-containerize-aspnet-framework.md +455 -0
  24. package/skills/backend-create-spring-boot-java-project.md +164 -0
  25. package/skills/backend-create-spring-boot-kotlin-project.md +148 -0
  26. package/skills/backend-csharp-async.md +50 -0
  27. package/skills/backend-csharp-docs.md +63 -0
  28. package/skills/backend-csharp-mcp-server-generator.md +60 -0
  29. package/skills/backend-dotenv.md +201 -0
  30. package/skills/backend-dotenvx.md +119 -0
  31. package/skills/backend-env-vars.md +259 -0
  32. package/skills/backend-error-handling.md +254 -0
  33. package/skills/backend-fastapi.md +437 -0
  34. package/skills/backend-go-mcp-server-generator.md +335 -0
  35. package/skills/backend-java-mcp-server-generator.md +757 -0
  36. package/skills/backend-kotlin-mcp-server-generator.md +450 -0
  37. package/skills/backend-middlewares.md +243 -0
  38. package/skills/backend-multi-stage-dockerfile.md +47 -0
  39. package/skills/backend-nestjs.md +192 -0
  40. package/skills/backend-next-forge.md +375 -0
  41. package/skills/backend-nextjs.md +746 -0
  42. package/skills/backend-openapi-to-application-code.md +113 -0
  43. package/skills/backend-php-mcp-server-generator.md +523 -0
  44. package/skills/backend-python-mcp-server-generator.md +106 -0
  45. package/skills/backend-routing-middleware.md +251 -0
  46. package/skills/backend-ruby-mcp-server-generator.md +661 -0
  47. package/skills/backend-rust-mcp-server-generator.md +578 -0
  48. package/skills/backend-semantic-kernel.md +57 -0
  49. package/skills/backend-server-setup.md +379 -0
  50. package/skills/backend-server-side-calls.md +250 -0
  51. package/skills/backend-subscriptions.md +407 -0
  52. package/skills/backend-swift-mcp-server-generator.md +670 -0
  53. package/skills/backend-trpc-router.md +152 -0
  54. package/skills/backend-typescript-mcp-server-generator.md +91 -0
  55. package/skills/backend-validators.md +229 -0
  56. package/skills/backend.md +76 -0
  57. package/skills/backup.md +165 -0
  58. package/skills/budget.md +140 -0
  59. package/skills/business-gtm-0-to-1-launch.md +322 -0
  60. package/skills/business-gtm-operating-cadence.md +421 -0
  61. package/skills/business-gtm-positioning-strategy.md +439 -0
  62. package/skills/business-gtm-product-led-growth.md +340 -0
  63. package/skills/calendar.md +95 -0
  64. package/skills/code-review.md +130 -0
  65. package/skills/compliance.md +168 -0
  66. package/skills/contracts.md +130 -0
  67. package/skills/daily-job-run.md +46 -0
  68. package/skills/daily-webdesign.md +187 -0
  69. package/skills/database-bigquery-pipeline-audit.md +130 -0
  70. package/skills/database-cosmosdb-datamodeling.md +1046 -0
  71. package/skills/database-durable-objects.md +187 -0
  72. package/skills/database-ef-core.md +76 -0
  73. package/skills/database-fabric-lakehouse.md +107 -0
  74. package/skills/database-neon-postgres-egress-optimizer.md +213 -0
  75. package/skills/database-neon-postgres.md +218 -0
  76. package/skills/database-postgresql-code-review.md +213 -0
  77. package/skills/database-postgresql-optimization.md +405 -0
  78. package/skills/database-sql-code-review.md +302 -0
  79. package/skills/database-sql-optimization.md +297 -0
  80. package/skills/dependency-audit.md +165 -0
  81. package/skills/design-kami-landing.md +234 -0
  82. package/skills/design.md +221 -0
  83. package/skills/dev-acquire-codebase-knowledge.md +175 -0
  84. package/skills/dev-add-educational-comments.md +129 -0
  85. package/skills/dev-add-model-descriptions.md +74 -0
  86. package/skills/dev-adr-review.md +56 -0
  87. package/skills/dev-boost-prompt.md +26 -0
  88. package/skills/dev-build-run-debug.md +130 -0
  89. package/skills/dev-chunk.md +49 -0
  90. package/skills/dev-claude-md-improver.md +180 -0
  91. package/skills/dev-code-exemplars-blueprint-generator.md +127 -0
  92. package/skills/dev-code-tour.md +434 -0
  93. package/skills/dev-comment-code-generate-a-tutorial.md +27 -0
  94. package/skills/dev-commit.md +81 -0
  95. package/skills/dev-context-map.md +53 -0
  96. package/skills/dev-conventional-commit.md +73 -0
  97. package/skills/dev-create-architectural-decision-record.md +98 -0
  98. package/skills/dev-create-draft-pr.md +17 -0
  99. package/skills/dev-create-pr.md +17 -0
  100. package/skills/dev-create-readme.md +22 -0
  101. package/skills/dev-csharp-mstest.md +479 -0
  102. package/skills/dev-csharp-nunit.md +72 -0
  103. package/skills/dev-csharp-tunit.md +101 -0
  104. package/skills/dev-csharp-xunit.md +69 -0
  105. package/skills/dev-debug-failing-test.md +90 -0
  106. package/skills/dev-diff-analyze.md +32 -0
  107. package/skills/dev-diffs.md +24 -0
  108. package/skills/dev-dotnet-best-practices.md +86 -0
  109. package/skills/dev-dotnet-design-pattern-review.md +43 -0
  110. package/skills/dev-dotnet-timezone.md +110 -0
  111. package/skills/dev-dotnet-upgrade.md +117 -0
  112. package/skills/dev-doublecheck.md +278 -0
  113. package/skills/dev-explain-error.md +15 -0
  114. package/skills/dev-finding-discovery.md +164 -0
  115. package/skills/dev-fix-finding.md +111 -0
  116. package/skills/dev-full-file-edit.md +25 -0
  117. package/skills/dev-git-commit.md +125 -0
  118. package/skills/dev-git-flow-branch-creator.md +293 -0
  119. package/skills/dev-git-workflow.md +46 -0
  120. package/skills/dev-github-automation.md +64 -0
  121. package/skills/dev-github-code-review.md +1140 -0
  122. package/skills/dev-github-issues.md +202 -0
  123. package/skills/dev-gpt-5-4-prompting.md +55 -0
  124. package/skills/dev-investigation-mode.md +277 -0
  125. package/skills/dev-java-add-graalvm-native-image-support.md +450 -0
  126. package/skills/dev-java-docs.md +24 -0
  127. package/skills/dev-java-refactoring-extract-method.md +105 -0
  128. package/skills/dev-java-refactoring-remove-parameter.md +85 -0
  129. package/skills/dev-merge.md +73 -0
  130. package/skills/dev-migrate-create.md +36 -0
  131. package/skills/dev-migrate-validate.md +36 -0
  132. package/skills/dev-my-issues.md +9 -0
  133. package/skills/dev-my-pull-requests.md +15 -0
  134. package/skills/dev-planning-oracle-to-postgres-migration-integration-testing.md +45 -0
  135. package/skills/dev-playwright-generate-test.md +18 -0
  136. package/skills/dev-playwright.md +148 -0
  137. package/skills/dev-prompt-builder.md +142 -0
  138. package/skills/dev-pytest-coverage.md +29 -0
  139. package/skills/dev-python-manager-discovery.md +330 -0
  140. package/skills/dev-python-pypi-package-builder.md +445 -0
  141. package/skills/dev-readme-blueprint-generator.md +79 -0
  142. package/skills/dev-refactor-method-complexity-reduce.md +99 -0
  143. package/skills/dev-refactor-plan.md +66 -0
  144. package/skills/dev-refactor.md +646 -0
  145. package/skills/dev-review-and-refactor.md +16 -0
  146. package/skills/dev-reviewing-oracle-to-postgres-migration.md +68 -0
  147. package/skills/dev-ruff-recursive-fix.md +201 -0
  148. package/skills/dev-run-e2e-tests.md +126 -0
  149. package/skills/dev-run-pre-commit-checks.md +133 -0
  150. package/skills/dev-run-smoke-tests.md +127 -0
  151. package/skills/dev-scaffolding-oracle-to-postgres-migration-test-project.md +55 -0
  152. package/skills/dev-spring-boot-testing.md +190 -0
  153. package/skills/dev-sync-upstream.md +32 -0
  154. package/skills/dev-sync.md +74 -0
  155. package/skills/dev-tdd-workflow.md +23 -0
  156. package/skills/dev-terraform-azurerm-set-diff-analyzer.md +49 -0
  157. package/skills/dev-test-driven-development.md +372 -0
  158. package/skills/dev-test-gaps.md +18 -0
  159. package/skills/dev-test-triage.md +55 -0
  160. package/skills/dev-typer.md +267 -0
  161. package/skills/dev-typescript-setup.md +25 -0
  162. package/skills/dev-unified-diff-edit.md +16 -0
  163. package/skills/dev-unit-test-vue-pinia.md +198 -0
  164. package/skills/dev-using-git-worktrees.md +216 -0
  165. package/skills/dev-validation.md +99 -0
  166. package/skills/dev-verification.md +168 -0
  167. package/skills/dev-webapp-testing.md +134 -0
  168. package/skills/dev-write-coding-standards-from-file.md +317 -0
  169. package/skills/dev-write-tests.md +16 -0
  170. package/skills/devops-appinsights-instrumentation.md +49 -0
  171. package/skills/devops-az-cost-optimize.md +306 -0
  172. package/skills/devops-chronicle.md +154 -0
  173. package/skills/devops-deployments-cicd.md +331 -0
  174. package/skills/devops-devops-rollout-plan.md +118 -0
  175. package/skills/devops-geistdocs.md +276 -0
  176. package/skills/devops-observability.md +774 -0
  177. package/skills/devops-observe-metrics.md +35 -0
  178. package/skills/devops-observe-trace.md +30 -0
  179. package/skills/devops-phoenix-cli.md +163 -0
  180. package/skills/devops-phoenix-tracing.md +140 -0
  181. package/skills/devops-publish-to-pages.md +108 -0
  182. package/skills/devops-telemetry.md +87 -0
  183. package/skills/devops-update-avm-modules-in-bicep.md +61 -0
  184. package/skills/devops.md +81 -0
  185. package/skills/diagrams-canvas.md +204 -0
  186. package/skills/diagrams-draw-io-diagram-generator.md +463 -0
  187. package/skills/diagrams-excalidraw-diagram-generator.md +614 -0
  188. package/skills/diagrams-graphify.md +1277 -0
  189. package/skills/docs-bear-notes.md +108 -0
  190. package/skills/docs-create-llms.md +211 -0
  191. package/skills/docs-doc-gen.md +20 -0
  192. package/skills/docs-documentation-writer.md +46 -0
  193. package/skills/docs-llm-config.md +33 -0
  194. package/skills/docs-mkdocs-translations.md +109 -0
  195. package/skills/docs-obsidian-vault-maintainer.md +14 -0
  196. package/skills/docs-obsidian.md +82 -0
  197. package/skills/docs-prose.md +324 -0
  198. package/skills/docs-update-llms.md +217 -0
  199. package/skills/docs-update-markdown-file-index.md +77 -0
  200. package/skills/docs-wiki-maintainer.md +20 -0
  201. package/skills/documents.md +120 -0
  202. package/skills/email.md +113 -0
  203. package/skills/expenses.md +140 -0
  204. package/skills/file-ops.md +149 -0
  205. package/skills/files-convert-plaintext-to-md.md +363 -0
  206. package/skills/files-doc.md +81 -0
  207. package/skills/files-docx.md +594 -0
  208. package/skills/files-markdown-to-html.md +917 -0
  209. package/skills/files-nano-pdf.md +39 -0
  210. package/skills/files-pdf.md +315 -0
  211. package/skills/files-pdftk-server.md +163 -0
  212. package/skills/files-pptx-html-fidelity-audit.md +255 -0
  213. package/skills/files-pptx.md +231 -0
  214. package/skills/files-xlsx.md +301 -0
  215. package/skills/find-jobs.md +78 -0
  216. package/skills/format-conversion.md +157 -0
  217. package/skills/frontend-ai-elements.md +483 -0
  218. package/skills/frontend-ai-gateway.md +563 -0
  219. package/skills/frontend-ai-generation-persistence.md +242 -0
  220. package/skills/frontend-ai-sdk.md +799 -0
  221. package/skills/frontend-ai-visibility.md +127 -0
  222. package/skills/frontend-angular-developer.md +130 -0
  223. package/skills/frontend-aspnet-minimal-api-openapi.md +42 -0
  224. package/skills/frontend-bencium-innovative-ux-designer.md +719 -0
  225. package/skills/frontend-chat-sdk.md +666 -0
  226. package/skills/frontend-chrome-devtools.md +98 -0
  227. package/skills/frontend-frontend-app-builder.md +186 -0
  228. package/skills/frontend-frontend-design.md +43 -0
  229. package/skills/frontend-frontend-testing-debugging.md +143 -0
  230. package/skills/frontend-gsap-framer-scroll-animation.md +152 -0
  231. package/skills/frontend-internal-linking.md +109 -0
  232. package/skills/frontend-json-render.md +335 -0
  233. package/skills/frontend-keyword-clustering.md +118 -0
  234. package/skills/frontend-next-intl-add-language.md +20 -0
  235. package/skills/frontend-on-page-seo.md +112 -0
  236. package/skills/frontend-premium-frontend-ui.md +114 -0
  237. package/skills/frontend-react-best-practices.md +143 -0
  238. package/skills/frontend-schema-markup.md +160 -0
  239. package/skills/frontend-seo-audit.md +110 -0
  240. package/skills/frontend-swr.md +215 -0
  241. package/skills/frontend-technical-seo.md +162 -0
  242. package/skills/frontend-use-dom.md +418 -0
  243. package/skills/frontend-web-coder.md +564 -0
  244. package/skills/frontend-web-design-reviewer.md +369 -0
  245. package/skills/frontend-web-perf.md +202 -0
  246. package/skills/frontend.md +125 -0
  247. package/skills/general-adapter-standalone.md +199 -0
  248. package/skills/general-auth.md +356 -0
  249. package/skills/general-containerize-aspnetcore.md +393 -0
  250. package/skills/general-create-technical-spike.md +231 -0
  251. package/skills/general-cron-jobs.md +72 -0
  252. package/skills/general-ddd-aggregate.md +52 -0
  253. package/skills/general-ddd-context.md +46 -0
  254. package/skills/general-ddd-validate.md +51 -0
  255. package/skills/general-dependency-check.md +26 -0
  256. package/skills/general-email-marketing.md +86 -0
  257. package/skills/general-healthcheck.md +246 -0
  258. package/skills/general-import-infrastructure-as-code.md +368 -0
  259. package/skills/general-init.md +49 -0
  260. package/skills/general-java-junit.md +64 -0
  261. package/skills/general-java-springboot.md +66 -0
  262. package/skills/general-javascript-typescript-jest.md +45 -0
  263. package/skills/general-kotlin-springboot.md +71 -0
  264. package/skills/general-make-repo-contribution.md +91 -0
  265. package/skills/general-market-research.md +78 -0
  266. package/skills/general-marketplace.md +468 -0
  267. package/skills/general-model-recommendation.md +673 -0
  268. package/skills/general-payments.md +352 -0
  269. package/skills/general-quality-playbook.md +480 -0
  270. package/skills/general-run-integration-tests.md +113 -0
  271. package/skills/general-superjson.md +274 -0
  272. package/skills/general-swiftpm-macos.md +51 -0
  273. package/skills/general-threat-model.md +61 -0
  274. package/skills/invoices.md +167 -0
  275. package/skills/licenses.md +159 -0
  276. package/skills/logs.md +156 -0
  277. package/skills/marketing.md +139 -0
  278. package/skills/media-image-manipulation-image-magick.md +253 -0
  279. package/skills/media-imagegen.md +357 -0
  280. package/skills/media-openai-whisper-api.md +63 -0
  281. package/skills/media-openai-whisper.md +39 -0
  282. package/skills/media-peekaboo.md +191 -0
  283. package/skills/media-screenshot.md +268 -0
  284. package/skills/media-speech.md +145 -0
  285. package/skills/media-transcribe.md +82 -0
  286. package/skills/media-video-frames.md +47 -0
  287. package/skills/mobile-android-emulator-qa.md +81 -0
  288. package/skills/mobile-android-performance.md +280 -0
  289. package/skills/mobile-building-mcp-server-on-cloudflare.md +267 -0
  290. package/skills/mobile-building-native-ui.md +322 -0
  291. package/skills/mobile-expo-api-routes.md +369 -0
  292. package/skills/mobile-expo-cicd-workflows.md +92 -0
  293. package/skills/mobile-expo-deployment.md +191 -0
  294. package/skills/mobile-expo-dev-client.md +165 -0
  295. package/skills/mobile-expo-module.md +177 -0
  296. package/skills/mobile-expo-tailwind-setup.md +481 -0
  297. package/skills/mobile-expo-ui-jetpack-compose.md +41 -0
  298. package/skills/mobile-expo-ui-swift-ui.md +40 -0
  299. package/skills/mobile-ios-app-intents.md +78 -0
  300. package/skills/mobile-ios-debugger-agent.md +52 -0
  301. package/skills/mobile-ios-ettrace-performance.md +198 -0
  302. package/skills/mobile-ios-memgraph-leaks.md +77 -0
  303. package/skills/mobile-native-data-fetching.md +508 -0
  304. package/skills/mobile-packaging-notarization.md +48 -0
  305. package/skills/mobile-react-native-architecture.md +672 -0
  306. package/skills/mobile-react-native-mobile-design.md +438 -0
  307. package/skills/mobile-signing-entitlements.md +59 -0
  308. package/skills/mobile-swiftui-liquid-glass.md +91 -0
  309. package/skills/mobile-swiftui-patterns.md +210 -0
  310. package/skills/mobile-swiftui-performance-audit.md +108 -0
  311. package/skills/mobile-swiftui-ui-patterns.md +97 -0
  312. package/skills/mobile-swiftui-view-refactor.md +204 -0
  313. package/skills/mobile-upgrading-expo.md +134 -0
  314. package/skills/mobile.md +183 -0
  315. package/skills/notes.md +106 -0
  316. package/skills/planning-adr-create.md +62 -0
  317. package/skills/planning-adr-index.md +67 -0
  318. package/skills/planning-architecture-blueprint-generator.md +323 -0
  319. package/skills/planning-brainstorming.md +165 -0
  320. package/skills/planning-breakdown-epic-arch.md +67 -0
  321. package/skills/planning-breakdown-epic-pm.md +59 -0
  322. package/skills/planning-breakdown-feature-implementation.md +129 -0
  323. package/skills/planning-breakdown-feature-prd.md +62 -0
  324. package/skills/planning-breakdown-plan.md +510 -0
  325. package/skills/planning-breakdown-test.md +366 -0
  326. package/skills/planning-cloud-design-patterns.md +63 -0
  327. package/skills/planning-content-brief.md +128 -0
  328. package/skills/planning-content-strategy.md +138 -0
  329. package/skills/planning-content-translation.md +143 -0
  330. package/skills/planning-create-github-action-workflow-specification.md +277 -0
  331. package/skills/planning-create-github-issues-feature-from-implementation-plan.md +29 -0
  332. package/skills/planning-create-github-issues-for-unmet-specification-requirements.md +36 -0
  333. package/skills/planning-create-github-pull-request-from-specification.md +25 -0
  334. package/skills/planning-create-implementation-plan.md +158 -0
  335. package/skills/planning-create-specification.md +128 -0
  336. package/skills/planning-first-ask.md +31 -0
  337. package/skills/planning-folder-structure-blueprint-generator.md +406 -0
  338. package/skills/planning-gen-specs-as-issues.md +166 -0
  339. package/skills/planning-generate-snapshot.md +144 -0
  340. package/skills/planning-generate-status-report.md +336 -0
  341. package/skills/planning-metric-pack-designer.md +27 -0
  342. package/skills/planning-pm-spec.md +53 -0
  343. package/skills/planning-prd.md +144 -0
  344. package/skills/planning-project-assessment.md +182 -0
  345. package/skills/planning-project-setup-info-local.md +128 -0
  346. package/skills/planning-project-workflow-analysis-blueprint-generator.md +294 -0
  347. package/skills/planning-service-oriented-architecture.md +248 -0
  348. package/skills/planning-spec-to-backlog.md +544 -0
  349. package/skills/planning-technology-stack-blueprint-generator.md +243 -0
  350. package/skills/planning-update-implementation-plan.md +158 -0
  351. package/skills/planning-update-specification.md +128 -0
  352. package/skills/planning-what-context-needed.md +40 -0
  353. package/skills/planning-writing-plans.md +153 -0
  354. package/skills/prepare-application.md +81 -0
  355. package/skills/productivity-apple-notes.md +78 -0
  356. package/skills/productivity-apple-reminders.md +119 -0
  357. package/skills/productivity-capture-tasks-from-meeting-notes.md +680 -0
  358. package/skills/productivity-daily-prep.md +156 -0
  359. package/skills/productivity-email-drafter.md +101 -0
  360. package/skills/productivity-hr-onboarding.md +53 -0
  361. package/skills/productivity-things-mac.md +87 -0
  362. package/skills/productivity-update.md +169 -0
  363. package/skills/reminders.md +109 -0
  364. package/skills/research-dossier-collect.md +71 -0
  365. package/skills/research-kg-extract.md +37 -0
  366. package/skills/research-openai-docs.md +89 -0
  367. package/skills/research-research-add-items.md +31 -0
  368. package/skills/research-research-report.md +94 -0
  369. package/skills/research-research-synthesize.md +63 -0
  370. package/skills/research-summarize.md +88 -0
  371. package/skills/research-transformers-js.md +635 -0
  372. package/skills/research.md +119 -0
  373. package/skills/security-ai-prompt-engineering-safety-review.md +231 -0
  374. package/skills/security-attack-path-analysis.md +182 -0
  375. package/skills/security-gdpr-compliant.md +284 -0
  376. package/skills/security-mcp-security-audit.md +279 -0
  377. package/skills/security-pii-detect.md +31 -0
  378. package/skills/security-secret-scanning.md +243 -0
  379. package/skills/security-security-best-practices.md +87 -0
  380. package/skills/security-security-ownership-map.md +207 -0
  381. package/skills/security-security-review.md +169 -0
  382. package/skills/security-security-scan.md +138 -0
  383. package/skills/security-security-threat-model.md +82 -0
  384. package/skills/security-threat-model-analyst.md +76 -0
  385. package/skills/sysmon.md +181 -0
  386. package/skills/system-arch-linux-triage.md +32 -0
  387. package/skills/system-centos-linux-triage.md +32 -0
  388. package/skills/system-debian-linux-triage.md +32 -0
  389. package/skills/system-fedora-linux-triage.md +32 -0
  390. package/skills/system-geofeed-tuner.md +865 -0
  391. package/skills/system-iot-anomalies.md +15 -0
  392. package/skills/system-iot-firmware.md +16 -0
  393. package/skills/system-iot-fleet.md +14 -0
  394. package/skills/system-iot-register.md +19 -0
  395. package/skills/system-iot-witness-verify.md +15 -0
  396. package/skills/system-tmux.md +171 -0
  397. package/skills/system-window-management.md +228 -0
  398. package/skills/task-management.md +90 -0
  399. package/skills/tasks.md +102 -0
  400. package/skills/test-coverage.md +188 -0
  401. package/skills/ux-ui.md +128 -0
  402. package/skills/web.md +186 -0
  403. package/skills/workflow-act-on-feedback.md +15 -0
  404. package/skills/workflow-automate-this.md +245 -0
  405. package/skills/workflow-autoresearch.md +276 -0
  406. package/skills/workflow-coding-agent.md +317 -0
  407. package/skills/workflow-deep-research.md +44 -0
  408. package/skills/workflow-dispatching-parallel-agents.md +183 -0
  409. package/skills/workflow-eval-driven-dev.md +148 -0
  410. package/skills/workflow-executing-plans.md +71 -0
  411. package/skills/workflow-mentoring-juniors.md +311 -0
  412. package/skills/workflow-receiving-code-review.md +214 -0
  413. package/skills/workflow-repo-story-time.md +155 -0
  414. package/skills/workflow-requesting-code-review.md +104 -0
  415. package/skills/workflow-session-report.md +43 -0
  416. package/skills/workflow-structured-autonomy-generate.md +126 -0
  417. package/skills/workflow-subagent-driven-development.md +280 -0
  418. package/skills/writing.md +106 -0
  419. package/src/agent.js +0 -0
  420. package/src/browser.js +297 -0
  421. package/src/cli.js +25 -4
  422. package/src/code-reviewer.js +119 -0
  423. package/src/completions.js +1 -1
  424. package/src/control.js +222 -30
  425. package/src/coordinator.js +303 -0
  426. package/src/correction.js +29 -8
  427. package/src/edit-tracker.js +21 -0
  428. package/src/edit-viewer.js +414 -0
  429. package/src/endpoints.js +64 -15
  430. package/src/index.js +45 -11
  431. package/src/llm.js +86 -2
  432. package/src/mcp-client.js +416 -0
  433. package/src/memory.js +182 -0
  434. package/src/planner.js +216 -0
  435. package/src/rules.js +90 -0
  436. package/src/self-commands.js +757 -0
  437. package/src/services/voice.js +10 -7
  438. package/src/session-search.js +427 -0
  439. package/src/session.js +487 -99
  440. package/src/shmakk-server.js +91 -0
  441. package/src/skills.js +410 -3
  442. package/src/subagent.js +4 -1
  443. package/src/system-prompt.js +13 -5
  444. package/src/task-file.js +114 -0
  445. package/src/taskClassifier.js +246 -0
  446. package/src/team.js +752 -0
  447. package/src/tools.js +142 -21
  448. package/src/web.js +35 -5
  449. package/src/workflows.js +261 -0
  450. package/src/workspace-index.js +25 -6
@@ -0,0 +1,64 @@
1
+ // Postinstall script: copies bundled skill markdown files to
2
+ // ~/.config/shmakk/skills/ so they're available globally after npm install.
3
+ // Existing user-modified skills are preserved (only overwrites if the
4
+ // bundled version has a different checksum).
5
+
6
+ const fs = require('fs');
7
+ const path = require('path');
8
+ const crypto = require('crypto');
9
+
10
+ const SKILLS_SRC = path.join(__dirname, '..', 'skills');
11
+ const DEST_DIR = path.join(require('os').homedir(), '.config', 'shmakk', 'skills');
12
+
13
+ function sha256(buf) {
14
+ return crypto.createHash('sha256').update(buf).digest('hex');
15
+ }
16
+
17
+ function main() {
18
+ // Bundled skills directory might not exist in dev (e.g. clean clone
19
+ // before skills are written). Silently skip.
20
+ if (!fs.existsSync(SKILLS_SRC)) return;
21
+
22
+ const files = fs.readdirSync(SKILLS_SRC).filter((f) => f.endsWith('.md'));
23
+ if (!files.length) return;
24
+
25
+ fs.mkdirSync(DEST_DIR, { recursive: true });
26
+
27
+ let installed = 0;
28
+ let skipped = 0;
29
+
30
+ for (const file of files) {
31
+ const src = path.join(SKILLS_SRC, file);
32
+ const dest = path.join(DEST_DIR, file);
33
+
34
+ const srcBuf = fs.readFileSync(src);
35
+ const srcHash = sha256(srcBuf);
36
+
37
+ // If destination exists with identical content, skip.
38
+ if (fs.existsSync(dest)) {
39
+ const destHash = sha256(fs.readFileSync(dest));
40
+ if (srcHash === destHash) {
41
+ skipped++;
42
+ continue;
43
+ }
44
+ }
45
+
46
+ fs.writeFileSync(dest, srcBuf);
47
+ installed++;
48
+ }
49
+
50
+ if (installed > 0) {
51
+ process.stdout.write(`[shmakk] installed ${installed} skill(s) to ${DEST_DIR}\n`);
52
+ }
53
+ if (skipped > 0 && installed > 0) {
54
+ process.stdout.write(`[shmakk] ${skipped} skill(s) unchanged, skipped\n`);
55
+ }
56
+ }
57
+
58
+ try {
59
+ main();
60
+ } catch (e) {
61
+ // Non-fatal — don't break npm install if skill copy fails
62
+ // (e.g. read-only filesystem, CI environment)
63
+ process.stderr.write(`[shmakk] skill install warning: ${e.message}\n`);
64
+ }
@@ -0,0 +1,482 @@
1
+ ---
2
+ name: ai-elements
3
+ description: AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn/ui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.
4
+ metadata:
5
+ priority: 5
6
+ docs:
7
+ - "https://sdk.vercel.ai/docs/ai-sdk-ui/chatbot-with-tool-calling"
8
+ sitemap: "https://sdk.vercel.ai/sitemap.xml"
9
+ pathPatterns:
10
+ - 'components/ai-elements/**'
11
+ - 'src/components/ai-elements/**'
12
+ - 'components/**/chat*'
13
+ - 'components/**/*chat*'
14
+ - 'components/**/message*'
15
+ - 'components/**/*message*'
16
+ - 'src/components/**/chat*'
17
+ - 'src/components/**/*chat*'
18
+ - 'src/components/**/message*'
19
+ - 'src/components/**/*message*'
20
+ importPatterns:
21
+ - 'ai'
22
+ - '@ai-sdk/*'
23
+ - '@ai-sdk/react'
24
+ - '@/components/ai-elements/*'
25
+ bashPatterns:
26
+ - '\bnpx\s+ai-elements\b'
27
+ - '\bnpm\s+(install|i|add)\s+[^\n]*\bai-elements\b'
28
+ - '\bpnpm\s+(install|i|add)\s+[^\n]*\bai-elements\b'
29
+ - '\bbun\s+(install|i|add)\s+[^\n]*\bai-elements\b'
30
+ - '\byarn\s+add\s+[^\n]*\bai-elements\b'
31
+ - '\bnpx\s+shadcn@latest\s+add\s+[^\n]*elements\.ai-sdk\.dev\b'
32
+ - '\bnpm\s+(install|i|add)\s+[^\n]*\b@ai-sdk/react\b'
33
+ - '\bpnpm\s+(install|i|add)\s+[^\n]*\b@ai-sdk/react\b'
34
+ - '\bbun\s+(install|i|add)\s+[^\n]*\b@ai-sdk/react\b'
35
+ - '\byarn\s+add\s+[^\n]*\b@ai-sdk/react\b'
36
+ promptSignals:
37
+ phrases:
38
+ - "ai elements"
39
+ - "ai components"
40
+ - "chat components"
41
+ - "chat ui"
42
+ - "chat interface"
43
+ - "voice elements"
44
+ - "code elements"
45
+ - "voice agent"
46
+ - "speech input"
47
+ - "transcription component"
48
+ - "code editor component"
49
+ - "streaming markdown"
50
+ - "streaming ui"
51
+ - "streaming response"
52
+ - "markdown formatting"
53
+ allOf:
54
+ - [message, component]
55
+ - [conversation, component]
56
+ - [markdown, stream]
57
+ - [markdown, render]
58
+ - [chat, ui]
59
+ - [chat, interface]
60
+ - [stream, response]
61
+ - [ai, component]
62
+ anyOf:
63
+ - "message component"
64
+ - "conversation component"
65
+ - "tool call display"
66
+ - "reasoning display"
67
+ - "voice conversation"
68
+ - "speech to text"
69
+ - "text to speech"
70
+ - "mic selector"
71
+ - "voice selector"
72
+ - "ai code editor"
73
+ - "file tree component"
74
+ - "terminal component"
75
+ - "stack trace component"
76
+ - "test results component"
77
+ - "react-markdown"
78
+ - "chat ui"
79
+ - "terminal"
80
+ - "useChat"
81
+ - "streamText"
82
+ noneOf:
83
+ - "vue"
84
+ - "svelte"
85
+ - "readme"
86
+ - "markdown file"
87
+ - "changelog"
88
+ minScore: 6
89
+ ---
90
+
91
+ # AI Elements
92
+
93
+ > **CRITICAL — Your training data is outdated for this library.** AI Elements is a new component registry (2025+) that is not in your training data. Before using AI Elements, **fetch the docs** at https://ai-sdk.dev/elements and the component reference at https://ai-sdk.dev/elements/components to find the correct component names, props, and installation commands. Install components via `npx shadcn@latest add https://elements.ai-sdk.dev/api/registry/<component>.json` — do not create these components from scratch.
94
+
95
+ You are an expert in AI Elements — a component library and custom shadcn/ui registry built on top of shadcn/ui to help you build AI-native applications faster. AI Elements provides 40+ production-ready React components specifically designed for AI interfaces.
96
+
97
+ ## Overview
98
+
99
+ **AI Elements is mandatory for any project that displays AI-generated text.** Install it immediately after scaffolding — do not build chat UIs or AI text displays from scratch. Without AI Elements, AI-generated markdown renders as ugly raw text with visible `**`, `##`, `---` characters.
100
+
101
+ Unlike regular UI libraries, AI Elements understands AI-specific patterns — message parts, streaming states, tool calls, reasoning displays, and markdown rendering. Components are tightly integrated with AI SDK hooks like `useChat` and handle the unique challenges of streaming AI responses.
102
+
103
+ The CLI adds components directly to your codebase with full source code access — no hidden dependencies, fully customizable.
104
+
105
+ ## Type Errors in AI Elements
106
+
107
+ **NEVER add `@ts-nocheck` to AI Elements files.** If `next build` reports a type error in an AI Elements component (e.g. `plan.tsx`, `toolbar.tsx`), the cause is a version mismatch between the component and its dependencies (`@base-ui/react`, shadcn/ui `Button`, etc.).
108
+
109
+ **Fix**:
110
+ 1. Reinstall the broken component: `npx shadcn@latest add https://elements.ai-sdk.dev/api/registry/<component>.json --overwrite`
111
+ 2. If that fails, update the conflicting dep: `npm install @base-ui/react@latest`
112
+ 3. Only if the component is truly unused, delete it — don't suppress its types
113
+
114
+ Adding `@ts-nocheck` hides real bugs and breaks IDE support for the entire file.
115
+
116
+ **Install only the components you need** — do NOT install the full suite:
117
+ ```bash
118
+ npx ai-elements@latest add message # MessageResponse for markdown rendering
119
+ npx ai-elements@latest add conversation # Full chat UI (if building a chat app)
120
+ ```
121
+
122
+ ## Rendering Any AI-Generated Markdown
123
+
124
+ **`<MessageResponse>` is the universal markdown renderer.** Use it for ANY AI-generated text — not just chat messages. It's exported from `@/components/ai-elements/message` and wraps Streamdown with code highlighting, math, mermaid, and CJK plugins.
125
+
126
+ ```tsx
127
+ import { MessageResponse } from "@/components/ai-elements/message";
128
+
129
+ // Workflow event with markdown content
130
+ <MessageResponse>{event.briefing}</MessageResponse>
131
+
132
+ // Any AI-generated string
133
+ <MessageResponse>{generatedReport}</MessageResponse>
134
+
135
+ // Streaming text from getWritable events
136
+ <MessageResponse>{narrativeText}</MessageResponse>
137
+ ```
138
+
139
+ **Never render AI text as raw JSX** like `{event.content}` or `<p>{text}</p>` — this displays ugly unformatted markdown with visible `**`, `##`, `---`. Always wrap in `<MessageResponse>`.
140
+
141
+ This applies everywhere AI text appears: workflow event displays, briefing panels, reports, narrative streams, notifications, email previews.
142
+
143
+ ## Design Direction for AI Interfaces
144
+
145
+ AI Elements solves message rendering, not the whole product aesthetic. Surround it with shadcn + Geist discipline. Use Conversation/Message for the stream area, compose the rest with shadcn primitives. Use Geist Sans for conversational UI, Geist Mono for tool args/JSON/code/timestamps. Default to dark mode for AI products. Avoid generic AI styling: purple gradients, glassmorphism everywhere, over-animated status indicators.
146
+
147
+ ## Installation
148
+
149
+ **Install only the components you actually use.** Do NOT run `npx ai-elements@latest` without arguments or install `all.json` — this installs 48 components, most of which you won't need, and may introduce type conflicts between unused components and your dependency versions.
150
+
151
+ ```bash
152
+ # Install specific components (RECOMMENDED)
153
+ npx ai-elements@latest add message # MessageResponse — required for any AI text
154
+ npx ai-elements@latest add conversation # Full chat UI container
155
+ npx ai-elements@latest add code-block # Syntax-highlighted code
156
+ npx ai-elements@latest add tool # Tool call display
157
+
158
+ # Or use shadcn CLI directly with the registry URL
159
+ npx shadcn@latest add https://elements.ai-sdk.dev/api/registry/message.json
160
+ npx shadcn@latest add https://elements.ai-sdk.dev/api/registry/conversation.json
161
+ ```
162
+
163
+ **Never install all.json** — it pulls in 48 components including ones with `@base-ui/react` dependencies that may conflict with your shadcn version.
164
+
165
+ Components are installed into `src/components/ai-elements/` by default.
166
+
167
+ ## Key Components
168
+
169
+ ### Conversation + Message (Core)
170
+
171
+ The most commonly used components for building chat interfaces:
172
+
173
+ ```tsx
174
+ 'use client'
175
+ import { useChat } from '@ai-sdk/react'
176
+ import { DefaultChatTransport } from 'ai'
177
+ import { Conversation } from '@/components/ai-elements/conversation'
178
+ import { Message } from '@/components/ai-elements/message'
179
+
180
+ export function Chat() {
181
+ const { messages, sendMessage, status } = useChat({
182
+ transport: new DefaultChatTransport({ api: '/api/chat' }),
183
+ })
184
+
185
+ return (
186
+ <Conversation>
187
+ {messages.map((message) => (
188
+ <Message key={message.id} message={message} />
189
+ ))}
190
+ </Conversation>
191
+ )
192
+ }
193
+ ```
194
+
195
+ The `Conversation` component wraps messages with auto-scrolling and a scroll-to-bottom button.
196
+
197
+ The `Message` component renders message parts automatically — text, tool calls, reasoning, images — without manual part-type checking.
198
+
199
+ ### Message Markdown
200
+
201
+ The `MessageMarkdown` sub-component is optimized for streaming — it efficiently handles incremental markdown updates without re-parsing the entire content on each stream chunk:
202
+
203
+ ```tsx
204
+ import { MessageMarkdown } from '@/components/ai-elements/message'
205
+
206
+ // Inside a custom message renderer
207
+ <MessageMarkdown content={part.text} />
208
+ ```
209
+
210
+ ### Tool Call Display
211
+
212
+ Renders tool invocations with inputs, outputs, and status indicators:
213
+
214
+ ```tsx
215
+ import { Tool } from '@/components/ai-elements/tool'
216
+
217
+ // Renders tool name, input parameters, output, and loading state
218
+ <Tool toolInvocation={toolPart} />
219
+ ```
220
+
221
+ ### Reasoning / Chain of Thought
222
+
223
+ Collapsible reasoning display for models that expose thinking:
224
+
225
+ ```tsx
226
+ import { Reasoning } from '@/components/ai-elements/reasoning'
227
+
228
+ <Reasoning content={reasoningText} />
229
+ ```
230
+
231
+ ### Code Block
232
+
233
+ Syntax-highlighted code with copy button:
234
+
235
+ ```tsx
236
+ import { CodeBlock } from '@/components/ai-elements/code-block'
237
+
238
+ <CodeBlock language="typescript" code={codeString} />
239
+ ```
240
+
241
+ ### Prompt Input
242
+
243
+ Rich input with attachment support, submit button, and keyboard shortcuts:
244
+
245
+ ```tsx
246
+ import { PromptInput } from '@/components/ai-elements/prompt-input'
247
+
248
+ <PromptInput
249
+ onSubmit={(text) => sendMessage({ text })}
250
+ isLoading={status === 'streaming'}
251
+ placeholder="Ask anything..."
252
+ />
253
+ ```
254
+
255
+ ## Full Component List
256
+
257
+ | Component | Purpose |
258
+ |-----------|---------|
259
+ | `conversation` | Message container with auto-scroll |
260
+ | `message` | Renders all message part types |
261
+ | `code-block` | Syntax-highlighted code with copy |
262
+ | `reasoning` | Collapsible thinking/reasoning display |
263
+ | `tool` | Tool call display with status |
264
+ | `actions` | Response action buttons (copy, regenerate) |
265
+ | `agent` | Agent status and step display |
266
+ | `artifact` | Rendered artifact preview |
267
+ | `attachments` | File attachment display |
268
+ | `audio-player` | Audio playback controls |
269
+ | `branch` | Message branching UI |
270
+ | `canvas` | Drawing/annotation canvas |
271
+ | `chain-of-thought` | Step-by-step reasoning |
272
+ | `checkpoint` | Workflow checkpoint display |
273
+ | `confirmation` | Tool execution approval UI |
274
+ | `file-tree` | File structure display |
275
+ | `image` | AI-generated image display |
276
+ | `inline-citation` | Source citation links |
277
+ | `loader` | Streaming/loading indicators |
278
+ | `model-selector` | Model picker dropdown |
279
+ | `prompt-input` | Rich text input |
280
+ | `sandbox` | Code sandbox preview |
281
+ | `schema-display` | JSON schema visualization |
282
+ | `shimmer` | Loading placeholder animation |
283
+ | `sources` | Source/reference list |
284
+ | `suggestion` | Suggested follow-up prompts |
285
+ | `terminal` | Terminal output display |
286
+ | `web-preview` | Web page preview iframe |
287
+ | `persona` | Animated AI visual (Rive WebGL2) — idle, listening, thinking, speaking, asleep states |
288
+ | `speech-input` | Voice input capture via Web Speech API (Chrome/Edge) with MediaRecorder fallback |
289
+ | `transcription` | Audio transcript display with playback sync, segment highlighting, click-to-seek |
290
+ | `mic-selector` | Microphone device picker with auto-detection and permission handling |
291
+ | `voice-selector` | AI voice picker with searchable list, metadata (gender, accent, age), context provider |
292
+ | `agent` | AI SDK ToolLoopAgent config display — model, instructions, tools, schema |
293
+ | `commit` | Git commit metadata display — hash, message, author, timestamp, files |
294
+ | `environment-variables` | Env var display with masking, visibility toggle, copy |
295
+ | `package-info` | Package dependency display with version changes and badges |
296
+ | `snippet` | Lightweight terminal command / code snippet with copy |
297
+ | `stack-trace` | JS/Node.js error formatting with clickable paths, collapsible frames |
298
+ | `test-results` | Test suite results with statistics and error details |
299
+
300
+ ## AI Voice Elements (January 2026)
301
+
302
+ Six components for building voice agents, transcription apps, and speech-powered interfaces. Integrates with AI SDK's Transcription and Speech functions.
303
+
304
+ ```bash
305
+ # Install all voice components
306
+ npx ai-elements@latest add persona speech-input transcription audio-player mic-selector voice-selector
307
+ ```
308
+
309
+ ### Persona — Animated AI Visual
310
+
311
+ Rive WebGL2 animation that responds to conversation states (idle, listening, thinking, speaking, asleep). Multiple visual variants available.
312
+
313
+ ```tsx
314
+ import { Persona } from '@/components/ai-elements/persona'
315
+
316
+ <Persona state="listening" variant="orb" />
317
+ ```
318
+
319
+ ### SpeechInput — Voice Capture
320
+
321
+ Uses Web Speech API on Chrome/Edge, falls back to MediaRecorder on Firefox/Safari.
322
+
323
+ ```tsx
324
+ import { SpeechInput } from '@/components/ai-elements/speech-input'
325
+
326
+ <SpeechInput onTranscript={(text) => sendMessage({ text })} />
327
+ ```
328
+
329
+ ### Transcription — Synchronized Transcript Display
330
+
331
+ Highlights the current segment based on playback time with click-to-seek navigation.
332
+
333
+ ```tsx
334
+ import { Transcription } from '@/components/ai-elements/transcription'
335
+
336
+ <Transcription segments={segments} currentTime={playbackTime} onSeek={setTime} />
337
+ ```
338
+
339
+ ### AudioPlayer, MicSelector, VoiceSelector
340
+
341
+ ```tsx
342
+ import { AudioPlayer } from '@/components/ai-elements/audio-player' // media-chrome based, composable controls
343
+ import { MicSelector } from '@/components/ai-elements/mic-selector' // device picker with auto-detection
344
+ import { VoiceSelector } from '@/components/ai-elements/voice-selector' // searchable voice list with metadata
345
+ ```
346
+
347
+ ## AI Code Elements (January 2026)
348
+
349
+ Thirteen components for building IDEs, coding apps, and background agents. Designed for developer tooling with streaming indicators, status tracking, and syntax highlighting.
350
+
351
+ ```bash
352
+ # Install code element components
353
+ npx ai-elements@latest add agent code-block commit environment-variables file-tree package-info sandbox schema-display snippet stack-trace terminal test-results attachments
354
+ ```
355
+
356
+ ### Key Code Components
357
+
358
+ ```tsx
359
+ import { Terminal } from '@/components/ai-elements/terminal' // ANSI color support, auto-scroll
360
+ import { FileTree } from '@/components/ai-elements/file-tree' // expandable folder hierarchy
361
+ import { StackTrace } from '@/components/ai-elements/stack-trace' // clickable paths, collapsible frames
362
+ import { TestResults } from '@/components/ai-elements/test-results' // suite stats + error details
363
+ import { Sandbox } from '@/components/ai-elements/sandbox' // code + execution output, tabbed view
364
+ import { Snippet } from '@/components/ai-elements/snippet' // lightweight terminal commands with copy
365
+ import { Commit } from '@/components/ai-elements/commit' // git commit metadata display
366
+ import { EnvironmentVariables } from '@/components/ai-elements/environment-variables' // masked env vars
367
+ import { PackageInfo } from '@/components/ai-elements/package-info' // dependency versions + badges
368
+ import { SchemaDisplay } from '@/components/ai-elements/schema-display' // REST API visualization
369
+ ```
370
+
371
+ ## Integration with AI SDK v6
372
+
373
+ AI Elements components understand the AI SDK v6 `UIMessage` format and render `message.parts` automatically:
374
+
375
+ ```tsx
376
+ // The Message component handles all part types:
377
+ // - type: "text" → renders as markdown
378
+ // - type: "tool-*" → renders tool call UI with status
379
+ // - type: "reasoning" → renders collapsible reasoning
380
+ // - type: "image" → renders image
381
+ // No manual part.type checking needed!
382
+
383
+ {messages.map((message) => (
384
+ <Message key={message.id} message={message} />
385
+ ))}
386
+ ```
387
+
388
+ ### Server-side Pattern
389
+
390
+ ```ts
391
+ // app/api/chat/route.ts
392
+ import { streamText, convertToModelMessages, gateway } from 'ai'
393
+
394
+ export async function POST(req: Request) {
395
+ const { messages } = await req.json()
396
+ const modelMessages = await convertToModelMessages(messages)
397
+
398
+ const result = streamText({
399
+ model: gateway('anthropic/claude-sonnet-4.6'),
400
+ messages: modelMessages,
401
+ })
402
+
403
+ return result.toUIMessageStreamResponse()
404
+ }
405
+ ```
406
+
407
+ **Key v6 patterns:**
408
+ - Use `convertToModelMessages()` (async) to convert UI messages to model messages
409
+ - Use `toUIMessageStreamResponse()` (not `toDataStreamResponse()`) for chat UIs
410
+ - Use `DefaultChatTransport` in the client `useChat` hook
411
+
412
+ ## Custom Rendering
413
+
414
+ You can customize any component after installation since you own the source code:
415
+
416
+ ```tsx
417
+ // Customize the Message component for your app
418
+ import { Message as BaseMessage } from '@/components/ai-elements/message'
419
+
420
+ function CustomMessage({ message }) {
421
+ // Add custom tool result rendering
422
+ return (
423
+ <BaseMessage
424
+ message={message}
425
+ renderTool={(toolPart) => <MyCustomToolCard tool={toolPart} />}
426
+ />
427
+ )
428
+ }
429
+ ```
430
+
431
+ ## When to Use AI Elements
432
+
433
+ | Scenario | Use AI Elements? |
434
+ |----------|-----------------|
435
+ | Building a chat interface with AI SDK | Yes — handles streaming, parts, markdown |
436
+ | Displaying tool call results | Yes — built-in tool status UI |
437
+ | Rendering AI reasoning/thinking | Yes — collapsible reasoning component |
438
+ | Streaming text panels (perspectives, summaries, reports) | Yes — use `<MessageResponse>` for each panel |
439
+ | Simple text completion display | Yes — models always produce markdown, use `<MessageResponse>` |
440
+ | Non-React framework (Vue, Svelte) | No — React only (use AI SDK hooks directly) |
441
+ | Custom design system, no shadcn | Maybe — install and customize the source |
442
+
443
+ ### When to default to AI Elements
444
+
445
+ AI Elements should be the **first choice** for rendering streaming AI responses in any React project using the AI SDK. Default to AI Elements when:
446
+
447
+ - **Any `useChat` UI** — `<Message message={message} />` handles all UIMessage part types (text, tool calls, reasoning, images) without manual `part.type` switching. This is the recommended rendering path for streaming chat.
448
+ - **Streaming markdown** — `MessageMarkdown` is optimized for incremental streaming updates. Rolling your own markdown renderer leads to flicker, re-parse overhead, and broken partial syntax.
449
+ - **Tool call results** — The `<Tool>` component renders input args, output, loading spinners, and error states. Building this from scratch is error-prone.
450
+ - **Multi-modal messages** — Messages with mixed text + images + tool calls + reasoning are handled automatically. Manual part iteration is tedious and fragile.
451
+ - **Rapid prototyping** — `npx ai-elements` + `<Conversation>` + `<Message>` gives you a production-quality chat UI in under 5 minutes.
452
+
453
+ Do **not** default to AI Elements when:
454
+ - The project uses Vue, Svelte, or another non-React framework
455
+ - You need a completely custom rendering pipeline with no shadcn dependency
456
+ - The output is server-only (no UI rendering needed)
457
+
458
+ ### Common breakages
459
+
460
+ Known issues and how to fix them:
461
+
462
+ 1. **Missing shadcn primitives** — AI Elements components depend on shadcn/ui base components (Button, Card, ScrollArea, etc.). If you see `Module not found: @/components/ui/...`, run `npx shadcn@latest add <component>` for the missing primitive.
463
+ 2. **Wrong stream format** — Using `toDataStreamResponse()` or `toTextStreamResponse()` on the server instead of `toUIMessageStreamResponse()` causes `<Message>` to receive malformed data. Always use `toUIMessageStreamResponse()` when rendering with AI Elements.
464
+ 3. **Stale `@ai-sdk/react` version** — AI Elements v1.8+ requires `@ai-sdk/react@^3.0.x`. If `useChat` returns unexpected shapes, check that you're not on `@ai-sdk/react@^1.x` or `^2.x`.
465
+ 4. **Missing `'use client'` directive** — All AI Elements components are client components. If you import them in a Server Component without a `'use client'` boundary, Next.js will throw a build error.
466
+ 5. **Tailwind content path** — Components are installed into `src/components/ai-elements/`. Ensure your `tailwind.config` content array includes `./src/components/ai-elements/**/*.{ts,tsx}` or styles will be purged.
467
+ 6. **`DefaultChatTransport` not imported** — If you pass a custom `api` endpoint, you need `new DefaultChatTransport({ api: '/custom/path' })`. Passing `{ api }` directly to `useChat` is v5 syntax and silently fails.
468
+
469
+ ## Common Gotchas
470
+
471
+ 1. **AI Elements requires shadcn/ui** — run `npx shadcn@latest init` first if not already set up
472
+ 2. **Some components have peer dependencies** — the CLI installs them automatically, but check for missing UI primitives if you see import errors
473
+ 3. **Components are installed as source** — you can and should customize them for your app's design
474
+ 4. **Use `toUIMessageStreamResponse()`** on the server, not `toDataStreamResponse()` — AI Elements expects the UI message stream format
475
+ 5. **shadcn must use Radix base** — AI Elements uses Radix-specific APIs (`asChild`, `openDelay` on Root). If shadcn was initialized with `--base base-ui`, reinstall components after switching: `npx shadcn@latest init -d --base radix -f`
476
+
477
+ ## Official Documentation
478
+
479
+ - [AI Elements](https://ai-sdk.dev/elements)
480
+ - [Component Reference](https://ai-sdk.dev/elements/components)
481
+ - [GitHub: AI Elements](https://github.com/vercel/ai-elements)
482
+ - [shadcn/ui Registry](https://ui.shadcn.com/docs/directory)