vibes-plug 2.5.0 → 2.11.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.
- package/.claude/rules/vibes-plug-core.md +32 -0
- package/.cursor/rules/vibes-plug-core.mdc +51 -0
- package/.cursorrules +42 -0
- package/AGENTS.md +37 -7
- package/BLUEPRINT.md +309 -217
- package/CHANGELOG.md +133 -1
- package/CLAUDE.md +70 -0
- package/LICENSE +1 -1
- package/README.md +641 -415
- package/index.js +19 -0
- package/package.json +44 -8
- package/plugin.json +24 -7
- package/scripts/generate_swarm_gif.py +295 -0
- package/scripts/install.js +201 -0
- package/skills/accessibility-testing-expert/SKILL.md +116 -0
- package/skills/ai-cost-token-optimizer/SKILL.md +82 -52
- package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
- package/skills/ai-llm-integration-expert/SKILL.md +185 -178
- package/skills/ai-media-generation-expert/SKILL.md +172 -0
- package/skills/ai-prompt-engineering-expert/SKILL.md +84 -0
- package/skills/angular-expert/SKILL.md +148 -0
- package/skills/api-design-expert/SKILL.md +6 -3
- package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
- package/skills/app-analyzer-optimizer/SKILL.md +6 -3
- package/skills/apple-ecosystem-expert/SKILL.md +144 -141
- package/skills/{asisten_ramah → asisten-ramah}/SKILL.md +7 -1
- package/skills/astro-framework-expert/SKILL.md +200 -0
- package/skills/async-queue-temporal-expert/SKILL.md +210 -24
- package/skills/authentication-identity-expert/SKILL.md +278 -275
- package/skills/auto-doc-updater/SKILL.md +7 -1
- package/skills/autonomous-chaos-monkey/SKILL.md +63 -63
- package/skills/autonomous-red-teamer/SKILL.md +172 -28
- package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
- package/skills/background-jobs-queue-expert/SKILL.md +235 -0
- package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
- package/skills/blockchain-web3-expert/SKILL.md +115 -0
- package/skills/bootstrap-to-modern/SKILL.md +9 -6
- package/skills/brainstorming/SKILL.md +58 -50
- package/skills/browser-automation-expert/SKILL.md +197 -21
- package/skills/bun-runtime-expert/SKILL.md +7 -1
- package/skills/chatbot-messaging-expert/SKILL.md +114 -0
- package/skills/ci-cd-devops-architect/SKILL.md +45 -36
- package/skills/cloud-hosting-expert/SKILL.md +7 -1
- package/skills/coderabbit/SKILL.md +7 -1
- package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
- package/skills/cron-scheduler-expert/SKILL.md +303 -297
- package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
- package/skills/data-telemetry-expert/SKILL.md +7 -1
- package/skills/data-visualization-expert/SKILL.md +154 -0
- package/skills/database-migration-versioning-expert/SKILL.md +90 -0
- package/skills/database-orm-expert/SKILL.md +13 -3
- package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
- package/skills/design-system-architect/SKILL.md +278 -259
- package/skills/desktop-electron-expert/SKILL.md +128 -0
- package/skills/documentation-site-expert/SKILL.md +59 -0
- package/skills/doku-mcp-server/SKILL.md +7 -1
- package/skills/doku-payment-gateway/SKILL.md +7 -1
- package/skills/domain-driven-design-expert/SKILL.md +82 -0
- package/skills/e2e-testing-expert/SKILL.md +7 -1
- package/skills/ecommerce-expert/SKILL.md +87 -0
- package/skills/edge-serverless-db-expert/SKILL.md +98 -42
- package/skills/email-notification-expert/SKILL.md +367 -361
- package/skills/error-resilience-expert/SKILL.md +485 -479
- package/skills/event-driven-architect/SKILL.md +7 -1
- package/skills/feature-flag-analytics-expert/SKILL.md +65 -45
- package/skills/file-upload-media-expert/SKILL.md +436 -430
- package/skills/firebase-security-expert/SKILL.md +7 -1
- package/skills/form-validation-expert/SKILL.md +406 -400
- package/skills/fullstack-expert/SKILL.md +60 -1
- package/skills/gemini-agent-booster/SKILL.md +173 -135
- package/skills/geospatial-maps-expert/SKILL.md +80 -0
- package/skills/global-a11y-i18n-expert/SKILL.md +7 -1
- package/skills/glsl-shader-expert/SKILL.md +106 -100
- package/skills/go-programming-expert/SKILL.md +21 -15
- package/skills/graph-rag-knowledge-expert/SKILL.md +159 -0
- package/skills/graphql-apollo-expert/SKILL.md +113 -107
- package/skills/headless-cms-expert/SKILL.md +181 -0
- package/skills/hig/SKILL.md +7 -1
- package/skills/js-backend-expert/SKILL.md +218 -216
- package/skills/legacy-code-translator/SKILL.md +70 -64
- package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
- package/skills/logging-error-tracking-expert/SKILL.md +343 -337
- package/skills/mcp-client-orchestrator/SKILL.md +75 -69
- package/skills/mcp-server-architect/SKILL.md +294 -194
- package/skills/micro-frontend-architect/SKILL.md +111 -105
- package/skills/mobile-expo-expert/SKILL.md +8 -2
- package/skills/mobile-push-notification-expert/SKILL.md +70 -50
- package/skills/modern-css-native-expert/SKILL.md +189 -0
- package/skills/monday-design-aesthetic/SKILL.md +7 -1
- package/skills/monorepo-architect/SKILL.md +7 -1
- package/skills/mpa-orchestrator/SKILL.md +20 -1
- package/skills/multi-agent-orchestration/SKILL.md +254 -234
- package/skills/multiple-entry-points/SKILL.md +37 -1
- package/skills/mvc-expert/SKILL.md +7 -1
- package/skills/n8n-automation-expert/SKILL.md +89 -0
- package/skills/nextjs-app-router-expert/SKILL.md +148 -0
- package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
- package/skills/payment-gateway-expert/SKILL.md +85 -1
- package/skills/pdf-document-generation-expert/SKILL.md +91 -0
- package/skills/performance-web-vitals/SKILL.md +7 -1
- package/skills/post-quantum-crypto-migrator/SKILL.md +57 -57
- package/skills/prd-architect/SKILL.md +7 -1
- package/skills/proactive-background-watcher/SKILL.md +67 -61
- package/skills/production-ready-hardener/SKILL.md +461 -455
- package/skills/project-context-mapper/SKILL.md +84 -78
- package/skills/pwa-offline-first-expert/SKILL.md +185 -0
- package/skills/python-programming-expert/SKILL.md +407 -401
- package/skills/rate-limit-abuse-prevention/SKILL.md +376 -370
- package/skills/realtime-collaboration-expert/SKILL.md +55 -1
- package/skills/rich-text-editor-expert/SKILL.md +177 -0
- package/skills/rust-programming-expert/SKILL.md +7 -1
- package/skills/saas-billing/SKILL.md +7 -1
- package/skills/saas-multi-tenant/SKILL.md +7 -1
- package/skills/saas-mvp-launcher/SKILL.md +20 -1
- package/skills/saas-transformer/SKILL.md +499 -488
- package/skills/scalability-clean-code/SKILL.md +7 -1
- package/skills/search-engine-expert/SKILL.md +89 -0
- package/skills/secure-fuzz-testing/SKILL.md +7 -1
- package/skills/self-evolving-memory-graph/SKILL.md +90 -74
- package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -57
- package/skills/senior-frontend/SKILL.md +141 -161
- package/skills/seo/SKILL.md +41 -17
- package/skills/session-context-loader/SKILL.md +82 -76
- package/skills/session-handoff-resume/SKILL.md +7 -1
- package/skills/{skill_baru → skill-baru}/SKILL.md +8 -2
- package/skills/solidjs-expert/SKILL.md +80 -0
- package/skills/spa-orchestrator/SKILL.md +20 -1
- package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
- package/skills/state-management-expert/SKILL.md +7 -1
- package/skills/supabase-migration/SKILL.md +47 -1
- package/skills/supabase-security-expert/SKILL.md +7 -1
- package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
- package/skills/svg-animation-motion-expert/SKILL.md +115 -0
- package/skills/tailwind-expert/SKILL.md +88 -136
- package/skills/tanstack-query-expert/SKILL.md +7 -1
- package/skills/tauri-expert/SKILL.md +7 -1
- package/skills/token-saver/SKILL.md +1 -1
- package/skills/typescript-expert/SKILL.md +12 -6
- package/skills/ui-components-expert/SKILL.md +165 -279
- package/skills/ui-ux-pro-max/SKILL.md +23 -3
- package/skills/vector-db-rag-expert/SKILL.md +175 -19
- package/skills/vibe-code-gardener/SKILL.md +1 -1
- package/skills/visual-qa-vision-agent/SKILL.md +70 -64
- package/skills/voice-ai-realtime-agent/SKILL.md +202 -0
- package/skills/vue-frontend-expert/SKILL.md +131 -125
- package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
- package/skills/web-3d-graphics-expert/SKILL.md +136 -130
- package/skills/web-game-engine-expert/SKILL.md +101 -95
- package/skills/web-scraper/SKILL.md +157 -207
- package/skills/website-design-cloner/SKILL.md +179 -173
- package/skills/webxr-ar-vr-expert/SKILL.md +122 -116
- package/skills/wordpress-headless-expert/SKILL.md +144 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +52 -27
- package/skills/zero-trust-secret-vault/SKILL.md +87 -39
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/workflows/publish.yml +0 -20
- package/CONTRIBUTING.md +0 -199
- package/SECURITY.md +0 -21
- package/banner.png +0 -0
- package/skills/autonomous-swarm-director/SKILL.md +0 -69
- package/skills/hyper-context-synthesizer/SKILL.md +0 -55
- package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
- package/skills/senior-fullstack/SKILL.md +0 -167
- package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
- package/skills/senior-fullstack/references/development_workflows.md +0 -222
- package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
- package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
- package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
- package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
- package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
- package/skills/seo-geo/SKILL.md +0 -188
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
- package/skills/ui_ux_expert/SKILL.md +0 -125
- package/vibes-swarm-demo.gif +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-pipeline-etl-expert
|
|
3
|
+
description: "Expert guide for Data Pipelines, ETL/ELT, and Analytics Engineering. Covers dbt, Apache Airflow, Dagster, BigQuery, ClickHouse, and DuckDB / Panduan ahli untuk Data Pipelines, ETL/ELT. Mencakup dbt, Airflow, Dagster, BigQuery, ClickHouse, dan DuckDB."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Pipeline & ETL Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
A specialized skill for building robust data architectures, Analytics Engineering, and ETL (Extract, Transform, Load) or ELT pipelines. It covers modern data stack orchestration (Airflow, Dagster), transformation tools (dbt), and high-performance OLAP databases (BigQuery, Snowflake, ClickHouse, DuckDB).
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- When designing reporting dashboards or analytics infrastructure for a SaaS.
|
|
21
|
+
- When moving large volumes of data from transactional databases (PostgreSQL/MySQL) to a data warehouse.
|
|
22
|
+
- When the user asks about "dbt", "Airflow", "ELT", or "Analytics Engineering".
|
|
23
|
+
- When building local or edge analytics using DuckDB.
|
|
24
|
+
|
|
25
|
+
### Core Architectural Guidelines
|
|
26
|
+
|
|
27
|
+
#### 1. ELT over ETL
|
|
28
|
+
Prefer Extract-Load-Transform (ELT) over traditional ETL.
|
|
29
|
+
- **Extract & Load**: Use tools like Airbyte or Fivetran to dump raw data directly into the Data Warehouse.
|
|
30
|
+
- **Transform**: Perform transformations *inside* the Data Warehouse using SQL (via dbt) to leverage the warehouse's massive compute power.
|
|
31
|
+
|
|
32
|
+
#### 2. Analytics Engineering with dbt
|
|
33
|
+
Treat SQL like software engineering.
|
|
34
|
+
- Use `dbt` (Data Build Tool) to version control your SQL transformations.
|
|
35
|
+
- Implement tests (`not_null`, `unique`) on critical tables.
|
|
36
|
+
- Use Jinja templating in dbt to DRY up complex SQL queries.
|
|
37
|
+
|
|
38
|
+
#### 3. Data Orchestration (Airflow vs Dagster)
|
|
39
|
+
- **Apache Airflow**: The industry standard for scheduling and monitoring complex DAGs (Directed Acyclic Graphs). Best for Python-heavy teams.
|
|
40
|
+
- **Dagster**: A modern alternative focused on data assets rather than just tasks. Use Dagster when you want better local testing and asset-driven lineage.
|
|
41
|
+
|
|
42
|
+
#### 4. OLAP Database Selection
|
|
43
|
+
- **BigQuery / Snowflake**: Best for massive scale, fully managed cloud data warehousing.
|
|
44
|
+
- **ClickHouse**: Best for real-time, sub-second analytical queries on massive event streams.
|
|
45
|
+
- **DuckDB**: Best for local analytics, embedded analytical pipelines, or processing parquets in edge environments (Node.js/Python).
|
|
46
|
+
|
|
47
|
+
## Orchestration & Integration
|
|
48
|
+
- Pairs with `data-telemetry-expert` to process the raw telemetry events captured by PostHog/OpenTelemetry.
|
|
49
|
+
- Complements `python-programming-expert` as Python is the lingua franca of data engineering.
|
|
50
|
+
- Works with `cron-scheduler-expert` when simpler, non-DAG cron jobs are sufficient for small ETL tasks.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
<a name="bahasa-indonesia"></a>
|
|
55
|
+
## Bahasa Indonesia
|
|
56
|
+
|
|
57
|
+
### Deskripsi
|
|
58
|
+
Panduan khusus untuk membangun arsitektur data yang kuat, Analytics Engineering, dan pipeline ETL/ELT. Mencakup orkestrasi (Airflow, Dagster), alat transformasi (dbt), dan database OLAP berkinerja tinggi (BigQuery, Snowflake, ClickHouse, DuckDB).
|
|
59
|
+
|
|
60
|
+
### Kondisi Pemicu
|
|
61
|
+
- Saat merancang infrastruktur analitik atau dashboard pelaporan untuk SaaS.
|
|
62
|
+
- Saat memindahkan data bervolume besar dari database transaksional ke Data Warehouse.
|
|
63
|
+
- Saat membangun analitik lokal yang cepat menggunakan DuckDB.
|
|
64
|
+
|
|
65
|
+
### Panduan Arsitektur Inti
|
|
66
|
+
|
|
67
|
+
#### 1. ELT lebih disukai daripada ETL
|
|
68
|
+
- **Extract & Load**: Pindahkan data mentah (raw data) langsung ke Data Warehouse (menggunakan Airbyte/Fivetran).
|
|
69
|
+
- **Transform**: Lakukan transformasi data *di dalam* Data Warehouse menggunakan SQL (dbt) untuk memanfaatkan kekuatan komputasi gudang data yang masif.
|
|
70
|
+
|
|
71
|
+
#### 2. Analytics Engineering dengan dbt (Data Build Tool)
|
|
72
|
+
Perlakukan transformasi data (SQL) layaknya rekayasa perangkat lunak. Gunakan dbt untuk version control, pengujian otomatis (`not_null`, `unique`), dan dokumentasi skema data Anda.
|
|
73
|
+
|
|
74
|
+
#### 3. Orkestrasi Data (DAG)
|
|
75
|
+
Gunakan Apache Airflow atau Dagster untuk menjadwalkan dan memonitor alur kerja data yang kompleks (DAG). Dagster sangat direkomendasikan untuk pendekatan modern yang berpusat pada aset data (asset-driven orchestration).
|
|
76
|
+
|
|
77
|
+
#### 4. Pemilihan Database OLAP
|
|
78
|
+
- **BigQuery / Snowflake**: Gudang data cloud fully-managed untuk analitik skala masif.
|
|
79
|
+
- **ClickHouse**: Sangat cepat untuk kueri analitik real-time. Cocok untuk data event stream/log.
|
|
80
|
+
- **DuckDB**: SQLite untuk analitik. Sangat cepat untuk memproses file Parquet atau CSV secara lokal maupun di lingkungan edge/serverless (via Python/Node.js).
|
|
81
|
+
|
|
82
|
+
## Integrasi Orkestrasi
|
|
83
|
+
- Bekerja sama dengan `data-telemetry-expert` untuk memproses data mentah yang dikumpulkan.
|
|
84
|
+
- Melengkapi `python-programming-expert` dalam menulis skrip orkestrasi Airflow/Dagster.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-telemetry-expert
|
|
3
3
|
description: "Expert guide for observability, analytics, telemetry, and data pipelines (OpenTelemetry, PostHog, Mixpanel) / Panduan ahli untuk observabilitas, telemetri, dan analitik."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Data & Telemetry Expert (OpenTelemetry 1.x / ClickHouse Edition)
|
|
@@ -13,6 +13,9 @@ author: "Roedy Rustam"
|
|
|
13
13
|
<a name="english"></a>
|
|
14
14
|
## English
|
|
15
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
|
+
|
|
16
19
|
### Description
|
|
17
20
|
Expert guide for production observability, product analytics, and data pipelines. Covers **OpenTelemetry 1.x** (stable, vendor-neutral traces/metrics/logs), **PostHog** (open-source product analytics), **ClickHouse** (OLAP analytics database), Grafana stack, and AI agent observability patterns.
|
|
18
21
|
|
|
@@ -184,6 +187,9 @@ Backend tracing tools for LLM: **LangSmith** (LangChain/LangGraph), **OpenAI Tra
|
|
|
184
187
|
<a name="bahasa-indonesia"></a>
|
|
185
188
|
## Bahasa Indonesia
|
|
186
189
|
|
|
190
|
+
### Integrasi Orkestrasi
|
|
191
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
192
|
+
|
|
187
193
|
### Deskripsi
|
|
188
194
|
Panduan ahli untuk observabilitas produksi, analitik produk, dan pipeline data. Mencakup **OpenTelemetry 1.x** (stabil, vendor-neutral traces/metrics/logs), **PostHog** (analitik produk open-source), **ClickHouse** (database analitik OLAP), dan pola observabilitas agen AI.
|
|
189
195
|
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-visualization-expert
|
|
3
|
+
description: "Expert guide for data visualization, charts, and dashboards using D3.js, Recharts, Chart.js, Nivo, and Tremor / Panduan ahli visualisasi data, chart, dan dashboard menggunakan D3.js, Recharts, Chart.js, Nivo, dan Tremor."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Visualization Expert (2026 Edition)
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Orchestration & Integration
|
|
17
|
+
- **`senior-frontend`**: React component architecture for chart components.
|
|
18
|
+
- **`data-telemetry-expert`**: Analytics data pipelines feeding visualizations.
|
|
19
|
+
- **`state-management-expert`**: Managing chart state, filters, and drill-down navigation.
|
|
20
|
+
- **`performance-web-vitals`**: Optimizing chart rendering performance with large datasets.
|
|
21
|
+
- **`sse-websocket-streaming-expert`**: Real-time data feeds for live dashboards.
|
|
22
|
+
|
|
23
|
+
### Description
|
|
24
|
+
Expert guide for building production-quality data visualizations and analytics dashboards. Covers D3.js v7 (low-level SVG/Canvas), Recharts (React-native charts), Chart.js 4 (lightweight canvas), Nivo (D3-powered React components), Tremor (dashboard components), and Apache ECharts. Includes responsive charts, real-time updates, accessibility, large dataset optimization, and dashboard layout patterns.
|
|
25
|
+
|
|
26
|
+
### Trigger Conditions
|
|
27
|
+
- Building analytics dashboards or admin panels with charts.
|
|
28
|
+
- Creating data visualizations (line, bar, pie, scatter, heatmap, treemap).
|
|
29
|
+
- Implementing real-time updating charts or live data feeds.
|
|
30
|
+
- Choosing a charting library for React, Vue, or vanilla JS.
|
|
31
|
+
- Optimizing chart performance with large datasets (10K+ data points).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Library Selection Guide
|
|
36
|
+
|
|
37
|
+
| Library | Framework | Rendering | Customization | Learning Curve | Best For |
|
|
38
|
+
|---------|-----------|-----------|---------------|----------------|----------|
|
|
39
|
+
| D3.js v7 | Agnostic | SVG/Canvas | ★★★★★ | High | Custom visualizations |
|
|
40
|
+
| Recharts | React | SVG | ★★★★ | Low | Standard React charts |
|
|
41
|
+
| Nivo | React | SVG/Canvas | ★★★★★ | Medium | Beautiful, animated charts |
|
|
42
|
+
| Tremor | React | SVG (Recharts) | ★★★ | Very Low | Dashboards, KPI cards |
|
|
43
|
+
| Chart.js 4 | Agnostic | Canvas | ★★★ | Low | Lightweight, simple charts |
|
|
44
|
+
| ECharts | Agnostic | Canvas/SVG | ★★★★★ | Medium | Complex, interactive, large data |
|
|
45
|
+
|
|
46
|
+
**Recommendation:** Use **Tremor** for rapid dashboard prototyping. Use **Recharts** for standard React charts. Use **D3.js** only for highly custom visualizations.
|
|
47
|
+
|
|
48
|
+
### Core Patterns
|
|
49
|
+
|
|
50
|
+
#### 1. Recharts (React Standard)
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
|
|
54
|
+
|
|
55
|
+
function RevenueChart({ data }: { data: { date: string; revenue: number }[] }) {
|
|
56
|
+
return (
|
|
57
|
+
<ResponsiveContainer width="100%" height={400}>
|
|
58
|
+
<LineChart data={data}>
|
|
59
|
+
<CartesianGrid strokeDasharray="3 3" stroke="#374151" />
|
|
60
|
+
<XAxis dataKey="date" stroke="#9CA3AF" />
|
|
61
|
+
<YAxis stroke="#9CA3AF" tickFormatter={(v) => `$${(v / 1000).toFixed(0)}K`} />
|
|
62
|
+
<Tooltip
|
|
63
|
+
contentStyle={{ backgroundColor: '#1F2937', border: 'none', borderRadius: 8 }}
|
|
64
|
+
formatter={(value: number) => [`$${value.toLocaleString()}`, 'Revenue']}
|
|
65
|
+
/>
|
|
66
|
+
<Line type="monotone" dataKey="revenue" stroke="#8B5CF6" strokeWidth={2} dot={false} />
|
|
67
|
+
</LineChart>
|
|
68
|
+
</ResponsiveContainer>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### 2. Tremor Dashboard Components
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { Card, Metric, Text, AreaChart, BarList, Grid } from '@tremor/react';
|
|
77
|
+
|
|
78
|
+
function AnalyticsDashboard({ metrics, chartData, topPages }) {
|
|
79
|
+
return (
|
|
80
|
+
<Grid numItemsMd={2} numItemsLg={3} className="gap-6">
|
|
81
|
+
<Card>
|
|
82
|
+
<Text>Total Revenue</Text>
|
|
83
|
+
<Metric>$845,230</Metric>
|
|
84
|
+
</Card>
|
|
85
|
+
<Card>
|
|
86
|
+
<Text>Revenue Over Time</Text>
|
|
87
|
+
<AreaChart
|
|
88
|
+
data={chartData}
|
|
89
|
+
index="month"
|
|
90
|
+
categories={['Revenue', 'Expenses']}
|
|
91
|
+
colors={['violet', 'rose']}
|
|
92
|
+
valueFormatter={(v) => `$${(v / 1000).toFixed(0)}K`}
|
|
93
|
+
/>
|
|
94
|
+
</Card>
|
|
95
|
+
<Card>
|
|
96
|
+
<Text>Top Pages</Text>
|
|
97
|
+
<BarList data={topPages} className="mt-4" />
|
|
98
|
+
</Card>
|
|
99
|
+
</Grid>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### 3. Real-Time Chart Updates
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
import { useEffect, useState } from 'react';
|
|
108
|
+
|
|
109
|
+
function LiveMetricsChart() {
|
|
110
|
+
const [data, setData] = useState<{ time: string; value: number }[]>([]);
|
|
111
|
+
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
const es = new EventSource('/api/metrics/stream');
|
|
114
|
+
es.onmessage = (event) => {
|
|
115
|
+
const point = JSON.parse(event.data);
|
|
116
|
+
setData((prev) => [...prev.slice(-60), point]); // Keep last 60 points
|
|
117
|
+
};
|
|
118
|
+
return () => es.close();
|
|
119
|
+
}, []);
|
|
120
|
+
|
|
121
|
+
return <LineChart data={data} /* ... */ />;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### 4. Large Dataset Optimization
|
|
126
|
+
- Use **Canvas** rendering (ECharts, Chart.js) for >5K data points.
|
|
127
|
+
- Implement **data aggregation** on the server (downsample to 500-1000 points for display).
|
|
128
|
+
- Use **windowed rendering** — only render visible data points.
|
|
129
|
+
- Apply **debounced zoom/pan** to prevent excessive re-renders.
|
|
130
|
+
|
|
131
|
+
### Dashboard Layout Patterns
|
|
132
|
+
- **KPI Row → Charts → Tables**: Top metrics cards, then charts, then detail tables.
|
|
133
|
+
- **Filter Sidebar**: Global date range, category, and dimension filters.
|
|
134
|
+
- **Drill-down**: Click chart segment → navigate to detail view.
|
|
135
|
+
- **Export**: CSV/PNG/PDF export for all charts.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
<a name="bahasa-indonesia"></a>
|
|
140
|
+
## Bahasa Indonesia
|
|
141
|
+
|
|
142
|
+
### Integrasi Orkestrasi
|
|
143
|
+
- **`senior-frontend`**: Arsitektur komponen React untuk komponen chart.
|
|
144
|
+
- **`data-telemetry-expert`**: Pipeline data analitik yang mengisi visualisasi.
|
|
145
|
+
- **`state-management-expert`**: Mengelola state chart, filter, dan navigasi drill-down.
|
|
146
|
+
|
|
147
|
+
### Deskripsi
|
|
148
|
+
Panduan ahli untuk membangun visualisasi data dan dashboard analitik berkualitas produksi. Mencakup D3.js v7, Recharts, Chart.js 4, Nivo, Tremor, dan Apache ECharts. Termasuk chart responsif, update real-time, aksesibilitas, optimasi dataset besar, dan pola layout dashboard.
|
|
149
|
+
|
|
150
|
+
### Kondisi Pemicu
|
|
151
|
+
- Membangun dashboard analitik atau panel admin dengan chart.
|
|
152
|
+
- Membuat visualisasi data (line, bar, pie, scatter, heatmap, treemap).
|
|
153
|
+
- Mengimplementasikan chart yang update real-time atau feed data langsung.
|
|
154
|
+
- Memilih library charting untuk React, Vue, atau vanilla JS.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: database-migration-versioning-expert
|
|
3
|
+
description: "Expert guide for database migrations: schema versioning, zero-downtime migrations, backward-compatible changes, data backfill, and rollback strategies / Panduan ahli migrasi database."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Database Migration & Versioning Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
A specialized skill focused strictly on the lifecycle of database schemas in production environments. While `database-orm-expert` handles queries and types, this skill covers the DevOps aspect of databases: zero-downtime schema migrations, backward-compatible release cycles, stateful data backfills, rollback mechanisms, and schema versioning strategies.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- When modifying an existing production database schema.
|
|
21
|
+
- When planning a deployment that involves database changes (blue-green, canary).
|
|
22
|
+
- When resolving merge conflicts in migration files (e.g., Prisma, Drizzle, Alembic).
|
|
23
|
+
- When designing backfill scripts for massive data migrations.
|
|
24
|
+
|
|
25
|
+
### Core Architectural Guidelines
|
|
26
|
+
|
|
27
|
+
#### 1. Zero-Downtime Migration Pattern (Expand and Contract)
|
|
28
|
+
Never make breaking changes in a single deployment. Use the "Expand and Contract" pattern (Parallel Change):
|
|
29
|
+
- **Phase 1 (Expand)**: Add the new schema element (column, table) without removing the old one. Deploy the database change.
|
|
30
|
+
- **Phase 2 (Migrate)**: Update application code to write to *both* old and new elements, and read from the new element (with fallback). Deploy code.
|
|
31
|
+
- **Phase 3 (Backfill)**: Run a background script to backfill data from the old element to the new element for older records.
|
|
32
|
+
- **Phase 4 (Contract)**: Remove the old application code that writes to the old element. Deploy code.
|
|
33
|
+
- **Phase 5 (Cleanup)**: Drop the old schema element from the database.
|
|
34
|
+
|
|
35
|
+
#### 2. Backward Compatibility Rules
|
|
36
|
+
- **Never `DROP` or `RENAME`** a column/table in active use. Create a new one, migrate data, then drop the old one later.
|
|
37
|
+
- **Avoid changing constraints** on existing data without carefully verifying that all data complies.
|
|
38
|
+
- **Add `DEFAULT` values** to new `NOT NULL` columns, or make them nullable first, backfill, then enforce `NOT NULL`.
|
|
39
|
+
|
|
40
|
+
#### 3. Migration Mechanics
|
|
41
|
+
- Always use version-controlled, immutable migration scripts (e.g., `20260814_add_user_status.sql`).
|
|
42
|
+
- Never modify an already-applied migration file. If a mistake was made, create a new forward-migration to fix it.
|
|
43
|
+
- **Idempotency**: Write scripts that can be safely run multiple times (e.g., `CREATE TABLE IF NOT EXISTS`, `ADD COLUMN IF NOT EXISTS`).
|
|
44
|
+
|
|
45
|
+
#### 4. Safe Data Backfilling
|
|
46
|
+
For large tables (millions of rows), running `UPDATE table SET new_col = old_col` will lock the table and cause downtime.
|
|
47
|
+
- **Chunking**: Perform updates in batches using `LIMIT` and sleep intervals to avoid locking the database.
|
|
48
|
+
- **Background Jobs**: Use dedicated queues (like BullMQ or Inngest) to orchestrate massive backfills.
|
|
49
|
+
|
|
50
|
+
## Orchestration & Integration
|
|
51
|
+
- Enhances `database-orm-expert` with production-grade migration strategies.
|
|
52
|
+
- Complements `ci-cd-devops-architect` for automated migration deployment steps.
|
|
53
|
+
- Integrates with `supabase-migration` for Supabase-specific PostgreSQL migration workflows.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
<a name="bahasa-indonesia"></a>
|
|
58
|
+
## Bahasa Indonesia
|
|
59
|
+
|
|
60
|
+
### Deskripsi
|
|
61
|
+
Skill khusus yang berfokus ketat pada siklus hidup skema database di lingkungan produksi. Sementara `database-orm-expert` menangani query dan tipe, skill ini mencakup aspek DevOps database: migrasi skema tanpa downtime (zero-downtime), rilis backward-compatible, skrip backfill data stateful, mekanisme rollback, dan strategi pembuatan versi skema.
|
|
62
|
+
|
|
63
|
+
### Kondisi Pemicu
|
|
64
|
+
- Saat memodifikasi skema database produksi yang sudah ada.
|
|
65
|
+
- Saat merencanakan deployment yang melibatkan perubahan database (blue-green, canary).
|
|
66
|
+
- Saat merancang skrip backfill untuk tabel berukuran besar (jutaan baris).
|
|
67
|
+
|
|
68
|
+
### Panduan Arsitektur Inti
|
|
69
|
+
|
|
70
|
+
#### 1. Pola Zero-Downtime (Expand and Contract)
|
|
71
|
+
Jangan pernah melakukan perubahan yang merusak (breaking change) dalam satu deployment.
|
|
72
|
+
- Tambahkan kolom baru tanpa menghapus yang lama.
|
|
73
|
+
- Ubah aplikasi untuk menulis ke keduanya dan membaca dari yang baru.
|
|
74
|
+
- Lakukan migrasi data lama (backfill).
|
|
75
|
+
- Hapus penggunaan kolom lama dari kode aplikasi.
|
|
76
|
+
- Hapus kolom lama dari database di migrasi berikutnya.
|
|
77
|
+
|
|
78
|
+
#### 2. Aturan Kompatibilitas Mundur (Backward Compatibility)
|
|
79
|
+
- **Jangan pernah melakukan `DROP` atau `RENAME`** pada kolom yang sedang aktif digunakan. Buat yang baru, pindahkan data, baru hapus yang lama di siklus rilis berikutnya.
|
|
80
|
+
- Kolom `NOT NULL` baru harus selalu memiliki nilai `DEFAULT`, atau jadikan nullable terlebih dahulu sebelum memaksakan constraint.
|
|
81
|
+
|
|
82
|
+
#### 3. Keamanan Skrip Migrasi
|
|
83
|
+
- Gunakan file migrasi yang immutable (tidak boleh diubah setelah di-deploy). Jika ada bug, buat file migrasi baru untuk memperbaikinya (forward-fix).
|
|
84
|
+
- Skrip harus sebisa mungkin bersifat idempoten.
|
|
85
|
+
- Untuk tabel besar, lakukan backfill data secara bertahap (chunking/batching) agar tidak terjadi table lock yang menyebabkan downtime aplikasi.
|
|
86
|
+
|
|
87
|
+
## Integrasi Orkestrasi
|
|
88
|
+
- Memperkuat `database-orm-expert` dengan strategi deployment yang aman.
|
|
89
|
+
- Melengkapi `ci-cd-devops-architect` dalam alur CI/CD untuk otomatisasi migrasi.
|
|
90
|
+
- Terintegrasi dengan `supabase-migration` untuk ekosistem spesifik Supabase.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: database-orm-expert
|
|
3
3
|
description: "Expert guide for database schema design, ORM tools (Prisma 6, Drizzle ORM, TypeORM), migrations, query optimization, and type-safe SQL patterns in TypeScript / Panduan ahli untuk desain skema database, ORM tools (Prisma 6, Drizzle ORM, TypeORM), migrasi, optimasi query, dan pola SQL type-safe di TypeScript."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Database ORM Expert (Prisma 6 + Drizzle ORM Edition)
|
|
@@ -14,7 +14,7 @@ author: "Roedy Rustam"
|
|
|
14
14
|
## English
|
|
15
15
|
|
|
16
16
|
### Description
|
|
17
|
-
|
|
17
|
+
Design schemas, select ORMs, execute migrations, optimize queries, and implement type-safe SQL patterns. Prioritize **Prisma 6** and **Drizzle ORM**. Implement connection pooling for production workloads.
|
|
18
18
|
|
|
19
19
|
### Trigger Conditions
|
|
20
20
|
- Designing or migrating a database schema.
|
|
@@ -25,6 +25,11 @@ Expert-level database development covering schema design, ORM selection, migrati
|
|
|
25
25
|
- Implementing Row Level Security (RLS) patterns.
|
|
26
26
|
- Working with PostgreSQL, MySQL, SQLite, or PlanetScale.
|
|
27
27
|
|
|
28
|
+
## Orchestration & Integration
|
|
29
|
+
- `js-backend-expert`: For Node/Bun/Deno backend implementations integrating these ORMs.
|
|
30
|
+
- `edge-serverless-db-expert`: For edge/serverless connections (e.g., Supabase, Neon, Turso).
|
|
31
|
+
- `database-migration-versioning-expert`: For advanced migration strategies and CI/CD pipelines.
|
|
32
|
+
|
|
28
33
|
---
|
|
29
34
|
|
|
30
35
|
### ORM Selection Guide
|
|
@@ -259,7 +264,7 @@ npx drizzle-kit studio # open Drizzle Studio GUI
|
|
|
259
264
|
## Bahasa Indonesia
|
|
260
265
|
|
|
261
266
|
### Deskripsi
|
|
262
|
-
|
|
267
|
+
Rancang skema, pilih ORM, eksekusi migrasi, optimalkan query, dan implementasikan pola SQL type-safe. Prioritaskan **Prisma 6** dan **Drizzle ORM**. Implementasikan connection pooling untuk beban kerja produksi.
|
|
263
268
|
|
|
264
269
|
### Kondisi Pemicu
|
|
265
270
|
- Merancang atau memigrasikan skema database.
|
|
@@ -270,6 +275,11 @@ Panduan pengembangan database level ahli mencakup desain skema, pemilihan ORM, m
|
|
|
270
275
|
- Mengimplementasikan pola Row Level Security (RLS).
|
|
271
276
|
- Bekerja dengan PostgreSQL, MySQL, SQLite, atau PlanetScale.
|
|
272
277
|
|
|
278
|
+
## Integrasi Orkestrasi
|
|
279
|
+
- `js-backend-expert`: Untuk implementasi backend Node/Bun/Deno yang menggunakan ORM ini.
|
|
280
|
+
- `edge-serverless-db-expert`: Untuk koneksi edge/serverless (mis. Supabase, Neon, Turso).
|
|
281
|
+
- `database-migration-versioning-expert`: Untuk strategi migrasi lanjutan dan pipeline CI/CD.
|
|
282
|
+
|
|
273
283
|
### Panduan Pemilihan ORM
|
|
274
284
|
|
|
275
285
|
Gunakan tabel di atas (lihat bagian English) sebagai referensi pemilihan ORM. Rekomendasi singkat:
|