O que knowledge-transfer faz?
Transfira o conhecimento do projeto entre colegas: um breve documento de integração não técnico mais as memórias acumuladas pela IA do projeto, empacotadas dentro do repositório do projeto para que o novo membro comece orientado e sua IA comece informada.
Uso
Skill autônomo para Claude Code:
/knowledge-transfer # modo de detecção automática (veja abaixo)
/knowledge-transfer export # colega saindo: construir o pacote de transferência
/knowledge-transfer import # novo colega: verificar + instalar memórias, ler o documento
Instalação como plugin no Claude Code:
/knowledge-transfer:knowledge-transfer
/knowledge-transfer:knowledge-transfer export
/knowledge-transfer:knowledge-transfer import
Codex ou outro agente que leia SKILL.md:
$knowledge-transfer # modo de detecção automática
$knowledge-transfer export # colega saindo
$knowledge-transfer import # novo colega
Detecção de modo (sem argumento)
- Se
handover/manifest.jsonexistir na raiz do projeto → anuncie modo de importação. - Caso contrário → anuncie modo de exportação.
Indique o modo detectado em uma linha e prossiga. O usuário pode substituir a qualquer momento.
Contratos
Leia estes antes de produzir qualquer coisa:
references/package-format.md— estrutura do pacote e esquema do manifestoreferences/privacy-filter.md— o que pode e não pode ser exportadoreferences/onboarding-template.md— estrutura, tom e tamanho do documentoreferences/agent-memory.md— como localizar e instalar memórias no Claude, Codex ou outro agente
Fase de exportação
Executada a partir da raiz do projeto pelo colega que está saindo do projeto.
1. Analise o projeto
- Leia o README, arquivos de orientação do agente (
CLAUDE.md,AGENTS.md,GEMINI.md,.cursor/rules/, etc., se presentes), a estrutura de alto nível, pontos de entrada e arquivos de configuração principais. Use subagentes para bases de código grandes, em vez de ler tudo inline. - Identifique: o que o projeto faz, os 3–7 componentes principais e 2–3 fluxos lógicos ponta a ponta que valem a pena narrar.
- Detecte o idioma dominante do projeto (README, documentação, mensagens de commit recentes); o documento de integração é escrito nesse idioma. Se não estiver claro ou for misto → Inglês.
2. Leia as memórias
- Localize a fonte de memória do projeto do agente atual usando
references/agent-memory.md. - Leia apenas memórias com escopo neste projeto ou repositório. Não exporte preferências globais do usuário ou histórico de projetos não relacionados.
- Nenhum diretório de memória ou nenhuma memória → prossiga apenas com o documento, defina
memories: {"exported": 0, "excluded": 0}no manifesto e informe ao usuário que o pacote não contém memórias.
3. Filtre as memórias
Aplique references/privacy-filter.md estritamente a cada memória. Produza as versões
portáteis (reescritas, neutras) e a lista de exclusão por memória com motivos.
4. Escreva o pacote
- Se
handover/já existir, PARE e pergunte antes de sobrescrever. - Escreva
handover/ONBOARDING.mdseguindoreferences/onboarding-template.md. - Escreva cada memória sobrevivente em
handover/memories/<slug>.mdno formato portátil. - Escreva
handover/manifest.jsonconforme o esquema (SHA do commit degit rev-parse HEAD; omitacommitse não for um repositório git, omitaauthorse o git config não tiver nome).
5. Lista de verificação final — verifique antes de declarar concluído
-
greptoda a árvorehandover/em busca do nome, e-mail e nome de usuário do colega: zero ocorrências. - Nenhuma memória do tipo
useremhandover/memories/. - ONBOARDING.md tem 600–1000 palavras (
wc -w) e contém as seis seções do modelo. - Cada arquivo/caminho citado em uma memória exportada existe no projeto.
-
manifest.jsoné analisado e as contagens correspondem aos arquivos reais.
Relate ao usuário: conteúdo do pacote, lista de exclusão com motivos e sugira
commitar handover/ no repositório. Não faça commit sem perguntar.
Fase de importação
Executada pelo novo colega, a partir da raiz do projeto, após clonar.
1. Leia o pacote
- Leia
handover/manifest.json,handover/ONBOARDING.mde cada arquivo emhandover/memories/. handover/ausente → pare: explique que o colega saindo precisa executar/knowledge-transfer exportprimeiro e depois commitar o resultado.manifest.versiondesconhecido → pare e diga que o skill é muito antigo para este pacote.
2. Verifique cada memória contra o código atual
- Se o repositório for git e o manifesto tiver
commit, executegit diff --stat <commit>..HEADpara ver quais áreas mudaram desde a exportação. - Para cada memória, verifique se os arquivos, caminhos e identificadores que ela cita ainda
existem (Glob/Grep, não suposição). Classifique:
- válida — tudo certo → instale como está;
- desatualizada, correção óbvia — por exemplo, um arquivo citado foi renomeado e o novo caminho é inequívoco (git log --follow, ou uma única ocorrência na pesquisa) → atualize o corpo da memória, depois instale;
- desatualizada, sem correção óbvia — descarte, anote o motivo em uma linha.
3. Instale
- Instale cada memória aceita através do mecanismo de memória do agente atual (veja
references/agent-memory.md), mantendo o conteúdo da memória portátil intacto e adaptando apenas o invólucro/índice de armazenamento se o agente de destino exigir. - Conflito de slug com uma memória existente: NÃO sobrescreva. Relate o conflito e pergunte ao usuário qual manter.
- Se o armazenamento de memória de destino tiver um arquivo de índice, acrescente uma linha de índice para cada memória instalada (crie-o se estiver ausente). Se o agente atual proibir gravações diretas de memória, crie ou apresente o artefato de atualização de memória aprovado.
4. Relatório
Apresente ao usuário, nesta ordem:
- O conteúdo completo de ONBOARDING.md (é curto por design).
- O resumo da importação: instaladas / atualizadas / descartadas, uma linha de raciocínio cada.
- Uma nota final: perguntas técnicas agora podem contar com as memórias importadas.
Casos extremos
| Situação | Comportamento |
|---|---|
| Nenhuma memória na exportação | Pacote apenas com documento; diga isso explicitamente. |
| Projeto não é um repositório git | Manifesto sem commit; a verificação de importação recai apenas em verificações de existência. |
handover/ existe na exportação | Pergunte antes de sobrescrever. |
handover/ ausente na importação | Pare com instruções para o colega que está saindo. |
| Conflito de slug na importação | Nunca sobrescreva; exponha e pergunte. |
manifest.version desconhecido | Pare; peça ao usuário para atualizar o skill. |