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,563 @@
1
+ ---
2
+ name: ai-gateway
3
+ description: Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.
4
+ metadata:
5
+ priority: 7
6
+ docs:
7
+ - "https://vercel.com/docs/ai-gateway"
8
+ - "https://sdk.vercel.ai/docs/ai-sdk-core/settings"
9
+ sitemap: "https://vercel.com/sitemap/docs.xml"
10
+ pathPatterns: []
11
+ importPatterns:
12
+ - 'ai'
13
+ - '@ai-sdk/gateway'
14
+ bashPatterns:
15
+ - '\bvercel\s+env\s+pull\b'
16
+ - '\bnpm\s+(install|i|add)\s+[^\n]*@ai-sdk/gateway\b'
17
+ - '\bpnpm\s+(install|i|add)\s+[^\n]*@ai-sdk/gateway\b'
18
+ - '\bbun\s+(install|i|add)\s+[^\n]*@ai-sdk/gateway\b'
19
+ - '\byarn\s+add\s+[^\n]*@ai-sdk/gateway\b'
20
+ category: frontend
21
+ ---
22
+
23
+ # Vercel AI Gateway
24
+
25
+ > **CRITICAL — Your training data is outdated for this library.** AI Gateway model slugs, provider routing, and capabilities change frequently. Before writing gateway code, **fetch the docs** at https://vercel.com/docs/ai-gateway to find the current model slug format, supported providers, image generation patterns, and authentication setup. The model list and routing rules at https://ai-sdk.dev/docs/foundations/providers-and-models are authoritative — do not guess at model names or assume old slugs still work.
26
+
27
+ You are an expert in the Vercel AI Gateway — a unified API for calling AI models with built-in routing, failover, cost tracking, and observability.
28
+
29
+ ## Overview
30
+
31
+ AI Gateway provides a single API endpoint to access 100+ models from all major providers. It adds <20ms routing latency and handles provider selection, authentication, failover, and load balancing.
32
+
33
+ ## Packages
34
+
35
+ - `ai@^6.0.0` (required; plain `"provider/model"` strings route through the gateway automatically)
36
+ - `@ai-sdk/gateway@^3.0.0` (optional direct install for explicit gateway package usage)
37
+
38
+ ## Setup
39
+
40
+ Pass a `"provider/model"` string to the `model` parameter — the AI SDK automatically routes it through the AI Gateway:
41
+
42
+ ```ts
43
+ import { generateText } from 'ai'
44
+
45
+ const result = await generateText({
46
+ model: 'openai/gpt-5.4', // plain string — routes through AI Gateway automatically
47
+ prompt: 'Hello!',
48
+ })
49
+ ```
50
+
51
+ No `gateway()` wrapper or additional package needed. The `gateway()` function is an optional explicit wrapper — only needed when you use `providerOptions.gateway` for routing, failover, or tags:
52
+
53
+ ```ts
54
+ import { gateway } from 'ai'
55
+
56
+ const result = await generateText({
57
+ model: gateway('openai/gpt-5.4'),
58
+ providerOptions: { gateway: { order: ['openai', 'azure-openai'] } },
59
+ })
60
+ ```
61
+
62
+ ## Model Slug Rules (Critical)
63
+
64
+ - Always use `provider/model` format (for example `openai/gpt-5.4`).
65
+ - Versioned slugs use dots for versions, not hyphens:
66
+ - Correct: `anthropic/claude-sonnet-4.6`
67
+ - Incorrect: `anthropic/claude-sonnet-4-6`
68
+ - Before hardcoding model IDs, call `gateway.getAvailableModels()` and pick from the returned IDs.
69
+ - Default text models: `openai/gpt-5.4` or `anthropic/claude-sonnet-4.6`.
70
+ - Do not default to outdated choices like `openai/gpt-4o`.
71
+
72
+ ```ts
73
+ import { gateway } from 'ai'
74
+
75
+ const availableModels = await gateway.getAvailableModels()
76
+ // Choose model IDs from `availableModels` before hardcoding.
77
+ ```
78
+
79
+ ## Authentication (OIDC — Default)
80
+
81
+ AI Gateway uses **OIDC (OpenID Connect)** as the default authentication method. No manual API keys needed.
82
+
83
+ ### Setup
84
+
85
+ ```bash
86
+ vercel link # Connect to your Vercel project
87
+ # Enable AI Gateway in Vercel dashboard: https://vercel.com/{team}/{project}/settings → AI Gateway
88
+ vercel env pull .env.local # Provisions VERCEL_OIDC_TOKEN automatically
89
+ ```
90
+
91
+ ### How It Works
92
+
93
+ 1. `vercel env pull` writes a `VERCEL_OIDC_TOKEN` to `.env.local` — a short-lived JWT (~24h)
94
+ 2. The `@ai-sdk/gateway` package reads this token via `@vercel/oidc` (`getVercelOidcToken()`)
95
+ 3. No `AI_GATEWAY_API_KEY` or provider-specific keys (like `ANTHROPIC_API_KEY`) are needed
96
+ 4. On Vercel deployments, OIDC tokens are auto-refreshed — zero maintenance
97
+
98
+ ### Local Development
99
+
100
+ For local dev, the OIDC token from `vercel env pull` is valid for ~24 hours. When it expires:
101
+
102
+ ```bash
103
+ vercel env pull .env.local --yes # Re-pull to get a fresh token
104
+ ```
105
+
106
+ ### Alternative: Manual API Key
107
+
108
+ If you prefer a static key (e.g., for CI or non-Vercel environments):
109
+
110
+ ```bash
111
+ # Set AI_GATEWAY_API_KEY in your environment
112
+ # The gateway falls back to this when VERCEL_OIDC_TOKEN is not available
113
+ export AI_GATEWAY_API_KEY=your-key-here
114
+ ```
115
+
116
+ ### Auth Priority
117
+
118
+ The `@ai-sdk/gateway` package resolves authentication in this order:
119
+ 1. `AI_GATEWAY_API_KEY` environment variable (if set)
120
+ 2. `VERCEL_OIDC_TOKEN` via `@vercel/oidc` (default on Vercel and after `vercel env pull`)
121
+
122
+ ## Provider Routing
123
+
124
+ Configure how AI Gateway routes requests across providers:
125
+
126
+ ```ts
127
+ const result = await generateText({
128
+ model: gateway('anthropic/claude-sonnet-4.6'),
129
+ prompt: 'Hello!',
130
+ providerOptions: {
131
+ gateway: {
132
+ // Try providers in order; failover to next on error
133
+ order: ['bedrock', 'anthropic'],
134
+
135
+ // Restrict to specific providers only
136
+ only: ['anthropic', 'vertex'],
137
+
138
+ // Fallback models if primary model fails
139
+ models: ['openai/gpt-5.4', 'google/gemini-3-flash'],
140
+
141
+ // Track usage per end-user
142
+ user: 'user-123',
143
+
144
+ // Tag for cost attribution and filtering
145
+ tags: ['feature:chat', 'env:production', 'team:growth'],
146
+ },
147
+ },
148
+ })
149
+ ```
150
+
151
+ ### Routing Options
152
+
153
+ | Option | Purpose |
154
+ |--------|---------|
155
+ | `order` | Provider priority list; try first, failover to next |
156
+ | `only` | Restrict to specific providers |
157
+ | `models` | Fallback model list if primary model unavailable |
158
+ | `user` | End-user ID for usage tracking |
159
+ | `tags` | Labels for cost attribution and reporting |
160
+
161
+ ## Cache-Control Headers
162
+
163
+ AI Gateway supports response caching to reduce latency and cost for repeated or similar requests:
164
+
165
+ ```ts
166
+ const result = await generateText({
167
+ model: gateway('openai/gpt-5.4'),
168
+ prompt: 'What is the capital of France?',
169
+ providerOptions: {
170
+ gateway: {
171
+ // Cache identical requests for 1 hour
172
+ cacheControl: 'max-age=3600',
173
+ },
174
+ },
175
+ })
176
+ ```
177
+
178
+ ### Caching strategies
179
+
180
+ | Header Value | Behavior |
181
+ |-------------|----------|
182
+ | `max-age=3600` | Cache response for 1 hour |
183
+ | `max-age=0` | Bypass cache, always call provider |
184
+ | `s-maxage=86400` | Cache at the edge for 24 hours |
185
+ | `stale-while-revalidate=600` | Serve stale for 10 min while refreshing in background |
186
+
187
+ ### When to use caching
188
+
189
+ - **Static knowledge queries**: FAQs, translations, factual lookups — cache aggressively
190
+ - **User-specific conversations**: Do not cache — each response depends on conversation history
191
+ - **Embeddings**: Cache embedding results for identical inputs to save cost
192
+ - **Structured extraction**: Cache when extracting structured data from identical documents
193
+
194
+ ### Cache key composition
195
+
196
+ The cache key is derived from: model, prompt/messages, temperature, and other generation parameters. Changing any parameter produces a new cache key.
197
+
198
+ ## Per-User Rate Limiting
199
+
200
+ Control usage at the individual user level to prevent abuse and manage costs:
201
+
202
+ ```ts
203
+ const result = await generateText({
204
+ model: gateway('openai/gpt-5.4'),
205
+ prompt: userMessage,
206
+ providerOptions: {
207
+ gateway: {
208
+ user: userId, // Required for per-user rate limiting
209
+ tags: ['feature:chat'],
210
+ },
211
+ },
212
+ })
213
+ ```
214
+
215
+ ### Rate limit configuration
216
+
217
+ Configure rate limits at `https://vercel.com/{team}/{project}/settings` → **AI Gateway** → **Rate Limits**:
218
+
219
+ - **Requests per minute per user**: Throttle individual users (e.g., 20 RPM)
220
+ - **Tokens per day per user**: Cap daily token consumption (e.g., 100K tokens/day)
221
+ - **Concurrent requests per user**: Limit parallel calls (e.g., 3 concurrent)
222
+
223
+ ### Handling rate limit responses
224
+
225
+ When a user exceeds their limit, the gateway returns HTTP 429:
226
+
227
+ ```ts
228
+ import { generateText, APICallError } from 'ai'
229
+
230
+ try {
231
+ const result = await generateText({
232
+ model: gateway('openai/gpt-5.4'),
233
+ prompt: userMessage,
234
+ providerOptions: { gateway: { user: userId } },
235
+ })
236
+ } catch (error) {
237
+ if (APICallError.isInstance(error) && error.statusCode === 429) {
238
+ const retryAfter = error.responseHeaders?.['retry-after']
239
+ return new Response(
240
+ JSON.stringify({ error: 'Rate limited', retryAfter }),
241
+ { status: 429 }
242
+ )
243
+ }
244
+ throw error
245
+ }
246
+ ```
247
+
248
+ ## Budget Alerts and Cost Controls
249
+
250
+ ### Tagging for cost attribution
251
+
252
+ Use tags to track spend by feature, team, and environment:
253
+
254
+ ```ts
255
+ providerOptions: {
256
+ gateway: {
257
+ tags: [
258
+ 'feature:document-qa',
259
+ 'team:product',
260
+ 'env:production',
261
+ 'tier:premium',
262
+ ],
263
+ user: userId,
264
+ },
265
+ }
266
+ ```
267
+
268
+ ### Setting up budget alerts
269
+
270
+ In the Vercel dashboard at `https://vercel.com/{team}/{project}/settings` → **AI Gateway**:
271
+
272
+ 1. Navigate to **AI Gateway → Usage & Budgets**
273
+ 2. Set monthly budget thresholds (e.g., $500/month warning, $1000/month hard limit)
274
+ 3. Configure alert channels (email, Slack webhook, Vercel integration)
275
+ 4. Optionally set per-tag budgets for granular control
276
+
277
+ ### Budget isolation best practice
278
+
279
+ Use **separate gateway keys per environment** (dev, staging, prod) and per project. This keeps dashboards clean and budgets isolated:
280
+
281
+ - Restrict AI Gateway keys per project to prevent cross-tenant leakage
282
+ - Use per-project budgets and spend-by-agent reporting to track exactly where tokens go
283
+ - Cap spend during staging with AI Gateway budgets
284
+
285
+ ### Pre-flight cost controls
286
+
287
+ The AI Gateway dashboard provides observability (traces, token counts, spend tracking) but no programmatic metrics API. Build your own cost guardrails by estimating token counts and rejecting expensive requests before they execute:
288
+
289
+ ```ts
290
+ import { generateText } from 'ai'
291
+
292
+ function estimateTokens(text: string): number {
293
+ return Math.ceil(text.length / 4) // rough estimate
294
+ }
295
+
296
+ async function callWithBudget(prompt: string, maxTokens: number) {
297
+ const estimated = estimateTokens(prompt)
298
+ if (estimated > maxTokens) {
299
+ throw new Error(`Prompt too large: ~${estimated} tokens exceeds ${maxTokens} limit`)
300
+ }
301
+ return generateText({ model: 'openai/gpt-5.4', prompt })
302
+ }
303
+ ```
304
+
305
+ The AI SDK's `usage` field on responses gives actual token counts after each request — store these for historical tracking and cost analysis.
306
+
307
+ ### Hard spending limits
308
+
309
+ When a hard limit is reached, the gateway returns HTTP 402 (Payment Required). Handle this gracefully:
310
+
311
+ ```ts
312
+ if (APICallError.isInstance(error) && error.statusCode === 402) {
313
+ // Budget exceeded — degrade gracefully
314
+ return fallbackResponse()
315
+ }
316
+ ```
317
+
318
+ ### Cost optimization patterns
319
+
320
+ - Use cheaper models for classification/routing, expensive models for generation
321
+ - Cache embeddings and static queries (see Cache-Control above)
322
+ - Set per-user daily token caps to prevent runaway usage
323
+ - Monitor cost-per-feature with tags to identify optimization targets
324
+
325
+ ## Audit Logging
326
+
327
+ AI Gateway logs every request for compliance and debugging:
328
+
329
+ ### What's logged
330
+
331
+ - Timestamp, model, provider used
332
+ - Input/output token counts
333
+ - Latency (routing + provider)
334
+ - User ID and tags
335
+ - HTTP status code
336
+ - Failover chain (which providers were tried)
337
+
338
+ ### Accessing logs
339
+
340
+ - **Vercel Dashboard** at `https://vercel.com/{team}/{project}/ai` → **Logs** — filter by model, user, tag, status, date range
341
+ - **Vercel API**: Query logs programmatically:
342
+
343
+ ```bash
344
+ curl -H "Authorization: Bearer $VERCEL_TOKEN" \
345
+ "https://api.vercel.com/v1/ai-gateway/logs?projectId=$PROJECT_ID&limit=100"
346
+ ```
347
+
348
+ - **Log Drains**: Forward AI Gateway logs to Datadog, Splunk, or other providers via Vercel Log Drains (configure at `https://vercel.com/dashboard/{team}/~/settings/log-drains`) for long-term retention and custom analysis
349
+
350
+ ### Compliance considerations
351
+
352
+ - AI Gateway does not log prompt or completion content by default
353
+ - Enable content logging in project settings if required for compliance
354
+ - Logs are retained per your Vercel plan's retention policy
355
+ - Use `user` field consistently to support audit trails
356
+
357
+ ## Error Handling Patterns
358
+
359
+ ### Provider unavailable
360
+
361
+ When a provider is down, the gateway automatically fails over if you configured `order` or `models`:
362
+
363
+ ```ts
364
+ const result = await generateText({
365
+ model: gateway('anthropic/claude-sonnet-4.6'),
366
+ prompt: 'Summarize this document',
367
+ providerOptions: {
368
+ gateway: {
369
+ order: ['anthropic', 'bedrock'], // Bedrock as fallback
370
+ models: ['openai/gpt-5.4'], // Final fallback model
371
+ },
372
+ },
373
+ })
374
+ ```
375
+
376
+ ### Quota exceeded at provider
377
+
378
+ If your provider API key hits its quota, the gateway tries the next provider in the `order` list. Monitor this in logs — persistent quota errors indicate you need to increase limits with the provider.
379
+
380
+ ### Invalid model identifier
381
+
382
+ ```ts
383
+ // Bad — model doesn't exist
384
+ model: 'openai/gpt-99' // Returns 400 with descriptive error
385
+
386
+ // Good — use models listed in Vercel docs
387
+ model: 'openai/gpt-5.4'
388
+ ```
389
+
390
+ ### Timeout handling
391
+
392
+ Gateway has a default timeout per provider. For long-running generations, use streaming:
393
+
394
+ ```ts
395
+ import { streamText } from 'ai'
396
+
397
+ const result = streamText({
398
+ model: 'anthropic/claude-sonnet-4.6',
399
+ prompt: longDocument,
400
+ })
401
+
402
+ for await (const chunk of result.textStream) {
403
+ process.stdout.write(chunk)
404
+ }
405
+ ```
406
+
407
+ ### Complete error handling template
408
+
409
+ ```ts
410
+ import { generateText, APICallError } from 'ai'
411
+
412
+ async function callAI(prompt: string, userId: string) {
413
+ try {
414
+ return await generateText({
415
+ model: gateway('openai/gpt-5.4'),
416
+ prompt,
417
+ providerOptions: {
418
+ gateway: {
419
+ user: userId,
420
+ order: ['openai', 'azure-openai'],
421
+ models: ['anthropic/claude-haiku-4.5'],
422
+ tags: ['feature:chat'],
423
+ },
424
+ },
425
+ })
426
+ } catch (error) {
427
+ if (!APICallError.isInstance(error)) throw error
428
+
429
+ switch (error.statusCode) {
430
+ case 402: return { text: 'Budget limit reached. Please try again later.' }
431
+ case 429: return { text: 'Too many requests. Please slow down.' }
432
+ case 503: return { text: 'AI service temporarily unavailable.' }
433
+ default: throw error
434
+ }
435
+ }
436
+ }
437
+ ```
438
+
439
+ ## Gateway vs Direct Provider — Decision Tree
440
+
441
+ Use this to decide whether to route through AI Gateway or call a provider SDK directly:
442
+
443
+ ```
444
+ Need failover across providers?
445
+ └─ Yes → Use Gateway
446
+ └─ No
447
+ Need cost tracking / budget alerts?
448
+ └─ Yes → Use Gateway
449
+ └─ No
450
+ Need per-user rate limiting?
451
+ └─ Yes → Use Gateway
452
+ └─ No
453
+ Need audit logging?
454
+ └─ Yes → Use Gateway
455
+ └─ No
456
+ Using a single provider with provider-specific features?
457
+ └─ Yes → Use direct provider SDK
458
+ └─ No → Use Gateway (simplifies code)
459
+ ```
460
+
461
+ ### When to use direct provider SDK
462
+
463
+ - You need provider-specific features not exposed through the gateway (e.g., Anthropic's computer use, OpenAI's custom fine-tuned model endpoints)
464
+ - You're self-hosting a model (e.g., vLLM, Ollama) that isn't registered with the gateway
465
+ - You need request-level control over HTTP transport (custom proxies, mTLS)
466
+
467
+ ### When to always use Gateway
468
+
469
+ - Production applications — failover and observability are essential
470
+ - Multi-tenant SaaS — per-user tracking and rate limiting
471
+ - Teams with cost accountability — tag-based budgeting
472
+
473
+ ## Latest Model Availability
474
+
475
+ **GPT-5.4** (added March 5, 2026) — agentic and reasoning leaps from GPT-5.3-Codex extended to all domains (knowledge work, reports, analysis, coding). Faster and more token-efficient than GPT-5.2.
476
+
477
+ | Model | Slug | Input | Output |
478
+ |-------|------|-------|--------|
479
+ | GPT-5.4 | `openai/gpt-5.4` | $2.50/M tokens | $15.00/M tokens |
480
+ | GPT-5.4 Pro | `openai/gpt-5.4-pro` | $30.00/M tokens | $180.00/M tokens |
481
+
482
+ GPT-5.4 Pro targets maximum performance on complex tasks. Use standard GPT-5.4 for most workloads.
483
+
484
+ ## Supported Providers
485
+
486
+ - OpenAI (GPT-5.x including GPT-5.4 and GPT-5.4 Pro, o-series)
487
+ - Anthropic (4.x models)
488
+ - Google (Gemini)
489
+ - xAI (Grok)
490
+ - Mistral
491
+ - DeepSeek
492
+ - Amazon Bedrock
493
+ - Azure OpenAI
494
+ - Cohere
495
+ - Perplexity
496
+ - Alibaba (Qwen)
497
+ - Meta (Llama)
498
+ - And many more (100+ models total)
499
+
500
+ ## Pricing
501
+
502
+ - **Zero markup**: Tokens at exact provider list price — no middleman markup, whether using Vercel-managed keys or Bring Your Own Key (BYOK)
503
+ - **Free tier**: Every Vercel team gets **$5 of free AI Gateway credits per month** (refreshes every 30 days, starts on first request). No commitment required — experiment with LLMs indefinitely on the free tier
504
+ - **Pay-as-you-go**: Beyond free credits, purchase AI Gateway Credits at any time with no obligation. Configure **auto top-up** to automatically add credits when your balance falls below a threshold
505
+ - **BYOK**: Use your own provider API keys with zero fees from AI Gateway
506
+
507
+ ## Multimodal Support
508
+
509
+ Text and image generation both route through the gateway. For embeddings, use a direct provider SDK.
510
+
511
+ ```ts
512
+ // Text — through gateway
513
+ const { text } = await generateText({
514
+ model: 'openai/gpt-5.4',
515
+ prompt: 'Hello',
516
+ })
517
+
518
+ // Image — through gateway (multimodal LLMs return images in result.files)
519
+ const result = await generateText({
520
+ model: 'google/gemini-3.1-flash-image-preview',
521
+ prompt: 'A sunset over the ocean',
522
+ })
523
+ const images = result.files.filter((f) => f.mediaType?.startsWith('image/'))
524
+
525
+ // Image-only models — through gateway with experimental_generateImage
526
+ import { experimental_generateImage as generateImage } from 'ai'
527
+ const { images: generated } = await generateImage({
528
+ model: 'google/imagen-4.0-generate-001',
529
+ prompt: 'A sunset',
530
+ })
531
+ ```
532
+
533
+ **Default image model**: `google/gemini-3.1-flash-image-preview` — fast multimodal image generation via gateway.
534
+
535
+ See [AI Gateway Image Generation docs](https://vercel.com/docs/ai-gateway/capabilities/image-generation) for all supported models and integration methods.
536
+
537
+ ## Key Benefits
538
+
539
+ 1. **Unified API**: One interface for all providers, no provider-specific code
540
+ 2. **Automatic failover**: If a provider is down, requests route to the next
541
+ 3. **Cost tracking**: Per-user, per-feature attribution with tags
542
+ 4. **Observability**: Built-in monitoring of all model calls
543
+ 5. **Low latency**: <20ms routing overhead
544
+ 6. **No lock-in**: Switch models/providers by changing a string
545
+
546
+ ## When to Use AI Gateway
547
+
548
+ | Scenario | Use Gateway? |
549
+ |----------|-------------|
550
+ | Production app with AI features | Yes — failover, cost tracking |
551
+ | Prototyping with single provider | Optional — direct provider works fine |
552
+ | Multi-provider setup | Yes — unified routing |
553
+ | Need provider-specific features | Use direct provider SDK + Gateway as fallback |
554
+ | Cost tracking and budgeting | Yes — user tracking and tags |
555
+ | Multi-tenant SaaS | Yes — per-user rate limiting and audit |
556
+ | Compliance requirements | Yes — audit logging and log drains |
557
+
558
+ ## Official Documentation
559
+
560
+ - [AI Gateway](https://vercel.com/docs/ai-gateway)
561
+ - [Providers and Models](https://ai-sdk.dev/docs/foundations/providers-and-models)
562
+ - [AI SDK Core](https://ai-sdk.dev/docs/ai-sdk-core)
563
+ - [GitHub: AI SDK](https://github.com/vercel/ai)