
Plaid
- 804 installs
- 211 repo stars
- Updated May 8, 2026
- buildgreatproducts/plaid
PLAID is a product-led AI development skill that walks developers through six gated phases—Idea, Validate, Plan, Design, Launch, and Build—to produce structured product artifacts from raw context.
About
PLAID is a conversational product-development skill for engineers shipping new software. It sequences six capabilities—Idea, Validate, Plan, Design, Launch, and Build—each with conversational gates that pressure-test assumptions, generate vision documents, translate image references into design.md specs, outline go-to-market strategy, and drive roadmap execution. Developers reach for PLAID when triggers like "plaid validate", "pressure-test my idea", or "find fatal flaws" appear and they need documented outputs instead of ad-hoc brainstorming. The skill emits docs and planning artifacts at every phase rather than jumping straight into code.
- Six capabilities: Idea, Validate, Plan, Design, Launch, and Build in one PLAID workflow
- Validate mode pressure-tests fatal flaws, problem reality, competition, and 2-week MVP feasibility
- Plan generates PRD-style strategy from vision intake into docs/
- Design translates image references into design.md and design tokens
- Launch produces go-to-market and launch playbook conversations
Plaid by the numbers
- 804 all-time installs (skills.sh)
- +3 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #575 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/buildgreatproducts/plaid --skill plaidAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 804 |
|---|---|
| repo stars | ★ 211 |
| Security audit | 2 / 3 scanners passed |
| Last updated | May 8, 2026 |
| Repository | buildgreatproducts/plaid ↗ |
How do you structure idea-to-launch product work?
Walk from raw founder context through Idea, Validate, Plan, Design, Launch, and Build with conversational gates and docs/ artifacts.
Who is it for?
Developers starting a new SaaS or API product who want structured phase gates and written artifacts before writing production code.
Skip if: Teams that already have approved PRDs, design systems, and sprint backlogs and only need implementation help on an existing codebase.
When should I use this skill?
The user mentions PLAID, product idea discovery, idea validation, fatal-flaw checks, or phased product planning from context to launch.
What you get
Phase-gated docs including validation reports, vision documents, design.md specs, go-to-market plans, and build roadmaps
- validation reports
- design.md
- go-to-market plan
By the numbers
- Six gated capabilities: Idea, Validate, Plan, Design, Launch, and Build
- Validate phase includes 2-week MVP feasibility checks
Files
Overview
PLAID helps founders go from idea to launched product through structured conversations and AI-powered document generation. The full pipeline is: Idea → Validate → Plan → Launch → Build. Validate is optional but strongly recommended — it pressure-tests the idea before the founder commits to the full vision intake. Design is a side capability that can run at any point — typically alongside Plan or before Build — to translate image references into a docs/design.md token spec.
Shared Context
You are a product development advisor. You are warm, direct, and opinionated. You treat the founder as capable and smart — you're here to help them articulate what's already in their head, not to lecture them.
Validation rule: Before generating any documents from vision.json, always validate first by running node scripts/validate-vision.js --migrate. The --migrate flag automatically upgrades older schema versions. If validation fails after migration, report errors and fix them before proceeding.
Resumability: PLAID is designed to be interrupted and resumed at any point. Always check the current project state before starting work — does vision.json exist? Are docs present? What's the roadmap progress? Pick up from where things left off.
Routing
Determine which capability the user needs based on their request, then read the appropriate reference file and follow its instructions:
| User Intent | Reference File |
|---|---|
| "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "what should I build" | references/idea.md |
| "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "stress test my idea" | references/validate.md |
| "PLAID", "plan a product", "define my vision", "generate a PRD", "plan my app", "spec out my idea", "product strategy", "help me build something" | references/plan.md |
| "plaid design", "design from image", "translate image to design", "create design.md", "image to design system", "extract design tokens", "design system from screenshot" | references/design.md |
| "plaid launch", "go-to-market", "launch plan", "GTM strategy", "help me launch", "marketing plan", "launch playbook" | references/launch.md |
| "plaid build", "build the app", "start building", "execute the roadmap", "build phase", "continue building" | references/build.md |
Auto-detection
If the request is ambiguous, check the project state to determine the right capability:
- No
docs/product-idea.mdAND novision.json→ offer Idea (with Plan as a direct alternative if they already know what they want to build) docs/product-idea.mdexists but nodocs/validation-report.mdAND novision.json→ suggest Validate (with Plan as a fast-forward if the founder is confident)docs/product-idea.mdanddocs/validation-report.mdexist but novision.json→ route to Plan (usingdocs/product-idea.mdas pre-filled context)- No
vision.json→ route to Plan vision.jsonexists butdocs/is incomplete → route to Plan (document generation mode)- All docs exist but no code built yet → suggest Launch or Build
docs/product-roadmap.mdhas unchecked tasks → route to Build- User shares an image, screenshot, or Figma URL with no other clear intent → offer Design
Design is image-triggered and orthogonal to the main pipeline — it does not require any other PLAID document. Route to it whenever the founder's intent centers on translating visual references into a design system, regardless of pipeline state.
If still ambiguous after checking state, ask one clarifying question before loading a reference file.
Phase Transitions
When a capability completes, suggest the natural next step. If the user progresses naturally from one capability to the next during a session (e.g., finishes idea discovery and says "now let's plan"), load the next reference file and continue without requiring re-invocation.
- After Idea completes → suggest Validate (
/plaid validate) to pressure-test before planning; Plan (/plaid) is a valid fast-forward if the founder is confident - After Validate completes with a Strong verdict → suggest Plan (
/plaid);docs/product-idea.mdwas sharpened during validation and pre-fills much of the vision intake - After Validate completes with a Pivot verdict → re-run Validate against the pivoted framing, or return to Idea (
/plaid idea) to rework candidates - After Validate completes with a Weak verdict → recommend more discovery before Plan; do not advance automatically
- After Plan completes → suggest Design (
/plaid design) if the founder has imagery to anchor on, then launching (/plaid launch) or building (/plaid build) - After Design completes → if
docs/prd.mddoes not yet exist, suggest Plan (/plaid plan); if it does, suggest Build (/plaid build) - After Launch completes → suggest building (
/plaid build) - After Build completes → suggest launching (
/plaid launch) if not done already
# Generated per-project outputs
vision.json
docs/
# Dependencies
node_modules/
# OS files
.DS_Store
Thumbs.db
{
"meta": {
"createdAt": "",
"updatedAt": "",
"version": "1.1",
"plaidVersion": "1.0"
},
"creator": {
"name": "",
"expertise": "",
"background": ""
},
"purpose": {
"whoYouHelp": "",
"problemYouSolve": "",
"desiredTransformation": "",
"whyYou": ""
},
"product": {
"name": "",
"oneLiner": "",
"howItWorks": "",
"keyCapabilities": [],
"platform": "web",
"marketDifferentiation": "",
"magicMoment": ""
},
"audience": {
"primaryUser": "",
"secondaryUsers": [],
"currentAlternatives": "",
"frustrations": ""
},
"business": {
"revenueModel": "subscription",
"initialGoal": "",
"sixMonthVision": "",
"constraints": "",
"goToMarket": ""
},
"feeling": {
"brandPersonality": "",
"toneOfVoice": ""
},
"techStack": {
"appType": "web",
"frontend": {
"choice": "",
"rationale": ""
},
"backend": {
"choice": "",
"rationale": ""
},
"database": {
"choice": "",
"rationale": ""
},
"auth": {
"choice": "",
"rationale": ""
},
"payments": {
"choice": "",
"rationale": ""
}
},
"tooling": {
"codingAgent": "claude-code"
}
}
MIT License
Copyright (c) 2026 Build Great Products, Telescope Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
"name": "plaid",
"version": "1.0.0",
"description": "Product Led AI Development — a Claude skill that guides founders from idea to buildable spec",
"license": "MIT",
"author": "Build Great Products, Telescope Ltd",
"scripts": {
"validate": "node scripts/validate-vision.js"
},
"engines": {
"node": ">=14"
}
}
██████╗ ██╗ █████╗ ██╗ ██████╗
██╔══██╗ ██║ ██╔══██╗ ██║ ██╔══██╗
██████╔╝ ██║ ███████║ ██║ ██║ ██║
██╔═══╝ ██║ ██╔══██║ ██║ ██║ ██║
██║ ███████╗██║ ██║ ██║ ██████╔╝
╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝PLAID — Product Led AI Development
An agent skill that guides founders from idea to launched product through structured conversations and AI-powered document generation. PLAID combines the thinking of a product strategist, brand strategist, UX researcher, design director, technical architect, and go-to-market specialist into a single skill with six capabilities.
Capabilities
PLAID is a single skill with six capabilities, each handling a distinct phase of the product development pipeline:
| Capability | Trigger | What It Does | Output |
|---|---|---|---|
| Idea | "plaid idea", "help me find an idea", "what should I build" | Guided discovery of a product idea from business processes or personal expertise | docs/product-idea.md |
| Validate | "plaid validate", "validate my idea", "pressure-test", "is this idea good" | Brutally pressure-tests the chosen idea — fatal flaws, problem reality, competition, first 10 customers, 2-week MVP test, strong/weak/pivot verdict. Asks targeted follow-up questions to confirm direction, then sharpens docs/product-idea.md. | docs/validation-report.md, sharpened docs/product-idea.md |
| Plan | "PLAID", "plan a product", "define my vision", "generate a PRD" | Vision intake conversation + document generation | vision.json, product-vision.md, prd.md, product-roadmap.md |
| Design | "plaid design", "design from image", "create design.md", "image to design system" | Translates image references (screenshots, mockups, Figma URLs) into a Google design.md token spec + prose rationale | docs/design.md |
| Launch | "plaid launch", "go-to-market", "launch plan", "GTM strategy" | Go-to-market plan generation | gtm.md |
| Build | "plaid build", "build the app", "start building" | Executes roadmap phase by phase, reviews code, commits to git | Working code, git commits per phase |
How It Works
1. Idea
Start here if you don't yet have a concrete product concept. PLAID Idea walks you through a stepped conversation that mines a great idea from what you already know or already do.
1. Source selection — Business, personal expertise, or both 2. Context capture — 8 targeted questions (or 10 combined, trimmed) surfacing workflows, unmet demand, unfair advantages, and obsessions 3. Pattern synthesis — 3–5 ranked candidate directions drawn directly from your answers 4. Scorecard — Each candidate scored on unfair advantage, pain level, audience reachability, MVP feasibility, and differentiation 5. Pick one — Opinionated recommendation you can accept, swap, or blend 6. Sharpen — Target user, specific problem, smallest testable version, why you, and top risky assumptions 7. Output — docs/product-idea.md
docs/product-idea.md feeds directly into Validate (recommended next step) and Plan — most of the Plan intake's first three sections are already answered.
2. Validate
Pressure-test the chosen idea before investing in Plan, Build, or Launch. Validate adapts the Startup Pressure Test framework into PLAID's flow.
1. Read or gather — If docs/product-idea.md exists, Validate reads it and confirms the direction. If not, it asks for the idea, target customer, and what you want them to do or pay for. 2. Find the core assumption — One sentence: the single thing that must be true for the business to work. 3. Surface fatal flaws — Up to 3, ranked by severity, each with a fast behavioral test. 4. Test problem reality — Vitamin or painkiller verdict, in the user's own language. 5. Map real competition — Including current behavior (always a competitor) and the real enemy you have to displace. 6. Plan the first 10 customers — Manual outreach, no ads, no automation. Where they are, how to reach them, what success looks like. 7. Define a 2-week MVP test — The smallest thing that tests the core assumption with real users. 8. Score and verdict — A 6-axis scorecard (pain intensity, buyer clarity, urgency, differentiation, speed to validate, founder advantage) and a direct strong / weak / pivot verdict. 9. Direction check — Before touching docs/product-idea.md, Validate surfaces the directional calls the findings imply (tighter target user, reframed problem statement, different MVP shape, pivot vs. stay) and asks you to choose. Only the choices you confirm get applied. 10. Sharpen the idea — Validate applies the agreed edits to docs/product-idea.md (target user, problem statement, MVP shape, risky assumptions) and tells you what changed. The Candidates considered section is preserved. 11. Output — docs/validation-report.md (the full diagnosis, preserved for the record) and updated docs/product-idea.md.
The validation scorecard sits alongside the Idea capability's candidate scorecard. Idea ranks 3–5 candidate directions; Validate stress-tests the chosen one. Both are kept.
3. Plan
Start here. PLAID Plan guides you through a structured vision intake conversation, then generates three product documents.
Vision Intake — An interactive conversation that captures your product idea through 8 sections:
1. About You — Name, expertise, and background story 2. Your Purpose — Who you help, the problem you solve, the transformation you deliver, and why you're the right person to build it 3. Your Product — Name, one-liner, how it works, key capabilities, platform (web/mobile/desktop/cross-platform), differentiation, and magic moment 4. Your Audience — Primary user persona, secondary users, current alternatives, and frustrations with existing solutions 5. Business Intent — Revenue model, 90-day goals, 6-month vision, constraints, and go-to-market approach 6. The Feeling — Brand personality, visual mood, tone of voice, and anti-patterns (what the product should never feel like) 7. Tech Stack — Frontend, backend, database, auth, and payments choices with comparison data and recommendations 8. Tooling — Which coding agent will execute the build
For each question, PLAID generates 3 tailored suggestions based on your previous answers. You can pick one, modify it, or write your own. All answers are saved to vision.json in the project root.
Document Generation — Reads vision.json and produces three documents in docs/:
| Document | Purpose | Audience |
|---|---|---|
product-vision.md | Strategic foundation — vision, mission, brand, user research, product strategy, design direction | Founders, designers, stakeholders |
prd.md | Technical specification — architecture, data models, API specs, user stories, requirements, design system, auth/payments setup | Coding agents, developers |
product-roadmap.md | Phased build plan with checkbox-tracked tasks for sequential execution | Coding agents, project managers |
4. Design
Translates an image — or a set of image references — into a structured docs/design.md file following Google's open design.md format. Standalone — does not require any other PLAID document, but pairs naturally with product-vision.md and prd.md.
1. Image intake — Share screenshots, mockups, Figma URLs (read via the Figma MCP), or live website references. Multiple images are supported; identify the primary anchor. 2. Image analysis — PLAID describes what's actually in the imagery: colors with approximate hex values, typography character, spacing density, shape language, elevation philosophy, components visible, and overall mood. 3. Context questions — A short interactive pass: emotional tone, audience and context of use, color role assignments, type scale, density, shape language, elevation, component priorities, and anti-patterns. Each question gets 3 tailored suggestions. 4. Token derivation — Synthesizes a YAML block with colors, typography, rounded, spacing, and components per the design.md spec. Variants like hover and pressed are separate component entries. 5. Prose drafting — Writes the eight canonical sections in order: Overview, Colors, Typography, Layout, Elevation & Depth, Shapes, Components, Do's and Don'ts. Prose explains the why behind the tokens. 6. Output — docs/design.md — front matter for coding agents, prose for design rationale.
| Document | Purpose | Audience |
|---|---|---|
docs/design.md | Design system spec — YAML tokens (colors, typography, spacing, rounded, components) with prose rationale for each section | Coding agents, designers |
5. Launch
Generates your go-to-market playbook. Requires vision.json and docs/product-vision.md from the Plan capability.
| Document | Purpose | Audience |
|---|---|---|
gtm.md | Go-to-market plan — launch strategy, pre-launch playbook, channel strategy, growth tactics, metrics | Founders, marketing |
6. Build
Executes the roadmap phase by phase. Requires docs/product-roadmap.md and docs/prd.md from the Plan capability.
1. Reads the roadmap and finds the first phase with incomplete tasks 2. Builds each task in order, referencing the PRD for implementation details 3. Marks tasks complete as it goes (- [x]) 4. Reviews code after each phase for bugs and inconsistencies 5. Commits to git after each phase 6. Continues until all phases are complete
Each phase produces a working, demoable product.
Adding PLAID as a Skill
PLAID is an AI agent skill. The quickest way to install it:
npx skills add BuildGreatProducts/plaidThis uses the skills CLI to install PLAID into your project automatically.
Manual Installation
If you prefer to install manually:
1. Open your Claude Code settings (either project-level .claude/settings.json or user-level ~/.claude/settings.json) 2. Add the path to the skill under the skills array:
{
"skills": [
"/absolute/path/to/plaid/SKILL.md"
]
}Using PLAID
Start a new conversation with your AI coding agent and trigger PLAID:
Idea: "plaid idea", "Help me find an idea", "What should I build", "Product idea from my business"
Validate: "plaid validate", "Validate my idea", "Pressure-test", "Is this idea good", "Find fatal flaws"
Plan: "PLAID", "Help me build something", "Plan a product", "Define my vision", "Generate a PRD", "Spec out my idea"
Design: "plaid design", "Design from image", "Create design.md", "Image to design system", "Extract design tokens"
Launch: "plaid launch", "Go-to-market plan", "Launch strategy", "GTM"
Build: "plaid build", "Start building", "Execute the roadmap"
PLAID automatically routes to the right capability based on your request. No dependencies need to be installed — the skill is entirely documentation-driven.
What to Expect After Setup
Optional first session — Idea Discovery. If you don't yet have a concrete product concept, start with plaid idea. PLAID walks you through a stepped conversation that mines an idea from your business or expertise, ranks candidates on a scorecard, and writes docs/product-idea.md. This becomes input to Validate and Plan.
Optional second session — Validation. Once you have an idea, run plaid validate to pressure-test it. PLAID surfaces fatal flaws, tests whether the problem is real, maps competition (including current behavior), plans a 2-week MVP test, and returns a strong/weak/pivot verdict. Before updating docs/product-idea.md, it asks you targeted follow-up questions to confirm the direction the findings point at — narrower target user, reframed problem, different MVP shape, or a pivot — and only applies the choices you confirm. It writes docs/validation-report.md and sharpens docs/product-idea.md based on what you decided.
First (or third) session — Vision Intake. PLAID opens with "What do you want to build?" and adapts based on how concrete your idea is. If you have a clear concept (or a docs/product-idea.md), it jumps into structured questions. If you're still exploring, it helps you narrow down before moving forward. At the end, you'll have a validated vision.json in your project root.
Second session — Document Generation. When PLAID detects a vision.json but missing docs, it generates the three product documents: product-vision.md, prd.md, and product-roadmap.md.
Go-to-market. Generate your launch playbook whenever you're ready. This can happen before or after building.
Building. Execute the roadmap. PLAID Build reads the roadmap, builds each phase, reviews the code, and commits. You get a working product at the end of each phase.
Resuming at any point. Each skill detects your current state automatically:
- Partial intake? Continues from the next unanswered question
- Missing docs? Generates only what's missing
- Mid-build? Shows progress and picks up from the first unchecked task
Editing Your Vision
You can update your answers after the intake is complete:
- Change a single answer — Tell PLAID what you want to change. It updates
vision.jsonand flags which documents need regeneration. - Regenerate docs — Ask PLAID to regenerate specific documents. It re-reads
vision.jsonand rebuilds from the source of truth.
Project Structure
plaid/
├── SKILL.md # Router — routes to capability files
├── references/ # Capability files + detailed guides
│ ├── idea.md # Idea discovery — produces docs/product-idea.md
│ ├── validate.md # Idea pressure-test — produces docs/validation-report.md
│ ├── plan.md # Vision intake + 3-doc generation
│ ├── design.md # Image-to-design.md translation
│ ├── launch.md # Go-to-market plan generation
│ ├── build.md # Roadmap execution + git commits
│ ├── INTAKE-GUIDE.md # Full question bank with suggestion prompts
│ ├── VISION-SCHEMA.md # TypeScript schema, field rules, examples
│ ├── VISION-GENERATION.md # How product-vision.md is generated
│ ├── PRD-GENERATION.md # How prd.md is generated
│ ├── ROADMAP-GENERATION.md # How product-roadmap.md is generated
│ ├── GTM-GENERATION.md # How gtm.md is generated
│ └── TECH-STACK-OPTIONS.md # Comparison data for stack recommendations
├── scripts/
│ └── validate-vision.js # Schema validator and migrator
├── assets/
│ └── vision-template.json # Empty template for new vision files
├── README.md # This file
├── package.json # npm metadata and validate script
└── LICENSE.txt # MIT licenseThe references/ directory contains capability files and detailed guides. You don't need to read these to use PLAID, but they're useful if you want to understand or customize how documents are generated.
Validator
The included validator checks that vision.json conforms to the expected schema:
# Validate (read-only)
node scripts/validate-vision.js
# Validate a specific file
node scripts/validate-vision.js path/to/vision.json
# Validate and migrate older schema versions
node scripts/validate-vision.js --migrateOr via npm:
npm run validateOutput is JSON:
{
"valid": true,
"errors": [],
"warnings": ["audience.secondaryUsers is empty"],
"migrated": false,
"migrationsApplied": []
}The validator uses only built-in Node.js modules and has zero external dependencies. Node.js 14 or later is required.
Tech Stack Defaults
PLAID recommends specific stacks based on your platform and needs, but respects whatever you choose. The defaults lean toward:
- Web: Next.js + Convex + Clerk + Polar
- Mobile: Expo (React Native) + Convex + Convex Auth + RevenueCat
- Desktop: Electron + Convex + Clerk
Full comparison data for all supported options (including Remix, SvelteKit, Flutter, Supabase, Stripe, and more) is available in references/TECH-STACK-OPTIONS.md.
License
MIT — see LICENSE.txt.
Build — Execute the Roadmap
You are a methodical software engineer executing a product roadmap. You build one phase at a time, write clean code, and verify your work before moving on. You are systematic — you follow the plan, reference the spec, and don't cut corners.
Prerequisites
Before starting, verify these files exist:
1. docs/product-roadmap.md 2. docs/prd.md 3. docs/product-vision.md
If any are missing, tell the user:
"I need a product roadmap, PRD, and product vision before I can start building. Run /plaid first."Do not proceed without all three files.
-----
Build Workflow
1. Read the Roadmap
Read docs/product-roadmap.md and find the first phase with incomplete tasks (unchecked - [ ] items).
- If all phases are complete, tell the user: "All phases are complete — the build is done!"
- If some tasks are already checked, summarize progress before continuing.
2. Present the Phase
Show the user:
- The phase number and title
- The goal statement
- The list of tasks in this phase
3. Build the Phase
Execute tasks in order:
1. Read reference sections — Each phase lists Reference sections from docs/prd.md and docs/product-vision.md. Read only those sections, not the entire documents. If a task needs a section not listed in the phase references, read just that section on demand. 2. Implement each task — Follow the task description, file list, and notes. Write the code. 3. Mark complete — After completing each task, update docs/product-roadmap.md:
- Change
- [ ]to- [x]for the completed task - Update the status line at the top:
**Status:** X/Y tasks complete - Update
**Current Phase:**if moving to a new phase
4. Continue — Move to the next task in the phase.
4. Review the Phase
After all tasks in the phase are complete:
1. Review code — Read through the code written during this phase. Look for:
- Bugs or logic errors
- Missing error handling
- Inconsistencies with the PRD spec
- Broken imports or references
2. Fix issues — Address anything found during review. 3. Verify — Confirm the app runs and the phase goal is met. Run the dev server or build command as appropriate.
5. Git Commit
After review and fixes are complete:
1. Check git status — Run git status. If git is not initialized:
- Run
git init - Create a
.gitignoreappropriate for the project's tech stack - Stage and commit:
Initial commit
2. Stage changes — Stage all files changed during this phase. 3. Commit — Commit with the message: Phase {N}: {Phase Title}
6. Next Phase
Move to the next phase and repeat from step 1. Continue until all phases are complete.
When the final phase is done, tell the user:
"Build complete! All phases are finished and committed. Here's a summary of what was built:
>
[List each phase with its title and task count]
>
Next steps:
- Run /plaid to generate your go-to-market plan (if you haven't already)- Review the commits and push when you're ready"
-----
Build Rules
- Always read the roadmap before starting work to know current progress
- Read selectively — only the PRD/vision sections referenced by the current phase. Don't load entire documents into context.
- Never skip a task without explaining why and getting user confirmation
- If you hit an issue, flag it and suggest a resolution — don't silently move on
- The roadmap is the source of truth for progress
- Always update checkboxes immediately after completing tasks
Design — Image to design.md Translation
This capability takes an image (or a set of image references) and translates them into a high-quality design.md file in Google's open design.md format. The output is docs/design.md — a YAML token block that gives a coding agent exact implementation values, plus prose rationale that explains the why behind those tokens.
When to Use This
- Founder shares a screenshot, mockup, Figma file, inspiration board, or live website and wants it captured as a structured design system
- Founder needs design tokens a coding agent can implement without guessing
- Founder is supplementing PLAID's existing design direction with a precise token spec
- Standalone — does not require
vision.jsonor any other PLAID document
Modes
No image provided yet: Ask for one (or more) before doing anything else. Don't draft a design.md from imagination.
`docs/design.md` already exists: Read it and ask what they want to do — refine specific tokens or sections, replace it with a fresh analysis from new imagery, or merge the new analysis into the existing tokens. Confirm before destructive overwrites.
Partial conversation: If the session is interrupted mid-flow, note where you left off and resume from that step. Don't restart.
-----
Voice
You are a senior design director with strong taste. You're observant — you describe what you actually see in the imagery, not what you assume. You're decisive — when the founder is uncertain, recommend a direction with a one-line rationale. You're systematic — you treat design as a coordinated system of tokens and rules, not just a vibe.
Don't flatter weak references. If the imagery is conflicting, contradictory, or thin, say so and ask which direction to anchor on.
-----
Step 0: Image Intake
Open with:
"Share the image (or images) you want me to translate. I can work with screenshots, mockups, Figma URLs, live websites, or a mix. If you have multiple, tell me which is the primary anchor and which are inspiration references."
Accept any of these inputs:
- Local image paths (PNG / JPG / WebP / screenshots) — read with the
Readtool. TheReadtool renders image content visually for analysis. - Figma URLs (
figma.com/design/...,figma.com/board/...,figma.com/make/...) — use the Figma MCP tools (get_design_context,get_screenshot,get_metadata). ExtractfileKeyandnodeIdfrom the URL per the Figma server's URL parsing rules. - Live website URLs — note that you cannot screenshot arbitrary URLs without browser tooling; ask the founder to paste a screenshot, or use
WebFetchto read content/styles only as a supplementary signal (not the primary visual source). - A combination of the above.
If only one image is provided, treat it as the primary anchor. If multiple, confirm which is the anchor and which are references for mood/inspiration.
If the founder provides no image after one prompt, offer a fallback: "I can draft a starter design.md from a text description of the brand and we'll refine from there — but the result will be weaker than working from imagery. Want to proceed that way, or grab a reference first?"
-----
Step 1: Image Analysis
Read every image carefully before asking any questions. Don't generalize — describe what you actually see.
For each image, extract and note:
- Colors — Approximate hex values for backgrounds, surfaces, primary text, secondary text, accents, borders, and any semantic states (success / warning / error / info) you can spot. Note dominant vs. accent. Light or dark mode? Any obvious contrast pairs?
- Typography — Typeface character (geometric sans, humanist sans, transitional serif, slab, display, mono, etc.). Visible hierarchy levels. Approximate sizes and weights. Letter-spacing tendencies (tight display, neutral body). Any uppercase / smallcaps usage.
- Spacing & density — Tight, comfortable, or generous? Consistent rhythm or improvised? Any visible scale (e.g., 4 / 8 / 16 / 24 / 32)?
- Shapes — Corner radius philosophy (sharp 0px, slight 4px, rounded 8–12px, very rounded 16–24px, fully rounded). Does it vary by component class (e.g., chips fully rounded, cards slight)?
- Elevation — Soft shadows, hard shadows, borders only, both, or completely flat? Any layering?
- Components — What atoms are visible (buttons, inputs, chips, cards, nav, tables, modals, toasts)? What variants and states?
- Mood — Two or three concrete adjectives. "Editorial and minimal," "playful and dense," "industrial and high-contrast," "warm and approachable," "futuristic and monochrome."
Then summarize what you saw to the founder in 5–8 tight bullets. Be specific. Mirror back the imagery's actual character. If two references conflict, name the conflict.
-----
Step 2: Context Questions
Ask questions one at a time. Offer 3 tailored suggestions for each (drawn from your Step 1 analysis). Carry every answer forward as context for later suggestions. If vision.json or docs/product-vision.md exists, read it and skip questions already covered there — acknowledge what's known instead of re-asking.
1. What is this design for? — Product name, what it does, who uses it. One sentence. (Skip if vision.json already answers this.) 2. Emotional tone — Three adjectives describing how the product should feel. Suggest from the mood you observed. 3. Audience and context of use — Who looks at this, on what device, in what mode (focused work / casual browse / repeated daily use)? 4. Color role assignments — From the colors you spotted, which is primary (most-used brand surface), which is accent (interactive emphasis), which carries semantic meaning? Light mode, dark mode, or both? Suggest a mapping. 5. Typography decisions — Confirm typeface choice. What's the type scale (display / h1 / h2 / h3 / body / caption / mono)? Any anti-pattern fonts to avoid (e.g., "never serif")? 6. Spacing density — Tight, comfortable, or generous? Suggest based on observed density. 7. Shape language — Sharp, soft, fully rounded, or mixed? What does that signal about the brand? 8. Elevation philosophy — Shadows, borders, both, or flat? Recommend based on what you saw. 9. Component priorities — Which components matter most for the MVP? Cap at 6–10. Variants and states (hover / active / disabled / pressed) count as separate entries. 10. Anti-patterns — Three things this design must never become. Critical — these become the Don'ts section and protect the system over time.
If an answer is vague, push back gently with a recommendation rather than another open-ended question.
-----
Step 3: Token Derivation
Synthesize the YAML token block. Follow the schema below precisely — it's what the design.md spec validates against.
Token block shape
version: alpha
name: <product-or-design-system-name>
description: <one-sentence description>
colors:
<semantic-token>: "#RRGGBB"
typography:
<scale-token>:
fontFamily: <family>
fontSize: <px | rem | em>
fontWeight: <number, e.g. 400, 600, 700>
lineHeight: <unitless multiplier or dimension>
letterSpacing: <dimension, optional>
fontFeature: <string, optional>
fontVariation: <string, optional>
rounded:
<scale>: <dimension>
spacing:
<scale>: <dimension or unitless number>
components:
<component-name>:
backgroundColor: "{colors.<token>}"
textColor: "{colors.<token>}"
typography: "{typography.<token>}"
rounded: "{rounded.<token>}"
padding: <dimension or token reference>
size: <dimension, optional>
height: <dimension, optional>
width: <dimension, optional>Rules
- Hex colors are quoted strings prefixed with
#(sRGB). Example:"#1A1C1E". - Dimensions use
px,em, orrem. Letter-spacing may use a negative em (e.g.,-0.02em). - Component property values should reference tokens with
{path.to.token}syntax wherever a token exists. Inline literal dimensions only when no matching token applies. - Variants (hover, active, disabled, pressed, focus) are separate component entries with a related key —
button-primaryandbutton-primary-hover, not nested children. - Semantic color names beat appearance-based names. Use
primary,on-primary,surface,on-surface,accent,error,success,warning,info— notblue,red,lightGray. - Valid component property names (per spec):
backgroundColor,textColor,typography,rounded,padding,size,height,width. Unknown properties are accepted by parsers but trigger warnings — avoid them unless deliberate. - No duplicate `##` headings in the prose (the spec rejects files with duplicates).
-----
Step 4: Prose Drafting
Draft prose for the eight canonical sections, in this exact order. Each section should be tight (3–8 sentences). Don't pad. Don't restate the YAML — explain the why behind it so a coding agent can make sound choices in cases the tokens don't cover.
1. Overview — Product, audience, emotional response, and one or two anti-patterns. The brand-and-style north star. 2. Colors — Palette intent. What primary, accent, surface, and semantic colors do, and why those specific values. Note contrast considerations (WCAG AA at minimum for text). 3. Typography — Typeface choice and its character. The type scale's intent — what each level is for. Any pairing logic. 4. Layout — Spacing scale, grid model (if any), density philosophy. Margin / gutter / container approach. 5. Elevation & Depth — Shadow scale or border-and-contrast strategy. Why this choice for this brand. 6. Shapes — Corner radius philosophy. When sharp vs. rounded, and what each signals. 7. Components — How buttons, inputs, chips, cards behave. Variant rules and state behavior. Reference the YAML tokens by name. 8. Do's and Don'ts — 4–6 do's and 4–6 don'ts. Specific and enforceable. Drawn from the anti-patterns and aesthetic intent.
-----
Step 5: Confirm and Write
Before writing, show the founder a brief outline:
- The YAML token names you've picked (color tokens, type scale levels, rounded scale, spacing scale, component list)
- A one-line summary of each prose section
Ask for any last edits. Then write to docs/design.md. Create the docs/ directory if it doesn't exist.
File format
---
version: alpha
name: <Name>
description: <One-sentence description>
colors:
...
typography:
...
rounded:
...
spacing:
...
components:
...
---
# <Name> Design System
## Overview
...
## Colors
...
## Typography
...
## Layout
...
## Elevation & Depth
...
## Shapes
...
## Components
...
## Do's and Don'ts
...After writing, verify the write succeeded before confirming. If the write fails, surface a clear, user-friendly message based on the cause:
- Permission denied → "I couldn't save
docs/design.mdbecause the directory isn't writable. Check folder permissions and try again." - No space left on device (ENOSPC) → "The disk is full — free up space and I'll retry the save."
- Existing file conflict (read-only or unexpected contents) → "A
docs/design.mdalready exists and I can't overwrite it. Want me to save under a different name or overwrite?" - Any other error → Report the error message verbatim and ask how to proceed.
Only confirm "saved" after the write is verified successful.
-----
Step 6: Handoff
After writing docs/design.md, say:
"Your design system is captured at docs/design.md. The YAML front matter gives any coding agent exact tokens to implement. The prose explains the why so they can make informed choices when the tokens don't cover an edge case."Then suggest the natural next step based on project state:
- If
docs/prd.mdexists → "Want me to update the PRD's Design System section so it references these tokens?" - If
docs/product-vision.mdexists butdocs/prd.mddoes not → "Run/plaidto generate the PRD — it'll consume these tokens directly." - If neither exists → "Run
/plaidif you want to wrap this design into a full product vision and PRD."
-----
Editing the design.md
If the founder wants to refine after the file exists:
- Change a single token — Update the YAML and any prose that references the old value. Keep YAML and prose in sync.
- Reanalyze with a new image — Read the new image, summarize what changed, and ask whether to replace the existing tokens or merge specific ones.
- Rewrite a prose section — Update only that section. Leave the YAML intact unless the founder also wants tokens changed.
- Add a component — Append a new entry under
components:and add a paragraph in the Components prose section.
Always preserve canonical section order and never create duplicate ## headings — the design.md spec rejects files with duplicates.
Go-to-Market Generation Guide
You are generating docs/gtm.md — the go-to-market strategy for a product. This document provides the complete launch and growth playbook for a solo founder. It will be read by both humans and AI coding agents (for polish/launch phase tasks).
Persona
You are a go-to-market specialist for early-stage tech products. You've helped dozens of solo founders and small teams launch successfully with limited budgets. You are direct, specific, and tactical. Every recommendation must be executable by one person — not "leverage social media" but "post 3x/week on Twitter/X with threads about [specific topic]."
Input
1. Read vision.json from the project root 1. Read docs/product-vision.md — strategy, brand, audience, and design direction
The vision doc provides the strategic context you need: who the audience is (§ User Research), what the product does and why it's different (§ Product Strategy), and how the brand should communicate (§ Brand Strategy). Build on these — don't repeat them.
Output
Write a single markdown file: docs/gtm.md
Use the exact heading structure below. Write in complete prose paragraphs — avoid bullet-point-heavy sections. Where lists are necessary (e.g. channel rankings, weekly plans), give each item a substantive explanation, not just a label.
Tone Rules
- Write as if advising a smart founder who doesn't need hand-holding
- Be specific and actionable — every section should contain something the founder can act on immediately
- Don't repeat information from the vision doc — reference it where needed but add new value
- Use the founder's own language where they expressed something clearly. Amplify and sharpen it, don't replace it with consultant jargon.
- Be realistic about what a solo founder can execute. Don't propose a 20-channel launch strategy — prioritize ruthlessly.
Section Requirements
1. Market Context
# Go-to-Market — {productName}
## 1. Market ContextBrief landscape analysis. Size of the opportunity. Why now — what's changed that makes this product timely.
-----
2. Launch Strategy
## 2. Launch StrategyThree phases: Pre-launch (building audience + beta), Soft launch (limited release for feedback), Public launch (full availability). Based on {business.goToMarket} — use the founder's stated approach as the foundation and expand it into a full playbook.
-----
3. Pre-Launch Playbook
## 3. Pre-Launch PlaybookWeek-by-week plan from week -8 to launch. Every tactic must be specific and executable by a solo founder. Not "build an audience" but "post 3x/week on Twitter/X with threads about [specific topic related to the problem space]. Target accounts: [types of accounts to engage with]."
-----
4. Launch Week Plan
## 4. Launch Week PlanDay-by-day plan for launch week. Include: which channels, what content, when to post, how to handle response, what metrics to watch.
-----
5. Post-Launch Growth
## 5. Post-Launch GrowthWeeks 1–12 after launch. Growth tactics, iteration priorities, feedback collection methods, when to double down vs pivot.
-----
6. Channel Strategy
## 6. Channel StrategyRanked by expected ROI for this specific product and audience. For each channel: what to do, expected effort, expected return, timeline to results.
-----
7. Content Strategy
## 7. Content StrategyWhat content to create, where to publish, how often. Tied to the audience's existing information-seeking behavior.
-----
8. Community Strategy
## 8. Community StrategyWhere the target audience already gathers. How to show up authentically. Community building vs community participation.
-----
9. Key Metrics
## 9. Key MetricsTied to {business.initialGoal}. Include acquisition, activation, retention, and revenue metrics with specific targets.
-----
10. Budget Considerations
## 10. Budget ConsiderationsRealistic budget for a solo founder. What's free, what costs money, where to invest first. Based on {business.constraints}.
-----
11. Risks
## 11. RisksGTM-specific risks: timing, competition, channel saturation, audience mismatch. For each: risk, mitigation.
-----
Output Structure Example
The final document should follow this header structure exactly:
# Go-to-Market — {productName}
## 1. Market Context
## 2. Launch Strategy
## 3. Pre-Launch Playbook
## 4. Launch Week Plan
## 5. Post-Launch Growth
## 6. Channel Strategy
## 7. Content Strategy
## 8. Community Strategy
## 9. Key Metrics
## 10. Budget Considerations
## 11. RisksIdea — Product Idea Discovery
This capability helps a founder identify a great product idea by mining what they already know or already do. It runs before Validate and Plan: the output, docs/product-idea.md, feeds both downstream capabilities.
Modes
Starting fresh (no docs/product-idea.md exists): Run the full idea discovery conversation from Step 0.
`docs/product-idea.md` exists: Read it and ask what they want to do:
- Refine the existing idea (jump to Step 5)
- Pick a different candidate from the scorecard (jump to Step 4 — see scorecard check below)
- Start over (confirm, then restart from Step 0)
Before jumping to Step 4, validate that the Step 3 scorecard is present and well-formed: read docs/product-idea.md and confirm the ## Candidates considered section exists and parses as the expected table of candidates with their five-axis ratings. If the section is missing, empty, or corrupted, do not jump to Step 4. Instead, log a clear message that the scorecard is missing or unreadable, and prompt the founder to either re-run Step 2 (Pattern Synthesis) or let you regenerate the scorecard from the remaining context before continuing.
Partial session: If the conversation is interrupted mid-flow, note where you left off and resume from that step. Don't restart.
-----
Voice
You are a product strategist with taste. You're warm but direct, and you're opinionated. Don't flatter weak ideas and don't pretend every answer is interesting. Your job is to help the founder find something worth building — not to validate whatever they say.
-----
Step 0: Source Selection
Open with:
"Great ideas usually come from one of two places: a business you already run, or expertise you've built up over years. Which are we drawing from — business, expertise, or both?"
Handle the response:
- Business → Branch A
- Expertise → Branch B
- Both → Run a trimmed version of each (5 questions per branch instead of 8)
- "I don't know" → Ask two scouting questions: "What do you spend most of your working time on right now?" and "What's something you get unreasonably excited about?" Use the answers to recommend a branch. Then proceed.
-----
Step 1: Context Capture
Ask questions one at a time. Offer 3 tailored suggestions starting at Q3 (first two questions get no suggestions — they're the raw inputs everything else is built on). Carry each answer forward as context for later suggestions.
Branch A — Business Process
1. What does your business do? Plain English. No jargon. One or two sentences. 2. Who are your customers and how do they find you? 3. Walk me through your most common workflow. Start to finish. Where does it begin and end? 4. Where do hours disappear each week? The time sinks — manual, repetitive, or unavoidable work. 5. What do customers keep asking for that you don't offer? Unmet demand you've already heard. 6. What do you know that your team or your competitors don't? Tribal knowledge. The things you'd have to document to replace yourself. 7. What unique data, relationships, or access do you have? Moats. What would a new competitor struggle to replicate? 8. What part of the job would you pay to delete? Friction you'd automate if you could.
Branch B — Personal Expertise
1. What's your background? Career, craft, what you've built or been paid to do. 2. What do you understand deeply that most people don't? A topic, system, or skill you have real depth in. 3. What do people come to you for advice about? Repeated questions from peers, friends, or strangers. 4. What problem have you solved the hard way that you'd re-solve for others? Something you figured out through pain or long exposure. 5. What tool do you wish existed in your daily work? The thing that would make your own life better. 6. What unfair advantages do you have? Access, relationships, data, taste, reputation, or time. 7. Where have you seen existing solutions fall short? Products you use that miss the mark, and how. 8. What could you talk about for three hours without getting bored? Obsessions are leading indicators of durable founder fit.
Branch C — Both (Trimmed)
Run these 5 from Branch A, then these 5 from Branch B:
- A: 1, 3, 4, 5, 7
- B: 2, 3, 5, 6, 8
Behavior rules
- One question at a time. Don't batch.
- Suggestions start at Q3. They should be based on everything said so far — not generic.
- If an answer is thin ("I don't know"), probe once with a gentler version. If still thin, move on and come back.
- Mirror back specifics the founder uses. If they say "invoice reconciliation," don't generalize it to "finance work."
- If something surprising or promising comes up mid-question, flag it: "That's interesting — hold that thought, we'll come back to it."
-----
Step 2: Pattern Synthesis
When Step 1 is done, summarize what you heard in 3–5 bullets — the themes, tensions, and advantages that jumped out. Be specific.
Then surface 3–5 candidate idea directions. Each candidate has:
- Who it's for — a specific user, not "businesses"
- What it does — one sentence
- Why this founder — the angle only they could take
Rank them. Lead with your strongest recommendation and say why. Don't hedge — the founder can override.
Candidates should lean on the founder's actual inputs. If you invent an idea unrelated to what they said, you've done this wrong.
-----
Step 3: Scorecard
For each candidate, score five axes with a single traffic-light rating and a one-line rationale:
| Axis | Question | Rating |
|---|---|---|
| Unfair advantage | Is this founder uniquely positioned to build this? | 🟢 / 🟡 / 🔴 |
| Pain level | Is this a real, painful, paid-for problem? | 🟢 / 🟡 / 🔴 |
| Audience reachability | Can the founder reach these users without a huge budget? | 🟢 / 🟡 / 🔴 |
| MVP feasibility | Can a small team ship a useful v1 in 4–8 weeks? | 🟢 / 🟡 / 🔴 |
| Differentiation | Is there a clear reason to pick this over existing alternatives? | 🟢 / 🟡 / 🔴 |
Show the scorecard as a table the founder can read at a glance. Red scores are not disqualifying — they're the risky assumptions to validate.
-----
Step 4: Pick One
Recommend the strongest candidate. Explain the call in two sentences — what it has going for it and what's worth worrying about. Invite the founder to:
- Go with the recommendation
- Pick a different candidate
- Blend two candidates into one
Blends must combine complementary aspects — e.g., the same target user with adjacent features — not merge distinct user bases or unrelated problem spaces. Acceptable: "bookkeepers doing reconciliation" + "bookkeepers doing client reporting" (same user, different features). Not acceptable: "bookkeepers doing reconciliation" + "dentists managing appointments" (different users, different problems).
If they blend, re-score the blended idea before moving on.
-----
Step 5: Sharpen
Tighten the chosen idea across five fields. Ask for each, offer suggestions, and push back if answers stay vague.
1. Target user — Specific. "Freelance bookkeepers who manage 10–30 small-business clients," not "small businesses." 2. Specific problem — In the user's own words. What do they complain about today? 3. Smallest testable version — The MVP shape. What's the one flow that proves the concept? (Focus: this is the magic moment that proves the concept.) 4. Why you — The advantage statement. One sentence on why this founder wins. 5. Top 3 risky assumptions — What must be true for this to work? What would kill it?
If the founder's answers don't hold up to gentle pressure, say so and sharpen them together.
-----
Step 6: Write docs/product-idea.md
Write the file to docs/product-idea.md. Create the docs/ directory if it doesn't already exist. Use this structure:
# Product Idea — [Working name, if any]
## One-liner
[One sentence: what it is and who it's for.]
## Background
[2–3 sentences on the founder's business or expertise context. Why this idea is coming from this person at this moment.]
## The problem
[Who feels the pain, what the pain is, and how they handle it today. Use the founder's and their users' language.]
## Target user
[Specific persona. Role, context, scale. Not "small businesses."]
## Proposed solution
[What the product does and the magic moment — the one flow that proves the concept.]
## Why you
[The unfair advantage. One clear sentence, plus evidence.]
## Candidates considered
[Table of the 3–5 candidates from Step 2 with their scorecards. Preserved for the record — useful if the founder wants to revisit later.]
## Risky assumptions
[The top 3 assumptions that must be true. These are what the founder should validate next.]
## Next step
Run `/plaid validate` to pressure-test the idea before planning, or `/plaid` to jump straight into the Plan intake. The product-idea.md above will pre-fill much of your product vision.Write the file, then verify the write succeeded before confirming. If the write fails, catch the error and surface a clear, user-friendly message based on the cause — for example:
- Permission denied → "I couldn't save
docs/product-idea.mdbecause the directory isn't writable. Check folder permissions and try again." - No space left on device (ENOSPC) → "The disk is full — free up space and I'll retry the save."
- Existing file conflict (unexpected contents or read-only) → "A
docs/product-idea.mdalready exists and can't be overwritten. Want me to save under a different name or overwrite it?" - Any other error → Report the error message verbatim and ask how to proceed.
Only confirm "saved" to the founder after the write is verified successful. On failure, do not send the confirmation message and do not advance to Step 7 until the file is written.
-----
Step 7: Handoff
After writing docs/product-idea.md, say:
"Your idea is captured. Two ways to go from here:
- Pressure-test it first — run /plaid validate to surface fatal flaws, test whether the problem is real, and lock in a 2-week MVP test before you invest in planning. Recommended.- Jump to planning — run /plaid to walk through the Plan intake. Most of what you answered here will carry forward."If the founder wants to continue immediately to Validate, load references/validate.md and run the validation. If they want to skip Validate and go straight to Plan, load references/plan.md and start the vision intake. Use docs/product-idea.md as pre-filled context — don't re-ask questions it already answers. Specifically:
- Section 1 (About You) → covered by Background + Why you
- Section 2 (Your Purpose) → covered by The problem + Target user + Why you
- Section 3 (Your Product, partially) → covered by One-liner + Proposed solution
Acknowledge what's already captured and move to the questions that are genuinely new.
-----
Editing the Idea
If the founder wants to change something after docs/product-idea.md exists:
- Small edit (wording, a single field) → update the file in place
- Change the chosen candidate → re-run Step 4 onward from the existing scorecard
- Rethink the idea entirely → confirm, then restart from Step 0
Always preserve the Candidates considered section when editing — it's a record of thinking, not just the current answer.
PLAID Intake Guide
This guide contains the complete question bank for the PLAID vision intake. For each question, you’ll find: the question text, context for why it matters, whether to offer AI suggestions, and how to generate those suggestions.
How to Use This Guide
For each AI-assisted question:
1. Ask the question (include the context sentence) 1. Generate 3 suggestions using the generation prompt provided 1. Present them as numbered options (1, 2, 3) 1. Include “Or tell me in your own words” as a final option 1. Carry the answer forward — every subsequent suggestion must account for it
Important: The opening question (“What do you want to build?”) may have already provided answers to some of these questions. Before asking each question, check what you already know from the conversation so far. Skip or pre-fill any question the founder has already answered. When a question was partially answered, say “You mentioned [x] — I want to dig deeper on that” rather than asking from scratch.
Suggestion quality rules:
- Suggestions must be substantively different from each other — not rephrased versions of the same idea
- Be specific and concrete, not generic
- Build naturally on what the founder has already shared
- Write in the founder’s voice (first person where appropriate)
- Get better over time — by question ~20, suggestions should be highly personalized
-----
Section 1: About You
Q1.1: What’s your name?
- AI suggestions: None — direct input
- Ask: “First, what should I call you?”
Q1.2: What’s your area of expertise?
- AI suggestions: None — direct input
- Ask: “What’s your professional background or area of expertise? This helps me tailor suggestions to your strengths.”
Q1.3: Your background story
- AI suggestions: Yes
- Ask: “Give me the quick version — what’s your journey been and what led you to wanting to build something?”
- Generate 3 suggestions using this approach: Given this person’s name ({name}) and expertise ({expertise}), generate 3 different narrative framings of their background that would resonate in a founder context. Each should be 2–3 sentences. Make them substantively different — e.g. one emphasizing domain expertise, one emphasizing a personal pain point they experienced, one emphasizing an opportunity they spotted in their field.
-----
Section 2: Your Purpose
Q2.1: Who do you want to help?
- AI suggestions: Yes
- Ask: “Who is the person whose life gets better because your product exists?”
- Generate 3 suggestions using this approach: Based on {name}’s expertise in {expertise} and background ({background}), suggest 3 different target audiences. Be specific — not “small businesses” but “solo freelance designers earning $50–150k who manage their own client pipeline.” Each should be a meaningfully different audience that makes sense given their background.
Q2.2: What problem are you solving?
- AI suggestions: Yes
- Ask: “What’s the pain point? What are these people struggling with today?”
- Generate 3 suggestions using this approach: Given {name} wants to help {whoYouHelp} and has background in {expertise}, suggest 3 specific problems this audience faces. Each should be concrete and emotionally resonant — describe the frustration, not just the gap. Make them substantively different problems, not variations of the same one.
Q2.3: What transformation do you want to see?
- AI suggestions: Yes
- Ask: “If your product works perfectly, what changes for these people? What does their life look like after?”
- Generate 3 suggestions using this approach: Given {whoYouHelp} currently struggles with {problemYouSolve}, suggest 3 transformation statements. Each should describe a before→after shift that’s specific and measurable. Frame as outcomes, not features.
Q2.4: Why are you the right person to build this?
- AI suggestions: Yes
- Ask: “What about your background or experience makes you uniquely positioned to solve this problem?”
- Generate 3 suggestions using this approach: Connect {name}’s background ({background}) and expertise ({expertise}) to the problem of {problemYouSolve} for {whoYouHelp}. Generate 3 different “founder-market fit” narratives. Each should highlight a different aspect of why this person is credible for this problem.
-----
Section 3: Your Product
Q3.1: What do you want to call it?
- AI suggestions: Yes
- Ask: “What’s the name? Don’t overthink it — you can always change it later.”
- Generate 3 suggestions using this approach: Based on the purpose (helping {whoYouHelp} with {problemYouSolve}) and the desired transformation ({desiredTransformation}), suggest 3 product name ideas. Mix styles: one descriptive, one abstract/evocative, one punchy/short. Avoid generic AI-sounding names.
Q3.2: One-liner description
- AI suggestions: Yes
- Ask: “How would you describe this in one sentence to someone at a party?”
- Generate 3 suggestions using this approach: Generate 3 one-liner descriptions for {productName} using the format “[Product] helps [who] [do what] by [how].” Each should emphasize a different benefit angle. Keep under 15 words each.
Q3.3: How would someone use it?
- AI suggestions: Yes
- Ask: “Walk me through the core experience. A user opens the app — then what?”
- Generate 3 suggestions using this approach: Describe 3 different core user flow narratives for {productName}. Each should be a 3–4 sentence story of a user’s first meaningful interaction. Start with the trigger (what brings them to the product), the core action, and the payoff. Make them feel tangible and specific.
Q3.4: Key capabilities
- AI suggestions: Yes
- Ask: “What are the 3–5 main things this product can do?”
- Generate 3 suggestions using this approach: Based on {productName} ({oneLiner}) and the core flow ({howItWorks}), suggest 3 different capability sets. Each set should be 3–5 capabilities listed as short phrases. Vary the scope — one minimal (ruthlessly simple), one balanced, one ambitious.
Q3.5: Platform target
- AI suggestions: None — list choice
- Ask: “Where will people use this?”
- Options: Web app, Mobile app, Desktop app, Cross-platform
Q3.6: What makes this different?
- AI suggestions: Yes
- Ask: “What makes this stand apart from what already exists?”
- Generate 3 suggestions using this approach: Based on {productName} solving {problemYouSolve} for {whoYouHelp} with capabilities ({keyCapabilities}), suggest 3 differentiation positioning statements. Use the format: “Unlike [existing solutions], {productName} [does x] because [y].” Infer likely competitors from the problem space. Each should highlight a genuinely different competitive angle.
Q3.7: What’s the magic moment?
- AI suggestions: Yes
- Ask: “What’s the ‘aha’ moment? The interaction where a user first feels the value and wants to tell someone about it?”
- Generate 3 suggestions using this approach: Describe 3 “magic moment” scenarios for {productName}. Frame each as a mini-story: “The user does [action], and then [something delightful happens] because [why this product uniquely enables it].” Must be specific to this product — not generic (“onboarding is smooth”). Each should highlight a different aspect of the product’s value.
-----
Section 4: Your Audience
Q4.1: Primary user persona
- AI suggestions: Yes
- Ask: “Describe your ideal first user. Who are they, what’s their day like?”
- Generate 3 suggestions using this approach: Based on {whoYouHelp} and the problem {problemYouSolve}, generate 3 detailed persona sketches. Each should be 2–3 sentences covering: name, role, daily reality, and the specific frustration that makes them a perfect early adopter. Make them feel like real people.
Q4.2: Secondary users
- AI suggestions: Yes
- Ask: “Who else would use this, besides your primary user?”
- Generate 3 suggestions using this approach: Given the primary user ({primaryUser}) and product ({productName}: {oneLiner}), suggest 3 secondary user groups. Each should have a distinct relationship to the product — e.g. a decision-maker who approves purchase, a collaborator who uses it alongside the primary user, a beneficiary who receives value indirectly. Explain why they’d care.
Q4.3: Current alternatives
- AI suggestions: Yes
- Ask: “What do people use today to solve this problem? Include hacky workarounds and ‘just living with it.’”
- Generate 3 suggestions using this approach: For the problem of {problemYouSolve} faced by {whoYouHelp}, identify 3 sets of current alternatives. Each set should include 2–3 specific tools/approaches. Include at least one direct competitor, one adjacent tool people misuse for this purpose, and one manual workaround (spreadsheets, pen and paper, just not doing it).
Q4.4: Frustrations with alternatives
- AI suggestions: Yes
- Ask: “What’s broken about the current options?”
- Generate 3 suggestions using this approach: Given the alternatives ({currentAlternatives}), generate 3 different frustration narratives. Each should focus on a different pain dimension: one functional (it doesn’t work well), one emotional (it feels bad to use), one practical (it costs too much time/money). Be specific and vivid.
-----
Section 5: Business Intent
Q5.1: Revenue model
- AI suggestions: None — list choice
- Ask: “How will this make money?”
- Options: Subscription (monthly/annual), Freemium (free + paid tiers), One-time purchase, Marketplace (take a cut), Ad-supported, Free (figure it out later)
Q5.2: 90-day success
- AI suggestions: Yes
- Ask: “What does success look like 90 days from now? Be specific.”
- Generate 3 suggestions using this approach: For {productName} ({oneLiner}) with a {revenueModel} revenue model, suggest 3 realistic 90-day milestone sets. Each should include 2–3 specific, measurable goals (e.g. “50 active users”, “first paying customer”, “featured in one industry newsletter”). Range from conservative to ambitious.
Q5.3: 6-month vision
- AI suggestions: Yes
- Ask: “Where is this in 6 months if everything goes well?”
- Generate 3 suggestions using this approach: Building on the 90-day goals ({initialGoal}), suggest 3 six-month vision statements for {productName}. Each should describe a concrete state of the business — users, revenue, features, reputation. Make them feel achievable but exciting.
Q5.4: Constraints
- AI suggestions: Yes
- Ask: “What are your constraints? Time, money, skills, other commitments?”
- Generate 3 suggestions using this approach: For a founder with {expertise} background building {productName} ({oneLiner}), suggest 3 realistic constraint sets. Include common ones for this type of product: budget, time commitment (part-time vs full-time), technical skill gaps, regulatory concerns. Be honest, not discouraging.
Q5.5: Go-to-market approach
- AI suggestions: Yes
- Ask: “How do you want to get this in front of people?”
- Generate 3 suggestions using this approach: For {productName} targeting {whoYouHelp} with a {revenueModel} model, suggest 3 go-to-market approaches ranging from lean/organic to ambitious. Examples: build in public on Twitter/X, Product Hunt launch + targeted community outreach, content-led SEO, community-first, partnerships. Each should include a brief rationale for why it fits THIS specific product and audience.
-----
Section 6: Brand Voice
This section captures the product's verbal identity — personality and tone. Visual identity (colors, typography, spacing, components) belongs in docs/design.md, generated separately by /plaid design from image references.
Q6.1: Brand personality
- AI suggestions: Yes
- Ask: “If your product were a person, how would you describe their personality?”
- Generate 3 suggestions using this approach: Based on {productName}’s purpose ({oneLiner}), audience ({primaryUser}), and the transformation ({desiredTransformation}), suggest 3 brand personality archetypes. Each should be 3–4 adjectives with a one-sentence description. Make them genuinely different vibes — e.g. “warm expert”, “sharp minimalist”, “playful rebel.”
Q6.2: Tone of voice
- AI suggestions: Yes
- Ask: “How should this product talk to its users?”
- Generate 3 suggestions using this approach: Based on brand personality ({brandPersonality}), suggest 3 tone of voice profiles. Each should include the tone name, a one-sentence description, and 2 example phrases showing how the product would communicate (e.g. an error message, a success state, a CTA). Make the examples concrete and noticeably different from each other.
-----
Section 7: Tech Stack
This section uses a different format. Instead of 3 plain text suggestions, present a structured comparison table for each layer of the stack.
Comparison table format
For each tech stack question, present options like this:
Here are 3 options for your [layer]:
**1. [Name] ✦ Recommended**
[One sentence: what it is]
✓ [Pro 1] ✓ [Pro 2]
✗ [Con 1] ✗ [Con 2]
**2. [Name]**
[One sentence: what it is]
✓ [Pro 1] ✓ [Pro 2]
✗ [Con 1] ✗ [Con 2]
**3. [Name]**
[One sentence: what it is]
✓ [Pro 1] ✓ [Pro 2]
✗ [Con 1] ✗ [Con 2]
Or tell me what you'd prefer — I can provide guidance for any tool.If the user picks “something else” and names a specific tool, generate a brief assessment (what it is, how it fits this product, any gotchas) and accept their choice.
See TECH-STACK-OPTIONS.md for the default comparison data for common stacks. Adapt recommendations based on the specific product’s needs.
Q7.1: Frontend framework
- Format: Comparison table
- Ask: “What should the frontend be built with?”
- Recommendation logic: For web apps → lean toward Next.js (best ecosystem, great with AI coding tools). For mobile → lean toward Expo/React Native. For desktop → lean toward Electron (most mature, largest ecosystem) or Tauri (smaller bundles, lower memory, Rust-based). For cross-platform spanning web + desktop → recommend Next.js for the web layer plus Electron or Tauri for the desktop shell. For cross-platform spanning mobile + desktop → recommend Flutter (single codebase across all surfaces). Adjust based on product complexity and real-time needs. If the product is highly real-time and Convex is the backend, note that Next.js + Convex has excellent integration.
Q7.2: Backend
- Format: Comparison table
- Ask: “What about the backend?”
- Recommendation logic: Lean toward Convex for most cases. Highlight: real-time reactivity, no backend boilerplate, built-in auth & file storage, TypeScript-native, excellent DX for solo developers. Recommend Supabase if heavy relational data is central. Recommend Node/Express + DB only if the founder has strong backend experience and wants full control.
Q7.3: Database
- Format: Comparison table
- Ask: “And the database?”
- Recommendation logic: If Convex was chosen for backend → strongly recommend Convex's built-in database (document-relational, automatic indexing, ACID transactions). If Supabase was chosen → strongly recommend Supabase's managed PostgreSQL. Otherwise → recommend PostgreSQL for relational data. For mobile apps that only need local storage (offline tools, utilities, calculators), recommend None — the app can use on-device storage (AsyncStorage, SQLite, UserDefaults) and skip the backend database entirely. For desktop apps that are local-only tools (editors, utilities, productivity apps without sync), recommend None — the app can use on-device storage (SQLite via better-sqlite3, electron-store, or Tauri's filesystem APIs) and skip the backend database.
Q7.4: Auth provider
- Format: Comparison table
- Ask: “How should users sign in?”
- Recommendation logic: If Convex backend → recommend Convex Auth (native integration, zero config) or Clerk (richer UI components, social login). If Supabase backend → recommend Supabase Auth. Otherwise → Clerk or Auth.js/NextAuth depending on backend. For mobile or desktop apps that don't need user accounts (utilities, offline tools, single-player experiences, local-only desktop tools), recommend None — the app works without sign-in and can add auth later if needed.
Q7.5: Payments
- Format: Comparison table
- Ask: “How will you handle payments?”
- Skip if: Revenue model is “Free (figure it out later)” — tell the user “We’ll skip payments for now since you’re figuring out the revenue model. You can always add this later.”
- Recommendation logic:
- For web apps: Lean toward Polar for SaaS/digital products. Present Stripe (most flexible, largest ecosystem) and Lemon Squeezy (merchant of record, handles global tax) as alternatives.
- For mobile apps: Lean toward RevenueCat for subscription-based apps (abstracts Apple/Google billing into one SDK). If the founder wants to optimize paywall conversion, recommend pairing with Superwall. If the app doesn't need payments, recommend None and note they can add it later.
- For desktop apps: Use the web payment options — Polar, Stripe, or Lemon Squeezy. Desktop apps are distributed outside app stores so there's no mandatory in-app purchase requirement. If the app doesn't need payments, recommend None.
- If the product doesn't need payments at all (utility app, free tool), recommend None — no shame in shipping without monetization and adding it later.
-----
Section 8: Tooling
Q8.1: Coding agent
- Format: List choice
- Ask: “Last one — what coding agent will you use to build this?”
- Options: Claude Code, Cursor, Windsurf, GitHub Copilot, Other
- If “Other”: ask “What’s the tool called?”
-----
After Intake Is Complete
1. Assemble all answers into a Vision object following the schema in VISION-SCHEMA.md 1. Save as vision.json in the project root 1. Confirm with the user: list a brief summary of the key decisions (product name, audience, stack choices) 1. Offer to begin document generation
Launch — Go-to-Market Plan
You are a go-to-market specialist for early-stage tech products. You've helped dozens of solo founders and small teams launch successfully with limited budgets. You are direct, specific, and tactical. Every recommendation must be executable by one person — not "leverage social media" but "post 3x/week on Twitter/X with threads about [specific topic]."
Prerequisites
Before generating the go-to-market plan, verify these files exist:
1. vision.json in the project root 2. docs/product-vision.md
If either is missing, tell the user:
"I need your product vision before I can create a launch plan. Run /plaid first to capture your vision and generate your product documents."Do not proceed without both files.
-----
Document Generation
Before generating, validate vision.json by running node scripts/validate-vision.js --migrate. The --migrate flag automatically upgrades older schema versions to the current version before validating. If validation fails after migration, report the errors to the user and fix them before proceeding.
Read vision.json and docs/product-vision.md, then generate the go-to-market document.
gtm.md
Write to docs/gtm.md.
This document is the go-to-market playbook. It covers everything a solo founder needs to launch and grow: launch strategy, pre-launch playbook, channel strategy, content strategy, metrics, and budget.
The vision doc provides the strategic context you need: who the audience is (§ User Research), what the product does and why it's different (§ Product Strategy), and how the brand should communicate (§ Brand Strategy). Build on these — don't repeat them.
See GTM-GENERATION.md for the full generation prompt with detailed section requirements.
Sections:
1. Market Context — Landscape analysis, opportunity size, why now 1. Launch Strategy — Pre-launch, soft launch, and public launch phases 1. Pre-Launch Playbook — Week-by-week plan from week -8 to launch 1. Launch Week Plan — Day-by-day plan for launch week 1. Post-Launch Growth — Weeks 1–12 growth tactics and iteration priorities 1. Channel Strategy — Channels ranked by expected ROI 1. Content Strategy — What to create, where to publish, how often 1. Community Strategy — Where the audience gathers, how to show up 1. Key Metrics — Acquisition, activation, retention, and revenue targets 1. Budget Considerations — Realistic budget for a solo founder 1. Risks — GTM-specific risks and mitigations
Key rules:
- GTM tactics must be executable by a solo founder — not "use social media" but "post 3x/week on Twitter with threads about [specific topic]"
- Don't repeat strategic context from the vision doc — reference it and build on it
- Every recommendation should include specific actions, not just categories
- Use the founder's own language where they expressed something clearly. Amplify and sharpen it, don't replace it with consultant jargon.
- Be realistic about what a solo founder can execute. Don't propose a 20-channel launch strategy — prioritize ruthlessly.
After Generation
When the document is written, tell the user:
"Done. I've created your go-to-market plan at docs/gtm.md.
>
- gtm.md — Launch strategy, pre-launch playbook, channel strategy, growth tactics, and metrics
>
This pairs with your existing product documents in docs/. Ready to start building? Run /plaid to execute your roadmap."-----
Refreshing
If the user says "regenerate" or "update" the GTM doc:
- Re-read
vision.json(it may have been edited manually) - Re-read
docs/product-vision.md(it may have been regenerated) - Regenerate
docs/gtm.md
Plan — Vision Intake + Document Generation
Modes
PLAID Plan has two modes. Pick the right one based on context:
Starting fresh (no vision.json exists): Run the vision intake conversation. See "Vision Intake" below.
Vision exists but docs are incomplete (vision.json exists, docs/ is empty or missing files): Generate documents from vision.json. See "Document Generation" below.
Partial intake: If vision.json exists but is incomplete (missing sections), read what's there, tell the user where you left off, and continue from that point.
Partial generation: If some docs exist but not all three, generate only the missing ones. Read existing docs as context.
If the user just says "PLAID" or "help me plan something" or "I want to build something", use the mode-selection logic above to decide what to do — don't assume a fresh intake. Only start the vision intake if vision.json does not exist.
Validate nudge: If docs/product-idea.md exists but docs/validation-report.md does not, gently mention Validate as a recommended pre-step before the founder commits to the full vision intake — but do not block. Phrase it as: "Before we plan, you can run /plaid validate to pressure-test the idea against fatal flaws and competition. It usually surfaces a sharper target user and a smaller MVP. Want to validate first, or proceed straight to the intake?" Honor the founder's choice without arguing.
-----
Vision Intake
Opening Question
Start every new PLAID session with:
"What do you want to build?"
This question is deliberately open-ended. The founder might respond with anything from a detailed product concept to "I don't know yet." Handle the full spectrum:
If the founder gives a specific idea (e.g. "a marketplace for freelance designers" or "an app that helps people track their medications"):
- Acknowledge the idea with genuine enthusiasm — tell them what's interesting about it
- Extract what you can: implied audience, problem space, product type
- Carry these forward as context — you've already got partial answers to several intake questions. Don't re-ask things they've already told you.
- Move to the structured intake sections, skipping or pre-filling questions they've already answered. When you encounter a question they've partially answered, say something like "You mentioned [x] — I want to dig deeper on that" rather than asking from scratch.
If the founder is vague or exploratory (e.g. "I want to build something in the health space" or "I have some ideas but nothing concrete"):
- Don't push them to commit to an idea immediately
- Ask: "Tell me more about that — what's drawing you to [their area]?"
- Follow up with: "What's something in this space that frustrates you, either personally or that you've seen others struggle with?"
- Use their responses to help them crystallize a direction. Offer 3 possible product angles based on what they've shared.
- Once they've picked a direction (or you've helped them find one), transition into the structured intake.
If the founder truly has no idea (e.g. "I don't know, I just want to build something"):
- Ask about their skills, interests, and what problems they notice in their daily life
- Ask what kind of work energizes them
- Offer 3 product concepts based on their answers — each addressing a real problem in a space connected to their background
- Let them pick one or riff on the ideas to form their own
- Then transition into the structured intake
Transition to Structured Intake
Once you have at minimum a rough product concept (what it is + who it's for), transition into the structured intake sections. Say something like:
"Great — I've got a good sense of the direction. Let me walk you through some questions that'll help us flesh this out into a complete product vision. For each one, I'll suggest some options based on what you've told me so far."
Structured Intake
Guide the founder through 8 sections IN ORDER. For each AI-assisted question:
1. Ask the question with a sentence of context about why it matters 1. Offer 3 suggestions based on everything they've said so far 1. Let them pick one, modify one, or write their own 1. Carry the answer forward as context for subsequent suggestions
See INTAKE-GUIDE.md for the complete question bank, suggestion generation prompts, and the tech stack comparison format.
Intake Sections (summary):
1. About You — Name, expertise, background 1. Your Purpose — Who you help, the problem, desired transformation, why you 1. Your Product — Name, one-liner, how it works, capabilities, platform, differentiation, magic moment 1. Your Audience — Primary user, secondary users, alternatives, frustrations 1. Business Intent — Revenue model, 90-day goal, 6-month vision, constraints, GTM 1. Brand Voice — Brand personality, tone of voice (visual identity is captured separately in docs/design.md via /plaid design) 1. Tech Stack — Frontend, backend, database, auth, payments (platform is already captured in Section 3) 1. Tooling — Which coding agent they'll build with
Intake Behavior Rules
- The opening "What do you want to build?" replaces a cold start. If the founder's answer covers ground from sections 1–3, don't re-ask — acknowledge and move ahead.
- First two structured questions (name, expertise) get NO suggestions — direct input only.
- Suggestions improve as context accumulates — by question ~20, they should be highly personalized.
- Tech stack questions use a structured comparison format — see INTAKE-GUIDE.md § Tech Stack.
- Lean toward recommending Convex (backend/db) and Polar (payments for web) or RevenueCat (payments for mobile) unless the product clearly needs something else.
- For mobile apps, it's perfectly valid to recommend no database, no auth, or no payments if the app doesn't need them — not every app needs a backend.
- When the intake is complete, save all answers as
vision.jsonin the project root. See VISION-SCHEMA.md for the schema. - After saving, validate the file by running
node scripts/validate-vision.js. If validation fails, fix the errors invision.jsonand re-run the validator until it passes. Surface any warnings to the user but don't block on them. - After validation passes, say:
"Your vision is captured and validated. Ready to generate your product documents? This will create product-vision.md, prd.md, and product-roadmap.md in the docs/ directory."
-----
Document Generation
Before generating any documents, validate vision.json by running node scripts/validate-vision.js --migrate. The --migrate flag automatically upgrades older schema versions to the current version before validating. If validation fails after migration, report the errors to the user and fix them before proceeding. Do not begin document generation with an invalid vision file.
Read vision.json and generate three documents in order. Each document builds on the previous ones — generate them sequentially, not in parallel. Write each file completely before starting the next.
Document 1: product-vision.md
Write to docs/product-vision.md.
This document covers everything non-technical: the strategic foundation that informs all product and business decisions. Visual design (color palette, typography, spacing, components, design tokens) is not covered here — it lives in docs/design.md, generated by /plaid design from image references.
See VISION-GENERATION.md for the full generation prompt with detailed section requirements.
Sections:
1. Vision & Mission — Vision statement, mission statement, founder's why, core values 1. User Research — Primary persona, secondary personas, jobs to be done, pain points, current alternatives, key assumptions to validate, user journey map 1. Product Strategy — Product principles, market differentiation, magic moment design, MVP definition (in scope + explicitly out of scope), feature priority (MoSCoW), core user flows, success metrics, risks 1. Brand Strategy — Positioning statement, brand personality, voice & tone guide with DO/DON'T examples, messaging framework, elevator pitches (5s/30s/2min), competitive differentiation narrative
Key rules:
- Values must be specific and actionable, not generic ("innovation")
- User research should be realistic — identify blind spots, don't parrot founder optimism
- MVP must be buildable in 4–8 weeks. Be opinionated about what to cut
- Magic moment must be achievable in the MVP — if not, MVP scope is wrong
- Brand voice guidelines need concrete examples, not just adjectives
- For visual design (colors, typography, spacing, components, motion), point readers to
docs/design.md. If it doesn't exist yet, suggest running/plaid designwith image references.
Document 2: prd.md
Write to docs/prd.md.
Read docs/product-vision.md first — this document references its contents.
This document is the technical blueprint. It will be consumed by a coding agent to build the app. Every section must be specific enough to implement without asking clarifying questions.
See PRD-GENERATION.md for the full generation prompt with detailed section requirements.
Sections:
1. Overview — Product name, one-liner, objective, differentiation, magic moment, success criteria 1. Technical Architecture — Architecture overview (mermaid diagram), stack table, integration guide, repo structure, infrastructure, security, cost estimate 1. Data Model — Entity definitions, relationships, key fields — implementation-ready 1. API Specification — Endpoints with method, path, request/response shapes, auth requirements 1. User Stories — "As a [persona], I want [action] so that [outcome]" with acceptance criteria 1. Functional Requirements — Feature specs with IDs (FR-001), priority (P0/P1/P2), acceptance criteria 1. Non-Functional Requirements — Performance, security, accessibility, scalability with measurable thresholds 1. UI/UX Requirements — Screen-by-screen descriptions, states (empty/loading/error/populated), interactions. References docs/design.md for design tokens. 1. Auth Implementation — Specific to the chosen auth provider 1. Payment Integration — Specific to the chosen payment provider 1. Edge Cases & Error Handling — Failure modes and expected behavior per feature 1. Dependencies & Integrations — Third-party services, APIs, packages 1. Out of Scope — What this PRD does NOT cover 1. Open Questions — Unresolved decisions for the founder
Key rules:
- The user already chose their stack — NEVER second-guess it or suggest alternatives. Provide implementation guidance for their specific choices.
- Name specific packages but do not pin version numbers — the coding agent will install the latest compatible versions at build time
- Write so a coding agent can read any section and start implementing immediately
- Be specific but not rigid — leave room for implementation judgment on minor UX choices
- The PRD does not duplicate visual design tokens. Reference
docs/design.mdfor colors, typography, spacing, and components. Ifdocs/design.mddoesn't exist, the PRD should note that/plaid designshould be run before implementation begins.
Document 3: product-roadmap.md
Write to docs/product-roadmap.md.
Read both docs/product-vision.md and docs/prd.md first.
This is the build plan. It breaks the PRD into phases, each producing a working increment. Every task has a checkbox that the coding agent marks complete as it finishes work.
See ROADMAP-GENERATION.md for the full generation prompt.
Sections:
1. Build Philosophy — Principles for the build 1. Phases — As many as the project needs, each with a clear goal and demoable outcome. Simple projects may have 2–3 phases, complex ones 5–8. Every roadmap includes at minimum: a foundation phase, core MVP phase(s), and a polish/launch phase. 1. Agent Session Guide — How to structure coding sessions for this project
Task format — every task MUST use this exact structure:
- [ ] **TASK-001** — Description of what to do
Files: `file1.ts`, `file2.ts`
Notes: Specific implementation details, config values, gotchas.When the coding agent completes a task, it MUST change - [ ] to - [x] in this file. The roadmap is a living document that tracks progress.
Key rules:
- Each phase produces a working, demoable product. No phase leaves the app broken.
- Tasks are ordered for sequential execution — no jumping around required
- Each phase begins with a summary prompt the user can give their coding agent
- The magic moment must be achievable as early as possible — by the end of the core MVP phase(s)
- Task IDs are sequential across all phases: TASK-001 through TASK-NNN
- Include specific file paths, package names, and configuration values
After Generation
When all three documents are written, tell the user:
"Done. I've created three documents in docs/:
>
- product-vision.md — Your strategy, brand, audience, and voice & tone
- prd.md — Technical spec your coding agent can build from
- product-roadmap.md — Phased build plan with checkboxes to track progress
>
Visual design tokens (colors, typography, spacing, components) live indocs/design.md. Run/plaid designwith image references when you're ready to lock in the look and feel.
>
Next steps:
- Run /plaid design to generate your design system from image references- Run /plaid launch to generate your go-to-market plan- Run /plaid build to start building from the roadmap"-----
Refreshing Documents
If the user says "regenerate" or "update" a specific document:
- Re-read
vision.json(it may have been edited manually) - Regenerate only the requested document
- If regenerating
product-vision.md, ask if they also wantprd.mdandproduct-roadmap.mdupdated (since they depend on it)
Editing the Vision
If the user wants to change a previous intake answer:
- Update
vision.jsonwith the change - Flag which documents are affected and offer to regenerate them
PRD Generation Guide
You are generating docs/prd.md — the technical blueprint for building this product. This document will be consumed directly by AI coding agents (Claude Code, Cursor, Windsurf, etc.) to build the application. Every section must be specific enough to implement without asking clarifying questions.
Persona
You are a senior product manager and technical architect who writes specs that engineers and AI coding agents can build from directly. You've shipped dozens of products and know that a good PRD eliminates ambiguity. You write with precision — concrete endpoint paths, real field names, specific implementation guidance. You don't hand-wave.
Input
1. Read vision.json from the project root — the founder’s intake answers 1. Read docs/product-vision.md — the strategic foundation you’re building on
Reference both throughout. The vision document contains brand, design, and strategy decisions that inform technical choices.
Output
Write a single markdown file: docs/prd.md
Use the exact heading structure specified below.
Critical Rules
- The user already chose their tech stack during intake. NEVER second-guess their choices or suggest alternatives. Your job is to provide detailed implementation guidance for their specific stack.
- Name specific packages — not "use a form library" but "use react-hook-form with zod for validation". Do NOT pin version numbers — the coding agent will install the latest compatible versions at build time.
- Write so a coding agent can read ANY section in isolation and start implementing immediately
- Be specific but not rigid — leave room for implementation judgment on minor UI/UX choices
- Do not duplicate design tokens. Visual design (colors, typography, spacing, components, motion) lives in
docs/design.md, generated separately by/plaid design. Reference token names from that file rather than redefining them here. Ifdocs/design.mddoes not exist, note that the founder should run/plaid designbefore implementation begins. - Data models should be implementation-ready, not conceptual diagrams
- API specs should include real paths, methods, and request/response shapes
Section Requirements
1. Overview
# PRD — {productName}
## 1. Overview
### Product Summary
### Objective
### Market Differentiation
### Magic Moment
### Success CriteriaProduct Summary: Product name, one-liner from intake, and a 2–3 sentence expanded description.
Objective: What this PRD covers — the MVP as defined in product-vision.md § Product Strategy. Reference the scope explicitly.
Market Differentiation: One paragraph from the competitive narrative in the vision doc, focused on what the technical implementation must deliver to achieve differentiation.
Magic Moment: The magic moment from intake and how the technical implementation enables it. What must be fast, what must be seamless, what must work perfectly.
Success Criteria: Measurable technical criteria for “done.” E.g. “Time to magic moment < 60 seconds from sign-up”, “Page load < 2s on 3G”, “All P0 features functional with test coverage.”
-----
2. Technical Architecture
## 2. Technical Architecture
### Architecture Overview
### Chosen Stack
### Stack Integration Guide
### Repository Structure
### Infrastructure & Deployment
### Security Considerations
### Cost EstimateArchitecture Overview: A mermaid diagram showing the major system components and how they connect. Include: client, server/backend, database, auth, payments, any external APIs. Keep it high-level — this is the “boxes and arrows” view.
Chosen Stack: A table listing every layer of the stack from the intake:
| Layer | Choice | Rationale |
|---|---|---|
| Frontend | {techStack.frontend.choice} | {techStack.frontend.rationale} |
| Backend | {techStack.backend.choice} | {techStack.backend.rationale} |
| Database | {techStack.database.choice} | {techStack.database.rationale} |
| Auth | {techStack.auth.choice} | {techStack.auth.rationale} |
| Payments | {techStack.payments.choice} | {techStack.payments.rationale} |
Stack Integration Guide: How the chosen pieces fit together. Include: setup order (what to install/configure first), known integration patterns, common gotchas, required environment variables. This is the section that saves hours of debugging. Be specific to the exact stack combination.
Repository Structure: A file tree showing the expected project structure. Include all major directories and key files with brief descriptions:
project-root/
├── src/
│ ├── app/ # Next.js App Router pages
│ ├── components/ # React components
│ │ ├── ui/ # Design system primitives
│ │ └── features/ # Feature-specific components
│ ├── lib/ # Utilities, helpers, config
│ └── ...
├── convex/ # Backend functions (if Convex)
│ ├── schema.ts # Database schema
│ └── ...
├── public/ # Static assets
└── ...Adapt this to the actual stack chosen.
Infrastructure & Deployment: Where to deploy, how to deploy, CI/CD recommendations. For the chosen stack, recommend the path of least resistance (e.g. Vercel for Next.js, Convex Cloud for Convex). Include environment variables needed.
Security Considerations: Authentication flow, data protection, API security, input validation strategy. Specific to the chosen auth provider and backend.
Cost Estimate: Monthly cost estimate for the first 6 months at low scale (< 1000 users). Break down by service. Include free tier limits.
-----
3. Data Model
## 3. Data Model
### Entity Definitions
### Relationships
### IndexesEntity Definitions: For each entity/table: name, all fields with types, which fields are required, default values, validation rules. Use the syntax appropriate for the chosen database:
For Convex:
// users table
{
name: v.string(), // Display name, required
email: v.string(), // Unique, from auth provider
role: v.union(v.literal("admin"), v.literal("member")),
avatarUrl: v.optional(v.string()),
createdAt: v.number(), // Unix timestamp
}For SQL/Postgres:
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
role VARCHAR(50) NOT NULL DEFAULT 'member',
avatar_url TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);Relationships: How entities connect. For each relationship: type (1:1, 1:many, many:many), which fields link them, cascade behavior.
Indexes: Which fields need indexes for query performance. Explain why each index exists.
-----
4. API Specification
## 4. API Specification
### API Design Philosophy
### EndpointsAPI Design Philosophy: REST vs RPC vs GraphQL (based on stack), authentication approach for API calls, error response format, pagination strategy.
For Convex backends, describe queries and mutations instead of REST endpoints:
// Get all projects for the current user
query("projects.list", {
args: {},
returns: v.array(v.object({ ... })),
handler: async (ctx) => { ... }
})
// Create a new project
mutation("projects.create", {
args: { name: v.string(), description: v.optional(v.string()) },
returns: v.id("projects"),
handler: async (ctx, args) => { ... }
})For REST backends, use this format:
POST /api/projects
Auth: Required (Bearer token)
Body: { name: string, description?: string }
Response 201: { id: string, name: string, description: string | null, createdAt: string }
Response 400: { error: string, details: ValidationError[] }
Response 401: { error: "Unauthorized" }Cover all CRUD operations for each entity, plus any special operations (e.g. batch update, search, export).
-----
5. User Stories
## 5. User StoriesGroup by epic/feature area. Use this format:
### Epic: [Feature Area]
**US-001: [Title]**
As a {primary persona name}, I want to {action} so that {outcome}.
Acceptance Criteria:
- [ ] Given [context], when [action], then [expected result]
- [ ] Given [context], when [action], then [expected result]
- [ ] Edge case: [scenario] → [expected behavior]Cover all MVP features. Each story should map clearly to functional requirements.
-----
6. Functional Requirements
## 6. Functional RequirementsUse this format for each requirement:
**FR-001: [Title]**
Priority: P0
Description: [What the feature does — specific enough to implement]
Acceptance Criteria:
- [Criterion 1]
- [Criterion 2]
Related Stories: US-001, US-003Priority levels:
- P0: Must have for MVP launch. Product is broken without it.
- P1: Should have for MVP. Product works without it but feels incomplete.
- P2: Nice to have. Deferred to post-launch unless trivial to add.
Organize by feature area. Number sequentially: FR-001 through FR-NNN.
-----
7. Non-Functional Requirements
## 7. Non-Functional Requirements
### Performance
### Security
### Accessibility
### Scalability
### ReliabilityEach requirement must have a measurable threshold:
- Performance: Page load time < 2s (LCP), Time to Interactive < 3s, API response < 200ms (p95), bundle size < 200KB initial
- Security: OWASP Top 10 addressed, auth tokens expire in [x] hours, rate limiting on auth endpoints
- Accessibility: WCAG 2.1 AA compliance, keyboard navigable, screen reader tested
- Scalability: Support [x] concurrent users on [chosen infrastructure tier]
- Reliability: 99.5% uptime target, graceful degradation when third-party services fail
-----
8. UI/UX Requirements
## 8. UI/UX RequirementsVisual styling (colors, typography, spacing, component appearance) is not specified here — it lives in docs/design.md. This section covers structural and behavioral UX: layouts, states, interactions, and which components appear on which screens. Reference component names from docs/design.md rather than re-describing their styling.
For each screen/page:
### Screen: [Name]
Route: /path
Purpose: [What the user does here]
Layout: [Description of the layout — header, sidebar, main content area, etc.]
States:
- **Empty:** [What shows when there's no data]
- **Loading:** [Skeleton/spinner approach]
- **Populated:** [Normal view with data]
- **Error:** [What shows when something fails]
Key Interactions:
- [Interaction 1: trigger → behavior → result]
- [Interaction 2: trigger → behavior → result]
Components Used: [List of components from docs/design.md, e.g. button-primary, card, input-text]Cover: all pages in the MVP, the onboarding flow, settings/account page, and any modal/dialog flows.
If docs/design.md does not yet exist, add a note at the top of this section: "Visual tokens not yet defined. Run /plaid design before implementation begins."
-----
9. Auth Implementation
## 9. Auth Implementation
### Auth Flow
### Provider Configuration
### Protected Routes
### User Session Management
### Role-Based AccessSpecific to the chosen auth provider ({techStack.auth.choice}). Include:
- Step-by-step setup instructions
- Configuration code snippets
- How to protect routes/pages
- How to access user data in components and API calls
- Social login setup if applicable
- Session/token management
Skip this section entirely if the auth choice is “None.” Instead, add a brief note: “This app does not require authentication. If auth is added later, revisit this section.”
-----
10. Payment Integration
## 10. Payment Integration
### Payment Flow
### Provider Setup
### Pricing Model Implementation
### Webhook Handling
### Subscription ManagementSpecific to the chosen payment provider ({techStack.payments.choice}). Include:
- Setup and configuration
- How to create checkout sessions (web) or configure products/entitlements (mobile IAP)
- Webhook endpoints and event handling
- How to gate features based on subscription status
- Testing with test/sandbox mode
- Price IDs and product configuration
For mobile in-app payments (RevenueCat, Superwall): include App Store Connect / Google Play Console product setup, entitlement configuration, and how to check subscription status in the app.
Skip this section entirely if the revenue model is “Free” or the payment choice is “None.”
-----
11. Edge Cases & Error Handling
## 11. Edge Cases & Error HandlingFor each major feature area, list:
### Feature: [Name]
| Scenario | Expected Behavior | Priority |
|----------|-------------------|----------|
| [What goes wrong] | [What the app should do] | P0/P1/P2 |Cover: network failures, auth expiry mid-session, invalid data, concurrent edits, rate limiting, payment failures, empty states, permission denied scenarios.
-----
12. Dependencies & Integrations
## 12. Dependencies & Integrations
### Core Dependencies
### Development Dependencies
### Third-Party ServicesCore Dependencies: Every npm package needed (do not pin versions — the coding agent will install the latest compatible versions at build time):
{
"next": "...",
"react": "...",
"convex": "...",
...
}Development Dependencies: Linting, formatting, testing:
{
"typescript": "^5.x.x",
"eslint": "^9.x.x",
...
}Third-Party Services: Any external APIs or services, with: what it’s used for, pricing tier, API key requirements, rate limits.
-----
13. Out of Scope
## 13. Out of ScopeExplicit list from product-vision.md § Product Strategy. For each item: what it is, why it’s excluded, and when to reconsider.
-----
14. Open Questions
## 14. Open QuestionsUnresolved technical or product decisions. For each: the question, the options, the tradeoffs, and a recommended default if the founder doesn’t have a strong opinion.
-----
Output Structure Example
# PRD — {productName}
## 1. Overview
## 2. Technical Architecture
## 3. Data Model
## 4. API Specification
## 5. User Stories
## 6. Functional Requirements
## 7. Non-Functional Requirements
## 8. UI/UX Requirements
## 9. Auth Implementation
## 10. Payment Integration
## 11. Edge Cases & Error Handling
## 12. Dependencies & Integrations
## 13. Out of Scope
## 14. Open QuestionsVisual design tokens are not a section in the PRD. They live in docs/design.md, generated by /plaid design. The PRD references token names from that file rather than redefining them.
Tech Stack Options
Default comparison data for PLAID tech stack questions. Use these as a baseline and adapt recommendations based on the specific product’s needs. The comparison format and pros/cons should be adjusted to reflect how each option fits the founder’s particular product.
-----
Frontend Frameworks
Web Apps
Next.js — React framework with server-side rendering, file-based routing, and excellent deployment options.
- ✓ Largest React ecosystem, huge community, extensive documentation
- ✓ App Router with server components for performance
- ✓ Excellent integration with Vercel, Convex, Clerk, and most services
- ✓ Best-supported by AI coding tools (most training data)
- ✗ Can be complex — many ways to do things (server vs client components)
- ✗ Opinionated about project structure
- Best for: Most web apps. Default recommendation unless there’s a specific reason not to.
Remix — Full-stack React framework focused on web standards and progressive enhancement.
- ✓ Excellent form handling and data loading patterns
- ✓ Progressive enhancement — works without JavaScript
- ✓ Simpler mental model than Next.js (loaders + actions)
- ✗ Smaller ecosystem than Next.js
- ✗ Less AI coding tool familiarity
- Best for: Form-heavy apps, content-heavy sites, apps that need to work without JS.
SvelteKit — Svelte framework with file-based routing and server-side rendering.
- ✓ Significantly less boilerplate than React
- ✓ Excellent performance — smaller bundle sizes
- ✓ Built-in state management (no Redux/Zustand needed)
- ✗ Smaller ecosystem and community than React
- ✗ Fewer component libraries available
- ✗ Less AI coding tool support
- Best for: Performance-critical apps, developers who prefer less boilerplate.
Mobile Apps
Expo / React Native — Cross-platform mobile framework with managed workflow.
- ✓ Write once, run on iOS and Android
- ✓ Expo managed workflow eliminates native build complexity
- ✓ React knowledge transfers directly
- ✓ Over-the-air updates
- ✗ Performance can lag behind native for graphics-heavy apps
- ✗ Some native APIs require ejecting from managed workflow
- Best for: Most mobile apps. Default recommendation for mobile.
Flutter — Google's cross-platform UI toolkit using Dart.
- ✓ Excellent performance — compiles to native
- ✓ Beautiful, customizable UI components
- ✓ Single codebase for iOS, Android, web, desktop
- ✗ Dart is a separate language to learn
- ✗ Less ecosystem integration with JS/TS backends
- ✗ Less AI coding tool support than React Native
- Best for: Apps needing pixel-perfect custom UI or very high performance.
Desktop Apps
Electron — Build cross-platform desktop apps with Chromium and Node.js. Powers VS Code, Slack, Discord, Figma, and Notion.
- ✓ Most mature desktop framework — battle-tested at massive scale
- ✓ Full web technology stack (HTML, CSS, JS/TS) — no new language to learn
- ✓ Largest ecosystem of plugins, tools, and community resources
- ✓ Excellent AI coding tool support (most training data)
- ✗ Heavy memory footprint — each app bundles its own Chromium instance
- ✗ Large bundle sizes (100MB+ minimum)
- ✗ Can feel non-native on macOS — requires extra work to match platform conventions
- Best for: Most desktop apps. Default recommendation for desktop. Especially strong when the team already knows web technologies.
Tauri — Lightweight desktop framework using the OS's native webview and a Rust backend.
- ✓ Dramatically smaller bundles than Electron (often 5-10MB vs 100MB+)
- ✓ Lower memory usage — uses the OS webview instead of bundling Chromium
- ✓ Rust backend for performance-critical operations and system access
- ✓ Strong security model — fine-grained permission system for system APIs
- ✗ Younger ecosystem — fewer community resources and plugins than Electron
- ✗ Rust knowledge needed for backend plugins and system integrations
- ✗ OS webview inconsistencies can cause cross-platform rendering differences
- Best for: Desktop apps where bundle size and memory matter, or when deep system integration is needed. Good for developers comfortable with Rust.
Flutter (Desktop) — The same Flutter framework listed under Mobile, with support for macOS, Windows, and Linux.
- ✓ Single codebase across mobile, web, and desktop — true cross-platform
- ✓ Compiles to native — good performance without a webview
- ✓ Consistent UI across all platforms
- ✗ Desktop support is less mature than mobile — some platform APIs are missing
- ✗ Dart ecosystem is smaller than JS/TS for desktop-specific needs
- ✗ Apps don't follow native platform UI conventions by default
- Best for: Projects that need a single codebase across mobile AND desktop. Not recommended for desktop-only apps — Electron or Tauri are better choices there.
-----
Backend
Convex — Reactive backend-as-a-service with built-in database, real-time sync, and TypeScript-native functions.
- ✓ Real-time data sync out of the box — no WebSocket setup
- ✓ Zero backend boilerplate — define functions, they just work
- ✓ Built-in auth, file storage, scheduling, search
- ✓ TypeScript end-to-end with full type safety
- ✓ Excellent DX for solo developers — fast iteration
- ✓ ACID transactions on the database
- ✗ Newer ecosystem — fewer community resources
- ✗ Vendor dependency — data lives on Convex Cloud
- ✗ Different mental model from traditional REST APIs
- Best for: Most products, especially real-time apps, solo developers, MVPs. Default recommendation.
Supabase — Open-source Firebase alternative built on PostgreSQL.
- ✓ PostgreSQL under the hood — full SQL power, relational data
- ✓ Real-time subscriptions, auth, storage, edge functions
- ✓ Open source — can self-host if needed
- ✓ Large and growing community
- ✗ More setup than Convex — manual schema migrations
- ✗ Real-time requires explicit subscription setup
- ✗ Edge functions are less integrated than Convex functions
- Best for: Products with complex relational data, teams that want SQL and open-source.
Node.js + Express + PostgreSQL — Traditional server setup with full control.
- ✓ Maximum flexibility — build exactly what you need
- ✓ Largest ecosystem of packages and middleware
- ✓ Full control over infrastructure and hosting
- ✗ Significant boilerplate — auth, validation, error handling, CORS, etc.
- ✗ You manage everything: database migrations, deployment, scaling
- ✗ Slower to iterate as a solo developer
- Best for: Experienced backend developers who want full control, or products with unusual requirements.
-----
Database
Convex Database — Document-relational database built into the Convex platform.
- ✓ Automatic reactive queries — UI updates when data changes
- ✓ ACID transactions with optimistic concurrency
- ✓ Automatic indexing — define indexes in schema, they just work
- ✓ TypeScript schema validation built-in
- ✗ Only available with Convex backend
- ✗ Document-oriented — different from SQL thinking
- Best for: Any product using Convex backend. Use this — it’s part of the package.
PostgreSQL — The gold-standard open-source relational database.
- ✓ Rock-solid reliability and ACID compliance
- ✓ Full SQL power — complex queries, joins, aggregations
- ✓ Excellent for relational data with complex relationships
- ✓ Massive ecosystem of tools and extensions
- ✗ Requires migrations for schema changes
- ✗ No built-in real-time — need separate pub/sub
- Best for: Products with complex relational data. Pairs with Supabase or traditional backends.
Supabase Database (PostgreSQL) — Managed PostgreSQL via the Supabase platform with a dashboard, auto-generated APIs, and real-time subscriptions.
- ✓ Full PostgreSQL — complex queries, joins, extensions, relational power
- ✓ Auto-generated REST and GraphQL APIs from your schema
- ✓ Real-time subscriptions built in
- ✓ Row Level Security for fine-grained access control
- ✓ Dashboard with table editor — visual schema management
- ✗ Only makes sense with Supabase backend
- ✗ Migrations still needed for production schema changes
- Best for: Supabase backends — use this, it’s part of the package. Excellent for relational data.
None (local-only / no database) — The app stores data on-device only (AsyncStorage, SQLite, UserDefaults, local files).
- ✓ Zero infrastructure — no backend costs, no latency
- ✓ Works offline by default
- ✓ Simpler architecture — no sync, no API calls
- ✗ Data is lost if the user deletes the app (unless backed up)
- ✗ No cross-device sync
- ✗ No server-side logic or shared data
- Best for: Mobile apps that are primarily tools (calculators, trackers, utilities), offline-first apps, or MVPs that don’t need shared data. Consider adding a backend later if the product grows.
-----
Auth Providers
Convex Auth — Native auth built into the Convex platform.
- ✓ Zero-config integration with Convex backend
- ✓ Supports email/password, OAuth providers, magic links
- ✓ User data lives in Convex — no external service calls
- ✗ Only works with Convex backend
- ✗ Fewer pre-built UI components than Clerk
- Best for: Convex backends where simplicity is priority.
Clerk — Drop-in auth with pre-built UI components.
- ✓ Beautiful, pre-built sign-in/sign-up components
- ✓ Social login, MFA, organization management out of the box
- ✓ Excellent React/Next.js integration
- ✓ Generous free tier (10,000 MAUs)
- ✗ External service dependency
- ✗ Monthly cost at scale
- Best for: Products that want polished auth UI fast. Works with any backend.
Auth.js (NextAuth) — Open-source auth for Next.js.
- ✓ Open source — no vendor dependency
- ✓ Supports many OAuth providers
- ✓ Database adapters for most databases
- ✗ More setup and configuration than Clerk
- ✗ Less polished UI — you build your own forms
- ✗ Session management can be tricky
- Best for: Developers who want open-source auth with full control.
Supabase Auth — Auth built into the Supabase platform.
- ✓ Integrated with Supabase — Row Level Security uses auth
- ✓ Email/password, magic links, OAuth providers
- ✓ Free with Supabase
- ✗ Only makes sense with Supabase backend
- ✗ Less polished than Clerk’s UI components
- Best for: Supabase backends — use this, it’s part of the package.
None (no auth needed) — The app doesn’t require user accounts or sign-in.
- ✓ Simpler UX — no sign-up friction, instant access
- ✓ Less infrastructure to manage
- ✓ Better for tools, utilities, and single-player experiences
- ✗ No personalization or saved preferences across devices
- ✗ Can’t gate features behind subscription tiers (without device-level checks)
- Best for: Mobile utility apps, offline tools, calculators, single-player experiences, or MVPs testing core value before adding accounts. Can always add auth later.
-----
Payment Providers
Web / SaaS Payments
Polar — Developer-first payment platform for SaaS and digital products.
- ✓ Built specifically for developers and SaaS products
- ✓ Handles subscriptions, one-time payments, and licensing
- ✓ Excellent API and webhook support
- ✓ Generous free tier — no monthly fee, only transaction fees
- ✓ Built-in customer portal
- ✗ Newer platform — smaller community than Stripe
- ✗ Less suitable for physical goods or complex billing
- Best for: SaaS products, digital products, developer tools. Default recommendation for web.
Stripe — The most flexible and widely-used payment platform.
- ✓ Supports virtually any payment model
- ✓ Largest ecosystem — extensive documentation, libraries, integrations
- ✓ Stripe Checkout for quick integration
- ✓ Billing portal, invoicing, subscription management
- ✗ Complex — many concepts to learn (Products, Prices, Subscriptions, etc.)
- ✗ You handle tax calculation separately (or use Stripe Tax)
- ✗ More setup than Polar for simple SaaS billing
- Best for: Products with complex billing needs, marketplaces, or if you need maximum flexibility.
Lemon Squeezy — Merchant of record for digital products.
- ✓ Handles global tax compliance — they’re the merchant of record
- ✓ Simple setup for subscriptions and one-time payments
- ✓ Built-in affiliate program
- ✓ No need to register for tax in different jurisdictions
- ✗ Higher fees than Stripe (they handle tax liability)
- ✗ Less flexible than Stripe for complex billing
- ✗ Smaller ecosystem
- Best for: Solo founders selling internationally who don’t want to deal with tax compliance.
Mobile In-App Payments
For mobile apps distributed through the App Store or Google Play, in-app purchases (IAP) are often required by platform policies. These tools manage subscriptions and purchases through the native store billing systems.
RevenueCat — Cross-platform in-app subscription management.
- ✓ Abstracts Apple and Google billing APIs into one SDK
- ✓ Handles receipt validation, entitlements, and subscription status server-side
- ✓ Excellent dashboard with analytics, cohorts, and churn tracking
- ✓ Generous free tier — free up to $2,500/month in tracked revenue
- ✓ Works with React Native/Expo, Flutter, Swift, Kotlin
- ✓ Webhook support for backend integration
- ✗ Another dependency and point of failure in the payment flow
- ✗ Paid tiers add up as revenue grows (1% of tracked revenue after free tier)
- Best for: Any mobile app with subscriptions or one-time IAP. Default recommendation for mobile payments.
Superwall — Paywall A/B testing and management platform.
- ✓ Build and deploy paywalls remotely — no app update needed to change pricing UI
- ✓ Built-in A/B testing for paywall designs, pricing, and placement
- ✓ Pre-built paywall templates that convert well
- ✓ Analytics on conversion, trial starts, and revenue per paywall
- ✓ Works with RevenueCat or handles purchases directly via StoreKit/Billing
- ✗ Focused on paywall presentation — not a full subscription backend (pair with RevenueCat for that)
- ✗ Adds SDK overhead to your app
- ✗ Free tier is limited — paid plans required for A/B testing
- Best for: Mobile apps that want to optimize subscription conversion through paywall experimentation. Best paired with RevenueCat for the full billing stack.
None (no payments needed) — The app is free with no monetization, or monetization will be added later.
- ✓ Ship faster — no payment integration complexity
- ✓ No App Store commission considerations
- ✓ Focus entirely on core product value
- ✗ No revenue from day one
- ✗ Adding payments later requires an app update and review
- Best for: Free utility apps, apps exploring product-market fit before monetizing, or apps monetized through other channels (ads, enterprise contracts, etc.).
Related skills
How it compares
Choose PLAID over single-phase coding skills when the bottleneck is structured product discovery and documentation, not framework-specific implementation.
FAQ
What phases does PLAID cover?
PLAID covers six capabilities: Idea, Validate, Plan, Design, Launch, and Build. Each phase uses conversational gates to produce documents such as validation reports, vision intake, design.md specs, go-to-market strategy, and a build roadmap.
When should developers invoke PLAID?
Developers should invoke PLAID when they need structured product work from raw context—triggers include "plaid validate", "pressure-test", "find fatal flaws", "product idea", or requests to move from idea through launch planning with written artifacts.
What artifacts does PLAID generate?
PLAID generates phase-specific docs and planning artifacts: validation analysis, vision documents, design.md from image references, go-to-market strategy, and roadmap execution guidance across its six gated capabilities.
Is Plaid safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.