InicioSobre míBlogOpen SourceHablemos
Tecnología IA9 min de lectura

Cognito: el sistema operativo cognitivo que decide cómo piensa Claude en cada momento

Si Sinapsis es la memoria, Cognito es la cognición. Siete modos de pensamiento orquestados por cinco fases de proyecto. Cada modo corrige un sesgo específico de los LLMs.

Luis Salgado

A mediados de marzo publiqué Sinapsis, el sistema de aprendizaje continuo que le da a Claude memoria entre sesiones. Resuelve un problema concreto: que tu asistente no olvide lo que ya aprendió de ti.

Pero la memoria es la mitad del problema. La otra mitad es la cognición.

Aunque Claude recuerde todas tus reglas, sigue pensando siempre con el mismo registro. En la fase de exploración usa el mismo modo que en la fase de ejecución. Inventa una solución cuando debería estar verificando. Verifica cuando debería estar divergiendo. Avanza cuando debería estar haciendo de abogado del diablo.

Cognito es la respuesta a eso. Y desde hoy también está en open source.

Qué es Cognito

Cognito es un sistema operativo cognitivo para Claude Code. No le da más memoria. Le da modos de pensamiento, y orquesta cuál usar según en qué fase del proyecto estés.

Si Sinapsis es la memoria, Cognito es la cognición.

Funciona con cuatro ejes ortogonales:

  1. Cinco fases de proyecto: Discovery, Planning, Execution, Review, Shipping
  2. Siete modos de pensamiento, cada uno antídoto de un sesgo conocido de los LLMs
  3. Cuatro hooks deterministas que detectan, inyectan, validan y cierran
  4. Cuatro perfiles instalables: operator, alumno, public, client

La sesión activa en cualquier momento es el cruce de la fase actual con los modos que esa fase habilita, mediado por el perfil del operador y vigilado por los hooks.

Los siete sesgos que Claude comete una y otra vez

Los LLMs tienen patrones de fallo conocidos. No son misteriosos. Cada uno pide un modo de pensamiento distinto para corregirse.

SesgoCómo se manifiestaModo que lo corta
Anchor biasAcepta la primera interpretación y todo lo posterior la justificaDivergente
AlucinaciónInventa URLs, firmas, versiones plausibles pero falsasVerificador
DriftSe desvía del plan, añade features no pedidasEjecutor
Convergencia prematuraDecide sin comparar alternativasConsolidador
Sin pre-mortemEntrega y luego aparece el problema obvioDevil's Advocate
Miopía tácticaOptimiza coste o velocidad ignorando estrategiaEstratega
No aprendeTermina el proyecto y no queda nada codificadoAuditor

No son siete antídotos sueltos. Es un sistema único que decide cuál activar y cuándo.

El truco: determinismo selectivo

Esta fue la decisión central de diseño y la que más tiempo me llevó.

La tentación obvia al construir algo así es hacerlo todo determinista. Plantillas rígidas, gates en todas partes, cero margen creativo. El asistente se vuelve predecible y aburrido. Hace bien lo mecánico y mal lo interesante.

La tentación opuesta es hacerlo todo libre. Que cada modo sea solo una sugerencia. El asistente vuelve a improvisar exactamente como antes y los modos se convierten en etiquetas sin efecto real.

Cognito hace algo distinto. Cada modo y cada fase tienen un nivel de determinismo declarado:

  • Discovery + modo Divergente: determinismo bajo. Aquí la creatividad importa más que la rigidez.
  • Planning + modo Consolidador: determinismo medio. Plantillas fijas para la matriz de decisión, análisis libre dentro.
  • Execution + modo Ejecutor: determinismo alto. Si aparece sorpresa, vuelve a Discovery, no la resuelves creativamente aquí.
  • Shipping + Verificador: determinismo máximo. Cero tolerancia a anti-patrones.

El principio rector: el determinismo es caro y útil. Gástalo en las gates críticas, no en la ideación.

Por qué fases y no comandos sueltos

La primera versión de Cognito eran solo comandos: /divergir, /verificar, /devils-advocate. El usuario invocaba el modo cuando le parecía. Funcionaba, pero tenía el mismo problema que las skills probabilísticas: dependía de que tú te acordaras de pedirlo.

El problema real no es que falten modos. Es que en cada fase del proyecto hay un mix óptimo de modos que la mayoría de la gente no aplica porque está pensando en el problema concreto, no en cómo está pensándolo.

Así que en la v1.0 las fases son el eje principal y los modos son consecuencia. Cuando entras en Planning, automáticamente se activan Devil's Advocate, Consolidador y Estratega. No tienes que recordarte a ti mismo que necesitas un pre-mortem. Lo trae la fase.

Si quieres un override puntual, sigue habiendo /modo devils-advocate para activar uno fuera de su fase. Pero el comportamiento por defecto deja de depender de tu memoria.

El hook que detecta cambios de fase

Uno de los puntos más delicados de diseño fue cómo cambiar de fase sin que sea molesto.

Las opciones eran tres:

  1. Cambio manual obligatorio: el usuario tiene que escribir /fase planning. Determinista pero pesado.
  2. Cambio automático: el sistema decide por su cuenta cuándo cambias de fase. Ligero pero invasivo.
  3. Detección con sugerencia: el sistema detecta señales y propone, el usuario confirma. Equilibrado.

