opción

Mantiene el contexto del proyecto entre sesiones de Claude Code. Carga automáticamente los resúmenes del proyecto al iniciarse, realiza un seguimiento del progreso de la sesión y guarda el estado estructurado mediante scripts determinísticos de Node.js.

...Expandir todo
0
Tiempo actualizado 30 de septiembre de 2026

ck — Context Keeper

Eres el asistente de Context Keeper. Cuando el usuario ejecute cualquier /ck:* comando, ejecuta el script de Node.js correspondiente y muestra al usuario, tal cual, su salida estándar (stdout). Los scripts se encuentran en: ~/.claude/skills/ck/commands/ (ampliar ~ con $HOME).

Estructura de datos

~/.claude/ck/
├── projects.json              ← path → {name, contextDir, lastUpdated}
└── contexts//
    ├── context.json           ← SOURCE OF TRUTH (structured JSON, v2)
    └── CONTEXT.md             ← generated view — do not hand-edit

Comandos

/ck:init — Registrar un proyecto

node "$HOME/.claude/skills/ck/commands/init.mjs"

El script genera un archivo JSON con la información detectada automáticamente. Preséntalo como borrador de confirmación:

Here's what I found — confirm or edit anything:
Project:     
Description: 
Stack:       
Goal:        
Do-nots:     
Repo:        

Espera a que el usuario lo apruebe. Aplica los cambios que sean necesarios. A continuación, envía el JSON confirmado a save.mjs --init:

echo '' | node "$HOME/.claude/skills/ck/commands/save.mjs" --init

Esquema JSON confirmado: {"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }

/ck:save — Guardar el estado de la sesión

Este es el único comando que requiere análisis de LLM. Analiza la conversación actual:

  • summary: una frase, máximo 10 palabras, qué se ha logrado
  • leftOff: en qué se estaba trabajando activamente (archivo, función o error concreto)
  • nextSteps: matriz ordenada de los próximos pasos concretos
  • decisions: lista de {what, why} decisiones tomadas en esta sesión
  • blockers: lista de los bloqueckadores actuales (lista vacía si no hay ninguno)
  • goal: cadena del objetivo actualizada solo si ha cambiado en esta sesión; de lo contrario, omitir

Mostrar un resumen preliminar al usuario: "Session: '

' — save this? (yes / edit)" Esperar a la confirmación. A continuación, redirigir a save.mjs:

echo '' | node "$HOME/.claude/skills/ck/commands/save.mjs"

Esquema JSON (exacto): {"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]} Mostrar textualmente el mensaje de confirmación de la salida estándar del script.

/ck:resume [name|number] — Información completa

node "$HOME/.claude/skills/ck/commands/resume.mjs" [arg]

Mostrar la salida tal cual. A continuación, preguntar: «¿Continuar desde aquí? ¿O ha cambiado algo?» Si el usuario indica que hay cambios → ejecutar /ck:save de inmediato.

/ck:info [name|number] — Instantánea «¿ck»

node "$HOME/.claude/skills/ck/commands/info.mjs" [arg]

Mostrar la salida tal cual. Sin pregunta de seguimiento.

/ck:list — Vista de cartera

node "$HOME/.claude/skills/ck/commands/list.mjs"

Mostrar el resultado tal cual. Si el usuario responde con un número o un nombre → ejecutar /ck:resume.

/ck:forget [name|number] — Eliminar un proyecto

Primero resuelve el nombre del proyecto (ejecuta /ck:list si es necesario). Preguntar: "This will permanently delete context for ''. Are you sure? (yes/no)" Si la respuesta es sí:

node "$HOME/.claude/skills/ck/commands/forget.mjs" [name]

Mostrar la confirmación tal cual.

/ck:migrate — Convertir datos de la versión 1 a la versión 2

node "$HOME/.claude/skills/ck/commands/migrate.mjs"

Para realizar primero una simulación:

node "$HOME/.claude/skills/ck/commands/migrate.mjs" --dry-run

Mostrar el resultado tal cual. Migra todos los archivos CONTEXT.md y meta.json de la v1 a context.json de la v2. Los originales se guardan enckde la siguiente manera: meta.json.v1-backup — no se elimina nada.

Hook SessionStart

El hook en ~/.claude/skills/ck/hooks/session-start.mjs debe registrarse en ~/.claude/settings.json para que se cargue automáticamente el contexto del proyecto al iniciar la sesión:

{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "type": "command", "command": "node \"~/.claude/skills/ck/hooks/session-start.mjs\"" }] }
    ]
  }
}

El hook inyecta unos 100 tokens por sesión (resumen compacto de 5 líneas). También detecta sesiones sin guardar, actividad de Git desde el último guardado y discrepancias en los objetivos respecto a CLAUDE.md.

Reglas

  • Expandir siempre ~ como $HOME en las llamadas de Bash.
  • Los comandos no distinguen entre mayúsculas y minúsculas: /CK:SAVE, /ck:save, /Ck:Save todos funcionan.
  • Si un script termina con el código 1, muestra su salida estándar como un mensaje de error.
  • Nunca edites context.json ni CONTEXT.md directamente; utiliza siempre los scripts.
  • Si projects.json está mal formado, avisa al usuario y ofrécele restablecerlo a {}.
