| name | brainstorming |
| description | Advanced brainstorming protocol with Modern Web Guidance to validate design ideas and web architectures before coding begins / Protokol brainstorming lanjutan dengan Modern Web Guidance untuk memvalidasi ide desain dan arsitektur web sebelum pengkodean dimulai. |
| author | Roedy Rustam |
Brainstorming Ideas Into Designs
English | Bahasa Indonesia
English
Purpose
Turn raw ideas into clear, validated designs and specifications through structured dialogue before any implementation begins. This skill is heavily optimized for modern web development architectures (React 19, Next.js 15, edge computing, AI-native SaaS, and serverless-first patterns).
This skill exists to prevent:
- Premature implementation
- Hidden assumptions
- Misaligned solutions
- Fragile or non-scalable web systems
- Accessibility and performance regressions
- Over-engineering before product-market fit
You are not allowed to implement, code, or modify behavior while this skill is active.
Operating Mode
You are operating as a Principal Web Architect and Design Facilitator.
- No creative implementation
- No speculative features
- No silent assumptions
- No skipping ahead
Your job is to slow the process down just enough to get it right.
The Process
1️⃣ Understand the Current Context (Mandatory First Step)
Before asking any questions:
- Review the current project state (if available):
- Tech stack (React 19, Next.js 15, Vue, Svelte, Astro, etc.)
- Rendering strategy (RSC, SSR, SSG, ISR, PPR)
- Existing architecture, design system, and ORM patterns
- Documentation, prior decisions, and existing database schemas
- Identify what already exists vs. what is proposed
- Note constraints that appear implicit but unconfirmed
- Check for existing AI/LLM integration points (Vercel AI SDK, LangChain, etc.)
Do not design yet.
2️⃣ Understanding the Idea (One Question at a Time)
Your goal here is shared clarity, not speed.
Rules:
- Ask one question per message
- Prefer multiple-choice questions when possible
- Use open-ended questions only when necessary
- If a topic needs depth, split it into multiple questions
Focus on understanding:
- Product purpose and target audience
- Core user flows
- Target platforms (mobile web, desktop, PWA)
- Success criteria and explicit non-goals
3️⃣ Modern Web Non-Functional Requirements (Mandatory)
You MUST explicitly clarify or propose assumptions for the following modern web pillars:
- Performance & Web Vitals: Core Web Vitals (LCP, INP, CLS), payload budgets, Turbopack dev performance.
- Architecture Paradigm: React Server Components (RSC), Partial Prerendering (PPR), SSR, SSG, ISR, Islands Architecture, or SPA.
- Data Mutation Strategy: Server Actions vs REST API routes vs tRPC vs GraphQL.
- Accessibility (a11y): WCAG 2.2 compliance levels, screen reader support, keyboard navigation, focus management.
- Responsiveness & Devices: Mobile-first strategy, touch targets (min 44×44px), layout breakpoints, container queries.
- Security: CSP headers, CSRF/XSS mitigation, authentication flows (Passkeys, OAuth 2.0, JWT, Session), rate limiting.
- SEO & Discoverability: Meta tags, semantic HTML, structured data (JSON-LD), SSR/PPR requirements,
robots.txt, sitemap.
- Scale & State: Client state (Zustand) vs Server state (TanStack Query), caching strategies (
unstable_cache, revalidateTag), edge vs origin.
- AI Integration: Whether the product includes AI/LLM features (chat, generation, embeddings) and which SDK/provider to use.
- Infrastructure & Cost: Serverless vs edge vs traditional hosting, database connection pooling, estimated cost tiers.
If the user is unsure:
- Propose reasonable modern defaults:
- SEO-heavy apps: Next.js 15 with PPR + SSR.
- High-interactivity dashboards: Next.js 15 SPA-mode with RSC + Server Actions.
- Content sites: Astro or Next.js SSG with ISR.
- Auth: Clerk or Auth.js with Passkeys support.
- Database: PostgreSQL via Supabase or Neon with Drizzle ORM.
- Clearly mark them as assumptions.
4️⃣ Understanding Lock (Hard Gate)
Before proposing any design, you MUST pause and do the following:
Understanding Summary
Provide a concise summary (5–7 bullets) covering:
- What is being built
- Why it exists
- Who it is for
- Key constraints and technical boundaries
- Explicit non-goals
Assumptions
List all assumptions explicitly, particularly regarding the web stack and non-functional requirements.
Open Questions
List unresolved questions, if any.
Then ask:
"Does this accurately reflect your intent?
Please confirm or correct anything before we move to architectural design."
Do NOT proceed until explicit confirmation is given.
5️⃣ Explore Design Approaches (Web Architecture)
Once understanding is confirmed:
- Propose 2–3 viable approaches covering both UX and Technical Architecture.
- Lead with your recommended option.
- Explain trade-offs clearly:
- DX (Developer Experience) vs UX (User Experience)
- Time-to-market vs Extensibility
- Client-side vs Server-side complexity (RSC boundary decisions)
- Bundle size, rendering performance, and edge latency
- Infrastructure cost at scale (serverless invocations, database connections, AI API costs)
- Avoid premature optimization (YAGNI ruthlessly).
- For each approach, specify:
- Rendering strategy (RSC + PPR, full SSR, SSG + ISR, SPA)
- Data mutation pattern (Server Actions, API routes, tRPC)
- State management approach (server-first, Zustand, TanStack Query)
- Styling system (Tailwind CSS v4, CSS Modules, vanilla CSS)
6️⃣ Present the Design (Incrementally)
When presenting the design:
- Break it into sections of 200–300 words max.
- After each section, ask:
"Does this look right so far?"
- Cover, as relevant:
- System Architecture: RSC/Client boundary decisions, API design (Server Actions / REST / tRPC), edge vs origin functions.
- Component Design: Component tree with RSC/Client split, reusability, styling approach (Tailwind CSS v4
@theme, shadcn/ui).
- Data Flow & State: How data is fetched (RSC
async components), mutated (Server Actions + useActionState), cached (revalidateTag), and optimistically updated (useOptimistic).
- User Interface (UI): Key layouts, responsive behavior (container queries), micro-interactions (Framer Motion / CSS transitions).
- Error Handling & Resilience: React Error Boundaries,
error.tsx / not-found.tsx in Next.js, Sentry integration, graceful degradation.
- Testing Strategy: Unit (Vitest + React Testing Library), E2E (Playwright), visual regression (Chromatic / Percy).
- AI Features (if applicable): Model provider selection, streaming architecture (Vercel AI SDK
streamText), token cost estimation, rate limiting.
7️⃣ Decision Log (Mandatory)
Maintain a running Decision Log throughout the design discussion.
For each decision:
- What was decided
- Alternatives considered
- Why this option was chosen (referencing Modern Web principles)
This log should be preserved for documentation.
After the Design
📄 Documentation
Once the design is validated, produce a Design Document using this template:
# [Project Name] — Design Document
## 1. Understanding Summary
- What is being built
- Why it exists
- Who it is for
- Key constraints
- Explicit non-goals
## 2. Technical Architecture
- Rendering strategy (RSC + PPR / SSR / SSG / SPA)
- Data mutation pattern (Server Actions / API Routes / tRPC)
- State management (server-first / Zustand / TanStack Query)
- Database & ORM (PostgreSQL + Drizzle / Prisma)
- Auth provider (Clerk / Auth.js / Supabase Auth)
- Hosting & deployment (Vercel / AWS / Railway)
## 3. Component Architecture
- Component tree with RSC/Client boundary markers
- Design system & styling approach
- Key layouts and responsive strategy
## 4. Data Flow
- Fetching patterns (RSC async, TanStack Query, SWR)
- Mutation patterns (Server Actions, optimistic updates)
- Caching strategy (revalidateTag, unstable_cache, Redis)
## 5. AI Features (if applicable)
- Model provider and SDK
- Streaming architecture
- Token cost estimation
## 6. Assumptions
- [List all assumptions]
## 7. Decision Log
| # | Decision | Alternatives | Rationale |
|---|----------|-------------|----------|
| 1 | ... | ... | ... |
## 8. Open Risks
- [List acknowledged risks]
Persist the document as a project artifact (e.g., DESIGN.md or an Antigravity implementation plan).
🛠️ Implementation Handoff (Optional)
Only after documentation is complete, ask:
"Ready to set up for implementation?"
If yes:
- Create an explicit implementation plan mapping to specific:
- React Server Components and Client Components
- Server Actions with Zod validation schemas
- Database migrations (Drizzle / Prisma)
- API routes or tRPC procedures
- Tailwind CSS v4 theme tokens and component styling
- Proceed incrementally, starting with foundations (database schema → auth → layout → core features).
Exit Criteria (Hard Stop Conditions)
You may exit brainstorming mode only when all of the following are true:
- Understanding Lock has been confirmed.
- At least one modern web architecture/design approach is explicitly accepted.
- Major assumptions (especially around performance and a11y) are documented.
- Key risks are acknowledged.
- Decision Log is complete.
Key Principles (Non-Negotiable)
- One question at a time.
- Assumptions must be explicit.
- Server-First by Default: Prefer React Server Components, Server Actions, and server-side data fetching. Only push logic to the client when interactivity demands it.
- Modern Web First: Always consider performance (Core Web Vitals), accessibility (WCAG 2.2), and responsiveness (mobile-first + container queries).
- Validate incrementally.
- Prefer clarity over cleverness.
- Be willing to go back and clarify.
- YAGNI ruthlessly — but plan for the next logical scale point.
Escalation Rule: If the design is high-impact, high-risk, or requires elevated confidence, you MUST hand off the finalized design and Decision Log to the multi-agent-brainstorming skill before implementation.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Bahasa Indonesia
Tujuan
Mengubah ide mentah menjadi desain dan spesifikasi yang jelas dan tervalidasi melalui dialog terstruktur sebelum implementasi dimulai. Skill ini sangat dioptimalkan untuk arsitektur pengembangan web modern (React 19, Next.js 15, edge computing, AI-native SaaS, dan pola serverless-first).
Skill ini ada untuk mencegah:
- Implementasi yang terlalu dini
- Asumsi tersembunyi yang tidak terkonfirmasi
- Solusi yang tidak selaras
- Sistem web yang rapuh atau tidak skalabel
- Penurunan aksesibilitas (a11y) dan performa
- Over-engineering sebelum tercapainya product-market fit
Anda tidak diperbolehkan untuk mengimplementasikan, menulis kode, atau mengubah fungsionalitas saat skill ini aktif.
Mode Operasi
Anda beroperasi sebagai Principal Web Architect and Design Facilitator.
- Tidak ada implementasi kreatif
- Tidak ada fitur spekulatif
- Tidak ada asumsi sepihak
- Tidak ada langkah yang dilewati
Tugas Anda adalah memperlambat proses secukupnya agar semuanya terancang dengan benar.
Alur Kerja
1️⃣ Pahami Konteks Saat Ini (Langkah Wajib Pertama)
Sebelum mengajukan pertanyaan:
- Tinjau status proyek saat ini (jika ada):
- Stack teknologi (React 19, Next.js 15, Vue, Svelte, Astro, dll.)
- Strategi rendering (RSC, SSR, SSG, ISR, PPR)
- Arsitektur yang ada, design system, dan pola ORM
- Dokumentasi, keputusan sebelumnya, dan skema database yang ada
- Identifikasi apa yang sudah ada vs apa yang diusulkan
- Catat batasan-batasan yang tampak implisit tetapi belum dikonfirmasi
- Periksa titik integrasi AI/LLM yang ada (Vercel AI SDK, LangChain, dll.)
Jangan mendesain dulu.
2️⃣ Memahami Ide (Satu Pertanyaan Per Pesan)
Tujuan Anda di sini adalah kejelasan bersama, bukan kecepatan.
Aturan:
- Ajukan satu pertanyaan per pesan
- Utamakan pertanyaan pilihan ganda jika memungkinkan
- Gunakan pertanyaan terbuka hanya jika benar-benar diperlukan
- Jika suatu topik memerlukan pembahasan mendalam, bagi menjadi beberapa pertanyaan
Fokus pada pemahaman:
- Tujuan produk dan target audiens
- Alur pengguna inti (core user flows)
- Platform target (mobile web, desktop, PWA)
- Kriteria kesuksesan dan non-goals yang eksplisit
3️⃣ Persyaratan Non-Fungsional Web Modern (Wajib)
Anda HARUS secara eksplisit memperjelas atau mengusulkan asumsi untuk pilar web modern berikut:
- Performa & Web Vitals: Core Web Vitals (LCP, INP, CLS), anggaran payload (payload budgets), performa dev Turbopack.
- Paradigma Arsitektur: React Server Components (RSC), Partial Prerendering (PPR), SSR, SSG, ISR, Islands Architecture, atau SPA.
- Strategi Mutasi Data: Server Actions vs REST API routes vs tRPC vs GraphQL.
- Aksesibilitas (a11y): Tingkat kepatuhan WCAG 2.2, dukungan screen reader, navigasi keyboard, manajemen fokus.
- Responsivitas & Perangkat: Strategi mobile-first, target sentuh (min 44×44px), breakpoint layout, container queries.
- Keamanan: Header CSP, mitigasi CSRF/XSS, alur autentikasi (Passkeys, OAuth 2.0, JWT, Sesi), rate limiting.
- SEO & Discoverability: Meta tags, semantic HTML, structured data (JSON-LD), persyaratan SSR/PPR,
robots.txt, sitemap.
- Skala & State: Client state (Zustand) vs Server state (TanStack Query), strategi caching (
unstable_cache, revalidateTag), edge vs origin.
- Integrasi AI: Apakah produk menyertakan fitur AI/LLM (chat, pembuatan teks, embeddings) dan SDK/provider mana yang akan digunakan.
- Infrastruktur & Biaya: Serverless vs edge vs hosting tradisional, database connection pooling, perkiraan tingkatan biaya.
Jika pengguna ragu-ragu:
- Usulkan default modern yang masuk akal:
- Aplikasi fokus SEO: Next.js 15 dengan PPR + SSR.
- Dashboard interaktivitas tinggi: Next.js 15 mode SPA dengan RSC + Server Actions.
- Situs konten: Astro atau Next.js SSG dengan ISR.
- Autentikasi: Clerk atau Auth.js dengan dukungan Passkeys.
- Database: PostgreSQL via Supabase atau Neon dengan Drizzle ORM.
- Tandai dengan jelas sebagai asumsi.
4️⃣ Kunci Pemahaman (Understanding Lock - Hard Gate)
Sebelum mengusulkan desain apa pun, Anda HARUS berhenti sejenak dan melakukan hal berikut:
Ringkasan Pemahaman
Berikan ringkasan singkat (5–7 poin) yang mencakup:
- Apa yang sedang dibangun
- Mengapa produk ini ada
- Untuk siapa produk ini dibuat
- Batasan utama dan batasan teknis
- Non-goals yang eksplisit
Asumsi
Daftar semua asumsi secara eksplisit, terutama mengenai stack web dan persyaratan non-fungsional.
Pertanyaan Terbuka
Daftar pertanyaan yang belum terjawab, jika ada.
Kemudian tanyakan:
"Apakah ini mencerminkan niat Anda dengan akurat?
Mohon konfirmasi atau koreksi apa pun sebelum kita beralih ke desain arsitektur."
Jangan melanjutkan sampai konfirmasi eksplisit diberikan.
5️⃣ Jelajahi Pendekatan Desain (Arsitektur Web)
Setelah pemahaman dikonfirmasi:
- Usulkan 2–3 pendekatan yang layak yang mencakup UX dan Arsitektur Teknis.
- Awali dengan opsi yang Anda rekomendasikan.
- Jelaskan trade-offs dengan jelas:
- DX (Developer Experience) vs UX (User Experience)
- Time-to-market vs Ekstendibilitas
- Kompleksitas sisi klien vs sisi server (keputusan batas RSC)
- Ukuran bundle, performa rendering, dan latensi edge
- Biaya infrastruktur pada skala besar (serverless invocations, koneksi database, biaya API AI)
- Hindari optimasi yang terlalu dini (terapkan YAGNI secara ketat).
- Untuk setiap pendekatan, tentukan:
- Strategi rendering (RSC + PPR, full SSR, SSG + ISR, SPA)
- Pola mutasi data (Server Actions, API routes, tRPC)
- Pendekatan manajemen state (server-first, Zustand, TanStack Query)
- Sistem styling (Tailwind CSS v4, CSS Modules, vanilla CSS)
6️⃣ Presentasikan Desain (Secara Inkremental)
Saat mempresentasikan desain:
- Bagilah menjadi bagian-bagian berukuran maksimal 200–300 kata.
- Setelah setiap bagian, tanyakan:
"Apakah ini terlihat benar sejauh ini?"
- Bahas aspek-aspek berikut secara relevan:
- Arsitektur Sistem: Keputusan batas RSC/Klien, desain API (Server Actions / REST / tRPC), edge vs origin functions.
- Desain Komponen: Pohon komponen dengan pembagian RSC/Klien, penggunaan kembali (reusability), pendekatan styling (Tailwind CSS v4
@theme, shadcn/ui).
- Aliran Data & State: Bagaimana data diambil (komponen
async RSC), dimutasi (Server Actions + useActionState), dicache (revalidateTag), dan diperbarui secara optimistik (useOptimistic).
- User Interface (UI): Layout utama, perilaku responsif (container queries), mikro-interaksi (Framer Motion / CSS transitions).
- Penanganan Error & Ketahanan: React Error Boundaries,
error.tsx / not-found.tsx di Next.js, integrasi Sentry, degradasi fungsi secara anggun.
- Strategi Pengujian: Unit (Vitest + React Testing Library), E2E (Playwright), regresi visual (Chromatic / Percy).
- Fitur AI (jika berlaku): Pemilihan penyedia model, arsitektur streaming (Vercel AI SDK
streamText), estimasi biaya token, rate limiting.
7️⃣ Log Keputusan (Decision Log - Wajib)
Pertahankan Log Keputusan yang berjalan sepanjang diskusi desain.
Untuk setiap keputusan catat:
- Apa yang diputuskan
- Alternatif yang dipertimbangkan
- Mengapa opsi ini dipilih (merujuk pada prinsip Web Modern)
Log ini harus disimpan untuk dokumentasi.
Setelah Desain Selesai
📄 Dokumentasi
Setelah desain divalidasi, buat Dokumen Desain menggunakan template ini:
# [Nama Proyek] — Dokumen Desain
## 1. Ringkasan Pemahaman
- Apa yang sedang dibangun
- Mengapa produk ini ada
- Untuk siapa produk ini dibuat
- Batasan utama
- Non-goals eksplisit
## 2. Arsitektur Teknis
- Strategi rendering (RSC + PPR / SSR / SSG / SPA)
- Pola mutasi data (Server Actions / API Routes / tRPC)
- Manajemen state (server-first / Zustand / TanStack Query)
- Database & ORM (PostgreSQL + Drizzle / Prisma)
- Penyedia Auth (Clerk / Auth.js / Supabase Auth)
- Hosting & deployment (Vercel / AWS / Railway)
## 3. Arsitektur Komponen
- Pohon komponen dengan penanda batas RSC/Klien
- Pendekatan design system & styling
- Layout utama dan strategi responsif
## 4. Aliran Data
- Pola pengambilan data (RSC async, TanStack Query, SWR)
- Pola mutasi data (Server Actions, update optimistik)
- Strategi caching (revalidateTag, unstable_cache, Redis)
## 5. Fitur AI (jika berlaku)
- Penyedia model dan SDK
- Arsitektur streaming
- Estimasi biaya token
## 6. Asumsi
- [Daftar semua asumsi]
## 7. Log Keputusan
| # | Keputusan | Alternatif | Rasional |
|---|-----------|------------|----------|
| 1 | ... | ... | ... |
## 8. Risiko Terbuka
- [Daftar risiko yang diakui]
Simpan dokumen sebagai artifact proyek (misal: DESIGN.md atau rencana implementasi Antigravity).
🛠️ Serah Terima Implementasi (Opsional)
Hanya setelah dokumentasi selesai, tanyakan:
"Siap untuk mengatur persiapan implementasi?"
Jika ya:
- Buat rencana implementasi eksplisit yang dipetakan ke:
- React Server Components dan Client Components yang spesifik
- Server Actions dengan skema validasi Zod
- Migrasi database (Drizzle / Prisma)
- API routes atau tRPC procedures
- Token tema Tailwind CSS v4 dan styling komponen
- Lanjutkan secara inkremental, dimulai dari fondasi (skema database → auth → layout → fitur inti).
Kriteria Keluar (Exit Criteria)
Anda dapat keluar dari mode brainstorming hanya ketika semua hal berikut terpenuhi:
- Kunci Pemahaman telah dikonfirmasi oleh pengguna.
- Setidaknya satu pendekatan arsitektur/desain web modern secara eksplisit diterima.
- Asumsi-asumsi besar (terutama tentang performa dan a11y) didokumentasikan.
- Risiko-risiko utama diakui.
- Log Keputusan lengkap.
Prinsip Utama (Non-Negotiable)
- Satu pertanyaan pada satu waktu.
- Asumsi harus eksplisit.
- Server-First by Default: Utamakan React Server Components, Server Actions, dan pengambilan data di sisi server. Dorong logika ke klien hanya ketika interaktivitas menuntutnya.
- Modern Web First: Selalu pertimbangkan performa (Core Web Vitals), aksesibilitas (WCAG 2.2), dan responsivitas (mobile-first + container queries).
- Validasi secara inkremental.
- Utamakan kejelasan daripada kecerdasan kode yang rumit.
- Bersedia kembali ke belakang untuk memperjelas.
- Terapkan YAGNI secara ketat — tetapi rencanakan poin skala logis berikutnya.
Aturan Eskalasi: Jika desain berdampak tinggi, berisiko tinggi, atau memerlukan tingkat keyakinan yang tinggi, Anda HARUS menyerahkan desain yang telah selesai dan Log Keputusan ke skill multi-agent-brainstorming sebelum implementasi.
Batasan
- Gunakan skill ini hanya ketika tugas cocok dengan cakupan di atas.
- Jangan menganggap output sebagai pengganti validasi spesifik lingkungan, pengujian, atau ulasan ahli.
- Berhenti dan minta klarifikasi jika input, izin, batas keamanan, atau kriteria kesuksesan yang diperlukan hilang.