bd0c8c0dd3
agents/ ahora solo contiene carpetas de agentes (config, reglas, prompts). El runtime (Agent, Robot, Runner, registry, handler, commands, llm, memory) vive en devagents/ como package devagents. Cambios: - git mv agents/*.go → devagents/*.go - package agents → package devagents en todos los archivos movidos - Actualizar imports en agents/*/agent.go, cmd/launcher/, dev-scripts/ - Actualizar docs: CLAUDE.md, rules/, docs/e2ee.md, issues pendientes Build y tests pasan sin errores. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4.1 KiB
4.1 KiB
Reglas del proyecto
Guias operativas para LLMs que trabajan en este codebase. Cada regla describe como ejecutar una tarea especifica respetando la arquitectura y convenciones del proyecto.
Reglas disponibles
| Regla | Archivo | Cuando aplicarla |
|---|---|---|
| Crear agente | create_agent.md | Al crear un nuevo bot/agente Matrix completo |
| Crear herramienta | create_tool.md | Al añadir una nueva tool para LLM function calling |
| Crear comando | create_command.md | Al añadir un comando directo (!xxx) a un agente |
| Crear skill | create_skill.md | Al crear una nueva skill (flujo multi-paso declarativo) |
| Crear issue | create_issue.md | Al crear un nuevo issue/feature request en dev/issues/ |
| Arreglar issue | fix_issue.md | Al implementar/arreglar un issue existente de dev/issues/ |
Cuando consultar las reglas
- Crear agente: cuando el usuario pida crear un nuevo bot, agente, o asistente. Incluye la estructura de archivos, reglas puras, config YAML, system prompt y registro en el launcher.
- Crear herramienta: cuando el usuario pida añadir una nueva herramienta/tool al sistema. Incluye el patron Def (puro) + Exec (impuro), registro en runtime.go y habilitacion en config.
- Crear comando: cuando el usuario pida añadir un comando directo (!xxx) a un agente. Los comandos se resuelven sin pasar por reglas ni LLM.
- Crear skill: cuando el usuario pida añadir una skill (flujo multi-paso declarativo). Las skills combinan tools, logica condicional y conocimiento de dominio en un SKILL.md con recursos opcionales.
- Crear issue: cuando el usuario pida crear un nuevo issue, feature request o task. Usa el template en
.claude/templates/issue.md. - Arreglar issue: cuando el usuario pida implementar, arreglar o trabajar en un issue existente. Incluye crear rama (
/git-branch), implementar las tareas con tests, cerrar el issue, e integrar a master (/git-push).
Flujo de desarrollo — Trunk-based development (TBD)
El proyecto usa TBD estricto. master es el unico branch estable y siempre deployable. Nunca trabajar directamente en master.
master (trunk) ← siempre deployable
↑
└── issue/<NNNN>-<slug> ← rama efimera (horas, no dias)
├── commit: feat: ...
├── commit: test: ...
└── commit: docs: ...
merge --no-ff → master → push → delete branch
/git-branch— crea ramaissue/<NNNN>-<slug>desde master actualizado- Implementar con commits atomicos por bloque logico (no WIP, no mezclar tipos)
/git-push— tests → merge--no-ffa master → push → eliminar rama
Commits
- Cada commit es atomico por bloque logico con prefijo:
feat:,fix:,test:,docs:,refactor:,chore: - Titulo corto + cuerpo largo en español
- No WIP: nunca commitear "wip", "tmp", codigo a medias
- No squash:
--no-ffpreserva commits;git log --first-parentda vista limpia - No rebase -i: commits limpios desde el inicio
Feature flags (para features multi-issue)
Cuando una feature no cabe en una sola rama corta, desglosar en sub-issues. Cada sub-issue mergea codigo completo y testeado protegido por un feature flag (desactivado). Feature flag ≠ WIP — un flag protege codigo terminado, no codigo a medias.
Archivo: dev/feature_flags.json
Comandos
/git-branch— crear rama de trabajo (.claude/commands/git-branch.md)/git-push— integrar rama a master y publicar (.claude/commands/git-push.md)
Filosofia completa documentada en CLAUDE.md seccion "Trunk-based development".
Principio general
Todas las reglas respetan el patron pure core / impure shell:
pkg/es puro — nunca añadir side effectsshell/es impuro — todo I/O va aquidevagents/runtime: Agent/Robot ensambla core + shellagents/reglas puras por agente + config + promptstools/sigue el mismo patron:Def(datos puros) +Exec(funcion impura)