Skip to content

MCPs, Skills y prompt library

Agent Skills

Conocimiento portable con ejemplos reales y scripts

MCPs del entorno

Conectar al agente con GitLab, DB, browser, Figma y más

Prompt library

Slash commands Angular y Laravel reutilizables

Patrones de fallo

Cuándo no usar el agente y cómo reaccionar


Subagentes — el agente lanza subagentes automáticamente cuando detecta que una subtarea se beneficia de contexto aislado. El patrón más potente es el coordinador/trabajador:

---
name: Feature Builder
description: Orquesta Planner, Coder y Reviewer de forma autónoma
tools:
- agent
agents:
- Planner
- Coder
- Reviewer
---
Orquesta el ciclo completo delegando a cada agente especialista.

A diferencia de los handoffs (el dev aprueba cada paso), aquí el coordinador lo gestiona solo. Está en estado experimental — verifica que funciona con tu versión.

Agentes compartidos a nivel de organización — los agentes en .github/agents/ están disponibles para todos los que tienen acceso al repo. Se pueden definir también a nivel de organización de GitHub para que aparezcan en el picker de todos los devs sin configuración adicional.


Agent Skills — conocimiento portable y reutilizable

Section titled “Agent Skills — conocimiento portable y reutilizable”

SKILL.md es distinto a las instrucciones: incluye scripts, ejemplos y recursos. Carga progresiva: Copilot carga solo lo que necesita para cada tarea. Funciona en Copilot VS Code, CLI y coding agent.

Estructura de un skill:

  • Directory.github/skills/
    • Directorytesting/
      • SKILL.md
      • Directoryexamples/
        • component.spec.ts
        • feature.test.php
      • Directoryscripts/
        • run-tests.sh

Ejemplo de .github/skills/testing/SKILL.md:

---
name: testing
description: Convenciones y patrones de testing del proyecto
---
# Skill: Testing del proyecto
## Angular (Karma + Jasmine)
- Tests en `*.spec.ts` junto al fichero fuente
- TestBed.configureTestingModule con standalone components
- Mockear servicios con jasmine.createSpyObj
- Cubrir: happy path, error handling, edge cases
## Laravel (PHPUnit)
- Feature tests en tests/Feature/
- Unit tests en tests/Unit/
- Factories para datos de prueba, DatabaseTransactions en los tests
## Reglas del equipo
- Min. 80% de cobertura en código nuevo
- Cada MR incluye tests del código añadido

MCPs — conectores al entorno real del equipo

Section titled “MCPs — conectores al entorno real del equipo”

MCP (Model Context Protocol) es el estándar abierto para conectar el agente con herramientas externas. Se configuran en .vscode/mcp.json. El agente los usa como tools adicionales sin que el dev cambie nada del flujo.

{
"servers": {
"nombre": {
"type": "stdio",
"command": "npx",
"args": ["-y", "paquete-mcp"],
"env": {
"TOKEN": "${env:TOKEN}"
}
}
}
}

Las credenciales van siempre en variables de entorno (${env:VARIABLE}), nunca hardcodeadas.


Conecta el agente con Figma. El dev selecciona un frame y el agente genera el componente Angular con Signals.

"figma": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@figma/mcp"],
"env": { "FIGMA_TOKEN": "${env:FIGMA_TOKEN}" }
}
  • “Genera el componente Angular para el frame ‘UserCard’ de este Figma”
  • “Compara el componente implementado con el diseño en Figma y detecta diferencias visuales”

hyper-mcp — comandos locales como tools del agente

Section titled “hyper-mcp — comandos locales como tools del agente”

Meta-MCP que expone comandos del proyecto como herramientas del agente vía un fichero TOML — sin escribir código de servidor MCP.

"hyper": {
"type": "stdio",
"command": "hyper-mcp",
"args": ["--config", ".github/hyper-mcp.toml"]
}

Ejemplo de .github/hyper-mcp.toml:

[[tools]]
name = "run_tests"
description = "Ejecuta el suite de tests completo"
command = "pnpm test"
[[tools]]
name = "check_style"
description = "Verifica el estilo de código sin modificar"
command = "vendor/bin/php-cs-fixer fix --dry-run"
[[tools]]
name = "clear_cache"
description = "Limpia el cache de Laravel"
command = "php artisan cache:clear"

