@ngxtm/devkit 3.6.1 → 3.8.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 (773) hide show
  1. package/SKILLS_INDEX.md +2419 -634
  2. package/cli/update.js +145 -77
  3. package/merged-commands/3d-web-experience.md +254 -0
  4. package/merged-commands/ab-test-setup.md +232 -0
  5. package/merged-commands/accessibility-compliance-accessibility-audit.md +42 -0
  6. package/merged-commands/active-directory-attacks.md +383 -0
  7. package/merged-commands/address-github-comments.md +55 -0
  8. package/merged-commands/aesthetic.md +134 -0
  9. package/merged-commands/agent-evaluation.md +64 -0
  10. package/merged-commands/agent-framework-azure-hosted-agents.md +332 -0
  11. package/merged-commands/agent-manager-skill.md +40 -0
  12. package/merged-commands/agent-memory-mcp.md +82 -0
  13. package/merged-commands/agent-memory-systems.md +67 -0
  14. package/merged-commands/agent-orchestration-improve-agent.md +349 -0
  15. package/merged-commands/agent-orchestration-multi-agent-optimize.md +239 -0
  16. package/merged-commands/agent-tool-builder.md +53 -0
  17. package/merged-commands/agile-product-owner.md +31 -0
  18. package/merged-commands/ai-agents-architect.md +90 -0
  19. package/merged-commands/ai-artist.md +75 -0
  20. package/merged-commands/ai-engineer.md +171 -0
  21. package/merged-commands/ai-multimodal.md +109 -0
  22. package/merged-commands/ai-product.md +54 -0
  23. package/merged-commands/ai-wrapper-product.md +273 -0
  24. package/merged-commands/airflow-dag-patterns.md +41 -0
  25. package/merged-commands/algolia-search.md +66 -0
  26. package/merged-commands/algorithmic-art.md +405 -0
  27. package/merged-commands/analytics-tracking.md +404 -0
  28. package/merged-commands/angular-architect.md +97 -0
  29. package/merged-commands/angular-migration.md +428 -0
  30. package/merged-commands/anti-reversing-techniques.md +42 -0
  31. package/merged-commands/api-design-principles.md +37 -0
  32. package/merged-commands/api-designer.md +101 -0
  33. package/merged-commands/api-documentation-generator.md +484 -0
  34. package/merged-commands/api-documenter.md +184 -0
  35. package/merged-commands/api-fuzzing-bug-bounty.md +433 -0
  36. package/merged-commands/api-patterns.md +81 -0
  37. package/merged-commands/api-security-best-practices.md +907 -0
  38. package/merged-commands/api-testing-observability-api-mock.md +46 -0
  39. package/merged-commands/app-builder.md +75 -0
  40. package/merged-commands/app-store-optimization.md +403 -0
  41. package/merged-commands/application-performance-performance-optimization.md +154 -0
  42. package/merged-commands/architect-review.md +174 -0
  43. package/merged-commands/architecture-decision-records.md +441 -0
  44. package/merged-commands/architecture-designer.md +89 -0
  45. package/merged-commands/architecture-patterns.md +37 -0
  46. package/merged-commands/architecture.md +55 -0
  47. package/merged-commands/arm-cortex-expert.md +306 -0
  48. package/merged-commands/artifacts-builder.md +74 -0
  49. package/merged-commands/ask-questions-if-underspecified.md +81 -0
  50. package/merged-commands/async-python-patterns.md +39 -0
  51. package/merged-commands/atlassian-mcp.md +100 -0
  52. package/merged-commands/attack-tree-construction.md +38 -0
  53. package/merged-commands/auth-implementation-patterns.md +39 -0
  54. package/merged-commands/automate-whatsapp.md +257 -0
  55. package/merged-commands/autonomous-agent-patterns.md +761 -0
  56. package/merged-commands/autonomous-agents.md +68 -0
  57. package/merged-commands/avalonia-layout-zafiro.md +59 -0
  58. package/merged-commands/avalonia-viewmodels-zafiro.md +29 -0
  59. package/merged-commands/avalonia-zafiro-development.md +29 -0
  60. package/merged-commands/aws-agentic-ai.md +117 -0
  61. package/merged-commands/aws-cdk-development.md +278 -0
  62. package/merged-commands/aws-cost-operations.md +317 -0
  63. package/merged-commands/aws-penetration-testing.md +405 -0
  64. package/merged-commands/aws-serverless-eda.md +757 -0
  65. package/merged-commands/aws-serverless.md +323 -0
  66. package/merged-commands/aws-skills.md +22 -0
  67. package/merged-commands/azd-deployment.md +296 -0
  68. package/merged-commands/azure-ai-agents-python.md +277 -0
  69. package/merged-commands/azure-ai-search-python.md +198 -0
  70. package/merged-commands/azure-ai-voicelive-skill.md +294 -0
  71. package/merged-commands/azure-functions.md +42 -0
  72. package/merged-commands/backend-architect.md +333 -0
  73. package/merged-commands/backend-dev-guidelines.md +342 -0
  74. package/merged-commands/backend-development-feature-development.md +180 -0
  75. package/merged-commands/backend-development.md +155 -0
  76. package/merged-commands/backend-security-coder.md +156 -0
  77. package/merged-commands/backtesting-frameworks.md +39 -0
  78. package/merged-commands/bash-defensive-patterns.md +43 -0
  79. package/merged-commands/bash-linux.md +199 -0
  80. package/merged-commands/bash-pro.md +310 -0
  81. package/merged-commands/bats-testing-patterns.md +34 -0
  82. package/merged-commands/bazel-build-optimization.md +397 -0
  83. package/merged-commands/beautiful-prose.md +22 -0
  84. package/merged-commands/behavioral-modes.md +242 -0
  85. package/merged-commands/best-practices.md +500 -0
  86. package/merged-commands/better-auth.md +204 -0
  87. package/merged-commands/billing-automation.md +42 -0
  88. package/merged-commands/binary-analysis-patterns.md +450 -0
  89. package/merged-commands/blockchain-developer.md +208 -0
  90. package/merged-commands/blockrun.md +292 -0
  91. package/merged-commands/brainstorming.md +230 -0
  92. package/merged-commands/brand-guidelines-anthropic.md +73 -0
  93. package/merged-commands/brand-guidelines-community.md +73 -0
  94. package/merged-commands/brand-guidelines.md +73 -0
  95. package/merged-commands/broken-authentication.md +476 -0
  96. package/merged-commands/browser-automation.md +70 -0
  97. package/merged-commands/browser-extension-builder.md +261 -0
  98. package/merged-commands/building-ai-agent-on-cloudflare.md +391 -0
  99. package/merged-commands/building-mcp-server-on-cloudflare.md +265 -0
  100. package/merged-commands/bullmq-specialist.md +57 -0
  101. package/merged-commands/bun-development.md +691 -0
  102. package/merged-commands/burp-suite-testing.md +380 -0
  103. package/merged-commands/business-analyst.md +182 -0
  104. package/merged-commands/busybox-on-windows.md +30 -0
  105. package/merged-commands/c-pro.md +56 -0
  106. package/merged-commands/c4-architecture-c4-architecture.md +389 -0
  107. package/merged-commands/c4-code.md +244 -0
  108. package/merged-commands/c4-component.md +153 -0
  109. package/merged-commands/c4-container.md +171 -0
  110. package/merged-commands/c4-context.md +150 -0
  111. package/merged-commands/canvas-design.md +130 -0
  112. package/merged-commands/cc-skill-backend-patterns.md +584 -0
  113. package/merged-commands/cc-skill-clickhouse-io.md +431 -0
  114. package/merged-commands/cc-skill-coding-standards.md +522 -0
  115. package/merged-commands/cc-skill-continuous-learning.md +10 -0
  116. package/merged-commands/cc-skill-frontend-patterns.md +633 -0
  117. package/merged-commands/cc-skill-project-guidelines-example.md +352 -0
  118. package/merged-commands/cc-skill-security-review.md +496 -0
  119. package/merged-commands/cc-skill-strategic-compact.md +10 -0
  120. package/merged-commands/changelog-automation.md +38 -0
  121. package/merged-commands/changelog-generator.md +104 -0
  122. package/merged-commands/chaos-engineer.md +98 -0
  123. package/merged-commands/chrome-devtools.md +407 -0
  124. package/merged-commands/cicd-automation-workflow-automate.md +51 -0
  125. package/merged-commands/clarity-gate.md +22 -0
  126. package/merged-commands/claude-ally-health.md +22 -0
  127. package/merged-commands/claude-code-guide.md +68 -0
  128. package/merged-commands/claude-d3js-skill.md +820 -0
  129. package/merged-commands/claude-scientific-skills.md +22 -0
  130. package/merged-commands/claude-speed-reader.md +22 -0
  131. package/merged-commands/claude-win11-speckit-update-skill.md +22 -0
  132. package/merged-commands/clean-code.md +201 -0
  133. package/merged-commands/clerk-auth.md +56 -0
  134. package/merged-commands/cli-developer.md +97 -0
  135. package/merged-commands/cloud-architect.md +135 -0
  136. package/merged-commands/cloud-penetration-testing.md +501 -0
  137. package/merged-commands/cloudflare-expert.md +227 -0
  138. package/merged-commands/code-documentation-code-explain.md +46 -0
  139. package/merged-commands/code-documentation-doc-generate.md +48 -0
  140. package/merged-commands/code-documentation.md +263 -0
  141. package/merged-commands/code-documenter.md +95 -0
  142. package/merged-commands/code-refactoring-context-restore.md +179 -0
  143. package/merged-commands/code-refactoring-refactor-clean.md +51 -0
  144. package/merged-commands/code-refactoring-tech-debt.md +386 -0
  145. package/merged-commands/code-refactoring.md +209 -0
  146. package/merged-commands/code-review-ai-ai-review.md +450 -0
  147. package/merged-commands/code-review-checklist.md +444 -0
  148. package/merged-commands/code-review-excellence.md +40 -0
  149. package/merged-commands/code-review.md +121 -0
  150. package/merged-commands/code-reviewer.md +178 -0
  151. package/merged-commands/codebase-cleanup-deps-audit.md +51 -0
  152. package/merged-commands/codebase-cleanup-refactor-clean.md +51 -0
  153. package/merged-commands/codebase-cleanup-tech-debt.md +386 -0
  154. package/merged-commands/codex-review.md +37 -0
  155. package/merged-commands/commit.md +171 -0
  156. package/merged-commands/competitive-ads-extractor.md +293 -0
  157. package/merged-commands/competitive-landscape.md +34 -0
  158. package/merged-commands/competitor-alternatives.md +750 -0
  159. package/merged-commands/comprehensive-review-full-review.md +146 -0
  160. package/merged-commands/comprehensive-review-pr-enhance.md +46 -0
  161. package/merged-commands/computer-use-agents.md +315 -0
  162. package/merged-commands/concise-planning.md +62 -0
  163. package/merged-commands/conductor-implement.md +388 -0
  164. package/merged-commands/conductor-manage.md +39 -0
  165. package/merged-commands/conductor-new-track.md +433 -0
  166. package/merged-commands/conductor-revert.md +372 -0
  167. package/merged-commands/conductor-setup.md +426 -0
  168. package/merged-commands/conductor-status.md +338 -0
  169. package/merged-commands/conductor-validator.md +62 -0
  170. package/merged-commands/content-creator.md +248 -0
  171. package/merged-commands/content-marketer.md +170 -0
  172. package/merged-commands/content-research-writer.md +538 -0
  173. package/merged-commands/context-compression.md +266 -0
  174. package/merged-commands/context-degradation.md +238 -0
  175. package/merged-commands/context-driven-development.md +400 -0
  176. package/merged-commands/context-engineering.md +107 -0
  177. package/merged-commands/context-fundamentals.md +192 -0
  178. package/merged-commands/context-management-context-restore.md +179 -0
  179. package/merged-commands/context-management-context-save.md +177 -0
  180. package/merged-commands/context-manager.md +185 -0
  181. package/merged-commands/context-optimization.md +186 -0
  182. package/merged-commands/context-window-management.md +53 -0
  183. package/merged-commands/context7-auto-research.md +36 -0
  184. package/merged-commands/conversation-memory.md +61 -0
  185. package/merged-commands/copy-editing.md +439 -0
  186. package/merged-commands/copywriting.md +225 -0
  187. package/merged-commands/core-components.md +264 -0
  188. package/merged-commands/cosmos-db-python-skill.md +198 -0
  189. package/merged-commands/cost-optimization.md +286 -0
  190. package/merged-commands/cpp-pro.md +59 -0
  191. package/merged-commands/cqrs-implementation.md +35 -0
  192. package/merged-commands/create-pr.md +192 -0
  193. package/merged-commands/crewai.md +243 -0
  194. package/merged-commands/csharp-developer.md +94 -0
  195. package/merged-commands/csharp-pro.md +59 -0
  196. package/merged-commands/culture-index.md +43 -0
  197. package/merged-commands/customer-support.md +170 -0
  198. package/merged-commands/daily-news-report.md +356 -0
  199. package/merged-commands/data-engineer.md +224 -0
  200. package/merged-commands/data-engineering-data-driven-feature.md +182 -0
  201. package/merged-commands/data-engineering-data-pipeline.md +201 -0
  202. package/merged-commands/data-quality-frameworks.md +40 -0
  203. package/merged-commands/data-scientist.md +199 -0
  204. package/merged-commands/data-storytelling.md +465 -0
  205. package/merged-commands/database-admin.md +165 -0
  206. package/merged-commands/database-architect.md +268 -0
  207. package/merged-commands/database-cloud-optimization-cost-optimize.md +44 -0
  208. package/merged-commands/database-design.md +52 -0
  209. package/merged-commands/database-migration.md +436 -0
  210. package/merged-commands/database-migrations-migration-observability.md +420 -0
  211. package/merged-commands/database-migrations-sql-migrations.md +53 -0
  212. package/merged-commands/database-optimizer.md +167 -0
  213. package/merged-commands/databases.md +232 -0
  214. package/merged-commands/dbt-transformation-patterns.md +34 -0
  215. package/merged-commands/debugger.md +49 -0
  216. package/merged-commands/debugging-strategies.md +34 -0
  217. package/merged-commands/debugging-toolkit-smart-debug.md +197 -0
  218. package/merged-commands/debugging-wizard.md +93 -0
  219. package/merged-commands/debugging.md +84 -0
  220. package/merged-commands/deep-research.md +114 -0
  221. package/merged-commands/defi-protocol-templates.md +466 -0
  222. package/merged-commands/dependency-management-deps-audit.md +44 -0
  223. package/merged-commands/dependency-upgrade.md +421 -0
  224. package/merged-commands/deployment-engineer.md +170 -0
  225. package/merged-commands/deployment-pipeline-design.md +371 -0
  226. package/merged-commands/deployment-procedures.md +241 -0
  227. package/merged-commands/deployment-validation-config-validate.md +496 -0
  228. package/merged-commands/design-md.md +178 -0
  229. package/merged-commands/design-orchestration.md +167 -0
  230. package/merged-commands/developer-growth-analysis.md +322 -0
  231. package/merged-commands/devops-engineer.md +92 -0
  232. package/merged-commands/devops-troubleshooter.md +161 -0
  233. package/merged-commands/devops.md +285 -0
  234. package/merged-commands/discord-bot-architect.md +277 -0
  235. package/merged-commands/dispatching-parallel-agents.md +180 -0
  236. package/merged-commands/distributed-debugging-debug-trace.md +44 -0
  237. package/merged-commands/distributed-tracing.md +450 -0
  238. package/merged-commands/django-expert.md +89 -0
  239. package/merged-commands/django-pro.md +180 -0
  240. package/merged-commands/doc-coauthoring.md +375 -0
  241. package/merged-commands/docker-expert.md +409 -0
  242. package/merged-commands/docs-architect.md +98 -0
  243. package/merged-commands/docs-seeker.md +102 -0
  244. package/merged-commands/documentation-generation-doc-generate.md +48 -0
  245. package/merged-commands/documentation-templates.md +194 -0
  246. package/merged-commands/docx-official.md +197 -0
  247. package/merged-commands/docx.md +197 -0
  248. package/merged-commands/domain-name-brainstormer.md +212 -0
  249. package/merged-commands/dotnet-architect.md +197 -0
  250. package/merged-commands/dotnet-backend-patterns.md +37 -0
  251. package/merged-commands/dotnet-core-expert.md +96 -0
  252. package/merged-commands/dx-optimizer.md +83 -0
  253. package/merged-commands/e2e-testing-patterns.md +41 -0
  254. package/merged-commands/elixir-pro.md +59 -0
  255. package/merged-commands/email-sequence.md +925 -0
  256. package/merged-commands/email-systems.md +54 -0
  257. package/merged-commands/embedded-systems.md +98 -0
  258. package/merged-commands/embedding-strategies.md +491 -0
  259. package/merged-commands/employment-contract-templates.md +39 -0
  260. package/merged-commands/environment-setup-guide.md +479 -0
  261. package/merged-commands/error-debugging-error-analysis.md +47 -0
  262. package/merged-commands/error-debugging-error-trace.md +43 -0
  263. package/merged-commands/error-debugging-multi-agent-review.md +216 -0
  264. package/merged-commands/error-detective.md +53 -0
  265. package/merged-commands/error-diagnostics-error-analysis.md +47 -0
  266. package/merged-commands/error-diagnostics-error-trace.md +48 -0
  267. package/merged-commands/error-diagnostics-smart-debug.md +197 -0
  268. package/merged-commands/error-handling-patterns.md +35 -0
  269. package/merged-commands/ethical-hacking-methodology.md +466 -0
  270. package/merged-commands/evaluation.md +238 -0
  271. package/merged-commands/event-sourcing-architect.md +58 -0
  272. package/merged-commands/event-store-design.md +449 -0
  273. package/merged-commands/exa-search.md +36 -0
  274. package/merged-commands/executing-plans.md +76 -0
  275. package/merged-commands/expo-app-design.md +22 -0
  276. package/merged-commands/expo-deployment.md +72 -0
  277. package/merged-commands/fal-audio.md +22 -0
  278. package/merged-commands/fal-generate.md +22 -0
  279. package/merged-commands/fal-image-edit.md +22 -0
  280. package/merged-commands/fal-platform.md +22 -0
  281. package/merged-commands/fal-upscale.md +22 -0
  282. package/merged-commands/fal-workflow.md +22 -0
  283. package/merged-commands/fastapi-expert.md +93 -0
  284. package/merged-commands/fastapi-pro.md +192 -0
  285. package/merged-commands/fastapi-router.md +52 -0
  286. package/merged-commands/fastapi-templates.md +32 -0
  287. package/merged-commands/feature-forge.md +90 -0
  288. package/merged-commands/ffuf-claude-skill.md +22 -0
  289. package/merged-commands/file-organizer.md +250 -0
  290. package/merged-commands/file-path-traversal.md +486 -0
  291. package/merged-commands/file-uploads.md +22 -0
  292. package/merged-commands/find-bugs.md +86 -0
  293. package/merged-commands/fine-tuning-expert.md +98 -0
  294. package/merged-commands/finishing-a-development-branch.md +200 -0
  295. package/merged-commands/firebase.md +56 -0
  296. package/merged-commands/firecrawl-scraper.md +37 -0
  297. package/merged-commands/firmware-analyst.md +320 -0
  298. package/merged-commands/fix-review.md +53 -0
  299. package/merged-commands/fixing.md +72 -0
  300. package/merged-commands/flutter-expert.md +200 -0
  301. package/merged-commands/form-cro.md +441 -0
  302. package/merged-commands/foundry-iq-agent.md +15 -0
  303. package/merged-commands/foundry-iq-python.md +275 -0
  304. package/merged-commands/foundry-nextgen-frontend.md +555 -0
  305. package/merged-commands/foundry-sdk-python.md +290 -0
  306. package/merged-commands/fp-ts-errors.md +856 -0
  307. package/merged-commands/fp-ts-pragmatic.md +598 -0
  308. package/merged-commands/fp-ts-react.md +796 -0
  309. package/merged-commands/framework-migration-code-migrate.md +48 -0
  310. package/merged-commands/framework-migration-deps-upgrade.md +48 -0
  311. package/merged-commands/framework-migration-legacy-modernize.md +132 -0
  312. package/merged-commands/free-tool-strategy.md +576 -0
  313. package/merged-commands/frontend-design.md +272 -0
  314. package/merged-commands/frontend-dev-guidelines.md +359 -0
  315. package/merged-commands/frontend-developer.md +171 -0
  316. package/merged-commands/frontend-development.md +399 -0
  317. package/merged-commands/frontend-mobile-development-component-scaffold.md +403 -0
  318. package/merged-commands/frontend-mobile-security-xss-scan.md +322 -0
  319. package/merged-commands/frontend-security-coder.md +170 -0
  320. package/merged-commands/frontend-slides.md +770 -0
  321. package/merged-commands/full-stack-orchestration-full-stack-feature.md +135 -0
  322. package/merged-commands/fullstack-guardian.md +99 -0
  323. package/merged-commands/game-developer.md +94 -0
  324. package/merged-commands/game-development.md +167 -0
  325. package/merged-commands/gcp-cloud-run.md +288 -0
  326. package/merged-commands/gdpr-data-handling.md +33 -0
  327. package/merged-commands/geo-fundamentals.md +156 -0
  328. package/merged-commands/git-advanced-workflows.md +412 -0
  329. package/merged-commands/git-pr-workflows-git-workflow.md +140 -0
  330. package/merged-commands/git-pr-workflows-onboard.md +416 -0
  331. package/merged-commands/git-pr-workflows-pr-enhance.md +48 -0
  332. package/merged-commands/git-pushing.md +33 -0
  333. package/merged-commands/github-actions-templates.md +345 -0
  334. package/merged-commands/github-workflow-automation.md +846 -0
  335. package/merged-commands/gitlab-ci-patterns.md +283 -0
  336. package/merged-commands/gitops-workflow.md +303 -0
  337. package/merged-commands/go-concurrency-patterns.md +33 -0
  338. package/merged-commands/godot-gdscript-patterns.md +33 -0
  339. package/merged-commands/golang-pro.md +179 -0
  340. package/merged-commands/google-adk-python.md +243 -0
  341. package/merged-commands/grafana-dashboards.md +381 -0
  342. package/merged-commands/graphql-architect.md +182 -0
  343. package/merged-commands/graphql.md +68 -0
  344. package/merged-commands/haskell-pro.md +56 -0
  345. package/merged-commands/helm-chart-scaffolding.md +34 -0
  346. package/merged-commands/hr-pro.md +126 -0
  347. package/merged-commands/html-injection-testing.md +498 -0
  348. package/merged-commands/hubspot-integration.md +42 -0
  349. package/merged-commands/hugging-face-cli.md +198 -0
  350. package/merged-commands/hugging-face-jobs.md +1038 -0
  351. package/merged-commands/hybrid-cloud-architect.md +168 -0
  352. package/merged-commands/hybrid-cloud-networking.md +238 -0
  353. package/merged-commands/hybrid-search-implementation.md +32 -0
  354. package/merged-commands/i18n-localization.md +154 -0
  355. package/merged-commands/idor-testing.md +442 -0
  356. package/merged-commands/image-enhancer.md +99 -0
  357. package/merged-commands/imagen.md +77 -0
  358. package/merged-commands/incident-responder.md +213 -0
  359. package/merged-commands/incident-response-incident-response.md +168 -0
  360. package/merged-commands/incident-response-smart-fix.md +29 -0
  361. package/merged-commands/incident-runbook-templates.md +395 -0
  362. package/merged-commands/infinite-gratitude.md +26 -0
  363. package/merged-commands/inngest.md +55 -0
  364. package/merged-commands/interactive-portfolio.md +223 -0
  365. package/merged-commands/internal-comms-anthropic.md +32 -0
  366. package/merged-commands/internal-comms-community.md +32 -0
  367. package/merged-commands/internal-comms.md +32 -0
  368. package/merged-commands/invoice-organizer.md +446 -0
  369. package/merged-commands/ios-developer.md +219 -0
  370. package/merged-commands/issue-creator.md +137 -0
  371. package/merged-commands/istio-traffic-management.md +337 -0
  372. package/merged-commands/iterate-pr.md +150 -0
  373. package/merged-commands/java-architect.md +95 -0
  374. package/merged-commands/java-pro.md +177 -0
  375. package/merged-commands/javascript-mastery.md +645 -0
  376. package/merged-commands/javascript-pro.md +57 -0
  377. package/merged-commands/javascript-testing-patterns.md +35 -0
  378. package/merged-commands/javascript-typescript-typescript-scaffold.md +361 -0
  379. package/merged-commands/javascript-typescript.md +142 -0
  380. package/merged-commands/jira-issues.md +181 -0
  381. package/merged-commands/job-application.md +90 -0
  382. package/merged-commands/julia-pro.md +209 -0
  383. package/merged-commands/k8s-manifest-generator.md +35 -0
  384. package/merged-commands/k8s-security-policies.md +346 -0
  385. package/merged-commands/kaizen.md +730 -0
  386. package/merged-commands/kotlin-specialist.md +94 -0
  387. package/merged-commands/kpi-dashboard-design.md +440 -0
  388. package/merged-commands/kubernetes-architect.md +170 -0
  389. package/merged-commands/kubernetes-specialist.md +117 -0
  390. package/merged-commands/langchain-architecture.md +350 -0
  391. package/merged-commands/langfuse.md +238 -0
  392. package/merged-commands/langgraph.md +287 -0
  393. package/merged-commands/laravel-specialist.md +101 -0
  394. package/merged-commands/last30days.md +421 -0
  395. package/merged-commands/launch-strategy.md +344 -0
  396. package/merged-commands/lead-research-assistant.md +199 -0
  397. package/merged-commands/learn.md +476 -0
  398. package/merged-commands/legacy-modernizer.md +53 -0
  399. package/merged-commands/legal-advisor.md +70 -0
  400. package/merged-commands/linear-claude-skill.md +543 -0
  401. package/merged-commands/linkerd-patterns.md +321 -0
  402. package/merged-commands/lint-and-validate.md +45 -0
  403. package/merged-commands/linux-privilege-escalation.md +504 -0
  404. package/merged-commands/linux-shell-scripting.md +504 -0
  405. package/merged-commands/llm-app-patterns.md +760 -0
  406. package/merged-commands/llm-application-dev-ai-assistant.md +35 -0
  407. package/merged-commands/llm-application-dev-langchain-agent.md +246 -0
  408. package/merged-commands/llm-application-dev-prompt-optimize.md +37 -0
  409. package/merged-commands/llm-application-dev.md +216 -0
  410. package/merged-commands/llm-evaluation.md +483 -0
  411. package/merged-commands/loki-mode.md +721 -0
  412. package/merged-commands/machine-learning-ops-ml-pipeline.md +314 -0
  413. package/merged-commands/makepad-skills.md +22 -0
  414. package/merged-commands/malware-analyst.md +247 -0
  415. package/merged-commands/markdown-novel-viewer.md +281 -0
  416. package/merged-commands/market-sizing-analysis.md +425 -0
  417. package/merged-commands/marketing-ideas.md +221 -0
  418. package/merged-commands/marketing-psychology.md +255 -0
  419. package/merged-commands/mcp-builder.md +236 -0
  420. package/merged-commands/mcp-developer.md +94 -0
  421. package/merged-commands/mcp-management.md +209 -0
  422. package/merged-commands/media-processing.md +358 -0
  423. package/merged-commands/meeting-insights-analyzer.md +327 -0
  424. package/merged-commands/memory-forensics.md +491 -0
  425. package/merged-commands/memory-safety-patterns.md +33 -0
  426. package/merged-commands/memory-systems.md +228 -0
  427. package/merged-commands/mermaid-expert.md +59 -0
  428. package/merged-commands/mermaidjs-v11.md +115 -0
  429. package/merged-commands/metasploit-framework.md +478 -0
  430. package/merged-commands/micro-saas-launcher.md +212 -0
  431. package/merged-commands/microservices-architect.md +102 -0
  432. package/merged-commands/microservices-patterns.md +35 -0
  433. package/merged-commands/minecraft-bukkit-pro.md +126 -0
  434. package/merged-commands/ml-engineer.md +168 -0
  435. package/merged-commands/ml-pipeline-workflow.md +257 -0
  436. package/merged-commands/ml-pipeline.md +111 -0
  437. package/merged-commands/mlops-engineer.md +219 -0
  438. package/merged-commands/mobile-design.md +284 -0
  439. package/merged-commands/mobile-developer.md +205 -0
  440. package/merged-commands/mobile-development.md +212 -0
  441. package/merged-commands/mobile-security-coder.md +184 -0
  442. package/merged-commands/modern-javascript-patterns.md +35 -0
  443. package/merged-commands/monitoring-expert.md +92 -0
  444. package/merged-commands/monorepo-architect.md +61 -0
  445. package/merged-commands/monorepo-management.md +35 -0
  446. package/merged-commands/moodle-external-api-development.md +597 -0
  447. package/merged-commands/mtls-configuration.md +359 -0
  448. package/merged-commands/multi-agent-brainstorming.md +256 -0
  449. package/merged-commands/multi-agent-patterns.md +262 -0
  450. package/merged-commands/multi-cloud-architecture.md +189 -0
  451. package/merged-commands/multi-platform-apps-multi-platform.md +203 -0
  452. package/merged-commands/n8n-code-python.md +750 -0
  453. package/merged-commands/n8n-mcp-tools-expert.md +654 -0
  454. package/merged-commands/n8n-node-configuration.md +796 -0
  455. package/merged-commands/nanobanana-ppt-skills.md +22 -0
  456. package/merged-commands/neon-postgres.md +56 -0
  457. package/merged-commands/nestjs-expert.md +552 -0
  458. package/merged-commands/network-101.md +342 -0
  459. package/merged-commands/network-engineer.md +169 -0
  460. package/merged-commands/nextjs-app-router-patterns.md +33 -0
  461. package/merged-commands/nextjs-best-practices.md +203 -0
  462. package/merged-commands/nextjs-developer.md +97 -0
  463. package/merged-commands/nextjs-supabase-auth.md +56 -0
  464. package/merged-commands/nft-standards.md +395 -0
  465. package/merged-commands/nodejs-backend-patterns.md +35 -0
  466. package/merged-commands/nodejs-best-practices.md +333 -0
  467. package/merged-commands/nosql-expert.md +111 -0
  468. package/merged-commands/notebooklm-skill.md +269 -0
  469. package/merged-commands/notebooklm.md +269 -0
  470. package/merged-commands/notion-template-business.md +216 -0
  471. package/merged-commands/nx-workspace-patterns.md +464 -0
  472. package/merged-commands/observability-engineer.md +237 -0
  473. package/merged-commands/observability-monitoring-monitor-setup.md +48 -0
  474. package/merged-commands/observability-monitoring-slo-implement.md +43 -0
  475. package/merged-commands/observe-whatsapp.md +109 -0
  476. package/merged-commands/obsidian-clipper-template-creator.md +64 -0
  477. package/merged-commands/on-call-handoff-patterns.md +453 -0
  478. package/merged-commands/onboarding-cro.md +433 -0
  479. package/merged-commands/openapi-spec-generation.md +33 -0
  480. package/merged-commands/page-cro.md +343 -0
  481. package/merged-commands/paid-ads.md +551 -0
  482. package/merged-commands/pandas-pro.md +96 -0
  483. package/merged-commands/parallel-agents.md +175 -0
  484. package/merged-commands/payment-integration.md +77 -0
  485. package/merged-commands/paypal-integration.md +479 -0
  486. package/merged-commands/paywall-upgrade-cro.md +570 -0
  487. package/merged-commands/pci-compliance.md +478 -0
  488. package/merged-commands/pdf-official.md +294 -0
  489. package/merged-commands/pdf.md +294 -0
  490. package/merged-commands/pentest-checklist.md +334 -0
  491. package/merged-commands/pentest-commands.md +438 -0
  492. package/merged-commands/performance-engineer.md +180 -0
  493. package/merged-commands/performance-profiling.md +143 -0
  494. package/merged-commands/performance-testing-review-ai-review.md +450 -0
  495. package/merged-commands/performance-testing-review-multi-agent-review.md +216 -0
  496. package/merged-commands/personal-tool-builder.md +289 -0
  497. package/merged-commands/php-pro.md +63 -0
  498. package/merged-commands/plaid-fintech.md +50 -0
  499. package/merged-commands/plan-writing.md +152 -0
  500. package/merged-commands/planning-with-files.md +211 -0
  501. package/merged-commands/planning.md +95 -0
  502. package/merged-commands/plans-kanban.md +166 -0
  503. package/merged-commands/playwright-expert.md +87 -0
  504. package/merged-commands/playwright-skill.md +453 -0
  505. package/merged-commands/podcast-generation.md +121 -0
  506. package/merged-commands/popup-cro.md +346 -0
  507. package/merged-commands/posix-shell-pro.md +304 -0
  508. package/merged-commands/postgres-best-practices.md +57 -0
  509. package/merged-commands/postgres-pro.md +98 -0
  510. package/merged-commands/postgresql.md +230 -0
  511. package/merged-commands/postmortem-writing.md +386 -0
  512. package/merged-commands/powershell-windows.md +167 -0
  513. package/merged-commands/pptx-official.md +484 -0
  514. package/merged-commands/pptx.md +484 -0
  515. package/merged-commands/pricing-strategy.md +356 -0
  516. package/merged-commands/prisma-expert.md +355 -0
  517. package/merged-commands/privilege-escalation-methods.md +333 -0
  518. package/merged-commands/problem-solving.md +96 -0
  519. package/merged-commands/product-manager-toolkit.md +351 -0
  520. package/merged-commands/product-strategist.md +26 -0
  521. package/merged-commands/production-code-audit.md +540 -0
  522. package/merged-commands/programmatic-seo.md +351 -0
  523. package/merged-commands/projection-patterns.md +33 -0
  524. package/merged-commands/prometheus-configuration.md +404 -0
  525. package/merged-commands/prompt-caching.md +61 -0
  526. package/merged-commands/prompt-engineer.md +272 -0
  527. package/merged-commands/prompt-engineering-patterns.md +213 -0
  528. package/merged-commands/prompt-engineering.md +171 -0
  529. package/merged-commands/prompt-library.md +322 -0
  530. package/merged-commands/protocol-reverse-engineering.md +29 -0
  531. package/merged-commands/pydantic-models.md +58 -0
  532. package/merged-commands/pypict-skill.md +22 -0
  533. package/merged-commands/python-development-python-scaffold.md +331 -0
  534. package/merged-commands/python-development.md +139 -0
  535. package/merged-commands/python-packaging.md +36 -0
  536. package/merged-commands/python-patterns.md +441 -0
  537. package/merged-commands/python-performance-optimization.md +36 -0
  538. package/merged-commands/python-pro.md +158 -0
  539. package/merged-commands/python-testing-patterns.md +37 -0
  540. package/merged-commands/qa-regression.md +337 -0
  541. package/merged-commands/quant-analyst.md +53 -0
  542. package/merged-commands/radix-ui-design-system.md +847 -0
  543. package/merged-commands/raffle-winner-picker.md +159 -0
  544. package/merged-commands/rag-architect.md +100 -0
  545. package/merged-commands/rag-engineer.md +90 -0
  546. package/merged-commands/rag-implementation.md +421 -0
  547. package/merged-commands/rails-expert.md +97 -0
  548. package/merged-commands/react-best-practices.md +121 -0
  549. package/merged-commands/react-expert.md +98 -0
  550. package/merged-commands/react-flow-node.md +66 -0
  551. package/merged-commands/react-modernization.md +34 -0
  552. package/merged-commands/react-native-architecture.md +33 -0
  553. package/merged-commands/react-native-expert.md +88 -0
  554. package/merged-commands/react-patterns.md +198 -0
  555. package/merged-commands/react-state-management.md +441 -0
  556. package/merged-commands/react-ui-patterns.md +289 -0
  557. package/merged-commands/readme.md +775 -0
  558. package/merged-commands/receiving-code-review.md +213 -0
  559. package/merged-commands/red-team-tactics.md +199 -0
  560. package/merged-commands/red-team-tools.md +310 -0
  561. package/merged-commands/reference-builder.md +188 -0
  562. package/merged-commands/referral-program.md +602 -0
  563. package/merged-commands/remotion-best-practices.md +45 -0
  564. package/merged-commands/repomix.md +275 -0
  565. package/merged-commands/requesting-code-review.md +105 -0
  566. package/merged-commands/research-engineer.md +135 -0
  567. package/merged-commands/research.md +191 -0
  568. package/merged-commands/reverse-engineer.md +173 -0
  569. package/merged-commands/risk-manager.md +61 -0
  570. package/merged-commands/risk-metrics-calculation.md +33 -0
  571. package/merged-commands/ruby-pro.md +56 -0
  572. package/merged-commands/rust-async-patterns.md +33 -0
  573. package/merged-commands/rust-engineer.md +96 -0
  574. package/merged-commands/rust-pro.md +178 -0
  575. package/merged-commands/saga-orchestration.md +496 -0
  576. package/merged-commands/sales-automator.md +55 -0
  577. package/merged-commands/salesforce-developer.md +105 -0
  578. package/merged-commands/salesforce-development.md +51 -0
  579. package/merged-commands/sast-configuration.md +212 -0
  580. package/merged-commands/scala-pro.md +82 -0
  581. package/merged-commands/scanning-tools.md +589 -0
  582. package/merged-commands/schema-markup.md +360 -0
  583. package/merged-commands/screen-reader-testing.md +33 -0
  584. package/merged-commands/screenshots.md +401 -0
  585. package/merged-commands/scroll-experience.md +263 -0
  586. package/merged-commands/search-specialist.md +80 -0
  587. package/merged-commands/secrets-management.md +364 -0
  588. package/merged-commands/secure-code-guardian.md +93 -0
  589. package/merged-commands/security-auditor.md +169 -0
  590. package/merged-commands/security-bluebook-builder.md +22 -0
  591. package/merged-commands/security-compliance-compliance-check.md +55 -0
  592. package/merged-commands/security-requirement-extraction.md +33 -0
  593. package/merged-commands/security-reviewer.md +94 -0
  594. package/merged-commands/security-scanning-security-dependencies.md +43 -0
  595. package/merged-commands/security-scanning-security-hardening.md +147 -0
  596. package/merged-commands/security-scanning-security-sast.md +495 -0
  597. package/merged-commands/segment-cdp.md +50 -0
  598. package/merged-commands/senior-architect.md +209 -0
  599. package/merged-commands/senior-backend.md +209 -0
  600. package/merged-commands/senior-computer-vision.md +226 -0
  601. package/merged-commands/senior-data-engineer.md +226 -0
  602. package/merged-commands/senior-data-scientist.md +226 -0
  603. package/merged-commands/senior-devops.md +209 -0
  604. package/merged-commands/senior-frontend.md +209 -0
  605. package/merged-commands/senior-fullstack.md +209 -0
  606. package/merged-commands/senior-ml-engineer.md +226 -0
  607. package/merged-commands/senior-prompt-engineer.md +226 -0
  608. package/merged-commands/senior-qa.md +209 -0
  609. package/merged-commands/senior-secops.md +209 -0
  610. package/merged-commands/senior-security.md +209 -0
  611. package/merged-commands/seo-audit.md +487 -0
  612. package/merged-commands/seo-authority-builder.md +136 -0
  613. package/merged-commands/seo-cannibalization-detector.md +123 -0
  614. package/merged-commands/seo-content-auditor.md +83 -0
  615. package/merged-commands/seo-content-planner.md +108 -0
  616. package/merged-commands/seo-content-refresher.md +118 -0
  617. package/merged-commands/seo-content-writer.md +96 -0
  618. package/merged-commands/seo-fundamentals.md +173 -0
  619. package/merged-commands/seo-keyword-strategist.md +95 -0
  620. package/merged-commands/seo-meta-optimizer.md +92 -0
  621. package/merged-commands/seo-snippet-hunter.md +114 -0
  622. package/merged-commands/seo-structure-architect.md +108 -0
  623. package/merged-commands/sequential-thinking.md +94 -0
  624. package/merged-commands/server-management.md +161 -0
  625. package/merged-commands/service-mesh-expert.md +58 -0
  626. package/merged-commands/service-mesh-observability.md +395 -0
  627. package/merged-commands/sharp-edges.md +70 -0
  628. package/merged-commands/shellcheck-configuration.md +466 -0
  629. package/merged-commands/shodan-reconnaissance.md +503 -0
  630. package/merged-commands/shopify-apps.md +42 -0
  631. package/merged-commands/shopify-development.md +366 -0
  632. package/merged-commands/shopify-expert.md +102 -0
  633. package/merged-commands/signup-flow-cro.md +355 -0
  634. package/merged-commands/similarity-search-patterns.md +33 -0
  635. package/merged-commands/skill-creator.md +356 -0
  636. package/merged-commands/skill-developer.md +426 -0
  637. package/merged-commands/skill-rails-upgrade.md +408 -0
  638. package/merged-commands/skill-seekers.md +22 -0
  639. package/merged-commands/skill-share.md +80 -0
  640. package/merged-commands/slack-bot-builder.md +264 -0
  641. package/merged-commands/slack-gif-creator.md +254 -0
  642. package/merged-commands/slo-implementation.md +341 -0
  643. package/merged-commands/smtp-penetration-testing.md +500 -0
  644. package/merged-commands/social-content.md +807 -0
  645. package/merged-commands/software-architecture.md +75 -0
  646. package/merged-commands/solidity-security.md +34 -0
  647. package/merged-commands/spark-engineer.md +100 -0
  648. package/merged-commands/spark-optimization.md +427 -0
  649. package/merged-commands/spec-miner.md +88 -0
  650. package/merged-commands/spring-boot-engineer.md +104 -0
  651. package/merged-commands/sql-injection-testing.md +448 -0
  652. package/merged-commands/sql-optimization-patterns.md +35 -0
  653. package/merged-commands/sql-pro.md +173 -0
  654. package/merged-commands/sqlmap-database-pentesting.md +400 -0
  655. package/merged-commands/sre-engineer.md +98 -0
  656. package/merged-commands/ssh-penetration-testing.md +488 -0
  657. package/merged-commands/startup-analyst.md +328 -0
  658. package/merged-commands/startup-business-analyst-business-case.md +487 -0
  659. package/merged-commands/startup-business-analyst-financial-projections.md +353 -0
  660. package/merged-commands/startup-business-analyst-market-opportunity.md +240 -0
  661. package/merged-commands/startup-financial-modeling.md +467 -0
  662. package/merged-commands/startup-metrics-framework.md +34 -0
  663. package/merged-commands/stitch-ui-design.md +378 -0
  664. package/merged-commands/stride-analysis-patterns.md +33 -0
  665. package/merged-commands/stripe-integration.md +454 -0
  666. package/merged-commands/subagent-driven-development.md +240 -0
  667. package/merged-commands/superpowers-lab.md +22 -0
  668. package/merged-commands/swift-expert.md +94 -0
  669. package/merged-commands/swiftui-expert-skill.md +275 -0
  670. package/merged-commands/systematic-debugging.md +296 -0
  671. package/merged-commands/systems-programming-rust-project.md +440 -0
  672. package/merged-commands/tailwind-design-system.md +33 -0
  673. package/merged-commands/tailwind-patterns.md +269 -0
  674. package/merged-commands/tavily-web.md +36 -0
  675. package/merged-commands/tdd-orchestrator.md +205 -0
  676. package/merged-commands/tdd-workflow.md +149 -0
  677. package/merged-commands/tdd-workflows-tdd-cycle.md +221 -0
  678. package/merged-commands/tdd-workflows-tdd-green.md +73 -0
  679. package/merged-commands/tdd-workflows-tdd-red.md +164 -0
  680. package/merged-commands/tdd-workflows-tdd-refactor.md +187 -0
  681. package/merged-commands/team-collaboration-issue.md +37 -0
  682. package/merged-commands/team-collaboration-standup-notes.md +44 -0
  683. package/merged-commands/team-composition-analysis.md +413 -0
  684. package/merged-commands/telegram-bot-builder.md +254 -0
  685. package/merged-commands/telegram-mini-app.md +279 -0
  686. package/merged-commands/template-skill.md +6 -0
  687. package/merged-commands/temporal-python-pro.md +370 -0
  688. package/merged-commands/temporal-python-testing.md +170 -0
  689. package/merged-commands/terraform-engineer.md +97 -0
  690. package/merged-commands/terraform-module-library.md +261 -0
  691. package/merged-commands/terraform-skill.md +517 -0
  692. package/merged-commands/terraform-specialist.md +166 -0
  693. package/merged-commands/test-automator.md +224 -0
  694. package/merged-commands/test-driven-development.md +371 -0
  695. package/merged-commands/test-fixing.md +119 -0
  696. package/merged-commands/test-master.md +104 -0
  697. package/merged-commands/testing-patterns.md +259 -0
  698. package/merged-commands/theme-factory.md +59 -0
  699. package/merged-commands/threat-mitigation-mapping.md +33 -0
  700. package/merged-commands/threat-modeling-expert.md +60 -0
  701. package/merged-commands/threejs-skills.md +22 -0
  702. package/merged-commands/threejs.md +89 -0
  703. package/merged-commands/tool-design.md +318 -0
  704. package/merged-commands/top-web-vulnerabilities.md +543 -0
  705. package/merged-commands/track-management.md +38 -0
  706. package/merged-commands/trigger-dev.md +67 -0
  707. package/merged-commands/turborepo-caching.md +419 -0
  708. package/merged-commands/tutorial-engineer.md +139 -0
  709. package/merged-commands/twilio-communications.md +295 -0
  710. package/merged-commands/typescript-advanced-types.md +35 -0
  711. package/merged-commands/typescript-expert.md +429 -0
  712. package/merged-commands/typescript-pro.md +55 -0
  713. package/merged-commands/ui-design-system.md +32 -0
  714. package/merged-commands/ui-skills.md +22 -0
  715. package/merged-commands/ui-styling.md +321 -0
  716. package/merged-commands/ui-ux-designer.md +209 -0
  717. package/merged-commands/ui-ux-pro-max.md +351 -0
  718. package/merged-commands/ui-visual-validator.md +214 -0
  719. package/merged-commands/unit-testing-test-generate.md +319 -0
  720. package/merged-commands/unity-developer.md +230 -0
  721. package/merged-commands/unity-ecs-patterns.md +33 -0
  722. package/merged-commands/unreal-engine-cpp-pro.md +114 -0
  723. package/merged-commands/upgrading-expo.md +118 -0
  724. package/merged-commands/upstash-qstash.md +68 -0
  725. package/merged-commands/using-git-worktrees.md +217 -0
  726. package/merged-commands/using-neon.md +84 -0
  727. package/merged-commands/using-superpowers.md +87 -0
  728. package/merged-commands/uv-package-manager.md +37 -0
  729. package/merged-commands/ux-researcher-designer.md +30 -0
  730. package/merged-commands/varlock-claude-skill.md +22 -0
  731. package/merged-commands/vector-database-engineer.md +60 -0
  732. package/merged-commands/vector-index-tuning.md +42 -0
  733. package/merged-commands/vercel-deploy-claimable.md +120 -0
  734. package/merged-commands/vercel-deploy.md +22 -0
  735. package/merged-commands/vercel-deployment.md +79 -0
  736. package/merged-commands/verification-before-completion.md +139 -0
  737. package/merged-commands/vexor.md +22 -0
  738. package/merged-commands/video-downloader.md +106 -0
  739. package/merged-commands/viral-generator-builder.md +199 -0
  740. package/merged-commands/voice-agents.md +68 -0
  741. package/merged-commands/voice-ai-development.md +302 -0
  742. package/merged-commands/voice-ai-engine-development.md +721 -0
  743. package/merged-commands/vue-expert-js.md +91 -0
  744. package/merged-commands/vue-expert.md +374 -0
  745. package/merged-commands/vulnerability-scanner.md +276 -0
  746. package/merged-commands/wcag-audit-patterns.md +41 -0
  747. package/merged-commands/web-artifacts-builder.md +74 -0
  748. package/merged-commands/web-design-guidelines.md +36 -0
  749. package/merged-commands/web-frameworks.md +324 -0
  750. package/merged-commands/web-performance-optimization.md +646 -0
  751. package/merged-commands/web3-testing.md +427 -0
  752. package/merged-commands/webapp-testing.md +96 -0
  753. package/merged-commands/websocket-engineer.md +96 -0
  754. package/merged-commands/windows-privilege-escalation.md +496 -0
  755. package/merged-commands/wireshark-analysis.md +497 -0
  756. package/merged-commands/wordpress-penetration-testing.md +485 -0
  757. package/merged-commands/wordpress-pro.md +105 -0
  758. package/merged-commands/workflow-automation.md +68 -0
  759. package/merged-commands/workflow-orchestration-patterns.md +333 -0
  760. package/merged-commands/workflow-patterns.md +38 -0
  761. package/merged-commands/writing-plans.md +116 -0
  762. package/merged-commands/writing-skills.md +125 -0
  763. package/merged-commands/x-article-publisher-skill.md +22 -0
  764. package/merged-commands/xlsx-official.md +289 -0
  765. package/merged-commands/xlsx.md +289 -0
  766. package/merged-commands/xss-html-injection.md +499 -0
  767. package/merged-commands/youtube-transcript.md +415 -0
  768. package/merged-commands/zapier-make-patterns.md +67 -0
  769. package/merged-commands/zustand-store.md +68 -0
  770. package/package.json +1 -1
  771. package/scripts/generate-index.js +3 -1
  772. package/scripts/merge-commands.js +21 -0
  773. package/skills-index.json +2248 -463
