@ruaruababa/vibe-kit 1.0.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 (462) hide show
  1. package/CATALOG.md +317 -0
  2. package/README.md +121 -0
  3. package/aliases.json +65 -0
  4. package/bin/vibe.js +2 -0
  5. package/bundles.json +265 -0
  6. package/catalog.json +1560 -0
  7. package/dist/antigravity-skills/bin/cli.js +438 -0
  8. package/dist/antigravity-skills/lib/skill-utils.js +158 -0
  9. package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
  10. package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
  11. package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
  12. package/dist/bin/vibe.js +2 -0
  13. package/dist/dist/src/cli/index.js +26 -0
  14. package/dist/lib/skill-utils.js +158 -0
  15. package/dist/scripts/build-catalog.js +50 -0
  16. package/dist/scripts/normalize-frontmatter.js +144 -0
  17. package/dist/scripts/validate-skills.js +56 -0
  18. package/dist/src/cli/index.js +146 -0
  19. package/dist/src/types/index.js +13 -0
  20. package/dist/src/utils/fs.js +1 -0
  21. package/package.json +43 -0
  22. package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
  23. package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
  24. package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
  25. package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  26. package/skills/agent-orchestrator/SKILL.md +24 -0
  27. package/skills/ai-engineer/SKILL.md +171 -0
  28. package/skills/airflow-dag-patterns/SKILL.md +41 -0
  29. package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  30. package/skills/angular-migration/SKILL.md +428 -0
  31. package/skills/anti-reversing-techniques/SKILL.md +42 -0
  32. package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
  33. package/skills/api-design-principles/SKILL.md +37 -0
  34. package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  35. package/skills/api-design-principles/assets/rest-api-template.py +182 -0
  36. package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  37. package/skills/api-design-principles/references/rest-best-practices.md +408 -0
  38. package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  39. package/skills/api-documenter/SKILL.md +184 -0
  40. package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  41. package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  42. package/skills/application-performance-performance-optimization/SKILL.md +154 -0
  43. package/skills/architect-review/SKILL.md +174 -0
  44. package/skills/architecture-decision-records/SKILL.md +441 -0
  45. package/skills/architecture-patterns/SKILL.md +37 -0
  46. package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  47. package/skills/arm-cortex-expert/SKILL.md +306 -0
  48. package/skills/async-python-patterns/SKILL.md +39 -0
  49. package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
  50. package/skills/attack-tree-construction/SKILL.md +38 -0
  51. package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  52. package/skills/auth-implementation-patterns/SKILL.md +39 -0
  53. package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  54. package/skills/backend-architect/SKILL.md +333 -0
  55. package/skills/backend-development-feature-development/SKILL.md +180 -0
  56. package/skills/backend-security-coder/SKILL.md +156 -0
  57. package/skills/backtesting-frameworks/SKILL.md +39 -0
  58. package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
  59. package/skills/bash-defensive-patterns/SKILL.md +43 -0
  60. package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
  61. package/skills/bash-pro/SKILL.md +310 -0
  62. package/skills/bats-testing-patterns/SKILL.md +34 -0
  63. package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
  64. package/skills/bazel-build-optimization/SKILL.md +397 -0
  65. package/skills/billing-automation/SKILL.md +42 -0
  66. package/skills/billing-automation/resources/implementation-playbook.md +544 -0
  67. package/skills/binary-analysis-patterns/SKILL.md +450 -0
  68. package/skills/blockchain-developer/SKILL.md +208 -0
  69. package/skills/business-analyst/SKILL.md +182 -0
  70. package/skills/c-pro/SKILL.md +56 -0
  71. package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
  72. package/skills/c4-code/SKILL.md +244 -0
  73. package/skills/c4-component/SKILL.md +153 -0
  74. package/skills/c4-container/SKILL.md +171 -0
  75. package/skills/c4-context/SKILL.md +150 -0
  76. package/skills/changelog-automation/SKILL.md +38 -0
  77. package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
  78. package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
  79. package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
  80. package/skills/clean-markdown/SKILL.md +23 -0
  81. package/skills/cloud-architect/SKILL.md +135 -0
  82. package/skills/code-documentation-code-explain/SKILL.md +46 -0
  83. package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
  84. package/skills/code-documentation-doc-generate/SKILL.md +48 -0
  85. package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
  86. package/skills/code-refactoring-context-restore/SKILL.md +179 -0
  87. package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
  88. package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
  89. package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
  90. package/skills/code-review-ai-ai-review/SKILL.md +450 -0
  91. package/skills/code-review-excellence/SKILL.md +40 -0
  92. package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
  93. package/skills/code-reviewer/SKILL.md +178 -0
  94. package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
  95. package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
  96. package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
  97. package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
  98. package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
  99. package/skills/competitive-landscape/SKILL.md +34 -0
  100. package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  101. package/skills/comprehensive-review-full-review/SKILL.md +146 -0
  102. package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
  103. package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
  104. package/skills/conductor-implement/SKILL.md +388 -0
  105. package/skills/conductor-manage/SKILL.md +39 -0
  106. package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
  107. package/skills/conductor-new-track/SKILL.md +433 -0
  108. package/skills/conductor-revert/SKILL.md +372 -0
  109. package/skills/conductor-setup/SKILL.md +426 -0
  110. package/skills/conductor-status/SKILL.md +338 -0
  111. package/skills/conductor-validator/SKILL.md +62 -0
  112. package/skills/content-marketer/SKILL.md +170 -0
  113. package/skills/context-driven-development/SKILL.md +400 -0
  114. package/skills/context-management-context-restore/SKILL.md +179 -0
  115. package/skills/context-management-context-save/SKILL.md +177 -0
  116. package/skills/context-manager/SKILL.md +185 -0
  117. package/skills/cost-optimization/SKILL.md +286 -0
  118. package/skills/cpp-pro/SKILL.md +59 -0
  119. package/skills/cqrs-implementation/SKILL.md +35 -0
  120. package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  121. package/skills/csharp-pro/SKILL.md +59 -0
  122. package/skills/customer-support/SKILL.md +170 -0
  123. package/skills/data-engineer/SKILL.md +224 -0
  124. package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  125. package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  126. package/skills/data-quality-frameworks/SKILL.md +40 -0
  127. package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  128. package/skills/data-scientist/SKILL.md +199 -0
  129. package/skills/data-storytelling/SKILL.md +465 -0
  130. package/skills/database-admin/SKILL.md +165 -0
  131. package/skills/database-architect/SKILL.md +268 -0
  132. package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  133. package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  134. package/skills/database-migration/SKILL.md +436 -0
  135. package/skills/database-migrations-migration-observability/SKILL.md +420 -0
  136. package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  137. package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  138. package/skills/database-optimizer/SKILL.md +167 -0
  139. package/skills/dbt-transformation-patterns/SKILL.md +34 -0
  140. package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  141. package/skills/debugger/SKILL.md +49 -0
  142. package/skills/debugging-strategies/SKILL.md +34 -0
  143. package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  144. package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
  145. package/skills/defi-protocol-templates/SKILL.md +466 -0
  146. package/skills/dependency-management-deps-audit/SKILL.md +44 -0
  147. package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
  148. package/skills/dependency-upgrade/SKILL.md +421 -0
  149. package/skills/deployment-engineer/SKILL.md +170 -0
  150. package/skills/deployment-pipeline-design/SKILL.md +371 -0
  151. package/skills/deployment-validation-config-validate/SKILL.md +496 -0
  152. package/skills/devops-troubleshooter/SKILL.md +161 -0
  153. package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  154. package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  155. package/skills/distributed-tracing/SKILL.md +450 -0
  156. package/skills/django-pro/SKILL.md +180 -0
  157. package/skills/docs-architect/SKILL.md +98 -0
  158. package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
  159. package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
  160. package/skills/dotnet-architect/SKILL.md +197 -0
  161. package/skills/dotnet-backend-patterns/SKILL.md +37 -0
  162. package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  163. package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  164. package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  165. package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  166. package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
  167. package/skills/dummy-skill/SKILL.md +5 -0
  168. package/skills/dx-optimizer/SKILL.md +83 -0
  169. package/skills/e2e-testing-patterns/SKILL.md +41 -0
  170. package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  171. package/skills/elixir-pro/SKILL.md +59 -0
  172. package/skills/embedding-strategies/SKILL.md +491 -0
  173. package/skills/employment-contract-templates/SKILL.md +39 -0
  174. package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  175. package/skills/error-debugging-error-analysis/SKILL.md +47 -0
  176. package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
  177. package/skills/error-debugging-error-trace/SKILL.md +43 -0
  178. package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
  179. package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
  180. package/skills/error-detective/SKILL.md +53 -0
  181. package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  182. package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  183. package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  184. package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  185. package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
  186. package/skills/error-handling-patterns/SKILL.md +35 -0
  187. package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  188. package/skills/event-sourcing-architect/SKILL.md +58 -0
  189. package/skills/event-store-design/SKILL.md +449 -0
  190. package/skills/fastapi-pro/SKILL.md +192 -0
  191. package/skills/fastapi-templates/SKILL.md +32 -0
  192. package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  193. package/skills/final-test/SKILL.md +5 -0
  194. package/skills/firmware-analyst/SKILL.md +320 -0
  195. package/skills/flutter-expert/SKILL.md +200 -0
  196. package/skills/framework-migration-code-migrate/SKILL.md +48 -0
  197. package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
  198. package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
  199. package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
  200. package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
  201. package/skills/frontend-developer/SKILL.md +171 -0
  202. package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
  203. package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
  204. package/skills/frontend-security-coder/SKILL.md +170 -0
  205. package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
  206. package/skills/gdpr-data-handling/SKILL.md +33 -0
  207. package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
  208. package/skills/git-advanced-workflows/SKILL.md +412 -0
  209. package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
  210. package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
  211. package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
  212. package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
  213. package/skills/github-actions-templates/SKILL.md +345 -0
  214. package/skills/gitlab-ci-patterns/SKILL.md +283 -0
  215. package/skills/gitops-workflow/SKILL.md +303 -0
  216. package/skills/gitops-workflow/references/argocd-setup.md +134 -0
  217. package/skills/gitops-workflow/references/sync-policies.md +131 -0
  218. package/skills/go-concurrency-patterns/SKILL.md +33 -0
  219. package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
  220. package/skills/godot-gdscript-patterns/SKILL.md +33 -0
  221. package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
  222. package/skills/golang-pro/SKILL.md +179 -0
  223. package/skills/grafana-dashboards/SKILL.md +381 -0
  224. package/skills/graphql-architect/SKILL.md +182 -0
  225. package/skills/haskell-pro/SKILL.md +56 -0
  226. package/skills/helm-chart-scaffolding/SKILL.md +34 -0
  227. package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  228. package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  229. package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  230. package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  231. package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  232. package/skills/hr-pro/SKILL.md +126 -0
  233. package/skills/hybrid-cloud-architect/SKILL.md +168 -0
  234. package/skills/hybrid-cloud-networking/SKILL.md +238 -0
  235. package/skills/hybrid-search-implementation/SKILL.md +32 -0
  236. package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  237. package/skills/incident-responder/SKILL.md +213 -0
  238. package/skills/incident-response-incident-response/SKILL.md +168 -0
  239. package/skills/incident-response-smart-fix/SKILL.md +29 -0
  240. package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  241. package/skills/incident-runbook-templates/SKILL.md +395 -0
  242. package/skills/ios-developer/SKILL.md +219 -0
  243. package/skills/istio-traffic-management/SKILL.md +337 -0
  244. package/skills/java-pro/SKILL.md +177 -0
  245. package/skills/javascript-pro/SKILL.md +57 -0
  246. package/skills/javascript-testing-patterns/SKILL.md +35 -0
  247. package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  248. package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
  249. package/skills/julia-pro/SKILL.md +209 -0
  250. package/skills/k8s-manifest-generator/SKILL.md +35 -0
  251. package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  252. package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  253. package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  254. package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  255. package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  256. package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  257. package/skills/k8s-security-policies/SKILL.md +346 -0
  258. package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  259. package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  260. package/skills/kpi-dashboard-design/SKILL.md +440 -0
  261. package/skills/kubernetes-architect/SKILL.md +170 -0
  262. package/skills/langchain-architecture/SKILL.md +350 -0
  263. package/skills/legacy-modernizer/SKILL.md +53 -0
  264. package/skills/legal-advisor/SKILL.md +70 -0
  265. package/skills/linkerd-patterns/SKILL.md +321 -0
  266. package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
  267. package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
  268. package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
  269. package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
  270. package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
  271. package/skills/llm-evaluation/SKILL.md +483 -0
  272. package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
  273. package/skills/malware-analyst/SKILL.md +247 -0
  274. package/skills/market-sizing-analysis/SKILL.md +425 -0
  275. package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  276. package/skills/market-sizing-analysis/references/data-sources.md +360 -0
  277. package/skills/memory-forensics/SKILL.md +491 -0
  278. package/skills/memory-safety-patterns/SKILL.md +33 -0
  279. package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
  280. package/skills/mermaid-expert/SKILL.md +59 -0
  281. package/skills/microservices-patterns/SKILL.md +35 -0
  282. package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
  283. package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
  284. package/skills/ml-engineer/SKILL.md +168 -0
  285. package/skills/ml-pipeline-workflow/SKILL.md +257 -0
  286. package/skills/mlops-engineer/SKILL.md +219 -0
  287. package/skills/mobile-developer/SKILL.md +205 -0
  288. package/skills/mobile-security-coder/SKILL.md +184 -0
  289. package/skills/modern-javascript-patterns/SKILL.md +35 -0
  290. package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
  291. package/skills/monorepo-architect/SKILL.md +61 -0
  292. package/skills/monorepo-management/SKILL.md +35 -0
  293. package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
  294. package/skills/mtls-configuration/SKILL.md +359 -0
  295. package/skills/multi-cloud-architecture/SKILL.md +189 -0
  296. package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
  297. package/skills/network-engineer/SKILL.md +169 -0
  298. package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
  299. package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
  300. package/skills/nft-standards/SKILL.md +395 -0
  301. package/skills/node-expert/SKILL.md +23 -0
  302. package/skills/nodejs-backend-patterns/SKILL.md +35 -0
  303. package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  304. package/skills/nx-workspace-patterns/SKILL.md +464 -0
  305. package/skills/observability-engineer/SKILL.md +237 -0
  306. package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  307. package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  308. package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  309. package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  310. package/skills/on-call-handoff-patterns/SKILL.md +453 -0
  311. package/skills/openapi-spec-generation/SKILL.md +33 -0
  312. package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  313. package/skills/payment-integration/SKILL.md +77 -0
  314. package/skills/paypal-integration/SKILL.md +479 -0
  315. package/skills/pci-compliance/SKILL.md +478 -0
  316. package/skills/performance-engineer/SKILL.md +180 -0
  317. package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
  318. package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
  319. package/skills/php-pro/SKILL.md +63 -0
  320. package/skills/posix-shell-pro/SKILL.md +304 -0
  321. package/skills/postgresql/SKILL.md +230 -0
  322. package/skills/postmortem-writing/SKILL.md +386 -0
  323. package/skills/projection-patterns/SKILL.md +33 -0
  324. package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  325. package/skills/prometheus-configuration/SKILL.md +404 -0
  326. package/skills/prompt-engineer/SKILL.md +272 -0
  327. package/skills/prompt-engineering-patterns/SKILL.md +213 -0
  328. package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  329. package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  330. package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  331. package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  332. package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  333. package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  334. package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  335. package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  336. package/skills/protocol-reverse-engineering/SKILL.md +29 -0
  337. package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
  338. package/skills/python-development-python-scaffold/SKILL.md +331 -0
  339. package/skills/python-packaging/SKILL.md +36 -0
  340. package/skills/python-packaging/resources/implementation-playbook.md +869 -0
  341. package/skills/python-performance-optimization/SKILL.md +36 -0
  342. package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
  343. package/skills/python-pro/SKILL.md +158 -0
  344. package/skills/python-testing-patterns/SKILL.md +37 -0
  345. package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
  346. package/skills/quant-analyst/SKILL.md +53 -0
  347. package/skills/rag-implementation/SKILL.md +421 -0
  348. package/skills/react-modernization/SKILL.md +34 -0
  349. package/skills/react-modernization/resources/implementation-playbook.md +512 -0
  350. package/skills/react-native-architecture/SKILL.md +33 -0
  351. package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
  352. package/skills/react-state-management/SKILL.md +441 -0
  353. package/skills/reference-builder/SKILL.md +188 -0
  354. package/skills/reverse-engineer/SKILL.md +173 -0
  355. package/skills/risk-manager/SKILL.md +61 -0
  356. package/skills/risk-metrics-calculation/SKILL.md +33 -0
  357. package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
  358. package/skills/ruby-pro/SKILL.md +56 -0
  359. package/skills/rust-async-patterns/SKILL.md +33 -0
  360. package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
  361. package/skills/rust-pro/SKILL.md +178 -0
  362. package/skills/saga-orchestration/SKILL.md +496 -0
  363. package/skills/sales-automator/SKILL.md +55 -0
  364. package/skills/sast-configuration/SKILL.md +212 -0
  365. package/skills/scala-pro/SKILL.md +82 -0
  366. package/skills/screen-reader-testing/SKILL.md +33 -0
  367. package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
  368. package/skills/search-specialist/SKILL.md +80 -0
  369. package/skills/secrets-management/SKILL.md +364 -0
  370. package/skills/security-auditor/SKILL.md +169 -0
  371. package/skills/security-compliance-compliance-check/SKILL.md +55 -0
  372. package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
  373. package/skills/security-requirement-extraction/SKILL.md +33 -0
  374. package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  375. package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
  376. package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
  377. package/skills/security-scanning-security-hardening/SKILL.md +147 -0
  378. package/skills/security-scanning-security-sast/SKILL.md +495 -0
  379. package/skills/seo-authority-builder/SKILL.md +136 -0
  380. package/skills/seo-cannibalization-detector/SKILL.md +123 -0
  381. package/skills/seo-content-auditor/SKILL.md +83 -0
  382. package/skills/seo-content-planner/SKILL.md +108 -0
  383. package/skills/seo-content-refresher/SKILL.md +118 -0
  384. package/skills/seo-content-writer/SKILL.md +96 -0
  385. package/skills/seo-keyword-strategist/SKILL.md +95 -0
  386. package/skills/seo-meta-optimizer/SKILL.md +92 -0
  387. package/skills/seo-snippet-hunter/SKILL.md +114 -0
  388. package/skills/seo-structure-architect/SKILL.md +108 -0
  389. package/skills/service-mesh-expert/SKILL.md +58 -0
  390. package/skills/service-mesh-observability/SKILL.md +395 -0
  391. package/skills/shellcheck-configuration/SKILL.md +466 -0
  392. package/skills/similarity-search-patterns/SKILL.md +33 -0
  393. package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  394. package/skills/slo-implementation/SKILL.md +341 -0
  395. package/skills/solidity-security/SKILL.md +34 -0
  396. package/skills/solidity-security/resources/implementation-playbook.md +524 -0
  397. package/skills/spark-optimization/SKILL.md +427 -0
  398. package/skills/sql-optimization-patterns/SKILL.md +35 -0
  399. package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  400. package/skills/sql-pro/SKILL.md +173 -0
  401. package/skills/startup-analyst/SKILL.md +328 -0
  402. package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  403. package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  404. package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  405. package/skills/startup-financial-modeling/SKILL.md +467 -0
  406. package/skills/startup-metrics-framework/SKILL.md +34 -0
  407. package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  408. package/skills/stride-analysis-patterns/SKILL.md +33 -0
  409. package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  410. package/skills/stripe-integration/SKILL.md +454 -0
  411. package/skills/systems-programming-rust-project/SKILL.md +440 -0
  412. package/skills/tailwind-design-system/SKILL.md +33 -0
  413. package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
  414. package/skills/tdd-orchestrator/SKILL.md +205 -0
  415. package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
  416. package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
  417. package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
  418. package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
  419. package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
  420. package/skills/team-collaboration-issue/SKILL.md +37 -0
  421. package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
  422. package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
  423. package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
  424. package/skills/team-composition-analysis/SKILL.md +413 -0
  425. package/skills/temporal-python-pro/SKILL.md +370 -0
  426. package/skills/temporal-python-testing/SKILL.md +170 -0
  427. package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  428. package/skills/temporal-python-testing/resources/local-setup.md +553 -0
  429. package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  430. package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  431. package/skills/terraform-module-library/SKILL.md +261 -0
  432. package/skills/terraform-module-library/references/aws-modules.md +63 -0
  433. package/skills/terraform-specialist/SKILL.md +166 -0
  434. package/skills/test-automator/SKILL.md +224 -0
  435. package/skills/threat-mitigation-mapping/SKILL.md +33 -0
  436. package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  437. package/skills/threat-modeling-expert/SKILL.md +60 -0
  438. package/skills/track-management/SKILL.md +38 -0
  439. package/skills/track-management/resources/implementation-playbook.md +591 -0
  440. package/skills/turborepo-caching/SKILL.md +419 -0
  441. package/skills/tutorial-engineer/SKILL.md +139 -0
  442. package/skills/typescript-advanced-types/SKILL.md +35 -0
  443. package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
  444. package/skills/typescript-pro/SKILL.md +55 -0
  445. package/skills/ui-minimal/SKILL.md +23 -0
  446. package/skills/ui-ux-designer/SKILL.md +209 -0
  447. package/skills/ui-visual-validator/SKILL.md +214 -0
  448. package/skills/unit-testing-test-generate/SKILL.md +319 -0
  449. package/skills/unity-developer/SKILL.md +230 -0
  450. package/skills/unity-ecs-patterns/SKILL.md +33 -0
  451. package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
  452. package/skills/uv-package-manager/SKILL.md +37 -0
  453. package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
  454. package/skills/vector-database-engineer/SKILL.md +60 -0
  455. package/skills/vector-index-tuning/SKILL.md +42 -0
  456. package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  457. package/skills/wcag-audit-patterns/SKILL.md +41 -0
  458. package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
  459. package/skills/web3-testing/SKILL.md +427 -0
  460. package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
  461. package/skills/workflow-patterns/SKILL.md +38 -0
  462. package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
