Saltar al contenido principal

Cheatsheet — Referencia Rápida

Sin teoría, solo código y rutas. Copia y pega.


Ubicaciones de Archivos por Producto

ArchivoGitHub Copilot CLIClaude CodeGemini CLICursor
Instrucciones globales~/.copilot/instructions.md~/.claude/CLAUDE.md~/.gemini/GEMINI.md~/.cursor/rules/
Instrucciones del repo.github/copilot-instructions.mdCLAUDE.mdGEMINI.md.cursor/rules/
Agentes (usuario)~/.copilot/agents/~/.claude/agents/
Agentes (repo).github/copilot/agents/.claude/agents/.cursor/rules/
Config MCP (usuario)~/.copilot/mcp.json~/.claude/claude_desktop_config.json~/.gemini/settings.jsonConfiguración IDE
Config MCP (repo).github/copilot/mcp.json.claude/mcp.json
Hooks~/.claude/settings.json
Comandos slash~/.claude/commands/

Estructura de Agent YAML — GitHub Copilot CLI

# ~/.copilot/agents/nombre-agente.yml
name: nombre-agente # ← sin espacios, en minúsculas
description: Qué hace este agente # ← aparece en el autocompletado
tools: # ← herramientas disponibles
- read_file
- write_file
- list_directory
- run_terminal_command
- web_search # ← si necesita buscar en internet
instructions: | # ← el system prompt del agente
Eres un experto en...

## Tu proceso:
1. Primero haz X
2. Luego haz Y
3. Finalmente reporta Z

## Restricciones:
- Nunca hagas A
- Siempre incluye B

Campos requeridos: name, description, instructions
Campos opcionales: tools (si se omite, el agente solo responde con texto)


Estructura de CLAUDE.md

# Contexto del Proyecto: [Nombre]

## Stack Tecnológico
- Runtime: Node.js 20
- Lenguaje: TypeScript 5
- Framework: Express / NestJS / Next.js
- Base de datos: PostgreSQL + Prisma
- Tests: Jest

## Convenciones de Código
- [Regla 1]
- [Regla 2]

## Estructura del Proyecto
\`\`\`
src/
modules/ ← Módulos de negocio
shared/ ← Código compartido
config/ ← Configuración
\`\`\`

## Lo que NUNCA debes hacer
- console.log en producción
- any en TypeScript
- Lógica en controllers (va en services)

## Comandos Útiles
- \`npm run dev\` — servidor de desarrollo
- \`npm run test\` — ejecutar tests
- \`npm run build\` — compilar para producción

Hooks — settings.json Completo (Claude Code)

{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "/ruta/a/tu/hook-pre-bash.sh"
}
]
},
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "/ruta/a/tu/hook-pre-write.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "/ruta/a/tu/hook-post-write.sh"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "/ruta/a/tu/hook-stop.sh"
}
]
}
]
}
}

Eventos válidos: PreToolUse, PostToolUse, Notification, Stop
Matchers comunes: Bash, Write, Read, Edit, * (todos)

Hook Script Mínimo

#!/bin/bash
# El input viene por stdin como JSON
INPUT=$(cat)

# Para PreToolUse: retorna allow o block
echo '{"decision": "allow"}'

# Para bloquear:
# echo '{"decision": "block", "reason": "Motivo del bloqueo"}'

MCP Config — Estructura Completa

{
"servers": {
"nombre-servidor": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-nombre"],
"env": {
"API_KEY": "${MI_API_KEY}",
"BASE_URL": "https://api.ejemplo.com"
}
},
"servidor-local": {
"command": "node",
"args": ["/ruta/a/mi-servidor-mcp/index.js"],
"env": {}
}
}
}

Servidores MCP comunes:

  • @modelcontextprotocol/server-github — GitHub API
  • @modelcontextprotocol/server-filesystem — Sistema de archivos
  • @modelcontextprotocol/server-postgres — PostgreSQL
  • @modelcontextprotocol/server-brave-search — Búsqueda web

Comandos Comunes

AcciónGitHub Copilot CLIClaude CodeGemini CLI
Iniciargh copilot suggest "..."claudegemini
Modo chatgh copilot suggest (interactivo)claudegemini
Invocar agente@nombre-agente (en chat)@nombre-agente (en chat)
Comando slash/user:nombre-comando
Ver ayudagh copilot --helpclaude --helpgemini --help
Versióngh copilot --versionclaude --versiongemini --version

Cursor Rules — Estructura .mdc

---
description: Descripción breve de cuándo aplicar esta regla
globs: ["**/*.ts", "**/*.tsx"]
alwaysApply: false
---

# Título de la Regla

## Instrucción 1
Detalle de la instrucción...

## Instrucción 2
Detalle...

## Ejemplo Correcto
\`\`\`typescript
// código de ejemplo
\`\`\`

Campos frontmatter:

  • description: cuándo usar esta regla (el modelo lo lee para decidir si aplica)
  • globs: patrones de archivos donde aplica automáticamente
  • alwaysApply: si true, se inyecta en todas las conversaciones del contexto

Diagnóstico Rápido

# ¿Qué CLI tengo instalado?
which gh claude gemini

# ¿Dónde están mis agentes de Copilot?
ls ~/.copilot/agents/

# ¿Dónde están mis agentes de Claude?
ls ~/.claude/agents/

# ¿Es válido mi JSON de settings?
cat ~/.claude/settings.json | python3 -m json.tool

# ¿Tiene permisos mi hook?
ls -la ~/.claude/hooks/

# ¿Está corriendo mi MCP server?
npx -y @modelcontextprotocol/server-github --version

Recordatorio: Modelo ≠ Producto

Si usas el comando...Eres usuario de...Agentes en...
gh copilotGitHub Copilot CLI~/.copilot/agents/
claudeClaude Code~/.claude/agents/
geminiGemini CLINo aplica
IDE con chatCursor / Copilot en VS Code.cursor/rules/ o .github/copilot/agents/
aviso

GitHub Copilot CLI puede usar Claude Sonnet como modelo, pero sus archivos de configuración van en ~/.copilot/, NO en ~/.claude/. El producto manda, no el modelo.