vibes-plug 1.0.0 → 2.5.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/.github/workflows/publish.yml +20 -0
- package/AGENTS.md +66 -0
- package/BLUEPRINT.md +152 -60
- package/CHANGELOG.md +50 -0
- package/README.md +346 -194
- package/package.json +25 -25
- package/plugin.json +1 -1
- package/skills/ai-cost-token-optimizer/SKILL.md +52 -0
- package/skills/ai-llm-integration-expert/SKILL.md +180 -162
- package/skills/api-design-expert/SKILL.md +314 -310
- package/skills/app-analyzer-optimizer/SKILL.md +193 -189
- package/skills/apple-ecosystem-expert/SKILL.md +142 -0
- package/skills/async-queue-temporal-expert/SKILL.md +54 -0
- package/skills/authentication-identity-expert/SKILL.md +251 -20
- package/skills/auto-doc-updater/SKILL.md +214 -204
- package/skills/autonomous-chaos-monkey/SKILL.md +63 -0
- package/skills/autonomous-red-teamer/SKILL.md +59 -0
- package/skills/autonomous-swarm-director/SKILL.md +69 -0
- package/skills/autonomous-tdd-debugger/SKILL.md +65 -0
- package/skills/bootstrap-to-modern/SKILL.md +90 -86
- package/skills/brainstorming/SKILL.md +373 -353
- package/skills/browser-automation-expert/SKILL.md +46 -0
- package/skills/ci-cd-devops-architect/SKILL.md +72 -45
- package/skills/cloud-hosting-expert/SKILL.md +244 -244
- package/skills/coderabbit/SKILL.md +192 -192
- package/skills/cron-scheduler-expert/SKILL.md +298 -0
- package/skills/data-telemetry-expert/SKILL.md +213 -213
- package/skills/database-orm-expert/SKILL.md +294 -294
- package/skills/dependency-upgrade-migrator/SKILL.md +295 -0
- package/skills/design-system-architect/SKILL.md +27 -10
- package/skills/doku-mcp-server/SKILL.md +251 -0
- package/skills/doku-payment-gateway/SKILL.md +227 -0
- package/skills/e2e-testing-expert/SKILL.md +315 -315
- package/skills/edge-serverless-db-expert/SKILL.md +43 -0
- package/skills/email-notification-expert/SKILL.md +362 -0
- package/skills/error-resilience-expert/SKILL.md +480 -0
- package/skills/event-driven-architect/SKILL.md +81 -81
- package/skills/feature-flag-analytics-expert/SKILL.md +46 -0
- package/skills/file-upload-media-expert/SKILL.md +431 -0
- package/skills/form-validation-expert/SKILL.md +401 -0
- package/skills/fullstack-expert/SKILL.md +202 -202
- package/skills/fullstack-expert/references/api_design_guide.md +466 -466
- package/skills/fullstack-expert/references/multi_language_backend.md +528 -528
- package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -253
- package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -326
- package/skills/gemini-agent-booster/SKILL.md +135 -135
- package/skills/global-a11y-i18n-expert/SKILL.md +81 -81
- package/skills/glsl-shader-expert/SKILL.md +101 -0
- package/skills/go-programming-expert/SKILL.md +295 -295
- package/skills/graphql-apollo-expert/SKILL.md +108 -0
- package/skills/hig/SKILL.md +188 -188
- package/skills/hyper-context-synthesizer/SKILL.md +55 -0
- package/skills/js-backend-expert/SKILL.md +34 -9
- package/skills/legacy-code-translator/SKILL.md +65 -0
- package/skills/llm-cost-arbitrage-router/SKILL.md +59 -0
- package/skills/logging-error-tracking-expert/SKILL.md +338 -0
- package/skills/mcp-client-orchestrator/SKILL.md +70 -0
- package/skills/mcp-server-architect/SKILL.md +194 -194
- package/skills/micro-frontend-architect/SKILL.md +106 -0
- package/skills/mobile-expo-expert/SKILL.md +186 -186
- package/skills/mobile-push-notification-expert/SKILL.md +51 -0
- package/skills/monday-design-aesthetic/SKILL.md +67 -67
- package/skills/monorepo-architect/SKILL.md +227 -227
- package/skills/mpa-orchestrator/SKILL.md +101 -101
- package/skills/multi-agent-orchestration/SKILL.md +234 -234
- package/skills/multiple-entry-points/SKILL.md +55 -55
- package/skills/mvc-expert/SKILL.md +231 -231
- package/skills/payment-gateway-expert/SKILL.md +45 -45
- package/skills/performance-web-vitals/SKILL.md +332 -332
- package/skills/post-quantum-crypto-migrator/SKILL.md +57 -0
- package/skills/prd-architect/SKILL.md +201 -191
- package/skills/proactive-background-watcher/SKILL.md +62 -0
- package/skills/production-ready-hardener/PRODUCTION_READINESS_REPORT.md +67 -0
- package/skills/production-ready-hardener/SKILL.md +173 -186
- package/skills/production-ready-hardener/references/production_checklist.md +161 -161
- package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +881 -875
- package/skills/project-context-mapper/SKILL.md +79 -0
- package/skills/python-programming-expert/SKILL.md +263 -132
- package/skills/rate-limit-abuse-prevention/SKILL.md +371 -0
- package/skills/realtime-collaboration-expert/SKILL.md +45 -45
- package/skills/rust-programming-expert/SKILL.md +235 -235
- package/skills/saas-billing/SKILL.md +377 -377
- package/skills/saas-multi-tenant/SKILL.md +251 -237
- package/skills/saas-mvp-launcher/SKILL.md +10 -0
- package/skills/saas-transformer/SKILL.md +187 -144
- package/skills/saas-transformer/references/billing_integration_guide.md +401 -401
- package/skills/saas-transformer/references/feature_gating_patterns.md +137 -137
- package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -121
- package/skills/saas-transformer/scripts/saas_transformation_scanner.py +39 -29
- package/skills/scalability-clean-code/SKILL.md +229 -229
- package/skills/self-evolving-memory-graph/SKILL.md +75 -0
- package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -0
- package/skills/senior-frontend/SKILL.md +161 -161
- package/skills/senior-fullstack/SKILL.md +167 -167
- package/skills/seo/SKILL.md +235 -225
- package/skills/seo-geo/SKILL.md +188 -188
- package/skills/session-context-loader/SKILL.md +77 -0
- package/skills/session-handoff-resume/SKILL.md +158 -158
- package/skills/skill_baru/SKILL.md +172 -147
- package/skills/spa-orchestrator/SKILL.md +288 -288
- package/skills/state-management-expert/SKILL.md +272 -272
- package/skills/supabase-security-expert/SKILL.md +243 -243
- package/skills/tailwind-expert/SKILL.md +188 -188
- package/skills/tanstack-query-expert/SKILL.md +199 -199
- package/skills/token-saver/SKILL.md +119 -111
- package/skills/typescript-expert/SKILL.md +324 -279
- package/skills/ui-components-expert/SKILL.md +263 -46
- package/skills/ui-ux-pro-max/SKILL.md +202 -201
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
- package/skills/ui_ux_expert/SKILL.md +17 -6
- package/skills/vector-db-rag-expert/SKILL.md +52 -0
- package/skills/vibe-code-gardener/SKILL.md +181 -173
- package/skills/visual-qa-vision-agent/SKILL.md +65 -0
- package/skills/vue-frontend-expert/SKILL.md +126 -0
- package/skills/web-3d-graphics-expert/SKILL.md +131 -0
- package/skills/web-game-engine-expert/SKILL.md +96 -0
- package/skills/web-scraper/SKILL.md +207 -205
- package/skills/website-design-cloner/SKILL.md +174 -0
- package/skills/webxr-ar-vr-expert/SKILL.md +117 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +206 -180
- package/skills/zero-trust-secret-vault/SKILL.md +40 -0
- package/vibes-swarm-demo.gif +0 -0
|
@@ -1,173 +1,181 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vibe-code-gardener
|
|
3
|
-
description: "Purger of AI slop, code bloat, context drift, and architectural decay in vibe-coded projects / Pembersih AI slop, kode membengkak, konteks drift, dan pembusukan arsitektur pada proyek vibe coding."
|
|
4
|
-
author:
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Vibe Code Gardener (2026 Edition)
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
Detects and purges AI-generated code quality issues — AI slop, code bloat, context drift, duplicated logic, dead code, misaligned patterns, and architectural decay in projects that have been heavily vibe-coded.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
- Codebase has grown out of control after many AI-assisted coding sessions.
|
|
21
|
-
- Duplication, inconsistent patterns, or unexplained abstractions detected.
|
|
22
|
-
- Features are getting harder to add or understand.
|
|
23
|
-
- Tests are brittle or missing entirely.
|
|
24
|
-
- The codebase has "AI smell" — overly verbose comments, unnecessary defensive code, duplicate utilities.
|
|
25
|
-
|
|
26
|
-
### AI Slop Detection Heuristics (2026)
|
|
27
|
-
|
|
28
|
-
These are the most common AI-generated code quality issues to look for:
|
|
29
|
-
|
|
30
|
-
#### 1. The "Just In Case" Over-Engineering
|
|
31
|
-
AI models often add features or abstractions "for extensibility" that are never needed:
|
|
32
|
-
```typescript
|
|
33
|
-
// 🔴 AI SLOP: Factory pattern for something that will never change
|
|
34
|
-
const createUserRepository = (type: 'postgres' | 'mysql' | 'sqlite') => {
|
|
35
|
-
if (type === 'postgres') return new PostgresUserRepo();
|
|
36
|
-
// ...never switches in practice
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
// ✅ CLEAN: Just use the implementation
|
|
40
|
-
const userRepo = new PostgresUserRepo();
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
#### 2. The "Belt and Suspenders" Duplicate Guards
|
|
44
|
-
AI adds null checks and validations at every layer unnecessarily:
|
|
45
|
-
```typescript
|
|
46
|
-
// 🔴 AI SLOP: Triple-validated (already validated by Zod + DB schema + here)
|
|
47
|
-
if (!user || !user.id || user.id === undefined || user.id === null || typeof user.id !== 'string') { ... }
|
|
48
|
-
|
|
49
|
-
// ✅ CLEAN: Trust your types
|
|
50
|
-
if (!user.id) { ... }
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
#### 3. The "Graveyard of Dead Utilities"
|
|
54
|
-
AI-generated helper files with functions that are defined but never used:
|
|
55
|
-
- Search for exported functions with 0 usages: `grep -r "export function" --include="*.ts" | while read...`
|
|
56
|
-
- Remove entire files of dead utilities.
|
|
57
|
-
|
|
58
|
-
#### 4. Context Drift — Style Inconsistency
|
|
59
|
-
Different sessions produce different coding styles in the same codebase:
|
|
60
|
-
- Some files use `async/await`, others use `.then()` chains.
|
|
61
|
-
- Some use `const` arrow functions, others use `function` declarations.
|
|
62
|
-
- Mixed naming: `userId`, `user_id`, `UserID` in the same project.
|
|
63
|
-
- **Fix**: Run a style unification pass with Prettier + ESLint rules.
|
|
64
|
-
|
|
65
|
-
#### 5. Comment Pollution
|
|
66
|
-
AI loves to narrate obvious code:
|
|
67
|
-
```typescript
|
|
68
|
-
// 🔴 AI SLOP: Stating the obvious
|
|
69
|
-
// Get the user from the database
|
|
70
|
-
const user = await db.user.findUnique({ where: { id } });
|
|
71
|
-
// Return the user
|
|
72
|
-
return user;
|
|
73
|
-
|
|
74
|
-
// ✅ CLEAN: No comment needed — code is self-explanatory
|
|
75
|
-
const user = await db.user.findUnique({ where: { id } });
|
|
76
|
-
return user;
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
#### 6. The Bloated Component
|
|
80
|
-
AI tends to put too much in one component across sessions:
|
|
81
|
-
- Component renders conditionally across 5+ different states.
|
|
82
|
-
- Component has 10+ props.
|
|
83
|
-
- Component imports from 20+ different modules.
|
|
84
|
-
- **Fix**: Apply Single Responsibility — split into sub-components.
|
|
85
|
-
|
|
86
|
-
#### 7. Dependency Creep
|
|
87
|
-
Each AI session may install new packages for tasks already solvable with existing deps:
|
|
88
|
-
```bash
|
|
89
|
-
# Audit dependencies — find packages doing the same thing
|
|
90
|
-
npx depcheck # Unused dependencies
|
|
91
|
-
npx bundle-phobia-cli # Bundle size of each dep
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Gardening Protocol
|
|
95
|
-
|
|
96
|
-
#### Phase 1: Discovery (Read Only)
|
|
97
|
-
1. Map the full file tree.
|
|
98
|
-
2. Identify largest files (likely bloated).
|
|
99
|
-
3. Find duplicated logic with semantic search.
|
|
100
|
-
4. Find unused exports and dead code.
|
|
101
|
-
5. Identify inconsistent patterns across files.
|
|
102
|
-
|
|
103
|
-
#### Phase 2: Triage
|
|
104
|
-
Categorize issues:
|
|
105
|
-
- **Critical**: Bugs, security holes, data loss risks.
|
|
106
|
-
- **High**: Duplicate business logic that will diverge.
|
|
107
|
-
- **Medium**: Code smells that slow development.
|
|
108
|
-
- **Low**: Style inconsistencies, over-verbose comments.
|
|
109
|
-
|
|
110
|
-
#### Phase 3: Systematic Refactoring
|
|
111
|
-
Work file by file, smallest changes first:
|
|
112
|
-
1. Remove dead code and unused imports.
|
|
113
|
-
2. Extract duplicated logic into shared utilities.
|
|
114
|
-
3. Simplify over-engineered abstractions.
|
|
115
|
-
4. Standardize naming conventions.
|
|
116
|
-
5. Add missing tests for business-critical paths.
|
|
117
|
-
|
|
118
|
-
#### Phase 4: Prevention
|
|
119
|
-
- Add ESLint rules to catch common AI slop patterns.
|
|
120
|
-
- Add `depcheck` to CI to catch unused dependencies.
|
|
121
|
-
- Add architecture tests (e.g., `arch-unit`) to enforce layer boundaries.
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
<a name="bahasa-indonesia"></a>
|
|
126
|
-
## Bahasa Indonesia
|
|
127
|
-
|
|
128
|
-
### Deskripsi
|
|
129
|
-
Mendeteksi dan membersihkan masalah kualitas kode yang dihasilkan AI — AI slop, kode yang membengkak, context drift, logika yang terduplikasi, kode mati, pola yang tidak konsisten, dan pembusukan arsitektur pada proyek yang banyak menggunakan vibe coding.
|
|
130
|
-
|
|
131
|
-
### Kondisi Pemicu
|
|
132
|
-
- Codebase telah tumbuh tidak terkendali setelah banyak sesi coding berbantuan AI.
|
|
133
|
-
- Duplikasi, pola tidak konsisten, atau abstraksi yang tidak dapat dijelaskan terdeteksi.
|
|
134
|
-
- Fitur semakin sulit ditambahkan atau dipahami.
|
|
135
|
-
- Test rapuh atau tidak ada sama sekali.
|
|
136
|
-
- Codebase memiliki "AI smell" — komentar yang terlalu verbose, kode defensif yang tidak perlu, utilitas yang diduplikasi.
|
|
137
|
-
|
|
138
|
-
### Heuristik Deteksi AI Slop (2026)
|
|
139
|
-
|
|
140
|
-
#### 1. Over-Engineering "Untuk Jaga-Jaga"
|
|
141
|
-
Model AI sering menambahkan fitur atau abstraksi "untuk ekstensibilitas" yang tidak pernah dibutuhkan. Hapus factory pattern, strategy pattern, atau abstraksi lain yang tidak memiliki lebih dari satu implementasi.
|
|
142
|
-
|
|
143
|
-
#### 2. "Belt and Suspenders" — Validasi Ganda Berlebihan
|
|
144
|
-
AI menambahkan null check dan validasi di setiap layer yang sebenarnya sudah divalidasi oleh Zod, TypeScript, atau skema DB. Percayai tipe Anda.
|
|
145
|
-
|
|
146
|
-
#### 3. "Kuburan Utilitas Mati"
|
|
147
|
-
File helper yang dihasilkan AI dengan fungsi yang tidak pernah digunakan. Cari dan hapus ekspor dengan 0 penggunaan.
|
|
148
|
-
|
|
149
|
-
#### 4. Context Drift — Inkonsistensi Gaya
|
|
150
|
-
Sesi yang berbeda menghasilkan gaya koding yang berbeda: sebagian menggunakan `async/await`, yang lain menggunakan `.then()`; penamaan campuran `userId`, `user_id`, `UserID`. Perbaiki dengan satu pass Prettier + aturan ESLint.
|
|
151
|
-
|
|
152
|
-
#### 5. Polusi Komentar
|
|
153
|
-
AI suka mengomentari kode yang sudah jelas sendiri. Hapus komentar yang hanya mengulang apa yang sudah tertulis dalam kode.
|
|
154
|
-
|
|
155
|
-
#### 6. Komponen yang Membengkak
|
|
156
|
-
Komponen dengan terlalu banyak kondisi rendering, prop, atau impor. Terapkan Single Responsibility — pecah menjadi sub-komponen.
|
|
157
|
-
|
|
158
|
-
#### 7. Creep Dependensi
|
|
159
|
-
Setiap sesi AI mungkin menginstal paket baru untuk tugas yang sudah bisa diselesaikan dengan dependensi yang ada. Audit dengan `depcheck` dan `bundle-phobia-cli`.
|
|
160
|
-
|
|
161
|
-
### Protokol Berkebun
|
|
162
|
-
|
|
163
|
-
#### Fase 1: Penemuan (Hanya Baca)
|
|
164
|
-
Peta pohon file lengkap, identifikasi file terbesar, temukan logika yang terduplikasi, temukan ekspor yang tidak digunakan.
|
|
165
|
-
|
|
166
|
-
#### Fase 2: Triase
|
|
167
|
-
Kategorikan masalah: Kritis, Tinggi, Sedang, Rendah.
|
|
168
|
-
|
|
169
|
-
#### Fase 3: Refactoring Sistematis
|
|
170
|
-
Kerja file per file, perubahan terkecil dulu: hapus kode mati, ekstrak logika duplikat, sederhanakan abstraksi berlebih, standarisasi penamaan, tambahkan test yang hilang.
|
|
171
|
-
|
|
172
|
-
#### Fase 4: Pencegahan
|
|
173
|
-
Tambahkan aturan ESLint, `depcheck` di CI, dan architecture test untuk menjaga codebase tetap bersih.
|
|
1
|
+
---
|
|
2
|
+
name: vibe-code-gardener
|
|
3
|
+
description: "Purger of AI slop, code bloat, context drift, and architectural decay in vibe-coded projects / Pembersih AI slop, kode membengkak, konteks drift, dan pembusukan arsitektur pada proyek vibe coding."
|
|
4
|
+
author: vibes-plug-swarm
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Vibe Code Gardener (2026 Edition)
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
Detects and purges AI-generated code quality issues — AI slop, code bloat, context drift, duplicated logic, dead code, misaligned patterns, and architectural decay in projects that have been heavily vibe-coded.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- Codebase has grown out of control after many AI-assisted coding sessions.
|
|
21
|
+
- Duplication, inconsistent patterns, or unexplained abstractions detected.
|
|
22
|
+
- Features are getting harder to add or understand.
|
|
23
|
+
- Tests are brittle or missing entirely.
|
|
24
|
+
- The codebase has "AI smell" — overly verbose comments, unnecessary defensive code, duplicate utilities.
|
|
25
|
+
|
|
26
|
+
### AI Slop Detection Heuristics (2026)
|
|
27
|
+
|
|
28
|
+
These are the most common AI-generated code quality issues to look for:
|
|
29
|
+
|
|
30
|
+
#### 1. The "Just In Case" Over-Engineering
|
|
31
|
+
AI models often add features or abstractions "for extensibility" that are never needed:
|
|
32
|
+
```typescript
|
|
33
|
+
// 🔴 AI SLOP: Factory pattern for something that will never change
|
|
34
|
+
const createUserRepository = (type: 'postgres' | 'mysql' | 'sqlite') => {
|
|
35
|
+
if (type === 'postgres') return new PostgresUserRepo();
|
|
36
|
+
// ...never switches in practice
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// ✅ CLEAN: Just use the implementation
|
|
40
|
+
const userRepo = new PostgresUserRepo();
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### 2. The "Belt and Suspenders" Duplicate Guards
|
|
44
|
+
AI adds null checks and validations at every layer unnecessarily:
|
|
45
|
+
```typescript
|
|
46
|
+
// 🔴 AI SLOP: Triple-validated (already validated by Zod + DB schema + here)
|
|
47
|
+
if (!user || !user.id || user.id === undefined || user.id === null || typeof user.id !== 'string') { ... }
|
|
48
|
+
|
|
49
|
+
// ✅ CLEAN: Trust your types
|
|
50
|
+
if (!user.id) { ... }
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### 3. The "Graveyard of Dead Utilities"
|
|
54
|
+
AI-generated helper files with functions that are defined but never used:
|
|
55
|
+
- Search for exported functions with 0 usages: `grep -r "export function" --include="*.ts" | while read...`
|
|
56
|
+
- Remove entire files of dead utilities.
|
|
57
|
+
|
|
58
|
+
#### 4. Context Drift — Style Inconsistency
|
|
59
|
+
Different sessions produce different coding styles in the same codebase:
|
|
60
|
+
- Some files use `async/await`, others use `.then()` chains.
|
|
61
|
+
- Some use `const` arrow functions, others use `function` declarations.
|
|
62
|
+
- Mixed naming: `userId`, `user_id`, `UserID` in the same project.
|
|
63
|
+
- **Fix**: Run a style unification pass with Prettier + ESLint rules.
|
|
64
|
+
|
|
65
|
+
#### 5. Comment Pollution
|
|
66
|
+
AI loves to narrate obvious code:
|
|
67
|
+
```typescript
|
|
68
|
+
// 🔴 AI SLOP: Stating the obvious
|
|
69
|
+
// Get the user from the database
|
|
70
|
+
const user = await db.user.findUnique({ where: { id } });
|
|
71
|
+
// Return the user
|
|
72
|
+
return user;
|
|
73
|
+
|
|
74
|
+
// ✅ CLEAN: No comment needed — code is self-explanatory
|
|
75
|
+
const user = await db.user.findUnique({ where: { id } });
|
|
76
|
+
return user;
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### 6. The Bloated Component
|
|
80
|
+
AI tends to put too much in one component across sessions:
|
|
81
|
+
- Component renders conditionally across 5+ different states.
|
|
82
|
+
- Component has 10+ props.
|
|
83
|
+
- Component imports from 20+ different modules.
|
|
84
|
+
- **Fix**: Apply Single Responsibility — split into sub-components.
|
|
85
|
+
|
|
86
|
+
#### 7. Dependency Creep
|
|
87
|
+
Each AI session may install new packages for tasks already solvable with existing deps:
|
|
88
|
+
```bash
|
|
89
|
+
# Audit dependencies — find packages doing the same thing
|
|
90
|
+
npx depcheck # Unused dependencies
|
|
91
|
+
npx bundle-phobia-cli # Bundle size of each dep
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Gardening Protocol
|
|
95
|
+
|
|
96
|
+
#### Phase 1: Discovery (Read Only)
|
|
97
|
+
1. Map the full file tree.
|
|
98
|
+
2. Identify largest files (likely bloated).
|
|
99
|
+
3. Find duplicated logic with semantic search.
|
|
100
|
+
4. Find unused exports and dead code.
|
|
101
|
+
5. Identify inconsistent patterns across files.
|
|
102
|
+
|
|
103
|
+
#### Phase 2: Triage
|
|
104
|
+
Categorize issues:
|
|
105
|
+
- **Critical**: Bugs, security holes, data loss risks.
|
|
106
|
+
- **High**: Duplicate business logic that will diverge.
|
|
107
|
+
- **Medium**: Code smells that slow development.
|
|
108
|
+
- **Low**: Style inconsistencies, over-verbose comments.
|
|
109
|
+
|
|
110
|
+
#### Phase 3: Systematic Refactoring
|
|
111
|
+
Work file by file, smallest changes first:
|
|
112
|
+
1. Remove dead code and unused imports.
|
|
113
|
+
2. Extract duplicated logic into shared utilities.
|
|
114
|
+
3. Simplify over-engineered abstractions.
|
|
115
|
+
4. Standardize naming conventions.
|
|
116
|
+
5. Add missing tests for business-critical paths.
|
|
117
|
+
|
|
118
|
+
#### Phase 4: Prevention
|
|
119
|
+
- Add ESLint rules to catch common AI slop patterns.
|
|
120
|
+
- Add `depcheck` to CI to catch unused dependencies.
|
|
121
|
+
- Add architecture tests (e.g., `arch-unit`) to enforce layer boundaries.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
<a name="bahasa-indonesia"></a>
|
|
126
|
+
## Bahasa Indonesia
|
|
127
|
+
|
|
128
|
+
### Deskripsi
|
|
129
|
+
Mendeteksi dan membersihkan masalah kualitas kode yang dihasilkan AI — AI slop, kode yang membengkak, context drift, logika yang terduplikasi, kode mati, pola yang tidak konsisten, dan pembusukan arsitektur pada proyek yang banyak menggunakan vibe coding.
|
|
130
|
+
|
|
131
|
+
### Kondisi Pemicu
|
|
132
|
+
- Codebase telah tumbuh tidak terkendali setelah banyak sesi coding berbantuan AI.
|
|
133
|
+
- Duplikasi, pola tidak konsisten, atau abstraksi yang tidak dapat dijelaskan terdeteksi.
|
|
134
|
+
- Fitur semakin sulit ditambahkan atau dipahami.
|
|
135
|
+
- Test rapuh atau tidak ada sama sekali.
|
|
136
|
+
- Codebase memiliki "AI smell" — komentar yang terlalu verbose, kode defensif yang tidak perlu, utilitas yang diduplikasi.
|
|
137
|
+
|
|
138
|
+
### Heuristik Deteksi AI Slop (2026)
|
|
139
|
+
|
|
140
|
+
#### 1. Over-Engineering "Untuk Jaga-Jaga"
|
|
141
|
+
Model AI sering menambahkan fitur atau abstraksi "untuk ekstensibilitas" yang tidak pernah dibutuhkan. Hapus factory pattern, strategy pattern, atau abstraksi lain yang tidak memiliki lebih dari satu implementasi.
|
|
142
|
+
|
|
143
|
+
#### 2. "Belt and Suspenders" — Validasi Ganda Berlebihan
|
|
144
|
+
AI menambahkan null check dan validasi di setiap layer yang sebenarnya sudah divalidasi oleh Zod, TypeScript, atau skema DB. Percayai tipe Anda.
|
|
145
|
+
|
|
146
|
+
#### 3. "Kuburan Utilitas Mati"
|
|
147
|
+
File helper yang dihasilkan AI dengan fungsi yang tidak pernah digunakan. Cari dan hapus ekspor dengan 0 penggunaan.
|
|
148
|
+
|
|
149
|
+
#### 4. Context Drift — Inkonsistensi Gaya
|
|
150
|
+
Sesi yang berbeda menghasilkan gaya koding yang berbeda: sebagian menggunakan `async/await`, yang lain menggunakan `.then()`; penamaan campuran `userId`, `user_id`, `UserID`. Perbaiki dengan satu pass Prettier + aturan ESLint.
|
|
151
|
+
|
|
152
|
+
#### 5. Polusi Komentar
|
|
153
|
+
AI suka mengomentari kode yang sudah jelas sendiri. Hapus komentar yang hanya mengulang apa yang sudah tertulis dalam kode.
|
|
154
|
+
|
|
155
|
+
#### 6. Komponen yang Membengkak
|
|
156
|
+
Komponen dengan terlalu banyak kondisi rendering, prop, atau impor. Terapkan Single Responsibility — pecah menjadi sub-komponen.
|
|
157
|
+
|
|
158
|
+
#### 7. Creep Dependensi
|
|
159
|
+
Setiap sesi AI mungkin menginstal paket baru untuk tugas yang sudah bisa diselesaikan dengan dependensi yang ada. Audit dengan `depcheck` dan `bundle-phobia-cli`.
|
|
160
|
+
|
|
161
|
+
### Protokol Berkebun
|
|
162
|
+
|
|
163
|
+
#### Fase 1: Penemuan (Hanya Baca)
|
|
164
|
+
Peta pohon file lengkap, identifikasi file terbesar, temukan logika yang terduplikasi, temukan ekspor yang tidak digunakan.
|
|
165
|
+
|
|
166
|
+
#### Fase 2: Triase
|
|
167
|
+
Kategorikan masalah: Kritis, Tinggi, Sedang, Rendah.
|
|
168
|
+
|
|
169
|
+
#### Fase 3: Refactoring Sistematis
|
|
170
|
+
Kerja file per file, perubahan terkecil dulu: hapus kode mati, ekstrak logika duplikat, sederhanakan abstraksi berlebih, standarisasi penamaan, tambahkan test yang hilang.
|
|
171
|
+
|
|
172
|
+
#### Fase 4: Pencegahan
|
|
173
|
+
Tambahkan aturan ESLint, `depcheck` di CI, dan architecture test untuk menjaga codebase tetap bersih.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Orchestration & Integration
|
|
178
|
+
- Integrates with `zero-to-prod-orchestrator`, `brainstorming`, `coderabbit`, and `dependency-upgrade-migrator`.
|
|
179
|
+
|
|
180
|
+
## Integrasi Orkestrasi
|
|
181
|
+
- Terintegrasi dengan `zero-to-prod-orchestrator`, `brainstorming`, `coderabbit`, dan `dependency-upgrade-migrator`.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-qa-vision-agent
|
|
3
|
+
description: "Equips the AI agent with visual QA capabilities using Playwright/Puppeteer and the agent's innate Vision capabilities to self-correct UI layout, CSS alignment, and visual regressions."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Visual QA & Vision Agent
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
This skill transforms the agent from a blind code generator into a visual designer. Instead of hoping the CSS looks correct, the agent is instructed to write a script that takes a screenshot of the newly created component, analyzes the screenshot using its own Vision AI capabilities, and iteratively tweaks the CSS until it matches the design intent perfectly.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
Activate this skill when the user says:
|
|
21
|
+
- "Fix the CSS, the button is misaligned."
|
|
22
|
+
- "Make it look exactly like this mockup."
|
|
23
|
+
- "Ensure the UI is responsive on mobile screens."
|
|
24
|
+
|
|
25
|
+
### Core Concepts
|
|
26
|
+
|
|
27
|
+
#### 1. The Visual QA Loop
|
|
28
|
+
1. **Code:** The agent writes the HTML/CSS/React component.
|
|
29
|
+
2. **Serve:** The agent starts a local dev server in the background.
|
|
30
|
+
3. **Capture:** The agent runs a quick Playwright/Puppeteer script to take screenshots at various viewports (Mobile, Tablet, Desktop).
|
|
31
|
+
4. **Analyze:** The agent receives the screenshot (via the `view_file` tool on the image) and analyzes the visual hierarchy, contrast, and alignment.
|
|
32
|
+
5. **Correct:** The agent fixes margin, padding, or flexbox issues based on what it *saw*, not just what the code says.
|
|
33
|
+
|
|
34
|
+
#### 2. Agent Constraints (Mandatory Visual Verification)
|
|
35
|
+
- **NO BLIND CSS GUESSING**: You are strictly prohibited from finalizing a frontend component without verifying it visually first. You MUST use a `browser_subagent` to capture a screenshot of your work.
|
|
36
|
+
- **Pixel-Perfect Validation**: Compare the screenshot against the initial design spec or generic UI/UX best practices. Iterate on the CSS until the visual output is flawless.
|
|
37
|
+
- Always check contrast ratios visually if design tokens are overridden.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### Integration with Other Skills (MANDATORY)
|
|
42
|
+
- `browser-automation-expert` — Provides the Playwright code needed to capture the screenshots.
|
|
43
|
+
- `tailwind-expert` — Provides the CSS utility classes used to fix the alignment issues discovered by Vision.
|
|
44
|
+
- `ui-components-expert` — Defines the correct visual standards (spacing, sizing) the agent should look for.
|
|
45
|
+
|
|
46
|
+
### Referenced By Orchestrators (MANDATORY)
|
|
47
|
+
- `brainstorming` — Add to "UI/UX & Design Systems".
|
|
48
|
+
- `zero-to-prod-orchestrator` — Phase 5 (Frontend / UI Validation).
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
<a name="bahasa-indonesia"></a>
|
|
53
|
+
## Bahasa Indonesia
|
|
54
|
+
|
|
55
|
+
### Deskripsi
|
|
56
|
+
Skill ini memanfaatkan kemampuan *Vision* (penglihatan) bawaan AI untuk melakukan *Quality Assurance* (QA) visual. Agen tidak lagi sekadar menebak CSS secara buta, melainkan mengambil *screenshot* dari halaman yang dibuatnya, melihat hasilnya, dan mengkoreksi *margin/padding* secara mandiri.
|
|
57
|
+
|
|
58
|
+
### Kondisi Pemicu
|
|
59
|
+
- Saat pengguna meminta untuk merapikan UI yang berantakan.
|
|
60
|
+
- Saat melakukan *cloning* desain dari gambar *mockup*.
|
|
61
|
+
|
|
62
|
+
### Panduan Singkat
|
|
63
|
+
- **Gunakan Mata Anda (Wajib Verifikasi Visual):** Anda dilarang keras memfinalisasi atau menyelesaikan tugas frontend tanpa melihat hasilnya terlebih dahulu. Anda WAJIB mengambil *screenshot*, melihatnya menggunakan tool `view_file`, dan memverifikasi layout secara visual (*pixel-perfect*).
|
|
64
|
+
- **Siklus Visual:** Tulis Kode ➔ Ambil Screenshot ➔ Analisis dengan *Vision* ➔ Perbaiki Tailwind/CSS ➔ Selesai.
|
|
65
|
+
- **Jangan Menebak:** Terkadang `justify-center` tidak berfungsi karena ada pembungkus (*wrapper*) absolut. Jangan menebak-nebak di dalam kode; lihat hasil akhirnya secara visual!
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vue-frontend-expert
|
|
3
|
+
description: "Expert guide for Vue 3 (Composition API), Nuxt 3, and Pinia. Covers advanced reactive state management, `<script setup>` syntax, Vue Router, VueUse, and SPA/SSR architectural patterns in English and Indonesian."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Vue Frontend Expert (Vue 3 / Nuxt 3)
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
Production-grade guidance for building highly reactive and scalable frontend applications using **Vue 3 (Composition API)** and **Nuxt 3**. Covers the latest ecosystem tools including **Pinia** for state management, **VueUse** for composables, and **Tailwind CSS v4** integration.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
Activate this skill when the user is:
|
|
21
|
+
- Scaffolding a new Vue 3 or Nuxt 3 project.
|
|
22
|
+
- Writing or refactoring Vue components using `<script setup>` and Composition API.
|
|
23
|
+
- Managing global state with Pinia.
|
|
24
|
+
- Handling client-side routing with Vue Router or Nuxt's file-based routing.
|
|
25
|
+
- Implementing SSR (Server-Side Rendering) or SSG (Static Site Generation) using Nuxt 3.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### Core Concepts
|
|
30
|
+
|
|
31
|
+
#### 1. Vue 3 Composition API & `<script setup>`
|
|
32
|
+
Use the `<script setup>` syntax by default. It provides better type inference, less boilerplate, and superior performance compared to the Options API.
|
|
33
|
+
|
|
34
|
+
```vue
|
|
35
|
+
<script setup lang="ts">
|
|
36
|
+
import { ref, computed, onMounted } from 'vue'
|
|
37
|
+
|
|
38
|
+
const count = ref(0)
|
|
39
|
+
const doubleCount = computed(() => count.value * 2)
|
|
40
|
+
|
|
41
|
+
function increment() {
|
|
42
|
+
count.value++
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
onMounted(() => {
|
|
46
|
+
console.log('Component is mounted!')
|
|
47
|
+
})
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<button @click="increment">Count is: {{ count }} (Double: {{ doubleCount }})</button>
|
|
52
|
+
</template>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### 2. Global State Management (Pinia)
|
|
56
|
+
Pinia is the official state management library for Vue. Avoid Vuex in modern applications.
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
// stores/counter.ts
|
|
60
|
+
import { defineStore } from 'pinia'
|
|
61
|
+
import { ref, computed } from 'vue'
|
|
62
|
+
|
|
63
|
+
export const useCounterStore = defineStore('counter', () => {
|
|
64
|
+
const count = ref(0)
|
|
65
|
+
const doubleCount = computed(() => count.value * 2)
|
|
66
|
+
function increment() {
|
|
67
|
+
count.value++
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return { count, doubleCount, increment }
|
|
71
|
+
})
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### 3. Nuxt 3 Architecture
|
|
75
|
+
For SSR, SEO optimization, and file-based routing, use Nuxt 3.
|
|
76
|
+
- Data fetching: Use `useAsyncData` or `useFetch` to prevent hydration mismatches.
|
|
77
|
+
- Server API: Utilize the `server/api/` directory for Nitro API routes.
|
|
78
|
+
|
|
79
|
+
#### 4. The VueUse Collection
|
|
80
|
+
Always leverage [VueUse](https://vueuse.org/) for common composables (e.g., `useWindowSize`, `onClickOutside`, `useStorage`) instead of writing custom composables from scratch.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### Best Practices
|
|
85
|
+
1. **Ref vs Reactive:** Prefer `ref` for primitive values and `reactive` for deeply nested objects. When in doubt, default to `ref`.
|
|
86
|
+
2. **Define Macros:** Use `defineProps` and `defineEmits` in `<script setup>` for typed props and events.
|
|
87
|
+
3. **Avoid Watchers when possible:** Rely on `computed` properties instead of `watch` to derive state. Use `watch` only for side-effects (e.g., API calls, DOM manipulation).
|
|
88
|
+
4. **V-Model:** Use the updated `v-model` binding in Vue 3.4+ with `defineModel()` for cleaner two-way data binding between components.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### Integration with Other Skills (MANDATORY)
|
|
93
|
+
|
|
94
|
+
This skill works best when combined with:
|
|
95
|
+
- `design-system-architect` — To build headless UI components using Radix Vue or VueUse components.
|
|
96
|
+
- `tailwind-expert` — For styling Vue/Nuxt components with Tailwind CSS v4.
|
|
97
|
+
- `performance-web-vitals` — To optimize Nuxt 3 SSR metrics (LCP, INP).
|
|
98
|
+
|
|
99
|
+
### Referenced By Orchestrators (MANDATORY)
|
|
100
|
+
|
|
101
|
+
This skill should be referenced by the following orchestrators:
|
|
102
|
+
- `brainstorming` — Add to "Frontend Frameworks" row in the Matrix.
|
|
103
|
+
- `zero-to-prod-orchestrator` — Phase 5 (Frontend Implementation).
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
<a name="bahasa-indonesia"></a>
|
|
108
|
+
## Bahasa Indonesia
|
|
109
|
+
|
|
110
|
+
### Deskripsi
|
|
111
|
+
Panduan tingkat produksi untuk membangun aplikasi frontend reaktif dan terukur menggunakan **Vue 3 (Composition API)** dan **Nuxt 3**. Mencakup pengelolaan state dengan **Pinia**, utilitas **VueUse**, dan integrasi **Tailwind CSS v4**.
|
|
112
|
+
|
|
113
|
+
### Kondisi Pemicu
|
|
114
|
+
Aktifkan skill ini ketika pengguna sedang:
|
|
115
|
+
- Memulai proyek Vue 3 atau Nuxt 3 baru.
|
|
116
|
+
- Menulis ulang (refactoring) komponen ke `<script setup>` dan Composition API.
|
|
117
|
+
- Mengelola state global dengan Pinia (bukan Vuex).
|
|
118
|
+
- Menerapkan SSR (Server-Side Rendering) dengan Nuxt 3.
|
|
119
|
+
|
|
120
|
+
### Panduan Singkat
|
|
121
|
+
|
|
122
|
+
- **Composition API Default:** Selalu gunakan sintaks `<script setup lang="ts">`. Lebih ringkas, type-safe, dan efisien.
|
|
123
|
+
- **Pinia:** Gunakan Pinia dengan pola *Setup Store* (mirip Composition API) alih-alih pola Options (state, getters, actions).
|
|
124
|
+
- **Nuxt 3 Fetching:** Gunakan `useFetch` atau `useAsyncData` di dalam komponen Nuxt untuk pengambilan data saat SSR, bukan `onMounted` dengan `fetch` biasa.
|
|
125
|
+
- **Reaktivitas:** Gunakan `ref` untuk nilai primitif (string, number) dan `reactive` untuk objek bersarang yang kompleks. Utamakan `computed` daripada `watch` untuk state turunan.
|
|
126
|
+
- **VueUse:** Jangan menulis fungsi utilitas dari nol jika sudah ada di *library* VueUse (contoh: `useIntersectionObserver`, `useLocalStorage`).
|