Skip to main content
Glama

Estado de proyecto portable y respaldado por git para trabajo de IA de larga duración — en Claude Code, Cursor, o cualquier cosa que hable MCP.

No es una herramienta de memoria. Una herramienta de memoria responde a "¿de qué hablamos?" Continuity responde a una pregunta diferente: "¿qué es verdad sobre este proyecto ahora, y qué no debe tocarse?"

Por qué está construido así

  • El estado vive como archivos markdown simples, rastreados por git. Git es el registro de eventos: historial = git log, reversión = git revert, auditoría = git blame. Cada afirmación es legible por humanos, comparable mediante diff y editable a mano. Revisas lo que la IA capturó de la misma manera que revisas código generado — como un diff, cuando quieras. No hay puerta de aprobación en el momento de la captura.

  • Dos modos de almacenamiento, una API. Modo repositorio (<repo>/.continuity/, encontrado subiendo desde el directorio de trabajo) se adapta a herramientas de editor/agente con un cwd de proyecto como Claude Code. Modo central (~/.continuity/projects/<name>/, proyectos con nombre) se adapta a herramientas sin cwd de proyecto como Claude Desktop — solo te refieres a un proyecto por su nombre.

  • El contexto de reanudación es una proyección determinista de esos archivos (sin LLM en la ruta de lectura) — restricciones congeladas, decisiones activas con las razones por las que reemplazaron a las anteriores, caminos rechazados que no deberías volver a proponer, preguntas abiertas y el siguiente paso.

  • La confianza proviene de la honestidad, no de la fe ciega. Cada afirmación lleva confidence + provenance, para que una sesión nueva sepa qué está confirmado vs. inferido por IA y calibre en lugar de confiar en todo.

Consulta DESIGN.md para la arquitectura completa y poc/ para la validación que lo motivó.

Related MCP server: KeepGoing MCP Server

Instalación (como plugin de Claude)

Continuity es un plugin de Claude Code, distribuido como su propio marketplace de plugins — este repositorio es el marketplace. Se ejecuta en todos los lugares donde se ejecuta Claude Code: la terminal, la aplicación de escritorio y la web. En Claude Code:

/plugin marketplace add vikcena01/ai-continuity-plugin
/plugin install continuity@continuity-marketplace

Eso es todo — el servidor MCP incluido, la habilidad continuity (auto-reanudación + auto-captura), el hook de SessionStart y los comandos /resume /freeze /why se instalan todos juntos. dist/ está confirmado y sin dependencias, por lo que no hay paso de compilación en la instalación.

Desarrollo local

npm install
npm run build   # typecheck + bundle to dist/
npm test        # build + 69 assertions across four suites

El bucle (CLI)

continuity init "Build Snip, an internal URL shortener"
continuity record-decision "PostgreSQL is the source of truth" --body "ops knows it; volume is modest"
continuity reject "DynamoDB as primary store" --reason "KV overhead unjustified at our volume"
continuity record-constraint "Short codes are exactly 7-char base62" --body "printed in marketing + partner contract"
continuity freeze "7-char base62"     # lock an invariant — fuzzy: id OR title substring
continuity resume                     # <- the compact state a new session gets
continuity why "301"                  # <- what a decision replaced, and why
continuity resolve "8-char codes" --reject --reason "separate namespace"
continuity list                       # ids are short: d1k3, c2m9, x1p4, ...
continuity log                        # the git-backed event log

Las afirmaciones obtienen ids cortos y escribibles — un prefijo de tipo, un número de secuencia y un sufijo de dos caracteres: d1k3, c2m9, x1p4. El sufijo es lo que hace seguro el trabajo concurrente: sin él, dos desarrolladores que registran la decimosexta decisión ambos escriben claims/d16.md y chocan al fusionar. freeze / why / supersede / resolve aceptan un id o una subcadena del título. El estado se escribe bajo claims/ y se confirma automáticamente en git en cada cambio — pero nunca se empuja automáticamente, por lo que resume te advierte cuando hay commits capturados sin empujar.

Cerrando una afirmación

resolve es la única forma en que una afirmación alcanza un estado terminal, y la razón es obligatoria — una afirmación que simplemente desaparece no le enseña nada a la próxima sesión:

continuity resolve <id-or-text> --accept --reason "..."   # a parked conflict wins
continuity resolve <id-or-text> --reject --reason "..."   # it becomes a guardrail
continuity resolve <id-or-text> --close  --reason "..."   # a settled risk/question

Aceptar una afirmación estacionada contra una congelada requiere adicionalmente --unfreeze. Congelar es el único acto humano en el modelo, por lo que anularlo tiene que ser un segundo acto deliberado.

Úsalo en Claude Desktop (MCP)

Cualquier host que hable MCP pero no tenga cwd de proyecto puede usar el servidor MCP con proyectos con nombre. (Nota: la aplicación de escritorio de Claude ejecuta Claude Code dentro de ella, por lo que el plugin completo — hooks, comandos, habilidad — funciona allí; esta ruta es para hosts MCP simples.) Compila (npm run build), luego agrega a claude_desktop_config.json:

{
  "mcpServers": {
    "continuity": {
      "command": "node",
      "args": ["/absolute/path/to/ai-continuity-plugin/dist/mcp.js"],
      "env": { "CONTINUITY_HOME": "/Users/you/.continuity/projects" }
    }
  }
}

Luego en el chat: "crea un proyecto de continuidad llamado snip"create_project; "reanuda snip"resume_context; el modelo registra decisiones/restricciones/rechazos a medida que avanzas. Un resume prompt invocable por el usuario es el sustituto de escritorio para el hook de auto-reanudación de Claude Code. Herramientas: list_projects, create_project, resume_context, record_decision, record_constraint, record_rejection, record_open, capture, resolve_claim, freeze_claim, why.

