refacil-sdd-ai 1.0.4 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -79,6 +79,7 @@ Una vez instalado, estos comandos estan disponibles en Claude Code y Cursor:
79
79
 
80
80
  ```
81
81
  /refacil:propose "descripcion del feature"
82
+ # → Revisar y aprobar artefactos (proposal, specs, design, tasks)
82
83
  /refacil:apply
83
84
  /refacil:test
84
85
  /refacil:verify
@@ -92,6 +93,7 @@ Una vez instalado, estos comandos estan disponibles en Claude Code y Cursor:
92
93
  ```
93
94
  /refacil:bug "descripcion del error"
94
95
  /refacil:review
96
+ /refacil:up-code
95
97
  ```
96
98
 
97
99
  ### Explorar codigo
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "refacil-sdd-ai",
3
- "version": "1.0.4",
3
+ "version": "1.0.7",
4
4
  "description": "SDD-AI: Specification-Driven Development with AI — metodologia de desarrollo con IA usando OpenSpec, Claude Code y Cursor",
5
5
  "bin": {
6
6
  "refacil-sdd-ai": "./bin/cli.js"
@@ -31,6 +31,6 @@
31
31
  "url": ""
32
32
  },
33
33
  "engines": {
34
- "node": ">=18.0.0"
34
+ "node": ">=20.19.0"
35
35
  }
36
36
  }
@@ -10,12 +10,58 @@ Este comando envuelve la funcionalidad de OpenSpec apply y agrega las convencion
10
10
 
11
11
  ## Antes de empezar
12
12
 
13
- Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones, arquitectura y patrones.
14
- Si NO existe `AGENTS.md`, informa al usuario: "No se encontro AGENTS.md. Ejecuta /refacil:setup para generarlo." y detente.
13
+ ### Verificar prerequisitos
14
+
15
+ 1. **OpenSpec instalado**: Ejecuta `openspec --version 2>&1`. Si el comando falla o no se reconoce, informa al usuario: "OpenSpec no esta instalado. Ejecuta `/refacil:setup` para instalarlo y configurar el repositorio." y **detente**.
16
+
17
+ 2. **OpenSpec inicializado**: Verifica que exista la carpeta `openspec/` en la raiz del proyecto. Si no existe, informa al usuario: "OpenSpec no esta inicializado en este repositorio. Ejecuta `/refacil:setup` para configurarlo." y **detente**.
18
+
19
+ 3. **AGENTS.md**: Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones, arquitectura y patrones. Si NO existe, informa al usuario: "No se encontro AGENTS.md. Ejecuta `/refacil:setup` para generarlo." y **detente**.
15
20
 
16
21
  ## Instrucciones
17
22
 
18
- ### Paso 1: Delegar a OpenSpec apply
23
+ ### Paso 1: Validar rama de trabajo
24
+
25
+ Ejecuta `git branch --show-current` para obtener la rama actual.
26
+
27
+ #### Ramas protegidas: `master`, `main`, `develop`, `dev`, `testing`, `qa`
28
+
29
+ - **Si la rama es cualquier rama protegida** (`master`, `main`, `develop`, `dev`, `testing`, `qa`):
30
+
31
+ Informa al usuario que no se pueden hacer cambios directamente en esa rama y **pidele el numero de tarea de Jira**:
32
+ ```
33
+ Estas en la rama '[nombre-rama]' que es una rama protegida.
34
+ No se deben hacer cambios directamente aqui.
35
+
36
+ Cual es el numero de tarea de Jira para este cambio? (ejemplo: RF-5088)
37
+ ```
38
+
39
+ **Crear la rama siempre desde develop/dev actualizado:**
40
+ 1. **Verificar working directory limpio**: Ejecuta `git status --porcelain`. Si hay cambios sin commitear (archivos modificados o sin trackear), informa al usuario:
41
+ ```
42
+ Hay cambios sin commitear en la rama actual.
43
+ Para cambiar de rama de forma segura, necesito guardarlos temporalmente con git stash.
44
+ Quieres que haga git stash antes de continuar?
45
+ ```
46
+ - Si acepta: ejecuta `git stash push -m "stash-automatico-refacil"` y continua. Al final del proceso (despues de crear la rama), ejecuta `git stash pop` para restaurar los cambios.
47
+ - Si no acepta: **detente**.
48
+ 2. Detecta cual existe en el repo: `develop` o `dev` (ejecuta `git branch --list develop dev`)
49
+ 3. Cambia a esa rama: `git checkout develop` (o `dev`)
50
+ 4. Actualiza: `git pull origin develop` (o `dev`)
51
+ 5. Determina el nombre de la nueva rama:
52
+ - Si el usuario entrego el numero de Jira (ej: `RF-5088`): la rama sera `feature/RF-5088`
53
+ - Si el usuario no tiene tarea de Jira: usa un nombre descriptivo corto basado en el cambio activo en openspec/changes/ (ej: `feature/agregar-filtro-productos`). Pero **recomienda crear la tarea en Jira** para trazabilidad.
54
+ 6. Verifica que la rama no exista ya: `git branch --list [nombre-rama]`
55
+ - Si ya existe, informa al usuario y pregunta si quiere cambiarse a esa rama existente o elegir otro nombre.
56
+ 7. Crea la rama: `git checkout -b [nombre-rama]`
57
+ 8. Si se hizo stash en el paso 1, ejecuta `git stash pop` para restaurar los cambios.
58
+
59
+ Si el usuario no acepta crear rama, **detente**.
60
+
61
+ - **Si la rama es cualquier otra** (feature/, fix/, hotfix/, refactor/, etc.):
62
+ La rama es valida. Continua con el siguiente paso sin interrumpir.
63
+
64
+ ### Paso 2: Delegar a OpenSpec apply
19
65
 
20
66
  Ejecuta internamente las instrucciones de la skill `openspec-apply-change` que esta instalada en `.claude/skills/openspec-apply-change/SKILL.md` (o `.cursor/skills/openspec-apply-change/SKILL.md`).
21
67
 
@@ -27,7 +73,7 @@ Lee esa skill y sigue sus instrucciones pasandole el argumento del usuario: **$A
27
73
  - No hacer refactors no solicitados en codigo existente
28
74
  - Si una task es ambigua, preguntar antes de implementar
29
75
 
30
- ### Paso 2: Resumen y siguiente paso (aporte Refacil)
76
+ ### Paso 3: Resumen y siguiente paso (aporte Refacil)
31
77
 
32
78
  Al terminar la implementacion de OpenSpec, agrega este resumen:
33
79
 
@@ -10,8 +10,13 @@ Este comando envuelve la funcionalidad de OpenSpec archive (que internamente lla
10
10
 
11
11
  ## Antes de empezar
12
12
 
13
- Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones.
14
- Si NO existe `AGENTS.md`, informa al usuario: "No se encontro AGENTS.md. Ejecuta /refacil:setup para generarlo." y detente.
13
+ ### Verificar prerequisitos
14
+
15
+ 1. **OpenSpec instalado**: Ejecuta `openspec --version 2>&1`. Si el comando falla o no se reconoce, informa al usuario: "OpenSpec no esta instalado. Ejecuta `/refacil:setup` para instalarlo y configurar el repositorio." y **detente**.
16
+
17
+ 2. **OpenSpec inicializado**: Verifica que exista la carpeta `openspec/` en la raiz del proyecto. Si no existe, informa al usuario: "OpenSpec no esta inicializado en este repositorio. Ejecuta `/refacil:setup` para configurarlo." y **detente**.
18
+
19
+ 3. **AGENTS.md**: Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones. Si NO existe, informa al usuario: "No se encontro AGENTS.md. Ejecuta `/refacil:setup` para generarlo." y **detente**.
15
20
 
16
21
  ## Instrucciones
17
22
 
@@ -64,7 +64,48 @@ Presenta la correccion propuesta:
64
64
 
65
65
  Espera aprobacion del usuario antes de implementar.
66
66
 
67
- ### Paso 5: Implementar el fix
67
+ ### Paso 5: Validar rama de trabajo (antes de escribir codigo)
68
+
69
+ **ANTES de implementar cualquier cambio**, ejecuta `git branch --show-current` para obtener la rama actual.
70
+
71
+ #### Ramas protegidas: `master`, `main`, `develop`, `dev`, `testing`, `qa`
72
+
73
+ - **Si la rama es cualquier rama protegida** (`master`, `main`, `develop`, `dev`, `testing`, `qa`):
74
+
75
+ Informa al usuario que no se pueden hacer cambios directamente en esa rama y **pidele el numero de tarea de Jira**:
76
+ ```
77
+ Estas en la rama '[nombre-rama]' que es una rama protegida.
78
+ No se deben hacer cambios directamente aqui.
79
+
80
+ Cual es el numero de tarea de Jira para este fix? (ejemplo: RF-5088)
81
+ ```
82
+
83
+ **Crear la rama siempre desde develop/dev actualizado:**
84
+ 1. **Verificar working directory limpio**: Ejecuta `git status --porcelain`. Si hay cambios sin commitear (archivos modificados o sin trackear), informa al usuario:
85
+ ```
86
+ Hay cambios sin commitear en la rama actual.
87
+ Para cambiar de rama de forma segura, necesito guardarlos temporalmente con git stash.
88
+ Quieres que haga git stash antes de continuar?
89
+ ```
90
+ - Si acepta: ejecuta `git stash push -m "stash-automatico-refacil"` y continua. Al final del proceso (despues de crear la rama), ejecuta `git stash pop` para restaurar los cambios.
91
+ - Si no acepta: **detente**.
92
+ 2. Detecta cual existe en el repo: `develop` o `dev` (ejecuta `git branch --list develop dev`)
93
+ 3. Cambia a esa rama: `git checkout develop` (o `dev`)
94
+ 4. Actualiza: `git pull origin develop` (o `dev`)
95
+ 5. Determina el nombre de la nueva rama:
96
+ - Si el usuario entrego el numero de Jira (ej: `RF-5088`): la rama sera `fix/RF-5088`
97
+ - Si el usuario no tiene tarea de Jira: usa un nombre descriptivo corto del bug (ej: `fix/error-calculo-total`). Pero **recomienda crear la tarea en Jira** para trazabilidad.
98
+ 6. Verifica que la rama no exista ya: `git branch --list [nombre-rama]`
99
+ - Si ya existe, informa al usuario y pregunta si quiere cambiarse a esa rama existente o elegir otro nombre.
100
+ 7. Crea la rama: `git checkout -b [nombre-rama]`
101
+ 8. Si se hizo stash en el paso 1, ejecuta `git stash pop` para restaurar los cambios.
102
+
103
+ Si el usuario no acepta crear rama, **detente**.
104
+
105
+ - **Si la rama es cualquier otra** (feature/, fix/, hotfix/, etc.):
106
+ La rama es valida. Continua sin interrumpir.
107
+
108
+ ### Paso 6: Implementar el fix
68
109
 
69
110
  Con aprobacion del usuario:
70
111
 
@@ -72,7 +113,7 @@ Con aprobacion del usuario:
72
113
  2. Verifica que el cambio es minimo y enfocado
73
114
  3. No hacer refactors adicionales
74
115
 
75
- ### Paso 6: Tests de regresion
116
+ ### Paso 7: Tests de regresion
76
117
 
77
118
  Genera tests que:
78
119
 
@@ -93,7 +134,7 @@ describe('Bug Fix: [descripcion corta]', () => {
93
134
  });
94
135
  ```
