¿Qué hace CM - Sistema de Memoria CASS?
Memoria procesal para agentes de IA de codificación. Transforma sesiones dispersas en memoria persistente y entre agentes. Utiliza una arquitectura cognitiva de tres capas que refleja el desarrollo de la experiencia humana.
Por Qué Existe
Los agentes de IA de codificación acumulan conocimiento valioso, pero este:
- Está atrapado en sesiones - El contexto se pierde cuando la sesión termina
- Es específico del agente - Claude no sabe lo que Cursor aprendió
- No está estructurado - Los registros en bruto no son guías accionables
- Está sujeto a colapso - La sumarización ingenua pierde detalles críticos
Has resuelto errores de autenticación tres veces este mes en diferentes agentes. Cada vez empezaste desde cero.
CM resuelve esto con aprendizaje entre agentes: un patrón descubierto en Cursor está inmediatamente disponible para Claude Code.
Arquitectura Cognitiva de Tres Capas
┌─────────────────────────────────────────────────────────────────────┐
│ MEMORIA EPISÓDICA (cass) │
│ Registros de sesiones en bruto de todos los agentes — la "verdad │
│ fundamental" │
│ Claude Code │ Codex │ Cursor │ Aider │ PI │ Gemini │ ChatGPT │ ...│
└───────────────────────────┬─────────────────────────────────────────┘
│ búsqueda cass
▼
┌─────────────────────────────────────────────────────────────────────┐
│ MEMORIA DE TRABAJO (Diario) │
│ Resúmenes estructurados de sesiones: logros, decisiones, etc. │
└───────────────────────────┬─────────────────────────────────────────┘
│ reflexión + curación (automatizada)
▼
┌─────────────────────────────────────────────────────────────────────┐
│ MEMORIA PROCESAL (Playbook) │
│ Reglas destiladas con seguimiento de confianza y decaimiento │
└─────────────────────────────────────────────────────────────────────┘
Las sesiones de cada agente alimentan la memoria compartida. Un patrón descubierto en Cursor automáticamente ayuda a Claude Code en la siguiente sesión.
El Único Comando Que Necesitas
cm context "<tu tarea>" --json
Ejecuta esto antes de comenzar cualquier tarea no trivial. Devuelve:
- relevantBullets - Reglas del playbook puntuadas por relevancia a la tarea
- antiPatterns - Cosas que han causado problemas
- historySnippets - Sesiones pasadas (tuyas y de otros agentes)
- suggestedCassQueries - Búsquedas de investigación más profundas
Filtrar Historial por Origen
historySnippets[].origin.kind es "local" o "remote". Los aciertos remotos incluyen origin.host:
{
"historySnippets": [
{
"source_path": "~/.claude/sessions/session-001.jsonl",
"origin": { "kind": "local" }
},
{
"source_path": "/home/user/.codex/sessions/session.jsonl",
"origin": { "kind": "remote", "host": "workstation" }
}
]
}
Sistema de Decaimiento de Confianza
Las reglas no son inmortales. La confianza decae sin revalidación:
| Mecanismo | Efecto |
|---|---|
| Vida media de 90 días | La confianza se reduce a la mitad cada 90 días sin retroalimentación |
| Multiplicador de daño 4x | Un error cuenta 4× más que un acierto |
| Progresión de madurez | candidato → establecido → probado |
Visualización de Decaimiento de Puntuación
Puntuación inicial: 10.0 (10 marcas útiles hoy)
Después de 90 días (vida media): 5.0
Después de 180 días: 2.5
Después de 270 días: 1.25
Después de 365 días: 0.78
Fórmula de Puntuación Efectiva
puntuacionEfectiva = utilDecaido - (4 × daninoDecaido)
// Donde factorDecaimiento = 0.5 ^ (diasDesdeRetroalimentacion / 90)
Máquina de Estados de Madurez
┌──────────┐ ┌─────────────┐ ┌────────┐
│ candidato│──────▶│ establecido │───▶│ probado│
└──────────┘ └─────────────┘ └────────┘
│ │ │
│ │ (dañino >25%) │
│ ▼ │
│ ┌─────────────┐ │
└────────────▶│ obsoleto │◀─────────┘
└─────────────┘
Reglas de Transición:
| Transición | Criterio |
|---|---|
candidato → establecido | 3+ útiles, ratio dañino <25% |
establecido → probado | 10+ útiles, ratio dañino <10% |
cualquiera → obsoleto | Ratio dañino >25% O desaprobación explícita |
Aprendizaje de Antipatrones
Las reglas malas no solo se eliminan. Se convierten en advertencias:
"Almacenar tokens de autenticación en caché para rendimiento"
↓ (3 marcas dañinas)
"PELIGRO: No almacenar tokens de autenticación en caché sin validación de vencimiento"
Cuando una regla se marca como dañina múltiples veces (>50% ratio dañino con 3+ marcas), se invierte automáticamente en un antipatrón.
Pipeline ACE (Cómo Se Crean las Reglas)
Generador → Reflexivo → Validador → Curador
| Etapa | Rol | ¿LLM? |
|---|---|---|
| Generador | Hidratación de contexto previa a la tarea (cm context) | No |
| Reflexivo | Extraer patrones de sesiones (cm reflect) | Sí |
| Validador | Puerta de evidencia contra historial cass | Sí |
| Curador | Fusión delta determinista | No |
Crítico: El Curador NO tiene LLM para evitar colapso de contexto por deriva iterativa. Los LLM proponen patrones; la lógica determinista los gestiona.
Validación Científica
Antes de que una regla se una a tu playbook, se valida contra el historial cass:
Regla propuesta: "Siempre verificar vencimiento de token antes de depurar autenticación"
↓
Puerta de evidencia: Buscar en cass sesiones donde esto aplicó
↓
Resultado: 5 sesiones encontradas, 4 resultados exitosos → ACEPTAR
Las reglas sin evidencia histórica se marcan como candidatas hasta que se prueben.
Referencia de Comandos
Recuperación de Contexto (Flujo de Trabajo Principal)
# EL COMANDO PRINCIPAL - ejecutar antes de tareas no triviales
cm context "implementar autenticación de usuario" --json
# Limitar resultados para presupuesto de tokens
cm context "corregir error" --json --limit 5 --no-history
# Con filtro de espacio de trabajo
cm context "refactorizar" --json --workspace /ruta/al/proyecto
# Explicación autodocumentada
cm quickstart --json
# Salud del sistema
cm doctor --json
cm doctor --fix # Corregir problemas automáticamente
# Encontrar reglas similares
cm similar "mejores prácticas de manejo de errores"
Gestión del Playbook
cm playbook list # Todas las reglas
cm playbook get b-8f3a2c # Detalles de regla
cm playbook add "Siempre ejecutar pruebas primero" # Agregar regla
cm playbook add --file rules.json # Agregar por lote desde archivo
cm playbook add --file rules.json --session /ruta/session.jsonl # Rastrear origen
cm playbook remove b-xyz --reason "Desactualizado" # Eliminar
cm playbook export > backup.yaml # Exportar
cm playbook import shared.yaml # Importar
cm playbook bootstrap react # Aplicar iniciador a existente
cm top 10 # Reglas más efectivas
cm stale --days 60 # Reglas sin retroalimentación reciente
cm why b-8f3a2c # Procedencia de la regla
cm stats --json # Métricas de salud del playbook
Aprendizaje y Retroalimentación
# Retroalimentación manual
cm mark b-8f3a2c --helpful
cm mark b-xyz789 --harmful --reason "Causó regresión"
cm undo b-xyz789 # Revertir retroalimentación
# Resultados de sesión (posicional: estado, reglas)
cm outcome success b-8f3a2c,b-def456
cm outcome failure b-x7k9p1 --summary "El enfoque de autenticación falló"
cm outcome-apply # Aplicar al playbook
# Reflexión (generalmente automatizada)
cm reflect --days 7 --json
cm reflect --session /ruta/a/session.jsonl # Sesión única
cm reflect --workspace /ruta/al/proyecto # Específico del proyecto
# Validación
cm validate "Siempre verificar nulo antes de desreferenciar"
# Auditar sesiones contra reglas
cm audit --days 30
# Obsoletar permanentemente
cm forget b-xyz789 --reason "Reemplazado por mejor patrón"
Incorporación (Nativo del Agente)
Construcción de playbook de costo cero usando tu agente existente:
cm onboard status # Verificar progreso
cm onboard gaps # Brechas de categoría
cm onboard sample --fill-gaps # Sesiones priorizadas
cm onboard sample --agent claude --days 14 # Filtrar por agente/tiempo
cm onboard sample --workspace /ruta/proyecto # Filtrar por espacio de trabajo
cm onboard sample --include-processed # Reanalizar sesiones
cm onboard read /ruta/session.jsonl --template # Contexto enriquecido
cm onboard mark-done /ruta/session.jsonl # Marcar procesado
cm onboard reset # Empezar de nuevo
Trauma Guard (Sistema de Seguridad)
cm trauma list # Patrones activos
cm trauma add "DROP TABLE" --description "Eliminación masiva" --severity critical
cm trauma heal t-abc --reason "Migración intencional"
cm trauma remove t-abc
cm trauma scan --days 30 # Escanear traumas
cm trauma import shared-traumas.yaml
cm guard --install # Hook de Claude Code
cm guard --git # Hook pre-commit de Git
cm guard --install --git # Ambos
cm guard --status # Verificar instalación
Comandos del Sistema
cm init # Inicializar
cm init --starter typescript # Con plantilla
cm init --force # Reinicializar (crea respaldo)
cm starters # Listar plantillas
cm serve --port 3001 # Servidor MCP
cm usage # Estadísticas de costo LLM
cm privacy status # Configuración de privacidad
cm privacy enable # Habilitar enriquecimiento entre agentes
cm privacy disable # Deshabilitar enriquecimiento
cm project --format agents.md # Exportar para AGENTS.md
Playbooks Iniciadores
Empezar con un playbook vacío es abrumador. Los iniciadores proporcionan mejores prácticas curadas:
cm starters # Listar disponibles
cm init --starter typescript # Inicializar con iniciador
cm playbook bootstrap react # Aplicar a playbook existente
Iniciadores Incorporados
| Iniciador | Enfoque | Reglas |
|---|---|---|
| general | Mejores prácticas universales | 5 |
| typescript | Patrones de TypeScript/Node.js | 4 |
| react | Desarrollo con React/Next.js | 4 |
| python | Python/FastAPI/Django | 4 |
| node | Servicios con Node.js/Express | 4 |
| rust | Patrones de servicios en Rust | 4 |
Iniciadores Personalizados
Crea archivos YAML en ~/.cass-memory/starters/:
# ~/.cass-memory/starters/django.yaml
name: django
description: Mejores prácticas del framework web Django
bullets:
- content: "Siempre usa el ORM de Django para operaciones de base de datos"
category: base_de_datos
maturity: establecido
tags: [django, orm]
Retroalimentación En Línea (Durante el Trabajo)
Deja retroalimentación en comentarios de código. Se analiza durante la reflexión:
// [cass: helpful b-8f3a2c] - esta regla me salvó de una madriguera
// [cass: harmful b-x7k9p1] - este consejo fue incorrecto para nuestro caso de uso
Protocolo del Agente
1. INICIO: cm context "<tarea>" --json
2. TRABAJO: Hacer referencia a los ID de regla al seguirlas (ej., "Siguiendo b-8f3a2c...")
3. RETROAL.: Dejar comentarios en línea cuando las reglas ayudan/perjudican
4. FIN: Solo termina. El aprendizaje ocurre automáticamente.
NO necesitas:
- Ejecutar
cm reflect(la automatización lo maneja) - Ejecutar
cm markmanualmente (usa comentarios en línea) - Agregar reglas manualmente al playbook
Categorías de Análisis de Brechas
| Categoría | Palabras Clave |
|---|---|
depuracion | error, corregir, error, rastreo, pila |
pruebas | prueba, simulacro, afirmar, esperar, jest |
arquitectura | diseño, patrón, módulo, abstracción |
flujo_trabajo | tarea, CI/CD, despliegue |
documentacion | comentario, README, API doc |
integracion | API, HTTP, JSON, endpoint |
colaboracion | revisión, PR, equipo |
git | rama, fusión, commit |
seguridad | auth, token, cifrar, permiso |
rendimiento | optimizar, caché, perfil |
Umbrales de Estado de Categoría:
| Estado | Conteo de Reglas | Prioridad |
|---|---|---|
critico | 0 reglas | Alta |
subrepresentado | 1-2 reglas | Media |
adecuado | 3-10 reglas | Baja |
bien_cubierto | 11+ reglas | Ninguna |
Trauma Guard: Sistema de Seguridad
El principio de la "estufa caliente": aprende de incidentes pasados y previene su recurrencia.
Cómo Funciona
Historial de Sesiones Registro de Traumas Guardia en Tiempo de Ejecución
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ rm -rf /* (ups) │ ──────▶ │ Patrón: rm -rf │ ───────────▶│ BLOQUEADO: Este│
│ "lo siento, │ scan │ Gravedad: FATAL │ hook │ comando │
│ cometí un │ │ Sesión: abc123 │ │ coincide con │
│ error..." │ └─────────────────┘ │ un patrón de │
└─────────────────┘ │ trauma │
└─────────────────┘
Patrones de Perdición Incorporados (20+)
| Categoría | Ejemplos |
|---|---|
| Sistema de archivos | rm -rf /, rm -rf ~, eliminaciones recursivas |
| Base de datos | DROP DATABASE, TRUNCATE, DELETE FROM sin WHERE |
| Git | git push --force a main/master, git reset --hard |
| Infraestructura | terraform destroy -auto-approve, kubectl delete namespace |
| Nube | aws s3 rm --recursive, CloudFormation destructivo |
Almacenamiento de Patrones
| Ámbito | Ubicación | Propósito |
|---|---|---|
| Global | ~/.cass-memory/traumas.jsonl | Patrones personales |
| Proyecto | .cass/traumas.jsonl | Confirmar en repositorio para el equipo |
Ciclo de Vida del Patrón
- Activo: Bloquea comandos coincidentes
- Curado: Evadido temporalmente (con razón y marca de tiempo)
- Eliminado: Removido (puede volver a agregarse)
Servidor MCP
Ejecutar como servidor MCP para integración con agentes:
# Solo local (recomendado)
cm serve --port 3001
# Con token de autenticación (para no loopback)
MCP_HTTP_TOKEN="<aleatorio>" cm serve --host 0.0.0.0 --port 3001
Herramientas Expuestas
| Herramienta | Descripción |
|---|---|
context | Recuperar contexto relevante para una tarea |
reflect | Extraer patrones del historial de sesiones |
validate | Validar una regla propuesta contra evidencia |
add_rule | Agregar manualmente una regla al playbook |
mark_helpful | Marcar una regla como útil |
mark_harmful | Marcar una regla como dañina con razón |
trauma_list | Listar patrones de trauma activos |
trauma_add | Agregar un nuevo patrón de trauma |
trauma_heal | Curar un patrón de trauma (puentear temporalmente) |
stats | Obtener métricas de salud del playbook |
starters | Listar playbooks iniciadores disponibles |
Reglas de Oro / Notas de Diseño
- Siempre ejecutar
cm contextprimero. La mayoría de los errores provienen de empezar sin contexto. - Nunca ejecutar
cm reflectmanualmente. Se ejecuta en intervalos. Si necesitas resultados inmediatos, usacm reflect --days 1. - Usar comentarios en línea sobre comandos manuales. Los comentarios son automáticos, persistentes y rastreables.
- No editar el playbook directamente. Editar el playbook es peligroso; usa comandos o comentarios en línea.
- El curador es determinista. El curador solo fusiona; no tiene LLM.
- Comenzar con un iniciador. La mayoría de los usuarios necesitan iniciadores para empezar.
- Agregar trauma temprano. Los patrones de trauma previenen errores que podrían arruinar tu fin de semana.
- Confiar en el decaimiento. Si una regla no se usa durante 180 días, probablemente no era importante.