feat: añadir skills de Claude Code para create-agent y parallel-fix-issues
Dos skills declarativas para automatizar flujos complejos: - create-agent: pipeline completo de scaffold + build + register + verify para nuevos agentes/robots Matrix, con templates para agent.go, config.yaml y system prompt. - parallel-fix-issues: implementación concurrente de múltiples issues usando git worktrees y agentes paralelos, con análisis de dependencias, verificación por wave e integración ordenada a master. Ambas skills incluyen templates y scripts auxiliares. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
# Template: config.yaml
|
||||
|
||||
Config minimalista para agentes. Solo incluir secciones que se usan.
|
||||
|
||||
## Variables de entorno
|
||||
|
||||
Normalizacion del agent-id para env vars:
|
||||
- Uppercase + guiones a underscores
|
||||
- **Nunca** eliminar sufijos
|
||||
- `monitor-bot` → `MONITOR_BOT`
|
||||
- `asistente-2` → `ASISTENTE_2`
|
||||
|
||||
## Agente con LLM (provider openai/anthropic)
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
id: <agent-id>
|
||||
name: "<display-name>"
|
||||
version: "1.0.0"
|
||||
enabled: true
|
||||
description: "<description>"
|
||||
tags: [<tags>]
|
||||
|
||||
personality:
|
||||
tone: friendly
|
||||
verbosity: concise
|
||||
language: es
|
||||
languages_supported: [es, en]
|
||||
emoji_style: minimal
|
||||
prefix: "<emoji>"
|
||||
error_style: helpful
|
||||
|
||||
templates:
|
||||
greeting: "Hola, soy <display-name>. ¿En qué puedo ayudarte?"
|
||||
unknown_command: "Comando desconocido. Usa !help para ver los comandos disponibles."
|
||||
permission_denied: "No tengo permiso para hacer eso."
|
||||
error: "Algo salió mal: {{.Error}}"
|
||||
|
||||
behavior:
|
||||
proactive: false
|
||||
ask_confirmation: false
|
||||
show_reasoning: false
|
||||
typing_indicator: true
|
||||
|
||||
llm:
|
||||
primary:
|
||||
provider: <provider>
|
||||
model: <model>
|
||||
api_key_env: <API_KEY_ENV>
|
||||
max_tokens: 4096
|
||||
temperature: 0.7
|
||||
|
||||
reasoning:
|
||||
system_prompt_file: "prompts/system.md"
|
||||
context_window: 16384
|
||||
memory_messages: 30
|
||||
|
||||
tool_use:
|
||||
enabled: <true|false>
|
||||
max_iterations: 5
|
||||
|
||||
tools:
|
||||
memory:
|
||||
enabled: true
|
||||
|
||||
knowledge:
|
||||
enabled: false
|
||||
|
||||
memory:
|
||||
enabled: true
|
||||
window_size: 30
|
||||
|
||||
matrix:
|
||||
homeserver: "https://matrix-af2f3d.organic-machine.com"
|
||||
user_id: "@<agent-id>:matrix-af2f3d.organic-machine.com"
|
||||
access_token_env: MATRIX_TOKEN_<NORM>
|
||||
|
||||
encryption:
|
||||
enabled: true
|
||||
store_path: "./agents/<agent-id>/data/crypto/"
|
||||
pickle_key_env: PICKLE_KEY_<NORM>
|
||||
trust_mode: tofu
|
||||
recovery_key_env: SSSS_RECOVERY_KEY_<NORM>
|
||||
|
||||
rooms:
|
||||
listen: []
|
||||
respond: []
|
||||
admin: []
|
||||
|
||||
filters:
|
||||
command_prefix: "!"
|
||||
mention_respond: true
|
||||
dm_respond: true
|
||||
ignore_bots: true
|
||||
min_power_level: 0
|
||||
|
||||
threads:
|
||||
enabled: true
|
||||
auto_thread: false
|
||||
|
||||
schedules: []
|
||||
```
|
||||
|
||||
### Valores por provider
|
||||
|
||||
| Provider | `api_key_env` | `model` (default) |
|
||||
|----------|---------------|--------------------|
|
||||
| `openai` | `OPENAI_API_KEY` | `gpt-4o` |
|
||||
| `anthropic` | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` |
|
||||
| `claude-code` | (no aplica) | `sonnet` |
|
||||
|
||||
### Si provider es claude-code
|
||||
|
||||
Reemplazar la seccion `llm.primary` con:
|
||||
|
||||
```yaml
|
||||
llm:
|
||||
primary:
|
||||
provider: claude-code
|
||||
claude_code:
|
||||
binary: "claude"
|
||||
timeout: 3m
|
||||
disable_tools: true
|
||||
working_dir: "/tmp/claude-agents/<agent-id>"
|
||||
permission_mode: "bypassPermissions"
|
||||
model: "sonnet"
|
||||
```
|
||||
|
||||
**Importante**: `working_dir` SIEMPRE debe apuntar fuera del repositorio.
|
||||
|
||||
## Robot (solo comandos)
|
||||
|
||||
Config minimo — sin LLM, sin tools, sin memoria:
|
||||
|
||||
```yaml
|
||||
agent:
|
||||
id: <agent-id>
|
||||
name: "<display-name>"
|
||||
version: "1.0.0"
|
||||
enabled: true
|
||||
description: "<description>"
|
||||
tags: [robot, commands]
|
||||
|
||||
personality:
|
||||
tone: friendly
|
||||
language: es
|
||||
prefix: "<emoji>"
|
||||
error_style: helpful
|
||||
|
||||
templates:
|
||||
unknown_command: "Comando desconocido. Usa !help para ver los comandos disponibles."
|
||||
|
||||
matrix:
|
||||
homeserver: "https://matrix-af2f3d.organic-machine.com"
|
||||
user_id: "@<agent-id>:matrix-af2f3d.organic-machine.com"
|
||||
access_token_env: MATRIX_TOKEN_<NORM>
|
||||
|
||||
encryption:
|
||||
enabled: true
|
||||
store_path: "./agents/<agent-id>/data/crypto/"
|
||||
pickle_key_env: PICKLE_KEY_<NORM>
|
||||
trust_mode: tofu
|
||||
recovery_key_env: SSSS_RECOVERY_KEY_<NORM>
|
||||
|
||||
filters:
|
||||
command_prefix: "!"
|
||||
dm_respond: true
|
||||
ignore_bots: true
|
||||
|
||||
threads:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
## Agente con tools habilitadas
|
||||
|
||||
Añadir las secciones de tools necesarias. Ejemplo con file_ops:
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
file_ops:
|
||||
enabled: true
|
||||
allowed_paths:
|
||||
- "/path/to/workspace"
|
||||
read_only: false
|
||||
|
||||
memory:
|
||||
enabled: true
|
||||
|
||||
knowledge:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
Tools disponibles: `ssh`, `http`, `file_ops`, `scripts`, `mcp`, `memory`, `knowledge`, `imdb`, `skills`.
|
||||
Reference in New Issue
Block a user