vibes-plug 2.11.0 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/vibes-plug-core.mdc +3 -3
- package/.cursorrules +3 -3
- package/AGENTS.md +4 -4
- package/BLUEPRINT.md +16 -6
- package/CHANGELOG.md +37 -0
- package/CLAUDE.md +8 -8
- package/README.md +85 -115
- package/index.js +1 -1
- package/package.json +2 -2
- package/plugin.json +2 -2
- package/scripts/check-anti-slop.js +53 -0
- package/scripts/generate_swarm_gif.py +2 -2
- package/skills/ai-llm-integration-expert/SKILL.md +22 -15
- package/skills/ai-prompt-engineering-expert/SKILL.md +133 -83
- package/skills/anti-slop/SKILL.md +133 -0
- package/skills/async-queue-temporal-expert/SKILL.md +135 -158
- package/skills/authentication-identity-expert/SKILL.md +172 -278
- package/skills/brainstorming/SKILL.md +26 -26
- package/skills/database-orm-expert/SKILL.md +164 -303
- package/skills/deep-research-analyst/SKILL.md +136 -0
- package/skills/design-system-architect/SKILL.md +31 -1
- package/skills/email-notification-expert/SKILL.md +31 -4
- package/skills/error-resilience-expert/SKILL.md +21 -0
- package/skills/fullstack-expert/SKILL.md +183 -260
- package/skills/glsl-shader-expert/SKILL.md +190 -107
- package/skills/graph-rag-knowledge-expert/SKILL.md +42 -1
- package/skills/mcp-server-architect/SKILL.md +15 -1
- package/skills/prd-architect/SKILL.md +181 -206
- package/skills/production-ready-hardener/SKILL.md +16 -19
- package/skills/pwa-offline-first-expert/SKILL.md +42 -1
- package/skills/pydantic-ai-expert/SKILL.md +161 -0
- package/skills/saas-architect/SKILL.md +154 -0
- package/skills/senior-frontend/SKILL.md +9 -11
- package/skills/senior-frontend/scripts/frontend_scaffolder.py +1 -1
- package/skills/session-memory-manager/SKILL.md +128 -0
- package/skills/synthetic-data-finetuning-expert/SKILL.md +155 -0
- package/skills/ui-ux-pro-max/SKILL.md +4 -2
- package/skills/vercel-ai-sdk-expert/SKILL.md +181 -0
- package/skills/voice-ai-realtime-agent/SKILL.md +41 -1
- package/skills/web-3d-graphics-expert/SKILL.md +313 -137
- package/skills/web-game-engine-expert/SKILL.md +329 -102
- package/skills/webxr-ar-vr-expert/SKILL.md +162 -123
- package/skills/zero-to-prod-orchestrator/SKILL.md +26 -24
- package/skills/ai-cost-token-optimizer/SKILL.md +0 -82
- package/skills/ai-evals-benchmark-expert/SKILL.md +0 -188
- package/skills/asisten-ramah/SKILL.md +0 -47
- package/skills/auto-doc-updater/SKILL.md +0 -220
- package/skills/autonomous-chaos-monkey/SKILL.md +0 -63
- package/skills/background-jobs-queue-expert/SKILL.md +0 -235
- package/skills/database-migration-versioning-expert/SKILL.md +0 -90
- package/skills/edge-serverless-db-expert/SKILL.md +0 -99
- package/skills/mcp-client-orchestrator/SKILL.md +0 -76
- package/skills/mobile-push-notification-expert/SKILL.md +0 -71
- package/skills/monday-design-aesthetic/SKILL.md +0 -73
- package/skills/project-context-mapper/SKILL.md +0 -85
- package/skills/saas-mvp-launcher/SKILL.md +0 -260
- package/skills/saas-transformer/SKILL.md +0 -500
- package/skills/saas-transformer/references/billing_integration_guide.md +0 -401
- package/skills/self-evolving-memory-graph/SKILL.md +0 -91
- package/skills/session-context-loader/SKILL.md +0 -83
- package/skills/session-handoff-resume/SKILL.md +0 -164
- package/skills/skill-baru/SKILL.md +0 -178
- package/skills/supabase-migration/SKILL.md +0 -91
- package/skills/token-saver/SKILL.md +0 -119
- package/skills/ui-components-expert/SKILL.md +0 -166
- package/skills/vibe-code-gardener/SKILL.md +0 -181
- /package/skills/{saas-transformer → saas-architect}/references/feature_gating_patterns.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/scripts/saas_transformation_scanner.py +0 -0
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ui-components-expert
|
|
3
|
-
description: Expert guide for building production-quality UI components following the 4 pillars. Covers React 19, Radix UI, Base UI, Tailwind v4, Material Design 3 (M3), WCAG 2.2 / Panduan ahli membangun komponen UI berkualitas produksi dengan M3.
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 🎨 UI Components Expert (2026/2027 Edition)
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
Evaluate, audit, and build production-quality UI components. Apply the 4 pillars of UI components with modern tooling: **shadcn/ui**, **Radix UI**, **Base UI**, **React 19**, **Tailwind v4**, **Material Design 3 (M3)**, **WCAG 2.2**, and micro-interaction design.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
- Build or review UI components (buttons, forms, modals, navigation, tooltips).
|
|
21
|
-
- Implement accessible components (ARIA patterns, keyboard navigation).
|
|
22
|
-
- Audit components against WCAG 2.2.
|
|
23
|
-
- Set up component libraries (shadcn/ui, Radix UI, Base UI).
|
|
24
|
-
- Add micro-interactions and animations.
|
|
25
|
-
|
|
26
|
-
## Orchestration & Integration
|
|
27
|
-
This skill orchestrates and connects with:
|
|
28
|
-
- `senior-frontend`: For overall React 19 / Next.js 15 architecture.
|
|
29
|
-
- `tailwind-expert`: For Tailwind v4 styling and theming.
|
|
30
|
-
- `design-system-architect`: For system-wide design tokens and primitives.
|
|
31
|
-
- `hig`: For Human Interface Guidelines (Hierarchy, Harmony, Consistency).
|
|
32
|
-
|
|
33
|
-
### Component Stack (2026/2027)
|
|
34
|
-
- **Headless Primitives**: Radix UI / Base UI (Accessibility, behavior).
|
|
35
|
-
- **Component Library**: shadcn/ui (Pre-styled, customizable).
|
|
36
|
-
- **Styling**: Tailwind CSS v4 (Utility-first, `@theme` tokens).
|
|
37
|
-
- **Animation**: Motion / Framer Motion v12 (Spring physics).
|
|
38
|
-
- **Icons**: Lucide React.
|
|
39
|
-
- **Forms**: React Hook Form + Zod.
|
|
40
|
-
|
|
41
|
-
### The 4 Pillars of UI Components
|
|
42
|
-
|
|
43
|
-
#### 1: Input Controls
|
|
44
|
-
Capture user intent and data (Buttons, Forms, Selects).
|
|
45
|
-
- **M3 Integration (if requested)**: Use M3 button variants: Filled, Tonal, Elevated, Outlined, and Text. Include FABs (Floating Action Buttons) for primary screen actions.
|
|
46
|
-
- **Visual States**: Define `default`, `hover`, `active`, `focus`, `disabled`, and `error`.
|
|
47
|
-
- **Touch Targets**: Minimum 44×44px (WCAG 2.5.8), M3 recommends 48x48px.
|
|
48
|
-
- **Immediate Feedback**: Provide visual ripple or scale animation on interaction.
|
|
49
|
-
- **Inline Validation**: Show errors on blur. Use `aria-invalid` and `aria-describedby`.
|
|
50
|
-
- **Stack**: React Hook Form + Zod.
|
|
51
|
-
|
|
52
|
-
#### 2: Navigation
|
|
53
|
-
Move through application structure (Navbars, Tabs, Command Palettes).
|
|
54
|
-
- **M3 Integration (if requested)**: Use M3 Navigation Bar for mobile (bottom), Navigation Rail for tablet, and Navigation Drawer for desktop.
|
|
55
|
-
- **Active State**: Indicate current location with high-contrast visual indicators.
|
|
56
|
-
- **Keyboard Navigation**: Support Arrow Keys for tabs, `Escape` to close.
|
|
57
|
-
- **Responsive**: Bottom navigation (<768px), collapsible sidebar (tablet), full sidebar (desktop).
|
|
58
|
-
- **Command Palette**: Add `⌘K` via `cmdk`.
|
|
59
|
-
- **Next.js 15**: Use `<Link viewTransition>` for smooth transitions.
|
|
60
|
-
- **ARIA**: Use `role="navigation"` and `aria-current="page"`.
|
|
61
|
-
|
|
62
|
-
#### 3: Information & Feedback
|
|
63
|
-
Display status and guidance (Toasts, Skeletons, Empty States).
|
|
64
|
-
- **M3 Integration (if requested)**: Use Snackbar for transient messages. Use Badges on navigation icons for notifications.
|
|
65
|
-
- **Color Semantics**: Green (success), red (error), yellow (warning), blue (info).
|
|
66
|
-
- **Toasts**: Use **Sonner**. Limit to 3 concurrent. Auto-dismiss success, keep errors until dismissed.
|
|
67
|
-
- **Loading**: Use Skeletons matching exact content layout over spinners (prevents CLS).
|
|
68
|
-
- **Empty States**: Provide illustration, context, and clear CTA.
|
|
69
|
-
- **ARIA**: `aria-live="polite"` (updates), `aria-live="assertive"` (critical).
|
|
70
|
-
|
|
71
|
-
#### 4: Containers & Layout
|
|
72
|
-
Group related content (Cards, Modals, Sheets).
|
|
73
|
-
- **M3 Integration (if requested)**: Use M3 Card variants: Elevated, Filled, Outlined. Follow M3 Dialog guidelines for Modals.
|
|
74
|
-
- **Modals**: Use Radix UI Dialog. It handles focus trapping and scroll locking automatically.
|
|
75
|
-
- **Animation**: Animate in (`animate-in fade-in zoom-in-95`).
|
|
76
|
-
- **Cards**: Use subtle shadows + borders. Avoid heavy drop shadows in light mode.
|
|
77
|
-
- **Sheets**: Use bottom sheet for mobile secondary actions, side sheet for desktop.
|
|
78
|
-
|
|
79
|
-
### Micro-Interaction Checklist
|
|
80
|
-
- [ ] Implement `:focus-visible` ring (2px, brand color) on all interactives.
|
|
81
|
-
- [ ] **M3 State Layers**: If using M3, ensure interactive elements have distinct Hover, Focus, Pressed, and Dragged state layers.
|
|
82
|
-
- [ ] Add loading state (spinner + disabled) to submit buttons.
|
|
83
|
-
- [ ] Use **Framer Motion v12 spring physics** (`stiffness: 300, damping: 20`) for natural, snappy interactions. Avoid rigid linear transitions.
|
|
84
|
-
- [ ] Use `transition-all duration-200 ease-out` for simple hovers.
|
|
85
|
-
- [ ] Test dark mode for all states (especially error contrast).
|
|
86
|
-
|
|
87
|
-
### WCAG 2.2 Quick Reference
|
|
88
|
-
- **1.4.3**: Text contrast ≥4.5:1.
|
|
89
|
-
- **2.5.8**: Touch target ≥24×24px (min), 44×44px (target).
|
|
90
|
-
- **2.4.7**: Visible focus indicator.
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
<a name="bahasa-indonesia"></a>
|
|
95
|
-
## Bahasa Indonesia
|
|
96
|
-
|
|
97
|
-
### Deskripsi
|
|
98
|
-
Evaluasi, audit, dan bangun komponen UI berkualitas produksi. Terapkan 4 pilar komponen UI dengan tooling modern: **shadcn/ui**, **Radix UI**, **Base UI**, **React 19**, **Tailwind v4**, **Material Design 3 (M3)**, **WCAG 2.2**, dan desain micro-interaction.
|
|
99
|
-
|
|
100
|
-
### Kondisi Pemicu
|
|
101
|
-
- Membangun atau me-review komponen UI (tombol, form, modal, navigasi).
|
|
102
|
-
- Implementasi komponen aksesibel (pola ARIA, navigasi keyboard).
|
|
103
|
-
- Audit komponen berdasarkan WCAG 2.2.
|
|
104
|
-
- Setup library komponen (shadcn/ui, Radix UI, Base UI).
|
|
105
|
-
- Menambahkan micro-interaction dan animasi.
|
|
106
|
-
|
|
107
|
-
## Integrasi Orkestrasi
|
|
108
|
-
Skill ini mengorkestrasi dan terhubung dengan:
|
|
109
|
-
- `senior-frontend`: Untuk arsitektur keseluruhan React 19 / Next.js 15.
|
|
110
|
-
- `tailwind-expert`: Untuk styling dan theming Tailwind v4.
|
|
111
|
-
- `design-system-architect`: Untuk design token dan primitif skala sistem.
|
|
112
|
-
- `hig`: Untuk panduan Human Interface (Hierarki, Harmoni, Konsistensi).
|
|
113
|
-
|
|
114
|
-
### QA Visual Mandatori
|
|
115
|
-
- Wajib gunakan `browser_subagent` dan `visual-qa-vision-agent` untuk validasi layout.
|
|
116
|
-
- Standar Pixel-Perfect: Jangan menebak ukuran. Ambil screenshot dan koreksi pergeseran tata letak.
|
|
117
|
-
|
|
118
|
-
### Stack Komponen (2026/2027)
|
|
119
|
-
- **Headless**: Radix UI / Base UI.
|
|
120
|
-
- **Library**: shadcn/ui.
|
|
121
|
-
- **Styling**: Tailwind CSS v4.
|
|
122
|
-
- **Animasi**: Motion / Framer Motion v12.
|
|
123
|
-
- **Form**: React Hook Form + Zod.
|
|
124
|
-
|
|
125
|
-
### 4 Pilar Komponen UI
|
|
126
|
-
|
|
127
|
-
#### 1: Kontrol Input
|
|
128
|
-
Tangkap data (Tombol, Form, Select).
|
|
129
|
-
- **Integrasi M3 (jika diminta)**: Gunakan varian tombol M3: Filled, Tonal, Elevated, Outlined, dan Text. Sertakan FABs (Floating Action Buttons).
|
|
130
|
-
- Definisikan state visual: `default`, `hover`, `active`, `focus`, `disabled`, `error`.
|
|
131
|
-
- Target sentuh minimal 44×44px (M3 merekomendasikan 48x48px).
|
|
132
|
-
- Tampilkan error saat blur dengan `aria-invalid` dan `aria-describedby`.
|
|
133
|
-
- Gunakan React Hook Form + Zod.
|
|
134
|
-
|
|
135
|
-
#### 2: Navigasi
|
|
136
|
-
Pergerakan pengguna (Navbar, Tab, Command Palette).
|
|
137
|
-
- **Integrasi M3 (jika diminta)**: Gunakan Navigation Bar M3 untuk mobile, Navigation Rail untuk tablet, dan Navigation Drawer untuk desktop.
|
|
138
|
-
- Gunakan indikator visual kontras tinggi untuk lokasi aktif.
|
|
139
|
-
- Wajib dukung navigasi keyboard (Arrow Keys, Escape).
|
|
140
|
-
- Responsive: Bottom navigation (<768px), sidebar desktop.
|
|
141
|
-
- Gunakan `cmdk` untuk Command Palette `⌘K`.
|
|
142
|
-
- Tandai navigasi aktif dengan `aria-current="page"`.
|
|
143
|
-
|
|
144
|
-
#### 3: Informasi & Feedback
|
|
145
|
-
Tampilkan status (Toast, Skeleton, Empty State).
|
|
146
|
-
- **Integrasi M3 (jika diminta)**: Gunakan Snackbar untuk pesan sementara. Gunakan Badges pada ikon navigasi.
|
|
147
|
-
- Gunakan warna semantik secara konsisten.
|
|
148
|
-
- Gunakan **Sonner** untuk toast (maks 3 sekaligus).
|
|
149
|
-
- Gunakan Skeleton persis sesuai layout (jangan gunakan spinner untuk layout) guna mencegah CLS.
|
|
150
|
-
- Sediakan ilustrasi dan CTA pada Empty State.
|
|
151
|
-
|
|
152
|
-
#### 4: Kontainer & Layout
|
|
153
|
-
Kelompokkan konten (Card, Modal, Sheet).
|
|
154
|
-
- **Integrasi M3 (jika diminta)**: Gunakan varian Card M3: Elevated, Filled, Outlined. Ikuti panduan Dialog M3 untuk modal.
|
|
155
|
-
- Gunakan Radix UI Dialog untuk modal (menangani focus trap dan scroll lock).
|
|
156
|
-
- Animasikan kemunculan modal (fade + scale).
|
|
157
|
-
- Gunakan shadow tipis untuk elevasi card di mode terang.
|
|
158
|
-
- Gunakan bottom sheet di mobile.
|
|
159
|
-
|
|
160
|
-
### Checklist Micro-Interaction
|
|
161
|
-
- [ ] Ring `:focus-visible` (2px) pada elemen interaktif.
|
|
162
|
-
- [ ] **State Layers M3**: Jika menggunakan M3, pastikan elemen interaktif memiliki lapisan status (Hover, Focus, Pressed, Dragged) yang berbeda.
|
|
163
|
-
- [ ] State loading pada tombol.
|
|
164
|
-
- [ ] Gunakan **Framer Motion v12 spring physics** (`stiffness: 300, damping: 20`) untuk interaksi alami.
|
|
165
|
-
- [ ] Transisi hover `transition-all duration-200 ease-out`.
|
|
166
|
-
- [ ] Uji kontras warna dark mode.
|
|
@@ -1,181 +0,0 @@
|
|
|
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: "Roedy Rustam"
|
|
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`.
|
|
File without changes
|
/package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md
RENAMED
|
File without changes
|
|
File without changes
|