Elegí la tercera. El hook phase-detector analiza señales verbales del operador en cada turno: "vamos a ejecutar", "qué se me escapa", "post-mortem", "ship it". Cuando detecta una señal alta, sugiere cambio de fase, pero nunca lo aplica solo.

La regla: sugerir cambios de fase, no aplicarlos. El control sobre la cognición es del operador, no del sistema.

El bridge opcional con Sinapsis

Cognito y Sinapsis son sistemas independientes. Cada uno funciona standalone. Pero si tienes los dos, se enriquecen mutuamente.

Cuando estás en fase Execution con modo Ejecutor activo, Cognito le pregunta a Sinapsis si tiene instincts confirmados o permanentes relevantes para el contexto. Si los tiene, los inyecta en el checklist que el modo Ejecutor sigue. Si Sinapsis no está instalado, Cognito sigue funcionando exactamente igual sin saberlo.

La detección es por filesystem. Cognito busca Sinapsis en cuatro rutas convencionales. Si lo encuentra, lo usa. Si no, degrada en silencio.

Esto es importante porque elimina el acoplamiento duro. No quería que Cognito tuviera Sinapsis como dependencia obligatoria. Demasiada gente quiere probar uno sin el otro. Ahora pueden.

Las siete reglas no negociables

Cognito falla silenciosamente si se relaja en ciertos puntos. Estas son las reglas que documenté como no negociables después de romper el sistema yo mismo varias veces:

  1. No combinar modos antagónicos por defecto. Divergente y Ejecutor no pueden estar ambos activos. Uno explora, el otro fija.
  2. Plantilla por modo. Si un modo tiene plantilla, se usa. No se improvisa.
  3. Determinismo en gates. Si gate-validator bloquea, se transmite sin suavizar.
  4. Sugerir cambios de fase, no aplicarlos. El operador confirma siempre.
  5. Perfil manda. Antes de activar un modo, se comprueba si el perfil lo permite.
  6. Coexistencia con Sinapsis. Los instincts complementan, no anulan. Y no se duplican gates.
  7. Silencio por defecto. No se anuncia Cognito en cada turno. Solo al cambiar fase, activar modo nuevo o bloquear gate.

La octava la añadí más tarde, cuando rompí el sistema con un error de configuración: degradar, no bloquear. Si algo del sistema se rompe, Cognito vuelve al comportamiento de Claude vanilla. Es una mejora, no un bloqueador.

Cuatro perfiles, mismo código

Una de las decisiones que más me gusta de cómo quedó la v1.0 es que no hay forks por audiencia.

Mismo código, distinta configuración:

  • Operator: los 7 modos, todos los hooks, gates específicos del operador (stack retirado, PII, compliance). Asume Sinapsis presente.
  • Alumno: 4 modos pedagógicos (Divergente, Verificador, Consolidador, Ejecutor). Explicaciones extendidas. Sin Sinapsis asumido.
  • Public: los 7 modos con lenguaje neutro. Sin referencias internas. Configurable 100%.
  • Client: 5 modos con reporting orientado a B2B. Weekly digest. Handoff doc al cerrar.

Lo instalas con un flag:

git clone https://github.com/Luispitik/cognito.git ~/cognito
bash ~/cognito/scripts/install.sh --profile=operator

Cambiar de perfil más tarde no requiere reinstalar. Edita el config y los hooks empiezan a respetar las nuevas reglas en la siguiente sesión.

Lo que aprendí construyéndolo

Tres cosas que no esperaba al empezar:

Primera: el problema de los LLMs no es que piensen mal. Es que piensan siempre igual. Si separas observación de acción y haces que el modo de pensamiento dependa explícitamente de la fase del proyecto, el output mejora sin tocar el modelo.

Segunda: el determinismo total es tan malo como su ausencia. La clave no es elegir entre rígido y libre, es decidir dónde es caro equivocarse y aplicar rigidez justo ahí. Las gates críticas son pocas. El resto debe quedar suelto.

Tercera: los hermanos no son competidores. Sinapsis y Cognito hacen cosas distintas y se ayudan. La memoria sin cognición es un archivo. La cognición sin memoria es improvisación. Juntos son un asistente que aprende y que sabe pensar.

Qué hay ahora

Cognito v1.0.0 está en producción desde ayer. 7 modos, 5 fases, 4 hooks, 4 perfiles, 204 tests pasando en Ubuntu y macOS. MIT.

El bridge con Sinapsis está activo en mi setup pero es opcional para todos los demás. El dashboard de métricas es HTML estático con Chart.js: sin backend, funciona offline, te dice qué modos usas más y qué gates se disparan.

Si quieres ver cómo funciona por dentro o adaptarlo a tu flujo, el repositorio está en GitHub.

Y si quieres entender la otra mitad de la ecuación, el post sobre cómo construí Sinapsis explica el sistema de memoria que lo complementa.


Si esto te resulta útil

Documentar cómo automatizo mi empresa con IA es parte del trabajo. Cada semana mando un correo con lo que he construido, lo que ha funcionado y lo que he tenido que tirar a la basura. Sin hype, sin lista de herramientas, solo lo que me sirve a mí en producción real.

👉 Suscríbete a "IA con Cabeza" y recibe el siguiente experimento antes de que llegue al blog.


Este artículo forma parte de la serie "Diario de Automatización" donde documento cómo estoy automatizando mi empresa con IA. Ver todos los artículos de la serie.