vibes-plug 2.11.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.
- package/.cursor/rules/vibes-plug-core.mdc +3 -3
- package/.cursorrules +3 -3
- package/AGENTS.md +4 -4
- package/BLUEPRINT.md +16 -6
- package/CHANGELOG.md +37 -0
- package/CLAUDE.md +8 -8
- package/README.md +85 -115
- package/index.js +1 -1
- package/package.json +2 -2
- package/plugin.json +2 -2
- package/scripts/check-anti-slop.js +53 -0
- package/scripts/generate_swarm_gif.py +2 -2
- package/skills/ai-llm-integration-expert/SKILL.md +22 -15
- package/skills/ai-prompt-engineering-expert/SKILL.md +133 -83
- package/skills/anti-slop/SKILL.md +133 -0
- package/skills/async-queue-temporal-expert/SKILL.md +135 -158
- package/skills/authentication-identity-expert/SKILL.md +172 -278
- package/skills/brainstorming/SKILL.md +26 -26
- package/skills/database-orm-expert/SKILL.md +164 -303
- package/skills/deep-research-analyst/SKILL.md +136 -0
- package/skills/design-system-architect/SKILL.md +31 -1
- package/skills/email-notification-expert/SKILL.md +31 -4
- package/skills/error-resilience-expert/SKILL.md +21 -0
- package/skills/fullstack-expert/SKILL.md +183 -260
- package/skills/glsl-shader-expert/SKILL.md +190 -107
- package/skills/graph-rag-knowledge-expert/SKILL.md +42 -1
- package/skills/mcp-server-architect/SKILL.md +15 -1
- package/skills/prd-architect/SKILL.md +181 -206
- package/skills/production-ready-hardener/SKILL.md +16 -19
- package/skills/pwa-offline-first-expert/SKILL.md +42 -1
- package/skills/pydantic-ai-expert/SKILL.md +161 -0
- package/skills/saas-architect/SKILL.md +154 -0
- package/skills/senior-frontend/SKILL.md +9 -11
- package/skills/senior-frontend/scripts/frontend_scaffolder.py +1 -1
- package/skills/session-memory-manager/SKILL.md +128 -0
- package/skills/synthetic-data-finetuning-expert/SKILL.md +155 -0
- package/skills/ui-ux-pro-max/SKILL.md +4 -2
- package/skills/vercel-ai-sdk-expert/SKILL.md +181 -0
- package/skills/voice-ai-realtime-agent/SKILL.md +41 -1
- package/skills/web-3d-graphics-expert/SKILL.md +313 -137
- package/skills/web-game-engine-expert/SKILL.md +329 -102
- package/skills/webxr-ar-vr-expert/SKILL.md +162 -123
- package/skills/zero-to-prod-orchestrator/SKILL.md +26 -24
- package/skills/ai-cost-token-optimizer/SKILL.md +0 -82
- package/skills/ai-evals-benchmark-expert/SKILL.md +0 -188
- package/skills/asisten-ramah/SKILL.md +0 -47
- package/skills/auto-doc-updater/SKILL.md +0 -220
- package/skills/autonomous-chaos-monkey/SKILL.md +0 -63
- package/skills/background-jobs-queue-expert/SKILL.md +0 -235
- package/skills/database-migration-versioning-expert/SKILL.md +0 -90
- package/skills/edge-serverless-db-expert/SKILL.md +0 -99
- package/skills/mcp-client-orchestrator/SKILL.md +0 -76
- package/skills/mobile-push-notification-expert/SKILL.md +0 -71
- package/skills/monday-design-aesthetic/SKILL.md +0 -73
- package/skills/project-context-mapper/SKILL.md +0 -85
- package/skills/saas-mvp-launcher/SKILL.md +0 -260
- package/skills/saas-transformer/SKILL.md +0 -500
- package/skills/saas-transformer/references/billing_integration_guide.md +0 -401
- package/skills/self-evolving-memory-graph/SKILL.md +0 -91
- package/skills/session-context-loader/SKILL.md +0 -83
- package/skills/session-handoff-resume/SKILL.md +0 -164
- package/skills/skill-baru/SKILL.md +0 -178
- package/skills/supabase-migration/SKILL.md +0 -91
- package/skills/token-saver/SKILL.md +0 -119
- package/skills/ui-components-expert/SKILL.md +0 -166
- package/skills/vibe-code-gardener/SKILL.md +0 -181
- /package/skills/{saas-transformer → saas-architect}/references/feature_gating_patterns.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/scripts/saas_transformation_scanner.py +0 -0
|
@@ -215,6 +215,30 @@ import { Dialog, Button, Select } from '@base-ui-components/react';
|
|
|
215
215
|
</Dialog.Root>
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
+
### The 4 Pillars of UI Components Catalog
|
|
219
|
+
|
|
220
|
+
#### 1. Input Controls (Buttons, Inputs, Selects)
|
|
221
|
+
- **Visual States**: Explicitly define `default`, `hover`, `active`, `focus`, `disabled`, and `error`.
|
|
222
|
+
- **Validation**: Display inline validation on blur using `aria-invalid` and `aria-describedby` (React Hook Form + Zod).
|
|
223
|
+
- **Touch Targets**: Minimum 44×44px (WCAG 2.5.8), M3 recommends 48×48px.
|
|
224
|
+
- **M3 Integration**: Use M3 button tiers (Filled, Tonal, Elevated, Outlined, Text) and FABs for primary actions.
|
|
225
|
+
|
|
226
|
+
#### 2. Navigation (Navbars, Tabs, Command Palettes)
|
|
227
|
+
- **Command Palette**: Add `⌘K` command menu via `cmdk`.
|
|
228
|
+
- **Responsive Layout**: Bottom nav (<768px), collapsible rail (tablet), full sidebar (desktop).
|
|
229
|
+
- **Smooth Page Transitions**: In Next.js 15, leverage `<Link viewTransition>` for layout morphing.
|
|
230
|
+
- **Active State**: Clear high-contrast indicator with `role="navigation"` and `aria-current="page"`.
|
|
231
|
+
|
|
232
|
+
#### 3. Information & Feedback (Toasts, Skeletons, Empty States)
|
|
233
|
+
- **Toasts**: Use **Sonner**; cap at max 3 concurrent visible toasts. Auto-dismiss success, keep errors persistent.
|
|
234
|
+
- **Loading UX**: Use layout-matching Skeletons over spinners to eliminate Cumulative Layout Shift (CLS).
|
|
235
|
+
- **Empty States**: Clear illustration, contextual message, and primary CTA.
|
|
236
|
+
|
|
237
|
+
#### 4. Containers & Layout (Cards, Modals, Sheets)
|
|
238
|
+
- **Modals & Dialogs**: Radix UI / Base UI Dialog with automatic focus trapping and background scroll lock.
|
|
239
|
+
- **Sheets / Drawers**: Bottom sheet for mobile secondary actions; side sheet on desktop.
|
|
240
|
+
- **Cards**: Flat border or subtle shadow (`shadow-sm`); avoid heavy drop shadows in light mode.
|
|
241
|
+
|
|
218
242
|
### WCAG 2.2 Accessibility Checklist
|
|
219
243
|
- [ ] All interactive elements have visible focus indicators (`ring-2`).
|
|
220
244
|
- [ ] Color contrast ≥ 4.5:1 (text), ≥ 3:1 (large text / UI components).
|
|
@@ -266,6 +290,12 @@ shadcn/ui v2 memperkenalkan sistem registry — distribusikan komponen Anda seba
|
|
|
266
290
|
### Base UI 1.x — Primitif Aksesibilitas Tanpa Gaya
|
|
267
291
|
Base UI (dari tim MUI) adalah alternatif Radix UI untuk 2026 dengan dukungan native React 19. Sepenuhnya tanpa gaya — terapkan className/Tailwind apapun.
|
|
268
292
|
|
|
293
|
+
### Katalog 4 Pilar Komponen UI
|
|
294
|
+
1. **Input Controls (Tombol, Input, Select)**: Definisikan status visual (`default`, `hover`, `active`, `focus`, `disabled`, `error`). Tampilkan validasi inline on-blur (`aria-invalid`, `aria-describedby` via React Hook Form + Zod). Target sentuh minimal 44x44px.
|
|
295
|
+
2. **Navigasi (Navbar, Tab, Command Palette)**: Sediakan menu perintah `⌘K` dengan `cmdk`. Layout responsif (navigasi bawah di mobile, rail di tablet, sidebar penuh di desktop). Transisi halaman halus via `<Link viewTransition>` di Next.js 15.
|
|
296
|
+
3. **Informasi & Feedback (Toast, Skeleton, Empty State)**: Gunakan **Sonner** untuk toast (maksimal 3 bersamaan). Gunakan Skeleton sesuai tata letak untuk mencegah CLS dibanding spinner.
|
|
297
|
+
4. **Wadah & Layout (Card, Modal, Sheet)**: Dialog/Modal dengan penguncian scroll dan focus trapping otomatis (Base UI/Radix). Gunakan bottom sheet di mobile dan side sheet di desktop.
|
|
298
|
+
|
|
269
299
|
### Checklist Aksesibilitas WCAG 2.2
|
|
270
300
|
- Semua elemen interaktif memiliki indikator fokus yang terlihat.
|
|
271
301
|
- Kontras warna ≥ 4.5:1 (teks), ≥ 3:1 (komponen UI).
|
|
@@ -276,4 +306,4 @@ Base UI (dari tim MUI) adalah alternatif Radix UI untuk 2026 dengan dukungan nat
|
|
|
276
306
|
|
|
277
307
|
|
|
278
308
|
## Orchestration & Integration
|
|
279
|
-
- Integrates with frontend orchestrators, Tailwind v4, Base UI, and shadcn/ui.
|
|
309
|
+
- Integrates with frontend orchestrators, Tailwind v4, Base UI, and shadcn/ui.
|
|
@@ -295,6 +295,29 @@ export async function POST(request: Request) {
|
|
|
295
295
|
|
|
296
296
|
---
|
|
297
297
|
|
|
298
|
+
### 7. Mobile Push Notifications & iOS Live Activities
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
import * as Notifications from 'expo-notifications';
|
|
302
|
+
|
|
303
|
+
// Register for push tokens (Expo Push / FCM / APNs)
|
|
304
|
+
export async function registerForPushNotificationsAsync() {
|
|
305
|
+
const { status: existingStatus } = await Notifications.getPermissionsAsync();
|
|
306
|
+
let finalStatus = existingStatus;
|
|
307
|
+
if (existingStatus !== 'granted') {
|
|
308
|
+
const { status } = await Notifications.requestPermissionsAsync();
|
|
309
|
+
finalStatus = status;
|
|
310
|
+
}
|
|
311
|
+
if (finalStatus !== 'granted') return null;
|
|
312
|
+
return (await Notifications.getExpoPushTokenAsync()).data;
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
- **Expo Push & FCM**: Send batched push notifications with deep links, actions, and custom data payloads.
|
|
316
|
+
- **iOS Live Activities / Dynamic Island**: Update real-time status (orders, deliveries, live events) using ActivityKit.
|
|
317
|
+
- **Push Token Lifecycle**: Save push tokens to database associated with `userId`; handle token rotation and app reinstall events.
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
298
321
|
### Common Pitfalls to Avoid
|
|
299
322
|
|
|
300
323
|
| Anti-Pattern | Problem | Correct Approach |
|
|
@@ -349,6 +372,11 @@ Aktifkan skill ini ketika:
|
|
|
349
372
|
|
|
350
373
|
**Rekomendasi**: Gunakan **Resend** untuk kebanyakan proyek baru (DX terbaik dengan React Email). Gunakan **Postmark** untuk email transaksional misi-kritis. Gunakan **AWS SES** untuk optimasi biaya volume tinggi (10k+/hari).
|
|
351
374
|
|
|
375
|
+
### Notifikasi Push Mobile & iOS Live Activities
|
|
376
|
+
- **Expo Push & FCM**: Kirim notifikasi push masal dengan payload kustom, aksi tombol, dan deep linking ke rute aplikasi (Expo Router).
|
|
377
|
+
- **iOS Live Activities**: Tampilkan status dinamis secara real-time pada Dynamic Island dan Lock Screen iOS menggunakan ActivityKit.
|
|
378
|
+
- **Siklus Hidup Push Token**: Simpan token push ke database per `userId` dan tangani event rotasi token saat instal ulang aplikasi.
|
|
379
|
+
|
|
352
380
|
### Kesalahan Umum yang Harus Dihindari
|
|
353
381
|
|
|
354
382
|
| Anti-Pola | Masalah | Pendekatan yang Benar |
|
|
@@ -361,8 +389,7 @@ Aktifkan skill ini ketika:
|
|
|
361
389
|
### Integrasi dengan Skill Lain
|
|
362
390
|
|
|
363
391
|
- `saas-billing` — Email kuitansi pembayaran, sekuens dunning gagal bayar
|
|
364
|
-
- `saas-
|
|
392
|
+
- `saas-architect` — Email undangan tim, notifikasi workspace
|
|
365
393
|
- `authentication-identity-expert` — Email reset password, verifikasi email, kode MFA
|
|
366
|
-
- `
|
|
367
|
-
- `
|
|
368
|
-
- `production-ready-hardener` — Audit deliverabilitas email sebelum peluncuran
|
|
394
|
+
- `async-queue-temporal-expert` — Worker antrean pengiriman email & push dengan BullMQ/Inngest
|
|
395
|
+
- `production-ready-hardener` — Audit deliverabilitas email sebelum peluncuran
|
|
@@ -411,6 +411,18 @@ worker.on('failed', async (job, err) => {
|
|
|
411
411
|
|
|
412
412
|
---
|
|
413
413
|
|
|
414
|
+
### 7. Chaos Engineering & Automated Failure Injection Protocol
|
|
415
|
+
|
|
416
|
+
1. **Chaos Injection**: Actively test system resilience by simulating network disruptions, killing database connections, and injecting artificial latency (500ms–5000ms) or dropped packets using Toxiproxy or mock network middleware.
|
|
417
|
+
2. **Failure Observation**: Monitor application behavior under duress. Check whether the UI hangs, returns blank screens, or if connections leak.
|
|
418
|
+
3. **Automated Resilience Hardening**:
|
|
419
|
+
- Implement Circuit Breakers around fragile external API dependencies.
|
|
420
|
+
- Add exponential backoff with full jitter to avoid thundering herds.
|
|
421
|
+
- Implement graceful degradation: render cached data or contextual fallback states rather than throwing unhandled exceptions.
|
|
422
|
+
4. **Resilience Verification**: Re-run the disruption loop until all failure modes are safely caught, logged to Sentry, and recovered from automatically.
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
414
426
|
### Common Pitfalls to Avoid
|
|
415
427
|
|
|
416
428
|
| Anti-Pattern | Problem | Correct Approach |
|
|
@@ -466,6 +478,15 @@ Aktifkan skill ini ketika:
|
|
|
466
478
|
| **Isolasi Kegagalan** | Komponen yang gagal tidak boleh menghancurkan seluruh halaman |
|
|
467
479
|
| **Lacak Semuanya** | Setiap error yang tidak tertangani harus sampai ke sistem monitoring |
|
|
468
480
|
|
|
481
|
+
### Protokol Chaos Engineering & Injeksi Kegagalan Otomatis
|
|
482
|
+
1. **Injeksi Kekacauan (Chaos Injection)**: Uji ketahanan dengan sengaja memutuskan koneksi database, menyuntikkan latensi jaringan (Toxiproxy), atau membuang paket request ke API eksternal.
|
|
483
|
+
2. **Observasi Kegagalan**: Periksa apakah UI macet, layar menjadi putih kosong, atau connection pool bocor saat dependensi bermasalah.
|
|
484
|
+
3. **Hardening Ketahanan Otomatis**:
|
|
485
|
+
- Terapkan Circuit Breaker pada panggilan API eksternal yang rentan.
|
|
486
|
+
- Tambahkan retry dengan exponential backoff dan random jitter.
|
|
487
|
+
- Terapkan degradasi anggun (*graceful degradation*): sajikan data cache atau UI fallback alternatif.
|
|
488
|
+
4. **Verifikasi Ketahanan**: Ulangi simulasi gangguan hingga sistem bertahan tanpa crash fatal dan seluruh error tercatat di Sentry.
|
|
489
|
+
|
|
469
490
|
### Kesalahan Umum yang Harus Dihindari
|
|
470
491
|
|
|
471
492
|
| Anti-Pola | Masalah | Pendekatan yang Benar |
|
|
@@ -1,261 +1,184 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: fullstack-expert
|
|
3
|
-
description: "Expert-level fullstack development guide covering multi-language (TypeScript, Python, Go, Rust),
|
|
1
|
+
---
|
|
2
|
+
name: fullstack-expert
|
|
3
|
+
description: "Expert-level fullstack development guide covering multi-language (TypeScript, Python, Go, Rust), API design (OpenAPI 3.1, gRPC), microservices, system design patterns, and polyglot architecture / Panduan fullstack tingkat ahli mencakup multi-bahasa, desain API, microservices, dan arsitektur polyglot."
|
|
4
4
|
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Fullstack Expert (2026
|
|
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
|
|
18
|
-
|
|
19
|
-
### Description
|
|
20
|
-
Expert-level fullstack development across multiple languages and frameworks.
|
|
21
|
-
|
|
22
|
-
### Trigger Conditions
|
|
23
|
-
- Choosing the right language and framework for a
|
|
24
|
-
- Designing
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
42
|
-
####
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
### Security Checklist (Fullstack)
|
|
187
|
-
- [ ] All user inputs validated with Zod on the server.
|
|
188
|
-
- [ ] JWT secrets rotated every 90 days; use short expiry + refresh tokens.
|
|
189
|
-
- [ ] CSP headers configured (no `unsafe-inline` in production).
|
|
190
|
-
- [ ] All DB queries use parameterized queries.
|
|
191
|
-
- [ ] Rate limiting on all public API endpoints.
|
|
192
|
-
- [ ] Super Admin routes restricted to `admin.domain.com` with `isSuperAdmin` check.
|
|
193
|
-
|
|
194
|
-
### Code Review Standards
|
|
195
|
-
- Functions < 30 lines; files < 300 lines.
|
|
196
|
-
- No business logic in UI components.
|
|
197
|
-
- Every PR includes relevant tests (unit or E2E).
|
|
198
|
-
- No `any` types in TypeScript production code.
|
|
199
|
-
- Dependencies audited with `pnpm audit` on every PR.
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
<a name="bahasa-indonesia"></a>
|
|
204
|
-
## Bahasa Indonesia
|
|
205
|
-
|
|
206
|
-
### Integrasi Orkestrasi
|
|
207
|
-
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
208
|
-
|
|
209
|
-
### Deskripsi
|
|
210
|
-
Panduan pengembangan fullstack tingkat ahli di berbagai bahasa dan framework. Mencakup pemilihan tech stack, desain API (REST/gRPC/GraphQL), arsitektur microservice, DevOps, pola desain sistem, dan integrasi backend AI-native untuk 2026.
|
|
211
|
-
|
|
212
|
-
### Kondisi Pemicu
|
|
213
|
-
- Memilih bahasa dan framework yang tepat untuk layanan atau fitur baru.
|
|
214
|
-
- Merancang API antar layanan dalam arsitektur multi-bahasa.
|
|
215
|
-
- Merencanakan strategi dekomposisi microservice.
|
|
216
|
-
- Mengimplementasikan pola desain sistem (event sourcing, CQRS, saga pattern).
|
|
217
|
-
- Mengintegrasikan agen AI atau kemampuan LLM ke dalam sistem backend.
|
|
218
|
-
|
|
219
|
-
### Matriks Teknologi 2026
|
|
220
|
-
|
|
221
|
-
#### Frontend
|
|
222
|
-
React 19 + Next.js 15 (default SaaS), Astro 5 (konten), TanStack Router (SPA), Nuxt 4 (Vue), SvelteKit 2.
|
|
223
|
-
|
|
224
|
-
#### Backend
|
|
225
|
-
TypeScript/Hono (serverless, edge), Python/FastAPI (AI/ML), Go/net/http (throughput tinggi), Rust/Axum (kritis performa).
|
|
226
|
-
|
|
227
|
-
#### AI & Agen
|
|
228
|
-
Vercel AI SDK 5.x, Mastra.ai, LangGraph, OpenAI Agents SDK, Google ADK, Mem0/MemGPT untuk memori agen jangka panjang.
|
|
229
|
-
|
|
230
|
-
#### Infrastruktur
|
|
231
|
-
Docker/Kubernetes, GitHub Actions + Turborepo, OpenTelemetry 1.x, Langfuse. Database: PostgreSQL (utama), ClickHouse (analitik), Redis (cache), Qdrant (vektor).
|
|
232
|
-
|
|
233
|
-
### Standar Desain API
|
|
234
|
-
- **REST + OpenAPI 3.1**: Untuk API publik dengan beberapa konsumen.
|
|
235
|
-
- **gRPC**: Untuk komunikasi antar layanan internal berkinerja tinggi.
|
|
236
|
-
- **Hono RPC / tRPC**: Untuk komunikasi full-stack TypeScript type-safe tanpa codegen.
|
|
237
|
-
|
|
238
|
-
### Pola Microservice
|
|
239
|
-
|
|
240
|
-
#### Event-Driven (Saga Pattern)
|
|
241
|
-
Orkestrasi transaksi terdistribusi melalui event — setiap layanan mempublikasikan event setelah berhasil; kegagalan memicu kompensasi di seluruh rantai.
|
|
242
|
-
|
|
243
|
-
#### CQRS
|
|
244
|
-
Pisahkan sisi tulis (PostgreSQL) dari sisi baca (view terdenormalisasi atau ClickHouse) ketika pola baca sangat berbeda dari pola tulis.
|
|
245
|
-
|
|
246
|
-
### Integrasi Backend AI-Native (2026)
|
|
247
|
-
Gunakan Vercel AI SDK `generateObject()` dengan skema Zod untuk mengintegrasikan kemampuan AI ke endpoint API yang ada — mengembalikan output terstruktur yang dijamin sesuai tipe.
|
|
248
|
-
|
|
249
|
-
### SPA vs SSR vs Static
|
|
250
|
-
Gunakan SSR/Astro untuk situs kritis SEO dan banyak baca. Gunakan SPA (TanStack Start) untuk dashboard yang sangat interaktif. Gunakan Next.js 15 dengan routing hybrid untuk aplikasi campuran (marketing + app).
|
|
251
|
-
|
|
252
|
-
### Monorepo dengan Shared Types
|
|
253
|
-
Definisikan interface dan tipe bersama di `packages/types` — digunakan oleh semua app (web, admin, api, mobile) sebagai single source of truth.
|
|
254
|
-
|
|
255
|
-
### Checklist Keamanan & Code Review
|
|
256
|
-
- Input pengguna divalidasi Zod di server.
|
|
257
|
-
- Header CSP dikonfigurasi & parameterized query untuk DB.
|
|
258
|
-
- Rate limiting di semua endpoint publik.
|
|
259
|
-
- Rute Super Admin dibatasi di subdomain dengan cek `isSuperAdmin`.
|
|
260
|
-
- Tidak ada logika bisnis di komponen UI; wajib ada unit/E2E test pada PR.
|
|
261
|
-
- Tidak ada tipe `any` pada kode TypeScript produksi.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Fullstack Expert (2026 Polyglot & Systems Edition)
|
|
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 `brainstorming`, `zero-to-prod-orchestrator`, `senior-frontend`, `js-backend-expert`, `go-programming-expert`, `python-programming-expert`, and `rust-programming-expert`.
|
|
18
|
+
|
|
19
|
+
### Description
|
|
20
|
+
Expert-level fullstack development across multiple languages and frameworks. Focuses on polyglot backend architectures, system design patterns (Event-Driven Saga, CQRS), API contracts (OpenAPI 3.1, gRPC), and monorepo shared types.
|
|
21
|
+
|
|
22
|
+
### Trigger Conditions
|
|
23
|
+
- Choosing the right language and framework for a multi-service architecture.
|
|
24
|
+
- Designing API contracts (REST, gRPC, Hono RPC) between heterogeneous services.
|
|
25
|
+
- Implementing distributed system design patterns (Saga, CQRS).
|
|
26
|
+
- Setting up a polyglot monorepo with shared types across frontend and backend.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
### 2026 Polyglot Architecture Matrix
|
|
31
|
+
|
|
32
|
+
> For comprehensive frontend UI architecture, see `senior-frontend` and `nextjs-app-router-expert`.
|
|
33
|
+
> For dedicated AI agent workflows and LLM integrations, see `ai-llm-integration-expert` and `multi-agent-orchestration`.
|
|
34
|
+
|
|
35
|
+
| Language | Primary Frameworks | Ideal Workloads |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| **TypeScript** | Hono, Fastify 5, NestJS | Serverless, Edge APIs, type-safe RPC |
|
|
38
|
+
| **Python** | FastAPI 0.115+, Django 5 | Data science, LLM orchestration, async queues |
|
|
39
|
+
| **Go** | net/http (Go 1.25+), Gin, Echo | Ultra-high throughput microservices, networking, CLIs |
|
|
40
|
+
| **Rust** | Axum 0.8, Actix-web 4 | High-performance compute, memory safety, WASM |
|
|
41
|
+
|
|
42
|
+
#### Infrastructure & Multi-Service Storage
|
|
43
|
+
- **Primary OLTP**: PostgreSQL with connection pooling (PgBouncer / Supavisor).
|
|
44
|
+
- **Analytics OLAP**: ClickHouse / DuckDB for high-speed aggregations.
|
|
45
|
+
- **Cache & Ephemeral State**: Redis / Upstash with TTL.
|
|
46
|
+
- **Vector Search**: pgvector or Qdrant for semantic search.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### API Design Standards
|
|
51
|
+
|
|
52
|
+
#### REST — OpenAPI 3.1
|
|
53
|
+
```yaml
|
|
54
|
+
openapi: "3.1.0"
|
|
55
|
+
info:
|
|
56
|
+
title: "SaaS Multi-Service API"
|
|
57
|
+
version: "1.0.0"
|
|
58
|
+
paths:
|
|
59
|
+
/api/v1/workspaces/{id}:
|
|
60
|
+
get:
|
|
61
|
+
summary: "Get workspace by ID"
|
|
62
|
+
parameters:
|
|
63
|
+
- name: id
|
|
64
|
+
in: path
|
|
65
|
+
required: true
|
|
66
|
+
schema: { type: string, format: uuid }
|
|
67
|
+
responses:
|
|
68
|
+
"200":
|
|
69
|
+
content:
|
|
70
|
+
application/json:
|
|
71
|
+
schema: { $ref: "#/components/schemas/Workspace" }
|
|
72
|
+
"404":
|
|
73
|
+
content:
|
|
74
|
+
application/json:
|
|
75
|
+
schema: { $ref: "#/components/schemas/ProblemDetail" }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### gRPC — Protocol Buffers (`proto3`)
|
|
79
|
+
```protobuf
|
|
80
|
+
syntax = "proto3";
|
|
81
|
+
package user.v1;
|
|
82
|
+
|
|
83
|
+
service UserService {
|
|
84
|
+
rpc GetUser (GetUserRequest) returns (User);
|
|
85
|
+
rpc ListUsers (ListUsersRequest) returns (stream User);
|
|
86
|
+
rpc CreateUser (CreateUserRequest) returns (User);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
message User {
|
|
90
|
+
string id = 1;
|
|
91
|
+
string email = 2;
|
|
92
|
+
string name = 3;
|
|
93
|
+
repeated string workspace_ids = 4;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### Microservice Patterns
|
|
100
|
+
|
|
101
|
+
#### Event-Driven (Saga Pattern with Compensations)
|
|
102
|
+
```
|
|
103
|
+
Order Service ──publishes──> "order.created" ──> Payment Service
|
|
104
|
+
│
|
|
105
|
+
┌──────┴──────┐
|
|
106
|
+
success? failure?
|
|
107
|
+
│ │
|
|
108
|
+
"payment.succeeded" "payment.failed"
|
|
109
|
+
│ │
|
|
110
|
+
Inventory Service Order Service
|
|
111
|
+
(reserve stock) (cancel order)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### CQRS (Command Query Responsibility Segregation)
|
|
115
|
+
- **Write side**: Commands validate and update the primary relational database.
|
|
116
|
+
- **Read side**: Events project into read-optimized denormalized views or ClickHouse tables for high-frequency queries.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### AI-Native Backend Integration
|
|
121
|
+
```typescript
|
|
122
|
+
import { generateObject } from 'ai';
|
|
123
|
+
import { anthropic } from '@ai-sdk/anthropic';
|
|
124
|
+
import { z } from 'zod';
|
|
125
|
+
|
|
126
|
+
app.post('/api/analyze', async (c) => {
|
|
127
|
+
const { content } = await c.req.json();
|
|
128
|
+
const { object } = await generateObject({
|
|
129
|
+
model: anthropic('claude-3-7-sonnet-20250219'),
|
|
130
|
+
schema: z.object({
|
|
131
|
+
sentiment: z.enum(['positive', 'neutral', 'negative']),
|
|
132
|
+
topics: z.array(z.string()),
|
|
133
|
+
summary: z.string().max(200),
|
|
134
|
+
}),
|
|
135
|
+
prompt: `Analyze: ${content}`,
|
|
136
|
+
});
|
|
137
|
+
return c.json(object);
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### Monorepo with Shared Types
|
|
144
|
+
```typescript
|
|
145
|
+
// packages/types/src/index.ts — single source of truth
|
|
146
|
+
export interface User {
|
|
147
|
+
id: string;
|
|
148
|
+
email: string;
|
|
149
|
+
name: string;
|
|
150
|
+
plan: 'free' | 'pro' | 'enterprise';
|
|
151
|
+
isSuperAdmin: boolean;
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Production Security Checklist
|
|
156
|
+
- [ ] User inputs validated with Zod / Pydantic on the server.
|
|
157
|
+
- [ ] Parameterized queries enforced across all database layers.
|
|
158
|
+
- [ ] Rate limiting on all public endpoints (`rate-limit-abuse-prevention`).
|
|
159
|
+
- [ ] Super Admin routes strictly isolated to dedicated subdomain.
|
|
160
|
+
|
|
161
|
+
## Orchestration & Integration
|
|
162
|
+
- Integrates with: `js-backend-expert`, `go-programming-expert`, `python-programming-expert`, `rust-programming-expert`, `nextjs-app-router-expert`, `api-design-expert`.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
<a name="bahasa-indonesia"></a>
|
|
167
|
+
## Bahasa Indonesia
|
|
168
|
+
|
|
169
|
+
### Deskripsi
|
|
170
|
+
Panduan pengembangan fullstack tingkat ahli multi-bahasa (TypeScript, Python, Go, Rust), desain kontrak API (OpenAPI 3.1, gRPC), pola arsitektur microservices (Saga, CQRS), dan monorepo shared types.
|
|
171
|
+
|
|
172
|
+
### Matriks Arsitektur Polyglot 2026
|
|
173
|
+
- **TypeScript**: Hono, Fastify 5, NestJS (Serverless, Cloudflare Edge, Hono RPC).
|
|
174
|
+
- **Python**: FastAPI 0.115+, Django 5 (AI/ML, orkestrasi LLM, pipeline asinkron).
|
|
175
|
+
- **Go**: net/http (Go 1.25+), Gin (Microservices throughput tinggi, CLI).
|
|
176
|
+
- **Rust**: Axum 0.8, Actix-web 4 (Performa ekstrem, komputasi berat, WASM).
|
|
177
|
+
|
|
178
|
+
### Pola Sistem Terdistribusi
|
|
179
|
+
1. **Saga Pattern**: Kompensasi rollback bertahap saat transaksi multi-layanan mengalami kegagalan.
|
|
180
|
+
2. **CQRS**: Memisahkan database tulis (PostgreSQL) dari view proyeksi baca (ClickHouse/Redis) untuk beban baca tinggi.
|
|
181
|
+
3. **Monorepo Shared Types**: Simpan definisi tipe bersama di `packages/types` sebagai single source of truth antara frontend dan backend.
|
|
182
|
+
|
|
183
|
+
## Integrasi Orkestrasi
|
|
184
|
+
- Terintegrasi dengan: `js-backend-expert`, `go-programming-expert`, `python-programming-expert`, `rust-programming-expert`, `nextjs-app-router-expert`, `api-design-expert`.
|