--- name: create-agent description: Crea un nuevo agente especializado en .claude/agents/ con su SKILL.md y estructura completa argument-hint: [nombre] disable-model-invocation: true user-invocable: true allowed-tools: Bash, Read, Write, Edit, AskUserQuestion --- # create-agent Crea un nuevo agente especializado en `.claude/agents/` con archivo `SKILL.md` obligatorio siguiendo la estructura oficial de Claude Code. ## Sintaxis ```bash /create-agent [nombre] /create-agent api-client /create-agent cloud-deploy ``` ## Precondiciones - [ ] Carpeta `.claude/agents/` existe - [ ] No existe agente con el mismo nombre - [ ] Nombre cumple convenciones (minúsculas, guiones) ## Flujo ### 1. Validar nombre - Solo minúsculas, números y guiones - No nombres reservados (help, clear, exit) - Máximo 64 caracteres ```bash ls -d .claude/agents/*/ 2>/dev/null | xargs -n1 basename | grep -E "^${nombre}$" ``` Si existe, STOP. ### 2. Solicitar inputs usando AskUserQuestion Usar `AskUserQuestion` para obtener: #### Input 1: Información básica - **nombre**: minúsculas y guiones (ej: `api-client`) - **descripcion**: qué hace el agente y cuándo invocarlo (1-2 frases claras) #### Input 2: Configuración técnica - **model**: Modelo Claude a usar - `sonnet` (default): Balance costo/capacidad - `opus`: Tareas complejas que requieren máximo razonamiento - `haiku`: Tareas simples y rápidas - **tools**: Herramientas necesarias (separadas por coma) - Default: `Read, Write, Bash, Glob, Grep, Edit` - Opcionales: `WebFetch, WebSearch, NotebookEdit` #### Input 3: Configuración de proyecto - **gestiona_repo**: ¿Gestiona un repositorio local? - `si`: Crear carpeta en `~/.local_agentes/` - `no`: Solo definición de agente - **usa_mcp**: ¿Usa MCP servers? (gitea, sqlite, etc) - `si`: Solicitar configuración de MCP - `no`: Omitir mcpServers #### Input 4: MCP Servers (si usa_mcp = si) Preguntar qué MCP servers necesita: - `gitea`: Gestión de repositorios Gitea - `sqlite`: Bases de datos SQLite - `filesystem`: Sistema de archivos - `otro`: Configuración personalizada #### Input 5: Documentación - **rol**: Rol del agente (ej: "Eres un experto en...") - **capacidades**: Lista de capacidades principales - **flujo_trabajo**: Descripción del flujo de trabajo típico - **ejemplos_uso**: Ejemplos de cuándo invocar al agente ### 3. Crear carpeta del agente ```bash mkdir -p .claude/agents/${nombre} ``` ### 4. Crear carpeta local (si gestiona_repo = si) ```bash mkdir -p ~/.local_agentes/${nombre} ``` ### 5. Generar frontmatter YAML Estructura base: ```yaml --- name: ${nombre} description: ${descripcion} model: ${model} tools: ${tools} mcpServers: # Solo si usa_mcp = si - ${mcp_config} --- ``` ### 6. Generar SKILL.md completo Template oficial de agente: ```markdown --- name: ${nombre} description: ${descripcion} model: ${model} tools: ${tools} ${mcp_servers_section} --- # Agente ${nombre} ${rol} ## Tu entorno ${descripcion_entorno} ## Capacidades principales ${capacidades} ## Flujo de trabajo ${flujo_trabajo} ## Templates disponibles ${templates_codigo} ## Integración con otros agentes ${integracion} ## Ejemplos de uso ${ejemplos_uso} ## Comandos útiles ${comandos} ## Notas y convenciones ${notas} ``` ### 7. Templates de MCP Servers #### Gitea MCP ```yaml mcpServers: - gitea: type: stdio command: gitea-mcp args: - -t - stdio - --host - "${GITEA_URL}" - --token - "${GITEA_TOKEN}" ``` #### SQLite MCP ```yaml mcpServers: - sqlite: type: stdio command: sqlite-mcp args: - --db - "${DB_PATH}" ``` #### Filesystem MCP ```yaml mcpServers: - filesystem: type: stdio command: mcp-server-filesystem args: - --allowed-directories - "${ALLOWED_DIR}" ``` ### 8. Mostrar y confirmar ``` Agente creado: ${nombre} Ubicación: .claude/agents/${nombre}/SKILL.md ${carpeta_local ? "Carpeta local: ~/.local_agentes/" + nombre : ""} Configuración: - Model: ${model} - Tools: ${tools} - MCP: ${usa_mcp ? "Sí" : "No"} - Repositorio local: ${gestiona_repo ? "Sí" : "No"} ¿Te parece bien? - Si correcto: commit e integrar automáticamente - Si ajustes: edita manualmente antes de integrar ``` ### 9. Crear README.md en carpeta local (si gestiona_repo = si) ```bash cat > ~/.local_agentes/${nombre}/README.md <