vibes-plug 2.5.0 → 2.14.1

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 (187) hide show
  1. package/.claude/rules/vibes-plug-core.md +32 -0
  2. package/.cursor/rules/vibes-plug-core.mdc +51 -0
  3. package/.cursorrules +42 -0
  4. package/AGENTS.md +37 -7
  5. package/BLUEPRINT.md +319 -217
  6. package/CHANGELOG.md +170 -1
  7. package/CLAUDE.md +70 -0
  8. package/LICENSE +1 -1
  9. package/README.md +611 -415
  10. package/index.js +19 -0
  11. package/package.json +44 -8
  12. package/plugin.json +24 -7
  13. package/scripts/check-anti-slop.js +53 -0
  14. package/scripts/generate_swarm_gif.py +295 -0
  15. package/scripts/install.js +201 -0
  16. package/skills/accessibility-testing-expert/SKILL.md +116 -0
  17. package/skills/ai-llm-integration-expert/SKILL.md +192 -178
  18. package/skills/ai-media-generation-expert/SKILL.md +172 -0
  19. package/skills/ai-prompt-engineering-expert/SKILL.md +134 -0
  20. package/skills/angular-expert/SKILL.md +148 -0
  21. package/skills/anti-slop/SKILL.md +133 -0
  22. package/skills/api-design-expert/SKILL.md +6 -3
  23. package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
  24. package/skills/app-analyzer-optimizer/SKILL.md +6 -3
  25. package/skills/apple-ecosystem-expert/SKILL.md +144 -141
  26. package/skills/astro-framework-expert/SKILL.md +200 -0
  27. package/skills/async-queue-temporal-expert/SKILL.md +189 -26
  28. package/skills/authentication-identity-expert/SKILL.md +78 -181
  29. package/skills/autonomous-red-teamer/SKILL.md +172 -28
  30. package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
  31. package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
  32. package/skills/blockchain-web3-expert/SKILL.md +115 -0
  33. package/skills/bootstrap-to-modern/SKILL.md +9 -6
  34. package/skills/brainstorming/SKILL.md +60 -52
  35. package/skills/browser-automation-expert/SKILL.md +197 -21
  36. package/skills/bun-runtime-expert/SKILL.md +7 -1
  37. package/skills/chatbot-messaging-expert/SKILL.md +114 -0
  38. package/skills/ci-cd-devops-architect/SKILL.md +45 -36
  39. package/skills/cloud-hosting-expert/SKILL.md +7 -1
  40. package/skills/coderabbit/SKILL.md +7 -1
  41. package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
  42. package/skills/cron-scheduler-expert/SKILL.md +303 -297
  43. package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
  44. package/skills/data-telemetry-expert/SKILL.md +7 -1
  45. package/skills/data-visualization-expert/SKILL.md +154 -0
  46. package/skills/database-orm-expert/SKILL.md +165 -294
  47. package/skills/deep-research-analyst/SKILL.md +136 -0
  48. package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
  49. package/skills/design-system-architect/SKILL.md +309 -260
  50. package/skills/desktop-electron-expert/SKILL.md +128 -0
  51. package/skills/documentation-site-expert/SKILL.md +59 -0
  52. package/skills/doku-mcp-server/SKILL.md +7 -1
  53. package/skills/doku-payment-gateway/SKILL.md +7 -1
  54. package/skills/domain-driven-design-expert/SKILL.md +82 -0
  55. package/skills/e2e-testing-expert/SKILL.md +7 -1
  56. package/skills/ecommerce-expert/SKILL.md +87 -0
  57. package/skills/email-notification-expert/SKILL.md +393 -360
  58. package/skills/error-resilience-expert/SKILL.md +506 -479
  59. package/skills/event-driven-architect/SKILL.md +7 -1
  60. package/skills/feature-flag-analytics-expert/SKILL.md +65 -45
  61. package/skills/file-upload-media-expert/SKILL.md +436 -430
  62. package/skills/firebase-security-expert/SKILL.md +7 -1
  63. package/skills/form-validation-expert/SKILL.md +406 -400
  64. package/skills/fullstack-expert/SKILL.md +184 -202
  65. package/skills/gemini-agent-booster/SKILL.md +173 -135
  66. package/skills/geospatial-maps-expert/SKILL.md +80 -0
  67. package/skills/global-a11y-i18n-expert/SKILL.md +7 -1
  68. package/skills/glsl-shader-expert/SKILL.md +158 -69
  69. package/skills/go-programming-expert/SKILL.md +21 -15
  70. package/skills/graph-rag-knowledge-expert/SKILL.md +200 -0
  71. package/skills/graphql-apollo-expert/SKILL.md +113 -107
  72. package/skills/headless-cms-expert/SKILL.md +181 -0
  73. package/skills/hig/SKILL.md +7 -1
  74. package/skills/js-backend-expert/SKILL.md +218 -216
  75. package/skills/legacy-code-translator/SKILL.md +70 -64
  76. package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
  77. package/skills/logging-error-tracking-expert/SKILL.md +343 -337
  78. package/skills/mcp-server-architect/SKILL.md +308 -194
  79. package/skills/micro-frontend-architect/SKILL.md +111 -105
  80. package/skills/mobile-expo-expert/SKILL.md +8 -2
  81. package/skills/modern-css-native-expert/SKILL.md +189 -0
  82. package/skills/monorepo-architect/SKILL.md +7 -1
  83. package/skills/mpa-orchestrator/SKILL.md +20 -1
  84. package/skills/multi-agent-orchestration/SKILL.md +254 -234
  85. package/skills/multiple-entry-points/SKILL.md +37 -1
  86. package/skills/mvc-expert/SKILL.md +7 -1
  87. package/skills/n8n-automation-expert/SKILL.md +89 -0
  88. package/skills/nextjs-app-router-expert/SKILL.md +148 -0
  89. package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
  90. package/skills/payment-gateway-expert/SKILL.md +85 -1
  91. package/skills/pdf-document-generation-expert/SKILL.md +91 -0
  92. package/skills/performance-web-vitals/SKILL.md +7 -1
  93. package/skills/post-quantum-crypto-migrator/SKILL.md +57 -57
  94. package/skills/prd-architect/SKILL.md +182 -201
  95. package/skills/proactive-background-watcher/SKILL.md +67 -61
  96. package/skills/production-ready-hardener/SKILL.md +459 -456
  97. package/skills/pwa-offline-first-expert/SKILL.md +226 -0
  98. package/skills/pydantic-ai-expert/SKILL.md +161 -0
  99. package/skills/python-programming-expert/SKILL.md +407 -401
  100. package/skills/rate-limit-abuse-prevention/SKILL.md +376 -370
  101. package/skills/realtime-collaboration-expert/SKILL.md +55 -1
  102. package/skills/rich-text-editor-expert/SKILL.md +177 -0
  103. package/skills/rust-programming-expert/SKILL.md +7 -1
  104. package/skills/saas-architect/SKILL.md +154 -0
  105. package/skills/saas-billing/SKILL.md +7 -1
  106. package/skills/saas-multi-tenant/SKILL.md +7 -1
  107. package/skills/scalability-clean-code/SKILL.md +7 -1
  108. package/skills/search-engine-expert/SKILL.md +89 -0
  109. package/skills/secure-fuzz-testing/SKILL.md +7 -1
  110. package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -57
  111. package/skills/senior-frontend/SKILL.md +139 -161
  112. package/skills/senior-frontend/scripts/frontend_scaffolder.py +1 -1
  113. package/skills/seo/SKILL.md +41 -17
  114. package/skills/session-memory-manager/SKILL.md +128 -0
  115. package/skills/solidjs-expert/SKILL.md +80 -0
  116. package/skills/spa-orchestrator/SKILL.md +20 -1
  117. package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
  118. package/skills/state-management-expert/SKILL.md +7 -1
  119. package/skills/supabase-security-expert/SKILL.md +7 -1
  120. package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
  121. package/skills/svg-animation-motion-expert/SKILL.md +115 -0
  122. package/skills/synthetic-data-finetuning-expert/SKILL.md +155 -0
  123. package/skills/tailwind-expert/SKILL.md +88 -136
  124. package/skills/tanstack-query-expert/SKILL.md +7 -1
  125. package/skills/tauri-expert/SKILL.md +7 -1
  126. package/skills/typescript-expert/SKILL.md +12 -6
  127. package/skills/ui-ux-pro-max/SKILL.md +25 -3
  128. package/skills/vector-db-rag-expert/SKILL.md +175 -19
  129. package/skills/vercel-ai-sdk-expert/SKILL.md +181 -0
  130. package/skills/visual-qa-vision-agent/SKILL.md +70 -64
  131. package/skills/voice-ai-realtime-agent/SKILL.md +242 -0
  132. package/skills/vue-frontend-expert/SKILL.md +131 -125
  133. package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
  134. package/skills/web-3d-graphics-expert/SKILL.md +262 -80
  135. package/skills/web-game-engine-expert/SKILL.md +281 -48
  136. package/skills/web-scraper/SKILL.md +157 -207
  137. package/skills/website-design-cloner/SKILL.md +179 -173
  138. package/skills/webxr-ar-vr-expert/SKILL.md +108 -63
  139. package/skills/wordpress-headless-expert/SKILL.md +144 -0
  140. package/skills/zero-to-prod-orchestrator/SKILL.md +65 -38
  141. package/skills/zero-trust-secret-vault/SKILL.md +87 -39
  142. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  143. package/.github/workflows/publish.yml +0 -20
  144. package/CONTRIBUTING.md +0 -199
  145. package/SECURITY.md +0 -21
  146. package/banner.png +0 -0
  147. package/skills/ai-cost-token-optimizer/SKILL.md +0 -52
  148. package/skills/asisten_ramah/SKILL.md +0 -41
  149. package/skills/auto-doc-updater/SKILL.md +0 -214
  150. package/skills/autonomous-chaos-monkey/SKILL.md +0 -63
  151. package/skills/autonomous-swarm-director/SKILL.md +0 -69
  152. package/skills/edge-serverless-db-expert/SKILL.md +0 -43
  153. package/skills/hyper-context-synthesizer/SKILL.md +0 -55
  154. package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
  155. package/skills/mcp-client-orchestrator/SKILL.md +0 -70
  156. package/skills/mobile-push-notification-expert/SKILL.md +0 -51
  157. package/skills/monday-design-aesthetic/SKILL.md +0 -67
  158. package/skills/project-context-mapper/SKILL.md +0 -79
  159. package/skills/saas-mvp-launcher/SKILL.md +0 -241
  160. package/skills/saas-transformer/SKILL.md +0 -489
  161. package/skills/saas-transformer/references/billing_integration_guide.md +0 -401
  162. package/skills/self-evolving-memory-graph/SKILL.md +0 -75
  163. package/skills/senior-fullstack/SKILL.md +0 -167
  164. package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
  165. package/skills/senior-fullstack/references/development_workflows.md +0 -222
  166. package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
  167. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  168. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  169. package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
  170. package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
  171. package/skills/seo-geo/SKILL.md +0 -188
  172. package/skills/session-context-loader/SKILL.md +0 -77
  173. package/skills/session-handoff-resume/SKILL.md +0 -158
  174. package/skills/skill_baru/SKILL.md +0 -172
  175. package/skills/supabase-migration/SKILL.md +0 -45
  176. package/skills/token-saver/SKILL.md +0 -119
  177. package/skills/ui-components-expert/SKILL.md +0 -280
  178. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  179. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  180. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  181. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  182. package/skills/ui_ux_expert/SKILL.md +0 -125
  183. package/skills/vibe-code-gardener/SKILL.md +0 -181
  184. package/vibes-swarm-demo.gif +0 -0
  185. /package/skills/{saas-transformer → saas-architect}/references/feature_gating_patterns.md +0 -0
  186. /package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md +0 -0
  187. /package/skills/{saas-transformer → saas-architect}/scripts/saas_transformation_scanner.py +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: vector-db-rag-expert
3
- description: "Expert guide for high-performance Vector Databases, RAG architectures, pgvector HNSW indexing, hybrid search (Dense + BM25), and semantic chunking / Panduan ahli Vector DB, arsitektur RAG, pgvector HNSW, dan hybrid search."
3
+ description: "Expert guide for high-performance Vector Databases, Deep RAG architectures, pgvector 0.8+ HNSW, Reciprocal Rank Fusion (RRF), Cross-Encoder Re-ranking, and Late Chunking / Panduan ahli Vector DB, arsitektur Deep RAG, pgvector HNSW, RRF, dan Re-ranking."
4
4
  author: "Roedy Rustam"
5
5
  ---
6
6
 
7
- # Vector DB & Deep RAG Expert
7
+ # Vector DB & Deep RAG Expert (2026 Edition)
8
8
 
9
9
  [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
10
 
@@ -14,39 +14,195 @@ author: "Roedy Rustam"
14
14
  ## English
15
15
 
16
16
  ### Purpose & Overview
17
- Production-grade guidelines for Vector Databases (pgvector, Qdrant, Pinecone, Milvus), RAG indexing strategies, HNSW vector search, hybrid retrieval (dense vector embeddings + BM25 sparse keyword ranking), semantic document chunking, and RAG evaluation frameworks.
17
+ Production-grade architectural guide for Vector Databases (PostgreSQL `pgvector 0.8+`, Qdrant, LanceDB, Pinecone), Deep RAG indexing strategies, HNSW iterative search, **Reciprocal Rank Fusion (RRF)** hybrid retrieval, **Cross-Encoder Re-ranking** (Cohere Rerank v3, FlashRank, BGE-Reranker-v2), and **Late Chunking** to eliminate context fragmentation.
18
18
 
19
19
  ### Key Capabilities
20
- - **pgvector & Hybrid Search**: PostgreSQL `pgvector` HNSW indexing, cosine/L2 distance metric tuning, and BM25 hybrid re-ranking.
21
- - **RAG Architecture**: Parent-Document retrieval, Hypothetical Document Embeddings (HyDE), and contextual compression.
22
- - **RAG Evaluation**: Automated retrieval quality scoring using Ragas and TruLens.
20
+ 1. **pgvector 0.8+ & HNSW Indexing**: High-dimensional vector storage, cosine/inner-product/L2 distance metric tuning, and iterative HNSW index scans with metadata filtering.
21
+ 2. **Reciprocal Rank Fusion (RRF)**: Combining sparse keyword BM25 ranks with dense semantic vector ranks using $RRF(d) = \sum \frac{1}{k + rank(d)}$, far outperforming naive linear score weighting.
22
+ 3. **Cross-Encoder Re-ranking**: Two-stage retrieval pipeline: retrieve Top-50 candidates via fast hybrid search, then re-rank down to Top-5 using a cross-encoder model to maximize NDCG@10.
23
+ 4. **Late Chunking & Contextual Retrieval**: Embed long-context documents in full before pooling token embeddings into individual chunks, preserving document-level semantics across boundaries.
24
+ 5. **RAG Evaluation**: Continuous retrieval precision and hallucination scoring using automated eval harnesses (Ragas, TruLens, DeepEval).
23
25
 
26
+ ---
27
+
28
+ ### Production Implementation Recipes
29
+
30
+ #### Recipe 1: Reciprocal Rank Fusion (RRF) Hybrid Search with Drizzle ORM
24
31
  ```typescript
25
32
  import { sql } from 'drizzle-orm';
33
+ import { db } from '@/lib/db';
34
+
35
+ export interface SearchResult {
36
+ id: string;
37
+ content: string;
38
+ score: number;
39
+ }
40
+
41
+ /**
42
+ * Executes Reciprocal Rank Fusion (RRF) combining BM25 keyword search and pgvector HNSW
43
+ * k = 60 is the industry standard constant
44
+ */
45
+ export async function reciprocalRankFusionSearch(
46
+ queryVector: number[],
47
+ queryText: string,
48
+ limit = 10,
49
+ k = 60
50
+ ): Promise<SearchResult[]> {
51
+ const formattedVector = JSON.stringify(queryVector);
26
52
 
27
- // Hybrid Search: Vector Cosine Similarity + Full Text Search
28
- export async function hybridSearch(queryVector: number[], queryText: string, limit = 10) {
29
- const result = await db.execute(sql`
30
- SELECT id, title, content,
31
- (1 - (embedding <=> ${JSON.stringify(queryVector)}::vector)) * 0.7 +
32
- ts_rank(fts, websearch_to_tsquery('english', ${queryText})) * 0.3 AS score
33
- FROM documents
34
- ORDER BY score DESC
53
+ const results = await db.execute(sql`
54
+ WITH vector_matches AS (
55
+ SELECT id, ROW_NUMBER() OVER (ORDER BY embedding <=> ${formattedVector}::vector) AS rank
56
+ FROM documents
57
+ WHERE status = 'published'
58
+ ORDER BY embedding <=> ${formattedVector}::vector
59
+ LIMIT 50
60
+ ),
61
+ text_matches AS (
62
+ SELECT id, ROW_NUMBER() OVER (ORDER BY ts_rank_cd(fts, websearch_to_tsquery('english', ${queryText})) DESC) AS rank
63
+ FROM documents
64
+ WHERE fts @@ websearch_to_tsquery('english', ${queryText})
65
+ LIMIT 50
66
+ )
67
+ SELECT
68
+ d.id,
69
+ d.content,
70
+ COALESCE(1.0 / (${k} + v.rank), 0.0) +
71
+ COALESCE(1.0 / (${k} + t.rank), 0.0) AS rrf_score
72
+ FROM documents d
73
+ LEFT JOIN vector_matches v ON d.id = v.id
74
+ LEFT JOIN text_matches t ON d.id = t.id
75
+ WHERE v.id IS NOT NULL OR t.id IS NOT NULL
76
+ ORDER BY rrf_score DESC
35
77
  LIMIT ${limit};
36
78
  `);
37
- return result;
79
+
80
+ return results.rows as unknown as SearchResult[];
38
81
  }
