CULTIVA IA GrowBot SaaS

Claude Code — Agente IA de Desarrollo

Guía de referencia interna para el equipo de GrowBot. Configuración completa, flujos de trabajo y buenas prácticas para adoptar Claude Code como copiloto autónomo en terminal.

Next.js 14 · TypeScript
Prisma · PostgreSQL
Stripe Billing
Claude Code v1.x
Nivel Intermedio
01 — Instalación y primeros pasos
⚡ Instalación rápida
Requiere Node 18+ y npm / pnpm globales
# Instalar Claude Code globalmente npm install -g @anthropic-ai/claude-code # Verificar instalación claude --version # Abrir en el repo de GrowBot cd ~/projects/growbot-app claude # Claude lee CLAUDE.md automáticamente y # entra en modo conversacional interactivo.
🚀 Flujo de trabajo diario
Patrón recomendado para el equipo GrowBot
1
Abrir Claude Code en el repo Ejecutar claude desde la raíz del proyecto
2
Describir la tarea con contexto Incluir módulo, comportamiento esperado y tests afectados
3
Revisar los cambios propuestos Claude muestra diffs; aprobar o rechazar por archivo
4
Claude ejecuta typecheck + tests Itera automáticamente hasta que todo pase en verde
5
Crear branch + PR automático Claude crea la rama y abre el PR con descripción generada
02 — Archivos CLAUDE.md para GrowBot
📄 CLAUDE.md — Raíz del proyecto
Copiar en /growbot-app/CLAUDE.md
CLAUDE.md # GrowBot — Marketing Automation SaaS ## Stack - Next.js 14 App Router, TypeScript strict - Prisma ORM + PostgreSQL (dev: localhost:5432/growbot_dev) - Resend para transaccional de email - Stripe Billing (suscripciones + metered usage) - Vitest + Testing Library + Playwright E2E ## Comandos esenciales - pnpm dev — servidor en puerto 3000 - pnpm test:unit — Vitest modo watch - pnpm test:e2e — Playwright headless - pnpm typecheck — tsc --noEmit - pnpm db:migrate — Prisma migrate dev - pnpm db:studio — Prisma Studio UI ## Convenciones de código - Result<T,E> para errores de dominio, NUNCA throw - Zod en todos los endpoints de API (src/schemas/) - Logging estructurado con Pino (NO console.log) - Feature flags via src/lib/flags.ts - Consultas DB exclusivamente por Prisma client ## Antes de modificar código 1. Leer el archivo de test del módulo afectado 2. Ejecutar los tests existentes del módulo 3. Después de cambios: pnpm typecheck && pnpm test:unit ## Reglas absolutas - NO añadir dependencias sin preguntar al usuario - NO modificar schema Prisma sin crear migración - NO cambiar lógica de auth sin aprobación explícita - NUNCA commitear directamente en main → crear branch + PR
📄 CLAUDE.md — Módulo de billing
Copiar en src/billing/CLAUDE.md
src/billing/CLAUDE.md # Módulo Billing — Stripe Stripe es el proveedor de pagos. Todas las llamadas a la API de Stripe pasan por src/lib/stripe/client.ts que envuelve el SDK con reintentos y manejo de errores. ## Webhooks — Idempotencia obligatoria Cada handler de webhook DEBE verificar la clave de idempotencia antes de procesar. Stripe puede reenviar el mismo evento múltiples veces. Los IDs de eventos procesados se guardan en la tabla stripe_events (Prisma model StripeEvent). ## Tarjetas de prueba - 4242 4242 4242 4242 — pago exitoso - 4000 0000 0000 0002 — tarjeta rechazada - 4000 0000 0000 9995 — fondos insuficientes ## Tests de billing Siempre usar pnpm test:unit src/billing y verificar que el test de idempotencia pase.
03 — Comandos de terminal de referencia
⌨️ Referencia de comandos Claude Code
Los más utilizados en el flujo diario de GrowBot
Comando Descripción Contexto
claude Sesión interactiva completa. Claude lee CLAUDE.md, escanea el repo y queda a la espera. dev
claude -p "descripción" Modo one-shot: ejecuta una tarea y cierra la sesión. Ideal para pipelines automatizados. CI/CD
claude --allowedTools "Edit,Read,Bash(pnpm test*)" Restringe Claude a herramientas específicas. Seguro para revisiones de código automáticas. seguro
claude --dangerouslySkipPermissions Salta todos los checks de permiso. Solo en entornos CI aislados. CI/CD
cat error.log | claude -p "analiza este log" Pipe de entrada. Úsalo con logs de Sentry o salidas de build para diagnóstico rápido. dev
claude --mcp-config .mcp.json Carga servidores MCP de un archivo específico de proyecto. MCP
04 — Servidores MCP para GrowBot
🔌 Global: ~/.claude/mcp.json
Servidores disponibles en todos los proyectos del equipo
~/.claude/mcp.json { "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_xxxx" } }, "sentry": { "command": "npx", "args": ["-y", "@sentry/mcp-server"], "env": { "SENTRY_AUTH_TOKEN": "sntryu_xxxx", "SENTRY_ORG": "growbot-sas" } } } }
🗄️ Proyecto: .mcp.json (repo GrowBot)
Servidor de BD local — no commitear con credenciales reales
.mcp.json { "mcpServers": { "database": { "command": "npx", "args": [ "tsx", "mcp-servers/database/index.ts" ], "env": { "DATABASE_URL": "postgresql://localhost:5432/growbot_dev" } } } } # Añadir a .gitignore si tiene credenciales # echo ".mcp.json" >> .gitignore
GitHub MCP
Claude puede leer PRs, issues, comentarios y crear branches directamente desde la conversación.
@modelcontextprotocol/server-github
Sentry MCP
Accede a errores en producción en tiempo real. Claude los analiza y propone fixes con contexto completo.
@sentry/mcp-server
Database MCP
Consultas a PostgreSQL dev para validar esquemas, datos de prueba o debuggear migraciones de Prisma.
custom: mcp-servers/database
05 — Flujo Feature → PR → CI
🔄 Pipeline de desarrollo con Claude Code
Desde la petición hasta el merge — GrowBot SaaS
💬
Descripción
Describe la feature o bug en la sesión de claude
📖
Lectura del código
Claude lee archivos relevantes y tests existentes
✏️
Implementación
Claude edita, crea archivos y mantiene convenciones
🧪
Verificación
typecheck + tests — Claude itera hasta pasar
🌿
Branch + PR
Claude crea rama feature/ y abre PR con descripción
🤖
CI Automático
GitHub Actions ejecuta suite completa en paralelo
Review humano
Un dev revisa el diff y aprueba el merge
# Ejemplo real de sesión para GrowBot $ claude > Implementa la feature de "límite de campañas por plan". > Cada plan de Stripe tiene metadata con campo max_campaigns. > Añade validación en src/campaigns/actions.ts antes de crear > una campaña nueva. Si supera el límite, devolver un Result.err > con código PLAN_LIMIT_EXCEEDED. Añade test unitario para > cada caso (dentro del límite, exactamente en el límite, superado). > Crea una branch feature/campaign-plan-limit y abre PR. # Claude leerá: actions.ts, el test existente, el schema Prisma, # el client de Stripe, luego implementará, pasará los tests y # creará el PR automáticamente via GitHub MCP.
06 — Política de permisos del equipo
🛡️ Configuración de permisos — GrowBot
Equilibrio entre autonomía del agente y control del equipo
Herramientas permitidas sin confirmación
Read — leer cualquier archivo del repo
Edit — modificar archivos src/
Bash(pnpm test*) — ejecutar tests
Bash(pnpm typecheck) — verificar tipos
Bash(pnpm lint) — linting
Bash(git diff, git log, git status)
MCP:github — leer PRs e issues
MCP:sentry — consultar errores
Requieren aprobación explícita
Bash(git push, git commit) — commits
Bash(pnpm db:migrate) — migraciones
Bash(rm, rmdir) — eliminar archivos
Edit src/auth/ — módulo de autenticación
Edit .env* — variables de entorno
MCP:database escritura — solo lectura
npm install — añadir dependencias
Webhooks externos — nunca en dev
# .claude/settings.json — Permisos del proyecto GrowBot { "allowedTools": [ "Read", "Edit", "Bash(pnpm test*)", "Bash(pnpm typecheck)", "Bash(pnpm lint)", "Bash(git diff)", "Bash(git log)", "Bash(git status)", "mcp__github__*", "mcp__sentry__*" ], "disallowedTools": [ "Bash(rm*)", "Bash(git push*)", "Bash(git commit*)", "Bash(npm install*)" ] }
07 — Integración CI/CD (GitHub Actions)
⚙️ Revisión automática de PRs con Claude Code
Ejecuta en cada Pull Request para revisión de código, tipos y tests
.github/workflows/claude-review.yml name: Claude Code Review on: pull_request: types: [opened, synchronize] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: { fetch-depth: 0 } - name: Setup Node uses: actions/setup-node@v4 with: { node-version: "20" } - name: Install dependencies run: pnpm install --frozen-lockfile - name: Claude Code — Revisión automática de PR env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | npx @anthropic-ai/claude-code \ --dangerouslySkipPermissions \ -p "Revisa los cambios del PR (git diff origin/main...HEAD). Verifica: tipos (pnpm typecheck), tests (pnpm test:unit), convenciones de CLAUDE.md (Result pattern, Zod, sin console.log). Comenta en el PR si hay issues. Si todo está bien, aprueba."