¿Qué hace knowledge-transfer?
Transfiere conocimiento del proyecto entre colegas: un breve documento de incorporación no técnico más las memorias acumuladas por la IA del proyecto, empaquetadas dentro del repositorio para que el nuevo integrante comience orientado y su IA comience informada.
Uso
Habilidad independiente de Claude Code:
/knowledge-transfer # modo de detección automática (ver abajo)
/knowledge-transfer export # colega saliente: construir el paquete de transferencia
/knowledge-transfer import # nuevo colega: verificar + instalar memorias, leer el documento
Instalación como plugin de Claude Code:
/knowledge-transfer:knowledge-transfer
/knowledge-transfer:knowledge-transfer export
/knowledge-transfer:knowledge-transfer import
Codex u otro agente que lea SKILL.md:
$knowledge-transfer # modo de detección automática
$knowledge-transfer export # colega saliente
$knowledge-transfer import # nuevo colega
Detección de modo (sin argumento)
- Si
handover/manifest.jsonexiste en la raíz del proyecto → anuncia modo de importación. - De lo contrario → anuncia modo de exportación.
Indica el modo detectado en una línea y continúa. El usuario puede anularlo en cualquier momento.
Contratos
Lee estos antes de producir cualquier cosa:
references/package-format.md— estructura del paquete y esquema del manifiestoreferences/privacy-filter.md— qué se puede y qué no se puede exportarreferences/onboarding-template.md— estructura, tono y extensión del documentoreferences/agent-memory.md— cómo localizar e instalar memorias en Claude, Codex u otro agente
Fase de exportación
Se ejecuta desde la raíz del proyecto por el colega que abandona el proyecto.
1. Analizar el proyecto
- Lee README, archivos de guía del agente (
CLAUDE.md,AGENTS.md,GEMINI.md,.cursor/rules/, etc. si existen), la estructura de nivel superior, puntos de entrada y archivos de configuración principales. Usa subagentes para bases de código grandes en lugar de leer todo en línea. - Identifica: qué hace el proyecto, los 3–7 componentes principales y 2–3 flujos lógicos de extremo a extremo que valga la pena narrar.
- Detecta el idioma dominante del proyecto (README, documentación, mensajes de commit recientes); el documento de incorporación se escribe en ese idioma. Si no está claro o es mixto → inglés.
2. Leer las memorias
- Localiza la fuente de memoria del proyecto del agente actual usando
references/agent-memory.md. - Lee solo las memorias con alcance a este proyecto o repositorio. No exportes preferencias globales del usuario ni historial de proyectos no relacionados.
- Si no hay directorio de memorias o no hay memorias → continúa solo con el documento, establece
memories: {"exported": 0, "excluded": 0}en el manifiesto e informa al usuario que el paquete no contiene memorias.
3. Filtrar las memorias
Aplica estrictamente references/privacy-filter.md a cada memoria. Produce las versiones portátiles (reescritas, neutrales) y la lista de exclusión por memoria con razones.
4. Escribir el paquete
- Si
handover/ya existe, DETENTE y pregunta antes de sobrescribir. - Escribe
handover/ONBOARDING.mdsiguiendoreferences/onboarding-template.md. - Escribe cada memoria superviviente en
handover/memories/<slug>.mden formato portátil. - Escribe
handover/manifest.jsonsegún el esquema (SHA del commit desdegit rev-parse HEAD; omitecommitsi no es un repositorio git, omiteauthorsi la configuración de git no tiene nombre).
5. Lista de verificación final — verificar antes de declarar como terminado
-
grepen todo el árbolhandover/buscando el nombre, correo electrónico y nombre de usuario del colega: cero coincidencias. - Ninguna memoria de tipo
userenhandover/memories/. - ONBOARDING.md tiene entre 600 y 1000 palabras (
wc -w) y contiene las seis secciones de la plantilla. - Cada archivo/ruta citado en una memoria exportada existe en el proyecto.
-
manifest.jsonse analiza correctamente y los recuentos coinciden con los archivos reales.
Informa al usuario: contenido del paquete, lista de exclusión con razones y sugiere confirmar handover/ en el repositorio. No confirmes sin preguntar.
Fase de importación
Se ejecuta por el nuevo colega, desde la raíz del proyecto, después de clonar.
1. Leer el paquete
- Lee
handover/manifest.json,handover/ONBOARDING.mdy cada archivo enhandover/memories/. - Si falta
handover/→ detente: explica que el colega saliente debe ejecutar/knowledge-transfer exportprimero y luego confirmar el resultado. - Si
manifest.versiones desconocido → detente y di que la habilidad es demasiado antigua para este paquete.
2. Verificar cada memoria contra el código actual
- Si el repositorio es git y el manifiesto tiene
commit, ejecutagit diff --stat <commit>..HEADpara ver qué áreas cambiaron desde la exportación. - Para cada memoria, verifica que los archivos, rutas e identificadores que cita aún existan (Glob/Grep, no suposiciones). Clasifica:
- válida — todo correcto → instalar tal cual;
- obsoleta, corrección obvia — por ejemplo, un archivo citado fue renombrado y la nueva ruta es inequívoca (git log --follow, o una búsqueda única que coincida) → actualizar el cuerpo de la memoria, luego instalar;
- obsoleta, sin corrección obvia — descartar, anotar la razón en una línea.
3. Instalar
- Instala cada memoria aceptada a través del mecanismo de memoria del agente actual (ver
references/agent-memory.md), manteniendo intacto el contenido de la memoria portátil y adaptando solo el envoltorio de almacenamiento/índice si el agente destino lo requiere. - Colisión de slug con una memoria existente: NO sobrescribir. Informa de la colisión y pregunta al usuario cuál conservar.
- Si el almacén de memoria destino tiene un archivo de índice, añade una línea de índice por cada memoria instalada (crearlo si está ausente). Si el agente actual prohíbe escrituras directas en memoria, crear o presentar el artefacto de actualización de memoria aprobado en su lugar.
4. Informar
Presenta al usuario, en este orden:
- El contenido completo de ONBOARDING.md (es corto por diseño).
- El resumen de importación: instaladas / actualizadas / descartadas, una línea de razón cada una.
- Una nota final: las preguntas técnicas ahora pueden apoyarse en las memorias importadas.
Casos extremos
| Situación | Comportamiento |
|---|---|
| Sin memorias en la exportación | Paquete solo con documento; decirlo explícitamente. |
| El proyecto no es un repositorio git | Manifiesto sin commit; la verificación de importación recae solo en comprobaciones de existencia. |
handover/ existe al exportar | Preguntar antes de sobrescribir. |
handover/ falta al importar | Detenerse con instrucciones para el colega saliente. |
| Colisión de slug al importar | Nunca sobrescribir; mostrar y preguntar. |
manifest.version desconocido | Detenerse; pedir al usuario que actualice la habilidad. |