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
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ui-components-expert
|
|
3
|
-
description: "Expert guide for building production-quality UI components following the 4 pillars: Input Controls, Navigation, Information, and Containers. Covers React 19, Radix UI, shadcn/ui, accessibility (WCAG 2.2), and modern interaction patterns / Panduan ahli membangun komponen UI berkualitas produksi dengan 4 pilar: Kontrol Input, Navigasi, Informasi, dan Kontainer."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 🎨 UI Components Expert (2026 Edition)
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
Expert guide for evaluating, auditing, and building production-quality UI components in 2026. Covers the **4 pillars of UI components** with modern tooling: **shadcn/ui**, **Radix UI**, **Base UI**, **React 19 patterns**, **WCAG 2.2 accessibility**, and micro-interaction design. Use this skill when building, reviewing, or improving any interactive UI element.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
- Building or reviewing UI components: buttons, forms, modals, navigation, tooltips, notifications.
|
|
21
|
-
- Implementing accessible components with ARIA patterns and keyboard navigation.
|
|
22
|
-
- Auditing existing components against WCAG 2.2 and interaction design standards.
|
|
23
|
-
- Setting up a component library with **shadcn/ui**, **Radix UI**, or **Base UI**.
|
|
24
|
-
- Adding micro-interactions, hover states, focus rings, and animation to components.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
### Component Stack Recommendation (2026)
|
|
29
|
-
|
|
30
|
-
| Layer | Tool | Purpose |
|
|
31
|
-
|---|---|---|
|
|
32
|
-
| **Headless Primitives** | Radix UI / Base UI (MUI) | Accessibility, behavior, no styles |
|
|
33
|
-
| **Component Library** | shadcn/ui (copy-paste) | Pre-styled, customizable, owns the code |
|
|
34
|
-
| **Styling** | Tailwind CSS v4 | Utility-first, design tokens via `@theme` |
|
|
35
|
-
| **Animation** | Motion (Framer Motion v12) | Spring physics, layout animations |
|
|
36
|
-
| **Icons** | Lucide React | Consistent, tree-shakeable icon set |
|
|
37
|
-
| **Forms** | React Hook Form + Zod | Type-safe, performant form state |
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
### The 4 Pillars of UI Components
|
|
42
|
-
|
|
43
|
-
#### Pillar 1: Input Controls
|
|
44
|
-
Components that capture user intent and data.
|
|
45
|
-
*Examples: Buttons, Checkboxes, Radio Groups, Text Fields, Selects, Switches, Sliders, Date Pickers*
|
|
46
|
-
|
|
47
|
-
**Best Practices:**
|
|
48
|
-
- **Clear Visual States**: Every input must have distinct `default`, `hover`, `active`, `focus`, `disabled`, and `error` states.
|
|
49
|
-
- **Touch Target Sizes**: Minimum 44×44px (WCAG 2.5.8) for all interactive elements on mobile.
|
|
50
|
-
- **Immediate Feedback**: Provide visual/haptic feedback on interaction — ripple, color change, or animation.
|
|
51
|
-
- **Inline Validation**: Show error messages immediately after blur, not only on submit. Use `aria-invalid` and `aria-describedby` for screen readers.
|
|
52
|
-
- **React Hook Form + Zod Pattern**:
|
|
53
|
-
```tsx
|
|
54
|
-
import { useForm } from 'react-hook-form';
|
|
55
|
-
import { zodResolver } from '@hookform/resolvers/zod';
|
|
56
|
-
import { z } from 'zod';
|
|
57
|
-
|
|
58
|
-
const schema = z.object({
|
|
59
|
-
email: z.string().email('Invalid email address'),
|
|
60
|
-
name: z.string().min(2, 'Name must be at least 2 characters'),
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
export function UserForm() {
|
|
64
|
-
const { register, handleSubmit, formState: { errors, isSubmitting } } = useForm({
|
|
65
|
-
resolver: zodResolver(schema),
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
return (
|
|
69
|
-
<form onSubmit={handleSubmit(onSubmit)}>
|
|
70
|
-
<div>
|
|
71
|
-
<input
|
|
72
|
-
{...register('email')}
|
|
73
|
-
aria-invalid={!!errors.email}
|
|
74
|
-
aria-describedby={errors.email ? 'email-error' : undefined}
|
|
75
|
-
className="..."
|
|
76
|
-
/>
|
|
77
|
-
{errors.email && (
|
|
78
|
-
<p id="email-error" role="alert" className="text-destructive text-sm">
|
|
79
|
-
{errors.email.message}
|
|
80
|
-
</p>
|
|
81
|
-
)}
|
|
82
|
-
</div>
|
|
83
|
-
<button type="submit" disabled={isSubmitting}>
|
|
84
|
-
{isSubmitting ? 'Saving...' : 'Save'}
|
|
85
|
-
</button>
|
|
86
|
-
</form>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
#### Pillar 2: Navigation
|
|
94
|
-
Components that help users move through the application structure.
|
|
95
|
-
*Examples: Navbars, Tabs, Breadcrumbs, Pagination, Sidebars, Dropdowns, Command Palettes*
|
|
96
|
-
|
|
97
|
-
**Best Practices:**
|
|
98
|
-
- **Active State Clarity**: Always indicate the current location with a high-contrast visual indicator (filled background, underline, bold text). Never use color alone.
|
|
99
|
-
- **Keyboard Navigation**: Tabs must support Arrow Keys; menus must support `Escape` to close; focus must be managed on open/close.
|
|
100
|
-
- **Responsive Patterns**: Use bottom navigation on mobile (<768px), collapsible sidebar on tablet, full sidebar on desktop.
|
|
101
|
-
- **Command Palette (2026 Standard)**: Add `⌘K` / `Ctrl+K` command palette for power users using `cmdk` library.
|
|
102
|
-
- **`<Link>` with View Transitions** (Next.js 15):
|
|
103
|
-
```tsx
|
|
104
|
-
import Link from 'next/link';
|
|
105
|
-
|
|
106
|
-
// Enables smooth page transitions
|
|
107
|
-
<Link href="/dashboard" viewTransition>
|
|
108
|
-
Dashboard
|
|
109
|
-
</Link>
|
|
110
|
-
```
|
|
111
|
-
- **ARIA Roles**: Use `role="navigation"` with `aria-label` on `<nav>`. Mark current page with `aria-current="page"`.
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
#### Pillar 3: Information & Feedback
|
|
116
|
-
Components that display status, guidance, or alerts to users.
|
|
117
|
-
*Examples: Toast Notifications, Tooltips, Badges, Alert Banners, Progress Bars, Skeletons, Empty States*
|
|
118
|
-
|
|
119
|
-
**Best Practices:**
|
|
120
|
-
- **Contextual Color System**: Use semantic colors consistently — green (success), red (error/destructive), yellow (warning), blue (info).
|
|
121
|
-
- **Toast Notifications**: Use **Sonner** (lightweight, accessible) — limit to 3 concurrent toasts, auto-dismiss success in 4s, keep errors until dismissed.
|
|
122
|
-
- **Skeleton Loading**: Prefer skeletons over spinners for content areas — they reduce perceived load time and prevent layout shift (CLS).
|
|
123
|
-
```tsx
|
|
124
|
-
// Sonner toast
|
|
125
|
-
import { toast } from 'sonner';
|
|
126
|
-
|
|
127
|
-
toast.success('Profile updated!');
|
|
128
|
-
toast.error('Something went wrong', { description: 'Please try again.' });
|
|
129
|
-
toast.promise(saveProfile(), {
|
|
130
|
-
loading: 'Saving...',
|
|
131
|
-
success: 'Saved!',
|
|
132
|
-
error: 'Failed to save',
|
|
133
|
-
});
|
|
134
|
-
```
|
|
135
|
-
- **Empty States**: Never show blank areas — provide illustration, explanation, and a clear CTA.
|
|
136
|
-
- **`aria-live` for Dynamic Content**: Use `aria-live="polite"` for non-urgent updates, `aria-live="assertive"` for critical errors.
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
#### Pillar 4: Containers & Layout
|
|
141
|
-
Components that group related content into structured visual units.
|
|
142
|
-
*Examples: Cards, Modals (Dialogs), Sheets (Drawers), Accordions, Tabs, Carousels, Popover*
|
|
143
|
-
|
|
144
|
-
**Best Practices:**
|
|
145
|
-
- **Modal/Dialog (Radix UI)**:
|
|
146
|
-
```tsx
|
|
147
|
-
import * as Dialog from '@radix-ui/react-dialog';
|
|
148
|
-
|
|
149
|
-
export function ConfirmDialog({ onConfirm }: { onConfirm: () => void }) {
|
|
150
|
-
return (
|
|
151
|
-
<Dialog.Root>
|
|
152
|
-
<Dialog.Trigger asChild>
|
|
153
|
-
<button>Delete Account</button>
|
|
154
|
-
</Dialog.Trigger>
|
|
155
|
-
<Dialog.Portal>
|
|
156
|
-
<Dialog.Overlay className="fixed inset-0 bg-black/50 backdrop-blur-sm animate-in fade-in" />
|
|
157
|
-
<Dialog.Content
|
|
158
|
-
className="fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 bg-background rounded-xl shadow-2xl p-6 w-[400px] animate-in fade-in zoom-in-95"
|
|
159
|
-
aria-describedby="dialog-description"
|
|
160
|
-
>
|
|
161
|
-
<Dialog.Title className="text-lg font-semibold">Are you sure?</Dialog.Title>
|
|
162
|
-
<Dialog.Description id="dialog-description" className="text-muted-foreground mt-2">
|
|
163
|
-
This action cannot be undone.
|
|
164
|
-
</Dialog.Description>
|
|
165
|
-
<div className="flex gap-3 mt-6 justify-end">
|
|
166
|
-
<Dialog.Close asChild>
|
|
167
|
-
<button className="btn-secondary">Cancel</button>
|
|
168
|
-
</Dialog.Close>
|
|
169
|
-
<button onClick={onConfirm} className="btn-destructive">Delete</button>
|
|
170
|
-
</div>
|
|
171
|
-
</Dialog.Content>
|
|
172
|
-
</Dialog.Portal>
|
|
173
|
-
</Dialog.Root>
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
|
-
```
|
|
177
|
-
- **Focus Trap**: Radix UI handles focus trapping automatically inside dialogs.
|
|
178
|
-
- **Scroll Lock**: Lock body scroll when modal is open — Radix handles this.
|
|
179
|
-
- **Card Design**: Use subtle shadows + borders for elevation. Never use heavy drop shadows on cards in light mode.
|
|
180
|
-
- **Sheet/Drawer**: Use for mobile-first secondary actions. Prefer bottom sheet on mobile, side sheet on desktop.
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
### Micro-Interaction Checklist (Next-Gen)
|
|
185
|
-
These small details separate premium from basic UI:
|
|
186
|
-
- [ ] All interactive elements have `:focus-visible` ring (2px, brand color).
|
|
187
|
-
- [ ] Buttons have loading state with spinner + disabled state.
|
|
188
|
-
- [ ] Form fields animate error shake on invalid submit.
|
|
189
|
-
- [ ] **Physics-Based Animation**: Do not rely solely on linear `ease-in-out`. Use Framer Motion (v12) `spring` physics (`stiffness: 300, damping: 20`) for modals, popovers, and interactive elements to provide a natural, snappy feel.
|
|
190
|
-
- [ ] Hover transitions on simple buttons use `transition-all duration-200 ease-out`.
|
|
191
|
-
- [ ] Modals animate in with fade + scale: `animate-in fade-in zoom-in-95`.
|
|
192
|
-
- [ ] List items stagger-animate when rendered (use Motion `stagger`).
|
|
193
|
-
- [ ] Skeleton loaders match the exact layout of the content they replace.
|
|
194
|
-
- [ ] Dark mode tested for all states (especially error/warning colors).
|
|
195
|
-
|
|
196
|
-
### Accessibility (WCAG 2.2) Quick Reference
|
|
197
|
-
| Criterion | Requirement |
|
|
198
|
-
|---|---|
|
|
199
|
-
| **1.4.3** | Text contrast ≥4.5:1 (normal), ≥3:1 (large/bold) |
|
|
200
|
-
| **2.5.8** | Touch target ≥24×24px (min), 44×44px (recommended) |
|
|
201
|
-
| **2.4.7** | Focus indicator visible on all interactive elements |
|
|
202
|
-
| **2.4.11** | Focus not obscured by sticky headers |
|
|
203
|
-
| **3.2.2** | No unexpected context change on input |
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
<a name="bahasa-indonesia"></a>
|
|
208
|
-
## Bahasa Indonesia
|
|
209
|
-
|
|
210
|
-
### Deskripsi
|
|
211
|
-
Panduan ahli untuk mengevaluasi, mengaudit, dan membangun komponen UI berkualitas produksi di 2026. Mencakup **4 pilar komponen UI** dengan tooling modern: **shadcn/ui**, **Radix UI**, **Base UI**, **pola React 19**, **aksesibilitas WCAG 2.2**, dan desain micro-interaction. Gunakan skill ini saat membangun, me-review, atau meningkatkan elemen UI interaktif apapun.
|
|
212
|
-
|
|
213
|
-
### Kondisi Pemicu
|
|
214
|
-
- Membangun atau me-review komponen UI: tombol, form, modal, navigasi, tooltip, notifikasi.
|
|
215
|
-
- Mengimplementasikan komponen aksesibel dengan pola ARIA dan navigasi keyboard.
|
|
216
|
-
- Mengaudit komponen yang ada terhadap standar WCAG 2.2 dan desain interaksi.
|
|
217
|
-
- Menyiapkan library komponen dengan shadcn/ui, Radix UI, atau Base UI.
|
|
218
|
-
- Menambahkan micro-interaction, hover state, focus ring, dan animasi ke komponen.
|
|
219
|
-
|
|
220
|
-
### QA Visual Mandatori (KRITIS)
|
|
221
|
-
- **Siklus Verifikasi Visual**: Anda DILARANG KERAS menyelesaikan komponen UI tanpa mengambil screenshot menggunakan `browser_subagent` dan menganalisisnya via `visual-qa-vision-agent`.
|
|
222
|
-
- **Standar Pixel-Perfect**: Jangan menebak padding/margin. Ambil gambar, analisis dengan kemampuan Vision Anda, dan koreksi pergeseran tata letak hingga sempurna.
|
|
223
|
-
|
|
224
|
-
### Stack Komponen Rekomendasi (2026)
|
|
225
|
-
- **Headless Primitives**: Radix UI / Base UI — aksesibilitas dan behavior tanpa style.
|
|
226
|
-
- **Library Komponen**: shadcn/ui — pre-styled, customizable, kode dimiliki sendiri.
|
|
227
|
-
- **Styling**: Tailwind CSS v4 — utility-first dengan design token via `@theme`.
|
|
228
|
-
- **Animasi**: Motion (Framer Motion v12) — spring physics, layout animations.
|
|
229
|
-
- **Form**: React Hook Form + Zod — type-safe, performa tinggi.
|
|
230
|
-
|
|
231
|
-
### 4 Pilar Komponen UI
|
|
232
|
-
|
|
233
|
-
#### Pilar 1: Kontrol Input
|
|
234
|
-
Komponen yang menangkap input dan data pengguna (tombol, form, checkbox, select, switch).
|
|
235
|
-
|
|
236
|
-
**Best Practices:**
|
|
237
|
-
- Setiap input harus memiliki state visual yang jelas: `default`, `hover`, `active`, `focus`, `disabled`, `error`.
|
|
238
|
-
- Ukuran touch target minimal 44×44px untuk elemen interaktif di mobile.
|
|
239
|
-
- Validasi inline dengan pesan error yang muncul setelah blur, bukan hanya saat submit.
|
|
240
|
-
- Gunakan `aria-invalid` dan `aria-describedby` untuk screen reader.
|
|
241
|
-
- Gunakan **React Hook Form + Zod** untuk form yang type-safe dan berperforma tinggi.
|
|
242
|
-
|
|
243
|
-
#### Pilar 2: Navigasi
|
|
244
|
-
Komponen yang membantu pengguna bergerak dalam struktur aplikasi (navbar, tab, breadcrumb, sidebar, command palette).
|
|
245
|
-
|
|
246
|
-
**Best Practices:**
|
|
247
|
-
- Selalu tunjukkan lokasi saat ini dengan indikator visual yang jelas (background, garis bawah, teks tebal).
|
|
248
|
-
- Navigasi keyboard wajib: Arrow Keys untuk tab/menu, Escape untuk menutup, fokus terkelola saat buka/tutup.
|
|
249
|
-
- Gunakan bottom navigation di mobile, sidebar di desktop.
|
|
250
|
-
- Tambahkan command palette `⌘K` untuk power user menggunakan library `cmdk`.
|
|
251
|
-
- Tandai halaman aktif dengan `aria-current="page"`.
|
|
252
|
-
|
|
253
|
-
#### Pilar 3: Informasi & Feedback
|
|
254
|
-
Komponen yang menampilkan status, panduan, atau peringatan (toast, tooltip, badge, skeleton, empty state).
|
|
255
|
-
|
|
256
|
-
**Best Practices:**
|
|
257
|
-
- Warna semantik yang konsisten: hijau (sukses), merah (error), kuning (peringatan), biru (info).
|
|
258
|
-
- Gunakan **Sonner** untuk toast notifikasi — ringan dan aksesibel.
|
|
259
|
-
- Gunakan skeleton loader (bukan spinner) untuk area konten guna mengurangi perceived load time.
|
|
260
|
-
- Selalu sediakan empty state dengan ilustrasi, penjelasan, dan CTA yang jelas.
|
|
261
|
-
- Gunakan `aria-live="polite"` untuk pembaruan konten dinamis.
|
|
262
|
-
|
|
263
|
-
#### Pilar 4: Kontainer & Layout
|
|
264
|
-
Komponen yang mengelompokkan konten terkait (card, modal/dialog, sheet/drawer, accordion, popover).
|
|
265
|
-
|
|
266
|
-
**Best Practices:**
|
|
267
|
-
- Gunakan **Radix UI Dialog** untuk modal — menangani focus trap, scroll lock, dan aksesibilitas secara otomatis.
|
|
268
|
-
- Animasikan modal dengan fade + scale: `animate-in fade-in zoom-in-95`.
|
|
269
|
-
- Gunakan shadow tipis + border untuk elevasi card. Hindari drop shadow berat di mode terang.
|
|
270
|
-
- Gunakan bottom sheet di mobile, side sheet di desktop untuk aksi sekunder.
|
|
271
|
-
|
|
272
|
-
### Checklist Micro-Interaction (Next-Gen)
|
|
273
|
-
Detail kecil yang membedakan UI premium dari yang biasa:
|
|
274
|
-
- [ ] Semua elemen interaktif memiliki `:focus-visible` ring (2px, warna brand).
|
|
275
|
-
- [ ] Tombol memiliki loading state dengan spinner + disabled state.
|
|
276
|
-
- [ ] **Animasi Fisika (Spring)**: Hindari transisi linier kaku. Gunakan Framer Motion (v12) `spring` (`stiffness: 300, damping: 20`) pada interaksi klik, modal, dan dropdown agar terasa alami dan sangat responsif.
|
|
277
|
-
- [ ] Hover transition sederhana menggunakan `transition-all duration-200 ease-out`.
|
|
278
|
-
- [ ] Modal dan drawer muncul dengan animasi fade + scale yang mulus.
|
|
279
|
-
- [ ] Skeleton loader sesuai persis dengan layout konten yang digantikan.
|
|
280
|
-
- [ ] Dark mode diuji untuk semua state (terutama warna error/warning).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ui-ux-expert
|
|
3
|
-
description: "UI/UX Designer & Frontend Specialist / UI/UX Designer & Spesialis Frontend."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# UI/UX Expert
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
This skill establishes Antigravity as a **UI/UX Designer & Frontend Specialist** focusing on building responsive web applications for Desktop and Tablet (landscape 1080x720 px). Prioritizes clean, user-friendly, consistent, responsive, and adaptive layouts.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
Active when the user requests help with:
|
|
21
|
-
- UI/UX Design.
|
|
22
|
-
- Layouts and grid systems.
|
|
23
|
-
- Designing responsive web components.
|
|
24
|
-
- Frontend development (HTML/CSS/JS).
|
|
25
|
-
- Creating wireframes or mockups.
|
|
26
|
-
|
|
27
|
-
### UI (User Interface) Skills
|
|
28
|
-
- **Layout & Grid**: Use CSS Grid/Flexbox, max container width of 1080px, and consistent spacing (8px system).
|
|
29
|
-
- **Typography**: Maximum 2–3 fonts with clear hierarchy (H1: 24–32px, H2: 18–24px, Body: 14–16px).
|
|
30
|
-
- **Color System**: Define Primary, Secondary, and Neutral colors with proper WCAG contrast accessibility.
|
|
31
|
-
- **Reusable Components**: Design modular buttons, cards, navbars, form inputs, and modals.
|
|
32
|
-
|
|
33
|
-
### UX (User Experience) Skills
|
|
34
|
-
- **Responsiveness Strategy**: Focus breakpoints on Desktop (≥1080px) and Tablet Landscape (768px – 1080px).
|
|
35
|
-
- **Navigation**: Easy-to-reach sidebar/topbar navigation, ensuring user journeys require no more than 3 clicks to their destination.
|
|
36
|
-
- **Usability & Interaction**: Prioritize simplicity and clarity. Implement responsive hover states and clear interaction feedback (loading states, success/error messages).
|
|
37
|
-
- **Cognitive Load Reduction**: Implement Progressive Disclosure. Do not overwhelm the user with all settings/buttons at once. Hide advanced features behind "Advanced" accordions or dropdowns.
|
|
38
|
-
|
|
39
|
-
### Modern SaaS Design Guidelines (Next-Gen Aesthetic)
|
|
40
|
-
- **Visual Aesthetic**: Move beyond flat design. Implement Premium styles like **Glassmorphism** (translucent backgrounds with `backdrop-blur-md`), dynamic Aurora gradients, or Bento Grid layouts. Backgrounds should feel spatial and alive.
|
|
41
|
-
- **Typography**: Geometric sans-serif fonts with high contrast (extra-bold 48-60px for hero, medium 16-18px for body in muted gray `#676879`).
|
|
42
|
-
- **Components**: Rounded corners for buttons (~8px) and large radius for cards (~12-16px) with subtle drop shadows (`shadow-sm` to `shadow-xl` for elevation).
|
|
43
|
-
- **Layout Flow**: Centered content with a max-width of 1200-1400px and very generous vertical section padding (80-120px) to create a premium feel.
|
|
44
|
-
|
|
45
|
-
### Modern & Professional Dashboard Design Guidelines
|
|
46
|
-
- **Dashboard Layout**:
|
|
47
|
-
- **Sidebar**: Collapsible navigation bar (240px–280px width open, 64px–80px collapsed). Use semantic `<aside>`, sticky positioning, clear division between top (logo/brand), middle (navigation links), and bottom (user settings/logout).
|
|
48
|
-
- **Header (Topbar)**: Sticky header with breadcrumbs, search, notification icon, and profile menu.
|
|
49
|
-
- **Main Content**: Structured layout utilizing CSS Grid or Flexbox, max-width wrapper, and consistent padding (e.g., 24px/p-6).
|
|
50
|
-
- **Metric Cards (KPIs)**:
|
|
51
|
-
- Place primary metric summaries at the top (usually 3–4 columns grid).
|
|
52
|
-
- Structure: Label (subtle gray), Value (large, bold/semibold, e.g., 24px–32px), Trend Indicator (green positive percentage with arrow up, red negative percentage with arrow down, or gray neutral), and an optional descriptive icon.
|
|
53
|
-
- **Charts & Data Visualization**:
|
|
54
|
-
- Keep charts clean: minimal grid lines, legible labels, custom responsive tooltips, and clear legends.
|
|
55
|
-
- Use colors from the primary/secondary theme. Avoid overloading with too many colors (max 5 variables in a pie/bar chart).
|
|
56
|
-
- **Data Tables & Lists**:
|
|
57
|
-
- Implement structured, highly legible tables with sticky headers for scrolling.
|
|
58
|
-
- Support essential table controls: search, sorting, filtering, row selection, pagination, and bulk actions.
|
|
59
|
-
- **Visual Aesthetics & Spacing**:
|
|
60
|
-
- Background: Off-white/slate-50 (`#F8FAFC`) in light mode, dark-zinc/slate-950 (`#09090B` or `#020617`) in dark mode.
|
|
61
|
-
- Cards: Pure white (`#FFFFFF`) or dark slate-900 (`#1E293B`) cards with subtle borders (`1px border-slate-100/200`) and soft shadows (`shadow-sm` or `shadow-md`).
|
|
62
|
-
- Font: Clean, legible Sans-serif typography (e.g., Inter, Outfit, Plus Jakarta Sans).
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
<a name="bahasa-indonesia"></a>
|
|
67
|
-
## Bahasa Indonesia
|
|
68
|
-
|
|
69
|
-
### Deskripsi
|
|
70
|
-
Skill ini menjadikan Antigravity sebagai **UI/UX Designer & Frontend Specialist** yang berfokus pada pembuatan web aplikasi responsif untuk Desktop dan Tablet (landscape 1080x720 px). Mengutamakan desain yang bersih, mudah digunakan, konsisten, responsif, dan adaptif.
|
|
71
|
-
|
|
72
|
-
### Kondisi Pemicu
|
|
73
|
-
Aktif ketika pengguna meminta bantuan terkait:
|
|
74
|
-
- Desain UI/UX.
|
|
75
|
-
- Layout dan grid system.
|
|
76
|
-
- Pembuatan komponen web responsif.
|
|
77
|
-
- Frontend development (HTML/CSS/JS).
|
|
78
|
-
- Pembuatan wireframe atau mockup.
|
|
79
|
-
|
|
80
|
-
### Kemampuan UI (User Interface)
|
|
81
|
-
- **Layout & Grid**: Gunakan CSS Grid/Flexbox, container width maksimal 1080px, dan spacing konsisten (8px system).
|
|
82
|
-
- **Tipografi**: Maksimal 2–3 font dengan hierarki ukuran yang jelas (H1: 24–32px, H2: 18–24px, Body: 14–16px).
|
|
83
|
-
- **Sistem Warna**: Tentukan warna Primary, Secondary, dan Neutral dengan kontras aksesibilitas WCAG yang memadai.
|
|
84
|
-
- **Komponen Reusable**: Buat button, card, navbar, form input, dan modal yang modular dan dapat digunakan kembali.
|
|
85
|
-
|
|
86
|
-
### Kemampuan UX (User Experience)
|
|
87
|
-
- **Strategi Responsif**: Breakpoint fokus pada Desktop (≥1080px) dan Tablet Landscape (768px – 1080px).
|
|
88
|
-
- **Navigasi**: Navigasi sidebar/topbar yang mudah dijangkau, dengan alur tidak lebih dari 3 klik ke tujuan.
|
|
89
|
-
- **Usability & Interaction**: Utamakan kesederhanaan dan kejelasan, buat hover state yang responsif, dan sediakan feedback interaksi seperti loading state dan status sukses/error.
|
|
90
|
-
|
|
91
|
-
### Panduan Desain SaaS Modern (Estetika Next-Gen)
|
|
92
|
-
- **Estetika Visual**: Tinggalkan desain *flat* yang membosankan. Gunakan gaya Premium seperti **Glassmorphism** (latar tembus pandang dengan `backdrop-blur-md`), gradasi dinamis Aurora, atau tata letak Bento Grid. Latar belakang harus terasa spasial dan hidup.
|
|
93
|
-
- **Tipografi**: Font sans-serif geometris dengan kontras tinggi (sangat tebal 48-60px untuk hero, sedang 16-18px abu-abu redup `#676879` untuk teks isi).
|
|
94
|
-
- **Komponen**: Sudut melengkung untuk tombol (~8px) dan radius besar untuk kartu (~12-16px) dengan efek bayangan halus yang memperlihatkan elevasi.
|
|
95
|
-
- **Alur Tata Letak**: Konten terpusat dengan lebar maksimal 1200-1400px serta padding vertikal antar bagian yang sangat lega (80-120px) untuk kesan premium.
|
|
96
|
-
|
|
97
|
-
### Panduan Desain Dashboard Modern & Profesional
|
|
98
|
-
- **Tata Letak Dashboard (Layout)**:
|
|
99
|
-
- **Sidebar**: Bar navigasi samping yang dapat dilipat/collapsible (lebar 240px–280px saat terbuka, 64px–80px saat tertutup). Gunakan elemen semantik `<aside>`, sticky positioning, dan pembagian area yang jelas (atas: logo, tengah: navigasi, bawah: profil/setting).
|
|
100
|
-
- **Header (Topbar)**: Header sticky yang memuat breadcrumbs, kolom pencarian, ikon notifikasi, dan menu profil.
|
|
101
|
-
- **Main Content**: Area konten utama menggunakan CSS Grid/Flexbox dengan padding konsisten (misal: 24px/p-6).
|
|
102
|
-
- **Kartu Metrik (KPI Cards)**:
|
|
103
|
-
- Letakkan ringkasan metrik utama di bagian paling atas (biasanya grid 3–4 kolom).
|
|
104
|
-
- Struktur: Label metrik (abu-abu halus), Nilai utama (besar dan tebal, misal: 24px–32px), Indikator Tren (persentase positif warna hijau dengan panah ke atas, persentase negatif warna merah dengan panah ke bawah), dan ikon penjelas.
|
|
105
|
-
- **Visualisasi Data & Grafik (Charts)**:
|
|
106
|
-
- Desain grafik yang bersih: kurangi grid lines yang tidak perlu, label yang mudah dibaca, tooltip interaktif, dan legenda yang jelas.
|
|
107
|
-
- Gunakan warna aksen sesuai dengan tema palet dashboard. Hindari terlalu banyak warna (maksimal 5 warna dalam satu grafik).
|
|
108
|
-
- **Tabel Data & List**:
|
|
109
|
-
- Tampilkan data dalam tabel dengan header yang *sticky* saat di-scroll dan legibilitas tinggi.
|
|
110
|
-
- Sediakan kontrol dasar: pencarian, pengurutan (sorting), penyaringan (filtering), seleksi baris, paginasi, dan aksi massal (bulk actions).
|
|
111
|
-
- **Estetika Visual & Spacing**:
|
|
112
|
-
- Latar Belakang (Background): Off-white/slate-50 (`#F8FAFC`) pada mode terang, dark-zinc/slate-950 (`#09090B` atau `#020617`) pada mode gelap.
|
|
113
|
-
- Kartu (Cards): Berwarna putih bersih (`#FFFFFF`) atau dark slate-900 (`#1E293B`) dengan border halus (`1px border-slate-100/200`) serta drop shadow lembut (`shadow-sm` atau `shadow-md`).
|
|
114
|
-
- Tipografi: Gunakan font Sans-serif yang sangat terbaca (seperti Inter, Outfit, Plus Jakarta Sans).
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
### 🎨 Automatic Visual Assets Generation Mandate (CRITICAL)
|
|
119
|
-
**MANDATORY**: Whenever you are building a new application, scaffolding a project, or finalizing the initial UI/UX, you MUST automatically use the `generate_image` tool to create a custom logo that perfectly matches the application's core concept and aesthetic.
|
|
120
|
-
This generated image MUST be explicitly used as:
|
|
121
|
-
1. The primary application logo (e.g., in the header/navbar).
|
|
122
|
-
2. The website favicon (`favicon.ico` or equivalent).
|
|
123
|
-
3. The Open Graph (OG) image for SEO metadata (`og:image`).
|
|
124
|
-
|
|
125
|
-
Do not use placeholders for these assets. Generate and integrate them automatically.
|
|
@@ -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: 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`.
|
package/vibes-swarm-demo.gif
DELETED
|
Binary file
|
|
File without changes
|
/package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md
RENAMED
|
File without changes
|
|
File without changes
|