Copilot Memory vs. instrucciones personalizadas: dónde se guardan las memorias y cómo borrarlas
GitHub Copilot Memory es una memoria alojada en GitHub y limitada a un repositorio, en vista previa pública — y no es la carpeta que quizá encontraste en tu equipo. Este recorrido muestra dónde se guarda cada tipo de memoria, cómo verla y eliminarla, cómo activar o desactivar la versión en la nube para ti y para una organización, y una plantilla de instrucciones personalizadas lista para copiar con las reglas que las memorias nunca deberían reemplazar. Doce pasos, contrastados con docs.github.com y con la documentación de memoria de VS Code.
La versión corta
- Las memorias no son una carpeta dentro de tu repositorio. GitHub Copilot Memory la almacena GitHub y está limitada a un repositorio; se consulta y se elimina en Repository → Settings → Code & automation → Copilot → Memory. La carpeta de memoria que la gente encuentra en el disco pertenece a la herramienta de memoria local de VS Code, que funciona aparte.
- Tres ámbitos locales y uno en la nube. La herramienta de memoria de VS Code guarda notas de User, Session y Repository en tu equipo, bajo /memories/, /memories/session/ y /memories/repo/; GitHub Copilot Memory reemplaza el ámbito de repositorio por uno alojado y compartido entre agentes, que el agente de código, la revisión de código y Copilot CLI leen por igual.
- Tu plan decide el valor predeterminado. Copilot Pro y Pro+ traen Copilot Memory activada por defecto; Copilot Business y Enterprise la mantienen desactivada hasta que un propietario de la empresa o de la organización la active, y si dos organizaciones te dan licencia, gana el ajuste más restrictivo.
- Las memorias caducan; las instrucciones no. Copilot escribe una memoria, la valida contra el código que la originó y la elimina a los 28 días salvo que se siga reutilizando. Las reglas que no puedes permitirte perder — el comando de test, el requisito de seguridad — van en .github/copilot-instructions.md, y por eso esta página termina con una plantilla.
I tried out all the memory features in GitHub Copilot (User / Session / Repository / Copilot Memory)
Canal:Yuzubon — ゆずぼん15:00
Instruction Files & /chronicle — Teaching Copilot Your Codebase
Canal:Casey Irvine17:37
The latest in managing and auditing GitHub Copilot agents
Canal:GitHub4:12
Managing and curating Copilot Memory (official docs, public preview)
Documentación oficial:docs.github.com
Copilot Memory está en vista previa pública y la ruta de ajustes todavía se mueve. Las rutas de activación, la caducidad de 28 días y la página de memoria del repositorio que aparecen aquí se tomaron de la guía «Managing and curating Copilot Memory» de docs.github.com y de la referencia «Use memory with agents» de VS Code; la ruta de la carpeta de memoria local viene de la propia grabación, así que tómala como específica de Windows y espera equivalentes en macOS y Linux dentro del mismo directorio de almacenamiento global de VS Code.
Las capturas se acreditan a la grabación de la que se tomaron y cada paso enlaza al segundo exacto. Los pasos escritos, la tabla comparativa y la plantilla son originales de esta página; no se reprodujo ninguna transcripción.
Los 12 pasos: de la carpeta en tu disco a una plantilla de instrucciones versionada con el código
Qué recuerda Copilot y dónde se guarda
- 1
Encuentra la carpeta de memoria antes de tocar cualquier ajuste
La herramienta de memoria de VS Code escribe archivos Markdown sin formato en tu equipo; no los envía a GitHub. En Windows están en %APPDATA%\Code\User\globalStorage\github.copilot-chat\memory-tool\memories\ — la captura muestra coding-style.md dentro de ese mismo directorio. El equivalente en macOS vive en ~/Library/Application Support/Code/User/globalStorage/ y el de Linux en ~/.config/Code/User/globalStorage/, en la misma ruta github.copilot-chat/memory-tool/memories. Nada de esto se confirma en el repositorio, así que ningún compañero puede leerlo, y si borras el archivo, borras la memoria.