Como plugin de Claude Code (bonus)

Este repositorio es también un plugin de Claude Code (manifiesto en .claude-plugin/plugin.json). Allí, además del servidor MCP, obtienes cosas que Claude Desktop no puede hacer:

  • un hook de SessionStart (hooks/hooks.json) que inyecta automáticamente resume_context en sesiones nuevas / reanudadas / post-compactación — nunca tienes que pedirlo;

  • un hook de Stop que ejecuta una verificación de captura al final del turno, para que las decisiones se registren sin que nadie recuerde pedirlo. Dos guardas independientes (stop_hook_active más un limitador de tiempo) hacen imposible un bucle;

  • comandos de barra /resume, /freeze, /why.

El repositorio también incluye .claude/settings.json, que registra los mismos hooks contra su propio dist/ confirmado. Un colaborador que simplemente ejecuta git clone obtiene así auto-reanudación y auto-captura sin instalar nada. Ambos hooks se deduplican por sesión, por lo que tener el plugin instalado y clonar el repositorio es inofensivo.

Formato de afirmación

Cada .continuity/claims/<id>.md:

---
id: d4k7
type: decision            # decision | constraint | rejected_alternative | mission | milestone | question | next_action | ...
status: accepted          # accepted | frozen | superseded | rejected | open | needs_review | resolved | done
resolution:               # set by `resolve`: why this claim was closed
confidence: confirmed     # confirmed | tentative | unverified
provenance:
  origin: manual
  created: 2026-08-04T00:00:00.000Z
supersedes: []
superseded_by: null
depends_on: []
tags: []
---
Postgres is the primary datastore; a Redis read cache may come later.

El formato de afirmación (un contrato)

Una vez que el repositorio de cualquier otra persona contiene afirmaciones, el formato de archivo es un contrato — por lo que lleva una versión:

---
schema: 1              # absent means 1
id: d16k3              # <type prefix><n><2-char suffix>; the suffix keeps concurrent clones from colliding
type: decision         # mission requirement decision constraint architecture milestone
                       # hypothesis experiment risk question next_action rejected_alternative
title: One crisp fact
status: accepted       # accepted active frozen open superseded invalidated rejected
                       # needs_review completed done resolved
confidence: confirmed  # unverified tentative confirmed
provenance: { origin: auto, created: ... }
supersedes: []
superseded_by: null
superseded_reason: ""  # why the replacement happened — travels with the claim
resolution: ""         # why it was closed, set by `continuity resolve`
---

Prose body. The reason, the context, whatever a future session needs.

Promesa de estabilidad. Una afirmación escrita por una Continuity más antigua siempre se lee: la ausencia de schema significa 1, y las formas más antiguas migran hacia adelante en memoria sin reescribir tus archivos. Una afirmación escrita por una Continuity más nueva es rechazada por nombre, en voz alta, en lugar de ser medio analizada — adivinar una forma que no entendemos es cómo el estado se degrada silenciosamente. continuity migrate reescribe archivos en el esquema actual cuando quieres que la versión sea explícita en disco.

Revisando lo que se capturó

La captura es autónoma, por lo que la salvaguarda es que puedes ver lo que escribió:

continuity review            # semantic diff: what appeared, changed status, or was edited — and why
continuity review --accept   # mark it reviewed

Detecta ediciones manuales así como escrituras de herramientas, y el contexto de reanudación te dice cuándo hay cambios esperando.

Estado

v1.0 — núcleo determinista + CLI + servidor MCP + plugin de Claude Code. Archivos de afirmación versionados, ids seguros contra colisiones, búsqueda difusa, una proyección de reanudación presupuestada, registro de eventos respaldado por git y 124 aserciones en siete suites (npm test).

Funcionando hoy:

  • Captura autónoma, impulsada por un hook de Stop al final de cada turno — no por el modelo que recuerda hacerlo.

  • Un reconciliador detrás de cada captura por lotes: deduplicación, supersesión que preserva el linaje, y una guardia de congelación que estaciona cualquier cosa que contradiga una afirmación congelada como needs_review en lugar de aplicarla.

  • Un verbo resolve para cerrar lo que el reconciliador estaciona, y para cerrar riesgos/preguntas una vez que están resueltos.

Límites conocidos, rastreados como afirmaciones en el propio .continuity/ de este repositorio: la verificación de captura del hook de Stop está limitada a como máximo una vez por 10s, por lo que una decisión tomada en un intercambio muy rápido aún puede perderse (q3); y la extracción confiable de estado de sesiones desordenadas sigue siendo el riesgo técnico abierto (q2).

La marca

Una C dibujada como un arco ininterrumpido — el hilo que sobrevive entre sesiones — que termina en un nodo, una sola afirmación capturada. assets/icon.svg es la misma marca en un azulejo redondeado para un avatar o favicon; assets/logo-light.svg y assets/logo-dark.svg son los logotipos de marca, elegidos por prefers-color-scheme para que ambos temas de GitHub funcionen.

Licencia

MIT — consulta LICENSE. Copyright (c) 2026 Vikash.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Gives AI coding assistants persistent memory, safety controls, and project awareness by tracking coding sessions, protecting critical files from modifications, and managing approval workflows with automatic changelog generation.
    19
    13
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides AI coding assistants with persistent project memory by capturing development checkpoints during git commits, branch switches, and inactivity. It enables seamless task resumption through tools that retrieve session history, momentum, and synthesized re-entry briefings.
    93
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

  • Git-backed platform for skills, tools, and context for AI agents

  • The project brain for AI coding agents — memory, decisions, sprints, knowledge base via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vikcena01/ai-continuity-plugin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server