Nuevo comando slash que automatiza la creacion de issues en dev/issues/. Sigue estrictamente la regla create_issue.md, evalua el tamaño del issue para desglosar en sub-issues con feature flags si es necesario, y registra todo en el README automaticamente. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.4 KiB
Command: create issue
Crea un issue nuevo en dev/issues/ siguiendo estrictamente la regla create_issue.md. Si el issue es grande, lo desglosa automaticamente en sub-issues con feature flags.
Inputs
Se necesitan los datos del issue. Si no se proporcionan, preguntar.
titulo: titulo corto y descriptivo (ej: "Hot reload de configuracion")descripcion: objetivo/descripcion de lo que se quiere logrardependencias(opcional): issues de los que depende (ej: "Requiere issue 0010")
Flujo obligatorio
1. Determinar el numero del issue
Buscar el numero mas alto en dev/issues/ y dev/issues/completed/ y usar el siguiente.
Formato: 4 digitos con ceros a la izquierda (0023, 0024, etc.).
ls dev/issues/ dev/issues/completed/ | grep -oP '^\d{4}' | sort -rn | head -1
2. Generar slug
A partir del titulo:
- Lowercase
- Palabras separadas por guiones
- Conciso (2-4 palabras)
- Ejemplo: "Hot reload de configuracion" →
hot-reload
3. Evaluar tamano del issue
Antes de escribir el issue, analizar el alcance y determinar si cabe en una sola rama corta (horas).
Criterios para desglosar en sub-issues:
- Toca mas de 2 capas del patron (pkg/ + shell/ + agents/ + tools/)
- Requiere mas de ~3 fases de implementacion
- El usuario lo indica explicitamente
- La descripcion implica multiples componentes independientes
Si es un issue simple (cabe en una rama):
- Crear un solo archivo
dev/issues/<NNNN>-<slug>.md - Seguir directo al paso 4
Si es un issue grande (necesita desglose):
- Crear el issue principal
dev/issues/<NNNN>-<slug>.mdcon seccion## Desglose multi-issue - Crear cada sub-issue como
dev/issues/<NNNN><letra>-<sub-slug>.md(ej:0023a-types,0023b-client) - Cada sub-issue es autocontenido: debe compilar, pasar tests, no romper master
- Agregar feature flag en la descripcion del issue principal
- Registrar todos los sub-issues en
dev/issues/README.md
4. Crear el issue desde el template
Copiar .claude/templates/issue.md y rellenar todas las secciones:
- Objetivo: 1-3 frases claras
- Contexto: que existe, que falta, dependencias
- Arquitectura: archivos afectados (marcar
NEWlos nuevos). Explicar que va enpkg/(puro) vsshell/(impuro) - Tareas: fases con tareas numeradas (
1.1,1.2, etc.). Cada tarea concreta y verificable. Siempre incluir fase de tests y fase de cleanup/docs - Ejemplo de uso: flujo concreto
- Decisiones de diseno: justificaciones clave
- Prerequisitos: que debe existir antes
- Riesgos: problemas potenciales y mitigacion
5. Para issues multi-issue — contenido adicional
En el issue principal, agregar despues de las tareas:
## Desglose multi-issue
Este issue se implementa en sub-issues independientes, cada uno en su propia rama.
| Sub-issue | Rama | Alcance | Estado |
|-----------|------|---------|--------|
| <NNNN>a-<slug> | issue/<NNNN>a-<slug> | <que cubre> | pendiente |
| <NNNN>b-<slug> | issue/<NNNN>b-<slug> | <que cubre> | pendiente |
| ...
### Feature flag
Nombre: `<nombre-del-flag>`
Se activa en el ultimo sub-issue cuando todo esta integrado.
### Progreso por tarea
- [ ] **1.1** <tarea> — sub-issue <NNNN>a
- [ ] **1.2** <tarea> — sub-issue <NNNN>a
- [ ] **2.1** <tarea> — sub-issue <NNNN>b
...
Cada sub-issue individual debe tener su propio archivo con:
- Objetivo especifico del sub-issue
- Tareas que le corresponden del issue principal
- Nota de que es parte de un issue mayor
6. Registrar feature flag (solo multi-issue)
Actualizar dev/feature_flags.json:
{
"<nombre-del-flag>": {
"enabled": false,
"issue": "<NNNN>",
"description": "<descripcion breve>",
"added": "<YYYY-MM-DD>"
}
}
7. Actualizar el indice
En dev/issues/README.md, agregar filas al final de la tabla.
Issue simple:
| <N> | <Titulo> | [<NNNN>-<slug>.md](<NNNN>-<slug>.md) | pendiente |
Issue multi-issue (agregar fila por cada sub-issue tambien):
| <N> | <Titulo> | [<NNNN>-<slug>.md](<NNNN>-<slug>.md) | pendiente |
| <N>a | <Titulo> (parte a) | [<NNNN>a-<slug>.md](<NNNN>a-<slug>.md) | pendiente |
| <N>b | <Titulo> (parte b) | [<NNNN>b-<slug>.md](<NNNN>b-<slug>.md) | pendiente |
8. Verificar
- Archivo(s) creado(s) en
dev/issues/ - Todas las secciones del template rellenadas
- Fila(s) agregada(s) en
dev/issues/README.md - Numero de issue es consecutivo (sin saltos ni duplicados)
- Si es multi-issue: sub-issues creados, feature flag en
dev/feature_flags.json, seccion de desglose en issue principal
9. Reportar al usuario
Mostrar resumen:
- Numero y titulo del issue
- Si fue desglosado: listar sub-issues con su alcance
- Recordar: usar
/fix-issue <NNNN>(o/fix-issue <NNNN>a,<NNNN>b, etc.) para implementar
Reglas criticas
- Seguir
create_issue.mdde forma estricta - Patron pure core / impure shell: toda feature debe explicar que va en
pkg/vsshell/ - Tareas atomicas: cada tarea debe ser implementable de forma independiente
- Numeracion continua: nunca reusar numeros
- Estado: issues nuevos siempre
pendiente - Issues grandes: desglosar en sub-issues con feature flags, nunca dejar una rama abierta por dias
- Feature flag != WIP: un flag protege codigo terminado y testeado, no codigo a medias
- No commitear: este comando solo crea archivos en
dev/issues/. No hace commits ni crea ramas