From rapid-mvp
This skill captures default architectural decisions and the conditions under which deviations are acceptable. Use when in plan mode, when Claude is about to suggest a technology or library choice, when the user asks "why do we use X", or when evaluating trade-offs between approaches. This is the source of truth for what the team's defaults are and when alternatives are warranted.
npx claudepluginhub kjgarza/marketplace-claude --plugin rapid-mvpThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
This document defines the team's default choices and the decision framework for when to deviate. Every prototype starts with these defaults. Deviations are acceptable but must be surfaced explicitly during plan mode with a clear trade-off statement.
When suggesting anything during plan mode or implementation:
This matters because multiple people work on these prototypes. Consistency reduces onboarding friction and context-switching cost. A "worse" but consistent choice is usually better than a "better" but unfamiliar one.
| Decision | Default | When to deviate |
|---|---|---|
| Next.js vs 11ty | Depends on project type | Next.js for interactive apps (forms, dashboards, auth). 11ty for content-driven sites (displays, timers, informational). If unclear, ask. |
| Runtime | Bun | Never deviate. Bun is always the runtime and package manager. |
| Monorepo tool | Bun workspaces | Never deviate. |
| Hosting | GitHub Pages (both stacks, via static export) | Deviate to Vercel only if the project needs SSR, edge functions, or specific region requirements. Default is GitHub Pages with output: "export". |
| Decision | Default | When to deviate |
|---|---|---|
| Component library | shadcn/ui + Radix | Only if the prototype needs components shadcn doesn't offer AND Radix primitives can't compose them. Never for preference reasons. |
| CSS framework | Tailwind CSS 4 | Never deviate in Next.js projects. |
| Icons | lucide-react | Only if a specific icon set is required by brand guidelines. |
| Toasts/notifications | sonner | Never deviate. |
| Charts | recharts | Deviate to d3 only if the visualization is highly custom and recharts can't handle it. |
| Form handling | React Hook Form + Zod | Never deviate. Never use Formik or Yup. |
| Theming | next-themes with CSS custom properties | Never deviate. |
| Animation | tailwindcss-animate | Deviate to Framer Motion only if the prototype requires complex gesture-driven or layout animations. Discuss first. |
| State management | React Context + Hook Form state | Deviate to Zustand only if multiple unrelated components need shared state beyond theme/auth. Never Redux. |
| Decision | Default | When to deviate |
|---|---|---|
| Templating | Nunjucks | Never deviate. |
| CSS framework | Tailwind CSS 4 | With @tailwindcss/cli build step. Same shared theme as Next.js. |
| Client JS | Vanilla JavaScript | Deviate to Alpine.js or Preact only if interactivity requirements are extensive. Discuss first. |
| Data validation | Zod | Never deviate. |
| Decision | Default | When to deviate |
|---|---|---|
| Component architecture | Three layers (Base UI → App components → Pages) | Never deviate. |
| Data pipeline | Separate package in monorepo | Only skip if the prototype has zero data transformation needs. |
| Validation | Zod schemas for all external data | Never deviate. Always validate. |
| API patterns | Next.js App Router API routes | Deviate to tRPC only if there are many type-safe endpoints between frontend and backend. |
| Auth | NextAuth v5 with Google OAuth | Deviate only if specific auth provider requirements exist. |
| Testing | bun test | Never deviate on tooling. Test coverage expectations are flexible per prototype. |
| Decision | Default | When to deviate |
|---|---|---|
| About page | Every UI includes an about page | Never deviate. About page covers motivations, design principles, and how the project was built. |
| Data/format separation | Content data is always separate from templates and components | Never deviate. 11ty: src/_data/ = data, src/_includes/ = format. Next.js: src/content/ = data, src/components/ + src/app/ = format. |
| Design tokens | Shared tooling/theme.css using OKLCH @theme directive | Never deviate. Both stacks import the same theme file for visual consistency. |
Anti-pattern: Never hardcode content in templates or page components. Always extract to data files.
These never change across projects:
import type for type-only imports"use client" only where neededEvery new project must have CLAUDE.md files that encode these decisions for the specific project context. The root CLAUDE.md should contain:
App-level CLAUDE.md files should contain app-specific guidance (ports, env vars, deployment target, basePath handling).
When multiple people are coding on a prototype: