Guía de Personalización de GitHub Copilot en VS Code

En este artículo descubrirás cómo adaptar GitHub Copilot a tu flujo de trabajo en Visual Studio Code. Aprenderás a usar archivos de instrucciones, prompts reutilizables, agentes personalizados, skills especializadas y hooks automatizados para maximizar la productividad y el control sobre la IA. Esta guía está pensada para desarrolladores y equipos que buscan sacar el máximo partido a Copilot, tanto en proyectos personales como colaborativos.


1. Instrucciones de Workspace — copilot-instructions.md / AGENTS.md

Directrices que se aplican automáticamente a todas las solicitudes en todo el proyecto.

ArchivoUbicaciónPropósito
copilot-instructions.md.github/Estándares generales del proyecto (recomendado, cross-editor)
AGENTS.mdRaíz o subcarpetasEstándar abierto, soporte de jerarquía para monorepos

Usa solo uno de los dos, no ambos.

Jerarquía en monorepos con AGENTS.md

/AGENTS.md              # Configuración raíz
/frontend/AGENTS.md     # Específico para frontend (sobrescribe raíz)
/backend/AGENTS.md      # Específico para backend (sobrescribe raíz)

Ejemplo

# Project Guidelines

## Code Style
- Use TypeScript strict mode
- Prefer functional components with hooks

## Build and Test
- Run `pnpm test` before committing
- Use Vitest for unit tests

## Conventions
- API routes follow RESTful naming
- All components go in `src/components/`

Cuándo usarlo

Fuentes


2. Instrucciones por Archivo/Tarea — *.instructions.md

Directrices que se cargan bajo demanda cuando son relevantes para la tarea actual, o explícitamente cuando los archivos en contexto coinciden con un patrón.

UbicaciónAlcance
.github/instructions/*.instructions.mdWorkspace (equipo)
~/Library/Application Support/Code/User/instructions/*.instructions.mdUsuario (personal)

Frontmatter

---
description: "Use when writing database migrations, schema changes, or data transformations"
name: "Migration Guidelines"       # Opcional
applyTo: "**/*.ts"                  # Opcional, auto-adjuntar para archivos que coincidan
---

Modos de descubrimiento

ModoActivaciónCaso de uso
On-demand (description)El agente detecta relevanciaTareas: migraciones, refactoring, API
Explícito (applyTo)Archivos que coincidan con el globArchivos: estándares por lenguaje/framework
ManualAdd Context → InstructionsAdjuntar manualmente
On-demand (description)El agente detecta relevanciaTareas: migraciones, refactoring, API
Explícito (applyTo)Archivos que coincidan con el globArchivos: estándares por lenguaje/framework
ManualAdd ContextInstructionsAdjuntar manualmente

Patrones de applyTo

applyTo: "**"                    # SIEMPRE incluido (usar con precaución)
applyTo: "**/*.py"               # Todos los archivos Python
applyTo: ["src/**", "lib/**"]    # Múltiples patrones (OR)
applyTo: "src/api/**/*.ts"       # Carpeta + extensión específica

Ejemplo

---
description: "Use when writing React components. Covers component patterns, hooks, and testing."
applyTo: "src/components/**/*.tsx"
---

# React Component Guidelines

- Use functional components with TypeScript
- Extract custom hooks for shared logic
- Co-locate tests: `Component.test.tsx` junto al componente

Cuándo usarlo

Fuentes


3. Prompts Reutilizables — *.prompt.md

Plantillas de tareas reutilizables que se invocan bajo demanda en el chat. Para tareas puntuales y enfocadas con entradas parametrizadas.

