ck

Habilidade para gerenciar o contexto de projetos do Claude AI, salvando e restaurando sessões de trabalho.

O que é ck?

Esta skill, chamada 'ck', gerencia o contexto de múltiplos projetos do Claude Code, permitindo salvar, restaurar e alternar entre sessões de desenvolvimento de forma eficiente. Ela armazena metadados estruturados (como resumo, próximos passos, decisões e bloqueios) em arquivos JSON dentro de `~/.claude/ck/`, proporcionando uma fonte de verdade para o histórico e estado atual de cada projeto. A skill oferece comandos como `/ck:init` para registrar um novo projeto, `/ck:save` para salvar o estado da sessão atual (com análise do LLM), `/ck:resume` para obter um briefing completo, e `/ck:list` para listar todos os projetos. Suporta a plataforma Claude Code e utiliza scripts Node.js para persistência e recuperação, com um hook de início de sessão que injeta automaticamente o resumo do projeto.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add mowgliph/everything-agents-skills

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Estrutura de Dados

~/.claude/ck/
├── projects.json              ← caminho → {name, contextDir, lastUpdated}
└── contexts/<name>/
    ├── context.json           ← FONTE DA VERDADE (JSON estruturado, v2)
    └── CONTEXT.md             ← visão gerada — não edite manualmente

Comandos

/ck:init — Registrar um Projeto

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

O script gera um JSON com informações detectadas automaticamente. Apresente como rascunho de confirmação:

Aqui está o que encontrei — confirme ou edite qualquer coisa:
Projeto:      <nome>
Descrição:    <descrição>
Stack:        <stack>
Objetivo:     <objetivo>
Restrições:   <restrições ou "Nenhuma">
Repositório:  <repositorio ou "nenhum">

Aguarde a aprovação do usuário. Aplique quaisquer edições. Em seguida, pipe o JSON confirmado para save.mjs --init:

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

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


/ck:save — Salvar Estado da Sessão

Este é o único comando que requer análise do LLM. Analise a conversa atual:

  • summary: uma frase, no máximo 10 palavras, o que foi realizado
  • leftOff: o que estava sendo ativamente trabalhado (arquivo/recurso/bug específico)
  • nextSteps: array ordenado de próximos passos concretos
  • decisions: array de {what, why} para decisões tomadas nesta sessão
  • blockers: array de bloqueios atuais (array vazio se nenhum)
  • goal: string de objetivo atualizada apenas se mudou nesta sessão, caso contrário omita

Mostre um resumo para o usuário: "Sessão: '<sumário>' — salvar isso? (sim / editar)" Aguarde confirmação. Em seguida, pipe para save.mjs:

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

Esquema JSON (exato): {"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]} Exiba a confirmação stdout do script literalmente.


/ck:resume [nome|número] — Briefing Completo

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

Exiba a saída literalmente. Em seguida, pergunte: "Continuar daqui? Ou algo mudou?" Se o usuário relatar mudanças → execute /ck:save imediatamente.


/ck:info [nome|número] — Instantâneo Rápido

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

Exiba a saída literalmente. Sem perguntas adicionais.


/ck:list — Visão do Portfólio

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

Exiba a saída literalmente. Se o usuário responder com um número ou nome → execute /ck:resume.


/ck:forget [nome|número] — Remover um Projeto

Primeiro resolva o nome do projeto (execute /ck:list se necessário). Pergunte: "Isso excluirá permanentemente o contexto de '<nome>'. Tem certeza? (sim/não)" Se sim:

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

Exiba a confirmação literalmente.


/ck:migrate — Converter Dados v1 para v2

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

Primeiro um teste:

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

Exiba a saída literalmente. Migra todos os arquivos v1 CONTEXT.md + meta.json para context.json v2. Os originais são salvos como meta.json.v1-backup — nada é deletado.


Hook de Início de Sessão

O hook em ~/.claude/skills/ck/hooks/session-start.mjs deve ser registrado em ~/.claude/settings.json para carregar automaticamente o contexto do projeto no início da sessão:

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

O hook injeta ~100 tokens por sessão (resumo compacto de 5 linhas). Ele também detecta sessões não salvas, atividade git desde o último salvamento e incompatibilidades de objetivo com CLAUDE.md.


Regras

  • Sempre expanda ~ como $HOME em chamadas Bash.
  • Comandos não diferenciam maiúsculas/minúsculas: /CK:SAVE, /ck:save, /Ck:Save funcionam.
  • Se um script sair com código 1, exiba sua saída padrão como mensagem de erro.
  • Nunca edite context.json ou CONTEXT.md diretamente — use sempre os scripts.
  • Se projects.json estiver malformado, informe ao usuário e ofereça redefini-lo para {}.

Habilidades Relacionadas