@@ -0,0 +1,557 @@
1
+ # Similarity Search Patterns Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ # Similarity Search Patterns
6
+
7
+ Patterns for implementing efficient similarity search in production systems.
8
+
9
+ ## When to Use This Skill
10
+
11
+ - Building semantic search systems
12
+ - Implementing RAG retrieval
13
+ - Creating recommendation engines
14
+ - Optimizing search latency
15
+ - Scaling to millions of vectors
16
+ - Combining semantic and keyword search
17
+
18
+ ## Core Concepts
19
+
20
+ ### 1. Distance Metrics
21
+
22
+ | Metric | Formula | Best For |
23
+ |--------|---------|----------|
24
+ | **Cosine** | 1 - (A·B)/(‖A‖‖B‖) | Normalized embeddings |
25
+ | **Euclidean (L2)** | √Σ(a-b)² | Raw embeddings |
26
+ | **Dot Product** | A·B | Magnitude matters |
27
+ | **Manhattan (L1)** | Σ|a-b| | Sparse vectors |
28
+
29
+ ### 2. Index Types
30
+
31
+ ```
32
+ ┌─────────────────────────────────────────────────┐
33
+ │ Index Types │
34
+ ├─────────────┬───────────────┬───────────────────┤
35
+ │ Flat │ HNSW │ IVF+PQ │
36
+ │ (Exact) │ (Graph-based) │ (Quantized) │
37
+ ├─────────────┼───────────────┼───────────────────┤
38
+ │ O(n) search │ O(log n) │ O(√n) │
39
+ │ 100% recall │ ~95-99% │ ~90-95% │
40
+ │ Small data │ Medium-Large │ Very Large │
41
+ └─────────────┴───────────────┴───────────────────┘
42
+ ```
43
+
44
+ ## Templates
45
+
46
+ ### Template 1: Pinecone Implementation
47
+
48
+ ```python
49
+ from pinecone import Pinecone, ServerlessSpec
50
+ from typing import List, Dict, Optional
51
+ import hashlib
52
+
53
+ class PineconeVectorStore:
54
+ def __init__(
55
+ self,
56
+ api_key: str,
57
+ index_name: str,
58
+ dimension: int = 1536,
59
+ metric: str = "cosine"
60
+ ):
61
+ self.pc = Pinecone(api_key=api_key)
62
+
63
+ # Create index if not exists
64
+ if index_name not in self.pc.list_indexes().names():
65
+ self.pc.create_index(
66
+ name=index_name,
67
+ dimension=dimension,
68
+ metric=metric,
69
+ spec=ServerlessSpec(cloud="aws", region="us-east-1")
70
+ )
71
+
72
+ self.index = self.pc.Index(index_name)
73
+
74
+ def upsert(
75
+ self,
76
+ vectors: List[Dict],
77
+ namespace: str = ""
78
+ ) -> int:
79
+ """
80
+ Upsert vectors.
81
+ vectors: [{"id": str, "values": List[float], "metadata": dict}]
82
+ """
83
+ # Batch upsert
84
+ batch_size = 100
85
+ total = 0
86
+
87
+ for i in range(0, len(vectors), batch_size):
88
+ batch = vectors[i:i + batch_size]
89
+ self.index.upsert(vectors=batch, namespace=namespace)
90
+ total += len(batch)
91
+
92
+ return total
93
+
94
+ def search(
95
+ self,
96
+ query_vector: List[float],
97
+ top_k: int = 10,
98
+ namespace: str = "",
99
+ filter: Optional[Dict] = None,
100
+ include_metadata: bool = True
101
+ ) -> List[Dict]:
102
+ """Search for similar vectors."""
103
+ results = self.index.query(
104
+ vector=query_vector,
105
+ top_k=top_k,
106
+ namespace=namespace,
107
+ filter=filter,
108
+ include_metadata=include_metadata
109
+ )
110
+
111
+ return [
112
+ {
113
+ "id": match.id,
114
+ "score": match.score,
115
+ "metadata": match.metadata
116
+ }
117
+ for match in results.matches
118
+ ]
119
+
120
+ def search_with_rerank(
121
+ self,
122
+ query: str,
123
+ query_vector: List[float],
124
+ top_k: int = 10,
125
+ rerank_top_n: int = 50,
126
+ namespace: str = ""
127
+ ) -> List[Dict]:
128
+ """Search and rerank results."""
129
+ # Over-fetch for reranking
130
+ initial_results = self.search(
131
+ query_vector,
132
+ top_k=rerank_top_n,
133
+ namespace=namespace
134
+ )
135
+
136
+ # Rerank with cross-encoder or LLM
137
+ reranked = self._rerank(query, initial_results)
138
+
139
+ return reranked[:top_k]
140
+
141
+ def _rerank(self, query: str, results: List[Dict]) -> List[Dict]:
142
+ """Rerank results using cross-encoder."""
143
+ from sentence_transformers import CrossEncoder
144
+
145
+ model = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')
146
+
147
+ pairs = [(query, r["metadata"]["text"]) for r in results]
148
+ scores = model.predict(pairs)
149
+
150
+ for result, score in zip(results, scores):
151
+ result["rerank_score"] = float(score)
152
+
153
+ return sorted(results, key=lambda x: x["rerank_score"], reverse=True)
154
+
155
+ def delete(self, ids: List[str], namespace: str = ""):
156
+ """Delete vectors by ID."""
157
+ self.index.delete(ids=ids, namespace=namespace)
158
+
159
+ def delete_by_filter(self, filter: Dict, namespace: str = ""):
160
+ """Delete vectors matching filter."""
161
+ self.index.delete(filter=filter, namespace=namespace)
162
+ ```
163
+
164
+ ### Template 2: Qdrant Implementation
165
+
166
+ ```python
167
+ from qdrant_client import QdrantClient
168
+ from qdrant_client.http import models
169
+ from typing import List, Dict, Optional
170
+
171
+ class QdrantVectorStore:
172
+ def __init__(
173
+ self,
174
+ url: str = "localhost",
175
+ port: int = 6333,
176
+ collection_name: str = "documents",
177
+ vector_size: int = 1536
178
+ ):
179
+ self.client = QdrantClient(url=url, port=port)
180
+ self.collection_name = collection_name
181
+
182
+ # Create collection if not exists
183
+ collections = self.client.get_collections().collections
184
+ if collection_name not in [c.name for c in collections]:
185
+ self.client.create_collection(
186
+ collection_name=collection_name,
187
+ vectors_config=models.VectorParams(
188
+ size=vector_size,
189
+ distance=models.Distance.COSINE
190
+ ),
191
+ # Optional: enable quantization for memory efficiency
192
+ quantization_config=models.ScalarQuantization(
193
+ scalar=models.ScalarQuantizationConfig(
194
+ type=models.ScalarType.INT8,
195
+ quantile=0.99,
196
+ always_ram=True
197
+ )
198
+ )
199
+ )
200
+
201
+ def upsert(self, points: List[Dict]) -> int:
202
+ """
203
+ Upsert points.
204
+ points: [{"id": str/int, "vector": List[float], "payload": dict}]
205
+ """
206
+ qdrant_points = [
207
+ models.PointStruct(
208
+ id=p["id"],
209
+ vector=p["vector"],
210
+ payload=p.get("payload", {})
211
+ )
212
+ for p in points
213
+ ]
214
+
215
+ self.client.upsert(
216
+ collection_name=self.collection_name,
217
+ points=qdrant_points
218
+ )
219
+ return len(points)
220
+
221
+ def search(
222
+ self,
223
+ query_vector: List[float],
224
+ limit: int = 10,
225
+ filter: Optional[models.Filter] = None,
226
+ score_threshold: Optional[float] = None
227
+ ) -> List[Dict]:
228
+ """Search for similar vectors."""
229
+ results = self.client.search(
230
+ collection_name=self.collection_name,
231
+ query_vector=query_vector,
232
+ limit=limit,
233
+ query_filter=filter,
234
+ score_threshold=score_threshold
235
+ )
236
+
237
+ return [
238
+ {
239
+ "id": r.id,
240
+ "score": r.score,
241
+ "payload": r.payload
242
+ }
243
+ for r in results
244
+ ]
245
+
246
+ def search_with_filter(
247
+ self,
248
+ query_vector: List[float],
249
+ must_conditions: List[Dict] = None,
250
+ should_conditions: List[Dict] = None,
251
+ must_not_conditions: List[Dict] = None,
252
+ limit: int = 10
253
+ ) -> List[Dict]:
254
+ """Search with complex filters."""
255
+ conditions = []
256
+
257
+ if must_conditions:
258
+ conditions.extend([
259
+ models.FieldCondition(
260
+ key=c["key"],
261
+ match=models.MatchValue(value=c["value"])
262
+ )
263
+ for c in must_conditions
264
+ ])
265
+
266
+ filter = models.Filter(must=conditions) if conditions else None
267
+
268
+ return self.search(query_vector, limit=limit, filter=filter)
269
+
270
+ def search_with_sparse(
271
+ self,
272
+ dense_vector: List[float],
273
+ sparse_vector: Dict[int, float],
274
+ limit: int = 10,
275
+ dense_weight: float = 0.7
276
+ ) -> List[Dict]:
277
+ """Hybrid search with dense and sparse vectors."""
278
+ # Requires collection with named vectors
279
+ results = self.client.search(
280
+ collection_name=self.collection_name,
281
+ query_vector=models.NamedVector(
282
+ name="dense",
283
+ vector=dense_vector
284
+ ),
285
+ limit=limit
286
+ )
287
+ return [{"id": r.id, "score": r.score, "payload": r.payload} for r in results]
288
+ ```
289
+
290
+ ### Template 3: pgvector with PostgreSQL
291
+
292
+ ```python
293
+ import asyncpg
294
+ from typing import List, Dict, Optional
295
+ import numpy as np
296
+
297
+ class PgVectorStore:
298
+ def __init__(self, connection_string: str):
299
+ self.connection_string = connection_string
300
+
301
+ async def init(self):
302
+ """Initialize connection pool and extension."""
303
+ self.pool = await asyncpg.create_pool(self.connection_string)
304
+
305
+ async with self.pool.acquire() as conn:
306
+ # Enable extension
307
+ await conn.execute("CREATE EXTENSION IF NOT EXISTS vector")
308
+
309
+ # Create table
310
+ await conn.execute("""
311
+ CREATE TABLE IF NOT EXISTS documents (
312
+ id TEXT PRIMARY KEY,
313
+ content TEXT,
314
+ metadata JSONB,
315
+ embedding vector(1536)
316
+ )
317
+ """)
318
+
319
+ # Create index (HNSW for better performance)
320
+ await conn.execute("""
321
+ CREATE INDEX IF NOT EXISTS documents_embedding_idx
322
+ ON documents
323
+ USING hnsw (embedding vector_cosine_ops)
324
+ WITH (m = 16, ef_construction = 64)
325
+ """)
326
+
327
+ async def upsert(self, documents: List[Dict]):
328
+ """Upsert documents with embeddings."""
329
+ async with self.pool.acquire() as conn:
330
+ await conn.executemany(
331
+ """
332
+ INSERT INTO documents (id, content, metadata, embedding)
333
+ VALUES ($1, $2, $3, $4)
334
+ ON CONFLICT (id) DO UPDATE SET
335
+ content = EXCLUDED.content,
336
+ metadata = EXCLUDED.metadata,
337
+ embedding = EXCLUDED.embedding
338
+ """,
339
+ [
340
+ (
341
+ doc["id"],
342
+ doc["content"],
343
+ doc.get("metadata", {}),
344
+ np.array(doc["embedding"]).tolist()
345
+ )
346
+ for doc in documents
347
+ ]
348
+ )
349
+
350
+ async def search(
351
+ self,
352
+ query_embedding: List[float],
353
+ limit: int = 10,
354
+ filter_metadata: Optional[Dict] = None
355
+ ) -> List[Dict]:
356
+ """Search for similar documents."""
357
+ query = """
358
+ SELECT id, content, metadata,
359
+ 1 - (embedding <=> $1::vector) as similarity
360
+ FROM documents
361
+ """
362
+
363
+ params = [query_embedding]
364
+
365
+ if filter_metadata:
366
+ conditions = []
367
+ for key, value in filter_metadata.items():
368
+ params.append(value)
369
+ conditions.append(f"metadata->>'{key}' = ${len(params)}")
370
+ query += " WHERE " + " AND ".join(conditions)
371
+
372
+ query += f" ORDER BY embedding <=> $1::vector LIMIT ${len(params) + 1}"
373
+ params.append(limit)
374
+
375
+ async with self.pool.acquire() as conn:
376
+ rows = await conn.fetch(query, *params)
377
+
378
+ return [
379
+ {
380
+ "id": row["id"],
381
+ "content": row["content"],
382
+ "metadata": row["metadata"],
383
+ "score": row["similarity"]
384
+ }
385
+ for row in rows
386
+ ]
387
+
388
+ async def hybrid_search(
389
+ self,
390
+ query_embedding: List[float],
391
+ query_text: str,
392
+ limit: int = 10,
393
+ vector_weight: float = 0.5
394
+ ) -> List[Dict]:
395
+ """Hybrid search combining vector and full-text."""
396
+ async with self.pool.acquire() as conn:
397
+ rows = await conn.fetch(
398
+ """
399
+ WITH vector_results AS (
400
+ SELECT id, content, metadata,
401
+ 1 - (embedding <=> $1::vector) as vector_score
402
+ FROM documents
403
+ ORDER BY embedding <=> $1::vector
404
+ LIMIT $3 * 2
405
+ ),
406
+ text_results AS (
407
+ SELECT id, content, metadata,
408
+ ts_rank(to_tsvector('english', content),
409
+ plainto_tsquery('english', $2)) as text_score
410
+ FROM documents
411
+ WHERE to_tsvector('english', content) @@ plainto_tsquery('english', $2)
412
+ LIMIT $3 * 2
413
+ )
414
+ SELECT
415
+ COALESCE(v.id, t.id) as id,
416
+ COALESCE(v.content, t.content) as content,
417
+ COALESCE(v.metadata, t.metadata) as metadata,
418
+ COALESCE(v.vector_score, 0) * $4 +
419
+ COALESCE(t.text_score, 0) * (1 - $4) as combined_score
420
+ FROM vector_results v
421
+ FULL OUTER JOIN text_results t ON v.id = t.id
422
+ ORDER BY combined_score DESC
423
+ LIMIT $3
424
+ """,
425
+ query_embedding, query_text, limit, vector_weight
426
+ )
427
+
428
+ return [dict(row) for row in rows]
429
+ ```
430
+
431
+ ### Template 4: Weaviate Implementation
432
+
433
+ ```python
434
+ import weaviate
435
+ from weaviate.util import generate_uuid5
436
+ from typing import List, Dict, Optional
437
+
438
+ class WeaviateVectorStore:
439
+ def __init__(
440
+ self,
441
+ url: str = "http://localhost:8080",
442
+ class_name: str = "Document"
443
+ ):
444
+ self.client = weaviate.Client(url=url)
445
+ self.class_name = class_name
446
+ self._ensure_schema()
447
+
448
+ def _ensure_schema(self):
449
+ """Create schema if not exists."""
450
+ schema = {
451
+ "class": self.class_name,
452
+ "vectorizer": "none", # We provide vectors
453
+ "properties": [
454
+ {"name": "content", "dataType": ["text"]},
455
+ {"name": "source", "dataType": ["string"]},
456
+ {"name": "chunk_id", "dataType": ["int"]}
457
+ ]
458
+ }
459
+
460
+ if not self.client.schema.exists(self.class_name):
461
+ self.client.schema.create_class(schema)
462
+
463
+ def upsert(self, documents: List[Dict]):
464
+ """Batch upsert documents."""
465
+ with self.client.batch as batch:
466
+ batch.batch_size = 100
467
+
468
+ for doc in documents:
469
+ batch.add_data_object(
470
+ data_object={
471
+ "content": doc["content"],
472
+ "source": doc.get("source", ""),
473
+ "chunk_id": doc.get("chunk_id", 0)
474
+ },
475
+ class_name=self.class_name,
476
+ uuid=generate_uuid5(doc["id"]),
477
+ vector=doc["embedding"]
478
+ )
479
+
480
+ def search(
481
+ self,
482
+ query_vector: List[float],
483
+ limit: int = 10,
484
+ where_filter: Optional[Dict] = None
485
+ ) -> List[Dict]:
486
+ """Vector search."""
487
+ query = (
488
+ self.client.query
489
+ .get(self.class_name, ["content", "source", "chunk_id"])
490
+ .with_near_vector({"vector": query_vector})
491
+ .with_limit(limit)
492
+ .with_additional(["distance", "id"])
493
+ )
494
+
495
+ if where_filter:
496
+ query = query.with_where(where_filter)
497
+
498
+ results = query.do()
499
+
500
+ return [
501
+ {
502
+ "id": item["_additional"]["id"],
503
+ "content": item["content"],
504
+ "source": item["source"],
505
+ "score": 1 - item["_additional"]["distance"]
506
+ }
507
+ for item in results["data"]["Get"][self.class_name]
508
+ ]
509
+
510
+ def hybrid_search(
511
+ self,
512
+ query: str,
513
+ query_vector: List[float],
514
+ limit: int = 10,
515
+ alpha: float = 0.5 # 0 = keyword, 1 = vector
516
+ ) -> List[Dict]:
517
+ """Hybrid search combining BM25 and vector."""
518
+ results = (
519
+ self.client.query
520
+ .get(self.class_name, ["content", "source"])
521
+ .with_hybrid(query=query, vector=query_vector, alpha=alpha)
522
+ .with_limit(limit)
523
+ .with_additional(["score"])
524
+ .do()
525
+ )
526
+
527
+ return [
528
+ {
529
+ "content": item["content"],
530
+ "source": item["source"],
531
+ "score": item["_additional"]["score"]
532
+ }
533
+ for item in results["data"]["Get"][self.class_name]
534
+ ]
535
+ ```
536
+
537
+ ## Best Practices
538
+
539
+ ### Do's
540
+ - **Use appropriate index** - HNSW for most cases
541
+ - **Tune parameters** - ef_search, nprobe for recall/speed
542
+ - **Implement hybrid search** - Combine with keyword search
543
+ - **Monitor recall** - Measure search quality
544
+ - **Pre-filter when possible** - Reduce search space
545
+
546
+ ### Don'ts
547
+ - **Don't skip evaluation** - Measure before optimizing
548
+ - **Don't over-index** - Start with flat, scale up
549
+ - **Don't ignore latency** - P99 matters for UX
550
+ - **Don't forget costs** - Vector storage adds up
551
+
552
+ ## Resources
553
+
554
+ - [Pinecone Docs](https://docs.pinecone.io/)
555
+ - [Qdrant Docs](https://qdrant.tech/documentation/)
556
+ - [pgvector](https://github.com/pgvector/pgvector)
557
+ - [Weaviate Docs](https://weaviate.io/developers/weaviate)