El explorador de archivos de Windows abierto en memory-tool, con coding-style.md dentro de la carpeta de memorias local de VS Code.Ver en 3:26 - 2
La memoria de usuario es el archivo que se carga primero
Pide una preferencia en el chat — «prefiero early returns y nombres de variable largos y descriptivos» — y la herramienta de memoria crea un archivo de memoria de usuario y lo dice en la respuesta. La captura muestra coding-style.md abierto desde globalStorage › github.copilot-chat › memory-tool › memories, con el panel de chat informando «Reviewed memory file coding-style.md» y confirmando que el archivo se creó. La memoria de usuario es el único ámbito que se inyecta automáticamente en todas las conversaciones: la documentación de VS Code fija el límite en las primeras 200 líneas. Escribe diez líneas útiles, no doscientas.

Una memoria de usuario deliberadamente corta: coding-style.md abierto junto al chat que confirma que se creó.Ver en 3:56 - 3
La memoria de sesión es el plan que dejas de reexplicar
Plan mode es donde la memoria de sesión se gana su lugar. Pide un cambio con Plan seleccionado y el agente guarda su plan de implementación en /memories/session/plan.md, donde queda disponible solo para esa conversación — la documentación de VS Code describe Session como exclusiva de la conversación actual —. Vuelve a Agent mode y apunta al plan en lugar de reescribirlo. La memoria de sesión también es el ámbito más efímero: se descarta 14 días después de su último acceso, así que nunca dejes ahí una decisión que necesitarás el mes que viene.

Plan mode en Copilot Chat: la petición que hace que el agente escriba un plan de sesión en lugar de editar archivos.Ver en 7:06
La memoria del repositorio y la capa en la nube de GitHub
- 4
La memoria de repositorio sigue siendo local hasta que la actives
Di «en este repositorio, recuerda que toda función nueva necesita un test» y el agente lo escribe en /memories/repo/ — sigue en tu disco, sigue invisible para tu equipo y sigue fuera de los servidores de GitHub hasta que cambie un ajuste —. La captura muestra esa petición escrita. Este es el ámbito al que la gente suele referirse como «la carpeta de memoria de Copilot»: la carpeta existe, pero vive dentro del almacenamiento global de VS Code y no dentro del repositorio, y por eso buscarla en tu proyecto no encuentra nada.

Pedirle a Copilot que recuerde una regla del repositorio: la escritura que aterriza en el ámbito local del repositorio.Ver en 10:00 - 5
Activa el interruptor de la nube y solo se moverán las memorias nuevas
Copilot Memory es la mitad alojada en GitHub de este sistema, y en VS Code necesita su propia activación: github.copilot.chat.copilotMemory.enabled, añadido a .vscode/settings.json. La documentación de VS Code lista copilotMemory como una opción que se activa a mano y separada de la herramienta de memoria local. Cuando vale true, las escrituras que antes caían en /memories/repo/ van a GitHub. Dos cosas no cambian: tus memorias de repositorio locales existentes no se migran, y la herramienta solo crea — para leer o eliminar una memoria alojada tienes que ir a GitHub.

La edición de .vscode/settings.json que apunta la memoria del repositorio a GitHub en lugar de a la carpeta local.Ver en 13:10 - 6
Consulta y elimina las memorias en el repositorio, no en tus ajustes
Esta es la página a la que te mandan los documentos oficiales: Repository → Settings → Code & automation → Copilot → Memory, marcada como Preview. Las memorias se listan de la más reciente a la más antigua con su texto y sus etiquetas; el icono de papelera elimina una y las casillas eliminan un lote. Eliminar importa, porque una memoria equivocada es peor que no tener ninguna. Copilot valida cada memoria contra las citas que la originaron y la ignora cuando ese código ya se movió, pero una memoria construida sobre una mala lectura sigue pasando esa comprobación. Además, las memorias caducan solas a los 28 días.

