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:
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user