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 +2 -0
- package/package.json +2 -2
- package/skills/apply/SKILL.md +50 -4
- package/skills/archive/SKILL.md +7 -2
- package/skills/bug/SKILL.md +46 -5
- package/skills/explore/SKILL.md +6 -2
- package/skills/guide/SKILL.md +30 -15
- package/skills/propose/SKILL.md +35 -11
- package/skills/review/SKILL.md +5 -0
- package/skills/review/checklist.md +19 -16
- package/skills/setup/SKILL.md +41 -1
- package/skills/up-code/SKILL.md +23 -6
- package/skills/verify/SKILL.md +7 -2
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.
|
|
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": ">=
|
|
34
|
+
"node": ">=20.19.0"
|
|
35
35
|
}
|
|
36
36
|
}
|
package/skills/apply/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
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:
|
|
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
|
|
76
|
+
### Paso 3: Resumen y siguiente paso (aporte Refacil)
|
|
31
77
|
|
|
32
78
|
Al terminar la implementacion de OpenSpec, agrega este resumen:
|
|
33
79
|
|
package/skills/archive/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
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
|
|
package/skills/bug/SKILL.md
CHANGED
|
@@ -64,7 +64,48 @@ Presenta la correccion propuesta:
|
|
|
64
64
|
|
|
65
65
|
Espera aprobacion del usuario antes de implementar.
|
|
66
66
|
|
|
67
|
-
### Paso 5:
|
|
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
|
|
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
|
|
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.
|
|
153
|
+
2. /refacil:up-code — Subir los cambios a tu rama de desarrollo
|
|
113
154
|
```
|
|
114
155
|
|
|
115
|
-
### Paso
|
|
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]/`
|
package/skills/explore/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
13
|
+
### Verificar prerequisitos
|
|
14
14
|
|
|
15
|
-
|
|
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
|
|
package/skills/guide/SKILL.md
CHANGED
|
@@ -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.
|
|
37
|
-
|
|
38
|
-
|
|
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:
|
|
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
|
-
|
|
50
|
+
5. /refacil:verify
|
|
45
51
|
Valida que la implementacion cumple con las specs.
|
|
46
52
|
Revisa completitud, correccion y coherencia.
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
6. /refacil:review
|
|
49
55
|
Review con el checklist de calidad del equipo.
|
|
50
|
-
Evalua codigo, arquitectura, testing,
|
|
56
|
+
Evalua conformidad con specs, codigo, arquitectura, testing,
|
|
57
|
+
seguridad, performance y reglas especificas del proyecto.
|
|
51
58
|
|
|
52
|
-
|
|
59
|
+
7. /refacil:archive
|
|
53
60
|
Archiva el cambio completado. Mueve artefactos a archive/.
|
|
54
61
|
|
|
55
|
-
|
|
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
|
|
71
|
-
-
|
|
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
|
|
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
|
|
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:
|
package/skills/propose/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
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
|
|
79
|
+
Propuesta aprobada en: openspec/changes/[nombre]/
|
|
56
80
|
Siguiente paso: ejecuta /refacil:apply para implementar las tasks.
|
|
57
81
|
```
|
|
58
82
|
|
package/skills/review/SKILL.md
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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
|
|
19
|
-
- Las dependencias fluyen
|
|
20
|
-
- No hay logica de negocio en la capa de infraestructura
|
|
21
|
-
-
|
|
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
|
|
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
|
-
-
|
|
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 (
|
|
36
|
-
- No hay inyeccion SQL posible (queries parametrizadas con
|
|
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.
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
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
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
package/skills/up-code/SKILL.md
CHANGED
|
@@ -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**
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/skills/verify/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
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
|
|