95
136
 
96
- ### Paso 7: Verificar
137
+ ### Paso 8: Verificar
97
138
 
98
139
  1. Ejecuta `npm test` — todos los tests deben pasar
99
140
  2. Muestra resumen del fix
@@ -109,10 +150,10 @@ describe('Bug Fix: [descripcion corta]', () => {
109
150
 
110
151
  Siguientes pasos:
111
152
  1. /refacil:review — Review del fix (recomendado para bugs criticos)
112
- 2. Commit y deploy
153
+ 2. /refacil:up-code Subir los cambios a tu rama de desarrollo
113
154
  ```
114
155
 
115
- ### Paso 8 (opcional): Crear artefactos OpenSpec
156
+ ### Paso 9 (opcional): Crear artefactos OpenSpec
116
157
 
117
158
  Si el bug es significativo, preguntar al usuario si quiere documentarlo en OpenSpec:
118
159
  - Crear carpeta en `openspec/changes/fix-[nombre]/`
@@ -10,9 +10,13 @@ Este comando envuelve la funcionalidad de OpenSpec explore y agrega contexto del
10
10
 
11
11
  ## Antes de empezar
12
12
 
13
- Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones, arquitectura y patrones del repositorio. Usa esa informacion como contexto durante la exploracion.
13
+ ### Verificar prerequisitos
14
14
 
15
- Si NO existe `AGENTS.md`, informa al usuario: "No se encontro AGENTS.md. Ejecuta /refacil:setup para generarlo." y detente.
15
+ 1. **OpenSpec instalado**: Ejecuta `openspec --version 2>&1`. Si el comando falla o no se reconoce, informa al usuario: "OpenSpec no esta instalado. Ejecuta `/refacil:setup` para instalarlo y configurar el repositorio." y **detente**.
16
+
17
+ 2. **OpenSpec inicializado**: Verifica que exista la carpeta `openspec/` en la raiz del proyecto. Si no existe, informa al usuario: "OpenSpec no esta inicializado en este repositorio. Ejecuta `/refacil:setup` para configurarlo." y **detente**.
18
+
19
+ 3. **AGENTS.md**: Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones, arquitectura y patrones del repositorio. Usa esa informacion como contexto durante la exploracion. Si NO existe, informa al usuario: "No se encontro AGENTS.md. Ejecuta `/refacil:setup` para generarlo." y **detente**.
16
20
 
17
21
  ## Instrucciones
18
22
 
@@ -33,28 +33,36 @@ FLUJO PARA NUEVO FEATURE:
33
33
  Crea una propuesta completa con: proposal, specs, design y tasks.
34
34
  La IA te guia para definir todos los artefactos.
35
35
 
36
- 2. /refacil:apply
37
- Implementa las tasks definidas en el paso anterior.
38
- La IA escribe el codigo siguiendo el plan.
36
+ 2. REVISION DEL DESARROLLADOR (Human-in-the-Loop)
37
+ Revisa los artefactos generados (proposal, specs, design, tasks).
38
+ Confirma que los criterios, el design y las tasks son correctos.
39
+ La IA NO continua hasta que apruebes explicitamente.
39
40
 
40
- 3. /refacil:test
41
+ 3. /refacil:apply
42
+ Valida que NO estes en una rama protegida (master, main, develop, dev, testing, qa).
43
+ Si estas en una, te pide el numero de tarea de Jira y crea la rama desde develop.
44
+ Luego implementa las tasks aprobadas siguiendo el plan.
45
+
46
+ 4. /refacil:test
41
47
  Genera tests unitarios basados en las specs y el design.
42
48
  Cada criterio de aceptacion se convierte en al menos 1 test.
43
49
 
44
- 4. /refacil:verify
50
+ 5. /refacil:verify
45
51
  Valida que la implementacion cumple con las specs.
46
52
  Revisa completitud, correccion y coherencia.
47
53
 
48
- 5. /refacil:review
54
+ 6. /refacil:review
49
55
  Review con el checklist de calidad del equipo.
50
- Evalua codigo, arquitectura, testing, seguridad y performance.
56
+ Evalua conformidad con specs, codigo, arquitectura, testing,
57
+ seguridad, performance y reglas especificas del proyecto.
51
58
 
52
- 6. /refacil:archive
59
+ 7. /refacil:archive
53
60
  Archiva el cambio completado. Mueve artefactos a archive/.
54
61
 
55
- 7. /refacil:up-code
62
+ 8. /refacil:up-code
56
63
  Sube los cambios a tu rama de desarrollo.
57
- Valida que NO estes en ramas protegidas (master, main, develop, testing, qa).
64
+ Valida que NO estes en ramas protegidas (master, main, develop, dev, testing, qa).
65
+ Si necesita crear rama, te pide el numero de tarea de Jira.
58
66
  ```
59
67
 
60
68
  ### Opcion 2: Bug fix
@@ -67,12 +75,17 @@ FLUJO PARA BUG FIX:
67
75
  - Describes el bug (que pasa, que deberia pasar)
68
76
  - La IA investiga la causa raiz en el codebase
69
77
  - Te presenta hipotesis para confirmar
70
- - Propone e implementa la correccion
71
- - Genera tests de regresion automaticamente
78
+ - Propone la correccion y espera tu aprobacion
79
+ - Valida rama: si estas en rama protegida, te pide el numero
80
+ de tarea de Jira y crea la rama desde develop
81
+ - Implementa el fix y genera tests de regresion
72
82
  - Ejecuta los tests para verificar
73
83
 
74
84
  2. /refacil:review (opcional)
75
85
  Review con checklist si el fix es complejo.
86
+
87
+ 3. /refacil:up-code
88
+ Sube los cambios a tu rama de desarrollo.
76
89
  ```
77
90
 
78
91
  ### Opcion 3: Explorar
@@ -110,10 +123,11 @@ FLUJO PARA REVIEW:
110
123
  Evalua la implementacion contra el checklist del equipo:
111
124
  - Conformidad con specs
112
125
  - Calidad de codigo y patrones
113
- - Arquitectura DDD
126
+ - Arquitectura (segun convenciones de AGENTS.md)
114
127
  - Testing (coverage >= 80%)
115
128
  - Seguridad (OWASP top 10)
116
129
  - Performance (N+1, async, indices)
130
+ - Reglas especificas del proyecto (de AGENTS.md)
117
131
 
118
132
  Genera un reporte PASS/FAIL/N/A por cada item.
119
133
  ```
@@ -126,8 +140,9 @@ FLUJO PARA SUBIR CODIGO:
126
140
  1. /refacil:up-code
127
141
  Sube tus cambios al repositorio remoto de forma segura:
128
142
  - Detecta la rama actual
129
- - Valida que NO sea una rama protegida (master, main, develop, testing, qa)
130
- - Si estas en rama protegida, te ayuda a crear una rama de desarrollo
143
+ - Valida que NO sea una rama protegida (master, main, develop, dev, testing, qa)
144
+ - Si estas en rama protegida, te pide el numero de tarea de Jira
145
+ y crea la rama desde develop
131
146
  - Ejecuta git add, commit y push
132
147
 
133
148
  Opcionalmente puedes pasar el mensaje del commit:
@@ -10,10 +10,13 @@ Este comando envuelve la funcionalidad de OpenSpec fast-forward (ff) y agrega la
10
10
 
11
11
  ## Antes de empezar
12
12
 
13
- Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones, arquitectura y patrones.
14
- Si NO existe `AGENTS.md`, informa al usuario: "No se encontro AGENTS.md. Ejecuta /refacil:setup para generarlo." y detente.
13
+ ### Verificar prerequisitos
15
14
 
16
- Verifica que exista `openspec/`. Si no existe, informa al usuario que ejecute `/refacil:setup` primero.
15
+ 1. **OpenSpec instalado**: Ejecuta `openspec --version 2>&1`. Si el comando falla o no se reconoce, informa al usuario: "OpenSpec no esta instalado. Ejecuta `/refacil:setup` para instalarlo y configurar el repositorio." y **detente**.
16
+
17
+ 2. **OpenSpec inicializado**: Verifica que exista la carpeta `openspec/` en la raiz del proyecto. Si no existe, informa al usuario: "OpenSpec no esta inicializado en este repositorio. Ejecuta `/refacil:setup` para configurarlo." y **detente**.
18
+
19
+ 3. **AGENTS.md**: Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones, arquitectura y patrones. Si NO existe, informa al usuario: "No se encontro AGENTS.md. Ejecuta `/refacil:setup` para generarlo." y **detente**.
17
20
 
18
21
  ## Instrucciones
19
22
 
@@ -39,20 +42,41 @@ Lee esa skill y sigue sus instrucciones para generar todos los artefactos (propo
39
42
  - Las tasks deben incluir **estimacion de esfuerzo** (S/M/L)
40
43
  - El design debe referenciar **patrones existentes** del repo (encontrados en AGENTS.md o explorando el codebase)
41
44
 
42
- ### Paso 3: Validar con el usuario (aporte Refacil)
45
+ ### Paso 3: Revision del desarrollador (Human-in-the-Loop)
46
+
47
+ **IMPORTANTE**: Este paso es OBLIGATORIO. El desarrollador debe revisar y aprobar los artefactos antes de implementar.
48
+
49
+ Despues de que OpenSpec genere los artefactos, presenta al usuario un resumen claro para su revision:
43
50
 
44
- Despues de que OpenSpec genere los artefactos, presenta un resumen al usuario:
45
- - Archivos a crear/modificar
46
- - Criterios de aceptacion clave
47
- - Riesgos identificados
48
- - Estimacion total de esfuerzo
51
+ 1. **Proposal**: Objetivo, alcance y justificacion del cambio
52
+ 2. **Specs**: Criterios de aceptacion y rechazo — verificar que cubran todos los escenarios
53
+ 3. **Design**: Archivos a crear/modificar y patrones a usar — verificar que se alineen con la arquitectura
54
+ 4. **Tasks**: Lista de tareas con estimacion — verificar que el desglose sea correcto y completo
55
+
56
+ Pregunta explicitamente:
57
+
58
+ ```
59
+ === Revision requerida ===
60
+ Los artefactos estan listos para tu revision:
61
+ - openspec/changes/[nombre]/proposal.md
62
+ - openspec/changes/[nombre]/specs.md
63
+ - openspec/changes/[nombre]/design.md
64
+ - openspec/changes/[nombre]/tasks.md
65
+
66
+ Por favor revisa los artefactos y confirma:
67
+ 1. Los criterios de aceptacion son correctos?
68
+ 2. El design se alinea con la arquitectura del proyecto?
69
+ 3. Las tasks cubren todo el alcance?
70
+
71
+ Responde "OK" para continuar, o indica que ajustes necesitas.
72
+ ```
49
73
 
50
- Pregunta si quiere ajustar algo.
74
+ **NO continuar al siguiente paso hasta que el usuario apruebe explicitamente.** Si el usuario pide ajustes, aplicalos y vuelve a presentar el resumen.
51
75
 
52
76
  ### Paso 4: Siguiente paso
53
77
 
54
78
  ```
55
- Propuesta creada en: openspec/changes/[nombre]/
79
+ Propuesta aprobada en: openspec/changes/[nombre]/
56
80
  Siguiente paso: ejecuta /refacil:apply para implementar las tasks.
57
81
  ```
58
82
 
@@ -88,6 +88,11 @@ Se especifico en las evaluaciones. No des PASS generico — justifica brevemente
88
88
  [PASS/FAIL/N/A] Sin archivos generados en commit
89
89
  [PASS/FAIL/N/A] Migraciones reversibles (si aplica)
90
90
 
91
+ ## 9. Reglas especificas del proyecto
92
+ [PASS/FAIL/N/A] Cumple reglas de "Siempre hacer" de AGENTS.md
93
+ [PASS/FAIL/N/A] No viola reglas de "Nunca hacer" de AGENTS.md
94
+ [PASS/FAIL/N/A] Reglas adicionales del proyecto (si aplica)
95
+
91
96
  ---
92
97
  RESUMEN: [X] PASS | [Y] FAIL | [Z] N/A
93
98
  VEREDICTO: APROBADO / REQUIERE CORRECCIONES
@@ -1,5 +1,7 @@
1
1
  # Checklist de Calidad — Equipo Refacil
2
2
 
3
+ > **IMPORTANTE**: Este checklist es generico. Antes de evaluar, lee `AGENTS.md` del proyecto para adaptar cada seccion al stack, arquitectura y convenciones reales del repositorio. Si AGENTS.md indica patrones, frameworks o reglas especificas, usalas en lugar de los ejemplos genericos de abajo.
4
+
3
5
  ## 1. Conformidad con Spec
4
6
  - Todos los criterios de aceptacion de la spec estan cubiertos
5
7
  - No se implemento funcionalidad fuera del alcance de la spec
@@ -7,33 +9,35 @@
7
9
  - El modelo de datos coincide con lo especificado
8
10
 
9
11
  ## 2. Calidad de Codigo
10
- - El codigo sigue los patrones existentes del repo (ver AGENTS.md)
12
+ - El codigo sigue los patrones existentes del repo (consultar AGENTS.md seccion de arquitectura/convenciones)
11
13
  - No hay codigo duplicado que pueda extraerse
12
14
  - Los nombres de variables, funciones y clases son claros y descriptivos
13
15
  - No hay console.log, TODO, o codigo comentado sin razon
14
- - Los imports usan los alias configurados del proyecto (@core/*, @logger/*, etc.)
16
+ - Los imports usan los alias configurados del proyecto (consultar AGENTS.md seccion de alias de rutas, si aplica)
15
17
  - No hay dependencias circulares nuevas
16
18
 
17
19
  ## 3. Arquitectura
18
- - Se respetan los limites de dominio (DDD)
19
- - Las dependencias fluyen correctamente: domain <- application <- infrastructure
20
- - No hay logica de negocio en la capa de infraestructura
21
- - Los puertos (interfaces) estan en domain, las implementaciones en infrastructure
20
+ - Se respetan los limites y capas definidos en AGENTS.md
21
+ - Las dependencias fluyen en la direccion correcta segun la arquitectura del proyecto
22
+ - No hay logica de negocio en la capa de infraestructura o transporte
23
+ - Las interfaces/puertos estan en la capa correcta segun las convenciones del repo
22
24
  - Los DTOs estan en la capa correcta
23
25
 
26
+ > **Nota**: La arquitectura varia por proyecto (DDD, MVC, Clean Architecture, Hexagonal, etc.). Consultar AGENTS.md para saber cual aplica y evaluar en consecuencia.
27
+
24
28
  ## 4. Testing
25
- - Cada archivo nuevo/modificado tiene su .spec.ts correspondiente
29
+ - Cada archivo nuevo/modificado tiene su archivo de test correspondiente
26
30
  - Los tests cubren los criterios de aceptacion de la spec
27
31
  - Hay tests para edge cases y escenarios de error
28
32
  - Los mocks son minimos y necesarios
29
33
  - Los tests son independientes entre si
30
34
  - Coverage >= 80% en archivos nuevos
31
- - npm test pasa sin errores
35
+ - Los tests pasan sin errores (ejecutar el comando de test indicado en AGENTS.md)
32
36
 
33
37
  ## 5. Seguridad
34
38
  - No hay secrets hardcodeados (passwords, API keys, tokens)
35
- - Los inputs del usuario estan validados (class-validator)
36
- - No hay inyeccion SQL posible (queries parametrizadas con TypeORM)
39
+ - Los inputs del usuario estan validados (usar la libreria de validacion del proyecto)
40
+ - No hay inyeccion SQL posible (queries parametrizadas con el ORM del proyecto)
37
41
  - Los endpoints sensibles tienen autorizacion adecuada
38
42
  - No se expone informacion sensible en logs o respuestas de error
39
43
 
@@ -41,7 +45,7 @@
41
45
  - Las consultas a base de datos usan indices apropiados
42
46
  - No hay queries N+1
43
47
  - Las operaciones pesadas son asincronas donde corresponde
44
- - No hay memory leaks obvios (subscriptions sin unsubscribe, etc.)
48
+ - No hay memory leaks obvios (subscriptions sin unsubscribe, listeners sin cleanup, etc.)
45
49
 
46
50
  ## 7. Mantenibilidad
47
51
  - El codigo es autoexplicativo (comentarios solo donde la logica no es obvia)
@@ -55,8 +59,7 @@
55
59
  - Las migraciones de BD (si hay) son reversibles
56
60
  - No hay breaking changes no documentados
57
61
 
58
- ## 9. Zona Horaria (Critico)
59
- - Todas las fechas usan UTC
60
- - Se usa @core/utils/date-time.util para operaciones con fechas
61
- - NO se usa new Date() para comparaciones directas
62
- - Las columnas de BD usan TIMESTAMP WITH TIME ZONE
62
+ ## 9. Reglas especificas del proyecto
63
+ - Consultar la seccion "Reglas criticas" de AGENTS.md
64
+ - Evaluar contra las reglas de "Siempre hacer", "Nunca hacer" y "Preguntar primero"
65
+ - Si AGENTS.md define reglas adicionales (ej: zona horaria, formato de fechas, naming conventions), verificar su cumplimiento
@@ -107,7 +107,47 @@ Secciones obligatorias:
107
107
  - "Nunca hacer": anti-patrones especificos para el stack
108
108
  - "Preguntar primero": cambios de alto impacto que requieren confirmacion
109
109
 
110
- #### 5.3 Mostrar al usuario
110
+ #### 5.3 Fallback si el analisis falla
111
+
112
+ Si por cualquier razon no puedes generar un AGENTS.md completo (archivos no legibles, repo vacio, error inesperado), genera un AGENTS.md minimo con esta estructura:
113
+
114
+ ```markdown
115
+ # [nombre del proyecto]
116
+
117
+ > Generado por /refacil:setup — completar manualmente las secciones marcadas con TODO.
118
+
119
+ ## Metodologia SDD-AI
120
+
121
+ | Comando | Descripcion |
122
+ |---------|-------------|
123
+ | `/refacil:setup` | Instalar OpenSpec y generar AGENTS.md |
124
+ | `/refacil:guide` | Guia interactiva — que comando usar |
125
+ | `/refacil:explore` | Explorar el codebase sin cambios |
126
+ | `/refacil:propose` | Crear propuesta de cambio |
127
+ | `/refacil:apply` | Implementar tasks del cambio |
128
+ | `/refacil:test` | Generar tests unitarios |
129
+ | `/refacil:verify` | Validar implementacion vs specs |
130
+ | `/refacil:review` | Review con checklist de calidad |
131
+ | `/refacil:archive` | Archivar cambio completado |
132
+ | `/refacil:up-code` | Subir codigo a rama de desarrollo |
133
+ | `/refacil:bug` | Flujo guiado de bugfix |
134
+
135
+ ## Stack tecnologico
136
+ TODO: Completar con el stack del proyecto
137
+
138
+ ## Arquitectura
139
+ TODO: Completar con la estructura del proyecto
140
+
141
+ ## Comandos de desarrollo
142
+ TODO: Completar con los scripts de package.json
143
+
144
+ ## Reglas criticas
145
+ TODO: Completar con las convenciones del equipo
146
+ ```
147
+
148
+ Informa al usuario que el AGENTS.md fue generado con secciones TODO que debe completar manualmente o ejecutando `/refacil:setup` de nuevo.
149
+
150
+ #### 5.4 Mostrar al usuario
111
151
 
112
152
  Muestra el AGENTS.md generado completo. Pregunta si quiere ajustar algo antes de guardarlo.
113
153
 
@@ -29,17 +29,34 @@ Verifica que la rama actual **NO** sea ninguna de las siguientes ramas protegida
29
29
  - `qa`
30
30
  - `dev`
31
31
 
32
- Si la rama actual es una rama protegida, **DETENTE** e informa al usuario:
32
+ Si la rama actual es una rama protegida, **DETENTE** y **pide el numero de tarea de Jira**:
33
33
 
34
34
  ```
35
- ERROR: Estas en la rama '[nombre-rama]' que es una rama de ambiente protegida.
35
+ ERROR: Estas en la rama '[nombre-rama]' que es una rama protegida.
36
36
  No se puede hacer push directo a ramas protegidas (master, main, develop, testing, qa, dev).
37
37
 
38
- Crea una rama de desarrollo primero:
39
- git checkout -b feature/[nombre-descriptivo]
38
+ Cual es el numero de tarea de Jira para este cambio? (ejemplo: RF-5088)
40
39
  ```
41
40
 
42
- Pregunta al usuario si desea crear una rama de desarrollo. Si acepta, sugiere un nombre basado en los cambios pendientes y ejecuta `git checkout -b [nombre-sugerido]`.
41
+ **Crear la rama siempre desde develop/dev actualizado:**
42
+ 1. **Verificar working directory limpio**: Ejecuta `git status --porcelain`. Si hay cambios sin commitear (archivos modificados o sin trackear), informa al usuario:
43
+ ```
44
+ Hay cambios sin commitear en la rama actual.
45
+ Para cambiar de rama de forma segura, necesito guardarlos temporalmente con git stash.
46
+ Quieres que haga git stash antes de continuar?
47
+ ```
48
+ - Si acepta: ejecuta `git stash push -m "stash-automatico-refacil"` y continua. Al final del proceso (despues de crear la rama), ejecuta `git stash pop` para restaurar los cambios.
49
+ - Si no acepta: **detente**.
50
+ 2. Detecta cual existe en el repo: `develop` o `dev` (ejecuta `git branch --list develop dev`)
51
+ 3. Cambia a esa rama: `git checkout develop` (o `dev`)
52
+ 4. Actualiza: `git pull origin develop` (o `dev`)
53
+ 5. Determina el nombre de la nueva rama:
54
+ - Si el usuario entrego el numero de Jira (ej: `RF-5088`): la rama sera `feature/RF-5088`
55
+ - Si el usuario no tiene tarea de Jira: usa un nombre descriptivo corto (ej: `feature/ajuste-validacion`). Pero **recomienda crear la tarea en Jira** para trazabilidad.
56
+ 6. Verifica que la rama no exista ya: `git branch --list [nombre-rama]`
57
+ - Si ya existe, informa al usuario y pregunta si quiere cambiarse a esa rama existente o elegir otro nombre.
58
+ 7. Crea la rama: `git checkout -b [nombre-rama]`
59
+ 8. Si se hizo stash en el paso 1, ejecuta `git stash pop` para restaurar los cambios.
43
60
 
44
61
  Si el usuario no quiere crear una rama, **detente**. No continuar con el push.
45
62
 
@@ -75,7 +92,7 @@ Ejecuta `git push -u origin [rama-actual]` para subir los cambios.
75
92
 
76
93
  ## Reglas
77
94
 
78
- - NUNCA hacer push a ramas protegidas: master, main, develop, testing, qa
95
+ - NUNCA hacer push a ramas protegidas: master, main, develop, dev, testing, qa
79
96
  - Si el usuario esta en una rama protegida, SIEMPRE preguntar antes de crear una rama nueva
80
97
  - Siempre hacer push a ramas de desarrollo propias (feature/, fix/, hotfix/, refactor/, etc.)
81
98
  - No forzar push (--force) a menos que el usuario lo pida explicitamente
@@ -10,8 +10,13 @@ Este comando envuelve la funcionalidad de OpenSpec verify y agrega verificacion
10
10
 
11
11
  ## Antes de empezar
12
12
 
13
- Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones.
14
- Si NO existe `AGENTS.md`, informa al usuario: "No se encontro AGENTS.md. Ejecuta /refacil:setup para generarlo." y detente.
13
+ ### Verificar prerequisitos
14
+
15
+ 1. **OpenSpec instalado**: Ejecuta `openspec --version 2>&1`. Si el comando falla o no se reconoce, informa al usuario: "OpenSpec no esta instalado. Ejecuta `/refacil:setup` para instalarlo y configurar el repositorio." y **detente**.
16
+
17
+ 2. **OpenSpec inicializado**: Verifica que exista la carpeta `openspec/` en la raiz del proyecto. Si no existe, informa al usuario: "OpenSpec no esta inicializado en este repositorio. Ejecuta `/refacil:setup` para configurarlo." y **detente**.
18
+
19
+ 3. **AGENTS.md**: Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender las convenciones. Si NO existe, informa al usuario: "No se encontro AGENTS.md. Ejecuta `/refacil:setup` para generarlo." y **detente**.
15
20
 
16
21
  ## Instrucciones
17
22