La página de memoria de Copilot en los ajustes del repositorio de GitHub, con una memoria guardada y su control para eliminarla.Ver en 12:09
Actívala para un equipo y luego escribe las instrucciones
- 7
Los propietarios de la empresa y de la organización tienen que activarla primero
Tu plan decide quién hace qué. Los suscriptores individuales de Copilot Pro y Pro+ tienen Copilot Memory activada por defecto y pueden desactivarla en Settings → Copilot → Features. Copilot Business y Enterprise son lo contrario: las memorias siguen desactivadas hasta que un propietario las active — los propietarios de la empresa mediante AI Controls → Copilot → Features, eligiendo Let organizations decide, Enabled everywhere o Disabled everywhere, y los propietarios de la organización mediante Organization settings → Code, planning and automation → Copilot → Policies → Features → Copilot Memory → Enabled —. Si dos organizaciones te asignan una licencia, se aplica el ajuste más restrictivo.

AI Controls de la empresa en GitHub: la familia de páginas que contiene la política de activación de Copilot Memory.Ver en 1:06 - 8
Las instrucciones personalizadas empiezan en la carpeta .github
Copilot escribe memorias; tú escribes instrucciones y las confirmas en el repositorio. Dos archivos hacen el trabajo: .github/copilot-instructions.md para las reglas que aplican a todo el repositorio, y .github/instructions/NAME.instructions.md para las reglas que solo aplican a algunas rutas, con las segundas comparadas contra los archivos que Copilot está tocando. La captura es el propio repositorio de VS Code de Microsoft, donde .github contiene copilot-instructions.md junto a instructions/, agents/, skills/, prompts/ y hooks/: copia la forma de un repositorio que lleva meses haciéndolo en público.