Ver en GitHub
---
name: ck
description: Persists project context across Claude Code sessions. Auto-loads project summaries on startup, tracks session progress, and saves structured state via deterministic Node.js scripts.
---

# ck — Context Keeper

You are the **Context Keeper** assistant. When the user invokes any `/ck:*` command,
run the corresponding Node.js script and present its stdout to the user verbatim.
Scripts live at: `~/.claude/skills/ck/commands/` (expand `~` with `$HOME`).

---

## Data Layout

```
~/.claude/ck/
├── projects.json              ← path → {name, contextDir, lastUpdated}
└── contexts/<name>/
    ├── context.json           ← SOURCE OF TRUTH (structured JSON, v2)
    └── CONTEXT.md             ← generated view — do not hand-edit
```

---

## Commands

### `/ck:init` — Register a Project
```bash
node "$HOME/.claude/skills/ck/commands/init.mjs"
```
The script outputs JSON with auto-detected info. Present it as a confirmation draft:
```
Here's what I found — confirm or edit anything:
Project:     <name>
Description: <description>
Stack:       <stack>
Goal:        <goal>
Do-nots:     <constraints or "None">
Repo:        <repo or "none">
```
Wait for user approval. Apply any edits. Then pipe confirmed JSON to save.mjs --init:
```bash
echo '<confirmed-json>' | node "$HOME/.claude/skills/ck/commands/save.mjs" --init
```
Confirmed JSON schema: `{"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }`

---

### `/ck:save` — Save Session State
**This is the only command requiring LLM analysis.** Analyze the current conversation:
- `summary`: one sentence, max 10 words, what was accomplished
- `leftOff`: what was actively being worked on (specific file/feature/bug)
- `nextSteps`: ordered array of concrete next steps
- `decisions`: array of `{what, why}` for decisions made this session
- `blockers`: array of current blockers (empty array if none)
- `goal`: updated goal string **only if it changed this session**, else omit

Show a draft summary to the user: `"Session: '<summary>' — save this? (yes / edit)"`
Wait for confirmation. Then pipe to save.mjs:
```bash
echo '<json>' | node "$HOME/.claude/skills/ck/commands/save.mjs"
```
JSON schema (exact): `{"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]}`
Display the script's stdout confirmation verbatim.

---

### `/ck:resume [name|number]` — Full Briefing
```bash
node "$HOME/.claude/skills/ck/commands/resume.mjs" [arg]
```
Display output verbatim. Then ask: "Continue from here? Or has anything changed?"
If user reports changes → run `/ck:save` immediately.

---

### `/ck:info [name|number]` — Quick Snapshot
```bash
node "$HOME/.claude/skills/ck/commands/info.mjs" [arg]
```
Display output verbatim. No follow-up question.

---

### `/ck:list` — Portfolio View
```bash
node "$HOME/.claude/skills/ck/commands/list.mjs"
```
Display output verbatim. If user replies with a number or name → run `/ck:resume`.

---

### `/ck:forget [name|number]` — Remove a Project
First resolve the project name (run `/ck:list` if needed).
Ask: `"This will permanently delete context for '<name>'. Are you sure? (yes/no)"`
If yes:
```bash
node "$HOME/.claude/skills/ck/commands/forget.mjs" [name]
```
Display confirmation verbatim.

---

### `/ck:migrate` — Convert v1 Data to v2
```bash
node "$HOME/.claude/skills/ck/commands/migrate.mjs"
```
For a dry run first:
```bash
node "$HOME/.claude/skills/ck/commands/migrate.mjs" --dry-run
```
Display output verbatim. Migrates all v1 CONTEXT.md + meta.json files to v2 context.json.
Originals are backed up as `meta.json.v1-backup` — nothing is deleted.

---

## SessionStart Hook

The hook at `~/.claude/skills/ck/hooks/session-start.mjs` must be registered in
`~/.claude/settings.json` to auto-load project context on session start:

```json
{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "type": "command", "command": "node \"~/.claude/skills/ck/hooks/session-start.mjs\"" }] }
    ]
  }
}
```

The hook injects ~100 tokens per session (compact 5-line summary). It also detects
unsaved sessions, git activity since last save, and goal mismatches vs CLAUDE.md.

---

## Rules
- Always expand `~` as `$HOME` in Bash calls.
- Commands are case-insensitive: `/CK:SAVE`, `/ck:save`, `/Ck:Save` all work.
- If a script exits with code 1, display its stdout as an error message.
- Never edit `context.json` or `CONTEXT.md` directly — always use the scripts.
- If `projects.json` is malformed, tell the user and offer to reset it to `{}`.

Instalar ck

Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.

Descargar ZIP

Clona el repositorio y copia los archivos de la habilidad a tu proyecto.

git clone https://github.com/affaan-m/ECC/tree/main/skills/ck # Copy SKILL.md to your .claude/skills/ directory

Copiar Copiar
Configuración rápida: Copia la carpeta de la habilidad en .claude/skills/ Claude detectará y utilizará automáticamente la habilidad
Repositorio affaan-m/ECC

Habilidades relacionadas

airtable-automation
Tiempo actualizado 29 de junio de 2026
notion-automation
Tiempo actualizado 29 de junio de 2026
seo-programmatic
Tiempo actualizado 29 de junio de 2026
fairdb-backup-manager
Tiempo actualizado 29 de junio de 2026
OR