prd-architect · git:20260812.3719f9b · 2026-08-12 · sha256 8c6b5671f2907bee
prd-architect git:20260812.3719f9bA
Immutable. This exact content is served forever at /api/v1/blob/8c6b5671f2907bee.
--- name: prd-architect description: "Mandatory guardrail skill that enforces creating a comprehensive Product Requirements Document (PRD), ERD, and Documentation before generating code for new projects / Skill khusus untuk memaksa pembuatan Product Requirements Document (PRD), ERD, dan Dokumentasi secara otomatis sebelum mulai coding pada setiap proyek baru." author: "Roedy Rustam" --- # PRD Architect (2026 — PRD-as-Code Edition) [English](#english) | [Bahasa Indonesia](#bahasa-indonesia) --- <a name="english"></a> ## English ### Description Mandatory guardrail that enforces creating a comprehensive Product Requirements Document (PRD), Entity Relationship Diagram (ERD), and general Documentation before generating code for any new project. Introduces **PRD-as-Code** — a structured Markdown format designed to be machine-readable by AI agents and version-controlled alongside code. ### Trigger Conditions - A user requests building a new application, SaaS, or major feature from scratch. - There is no existing PRD, BLUEPRINT.md, or product specification. - The project scope is unclear or ambiguous. - The user says "build me...", "create a...", "I want to make..." for a new project. ### Why PRD Before Code 1. **Prevents scope creep**: Defines boundaries before any line of code is written. 2. **Aligns AI output**: AI agents generate significantly better code when given a structured spec. 3. **Enables traceability**: Each implemented feature can be traced back to a PRD requirement. 4. **Reduces rework**: Catches architectural decisions early (DB choice, auth flow, integrations). 5. **Version-controlled spec**: PRD lives in the repo — changes are tracked and reviewable. ### PRD-as-Code Template ```markdown # Product Requirements Document (PRD) **Project**: [Project Name] **Version**: 1.0.0 **Status**: Draft | In Review | Approved **Created**: YYYY-MM-DD **Last Updated**: YYYY-MM-DD --- ## 1. Executive Summary [2-3 sentences: What is this product? Who is it for? What problem does it solve?] ## 2. Problem Statement **Problem**: [Clear description of the problem being solved] **Target Users**: [Specific user segments] **Current Pain Points**: - Pain point 1 - Pain point 2 ## 3. Goals & Success Metrics | Goal | Metric | Target | |---|---|---| | Reduce churn | Monthly churn rate | < 5% | | Improve activation | D7 retention | > 40% | ## 4. User Personas ### Persona 1: [Name] - **Role**: [Job title / context] - **Goals**: [What they want to achieve] - **Frustrations**: [What currently doesn't work] - **Key Behaviors**: [How they'll use this product] ## 5. Feature Requirements ### MVP Features (Must Have — v1.0) - [ ] **[Feature Name]**: [Description. Acceptance criteria: ...] - [ ] **Authentication**: Email/password + Google OAuth. PKCE flow. Session-based. - [ ] **Dashboard**: Overview of [key metrics]. Real-time updates via SSE. ### Phase 2 Features (Should Have — v1.x) - [ ] **[Feature Name]**: [Description] ### Future Features (Nice to Have — v2.0+) - [ ] **[Feature Name]**: [Description] ## 6. Technical Architecture ### Stack Decision | Layer | Technology | Rationale | |---|---|---| | Frontend | Next.js 15 + React 19 | SSR, App Router, RSC | | Backend | Hono + Bun | Type-safe RPC, edge-ready | | Database | PostgreSQL + Drizzle ORM | ACID, RLS multi-tenant | | Auth | Supabase Auth v3 | PKCE, OAuth, MFA | | Payments | Stripe / Polar.sh | [Reason for choice] | | Deployment | Vercel + Railway | [Reason for choice] | ### Architecture Decisions (ADRs) - **ADR-001**: [Decision title] — [Decision made and why] - **ADR-002**: Multi-tenancy via RLS — Shared schema with Supabase RLS for isolation ### Multi-Entry Points (if SaaS) | Entry Point | Domain | Purpose | |---|---|---| | Landing Page | `myapp.com` | Marketing, conversion | | SaaS App | `app.myapp.com` | Core product | | Super Admin | `admin.myapp.com` | Cross-tenant management | | API | `api.myapp.com` | Backend (internal + public) | ## 7. Data Model (High-Level) ``` users ──belongs_to──> workspaces (via workspace_members) workspaces ──has_many──> projects projects ──has_many──> tasks ``` ## 8. User Flows ### Primary Flow: [Name] 1. User [action 1] 2. System [response 1] 3. User [action 2] 4. System [response 2] → Success state ## 9. Non-Functional Requirements | Requirement | Target | |---|---| | Performance | LCP < 2.5s, INP < 200ms | | Availability | 99.9% uptime | | Security | SOC 2 Type II compliant | | Scalability | Support 10K concurrent users | ## 10. Out of Scope - [Explicitly excluded feature or integration] - [Another explicitly excluded item] ## 11. Open Questions - [ ] [Question that needs a decision before development] - [ ] Should we support SSO (SAML) in v1 or defer to v2? ## 12. Approval & Sign-off | Stakeholder | Role | Status | |---|---|---| | [Name] | Product | ✅ Approved | | [Name] | Engineering | ⏳ Pending | ``` ### Enforcement Protocol 1. **Detect**: When user requests a new project build. 2. **Pause**: Do NOT generate any code. 3. **Generate PRD, ERD, Docs & Roadmap**: Automatically create a pre-filled PRD draft (`PRD.md`), an Entity Relationship Diagram (`ERD.md`), general Documentation (`DOKUMENTASI.md`), and a Roadmap document (`ROADMAP.md` or `PROGRESS.md`) based on the user's description. 4. **Review**: Present to user for approval/edits. 5. **Confirm**: Once the PRD, ERD, Documentation, and Roadmap are approved, proceed to `zero-to-prod-orchestrator` Phase 1. 6. **Reference**: Cite the PRD, ERD, Documentation, and Roadmap in all subsequent code generation decisions. --- <a name="bahasa-indonesia"></a> ## Bahasa Indonesia ### Deskripsi Guardrail wajib yang memaksa pembuatan secara otomatis Product Requirements Document (PRD) komprehensif, Entity Relationship Diagram (ERD), dan Dokumentasi sebelum membuat kode untuk proyek baru apapun. Memperkenalkan **PRD-as-Code** — format Markdown terstruktur yang dirancang agar dapat dibaca mesin oleh agen AI dan dikontrol versi bersama kode. ### Kondisi Pemicu - Pengguna meminta membangun aplikasi, SaaS, atau fitur besar baru dari awal. - Tidak ada PRD, BLUEPRINT.md, atau spesifikasi produk yang ada. - Ruang lingkup proyek tidak jelas atau ambigu. - Pengguna berkata "buatkan saya...", "buat sebuah...", "saya ingin membuat..." untuk proyek baru. ### Mengapa PRD Sebelum Kode 1. **Mencegah scope creep**: Mendefinisikan batas sebelum satu baris kode pun ditulis. 2. **Menyelaraskan output AI**: Agen AI menghasilkan kode yang jauh lebih baik saat diberi spesifikasi terstruktur. 3. **Memungkinkan keterlacakan**: Setiap fitur yang diimplementasikan dapat ditelusuri kembali ke persyaratan PRD. 4. **Mengurangi pengerjaan ulang**: Menangkap keputusan arsitektur lebih awal (pilihan DB, alur auth, integrasi). 5. **Spesifikasi dengan kontrol versi**: PRD hidup di repo — perubahan dilacak dan dapat ditinjau. ### Template PRD-as-Code Template PRD mencakup 12 bagian: 1. **Ringkasan Eksekutif**: Apa produk ini, untuk siapa, masalah apa yang diselesaikan. 2. **Pernyataan Masalah**: Deskripsi masalah yang jelas dengan persona pengguna target. 3. **Tujuan & Metrik Keberhasilan**: Target terukur yang terkait dengan tujuan bisnis. 4. **Persona Pengguna**: Peran, tujuan, frustrasi, dan perilaku kunci. 5. **Persyaratan Fitur**: MVP (Harus Ada), Fase 2 (Sebaiknya Ada), Masa Depan (Bagus Dimiliki). 6. **Arsitektur Teknis**: Keputusan stack dengan justifikasi, ADR, multi-entry points. 7. **Model Data**: Hubungan antar entitas tingkat tinggi. 8. **Alur Pengguna**: Alur langkah-demi-langkah untuk interaksi utama. 9. **Persyaratan Non-Fungsional**: Performa, ketersediaan, keamanan, skalabilitas. 10. **Di Luar Ruang Lingkup**: Apa yang secara eksplisit dikecualikan. 11. **Pertanyaan Terbuka**: Keputusan yang perlu dibuat sebelum pengembangan. 12. **Persetujuan**: Pemangku kepentingan dan status tanda tangan. ### Protokol Penegakan 1. **Deteksi**: Saat pengguna meminta pembangunan proyek baru. 2. **Jeda**: JANGAN hasilkan kode apapun. 3. **Buat PRD, ERD, Dokumentasi & Roadmap**: Secara otomatis buat draf PRD (`PRD.md`), Entity Relationship Diagram (`ERD.md`), Dokumentasi umum (`DOKUMENTASI.md`), dan dokumen Roadmap (`ROADMAP.md` atau `PROGRESS.md`) yang sudah diisi berdasarkan deskripsi pengguna. 4. **Tinjau**: Sajikan kepada pengguna untuk persetujuan/edit. 5. **Konfirmasi**: Setelah PRD, ERD, Dokumentasi, dan Roadmap disetujui, lanjut ke `zero-to-prod-orchestrator` Fase 1. 6. **Referensi**: Kutip PRD, ERD, Dokumentasi, dan Roadmap dalam semua keputusan pembuatan kode selanjutnya. --- ### 🎨 Automatic Visual Assets Generation Mandate (CRITICAL) **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. This generated image MUST be explicitly used as: 1. The primary application logo (e.g., in the header/navbar). 2. The website favicon (`favicon.ico` or equivalent). 3. The Open Graph (OG) image for SEO metadata (`og:image`). Do not use placeholders for these assets. Generate and integrate them automatically.