39
82
  ```
40
83
 
84
+ #### Recipe 2: Two-Stage Re-Ranking Pipeline with FlashRank (Node.js / TypeScript)
85
+ ```typescript
86
+ import { FlashRankRegistry } from 'flashrank';
87
+
88
+ const ranker = new FlashRankRegistry();
89
+
90
+ export async function rerankCandidates(query: string, candidates: { id: string; text: string }[], topN = 5) {
91
+ const passages = candidates.map(c => ({ id: c.id, text: c.text }));
92
+
93
+ // Ultra-fast client/server cross-encoder re-ranking
94
+ const reranked = await ranker.rerank({
95
+ query,
96
+ passages,
97
+ model: 'ms-marco-TinyBERT-L-2-v2', // Lightweight, 2ms latency
98
+ });
99
+
100
+ return reranked.slice(0, topN);
101
+ }
102
+ ```
103
+
104
+ ---
105
+
106
+ ### Implementation Checklist
107
+ - [ ] Create `HNSW` index in PostgreSQL: `CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64);`
108
+ - [ ] Configure `hnsw.ef_search = 100` for high-recall queries during production traffic.
109
+ - [ ] Implement Reciprocal Rank Fusion (RRF) with constant `k = 60` instead of arbitrary linear weighting.
110
+ - [ ] Add a Cross-Encoder Re-ranker step before injecting retrieved chunks into the LLM system prompt.
111
+ - [ ] Apply Late Chunking or Contextual Chunking to retain parent document continuity.
112
+
113
+ ## Orchestration & Integration
114
+ - Integrates with: `ai-llm-integration-expert`, `database-orm-expert`, `ai-cost-token-optimizer`, `app-analyzer-optimizer`.
115
+
41
116
  ---
42
117
 
43
118
  <a name="bahasa-indonesia"></a>
44
119
  ## Bahasa Indonesia
45
120
 
46
121
  ### Deskripsi
47
- Panduan tingkat produksi untuk Vector Database (pgvector, Qdrant, Pinecone, Milvus), arsitektur RAG, indeks pgvector HNSW, hybrid search (dense + BM25 sparse re-ranking), semantic chunking, dan evaluasi RAG.
122
+ Panduan arsitektur tingkat produksi untuk Vector Database (PostgreSQL `pgvector 0.8+`, Qdrant, LanceDB, Pinecone), arsitektur Deep RAG modern, pencarian HNSW iteratif, **Reciprocal Rank Fusion (RRF)** hybrid retrieval, **Cross-Encoder Re-ranking** (Cohere Rerank v3, FlashRank, BGE-Reranker-v2), dan **Late Chunking** untuk mencegah fragmentasi konteks.
48
123
 
49
124
  ### Fitur Utama
50
- - **pgvector & Hybrid Search**: PostgreSQL `pgvector` HNSW indexing, tuning jarak cosine/L2, dan re-ranking BM25.
51
- - **Arsitektur RAG**: Retrieval Parent-Document, HyDE (Hypothetical Document Embeddings), dan kompresi kontekstual.
52
- - **Evaluasi RAG**: Scoring kualitas retrieval otomatis menggunakan Ragas dan TruLens.
125
+ 1. **pgvector 0.8+ & Indeks HNSW**: Penyimpanan vektor dimensi tinggi, tuning metrik jarak (cosine/inner-product/L2), dan pemindaian HNSW iteratif dengan filter metadata.
126
+ 2. **Reciprocal Rank Fusion (RRF)**: Menggabungkan peringkat kata kunci BM25 dengan peringkat semantik vektor menggunakan rumus $RRF(d) = \sum \frac{1}{k + rank(d)}$, jauh lebih akurat daripada pembobotan linear biasa.
127
+ 3. **Cross-Encoder Re-ranking**: Pipeline retrieval 2 tahap: ambil 50 kandidat teratas melalui pencarian hybrid, lalu urutkan ulang menjadi 5 dokumen paling relevan menggunakan model cross-encoder.
128
+ 4. **Late Chunking**: Melakukan embedding dokumen secara utuh dalam transformer sebelum memecahnya menjadi chunk-chunk terpisah, mempertahankan makna global dokumen.
129
+ 5. **Evaluasi RAG**: Pengukuran presisi retrieval dan deteksi halusinasi secara otomatis (Ragas, TruLens, DeepEval).
130
+
131
+ ---
132
+
133
+ ### Resep Implementasi Produksi
134
+
135
+ #### Resep 1: Pencarian Hybrid RRF dengan Drizzle ORM
136
+ ```typescript
137
+ import { sql } from 'drizzle-orm';
138
+ import { db } from '@/lib/db';
139
+
140
+ export async function cariDokumenRRF(
141
+ queryVector: number[],
142
+ queryText: string,
143
+ limit = 10,
144
+ k = 60
145
+ ) {
146
+ const vectorStr = JSON.stringify(queryVector);
147
+
148
+ const hasil = await db.execute(sql`
149
+ WITH vector_matches AS (
150
+ SELECT id, ROW_NUMBER() OVER (ORDER BY embedding <=> ${vectorStr}::vector) AS rank
151
+ FROM documents
152
+ WHERE status = 'published'
153
+ ORDER BY embedding <=> ${vectorStr}::vector
154
+ LIMIT 50
155
+ ),
156
+ text_matches AS (
157
+ SELECT id, ROW_NUMBER() OVER (ORDER BY ts_rank_cd(fts, websearch_to_tsquery('english', ${queryText})) DESC) AS rank
158
+ FROM documents
159
+ WHERE fts @@ websearch_to_tsquery('english', ${queryText})
160
+ LIMIT 50
161
+ )
162
+ SELECT
163
+ d.id,
164
+ d.content,
165
+ COALESCE(1.0 / (${k} + v.rank), 0.0) +
166
+ COALESCE(1.0 / (${k} + t.rank), 0.0) AS skor_rrf
167
+ FROM documents d
168
+ LEFT JOIN vector_matches v ON d.id = v.id
169
+ LEFT JOIN text_matches t ON d.id = t.id
170
+ WHERE v.id IS NOT NULL OR t.id IS NOT NULL
171
+ ORDER BY skor_rrf DESC
172
+ LIMIT ${limit};
173
+ `);
174
+
175
+ return hasil.rows;
176
+ }
177
+ ```
178
+
179
+ #### Resep 2: Pipeline Re-Ranking dengan FlashRank (Node.js / TypeScript)
180
+ ```typescript
181
+ import { FlashRankRegistry } from 'flashrank';
182
+
183
+ const ranker = new FlashRankRegistry();
184
+
185
+ export async function susunUlangKandidat(kueri: string, kandidat: { id: string; text: string }[], topN = 5) {
186
+ const passages = kandidat.map(c => ({ id: c.id, text: c.text }));
187
+
188
+ const hasilRerank = await ranker.rerank({
189
+ query: kueri,
190
+ passages,
191
+ model: 'ms-marco-TinyBERT-L-2-v2',
192
+ });
193
+
194
+ return hasilRerank.slice(0, topN);
195
+ }
196
+ ```
197
+
198
+ ---
199
+
200
+ ### Checklist Implementasi
201
+ - [ ] Buat indeks `HNSW` di PostgreSQL: `CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64);`
202
+ - [ ] Konfigurasikan `hnsw.ef_search = 100` untuk kueri dengan recall tinggi di lingkungan produksi.
203
+ - [ ] Terapkan Reciprocal Rank Fusion (RRF) dengan konstanta `k = 60` alih-alih pembobotan linear manual.
204
+ - [ ] Tambahkan langkah Cross-Encoder Re-ranker sebelum menyuntikkan konteks ke prompt LLM.
205
+ - [ ] Terapkan Late Chunking agar konteks dokumen utuh tidak hilang saat dipotong.
206
+
207
+ ## Integrasi Orkestrasi
208
+ - Terintegrasi dengan: `ai-llm-integration-expert`, `database-orm-expert`, `ai-cost-token-optimizer`, `app-analyzer-optimizer`.
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: vercel-ai-sdk-expert
3
+ description: "Expert guide for Vercel AI SDK (Core, UI, RSC), streaming structured data, multi-provider model switching, tool calling loops, and React 19/Next.js 15 AI engineering / Panduan ahli Vercel AI SDK, streaming data terstruktur, dan integrasi AI pada React 19/Next.js 15."
4
+ author: vibes-plug-swarm
5
+ ---
6
+
7
+ # Vercel AI SDK Expert (Core, UI & Fullstack AI Engineering)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Orchestration & Integration
17
+ Connects and orchestrates with domain skills like `senior-frontend`, `nextjs-app-router-expert`, `ai-llm-integration-expert`, `ui-components-expert`, and `multi-agent-orchestration` to deliver reactive, streaming AI interfaces.
18
+
19
+ ### Description
20
+ Production-grade guide for building AI applications using the **Vercel AI SDK (Core & UI)**. Covers unified model provider abstraction (`@ai-sdk/anthropic`, `@ai-sdk/openai`, `@ai-sdk/google`), streaming text and structured objects (`streamText`, `streamObject`), dynamic multi-step tool execution loops with `maxSteps`, client-side React 19 hooks (`useChat`, `useCompletion`), streaming data attachments (`createDataStreamResponse`), and generative UI rendering.
21
+
22
+ **Swarm Synergy:** Within the **Frontend & UI Swarm**, this skill serves as the AI UI Presentation Lead. It translates complex backend multi-agent outputs and streaming tokens into accessible, beautiful web components in Phase 4 & Phase 5.
23
+
24
+ ### Trigger Conditions
25
+ - Integrating conversational chat, streaming completions, or generative UI in React 19 / Next.js 15.
26
+ - Implementing structured data extraction using `generateObject` or `streamObject` with Zod schemas.
27
+ - Building autonomous multi-step tool-calling loops on Next.js Route Handlers or Server Actions.
28
+ - Switching seamlessly across frontier providers (Claude 3.7 Sonnet, Gemini 3.8 Flash, OpenAI o3/GPT-4.5, Ollama).
29
+ - Building streaming data channels with custom metadata, tool status indicators, and citations.
30
+
31
+ ### Vercel AI SDK Architecture (Core vs UI)
32
+
33
+ ```
34
+ ┌─────────────────────────────────────────────────────────────┐
35
+ │ CLIENT LAYER │
36
+ │ useChat / useCompletion / Generative UI React Components │
37
+ │ • Optimistic updates • Stream reader • Tool invocation │
38
+ └──────────────────────────────▲──────────────────────────────┘
39
+ │ HTTP SSE / Data Stream Protocol
40
+ ┌──────────────────────────────▼──────────────────────────────┐
41
+ │ SERVER ROUTE / ACTION │
42
+ │ streamText({ │
43
+ │ model: anthropic('claude-3-7-sonnet-20250219'), │
44
+ │ tools: { weatherTool, dbQueryTool }, │
45
+ │ maxSteps: 5, │
46
+ │ }).toDataStreamResponse() │
47
+ └─────────────────────────────────────────────────────────────┘
48
+ ```
49
+
50
+ ### Core Implementation Guidelines
51
+
52
+ #### 1. Next.js 15 Route Handler with Multi-Step Tool Calling Loop
53
+ Use `streamText` with `maxSteps` to enable the model to autonomously call tools, review results, and continue reasoning:
54
+ ```typescript
55
+ // app/api/chat/route.ts
56
+ import { anthropic } from '@ai-sdk/anthropic';
57
+ import { streamText, tool } from 'ai';
58
+ import { z } from 'zod';
59
+
60
+ export const maxDuration = 60; // Allow long-running agentic reasoning
61
+
62
+ export async function POST(req: Request) {
63
+ const { messages } = await req.json();
64
+
65
+ const result = streamText({
66
+ model: anthropic('claude-3-7-sonnet-20250219'),
67
+ messages,
68
+ maxSteps: 5, // Enables iterative tool calling loop
69
+ tools: {
70
+ calculateMetrics: tool({
71
+ description: 'Computes analytical metrics from raw time series data',
72
+ parameters: z.object({
73
+ datasetId: z.string(),
74
+ metricType: z.enum(['p95_latency', 'error_rate', 'throughput']),
75
+ }),
76
+ execute: async ({ datasetId, metricType }) => {
77
+ const data = await fetchDatasetMetrics(datasetId, metricType);
78
+ return { datasetId, metricType, value: data.result };
79
+ },
80
+ }),
81
+ },
82
+ system: 'You are an elite software performance auditor. Always back up your conclusions with data tool outputs.',
83
+ });
84
+
85
+ return result.toDataStreamResponse();
86
+ }
87
+ ```
88
+
89
+ #### 2. Streaming Type-Safe Structured Objects (`streamObject`)
90
+ Stream structured JSON objects directly into the UI while generating:
91
+ ```typescript
92
+ import { google } from '@ai-sdk/google';
93
+ import { streamObject } from 'ai';
94
+ import { z } from 'zod';
95
+
96
+ export async function POST(req: Request) {
97
+ const { codeDiff } = await req.json();
98
+
99
+ const result = streamObject({
100
+ model: google('gemini-2.5-flash'),
101
+ schema: z.object({
102
+ securityVulnerabilities: z.array(z.object({
103
+ severity: z.enum(['low', 'medium', 'high', 'critical']),
104
+ cwe: z.string(),
105
+ explanation: z.string(),
106
+ suggestedFix: z.string(),
107
+ })),
108
+ overallRiskScore: z.number().min(0).max(100),
109
+ passesReview: z.boolean(),
110
+ }),
111
+ prompt: `Audit the following git diff for security regressions:\n${codeDiff}`,
112
+ });
113
+
114
+ return result.toTextStreamResponse();
115
+ }
116
+ ```
117
+
118
+ #### 3. Client Hook Integration (`useChat` with Tool Invocations)
119
+ Render real-time streaming tokens, loading skeletons, and interactive tool call results:
120
+ ```tsx
121
+ 'use client';
122
+
123
+ import { useChat } from '@ai-sdk/react';
124
+
125
+ export function AgenticChat() {
126
+ const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
127
+ maxSteps: 5,
128
+ });
129
+
130
+ return (
131
+ <div className="flex flex-col h-[600px] w-full max-w-2xl mx-auto border rounded-xl p-4 bg-background">
132
+ <div className="flex-1 overflow-y-auto space-y-4 pr-2">
133
+ {messages.map((m) => (
134
+ <div key={m.id} className={`flex ${m.role === 'user' ? 'justify-end' : 'justify-start'}`}>
135
+ <div className={`p-3 rounded-lg max-w-[80%] ${m.role === 'user' ? 'bg-primary text-primary-foreground' : 'bg-muted'}`}>
136
+ <div className="whitespace-pre-wrap">{m.content}</div>
137
+ {m.toolInvocations?.map((toolInvocation) => (
138
+ <div key={toolInvocation.toolCallId} className="mt-2 text-xs p-2 bg-black/10 rounded">
139
+ <span className="font-semibold">Tool [{toolInvocation.toolName}]:</span>{' '}
140
+ {'result' in toolInvocation ? JSON.stringify(toolInvocation.result) : 'Executing...'}
141
+ </div>
142
+ ))}
143
+ </div>
144
+ </div>
145
+ ))}
146
+ </div>
147
+ <form onSubmit={handleSubmit} className="flex gap-2 pt-3 border-t">
148
+ <input
149
+ value={input}
150
+ onChange={handleInputChange}
151
+ placeholder="Ask the agent..."
152
+ className="flex-1 px-3 py-2 border rounded-md"
153
+ />
154
+ <button type="submit" disabled={isLoading} className="px-4 py-2 bg-primary text-primary-foreground rounded-md">
155
+ Send
156
+ </button>
157
+ </form>
158
+ </div>
159
+ );
160
+ }
161
+ ```
162
+
163
+ ---
164
+
165
+ <a name="bahasa-indonesia"></a>
166
+ ## Bahasa Indonesia
167
+
168
+ ### Integrasi Orkestrasi
169
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `senior-frontend`, `nextjs-app-router-expert`, `ai-llm-integration-expert`, `ui-components-expert`, dan `multi-agent-orchestration` untuk menghadirkan antarmuka AI yang reaktif dan berlatensi rendah.
170
+
171
+ ### Deskripsi
172
+ Panduan produksi untuk membangun aplikasi AI menggunakan **Vercel AI SDK (Core & UI)**. Mencakup abstraksi penyedia model terpadu (`@ai-sdk/anthropic`, `@ai-sdk/openai`, `@ai-sdk/google`), streaming teks dan objek terstruktur (`streamText`, `streamObject`), siklus eksekusi tool multi-langkah otonom dengan `maxSteps`, hook klien React 19 (`useChat`, `useCompletion`), streaming respons saluran data (`createDataStreamResponse`), dan rendering Generative UI.
173
+
174
+ **Sinergi Swarm:** Di dalam **Frontend & UI Swarm**, skill ini berperan sebagai Pemimpin Presentasi UI AI. Skill ini bertugas mentransformasikan keluaran multi-agen backend dan token streaming menjadi komponen web yang interaktif, aksesibel, dan elegan pada Fase 4 & Fase 5.
175
+
176
+ ### Kondisi Pemicu
177
+ - Mengintegrasikan chat percakapan, streaming respons, atau generative UI di React 19 / Next.js 15.
178
+ - Menerapkan ekstraksi data terstruktur dengan validasi skema Zod via `generateObject` atau `streamObject`.
179
+ - Membangun loop pemanggilan tool (*tool-calling loops*) multi-langkah di Route Handler atau Server Actions.
180
+ - Beralih fleksibel antar penyedia model frontier (Claude 3.7 Sonnet, Gemini 3.8 Flash, OpenAI o3/GPT-4.5, Ollama).
181
+ - Mengelola status eksekusi tool, indikator loading, dan rendering komponen UI secara dinamis saat streaming berlangsung.
@@ -1,65 +1,71 @@
1
- ---
2
- name: visual-qa-vision-agent
3
- description: "Equips the AI agent with visual QA capabilities using Playwright/Puppeteer and the agent's innate Vision capabilities to self-correct UI layout, CSS alignment, and visual regressions."
1
+ ---
2
+ name: visual-qa-vision-agent
3
+ description: "Equips the AI agent with visual QA capabilities using Playwright/Puppeteer and the agent's innate Vision capabilities to self-correct UI layout, CSS alignment, and visual regressions."
4
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # Visual QA & Vision Agent
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Description
17
- This skill transforms the agent from a blind code generator into a visual designer. Instead of hoping the CSS looks correct, the agent is instructed to write a script that takes a screenshot of the newly created component, analyzes the screenshot using its own Vision AI capabilities, and iteratively tweaks the CSS until it matches the design intent perfectly.
18
-
19
- ### Trigger Conditions
20
- Activate this skill when the user says:
21
- - "Fix the CSS, the button is misaligned."
22
- - "Make it look exactly like this mockup."
23
- - "Ensure the UI is responsive on mobile screens."
24
-
25
- ### Core Concepts
26
-
27
- #### 1. The Visual QA Loop
28
- 1. **Code:** The agent writes the HTML/CSS/React component.
29
- 2. **Serve:** The agent starts a local dev server in the background.
30
- 3. **Capture:** The agent runs a quick Playwright/Puppeteer script to take screenshots at various viewports (Mobile, Tablet, Desktop).
31
- 4. **Analyze:** The agent receives the screenshot (via the `view_file` tool on the image) and analyzes the visual hierarchy, contrast, and alignment.
32
- 5. **Correct:** The agent fixes margin, padding, or flexbox issues based on what it *saw*, not just what the code says.
33
-
34
- #### 2. Agent Constraints (Mandatory Visual Verification)
35
- - **NO BLIND CSS GUESSING**: You are strictly prohibited from finalizing a frontend component without verifying it visually first. You MUST use a `browser_subagent` to capture a screenshot of your work.
36
- - **Pixel-Perfect Validation**: Compare the screenshot against the initial design spec or generic UI/UX best practices. Iterate on the CSS until the visual output is flawless.
37
- - Always check contrast ratios visually if design tokens are overridden.
38
-
39
- ---
40
-
41
- ### Integration with Other Skills (MANDATORY)
42
- - `browser-automation-expert` — Provides the Playwright code needed to capture the screenshots.
43
- - `tailwind-expert` — Provides the CSS utility classes used to fix the alignment issues discovered by Vision.
44
- - `ui-components-expert` — Defines the correct visual standards (spacing, sizing) the agent should look for.
45
-
46
- ### Referenced By Orchestrators (MANDATORY)
47
- - `brainstorming` — Add to "UI/UX & Design Systems".
48
- - `zero-to-prod-orchestrator` — Phase 5 (Frontend / UI Validation).
49
-
50
- ---
51
-
52
- <a name="bahasa-indonesia"></a>
53
- ## Bahasa Indonesia
54
-
55
- ### Deskripsi
56
- Skill ini memanfaatkan kemampuan *Vision* (penglihatan) bawaan AI untuk melakukan *Quality Assurance* (QA) visual. Agen tidak lagi sekadar menebak CSS secara buta, melainkan mengambil *screenshot* dari halaman yang dibuatnya, melihat hasilnya, dan mengkoreksi *margin/padding* secara mandiri.
57
-
58
- ### Kondisi Pemicu
59
- - Saat pengguna meminta untuk merapikan UI yang berantakan.
60
- - Saat melakukan *cloning* desain dari gambar *mockup*.
61
-
62
- ### Panduan Singkat
63
- - **Gunakan Mata Anda (Wajib Verifikasi Visual):** Anda dilarang keras memfinalisasi atau menyelesaikan tugas frontend tanpa melihat hasilnya terlebih dahulu. Anda WAJIB mengambil *screenshot*, melihatnya menggunakan tool `view_file`, dan memverifikasi layout secara visual (*pixel-perfect*).
64
- - **Siklus Visual:** Tulis Kode ➔ Ambil Screenshot ➔ Analisis dengan *Vision* ➔ Perbaiki Tailwind/CSS ➔ Selesai.
65
- - **Jangan Menebak:** Terkadang `justify-center` tidak berfungsi karena ada pembungkus (*wrapper*) absolut. Jangan menebak-nebak di dalam kode; lihat hasil akhirnya secara visual!
5
+ ---
6
+
7
+ # Visual QA & Vision Agent
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Orchestration & Integration
17
+ Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
18
+
19
+ ### Description
20
+ This skill transforms the agent from a blind code generator into a visual designer. Instead of hoping the CSS looks correct, the agent is instructed to write a script that takes a screenshot of the newly created component, analyzes the screenshot using its own Vision AI capabilities, and iteratively tweaks the CSS until it matches the design intent perfectly.
21
+
22
+ ### Trigger Conditions
23
+ Activate this skill when the user says:
24
+ - "Fix the CSS, the button is misaligned."
25
+ - "Make it look exactly like this mockup."
26
+ - "Ensure the UI is responsive on mobile screens."
27
+
28
+ ### Core Concepts
29
+
30
+ #### 1. The Visual QA Loop
31
+ 1. **Code:** The agent writes the HTML/CSS/React component.
32
+ 2. **Serve:** The agent starts a local dev server in the background.
33
+ 3. **Capture:** The agent runs a quick Playwright/Puppeteer script to take screenshots at various viewports (Mobile, Tablet, Desktop).
34
+ 4. **Analyze:** The agent receives the screenshot (via the `view_file` tool on the image) and analyzes the visual hierarchy, contrast, and alignment.
35
+ 5. **Correct:** The agent fixes margin, padding, or flexbox issues based on what it *saw*, not just what the code says.
36
+
37
+ #### 2. Agent Constraints (Mandatory Visual Verification)
38
+ - **NO BLIND CSS GUESSING**: You are strictly prohibited from finalizing a frontend component without verifying it visually first. You MUST use a `browser_subagent` to capture a screenshot of your work.
39
+ - **Pixel-Perfect Validation**: Compare the screenshot against the initial design spec or generic UI/UX best practices. Iterate on the CSS until the visual output is flawless.
40
+ - Always check contrast ratios visually if design tokens are overridden.
41
+
42
+ ---
43
+
44
+ ### Integration with Other Skills (MANDATORY)
45
+ - `browser-automation-expert` — Provides the Playwright code needed to capture the screenshots.
46
+ - `tailwind-expert` — Provides the CSS utility classes used to fix the alignment issues discovered by Vision.
47
+ - `ui-components-expert` — Defines the correct visual standards (spacing, sizing) the agent should look for.
48
+
49
+ ### Referenced By Orchestrators (MANDATORY)
50
+ - `brainstorming` — Add to "UI/UX & Design Systems".
51
+ - `zero-to-prod-orchestrator` — Phase 5 (Frontend / UI Validation).
52
+
53
+ ---
54
+
55
+ <a name="bahasa-indonesia"></a>
56
+ ## Bahasa Indonesia
57
+
58
+ ### Integrasi Orkestrasi
59
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
60
+
61
+ ### Deskripsi
62
+ Skill ini memanfaatkan kemampuan *Vision* (penglihatan) bawaan AI untuk melakukan *Quality Assurance* (QA) visual. Agen tidak lagi sekadar menebak CSS secara buta, melainkan mengambil *screenshot* dari halaman yang dibuatnya, melihat hasilnya, dan mengkoreksi *margin/padding* secara mandiri.
63
+
64
+ ### Kondisi Pemicu
65
+ - Saat pengguna meminta untuk merapikan UI yang berantakan.
66
+ - Saat melakukan *cloning* desain dari gambar *mockup*.
67
+
68
+ ### Panduan Singkat
69
+ - **Gunakan Mata Anda (Wajib Verifikasi Visual):** Anda dilarang keras memfinalisasi atau menyelesaikan tugas frontend tanpa melihat hasilnya terlebih dahulu. Anda WAJIB mengambil *screenshot*, melihatnya menggunakan tool `view_file`, dan memverifikasi layout secara visual (*pixel-perfect*).
70
+ - **Siklus Visual:** Tulis Kode ➔ Ambil Screenshot ➔ Analisis dengan *Vision* ➔ Perbaiki Tailwind/CSS ➔ Selesai.
71
+ - **Jangan Menebak:** Terkadang `justify-center` tidak berfungsi karena ada pembungkus (*wrapper*) absolut. Jangan menebak-nebak di dalam kode; lihat hasil akhirnya secara visual!