UbicaciónAlcance
.github/prompts/*.prompt.mdWorkspace (equipo)
~/Library/Application Support/Code/User/prompts/*.prompt.mdUsuario (personal)

Frontmatter

---
description: "Generate test cases for selected code"
name: "Generate Tests"              # Opcional
argument-hint: "Describe the test scenario..."  # Opcional
agent: "agent"                      # Opcional: ask, agent, plan, o agente custom
model: "Claude Sonnet 4"            # Opcional, soporta fallback con array
tools: [search, web]                # Opcional: built-in, MCP (<server>/*), extensión
---

Fallback de modelo

model: ['GPT-5 (copilot)', 'Claude Sonnet 4.5 (copilot)']

Ejemplo

---
description: "Generate comprehensive test cases for selected code"
agent: "agent"
---

Generate comprehensive test cases for the provided code:
- Include edge cases and error scenarios
- Follow existing test patterns in the codebase
- Use descriptive test names

Context: [test config](./vitest.config.ts)

Invocación

Cuándo usarlo

Fuentes


4. Agentes Personalizados — *.agent.md

Personas especializadas con herramientas, instrucciones y comportamientos específicos. Para workflows orquestados con restricciones de herramientas por rol.

UbicaciónAlcance
.github/agents/*.agent.mdWorkspace (equipo)
~/Library/Application Support/Code/User/agents/*.agent.mdUsuario (personal)

Frontmatter

---
description: "Frontend specialist for React and CSS"
name: "Frontend Agent"
tools: [search, edit, execute, web]     # Aliases, MCP, extensiones
model: "Claude Sonnet 4"               # Soporta array para fallback
agents: [helper-agent]                  # Subagentes permitidos (omitir = todos)
user-invocable: true                    # Visible en el picker (default: true)
disable-model-invocation: false         # Prevenir invocación como subagente
handoffs: [...]                         # Transiciones a otros agentes
---

Aliases de herramientas

AliasPropósito
executeEjecutar comandos shell
readLeer contenido de archivos
editEditar archivos
searchBuscar archivos o texto
agentInvocar agentes como subagentes
webFetch de URLs y búsqueda web
todoGestionar listas de tareas

Control de invocación

AtributoDefaultEfecto
user-invocable: falsetrueOculto del picker, solo accesible como subagente
disable-model-invocation: truefalseOtros agentes no pueden invocarlo

Ejemplo

---
description: "Database specialist. Use for schema design, query optimization, and migrations."
tools: [search, read, execute]
model: "Claude Sonnet 4"
---

# Database Agent

You are a database specialist. Focus on:
- Schema design and normalization
- Query performance optimization
- Safe migration strategies
- Always suggest rollback plans

Cuándo usarlo

Fuentes


5. Skills (Habilidades) — SKILL.md

Carpetas con instrucciones, scripts y recursos que los agentes cargan bajo demanda para tareas especializadas multi-paso.

UbicaciónAlcance
.github/skills//SKILL.mdProyecto
.agents/skills//SKILL.mdProyecto
.claude/skills//SKILL.mdProyecto
~/.copilot/skills//SKILL.mdPersonal
~/.agents/skills//SKILL.mdPersonal

Estructura de carpeta

.github/skills/mi-skill/
├── SKILL.md           # Obligatorio (nombre debe coincidir con carpeta)
├── scripts/           # Scripts ejecutables
├── references/        # Documentación auxiliar
└── assets/            # Templates, boilerplate

Frontmatter

---
name: mi-skill                   # Obligatorio: 1-64 chars, minúsculas, alfanumérico + guiones
description: 'Descripción de qué hace y cuándo usarlo. Max 1024 chars.'
argument-hint: 'Hint opcional para invocación con /'
user-invocable: true             # Opcional: mostrar como slash command
disable-model-invocation: false  # Opcional: deshabilitar carga automática
---

Ejemplo

---
name: webapp-testing
description: 'Test web applications using Playwright. Use for verifying frontend, debugging UI, capturing screenshots.'
---

# Web Application Testing

## When to Use
- Verify frontend functionality
- Debug UI behavior

## Procedure
1. Start the web server
2. Navigate to the target page
3. Run automated checks using [test script](./scripts/run-tests.js)
4. Capture screenshots for visual regression

Cuándo usarlo

Fuentes


6. Hooks (Automatización) — *.json

Comandos shell deterministas que se ejecutan en eventos del ciclo de vida del agente. Para enforcement de políticas y automatización.

UbicaciónAlcance
.github/hooks/*.jsonWorkspace (equipo)

Eventos disponibles

EventoSe dispara cuando…
SessionStartPrimer prompt de una nueva sesión
UserPromptSubmitEl usuario envía un prompt
PreToolUseAntes de invocar una herramienta
PostToolUseDespués de usar una herramienta exitosamente
PreCompactAntes de compactar contexto
SubagentStartUn subagente inicia
SubagentStopUn subagente termina
StopLa sesión del agente finaliza

Ejemplo

{
  "hooks": {
    "PreToolUse": [
      {
        "type": "command",
        "command": "./scripts/validate-tool.sh",
        "timeout": 15
      }
    ],
    "PostToolUse": [
      {
        "type": "command",
        "command": "npx prettier --write",
        "timeout": 10
      }
    ]
  }
}

Cuándo usarlo

Fuentes


Resumen Comparativo

PrimitivaArchivoComportamientoInvocación
Instrucciones globalescopilot-instructions.md / AGENTS.mdSiempre activoAutomática
Instrucciones por archivo*.instructions.mdPor patrón de archivo o tareaAutomática / Manual
Prompts*.prompt.mdTarea puntual parametrizada/ en chat
Agentes*.agent.mdPersona con tools restringidasPicker de agentes
SkillsSKILL.md + carpetaWorkflow multi-paso con assets/ en chat
Hooks*.jsonComandos shell en eventosAutomática

¿Cuál elegir?

¿Aplica a TODO el proyecto?
  └─ Sí → copilot-instructions.md o AGENTS.md
  └─ No → ¿Aplica a ciertos archivos o tareas?
              └─ Sí → *.instructions.md
              └─ No → ¿Es una tarea puntual?
                          └─ Sí, simple → *.prompt.md
                          └─ Sí, multi-paso con assets → SKILL.md
                          └─ Necesita tools restringidas → *.agent.md
                          └─ Debe ser determinista → hooks/*.json

Recursos Generales