@@ -0,0 +1,721 @@
1
+ ---
2
+ name: voice-ai-engine-development
3
+ description: "Build real-time conversational AI voice engines using async worker pipelines, streaming transcription, LLM agents, and TTS synthesis with interrupt handling and multi-provider support"
4
+ ---
5
+
6
+ # Voice AI Engine Development
7
+
8
+ ## Overview
9
+
10
+ This skill guides you through building production-ready voice AI engines with real-time conversation capabilities. Voice AI engines enable natural, bidirectional conversations between users and AI agents through streaming audio processing, speech-to-text transcription, LLM-powered responses, and text-to-speech synthesis.
11
+
12
+ The core architecture uses an async queue-based worker pipeline where each component runs independently and communicates via `asyncio.Queue` objects, enabling concurrent processing, interrupt handling, and real-time streaming at every stage.
13
+
14
+ ## When to Use This Skill
15
+
16
+ Use this skill when:
17
+ - Building real-time voice conversation systems
18
+ - Implementing voice assistants or chatbots
19
+ - Creating voice-enabled customer service agents
20
+ - Developing voice AI applications with interrupt capabilities
21
+ - Integrating multiple transcription, LLM, or TTS providers
22
+ - Working with streaming audio processing pipelines
23
+ - The user mentions Vocode, voice engines, or conversational AI
24
+
25
+ ## Core Architecture Principles
26
+
27
+ ### The Worker Pipeline Pattern
28
+
29
+ Every voice AI engine follows this pipeline:
30
+
31
+ ```
32
+ Audio In → Transcriber → Agent → Synthesizer → Audio Out
33
+ (Worker 1) (Worker 2) (Worker 3)
34
+ ```
35
+
36
+ **Key Benefits:**
37
+ - **Decoupling**: Workers only know about their input/output queues
38
+ - **Concurrency**: All workers run simultaneously via asyncio
39
+ - **Backpressure**: Queues automatically handle rate differences
40
+ - **Interruptibility**: Everything can be stopped mid-stream
41
+
42
+ ### Base Worker Pattern
43
+
44
+ Every worker follows this pattern:
45
+
46
+ ```python
47
+ class BaseWorker:
48
+ def __init__(self, input_queue, output_queue):
49
+ self.input_queue = input_queue # asyncio.Queue to consume from
50
+ self.output_queue = output_queue # asyncio.Queue to produce to
51
+ self.active = False
52
+
53
+ def start(self):
54
+ """Start the worker's processing loop"""
55
+ self.active = True
56
+ asyncio.create_task(self._run_loop())
57
+
58
+ async def _run_loop(self):
59
+ """Main processing loop - runs forever until terminated"""
60
+ while self.active:
61
+ item = await self.input_queue.get() # Block until item arrives
62
+ await self.process(item) # Process the item
63
+
64
+ async def process(self, item):
65
+ """Override this - does the actual work"""
66
+ raise NotImplementedError
67
+
68
+ def terminate(self):
69
+ """Stop the worker"""
70
+ self.active = False
71
+ ```
72
+
73
+ ## Component Implementation Guide
74
+
75
+ ### 1. Transcriber (Audio → Text)
76
+
77
+ **Purpose**: Converts incoming audio chunks to text transcriptions
78
+
79
+ **Interface Requirements**:
80
+ ```python
81
+ class BaseTranscriber:
82
+ def __init__(self, transcriber_config):
83
+ self.input_queue = asyncio.Queue() # Audio chunks (bytes)
84
+ self.output_queue = asyncio.Queue() # Transcriptions
85
+ self.is_muted = False
86
+
87
+ def send_audio(self, chunk: bytes):
88
+ """Client calls this to send audio"""
89
+ if not self.is_muted:
90
+ self.input_queue.put_nowait(chunk)
91
+ else:
92
+ # Send silence instead (prevents echo during bot speech)
93
+ self.input_queue.put_nowait(self.create_silent_chunk(len(chunk)))
94
+
95
+ def mute(self):
96
+ """Called when bot starts speaking (prevents echo)"""
97
+ self.is_muted = True
98
+
99
+ def unmute(self):
100
+ """Called when bot stops speaking"""
101
+ self.is_muted = False
102
+ ```
103
+
104
+ **Output Format**:
105
+ ```python
106
+ class Transcription:
107
+ message: str # "Hello, how are you?"
108
+ confidence: float # 0.95
109
+ is_final: bool # True = complete sentence, False = partial
110
+ is_interrupt: bool # Set by TranscriptionsWorker
111
+ ```
112
+
113
+ **Supported Providers**:
114
+ - **Deepgram** - Fast, accurate, streaming
115
+ - **AssemblyAI** - High accuracy, good for accents
116
+ - **Azure Speech** - Enterprise-grade
117
+ - **Google Cloud Speech** - Multi-language support
118
+
119
+ **Critical Implementation Details**:
120
+ - Use WebSocket for bidirectional streaming
121
+ - Run sender and receiver tasks concurrently with `asyncio.gather()`
122
+ - Mute transcriber when bot speaks to prevent echo/feedback loops
123
+ - Handle both final and partial transcriptions
124
+
125
+ ### 2. Agent (Text → Response)
126
+
127
+ **Purpose**: Processes user input and generates conversational responses
128
+
129
+ **Interface Requirements**:
130
+ ```python
131
+ class BaseAgent:
132
+ def __init__(self, agent_config):
133
+ self.input_queue = asyncio.Queue() # TranscriptionAgentInput
134
+ self.output_queue = asyncio.Queue() # AgentResponse
135
+ self.transcript = None # Conversation history
136
+
137
+ async def generate_response(self, human_input, is_interrupt, conversation_id):
138
+ """Override this - returns AsyncGenerator of responses"""
139
+ raise NotImplementedError
140
+ ```
141
+
142
+ **Why Streaming Responses?**
143
+ - **Lower latency**: Start speaking as soon as first sentence is ready
144
+ - **Better interrupts**: Can stop mid-response
145
+ - **Sentence-by-sentence**: More natural conversation flow
146
+
147
+ **Supported Providers**:
148
+ - **OpenAI** (GPT-4, GPT-3.5) - High quality, fast
149
+ - **Google Gemini** - Multimodal, cost-effective
150
+ - **Anthropic Claude** - Long context, nuanced responses
151
+
152
+ **Critical Implementation Details**:
153
+ - Maintain conversation history in `Transcript` object
154
+ - Stream responses using `AsyncGenerator`
155
+ - **IMPORTANT**: Buffer entire LLM response before yielding to synthesizer (prevents audio jumping)
156
+ - Handle interrupts by canceling current generation task
157
+ - Update conversation history with partial messages on interrupt
158
+
159
+ ### 3. Synthesizer (Text → Audio)
160
+
161
+ **Purpose**: Converts agent text responses to speech audio
162
+
163
+ **Interface Requirements**:
164
+ ```python
165
+ class BaseSynthesizer:
166
+ async def create_speech(self, message: BaseMessage, chunk_size: int) -> SynthesisResult:
167
+ """
168
+ Returns a SynthesisResult containing:
169
+ - chunk_generator: AsyncGenerator that yields audio chunks
170
+ - get_message_up_to: Function to get partial text (for interrupts)
171
+ """
172
+ raise NotImplementedError
173
+ ```
174
+
175
+ **SynthesisResult Structure**:
176
+ ```python
177
+ class SynthesisResult:
178
+ chunk_generator: AsyncGenerator[ChunkResult, None]
179
+ get_message_up_to: Callable[[float], str] # seconds → partial text
180
+
181
+ class ChunkResult:
182
+ chunk: bytes # Raw PCM audio
183
+ is_last_chunk: bool
184
+ ```
185
+
186
+ **Supported Providers**:
187
+ - **ElevenLabs** - Most natural voices, streaming
188
+ - **Azure TTS** - Enterprise-grade, many languages
189
+ - **Google Cloud TTS** - Cost-effective, good quality
190
+ - **Amazon Polly** - AWS integration
191
+ - **Play.ht** - Voice cloning
192
+
193
+ **Critical Implementation Details**:
194
+ - Stream audio chunks as they're generated
195
+ - Convert audio to LINEAR16 PCM format (16kHz sample rate)
196
+ - Implement `get_message_up_to()` for interrupt handling
197
+ - Handle audio format conversion (MP3 → PCM)
198
+
199
+ ### 4. Output Device (Audio → Client)
200
+
201
+ **Purpose**: Sends synthesized audio back to the client
202
+
203
+ **CRITICAL: Rate Limiting for Interrupts**
204
+
205
+ ```python
206
+ async def send_speech_to_output(self, message, synthesis_result,
207
+ stop_event, seconds_per_chunk):
208
+ chunk_idx = 0
209
+ async for chunk_result in synthesis_result.chunk_generator:
210
+ # Check for interrupt
211
+ if stop_event.is_set():
212
+ logger.debug(f"Interrupted after {chunk_idx} chunks")
213
+ message_sent = synthesis_result.get_message_up_to(
214
+ chunk_idx * seconds_per_chunk
215
+ )
216
+ return message_sent, True # cut_off = True
217
+
218
+ start_time = time.time()
219
+
220
+ # Send chunk to output device
221
+ self.output_device.consume_nonblocking(chunk_result.chunk)
222
+
223
+ # CRITICAL: Wait for chunk to play before sending next one
224
+ # This is what makes interrupts work!
225
+ speech_length = seconds_per_chunk
226
+ processing_time = time.time() - start_time
227
+ await asyncio.sleep(max(speech_length - processing_time, 0))
228
+
229
+ chunk_idx += 1
230
+
231
+ return message, False # cut_off = False
232
+ ```
233
+
234
+ **Why Rate Limiting?**
235
+ Without rate limiting, all audio chunks would be sent immediately, which would:
236
+ - Buffer entire message on client side
237
+ - Make interrupts impossible (all audio already sent)
238
+ - Cause timing issues
239
+
240
+ By sending one chunk every N seconds:
241
+ - Real-time playback is maintained
242
+ - Interrupts can stop mid-sentence
243
+ - Natural conversation flow is preserved
244
+
245
+ ## The Interrupt System
246
+
247
+ The interrupt system is critical for natural conversations.
248
+
249
+ ### How Interrupts Work
250
+
251
+ **Scenario**: Bot is saying "I think the weather will be nice today and tomorrow and—" when user interrupts with "Stop".
252
+
253
+ **Step 1: User starts speaking**
254
+ ```python
255
+ # TranscriptionsWorker detects new transcription while bot speaking
256
+ async def process(self, transcription):
257
+ if not self.conversation.is_human_speaking: # Bot was speaking!
258
+ # Broadcast interrupt to all in-flight events
259
+ interrupted = self.conversation.broadcast_interrupt()
260
+ transcription.is_interrupt = interrupted
261
+ ```
262
+
263
+ **Step 2: broadcast_interrupt() stops everything**
264
+ ```python
265
+ def broadcast_interrupt(self):
266
+ num_interrupts = 0
267
+ # Interrupt all queued events
268
+ while True:
269
+ try:
270
+ interruptible_event = self.interruptible_events.get_nowait()
271
+ if interruptible_event.interrupt(): # Sets interruption_event
272
+ num_interrupts += 1
273
+ except queue.Empty:
274
+ break
275
+
276
+ # Cancel current tasks
277
+ self.agent.cancel_current_task() # Stop generating text
278
+ self.agent_responses_worker.cancel_current_task() # Stop synthesizing
279
+ return num_interrupts > 0
280
+ ```
281
+
282
+ **Step 3: SynthesisResultsWorker detects interrupt**
283
+ ```python
284
+ async def send_speech_to_output(self, synthesis_result, stop_event, ...):
285
+ async for chunk_result in synthesis_result.chunk_generator:
286
+ # Check stop_event (this is the interruption_event)
287
+ if stop_event.is_set():
288
+ logger.debug("Interrupted! Stopping speech.")
289
+ # Calculate what was actually spoken
290
+ seconds_spoken = chunk_idx * seconds_per_chunk
291
+ partial_message = synthesis_result.get_message_up_to(seconds_spoken)
292
+ # e.g., "I think the weather will be nice today"
293
+ return partial_message, True # cut_off = True
294
+ ```
295
+
296
+ **Step 4: Agent updates history**
297
+ ```python
298
+ if cut_off:
299
+ # Update conversation history with partial message
300
+ self.agent.update_last_bot_message_on_cut_off(message_sent)
301
+ # History now shows:
302
+ # Bot: "I think the weather will be nice today" (incomplete)
303
+ ```
304
+
305
+ ### InterruptibleEvent Pattern
306
+
307
+ Every event in the pipeline is wrapped in an `InterruptibleEvent`:
308
+
309
+ ```python
310
+ class InterruptibleEvent:
311
+ def __init__(self, payload, is_interruptible=True):
312
+ self.payload = payload
313
+ self.is_interruptible = is_interruptible
314
+ self.interruption_event = threading.Event() # Initially not set
315
+ self.interrupted = False
316
+
317
+ def interrupt(self) -> bool:
318
+ """Interrupt this event"""
319
+ if not self.is_interruptible:
320
+ return False
321
+ if not self.interrupted:
322
+ self.interruption_event.set() # Signal to stop!
323
+ self.interrupted = True
324
+ return True
325
+ return False
326
+
327
+ def is_interrupted(self) -> bool:
328
+ return self.interruption_event.is_set()
329
+ ```
330
+
331
+ ## Multi-Provider Factory Pattern
332
+
333
+ Support multiple providers with a factory pattern:
334
+
335
+ ```python
336
+ class VoiceHandler:
337
+ """Multi-provider factory for voice components"""
338
+
339
+ def create_transcriber(self, agent_config: Dict):
340
+ """Create transcriber based on transcriberProvider"""
341
+ provider = agent_config.get("transcriberProvider", "deepgram")
342
+
343
+ if provider == "deepgram":
344
+ return self._create_deepgram_transcriber(agent_config)
345
+ elif provider == "assemblyai":
346
+ return self._create_assemblyai_transcriber(agent_config)
347
+ elif provider == "azure":
348
+ return self._create_azure_transcriber(agent_config)
349
+ elif provider == "google":
350
+ return self._create_google_transcriber(agent_config)
351
+ else:
352
+ raise ValueError(f"Unknown transcriber provider: {provider}")
353
+
354
+ def create_agent(self, agent_config: Dict):
355
+ """Create LLM agent based on llmProvider"""
356
+ provider = agent_config.get("llmProvider", "openai")
357
+
358
+ if provider == "openai":
359
+ return self._create_openai_agent(agent_config)
360
+ elif provider == "gemini":
361
+ return self._create_gemini_agent(agent_config)
362
+ else:
363
+ raise ValueError(f"Unknown LLM provider: {provider}")
364
+
365
+ def create_synthesizer(self, agent_config: Dict):
366
+ """Create voice synthesizer based on voiceProvider"""
367
+ provider = agent_config.get("voiceProvider", "elevenlabs")
368
+
369
+ if provider == "elevenlabs":
370
+ return self._create_elevenlabs_synthesizer(agent_config)
371
+ elif provider == "azure":
372
+ return self._create_azure_synthesizer(agent_config)
373
+ elif provider == "google":
374
+ return self._create_google_synthesizer(agent_config)
375
+ elif provider == "polly":
376
+ return self._create_polly_synthesizer(agent_config)
377
+ elif provider == "playht":
378
+ return self._create_playht_synthesizer(agent_config)
379
+ else:
380
+ raise ValueError(f"Unknown voice provider: {provider}")
381
+ ```
382
+
383
+ ## WebSocket Integration
384
+
385
+ Voice AI engines typically use WebSocket for bidirectional audio streaming:
386
+
387
+ ```python
388
+ @app.websocket("/conversation")
389
+ async def websocket_endpoint(websocket: WebSocket):
390
+ await websocket.accept()
391
+
392
+ # Create voice components
393
+ voice_handler = VoiceHandler()
394
+ transcriber = voice_handler.create_transcriber(agent_config)
395
+ agent = voice_handler.create_agent(agent_config)
396
+ synthesizer = voice_handler.create_synthesizer(agent_config)
397
+
398
+ # Create output device
399
+ output_device = WebsocketOutputDevice(
400
+ ws=websocket,
401
+ sampling_rate=16000,
402
+ audio_encoding=AudioEncoding.LINEAR16
403
+ )
404
+
405
+ # Create conversation orchestrator
406
+ conversation = StreamingConversation(
407
+ output_device=output_device,
408
+ transcriber=transcriber,
409
+ agent=agent,
410
+ synthesizer=synthesizer
411
+ )
412
+
413
+ # Start all workers
414
+ await conversation.start()
415
+
416
+ try:
417
+ # Receive audio from client
418
+ async for message in websocket.iter_bytes():
419
+ conversation.receive_audio(message)
420
+ except WebSocketDisconnect:
421
+ logger.info("Client disconnected")
422
+ finally:
423
+ await conversation.terminate()
424
+ ```
425
+
426
+ ## Common Pitfalls and Solutions
427
+
428
+ ### 1. Audio Jumping/Cutting Off
429
+
430
+ **Problem**: Bot's audio jumps or cuts off mid-response.
431
+
432
+ **Cause**: Sending text to synthesizer in small chunks causes multiple TTS calls.
433
+
434
+ **Solution**: Buffer the entire LLM response before sending to synthesizer:
435
+
436
+ ```python
437
+ # ❌ Bad: Yields sentence-by-sentence
438
+ async for sentence in llm_stream:
439
+ yield GeneratedResponse(message=BaseMessage(text=sentence))
440
+
441
+ # ✅ Good: Buffer entire response
442
+ full_response = ""
443
+ async for chunk in llm_stream:
444
+ full_response += chunk
445
+ yield GeneratedResponse(message=BaseMessage(text=full_response))
446
+ ```
447
+
448
+ ### 2. Echo/Feedback Loop
449
+
450
+ **Problem**: Bot hears itself speaking and responds to its own audio.
451
+
452
+ **Cause**: Transcriber not muted during bot speech.
453
+
454
+ **Solution**: Mute transcriber when bot starts speaking:
455
+
456
+ ```python
457
+ # Before sending audio to output
458
+ self.transcriber.mute()
459
+ # After audio playback complete
460
+ self.transcriber.unmute()
461
+ ```
462
+
463
+ ### 3. Interrupts Not Working
464
+
465
+ **Problem**: User can't interrupt bot mid-sentence.
466
+
467
+ **Cause**: All audio chunks sent at once instead of rate-limited.
468
+
469
+ **Solution**: Rate-limit audio chunks to match real-time playback:
470
+
471
+ ```python
472
+ async for chunk in synthesis_result.chunk_generator:
473
+ start_time = time.time()
474
+
475
+ # Send chunk
476
+ output_device.consume_nonblocking(chunk)
477
+
478
+ # Wait for chunk duration before sending next
479
+ processing_time = time.time() - start_time
480
+ await asyncio.sleep(max(seconds_per_chunk - processing_time, 0))
481
+ ```
482
+
483
+ ### 4. Memory Leaks from Unclosed Streams
484
+
485
+ **Problem**: Memory usage grows over time.
486
+
487
+ **Cause**: WebSocket connections or API streams not properly closed.
488
+
489
+ **Solution**: Always use context managers and cleanup:
490
+
491
+ ```python
492
+ try:
493
+ async with websockets.connect(url) as ws:
494
+ # Use websocket
495
+ pass
496
+ finally:
497
+ # Cleanup
498
+ await conversation.terminate()
499
+ await transcriber.terminate()
500
+ ```
501
+
502
+ ## Production Considerations
503
+
504
+ ### 1. Error Handling
505
+
506
+ ```python
507
+ async def _run_loop(self):
508
+ while self.active:
509
+ try:
510
+ item = await self.input_queue.get()
511
+ await self.process(item)
512
+ except Exception as e:
513
+ logger.error(f"Worker error: {e}", exc_info=True)
514
+ # Don't crash the worker, continue processing
515
+ ```
516
+
517
+ ### 2. Graceful Shutdown
518
+
519
+ ```python
520
+ async def terminate(self):
521
+ """Gracefully shut down all workers"""
522
+ self.active = False
523
+
524
+ # Stop all workers
525
+ self.transcriber.terminate()
526
+ self.agent.terminate()
527
+ self.synthesizer.terminate()
528
+
529
+ # Wait for queues to drain
530
+ await asyncio.sleep(0.5)
531
+
532
+ # Close connections
533
+ if self.websocket:
534
+ await self.websocket.close()
535
+ ```
536
+
537
+ ### 3. Monitoring and Logging
538
+
539
+ ```python
540
+ # Log key events
541
+ logger.info(f"🎤 [TRANSCRIBER] Received: '{transcription.message}'")
542
+ logger.info(f"🤖 [AGENT] Generating response...")
543
+ logger.info(f"🔊 [SYNTHESIZER] Synthesizing {len(text)} characters")
544
+ logger.info(f"⚠️ [INTERRUPT] User interrupted bot")
545
+
546
+ # Track metrics
547
+ metrics.increment("transcriptions.count")
548
+ metrics.timing("agent.response_time", duration)
549
+ metrics.gauge("active_conversations", count)
550
+ ```
551
+
552
+ ### 4. Rate Limiting and Quotas
553
+
554
+ ```python
555
+ # Implement rate limiting for API calls
556
+ from aiolimiter import AsyncLimiter
557
+
558
+ rate_limiter = AsyncLimiter(max_rate=10, time_period=1) # 10 calls/second
559
+
560
+ async def call_api(self, data):
561
+ async with rate_limiter:
562
+ return await self.client.post(data)
563
+ ```
564
+
565
+ ## Key Design Patterns
566
+
567
+ ### 1. Producer-Consumer with Queues
568
+
569
+ ```python
570
+ # Producer
571
+ async def producer(queue):
572
+ while True:
573
+ item = await generate_item()
574
+ queue.put_nowait(item)
575
+
576
+ # Consumer
577
+ async def consumer(queue):
578
+ while True:
579
+ item = await queue.get()
580
+ await process_item(item)
581
+ ```
582
+
583
+ ### 2. Streaming Generators
584
+
585
+ Instead of returning complete results:
586
+
587
+ ```python
588
+ # ❌ Bad: Wait for entire response
589
+ async def generate_response(prompt):
590
+ response = await openai.complete(prompt) # 5 seconds
591
+ return response
592
+
593
+ # ✅ Good: Stream chunks as they arrive
594
+ async def generate_response(prompt):
595
+ async for chunk in openai.complete(prompt, stream=True):
596
+ yield chunk # Yield after 0.1s, 0.2s, etc.
597
+ ```
598
+
599
+ ### 3. Conversation State Management
600
+
601
+ Maintain conversation history for context:
602
+
603
+ ```python
604
+ class Transcript:
605
+ event_logs: List[Message] = []
606
+
607
+ def add_human_message(self, text):
608
+ self.event_logs.append(Message(sender=Sender.HUMAN, text=text))
609
+
610
+ def add_bot_message(self, text):
611
+ self.event_logs.append(Message(sender=Sender.BOT, text=text))
612
+
613
+ def to_openai_messages(self):
614
+ return [
615
+ {"role": "user" if msg.sender == Sender.HUMAN else "assistant",
616
+ "content": msg.text}
617
+ for msg in self.event_logs
618
+ ]
619
+ ```
620
+
621
+ ## Testing Strategies
622
+
623
+ ### 1. Unit Test Workers in Isolation
624
+
625
+ ```python
626
+ async def test_transcriber():
627
+ transcriber = DeepgramTranscriber(config)
628
+
629
+ # Mock audio input
630
+ audio_chunk = b'\x00\x01\x02...'
631
+ transcriber.send_audio(audio_chunk)
632
+
633
+ # Check output
634
+ transcription = await transcriber.output_queue.get()
635
+ assert transcription.message == "expected text"
636
+ ```
637
+
638
+ ### 2. Integration Test Pipeline
639
+
640
+ ```python
641
+ async def test_full_pipeline():
642
+ # Create all components
643
+ conversation = create_test_conversation()
644
+
645
+ # Send test audio
646
+ conversation.receive_audio(test_audio_chunk)
647
+
648
+ # Wait for response
649
+ response = await wait_for_audio_output(timeout=5)
650
+
651
+ assert response is not None
652
+ ```
653
+
654
+ ### 3. Test Interrupts
655
+
656
+ ```python
657
+ async def test_interrupt():
658
+ conversation = create_test_conversation()
659
+
660
+ # Start bot speaking
661
+ await conversation.agent.generate_response("Tell me a long story")
662
+
663
+ # Interrupt mid-response
664
+ await asyncio.sleep(1) # Let it speak for 1 second
665
+ conversation.broadcast_interrupt()
666
+
667
+ # Verify partial message in transcript
668
+ last_message = conversation.transcript.event_logs[-1]
669
+ assert last_message.text != full_expected_message
670
+ ```
671
+
672
+ ## Implementation Workflow
673
+
674
+ When implementing a voice AI engine:
675
+
676
+ 1. **Start with Base Workers**: Implement the base worker pattern first
677
+ 2. **Add Transcriber**: Choose a provider and implement streaming transcription
678
+ 3. **Add Agent**: Implement LLM integration with streaming responses
679
+ 4. **Add Synthesizer**: Implement TTS with audio streaming
680
+ 5. **Connect Pipeline**: Wire all workers together with queues
681
+ 6. **Add Interrupts**: Implement the interrupt system
682
+ 7. **Add WebSocket**: Create WebSocket endpoint for client communication
683
+ 8. **Test Components**: Unit test each worker in isolation
684
+ 9. **Test Integration**: Test the full pipeline end-to-end
685
+ 10. **Add Error Handling**: Implement robust error handling and logging
686
+ 11. **Optimize**: Add rate limiting, monitoring, and performance optimizations
687
+
688
+ ## Related Skills
689
+
690
+ - `@websocket-patterns` - For WebSocket implementation details
691
+ - `@async-python` - For asyncio and async patterns
692
+ - `@streaming-apis` - For streaming API integration
693
+ - `@audio-processing` - For audio format conversion and processing
694
+ - `@systematic-debugging` - For debugging complex async pipelines
695
+
696
+ ## Resources
697
+
698
+ **Libraries**:
699
+ - `asyncio` - Async programming
700
+ - `websockets` - WebSocket client/server
701
+ - `FastAPI` - WebSocket server framework
702
+ - `pydub` - Audio manipulation
703
+ - `numpy` - Audio data processing
704
+
705
+ **API Providers**:
706
+ - Transcription: Deepgram, AssemblyAI, Azure Speech, Google Cloud Speech
707
+ - LLM: OpenAI, Google Gemini, Anthropic Claude
708
+ - TTS: ElevenLabs, Azure TTS, Google Cloud TTS, Amazon Polly, Play.ht
709
+
710
+ ## Summary
711
+
712
+ Building a voice AI engine requires:
713
+ - ✅ Async worker pipeline for concurrent processing
714
+ - ✅ Queue-based communication between components
715
+ - ✅ Streaming at every stage (transcription, LLM, synthesis)
716
+ - ✅ Interrupt system for natural conversations
717
+ - ✅ Rate limiting for real-time audio playback
718
+ - ✅ Multi-provider support for flexibility
719
+ - ✅ Proper error handling and graceful shutdown
720
+
721
+ **The key insight**: Everything must stream and everything must be interruptible for natural, real-time conversations.