La carpeta .github de microsoft/vscode, con copilot-instructions.md al lado del directorio instructions.Ver en 1:40 - 9
Las reglas por ruta viven detrás de applyTo
Un archivo .instructions.md lleva front matter YAML que decide cuándo se carga. name es la etiqueta que se ve en la interfaz, description le dice al agente para qué tareas sirve el archivo, y applyTo es un glob relativo a la raíz del repositorio — la captura muestra applyTo: src/vs/workbench/contrib/chat/browser/aiCustomization/** en un archivo de instrucciones real de VS Code —. VS Code adjunta el archivo automáticamente cuando su applyTo coincide con un archivo que el agente crea o edita, y también puede traerlo a demanda cuando la description encaja con la tarea. Si omites ambos campos, el archivo solo se carga cuando lo adjuntas a mano.

Un archivo de instrucciones real cuyo glob applyTo lo mantiene pegado a una sola carpeta.Ver en 5:20
La plantilla de instrucciones personalizadas
- 10
Las instrucciones personales también son un archivo
Antes de la plantilla del repositorio conviene saber dónde van tus propios valores por defecto, porque tienen prioridad sobre ella. Copilot CLI y el host del agente leen ~/.copilot/copilot-instructions.md, y la captura muestra un ejemplo funcional con secciones ## Output, ## Working style y ## AI disclosure: fíjate en lo corto que es. En github.com el equivalente es Copilot Chat → tu foto de perfil → Personal instructions, donde GitHub también ofrece plantillas integradas y marcadores como [format]. El orden de prioridad es personal, luego repositorio y luego organización, y todos los conjuntos que coincidan se siguen enviando, así que nunca dejes que dos de ellos se contradigan.

Un copilot-instructions.md personal en la carpeta de inicio .copilot, con secciones de salida, estilo de trabajo y divulgación de IA.Ver en 4:10 - 11
Genera el primer borrador con /init y luego reemplázalo
No tienes que empezar con un archivo en blanco. Copilot CLI imprime «No copilot instructions found. Run /init to generate a copilot-instructions.md file for this project» cuando un repositorio no tiene ninguno — la captura es ese mensaje —. Ejecuta /init y después edita el resultado siguiendo la plantilla de abajo. Mantén la lista de comandos exacta, corta todo lo que el agente podría deducir leyendo el código y nunca pegues secretos, tokens ni datos de clientes: este archivo se confirma en el repositorio y lo leerá cada compañero y cada agente.

Copilot CLI informando de que un repositorio todavía no tiene archivo de instrucciones y ofreciendo /init.Ver en 10:00 - 12
Verifica qué archivos cargó realmente una sesión
Una plantilla que no puedes auditar es una suposición. En Copilot CLI, /instructions lista todos los archivos de instrucciones que la sesión tomó — la captura muestra el comando con una línea «Loading environment: 18 custom instructions, 3 extensions, 26 hooks, 27 skills, 4 MCP servers» encima — y cada archivo se puede desactivar para la sesión actual sin borrarlo. En VS Code el equivalente es el editor Agent Customizations que abre Chat: Open Customizations, y para las instrucciones del repositorio puedes desplegar la lista de referencias en la parte superior de una respuesta del chat para confirmar que se usó .github/copilot-instructions.md.

El comando /instructions en Copilot CLI, la forma más rápida de ver qué contexto cargó una sesión.Ver en 7:10
Copilot Memory vs. instrucciones personalizadas vs. instrucciones del repositorio
Hay tres cosas distintas que se llaman «memoria de Copilot». Solo la primera la escribe el agente; las otras dos son archivos que tú confirmas y mantienes. La comparación no busca un ganador: es la razón por la que las dos funciones conviven. Usa las memorias para las convenciones que nadie escribió y las instrucciones para las reglas que puedes demostrar.
| Aspecto | Copilot Memory (alojada) | Instrucciones personalizadas (.github/copilot-instructions.md) | Instrucciones por ruta (.github/instructions/*.instructions.md) |
|---|---|---|---|
| Qué es | Hechos que Copilot dedujo trabajando en el repositorio, guardados como un asunto más las citas que lo respaldan. | Reglas que escribes una vez y aplican a todas las peticiones del repositorio. | Reglas que escribes para una ruta, un lenguaje o una carpeta dentro del repositorio. |
| Quién lo escribe | Copilot, automáticamente, en respuesta al trabajo de usuarios que tienen la función activada. | Tú, a mano, en Markdown. | Tú, a mano, en Markdown con front matter YAML. |
| Dónde vive | En GitHub, limitada a un repositorio. Se consulta y se elimina en Repository → Settings → Copilot → Memory; no hay ningún archivo en tu árbol de trabajo. | En el repositorio, en .github/copilot-instructions.md, en la raíz del proyecto. | En el repositorio, bajo .github/instructions/, un archivo por ámbito. |
| Cuándo se carga | Automáticamente, pero solo después de validar las citas contra la rama actual. | En cada petición de ese repositorio, para el chat, los agentes y la revisión de código. | Solo cuando su glob applyTo coincide con un archivo en juego, o cuando el agente considera relevante la description. |
| Cuánto dura | 28 días; una memoria que se valida y se reutiliza se reescribe, lo que alarga su vida. | Hasta que alguien cambie o borre el archivo: está versionado junto al código. | Hasta que alguien cambie o borre el archivo. |
| Quién puede verlo | Cualquiera que trabaje en ese repositorio y tenga Copilot Memory activada; las memorias nunca salen del repositorio. | Cualquiera con acceso al repositorio, además de cada agente y cada revisor que lo lea. | Cualquiera con acceso al repositorio. |
| Cómo se edita | Se elimina en los ajustes del repositorio: la herramienta de memoria solo crea, no puede ver ni borrar. | Abre un pull request, como con cualquier otro archivo. | Abre un pull request, como con cualquier otro archivo. |
| Para qué sirve mejor | Convenciones que nadie documentó, la forma de una corrección que el revisor repite una y otra vez, patrones seguros para este código. | Stack y versiones, los comandos exactos de build y test, el mapa de carpetas, reglas de seguridad y de revisión. | Reglas de framework en un monorepo, convenciones de archivos de test, el estilo de una carpeta, los modismos de un lenguaje. |
Una plantilla de instrucciones personalizadas que cubre las seis cosas que Copilot realmente necesita
La propia guía de GitHub recomienda mantener el archivo corto y concreto: cuál es el stack, cómo ejecutar las cosas, dónde vive el código, qué convenciones son obligatorias y qué evitar. Los bloques de abajo están escritos para copiarlos y luego recortarlos: borra cualquier línea que el agente pueda deducir leyendo el repositorio, porque un archivo de instrucciones inflado diluye las reglas que importan. Guárdalo como .github/copilot-instructions.md en la raíz del repositorio.
# .github/copilot-instructions.md
## Project and stack
- Next.js 15 app router, TypeScript strict, Node 22.
- Package manager: pnpm. Never run npm or yarn install.
## Commands
- Build: pnpm build
- Lint: pnpm lint
- Test everything: pnpm test
- Test one file: pnpm test -- path/to/file.test.ts
## Layout
- Routes: src/app/**
- UI components: src/components/**
- Data access: src/lib/db.ts and src/lib/repositories/**
- Tests live next to the file they cover: *.test.ts
## Conventions
- Named exports only; no default exports from src/lib.
- Handle errors at the boundary and return early instead of nesting.
- Import order: node builtins, external packages, then @/ aliases.
## Testing and review
- Every behaviour change ships with a test in the same pull request.
- Run the single-file test before requesting review.
- Commit messages follow Conventional Commits.
## Do not
- Do not edit files under src/generated/**.
- Do not add a dependency without calling it out in the pull request.
- Do not log secrets, tokens or full request bodies.- 1Proyecto y stack — nombra el framework, el modo de lenguaje y el gestor de paquetes en una sola línea. Este es el bloque que evita que el agente dude entre npm, pnpm y yarn y genere un archivo de bloqueo de dependencias que no pediste.
- 2Comandos — los comandos exactos de build, lint, test y test de un solo archivo, copiados de tu configuración de CI y no de la memoria. Un comando de test equivocado es la línea más cara que puedes omitir.
- 3Estructura — dónde viven las rutas, los componentes, el acceso a datos y los tests. Señala directorios en lugar de describir la arquitectura en prosa; una ruta se puede comprobar, un párrafo no.
- 4Convenciones — nombres, manejo de errores, orden de imports y reglas de formato que tu equipo realmente aplica. Que cada regla sea binaria: o el código la cumple o no la cumple.
- 5Tests y revisión — qué tiene que salir con un test, qué se espera que verifique una revisión y tu convención de commits o de ramas. Este es el bloque que convierte una memoria que necesitarías en una garantía.
- 6No hacer — los antipatrones. Archivos generados, dependencias nuevas sin avisar, refactors que no vienen al caso, secretos en los logs. Las reglas negativas son la forma más barata de evitar toda una clase de pull requests malos.
Acótala con un segundo archivo
Mantén corto el archivo del repositorio moviendo las reglas de cada carpeta a sus propios archivos bajo .github/instructions/. El front matter es lo que hace que esto funcione: applyTo adjunta el archivo automáticamente a las rutas que coinciden, y description permite que el agente lo traiga para la tarea correcta. VS Code documenta name, description y applyTo como los campos admitidos.
---
name: 'React components'
description: 'Use when creating or updating components under src/components.'
applyTo: 'src/components/**/*.tsx'
---
# React components
- One component per file, named after the file.
- Props are typed with an explicit interface; no React.FC.
- Colocate styles with the component; no global class names.Deja tus propias preferencias fuera del archivo del repositorio
Todo lo que va sobre ti y no sobre el proyecto — la longitud de las respuestas, el tono, cómo quieres que se expliquen los diffs — pertenece a las instrucciones personales. Copilot CLI y el host del agente leen ~/.copilot/copilot-instructions.md; en github.com, abre Copilot Chat, haz clic en tu foto de perfil y elige Personal instructions, donde GitHub también incluye plantillas con marcadores como [format]. Las instrucciones personales tienen prioridad sobre las del repositorio y la organización, así que una preferencia definida ahí no necesita repetirse en cada repositorio.
Dos últimas reglas que aplican a todos los bloques: nunca pongas secretos, tokens ni datos de clientes en un archivo de instrucciones que se confirma en el repositorio, y nunca dejes que las instrucciones del repositorio y una memoria digan cosas distintas — cuando se contradicen, Copilot sigue ambos conjuntos de contexto como puede y el resultado es impredecible. Si una memoria contradice una regla que escribiste una y otra vez, elimina la memoria en lugar de debilitar la regla.
