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.
- 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 +319 -217
- package/CHANGELOG.md +170 -1
- package/CLAUDE.md +70 -0
- package/LICENSE +1 -1
- package/README.md +611 -415
- package/index.js +19 -0
- package/package.json +44 -8
- package/plugin.json +24 -7
- package/scripts/check-anti-slop.js +53 -0
- 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-llm-integration-expert/SKILL.md +192 -178
- package/skills/ai-media-generation-expert/SKILL.md +172 -0
- package/skills/ai-prompt-engineering-expert/SKILL.md +134 -0
- package/skills/angular-expert/SKILL.md +148 -0
- package/skills/anti-slop/SKILL.md +133 -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/astro-framework-expert/SKILL.md +200 -0
- package/skills/async-queue-temporal-expert/SKILL.md +189 -26
- package/skills/authentication-identity-expert/SKILL.md +78 -181
- package/skills/autonomous-red-teamer/SKILL.md +172 -28
- package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
- 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 +60 -52
- 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-orm-expert/SKILL.md +165 -294
- package/skills/deep-research-analyst/SKILL.md +136 -0
- package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
- package/skills/design-system-architect/SKILL.md +309 -260
- 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/email-notification-expert/SKILL.md +393 -360
- package/skills/error-resilience-expert/SKILL.md +506 -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 +184 -202
- 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 +158 -69
- package/skills/go-programming-expert/SKILL.md +21 -15
- package/skills/graph-rag-knowledge-expert/SKILL.md +200 -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-server-architect/SKILL.md +308 -194
- package/skills/micro-frontend-architect/SKILL.md +111 -105
- package/skills/mobile-expo-expert/SKILL.md +8 -2
- package/skills/modern-css-native-expert/SKILL.md +189 -0
- 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 +182 -201
- package/skills/proactive-background-watcher/SKILL.md +67 -61
- package/skills/production-ready-hardener/SKILL.md +459 -456
- package/skills/pwa-offline-first-expert/SKILL.md +226 -0
- package/skills/pydantic-ai-expert/SKILL.md +161 -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-architect/SKILL.md +154 -0
- package/skills/saas-billing/SKILL.md +7 -1
- package/skills/saas-multi-tenant/SKILL.md +7 -1
- 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-healing-cloud-orchestrator/SKILL.md +57 -57
- package/skills/senior-frontend/SKILL.md +139 -161
- package/skills/senior-frontend/scripts/frontend_scaffolder.py +1 -1
- package/skills/seo/SKILL.md +41 -17
- package/skills/session-memory-manager/SKILL.md +128 -0
- 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-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/synthetic-data-finetuning-expert/SKILL.md +155 -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/typescript-expert/SKILL.md +12 -6
- package/skills/ui-ux-pro-max/SKILL.md +25 -3
- package/skills/vector-db-rag-expert/SKILL.md +175 -19
- package/skills/vercel-ai-sdk-expert/SKILL.md +181 -0
- package/skills/visual-qa-vision-agent/SKILL.md +70 -64
- package/skills/voice-ai-realtime-agent/SKILL.md +242 -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 +262 -80
- package/skills/web-game-engine-expert/SKILL.md +281 -48
- 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 +108 -63
- package/skills/wordpress-headless-expert/SKILL.md +144 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +65 -38
- 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/ai-cost-token-optimizer/SKILL.md +0 -52
- package/skills/asisten_ramah/SKILL.md +0 -41
- package/skills/auto-doc-updater/SKILL.md +0 -214
- package/skills/autonomous-chaos-monkey/SKILL.md +0 -63
- package/skills/autonomous-swarm-director/SKILL.md +0 -69
- package/skills/edge-serverless-db-expert/SKILL.md +0 -43
- package/skills/hyper-context-synthesizer/SKILL.md +0 -55
- package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
- package/skills/mcp-client-orchestrator/SKILL.md +0 -70
- package/skills/mobile-push-notification-expert/SKILL.md +0 -51
- package/skills/monday-design-aesthetic/SKILL.md +0 -67
- package/skills/project-context-mapper/SKILL.md +0 -79
- package/skills/saas-mvp-launcher/SKILL.md +0 -241
- package/skills/saas-transformer/SKILL.md +0 -489
- package/skills/saas-transformer/references/billing_integration_guide.md +0 -401
- package/skills/self-evolving-memory-graph/SKILL.md +0 -75
- 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/session-context-loader/SKILL.md +0 -77
- package/skills/session-handoff-resume/SKILL.md +0 -158
- package/skills/skill_baru/SKILL.md +0 -172
- package/skills/supabase-migration/SKILL.md +0 -45
- package/skills/token-saver/SKILL.md +0 -119
- package/skills/ui-components-expert/SKILL.md +0 -280
- 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/skills/vibe-code-gardener/SKILL.md +0 -181
- package/vibes-swarm-demo.gif +0 -0
- /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
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-memory-manager
|
|
3
|
+
description: "Manages the entire session lifecycle: from context loading (PRD, Tech Stack) at startup, to maintaining project memory during active sessions, and creating ultra-compact checkpoints for handoff. / Mengelola siklus hidup sesi: dari pemuatan konteks awal, pemeliharaan memori proyek, hingga pembuatan checkpoint ringkas untuk handoff."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Session Memory Manager
|
|
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` and `zero-to-prod-orchestrator` to ensure cohesive execution across the entire session lifecycle.
|
|
18
|
+
|
|
19
|
+
### Description
|
|
20
|
+
This skill acts as the agent's memory controller. It handles loading project context at session startup, dynamically updating the context map and learning graph during the session, and seamlessly generating ultra-compact handoff checkpoints at session end.
|
|
21
|
+
|
|
22
|
+
### 1. Session Start (Ingestion)
|
|
23
|
+
Activate this phase IMMEDIATELY on a new session, or when the user says "start session" or "load context". Do not answer primary requests until complete.
|
|
24
|
+
|
|
25
|
+
**Workflow:**
|
|
26
|
+
1. **Discover Files**: Search the root or `.docs/` using `list_dir`, `grep_search`, or `view_file` for: `CONTEXT_MAP.md`, `LEARNING_GRAPH.md`, `PRD.md`, `BLUEPRINT.md` (or `ARCHITECTURE.md`), and `CHECKPOINT.md`. Also read tech stack identifiers (`TECH_STACK.md`, `package.json`, `go.mod`, etc.).
|
|
27
|
+
2. **Internalize**: Read the contents. Grasp the architectural constraints, user stylistic preferences, hard-learned lessons, and the current goal/milestone.
|
|
28
|
+
3. **Acknowledge**: Briefly confirm to the user what context was loaded, stating the Tech Stack and immediate goal. Proceed to address the actual request.
|
|
29
|
+
|
|
30
|
+
### 2. Active Session (Run)
|
|
31
|
+
Maintain project memory actively to prevent context exhaustion and hallucination.
|
|
32
|
+
|
|
33
|
+
**Maintain Context Map (`CONTEXT_MAP.md`)**
|
|
34
|
+
- A highly compressed index (bullet points) of architecture, dependency graphs, and state locations.
|
|
35
|
+
- **Rules**: Do not store full code; use only file paths and 1-sentence responsibilities. Use BM25/`grep_search` before modifying. Append new major components/routes immediately upon creation.
|
|
36
|
+
|
|
37
|
+
**Maintain Learning Graph (`LEARNING_GRAPH.md`)**
|
|
38
|
+
- **Triggers**: When the user corrects code style, states a strong preference, or after resolving a complex bug.
|
|
39
|
+
- **Rules**: Physically write lessons to the memory file under categories: User Stylistic Preferences, Hard-Learned Lessons, Architectural Decisions. Do not just promise to remember.
|
|
40
|
+
- **Global Memory**: For issues spanning multiple projects, document the root cause/solution into a global context directory (e.g., `<appDataDir>/knowledge`). Inject this historical context proactively in future tasks.
|
|
41
|
+
|
|
42
|
+
### 3. Session End (Handoff)
|
|
43
|
+
**Triggers**: Session is very long (>30 messages or >70% context used), major milestone reached, or user says "save checkpoint" / "handoff".
|
|
44
|
+
|
|
45
|
+
**Action**: Generate an ultra-compact YAML checkpoint block (<200 tokens).
|
|
46
|
+
|
|
47
|
+
**Checkpoint Format**:
|
|
48
|
+
```yaml
|
|
49
|
+
# CHECKPOINT — [Project Name] — [Date]
|
|
50
|
+
project: "[Name]"
|
|
51
|
+
goal: "[One-line goal]"
|
|
52
|
+
status: "[e.g., 60% — backend API done]"
|
|
53
|
+
stack: "[Tech Stack]"
|
|
54
|
+
last_completed:
|
|
55
|
+
- "[Most recent task]"
|
|
56
|
+
next_tasks:
|
|
57
|
+
- "[Immediate next task]"
|
|
58
|
+
blockers: "[Blockers or 'none']"
|
|
59
|
+
key_files:
|
|
60
|
+
- "[path/to/critical.ts]"
|
|
61
|
+
env_needed: "[List of vars]"
|
|
62
|
+
notes: "[Critical context]"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Cross-Model Handoff Prompt**:
|
|
66
|
+
Use this universal template when moving across models (Gemini, Claude, GPT):
|
|
67
|
+
```markdown
|
|
68
|
+
## RESUME CONTEXT — [Project Name]
|
|
69
|
+
**Goal**: [One-sentence goal]
|
|
70
|
+
**Current Status**: [Status]
|
|
71
|
+
**Tech Stack**: [Stack]
|
|
72
|
+
**Completed**: [Done items]
|
|
73
|
+
**Next Tasks**: 1. [Task 1] 2. [Task 2]
|
|
74
|
+
**Critical Files to Read First**: [File paths & reasons]
|
|
75
|
+
**Known Constraints**: [Constraints]
|
|
76
|
+
**Do NOT**: [Anti-patterns to avoid]
|
|
77
|
+
Start by reading the critical files, then confirm understanding before proceeding.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Checkpoint Storage Hierarchy**:
|
|
81
|
+
1. `CHECKPOINT.md` in project root (Primary).
|
|
82
|
+
2. `.agents/CHECKPOINT.md` (Alternative).
|
|
83
|
+
3. Clipboard or Supabase notes table (Cross-device).
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
<a name="bahasa-indonesia"></a>
|
|
88
|
+
## Bahasa Indonesia
|
|
89
|
+
|
|
90
|
+
### Integrasi Orkestrasi
|
|
91
|
+
Terhubung dan mengorkestrasi skill domain seperti `brainstorming` dan `zero-to-prod-orchestrator` untuk memastikan eksekusi kohesif selama siklus hidup sesi.
|
|
92
|
+
|
|
93
|
+
### Deskripsi
|
|
94
|
+
Skill ini mengatur memori agen: memuat konteks di awal sesi, memperbarui peta proyek dan grafik pembelajaran selama sesi berjalan, dan membuat checkpoint ringkas untuk perpindahan sesi (handoff).
|
|
95
|
+
|
|
96
|
+
### 1. Awal Sesi (Ingestion)
|
|
97
|
+
Aktifkan SEGERA pada sesi baru, atau saat diminta "mulai sesi" / "muat konteks".
|
|
98
|
+
|
|
99
|
+
**Alur Kerja:**
|
|
100
|
+
1. **Temukan File**: Cari di root atau `.docs/`: `CONTEXT_MAP.md`, `LEARNING_GRAPH.md`, `PRD.md`, `BLUEPRINT.md`, `CHECKPOINT.md`, dan file identifikasi tech stack (`package.json`, dsb).
|
|
101
|
+
2. **Pahami**: Baca isinya. Pahami batasan arsitektur, preferensi pengguna, pelajaran penting, dan tujuan/milestone saat ini.
|
|
102
|
+
3. **Konfirmasi**: Beritahu pengguna secara singkat bahwa konteks dimuat, sebutkan Tech Stack dan tujuan langsung, lalu proses permintaan utama.
|
|
103
|
+
|
|
104
|
+
### 2. Sesi Berjalan (Run)
|
|
105
|
+
Pertahankan memori proyek agar tidak terjadi halusinasi dan hemat token.
|
|
106
|
+
|
|
107
|
+
**Pelihara Peta Konteks (`CONTEXT_MAP.md`)**
|
|
108
|
+
- Indeks super padat berisi arsitektur, lokasi file penting, dan graf dependensi.
|
|
109
|
+
- **Aturan**: Jangan simpan kode lengkap, hanya path dan tanggung jawab singkat. Gunakan BM25/`grep_search` sebelum mengedit. Tambahkan entri baru saat membuat komponen/rute besar.
|
|
110
|
+
|
|
111
|
+
**Pelihara Grafik Pembelajaran (`LEARNING_GRAPH.md`)**
|
|
112
|
+
- **Pemicu**: Pengguna mengoreksi gaya koding, menyatakan preferensi, atau setelah mengatasi bug rumit.
|
|
113
|
+
- **Aturan**: Catat langsung ke file dalam kategori: Preferensi Gaya, Pelajaran Berharga, Keputusan Arsitektur.
|
|
114
|
+
- **Memori Global**: Ekstrak solusi masalah lintas-proyek ke direktori pengetahuan global (`<appDataDir>/knowledge`). Gunakan pengetahuan masa lalu secara proaktif dengan menyebutkannya.
|
|
115
|
+
|
|
116
|
+
### 3. Akhir Sesi (Handoff)
|
|
117
|
+
**Pemicu**: Pesan > 30, jendela konteks > 70% terpakai, milestone tercapai, atau pengguna berkata "simpan checkpoint".
|
|
118
|
+
|
|
119
|
+
**Tindakan**: Hasilkan blok YAML super ringkas (<200 token) berisi: `project`, `goal`, `status`, `stack`, `last_completed`, `next_tasks`, `blockers`, `key_files`, `env_needed`, dan `notes`.
|
|
120
|
+
|
|
121
|
+
**Prompt Handoff Lintas-Model**:
|
|
122
|
+
Gunakan template universal saat berpindah model:
|
|
123
|
+
Berikan konteks proyek (Tujuan, Status, Stack, Tugas Selesai, Tugas Berikutnya), daftar file kritis untuk dibaca pertama kali, batasan, dan apa yang JANGAN dilakukan. Minta konfirmasi sebelum lanjut.
|
|
124
|
+
|
|
125
|
+
**Hierarki Penyimpanan Checkpoint**:
|
|
126
|
+
1. `CHECKPOINT.md` di root proyek (Utama).
|
|
127
|
+
2. `.agents/CHECKPOINT.md` (Alternatif).
|
|
128
|
+
3. Clipboard / Catatan Supabase (Lintas perangkat).
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: solidjs-expert
|
|
3
|
+
description: "Expert guide for SolidJS 2 and SolidStart — fine-grained reactivity, signals, createResource, and server-first rendering / Panduan ahli SolidJS 2 dan SolidStart — reaktivitas fine-grained, signals, createResource, dan rendering server-first."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SolidJS 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
|
+
- **`performance-web-vitals`**: SolidJS's top-tier runtime performance.
|
|
18
|
+
- **`tailwind-expert`**: Tailwind CSS integration with SolidJS.
|
|
19
|
+
- **`state-management-expert`**: Solid signals vs other state management patterns.
|
|
20
|
+
- **`typescript-expert`**: Type-safe SolidJS components.
|
|
21
|
+
|
|
22
|
+
### Description
|
|
23
|
+
Expert guide for SolidJS 2 and SolidStart, the fine-grained reactive framework with near-zero overhead. Covers signals (`createSignal`), derived state (`createMemo`), effects (`createEffect`), resources (`createResource`), stores, context, SolidStart routing, server functions, and migration patterns from React.
|
|
24
|
+
|
|
25
|
+
### Trigger Conditions
|
|
26
|
+
- Building applications with SolidJS or SolidStart.
|
|
27
|
+
- Choosing SolidJS for performance-critical interactive UIs.
|
|
28
|
+
- Comparing SolidJS vs React for a new project.
|
|
29
|
+
- Understanding fine-grained reactivity patterns.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### SolidJS Core
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import { createSignal, createMemo, createEffect, createResource, For, Show } from 'solid-js';
|
|
37
|
+
|
|
38
|
+
function TodoApp() {
|
|
39
|
+
const [todos, setTodos] = createSignal<{ id: number; text: string; done: boolean }[]>([]);
|
|
40
|
+
const [filter, setFilter] = createSignal<'all' | 'active' | 'done'>('all');
|
|
41
|
+
|
|
42
|
+
const filtered = createMemo(() => {
|
|
43
|
+
const f = filter();
|
|
44
|
+
return f === 'all' ? todos() : todos().filter((t) => (f === 'done' ? t.done : !t.done));
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const remaining = createMemo(() => todos().filter((t) => !t.done).length);
|
|
48
|
+
|
|
49
|
+
createEffect(() => {
|
|
50
|
+
document.title = `${remaining()} todos remaining`;
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<div>
|
|
55
|
+
<h1>Todos ({remaining()} remaining)</h1>
|
|
56
|
+
<For each={filtered()}>
|
|
57
|
+
{(todo) => <div classList={{ done: todo.done }}>{todo.text}</div>}
|
|
58
|
+
</For>
|
|
59
|
+
<Show when={todos().length > 0} fallback={<p>No todos yet!</p>}>
|
|
60
|
+
<button onClick={() => setTodos([])}>Clear All</button>
|
|
61
|
+
</Show>
|
|
62
|
+
</div>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Orchestration & Integration
|
|
68
|
+
- `performance-web-vitals`, `tailwind-expert`, `typescript-expert`
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
<a name="bahasa-indonesia"></a>
|
|
73
|
+
## Bahasa Indonesia
|
|
74
|
+
|
|
75
|
+
### Deskripsi
|
|
76
|
+
Panduan ahli SolidJS 2 dan SolidStart, framework reaktif fine-grained dengan overhead hampir nol. Mencakup signals, derived state, effects, resources, stores, dan routing SolidStart.
|
|
77
|
+
|
|
78
|
+
### Kondisi Pemicu
|
|
79
|
+
- Membangun aplikasi dengan SolidJS atau SolidStart.
|
|
80
|
+
- Memilih SolidJS untuk UI interaktif yang kritis performa.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spa-orchestrator
|
|
3
3
|
description: "Orchestrates Single-Page Application (SPA) architecture, integrating frontend state management with API-driven backends / Mengorkestrasi arsitektur Single-Page Application (SPA), mengintegrasikan state management frontend dengan backend berbasis API."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Single-Page Application (SPA) Orchestrator (2026 Edition)
|
|
@@ -13,6 +13,10 @@ 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 `modern-web-guidance`, `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
|
|
18
|
+
- **MANDATORY**: Execute `modern-web-guidance` FIRST for all HTML/CSS and client-side JS tasks to ensure modern web standards.
|
|
19
|
+
|
|
16
20
|
### Description
|
|
17
21
|
Structured orchestration guide for building modern Single-Page Applications (SPAs). Coordinates frontend architecture (TanStack Router, React 19, TanStack Query v5) with decoupled API backends (Hono RPC, tRPC). Covers state management strategy, routing patterns, API layer design, build tooling (Vite + TanStack Start), and deployment strategies.
|
|
18
22
|
|
|
@@ -253,6 +257,10 @@ export default defineConfig({
|
|
|
253
257
|
<a name="bahasa-indonesia"></a>
|
|
254
258
|
## Bahasa Indonesia
|
|
255
259
|
|
|
260
|
+
### Integrasi Orkestrasi
|
|
261
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `modern-web-guidance`, `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
262
|
+
- **MANDATORY**: Eksekusi `modern-web-guidance` PERTAMA KALI untuk semua tugas HTML/CSS dan JS sisi klien guna memastikan standar web modern.
|
|
263
|
+
|
|
256
264
|
### Deskripsi
|
|
257
265
|
Panduan orkestrasi terstruktur untuk membangun Single-Page Application (SPA) modern. Mengkoordinasikan arsitektur frontend (TanStack Router, React 19, TanStack Query v5) dengan backend API terpisah (Hono RPC, tRPC). Mencakup strategi state management, pola routing, desain API layer, build tooling (Vite + TanStack Start), dan strategi deployment.
|
|
258
266
|
|
|
@@ -286,3 +294,14 @@ Ekspor `AppType` dari backend Hono dan gunakan `hc<AppType>()` di frontend untuk
|
|
|
286
294
|
|
|
287
295
|
### Build & Deployment
|
|
288
296
|
Gunakan plugin `TanStackRouterVite` untuk auto-generate route tree. Konfigurasi `manualChunks` untuk code splitting yang optimal. Deploy SPA ke Cloudflare Pages atau Vercel; backend API ke Railway/Fly.io secara terpisah.
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
### 📄 Standard Pages Mandate (CRITICAL)
|
|
300
|
+
**MANDATORY**: Whenever you are building a new application, landing page, or website, you MUST automatically create the following standard pages:
|
|
301
|
+
1. **About Page** (`/about`)
|
|
302
|
+
2. **Profile Page** (`/profile`)
|
|
303
|
+
3. **Contact Page** (`/contact`)
|
|
304
|
+
4. **Terms of Reference / Terms of Service** (`/terms`)
|
|
305
|
+
5. **Privacy Policy** (`/privacy-policy`)
|
|
306
|
+
|
|
307
|
+
These pages must be generated with standard boilerplate content that can later be customized to fit the specific application. Do not wait for the user to ask for them; they are a strict requirement for all web projects. / **WAJIB**: Otomatis buatkan halaman standar (About, Profile, Contact, Terms, Privacy Policy) pada setiap pembuatan aplikasi/website baru dengan konten boilerplate yang bisa disesuaikan nanti.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sse-websocket-streaming-expert
|
|
3
|
+
description: "Expert guide for Server-Sent Events (SSE), WebSockets, and Streaming Architectures. Covers real-time data push, Socket.IO, Hono WebSocket, and AI response streaming / Panduan ahli streaming real-time."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SSE, WebSocket & Streaming Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
A focused guide for building real-time data push architectures. While `realtime-collaboration-expert` focuses on CRDTs (Yjs) for multi-player editing, this skill focuses on the transport layer: when to use Server-Sent Events (SSE) vs WebSockets vs HTTP Streaming, scaling pub/sub architectures, and streaming AI responses.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- When building live notification systems, live sports scores, or stock tickers.
|
|
21
|
+
- When streaming LLM text generation responses chunk-by-chunk to the UI.
|
|
22
|
+
- When the user asks about "WebSockets", "Socket.IO", or "SSE".
|
|
23
|
+
- When implementing a chat application.
|
|
24
|
+
|
|
25
|
+
### Core Architectural Guidelines
|
|
26
|
+
|
|
27
|
+
#### 1. SSE vs WebSockets
|
|
28
|
+
Choose the right transport mechanism to save server resources.
|
|
29
|
+
- **Server-Sent Events (SSE)**: Unidirectional (Server to Client). Uses standard HTTP. Best for live feeds, AI streaming, notifications. Handles reconnections automatically.
|
|
30
|
+
- **WebSockets**: Bidirectional. Best for chat apps, multiplayer games. Requires a persistent TCP connection and custom ping/pong keepalives.
|
|
31
|
+
|
|
32
|
+
#### 2. Streaming AI Responses (HTTP Streaming)
|
|
33
|
+
For LLMs, use standard HTTP Streaming (often via the `ai` SDK in React/Next.js) instead of complex WebSockets.
|
|
34
|
+
```typescript
|
|
35
|
+
// Next.js Route Handler Example
|
|
36
|
+
export async function POST(req: Request) {
|
|
37
|
+
const { prompt } = await req.json();
|
|
38
|
+
const stream = await myLLM.stream(prompt);
|
|
39
|
+
|
|
40
|
+
return new Response(stream, {
|
|
41
|
+
headers: { 'Content-Type': 'text/event-stream' },
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### 3. Scaling WebSockets (Pub/Sub)
|
|
47
|
+
A single Node.js process can handle thousands of WebSockets, but when you scale horizontally (multiple servers), clients on Server A cannot see messages from Server B.
|
|
48
|
+
- **Redis Adapter**: Use a Pub/Sub mechanism (like Redis) so when a message is published, all server instances broadcast it to their respective connected clients.
|
|
49
|
+
- **Serverless WebSockets**: In serverless environments (AWS API Gateway, Cloudflare Durable Objects), you do not hold the connection in your code. The infrastructure holds it, and calls your webhook when messages arrive.
|
|
50
|
+
|
|
51
|
+
#### 4. Reconnection & Idempotency
|
|
52
|
+
- Always assume connections will drop.
|
|
53
|
+
- Clients must maintain a `lastEventId` or cursor. Upon reconnection, the client sends this cursor so the server can push any missed messages, preventing data loss.
|
|
54
|
+
|
|
55
|
+
## Orchestration & Integration
|
|
56
|
+
- Supplements `js-backend-expert` or `go-programming-expert` with real-time push capabilities.
|
|
57
|
+
- Essential for `gemini-agent-booster` when building AI streaming chat interfaces.
|
|
58
|
+
- Integrates with `api-gateway-proxy-expert` to ensure proxies do not buffer streaming responses.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
<a name="bahasa-indonesia"></a>
|
|
63
|
+
## Bahasa Indonesia
|
|
64
|
+
|
|
65
|
+
### Deskripsi
|
|
66
|
+
Panduan terfokus untuk membangun arsitektur push data real-time. Skill ini berfokus pada lapisan transport: kapan harus menggunakan Server-Sent Events (SSE) vs WebSockets vs HTTP Streaming, penskalaan arsitektur pub/sub (Redis), dan streaming respons AI.
|
|
67
|
+
|
|
68
|
+
### Kondisi Pemicu
|
|
69
|
+
- Saat membangun sistem notifikasi live, pembaruan skor, atau ticker saham.
|
|
70
|
+
- Saat melakukan streaming teks hasil generasi LLM bagian-demi-bagian (chunk-by-chunk) ke UI.
|
|
71
|
+
- Saat mengimplementasikan aplikasi obrolan (chat).
|
|
72
|
+
|
|
73
|
+
### Panduan Arsitektur Inti
|
|
74
|
+
|
|
75
|
+
#### 1. SSE vs WebSockets
|
|
76
|
+
Pilih mekanisme transport yang tepat:
|
|
77
|
+
- **Server-Sent Events (SSE)**: Satu arah (Server ke Klien). Berjalan di atas HTTP biasa. Sangat ideal untuk feed berita, notifikasi, dan streaming AI. Mendukung rekoneksi otomatis secara native.
|
|
78
|
+
- **WebSockets**: Dua arah. Ideal untuk aplikasi chat dan game. Membutuhkan penanganan koneksi persisten dan mekanisme ping/pong manual.
|
|
79
|
+
|
|
80
|
+
#### 2. Streaming Respons AI
|
|
81
|
+
Gunakan HTTP Streaming biasa (biasanya menggunakan `text/event-stream`) untuk merender kata demi kata dari AI tanpa perlu memelihara koneksi WebSocket yang kompleks.
|
|
82
|
+
|
|
83
|
+
#### 3. Penskalaan (Scaling) WebSockets
|
|
84
|
+
Saat aplikasi diskalakan ke beberapa server (horizontal scaling), pengguna yang terhubung ke Server A tidak akan menerima pesan dari pengguna di Server B. Anda WAJIB menggunakan Redis Pub/Sub (atau mekanisme message broker serupa) sebagai *backplane* agar semua server saling berkomunikasi.
|
|
85
|
+
|
|
86
|
+
#### 4. Rekoneksi & Penanganan Kehilangan Data
|
|
87
|
+
- Klien harus selalu mengirimkan kursor (misal: ID pesan terakhir yang diterima) saat melakukan rekoneksi.
|
|
88
|
+
- Server menggunakan kursor tersebut untuk memutar ulang (replay) pesan yang terlewat selama klien terputus.
|
|
89
|
+
|
|
90
|
+
## Integrasi Orkestrasi
|
|
91
|
+
- Melengkapi `js-backend-expert` atau `go-programming-expert` dengan kemampuan push real-time.
|
|
92
|
+
- Sangat penting bagi `gemini-agent-booster` saat membangun antarmuka chat AI.
|
|
93
|
+
- Terintegrasi dengan `api-gateway-proxy-expert` (pastikan NGINX/proxy tidak melakukan *buffering* pada koneksi streaming).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: state-management-expert
|
|
3
3
|
description: "Expert guide for modern client-side state management: Zustand, Jotai, Valtio, TanStack Store, Redux Toolkit, and server state patterns with TanStack Query / Panduan ahli untuk manajemen state client-side modern: Zustand, Jotai, Valtio, TanStack Store, Redux Toolkit, dan pola server state dengan TanStack Query."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# State Management Expert (Modern React 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 selecting and implementing the right state management solution for React and Next.js applications. Covers **Zustand 5**, **Jotai 2**, **Valtio**, **TanStack Store**, and **Redux Toolkit 2**, with clear guidance on when to use each, proper separation of server state (TanStack Query) from client state, and advanced patterns like slices, persistence, and devtools integration.
|
|
18
21
|
|
|
@@ -251,6 +254,9 @@ export function StoreProvider({ children, initialUser }: Props) {
|
|
|
251
254
|
<a name="bahasa-indonesia"></a>
|
|
252
255
|
## Bahasa Indonesia
|
|
253
256
|
|
|
257
|
+
### Integrasi Orkestrasi
|
|
258
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
259
|
+
|
|
254
260
|
### Deskripsi
|
|
255
261
|
Panduan ahli untuk memilih dan mengimplementasikan solusi manajemen state yang tepat untuk aplikasi React dan Next.js. Mencakup **Zustand 5**, **Jotai 2**, **Valtio**, dan **Redux Toolkit 2**, dengan panduan pemilihan yang jelas, pemisahan server state (TanStack Query) dari client state, dan pola lanjutan seperti slices, persistensi, dan integrasi devtools.
|
|
256
262
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: supabase-security-expert
|
|
3
3
|
description: "Supabase security expert to audit RLS (Row Level Security), RBAC, relational databases, prevent data leakage, and utilize Supabase Linter / Ahli keamanan Supabase untuk audit RLS (Row Level Security), RBAC, database relasional, pencegahan kebocoran data, dan pemanfaatan Supabase Linter."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Supabase Security Expert (2026 Edition — Auth v3 / PKCE)
|
|
@@ -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 auditing and hardening Supabase applications. Covers Row Level Security (RLS), Supabase Auth v3 (PKCE flow), API key hygiene, data leakage prevention, Supabase Linter, and production security checklists.
|
|
18
21
|
|
|
@@ -199,6 +202,9 @@ USING (bucket_id = 'user-uploads' AND auth.uid()::text = (storage.foldername(nam
|
|
|
199
202
|
<a name="bahasa-indonesia"></a>
|
|
200
203
|
## Bahasa Indonesia
|
|
201
204
|
|
|
205
|
+
### Integrasi Orkestrasi
|
|
206
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
207
|
+
|
|
202
208
|
### Deskripsi
|
|
203
209
|
Panduan ahli untuk mengaudit dan mengeraskan aplikasi Supabase. Mencakup Row Level Security (RLS), Supabase Auth v3 (PKCE flow), kebersihan API key, pencegahan kebocoran data, Supabase Linter, dan checklist keamanan produksi.
|
|
204
210
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: svelte-sveltekit-expert
|
|
3
|
+
description: "Expert guide for Svelte 5 (Runes) and SvelteKit 2+ — fine-grained reactivity, server-first architecture, form actions, and SSR/SSG / Panduan ahli Svelte 5 (Runes) dan SvelteKit 2+ — reaktivitas fine-grained, arsitektur server-first, form actions, dan SSR/SSG."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Svelte & SvelteKit 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
|
+
- **`tailwind-expert`**: Tailwind CSS v4 integration with SvelteKit.
|
|
18
|
+
- **`performance-web-vitals`**: Svelte's compile-time optimizations and zero-overhead reactivity.
|
|
19
|
+
- **`e2e-testing-expert`**: Playwright testing for SvelteKit applications.
|
|
20
|
+
- **`typescript-expert`**: TypeScript integration with Svelte 5 Runes.
|
|
21
|
+
|
|
22
|
+
### Description
|
|
23
|
+
Expert guide for building high-performance applications with Svelte 5 and SvelteKit 2+. Covers Runes (`$state`, `$derived`, `$effect`, `$props`), server-first architecture, form actions, load functions, streaming, SSR/SSG/ISR rendering modes, and migration from Svelte 4.
|
|
24
|
+
|
|
25
|
+
### Trigger Conditions
|
|
26
|
+
- Building applications with Svelte or SvelteKit.
|
|
27
|
+
- Migrating from Svelte 4 to Svelte 5 Runes.
|
|
28
|
+
- Choosing between Svelte and React/Vue for a new project.
|
|
29
|
+
- Implementing server-side rendering with SvelteKit.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Svelte 5 Runes
|
|
34
|
+
|
|
35
|
+
```svelte
|
|
36
|
+
<script lang="ts">
|
|
37
|
+
// Svelte 5 Runes — fine-grained reactivity
|
|
38
|
+
let count = $state(0);
|
|
39
|
+
let doubled = $derived(count * 2);
|
|
40
|
+
|
|
41
|
+
$effect(() => {
|
|
42
|
+
console.log(`Count changed to ${count}`);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Props with Runes
|
|
46
|
+
let { title, onSubmit }: { title: string; onSubmit: (v: number) => void } = $props();
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<h1>{title}</h1>
|
|
50
|
+
<button onclick={() => count++}>Count: {count} (doubled: {doubled})</button>
|
|
51
|
+
<button onclick={() => onSubmit(count)}>Submit</button>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### SvelteKit Server Patterns
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// src/routes/posts/+page.server.ts
|
|
58
|
+
import type { PageServerLoad, Actions } from './$types';
|
|
59
|
+
import { fail } from '@sveltejs/kit';
|
|
60
|
+
|
|
61
|
+
export const load: PageServerLoad = async ({ fetch }) => {
|
|
62
|
+
const posts = await fetch('/api/posts').then((r) => r.json());
|
|
63
|
+
return { posts };
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const actions: Actions = {
|
|
67
|
+
create: async ({ request }) => {
|
|
68
|
+
const data = await request.formData();
|
|
69
|
+
const title = data.get('title');
|
|
70
|
+
if (!title) return fail(400, { error: 'Title required' });
|
|
71
|
+
// Create post...
|
|
72
|
+
return { success: true };
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Orchestration & Integration
|
|
78
|
+
- `tailwind-expert`, `performance-web-vitals`, `e2e-testing-expert`, `typescript-expert`
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
<a name="bahasa-indonesia"></a>
|
|
83
|
+
## Bahasa Indonesia
|
|
84
|
+
|
|
85
|
+
### Deskripsi
|
|
86
|
+
Panduan ahli untuk membangun aplikasi berperforma tinggi dengan Svelte 5 dan SvelteKit 2+. Mencakup Runes, arsitektur server-first, form actions, load functions, streaming, dan mode rendering SSR/SSG/ISR.
|
|
87
|
+
|
|
88
|
+
### Kondisi Pemicu
|
|
89
|
+
- Membangun aplikasi dengan Svelte atau SvelteKit.
|
|
90
|
+
- Migrasi dari Svelte 4 ke Svelte 5 Runes.
|
|
91
|
+
- Memilih antara Svelte dan React/Vue untuk proyek baru.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: svg-animation-motion-expert
|
|
3
|
+
description: "Expert guide for web animations: SVG manipulation, Framer Motion 12+, GSAP 3, CSS Scroll-Driven Animations, and View Transitions API / Panduan ahli animasi web."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SVG & Web Animation Motion Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
A dedicated skill for crafting fluid, high-performance web animations and micro-interactions. Covers direct SVG manipulation (paths, masks, clip-paths), React-based animations using Framer Motion 12+, advanced timeline choreography with GSAP 3, native CSS Scroll-Driven Animations, and the View Transitions API for seamless page navigations.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- When building complex landing page animations or scroll reveals.
|
|
21
|
+
- When creating interactive SVG graphics, charts, or diagrams.
|
|
22
|
+
- When the user asks for "buttery smooth", "apple-like", or "dynamic" interactions.
|
|
23
|
+
- When implementing page transitions using the native View Transitions API.
|
|
24
|
+
|
|
25
|
+
### Core Architecture & Guidelines
|
|
26
|
+
|
|
27
|
+
#### 1. Framer Motion 12+ (React/Next.js)
|
|
28
|
+
Use Framer Motion for declarative component animations, layout animations, and gesture-driven interactions.
|
|
29
|
+
- **Layout Animations**: Use the `layout` prop to automatically animate between flexbox/grid state changes.
|
|
30
|
+
- **Performance**: Use `style={{ x, y }}` with `useTransform` and `useScroll` instead of triggering React state updates on every frame.
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
'use client'
|
|
34
|
+
|
|
35
|
+
import { motion, useScroll, useTransform } from 'framer-motion'
|
|
36
|
+
import { useRef } from 'react'
|
|
37
|
+
|
|
38
|
+
export function ScrollReveal({ children }: { children: React.ReactNode }) {
|
|
39
|
+
const ref = useRef(null)
|
|
40
|
+
const { scrollYProgress } = useScroll({ target: ref, offset: ['0 1', '1 1'] })
|
|
41
|
+
const y = useTransform(scrollYProgress, [0, 1], [100, 0])
|
|
42
|
+
const opacity = useTransform(scrollYProgress, [0, 1], [0, 1])
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<motion.div ref={ref} style={{ y, opacity }}>
|
|
46
|
+
{children}
|
|
47
|
+
</motion.div>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### 2. GSAP 3 (Complex Choreography)
|
|
53
|
+
Use GSAP when you need highly coordinated timeline sequences, path tracing, or when working outside of React (Vanilla JS).
|
|
54
|
+
- **ScrollTrigger**: The industry standard for complex scroll-based animations.
|
|
55
|
+
- **DrawSVG / MorphSVG**: Use for advanced SVG path drawing and morphing (requires Club GreenSock, use open-source alternatives if unavailable).
|
|
56
|
+
|
|
57
|
+
#### 3. Native CSS Scroll-Driven Animations
|
|
58
|
+
Where possible, leverage modern native CSS to tie animations to scroll position on the compositor thread for zero-JS performance.
|
|
59
|
+
```css
|
|
60
|
+
@keyframes slide-in {
|
|
61
|
+
from { opacity: 0; transform: translateY(100px); }
|
|
62
|
+
to { opacity: 1; transform: translateY(0); }
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.reveal-on-scroll {
|
|
66
|
+
animation: slide-in linear both;
|
|
67
|
+
animation-timeline: view();
|
|
68
|
+
animation-range: entry 25% cover 50%;
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### 4. SVG Optimization & Manipulation
|
|
73
|
+
- Always run SVGs through SVGO to strip bloat before animating.
|
|
74
|
+
- Keep `viewBox` responsive.
|
|
75
|
+
- Target `<path>`, `<circle>`, and `<mask/>` elements via CSS vars or inline Framer Motion logic.
|
|
76
|
+
|
|
77
|
+
## Orchestration & Integration
|
|
78
|
+
- Works hand-in-hand with `ui-ux-pro-max` and `monday-design-aesthetic` to bring designs to life.
|
|
79
|
+
- Complements `senior-frontend` by handling the motion layer of the UI.
|
|
80
|
+
- Integrates with `seo-aeo-landing-page-writer` to build visually stunning landing pages.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
<a name="bahasa-indonesia"></a>
|
|
85
|
+
## Bahasa Indonesia
|
|
86
|
+
|
|
87
|
+
### Deskripsi
|
|
88
|
+
Skill khusus untuk membuat animasi web dan interaksi mikro yang lancar dan berkinerja tinggi. Mencakup manipulasi SVG langsung, animasi berbasis React menggunakan Framer Motion 12+, koreografi timeline lanjutan dengan GSAP 3, CSS Scroll-Driven Animations native, dan View Transitions API.
|
|
89
|
+
|
|
90
|
+
### Kondisi Pemicu
|
|
91
|
+
- Saat membangun animasi landing page yang kompleks.
|
|
92
|
+
- Saat membuat grafik, chart, atau diagram SVG interaktif.
|
|
93
|
+
- Saat pengguna meminta interaksi yang "sangat mulus", "mirip Apple", atau "dinamis".
|
|
94
|
+
- Saat mengimplementasikan transisi halaman menggunakan View Transitions API native.
|
|
95
|
+
|
|
96
|
+
### Panduan Arsitektur Inti
|
|
97
|
+
|
|
98
|
+
#### 1. Framer Motion 12+ (React/Next.js)
|
|
99
|
+
Gunakan Framer Motion untuk animasi komponen deklaratif, animasi layout, dan interaksi gestur.
|
|
100
|
+
- Hindari memicu pembaruan state React pada setiap frame animasi. Gunakan `useTransform` dan `useScroll` yang beroperasi di luar siklus render React untuk performa 60fps.
|
|
101
|
+
|
|
102
|
+
#### 2. GSAP 3
|
|
103
|
+
Gunakan GSAP untuk urutan timeline yang sangat terkoordinasi atau saat bekerja di luar ekosistem React. Plugin `ScrollTrigger` sangat berguna untuk merangkai aksi kompleks berdasarkan posisi scroll.
|
|
104
|
+
|
|
105
|
+
#### 3. CSS Scroll-Driven Animations Native
|
|
106
|
+
Manfaatkan CSS modern (`animation-timeline: view()`) untuk mengikat animasi ke posisi scroll langsung di compositor thread tanpa JavaScript sama sekali. Ini memberikan performa terbaik untuk efek paralaks dan reveal.
|
|
107
|
+
|
|
108
|
+
#### 4. Manipulasi SVG
|
|
109
|
+
- Selalu optimasi SVG (buang tag tidak perlu) sebelum dianimasikan.
|
|
110
|
+
- Gunakan `<clipPath>` dan `<mask>` untuk transisi transisi pengungkapan gambar yang dramatis.
|
|
111
|
+
|
|
112
|
+
## Integrasi Orkestrasi
|
|
113
|
+
- Bekerja sama dengan `ui-ux-pro-max` dan `monday-design-aesthetic` untuk menghidupkan desain statis.
|
|
114
|
+
- Melengkapi `senior-frontend` dengan menangani lapisan pergerakan (motion layer) UI.
|
|
115
|
+
- Terintegrasi dengan `seo-aeo-landing-page-writer` untuk merancang landing page yang memukau secara visual.
|