Útil como alternativa ligera a construir un MCP completo para scripts simples del equipo.


PostgreSQL — consultas a la base de datos

Section titled “PostgreSQL — consultas a la base de datos”

El agente consulta directamente la base de datos de desarrollo para verificar datos, explorar el esquema o diagnosticar problemas.

"postgresql": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": { "DATABASE_URL": "${env:DATABASE_URL}" }
}

Casos de uso:

  • “¿Cuál es el esquema de la tabla orders?”
  • “¿Cuántos usuarios tienen el estado ‘pending’ desde hace más de 7 días?”
  • “¿La migration que acabo de crear altera la estructura correctamente?”

El agente inspecciona el estado del cache, ve las claves activas y diagnostica problemas de sesión o invalidación.

"redis": {
"type": "stdio",
"command": "npx",
"args": ["-y", "redis-mcp-server"],
"env": { "REDIS_URL": "${env:REDIS_URL}" }
}

Casos de uso:

  • “¿Qué claves están activas en el cache del servicio de productos?”
  • “¿El cache de la homepage se invalida correctamente cuando se actualiza un producto?”
  • “Muéstrame el contenido de la sesión del usuario con ID 42”

remembrances-mcp — memoria persistente entre sesiones. El agente recuerda decisiones, convenciones y contexto de conversaciones anteriores sin que el dev lo repita cada vez. Configura qué tipo de información persistir y durante cuánto tiempo.

mesnada — MCP del equipo para acceder a infraestructura interna o procesos específicos del proyecto. Documentación en el repo de configuración del equipo.

mycommandmcp — expone comandos propios del proyecto como tools del agente. Patrón similar a hyper-mcp pero con lógica propia en Node.js o Python.

Los MCPs propios se configuran en .vscode/mcp.json exactamente igual que los públicos, apuntando al servidor local o al VPS del equipo.


/componente-signals:

---
mode: agent
agent: Coder
description: Componente Angular standalone con Signals
---
Crea un componente Angular standalone.
- Nombre: {{ nombre }} | Módulo: {{ modulo }}
- input() para props, signal() para estado local, computed() para derivados
- OnPush change detection
- Tests Karma+Jasmine: happy path + 2 edge cases

/controller-rest:

---
mode: agent
agent: Coder
description: Controller REST Laravel con tests
---
Crea un controller REST para {{ recurso }}.
- Form Request para validación, Policy para autorización, JsonResource
- PHPUnit feature test cubriendo todos los endpoints y sus errores

/migration-safe:

---
mode: agent
agent: Coder
description: Migration Laravel con rollback funcional
---
Crea una migration para {{ descripcion }}.
- down() funcional (rollback real)
- Factory + seeder de datos de prueba

El agente es un par de programación capaz, no el responsable de las decisiones.

No usar para:

  • Decisiones de arquitectura con impacto a largo plazo
  • Lógica de negocio que requiere conocimiento del dominio del cliente
  • Seguridad crítica: autenticación, autorización, criptografía
  • Revisiones finales antes de producción

Sí usar para: implementar una vez que la decisión está tomada.

Cuando falla: reformula en la misma conversación, no empieces de cero. “No, lo que quiero es…” sobre el mismo hilo funciona mejor que repetir el prompt completo.


  1. Crear .vscode/mcp.json con al menos los MCPs más útiles para el proyecto: GitLab (MRs, issues, pipelines), PostgreSQL (base de datos de desarrollo) y 1 adicional a elección

  2. Configurar las variables de entorno necesarias en .env local (nunca en el repo)

  3. Probar cada MCP con peticiones reales del proyecto — anotar qué hace cada uno

  4. Crear .github/skills/testing/SKILL.md con las convenciones de testing reales del equipo

  5. Añadir al menos 1 ejemplo real en examples/: un spec Angular y/o un PHPUnit test

  6. Verificar: pedir “genera tests para [función X]” — comprobar que sigue las convenciones del Skill sin repetirlas

  7. Crear .github/prompts/componente-signals.prompt.md y /controller-rest.prompt.md

  8. Anotar: ¿qué MCP aporta más valor inmediato al equipo? — traer la respuesta a la siguiente sesión