revision-auto-memoria-claude · CULTIVA IA

📊 Auto-Memory Review

Proyecto: Flowmatic SaaS — Sprint 8, fase pre-lanzamiento
Generado: 2026-06-12 11:42 UTC
Modo: Revisión completa
Auditor: Claude Code (Sonnet 4.6)
MEMORY.md
178 / 200
líneas (89%)
Topic Files
2
debugging.md · patterns.md
CLAUDE.md
89
líneas de reglas
.claude/rules/
3
archivos de reglas
Estado General
⚠ CRÍTICO
Acción inmediata requerida
Uso de memoria
89% — ALERTA ROJA
178 / 200 líneas
5
Candidatos a Promover
12
Entradas Obsoletas
4
Grupos a Consolidar
3
Conflictos Detectados
🚨 ALERTA CRÍTICA DE SEGURIDAD — Credenciales en Memoria
Se han detectado credenciales reales en la sección "Acceso y credenciales" de MEMORY.md. Estas entradas deben eliminarse INMEDIATAMENTE — las claves API en memoria de Claude suponen un riesgo de exposición si el agente sincroniza con servicios externos.
⚠ L.134: Supabase URL: https://xyzabc.supabase.co → usar variable de entorno
⚠ L.135: Supabase anon key: eyJhbGciOiJI... (JWT parcial) → usar .env.local
⚠ L.136: Stripe test key: sk_test_flowmatic_... → eliminar completamente
↳ Acción: Eliminar sección completa "Acceso y credenciales" de MEMORY.md ahora.
🎯
Candidatos a Promoción → CLAUDE.md
5 encontrados
01
Usar async/await siempre, nunca .then()/.catch() chains
Aparece en 3 secciones distintas de MEMORY.md y patterns.md. Ya referenciado implícitamente en CLAUDE.md pero sin regla explícita. Patrón con alto impacto en consistencia del código generado. visto 3× aplica globalmente accionable
CLAUDE.md → sección "Convenciones de código"
02
Archivos de +200 líneas deben dividirse en módulos
Citado en 2 sesiones diferentes (patterns.md + MEMORY.md L.165). Regla de arquitectura genérica aplicable a cualquier proyecto Next.js de este equipo. No existe en CLAUDE.md. visto 2× aplica globalmente accionable
CLAUDE.md → sección "Convenciones de archivos"
03
Error handling via Result<T, E> pattern de lib/result.ts
Patrón estable desde sprint 4. Aparece en debugging.md y MEMORY.md. El equipo lo aplica consistentemente — no lo tiene documentado en CLAUDE.md como regla obligatoria. visto 2× accionable
CLAUDE.md → sección "Patrones de código" (nueva sección)
04
pnpm test antes de cada PR — cobertura 80% utils / 60% componentes
Ya está en CLAUDE.md pero sin el comando explícito. Consolidar con la regla de testing existente para evitar entrada redundante en MEMORY.md. visto 2× accionable
CLAUDE.md → fusionar con sección "Testing" existente
05
WorkflowEngine en lib/workflow/engine.ts — no refactorizar sin tests
Marcado implícitamente como "archivo crítico" en 2 sesiones. Merecería una regla scoped específica al directorio lib/workflow/ para proteger regresiones. visto 2× accionable
.claude/rules/workflow-engine.md (nueva regla scoped)
🗑️
Entradas Obsoletas — Candidatas a Eliminar
12 entradas
L.12
Sistema de auth: JWT con refresh tokens (auth/jwt.ts)
Contradicción directa: auth migrada a next-auth sessions en sprint 5. El archivo auth/jwt.ts ya no existe. Causa confusión activa en el modelo.
L.13–14
Tokens JWT expiran 15 min, refresh 7 días. Guardar en localStorage
Completamente obsoleto — tokens ya no existen, localStorage prohibido explícitamente en CLAUDE.md.
L.17
IMPORTANTE: migrar a next-auth sessions en próximo sprint
Tarea ya completada hace 3 sprints. Nota de TO-DO caducada que ocupa líneas de memoria sin aportar valor.
L.28
Usar Prisma para el ORM (fue la decisión inicial)
Prisma eliminado en sprint 3. Drizzle ya documentado como "decisión definitiva" en la misma sección. Esta entrada genera contradicción interna dentro del propio MEMORY.md.
L.43–44
Usar lucide-react para iconos (confirmado definitivamente) [duplicado]
Duplicado exacto de L.41. Dos entradas idénticas sobre el mismo tema en la misma sección.
L.78
El hook useDebouncedCallback() tiene memory leak — usar hooks.v2.ts
Bug marcado como CORREGIDO en sprint 7 (L.80). Entrada obsoleta que podría llevar a usar un archivo incorrecto. Además, utils/hooks.v2.ts probablemente ya fue eliminado.
🔄
Oportunidades de Consolidación
4 grupos
📦 Grupo 1 — Autenticación: 7 entradas → 2 entradas
L.12 JWT (obsoleto)
L.13–14 Tokens/localStorage (obsoleto)
L.15 middleware.ts
L.17 TODO migrar (obsoleto)
L.18–21 next-auth (vigente)
L.22 hook deprecado (vigente)
→ Fusionar en:
"next-auth sessions (sprint 5). getServerSession() en server, useSession() en client. Cookies httpOnly. useAuth() deprecado."
📦 Grupo 2 — ORM: 3 entradas → 1 entrada
L.26 Drizzle ORM obligatorio
L.28 Prisma eliminado (obsoleto)
L.29–30 Schema/migraciones (vigente)
→ Fusionar en:
"Drizzle ORM (decisión definitiva sprint 3). Schema: db/schema.ts. Migraciones: pnpm db:migrate."
📦 Grupo 3 — Iconos/Lucide: 2 entradas → 1 entrada
L.41 DnD con @dnd-kit/core
L.43 iconos lucide-react
L.44 iconos lucide-react (duplicado exacto)
→ Eliminar duplicado L.44, mantener L.43
"Iconos: lucide-react. DnD: @dnd-kit/core (no react-beautiful-dnd)."
📦 Grupo 4 — Bugs/Workarounds resueltos: 2 entradas → 0 entradas
L.78 useDebouncedCallback memory leak (resuelto sprint 7)
L.80 "CORREGIDO en sprint 7" (nota de cierre)
→ Eliminar ambas (bug cerrado, no aportan valor)
Eliminar completamente. Si el bug reaparece, auto-memoria lo re-aprenderá.
⚠️
Conflictos: MEMORY.md vs CLAUDE.md
3 conflictos
MEMORY.md L.13
"Guardar JWT en localStorage (el usuario pidió esto explícitamente)"
CLAUDE.md L.12
"NO usar localStorage para tokens — usar cookies httpOnly"
Resolución: Eliminar entrada de MEMORY.md — CLAUDE.md refleja la decisión definitiva del sprint 5.
MEMORY.md L.28
"Usar Prisma para el ORM (fue la decisión inicial del proyecto)"
CLAUDE.md L.24
"Drizzle ORM obligatorio (Prisma eliminado en sprint 3)"
Resolución: Eliminar entrada de MEMORY.md — conflicto activo que causa sugerencias incorrectas.
MEMORY.md L.78
"usar la versión corregida en utils/hooks.v2.ts"
MEMORY.md L.80
"CORREGIDO en sprint 7: usar hooks.ts normal"
Resolución: Conflicto interno en MEMORY.md — eliminar ambas líneas. Archivo hooks.v2.ts probablemente eliminado.
💡
Recomendaciones Accionables
8 acciones
P1 · YA
Eliminar sección completa "Acceso y credenciales" de MEMORY.md — contiene 3 credenciales reales (Supabase URL, anon key, Stripe test key). Riesgo de seguridad activo.
$ /memory — buscar y borrar sección "Acceso y credenciales"
P1 · YA
Limpiar las 3 entradas en conflicto de autenticación (JWT/localStorage). Están causando que Claude sugiera patrones de autenticación obsoletos y potencialmente inseguros en nuevas implementaciones.
P2 · HOY
Promover los 5 candidatos a CLAUDE.md — especialmente los patrones de async/await y Result<T,E> que ya son estándares del proyecto. Esto liberará ~15 líneas de MEMORY.md.
P2 · HOY
Ejecutar consolidación de los 4 grupos identificados. Reducción estimada: -22 líneas (de 178 a ~156), devolviendo margen holgado antes del límite de 200.
P2 · SEMANA
Crear .claude/rules/workflow-engine.md con la regla de protección del WorkflowEngine. Las reglas scoped se aplican solo cuando se editan archivos del directorio correspondiente, reduciendo ruido en contextos irrelevantes.
$ touch .claude/rules/workflow-engine.md
P3 · SPRINT
Revisar debugging.md y patterns.md — con los cambios de sprint 5-8 probablemente tienen entradas obsoletas similares. Ejecutar /si:review específicamente sobre esos archivos tras esta limpieza.
P3 · SPRINT
Establecer revisión semanal de memoria durante sprints activos. Con el ritmo de cambios de Flowmatic (3 migraciones mayores en 4 meses), la memoria se vuelve inconsistente rápidamente. Añadir /si:review --quick al inicio de cada sprint.
P3 · SPRINT
Verificar si utils/hooks.v2.ts fue eliminado del repositorio. Si sigue existiendo como archivo huérfano, borrarlo para evitar confusión futura.
$ find . -name "hooks.v2.ts" -not -path "*/node_modules/*"