refactor: migrar policies/ a rules/ y añadir create_issue

Se renombra .claude/policies/ a .claude/rules/ para usar terminología
más clara y consistente. Se añade la nueva regla create_issue.md con
guía completa para crear issues en dev/issues/, incluyendo el template
en .claude/templates/issue.md. El índice (index.md) se actualiza con
la nueva regla.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 17:41:08 +00:00
parent 76de460d29
commit 9deffc12c9
7 changed files with 154 additions and 25 deletions
-25
View File
@@ -1,25 +0,0 @@
# Políticas del proyecto
Guías operativas para LLMs que trabajan en este codebase. Cada política describe cómo ejecutar una tarea específica respetando la arquitectura y convenciones del proyecto.
## Políticas disponibles
| Política | Archivo | Cuándo aplicarla |
|----------|---------|------------------|
| **Crear agente** | [create_agent.md](create_agent.md) | Al crear un nuevo bot/agente Matrix completo |
| **Crear herramienta** | [create_tool.md](create_tool.md) | Al añadir una nueva tool para LLM function calling |
| **Crear comando** | [create_command.md](create_command.md) | Al añadir un comando directo (!xxx) a un agente |
## Cuándo consultar las políticas
- **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 patrón Def (puro) + Exec (impuro), registro en runtime.go y habilitación 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.
## Principio general
Todas las políticas respetan el patrón **pure core / impure shell**:
- `pkg/` es puro — nunca añadir side effects
- `shell/` es impuro — todo I/O va aquí
- `agents/` compone ambos — reglas puras + ensamblado con shell
- `tools/` sigue el mismo patrón: `Def` (datos puros) + `Exec` (función impura)
+63
View File
@@ -0,0 +1,63 @@
# Regla: Crear un nuevo issue
Guia para crear issues de features, mejoras o bugs en `dev/issues/`.
## Inputs — preguntar al usuario si no los da
| Input | Requerido | Ejemplo |
|-------|-----------|---------|
| Titulo | si | "Hot reload de configuracion" |
| Descripcion/objetivo | si | "Recargar config sin reiniciar el agente" |
| Dependencias | no | "Requiere issue 010" |
## Pasos
### 1. Determinar el numero del issue
Buscar el numero mas alto en `dev/issues/` y usar el siguiente. Formato: 3 digitos con ceros a la izquierda (`019`, `020`, etc.).
### 2. Crear el archivo desde el template
Copiar `.claude/templates/issue.md` a `dev/issues/<NNN>-<slug>.md`.
El slug debe ser:
- Lowercase
- Palabras separadas por guiones
- Conciso (2-4 palabras)
- Ejemplo: `019-hot-reload.md`
### 3. Rellenar el template
Completar todas las secciones del template:
- **Objetivo**: 1-3 frases claras de que se quiere lograr
- **Contexto**: que existe, que falta, dependencias
- **Arquitectura**: archivos afectados, marcar `NEW` los nuevos. Incluir como se respeta pure core / impure shell
- **Tareas**: desglosar en fases con tareas numeradas (`1.1`, `1.2`, etc.). Cada tarea debe ser concreta y verificable. Incluir siempre una fase de tests y una de cleanup/docs
- **Ejemplo de uso**: flujo concreto mostrando la feature funcionando
- **Decisiones de diseno**: justificar las decisiones clave
- **Prerequisitos**: que debe estar implementado antes
- **Riesgos**: problemas potenciales y mitigacion
### 4. Actualizar el indice
Agregar una fila al final de la tabla en `dev/issues/README.md`:
```markdown
| <N> | <Titulo> | [<NNN>-<slug>.md](<NNN>-<slug>.md) | pendiente |
```
## Reglas
- **Patron pure core / impure shell**: toda feature debe explicar que va en `pkg/` (puro) vs `shell/` (impuro).
- **Tareas atomicas**: cada tarea debe ser implementable de forma independiente.
- **Numeracion continua**: nunca reusar numeros de issues eliminados.
- **Estado**: los issues nuevos siempre empiezan como `pendiente`.
- **Completados**: cuando se termine un issue, moverlo a `dev/issues/completed/` y actualizar el README.
## Verificacion
- [ ] Archivo creado en `dev/issues/<NNN>-<slug>.md`
- [ ] Todas las secciones del template rellenadas
- [ ] Fila agregada en `dev/issues/README.md`
- [ ] Numero de issue es consecutivo (no hay saltos ni duplicados)
+27
View File
@@ -0,0 +1,27 @@
# 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](create_agent.md) | Al crear un nuevo bot/agente Matrix completo |
| **Crear herramienta** | [create_tool.md](create_tool.md) | Al añadir una nueva tool para LLM function calling |
| **Crear comando** | [create_command.md](create_command.md) | Al añadir un comando directo (!xxx) a un agente |
| **Crear issue** | [create_issue.md](create_issue.md) | Al crear un nuevo issue/feature request en `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 issue**: cuando el usuario pida crear un nuevo issue, feature request o task. Usa el template en `.claude/templates/issue.md`.
## Principio general
Todas las reglas respetan el patron **pure core / impure shell**:
- `pkg/` es puro — nunca añadir side effects
- `shell/` es impuro — todo I/O va aqui
- `agents/` compone ambos — reglas puras + ensamblado con shell
- `tools/` sigue el mismo patron: `Def` (datos puros) + `Exec` (funcion impura)
+64
View File
@@ -0,0 +1,64 @@
# <NNN> — <Titulo corto y descriptivo>
## Objetivo
<Que se quiere lograr. 1-3 frases claras.>
## Contexto
- <Que existe actualmente que es relevante>
- <Que falta o que problema hay>
- <Dependencias con otros issues si las hay>
## Arquitectura
```
<Archivos y carpetas afectados, indicando NEW para archivos nuevos>
```
### Patron pure core / impure shell
- `pkg/` — <cambios puros, si aplica>
- `shell/` — <cambios impuros, si aplica>
- `agents/` — <cambios de composicion, si aplica>
- `tools/` — <cambios en tools, si aplica>
## Tareas
### Fase 1: <Nombre de la fase>
- [ ] **1.1** <Descripcion concreta de la tarea>
- [ ] **1.2** <Siguiente tarea>
### Fase 2: <Nombre de la fase>
- [ ] **2.1** <Descripcion concreta>
### Fase N: Tests
- [ ] **N.1** <Test especifico>
### Fase N+1: Cleanup y docs
- [ ] Actualizar `CLAUDE.md` si hay cambios en la estructura
- [ ] Actualizar docs relevantes
---
## Ejemplo de uso
```
<Flujo de ejemplo mostrando como se usaria la feature una vez implementada>
```
## Decisiones de diseno
- **<Decision>**: <justificacion breve>
## Prerequisitos
- <Que debe estar implementado antes>
## Riesgos
- **<Riesgo>**: <mitigacion>