promover-aprendizajes-claude-memory

/si:promote — Graduar aprendizajes a reglas permanentes

Transforma patrones repetidos en MEMORY.md en instrucciones ejecutadas en cada sesión.

Cliente
NutriFlow SaaS
Next.js 14 · TypeScript · Prisma · pnpm
10
Entradas en MEMORY.md
6
Patrones candidatos
5
Reglas promovidas
7
Entradas liberadas
MEMORY.md — Entradas detectadas
Tabla de decisiones — Qué promover y dónde
Patrón Veces Target Motivo Decisión
pnpm sobre npm 4 CLAUDE.md Aplica a todo el proyecto ● Promover
Zod en rutas API 3 .claude/rules/api.md Específico de /api/** ● Promover
ApiError class 2 .claude/rules/api.md Específico de /api/** ● Promover
prisma migrate dev vs deploy 2 CLAUDE.md Convención de entorno global ● Promover
No usar `any` en TypeScript 2 CLAUDE.md Convención de todo el codebase ● Promover
Feature branches / no push main 1 skip Branch protection ya lo fuerza; 1 sola vez ○ Omitir
Flujo de promoción — Antes y después
1
pnpm como gestor de paquetes
4 entradas en MEMORY.md · scope: proyecto completo
CLAUDE.md
ANTES — MEMORY.md (descriptivo)
[2026-03-14] Tried npm install in root — failed. Project uses pnpm workspaces. Lock file: pnpm-lock.yaml. Must use pnpm install for dependencies. [2026-03-22] npm install failed again during dependency add. Confirmed: only pnpm works here. [2026-04-01] Used npm run dev — script not found. Correct: pnpm dev (from root runs all workspaces).
DESPUÉS — CLAUDE.md (prescriptivo)
## Build & Dependencies - Package manager: pnpm (NOT npm). Install: `pnpm install` Dev server: `pnpm dev` (desde root) Add dep: `pnpm add <pkg>` # pnpm-lock.yaml — no tocar npm.lock
2
Zod validation + ApiError en rutas API
5 entradas combinadas · scope: src/app/api/**
.claude/rules/api.md
ANTES — MEMORY.md (descriptivo)
[2026-04-18] Added API route without input validation — reviewer flagged it. All /api/* handlers require Zod schema validation before touching DB. [2026-05-15] Used raw Error() in API handler — reviewer said use ApiError class always for consistency. Import: @/lib/errors.
DESPUÉS — .claude/rules/api.md
--- paths: - "src/app/api/**/*.ts" - "tests/api/**/*" --- # API Development Rules - Valida SIEMPRE con Zod antes de tocar DB - Errores: `ApiError` (NEVER raw Error()) import { ApiError } from '@/lib/errors' - Incluye JSDoc OpenAPI en cada handler
3
prisma migrate dev vs deploy por entorno
2 entradas en MEMORY.md · scope: proyecto completo
CLAUDE.md
ANTES — MEMORY.md (descriptivo)
[2026-05-30] Ran `prisma migrate deploy` in local env instead of `prisma migrate dev` — broke seed data. Local must use migrate dev. Production uses migrate deploy.
DESPUÉS — CLAUDE.md (prescriptivo)
## Database / Prisma - Local: `pnpm prisma migrate dev` - Prod: `pnpm prisma migrate deploy` - NUNCA usar `migrate deploy` en local
Archivos generados / actualizados
CLAUDE.md
.claude/rules/api.md
# NutriFlow — CLAUDE.md # Reglas permanentes del proyecto (generado con /si:promote) # Última actualización: 2026-06-12 ## Build & Dependencies - Package manager: **pnpm** (NOT npm). Siempre `pnpm install`. - Dev server desde root: `pnpm dev` (arranca todos los workspaces). - Añadir dependencia: `pnpm add <pkg>` / `pnpm add -D <pkg>`. - Lock file: `pnpm-lock.yaml` — no crear ni comprometer `package-lock.json`. ## TypeScript - TypeScript strict: NUNCA usar `any`. Usar `unknown` o tipos explícitos. - Ante dudas de tipo, extraer interfaz; no silenciar con `as any`. ## Database / Prisma - Local (dev): `pnpm prisma migrate dev` — genera y aplica migración + regenera cliente. - Producción: `pnpm prisma migrate deploy` — solo aplica migraciones existentes. - NUNCA ejecutar `migrate deploy` en entorno local. ## Git - Trabajar en ramas de feature: `feat/<nombre>`. PR a main, nunca push directo.
Limpieza de MEMORY.md — Entradas eliminadas tras promoción
[2026-03-14] Tried npm install in root — failed. Project uses pnpm workspaces...
[2026-03-22] npm install failed again during dependency add. Confirmed: only pnpm...
[2026-04-01] Used npm run dev — script not found. Correct: pnpm dev...
[2026-04-18] Added API route without input validation — reviewer flagged it...
[2026-04-25] Forgot to validate in /api/plans/create. Must always validate with Zod...
[2026-05-10] Used ApiError from wrong import path. Correct: import { ApiError }...
[2026-05-15] Used raw Error() in API handler — reviewer said use ApiError always...
[2026-05-30] Ran migration with prisma migrate deploy instead of migrate dev in local...
[2026-06-05] Used `any` type in TypeScript — linter blocked CI...
✓ Promoción completada — NutriFlow SaaS
Reglas escritas en CLAUDE.md
7 reglas · 4 secciones
Archivo .claude/rules/api.md
3 reglas · paths scoped
MEMORY.md liberada
9 entradas eliminadas · 1 conservada