Claude Code — /si:remember · guardar-memoria-agente v1.0.0
PREMIUM
⚠️

MEMORY.md estaba en 142/200 líneas al inicio de la sesión. Tras añadir 5 entradas alcanza 147/200. Considera ejecutar /si:review para consolidar entradas antiguas.

Entradas procesadas 5

1
Debugging Webhook Stripe — timestamp silencioso
1
Parsear conocimiento
"El webhook de Stripe falla silenciosamente si el header X-Signature-Timestamp tiene más de 5 minutos."
Hecho: Validar timestamp del header antes de procesar el evento
Por qué importa: Fallo silencioso = difícil de debuggear
Scope: Específico del proyecto
2
Verificar duplicados
$ grep -ni "stripe\|webhook\|signature" MEMORY.md
(sin resultados)
✓ Sin duplicados — entrada nueva
3
Escribir en MEMORY.md
--- MEMORY.md (extracto final)
...
+ - Stripe webhook: validar que X-Signature-Timestamp sea < 5 min antes de procesar; falla silenciosamente si caduca
4
Sugerencia de promoción

Insight de debugging específico — no es una regla imperativa. Sin sugerencia de promoción.

5
Confirmación
Guardado en auto-memoria
"Stripe webhook: validar que X-Signature-Timestamp sea < 5 min antes de procesar; falla silenciosamente si caduca"
MEMORY.md: 143/200 líneas · Claude lo verá en cada sesión de este proyecto.
2
Convención Formato de respuesta API
1
Parsear conocimiento
"Todos los endpoints de la API usan respuestas envueltas {data, meta, error} — NO devolver objetos planos."
Hecho: Estructura {data, meta, error} obligatoria en todas las respuestas
Tono: Imperativo ("NO devolver") → candidato a CLAUDE.md
2
Verificar duplicados
$ grep -ni "api\|response\|respuesta\|wrapper" MEMORY.md
(sin resultados relevantes — hay menciones a la URL de API pero no al formato)
✓ Sin duplicados
3
Escribir en MEMORY.md
+ - API responses: siempre envolver en {data, meta, error} — nunca devolver objetos planos
4
Sugerencia de promoción
💡 Esta entrada parece una regla imperativa ("nunca devolver objetos planos").

Las reglas tienen prioridad mayor en CLAUDE.md. ¿Quieres ejecutar /si:promote para moverla allí?

5
Confirmación
Guardado en auto-memoria
"API responses: siempre envolver en {data, meta, error} — nunca devolver objetos planos"
MEMORY.md: 144/200 líneas
3
Preferencia Tamaño máximo de PRs
1
Parsear conocimiento
"El cliente prefiere commits pequeños y atómicos; rechaza PRs con más de 200 líneas cambiadas."
Hecho: Límite de 200 líneas por PR — preferencia del cliente
Scope: Específico del proyecto / cliente
2
Verificar duplicados
$ grep -ni "pr\|commit\|lines\|líneas" MEMORY.md
(sin resultados)
✓ Sin duplicados
3
Escribir en MEMORY.md
+ - Cliente exige PRs atómicos de <200 líneas; rechaza PRs grandes aunque estén bien estructurados
4
Sugerencia de promoción
💡 Restricción del cliente que aplica a todos los desarrollos futuros.

Considera /si:promote para que Claude aplique este límite automáticamente al generar código o sugerir PRs.

5
Confirmación
Guardado en auto-memoria
"Cliente exige PRs atómicos de <200 líneas; rechaza PRs grandes aunque estén bien estructurados"
MEMORY.md: 145/200 líneas
4
Gotcha herramienta Jest --runInBand race conditions
1
Parsear conocimiento
"Los tests de integración necesitan `--runInBand` o dan race conditions en la DB de test."
Hecho: Comando concreto: jest --runInBand obligatorio para tests de integración
Por qué: Race conditions con la DB de test en ejecución paralela
2
Verificar duplicados
$ grep -ni "jest\|test\|runInBand" MEMORY.md
(sin resultados)
✓ Sin duplicados
3
Escribir en MEMORY.md
+ - Tests de integración: usar `jest --runInBand` obligatoriamente; sin él hay race conditions en la DB de test
4
Sugerencia de promoción

Gotcha técnico con valor concreto. Apto para MEMORY.md; promoción opcional si el equipo recuerda este patrón con frecuencia.

5
Confirmación
Guardado en auto-memoria
"Tests de integración: usar `jest --runInBand` obligatoriamente; sin él hay race conditions en la DB de test"
MEMORY.md: 146/200 líneas
5
Arquitectura Resend vs SendGrid — decisión tomada
1
Parsear conocimiento
"Elegimos Resend sobre SendGrid para transaccional: mejor DX, 3000 emails/mes gratis, SDK tipo-seguro."
Hecho: Email transaccional = Resend (no SendGrid, no Mailgun, no SMTP propio)
Motivos: DX, tier gratuito, type-safety
2
Verificar duplicados
$ grep -ni "resend\|sendgrid\|email\|smtp" MEMORY.md
(sin resultados)
✓ Sin duplicados
3
Escribir en MEMORY.md
+ - Email transaccional: Resend (no SendGrid); DX superior, 3k emails/mes gratis, SDK type-safe
4
Sugerencia de promoción
💡 Decisión de arquitectura definitiva — debería estar en CLAUDE.md para evitar que Claude sugiera SendGrid en futuras conversaciones.

Ejecuta /si:promote para elevarla a regla permanente.

5
Confirmación
Guardado en auto-memoria
"Email transaccional: Resend (no SendGrid); DX superior, 3k emails/mes gratis, SDK type-safe"
MEMORY.md: 147/200 líneas
📄 MEMORY.md — diff de la sesión
+5 −0
... líneas 139–142 (contexto existente)
- API base: https://api.cultiva-saas.com/v2
- Auth: Bearer token en header, renovar cada 24h con /auth/refresh
- Base de datos: PostgreSQL 15 en Supabase, schema `public`
... nuevas entradas añadidas al final
+- Stripe webhook: validar que X-Signature-Timestamp sea < 5 min antes de procesar; falla silenciosamente si caduca
+- API responses: siempre envolver en {data, meta, error} — nunca devolver objetos planos
+- Cliente exige PRs atómicos de <200 líneas; rechaza PRs grandes aunque estén bien estructurados
+- Tests de integración: usar `jest --runInBand` obligatoriamente; sin él hay race conditions en la DB de test
+- Email transaccional: Resend (no SendGrid); DX superior, 3k emails/mes gratis, SDK type-safe
5
Entradas guardadas
0
Duplicados detectados
3
Candidatas a CLAUDE.md
147
Líneas MEMORY.md