refacil-sdd-ai 2.2.1 → 2.6.0
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 +150 -2
- package/bin/cli.js +204 -33
- package/lib/compact/bash.js +50 -0
- package/lib/compact/rules.js +190 -0
- package/lib/compact/telemetry.js +93 -0
- package/lib/compact-guidance.js +77 -0
- package/package.json +2 -1
- package/skills/apply/SKILL.md +2 -6
- package/skills/archive/SKILL.md +1 -4
- package/skills/bug/SKILL.md +9 -42
- package/skills/explore/SKILL.md +1 -3
- package/skills/prereqs/SKILL.md +16 -25
- package/skills/propose/SKILL.md +1 -3
- package/skills/review/SKILL.md +9 -47
- package/skills/setup/SKILL.md +6 -0
- package/skills/test/SKILL.md +10 -23
- package/skills/up-code/SKILL.md +5 -10
- package/skills/verify/SKILL.md +1 -4
- package/templates/compact-guidance.md +45 -0
- package/templates/{claude-md.md → methodology-guide.md} +10 -6
- package/templates/cursorrules.md +0 -22
package/skills/test/SKILL.md
CHANGED
|
@@ -8,34 +8,20 @@ user-invocable: true
|
|
|
8
8
|
|
|
9
9
|
Eres un asistente de testing que genera pruebas unitarias de alta calidad, adaptandose al stack tecnologico del proyecto.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `openspec`** antes de continuar.
|
|
11
|
+
**Prerequisitos**: perfil `openspec` de `refacil-prereqs/SKILL.md` + comando de tests segun `METHODOLOGY-CONTRACT.md §3`.
|
|
14
12
|
|
|
15
13
|
### Detectar stack tecnologico
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
1. **Lenguaje**: Lee `package.json`, `pom.xml`, `build.gradle`, `pyproject.toml`, `go.mod`, `Cargo.toml`, `Gemfile`, o los archivos fuente para determinar el lenguaje principal.
|
|
20
|
-
|
|
21
|
-
2. **Framework de testing**: Busca la configuracion de tests existente:
|
|
22
|
-
- JavaScript/TypeScript: `jest.config.*`, `vitest.config.*`, `.mocharc.*`, `karma.conf.*`, seccion `jest` en `package.json`
|
|
23
|
-
- Python: `pytest.ini`, `pyproject.toml` (seccion `[tool.pytest]`), `setup.cfg`
|
|
24
|
-
- Java/Kotlin: `pom.xml` (JUnit/Mockito), `build.gradle` (dependencias de test)
|
|
25
|
-
- Go: archivos `_test.go` existentes
|
|
26
|
-
- Rust: archivos con `#[cfg(test)]`
|
|
27
|
-
- Otro: busca archivos de test existentes para inferir patron
|
|
28
|
-
|
|
29
|
-
3. **Patrones existentes**: Busca tests existentes en el proyecto (`*.spec.*`, `*.test.*`, `test_*`, `*_test.*`) y analiza:
|
|
30
|
-
- Estructura de archivos (donde se ubican los tests)
|
|
31
|
-
- Convencion de nombrado
|
|
32
|
-
- Como se hacen los mocks/stubs
|
|
33
|
-
- Framework de assertions usado
|
|
34
|
-
- Setup/teardown patterns
|
|
15
|
+
NO asumir stack. Antes de generar tests, detecta:
|
|
35
16
|
|
|
36
|
-
|
|
17
|
+
| Fuente | Que buscar |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Lenguaje | `package.json`, `pom.xml`, `build.gradle`, `pyproject.toml`, `go.mod`, `Cargo.toml`, `Gemfile` |
|
|
20
|
+
| Framework de tests | JS/TS: `jest.config.*`, `vitest.config.*`, `.mocharc.*`, campo `jest` en `package.json`. Python: `pytest.ini`, `[tool.pytest]` en `pyproject.toml`. Java: `pom.xml`/`build.gradle`. Go: `*_test.go`. Rust: `#[cfg(test)]` |
|
|
21
|
+
| Patrones del proyecto | Tests existentes (`*.spec.*`, `*.test.*`, `test_*`, `*_test.*`): ubicacion, nombrado, mocks, assertions, setup/teardown |
|
|
22
|
+
| Comando de ejecucion | `METHODOLOGY-CONTRACT.md §3` |
|
|
37
23
|
|
|
38
|
-
Si existe
|
|
24
|
+
Si existe `testing-patterns.md` junto a esta skill, usalo como referencia secundaria. Los patrones reales del proyecto siempre tienen prioridad.
|
|
39
25
|
|
|
40
26
|
## Instrucciones
|
|
41
27
|
|
|
@@ -88,6 +74,7 @@ Si el usuario pasa un archivo: `/refacil:test src/mi-archivo.ext`
|
|
|
88
74
|
## Reglas
|
|
89
75
|
|
|
90
76
|
- **NUNCA hardcodear un stack** — siempre detectar del proyecto real
|
|
77
|
+
- Resolver y ejecutar el comando de tests segun `METHODOLOGY-CONTRACT.md` §3
|
|
91
78
|
- Cada criterio de aceptacion (CA-XX) debe tener al menos 1 test
|
|
92
79
|
- Cada criterio de rechazo (CR-XX) debe tener al menos 1 test
|
|
93
80
|
- Coverage minimo del 80% en archivos nuevos
|
package/skills/up-code/SKILL.md
CHANGED
|
@@ -7,13 +7,9 @@ user-invocable: true
|
|
|
7
7
|
# refacil:up-code — Integrar Codigo y Publicar Cambios
|
|
8
8
|
|
|
9
9
|
Sube los cambios al repositorio remoto y genera el PR para integracion.
|
|
10
|
-
|
|
11
|
-
NUNCA se hacen ajustes directos en `master` o `main`.
|
|
10
|
+
Aplica la politica de ramas e integracion definida en `refacil-prereqs/METHODOLOGY-CONTRACT.md` (sin excepciones).
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `agents`** antes de continuar.
|
|
16
|
-
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
12
|
+
**Prerequisitos**: perfil `agents` de `refacil-prereqs/SKILL.md` + reglas de `METHODOLOGY-CONTRACT.md` (politica de ramas aplica sin excepciones).
|
|
17
13
|
|
|
18
14
|
## Instrucciones
|
|
19
15
|
|
|
@@ -21,7 +17,7 @@ Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del
|
|
|
21
17
|
|
|
22
18
|
Ejecuta `git branch --show-current` para obtener el nombre de la rama.
|
|
23
19
|
|
|
24
|
-
- Si la rama actual es protegida (
|
|
20
|
+
- Si la rama actual es protegida (segun `METHODOLOGY-CONTRACT.md`), **detente** e informa al usuario:
|
|
25
21
|
```
|
|
26
22
|
No se puede subir codigo desde una rama protegida ([nombre]).
|
|
27
23
|
La validacion de rama se hace en /refacil:apply o /refacil:bug antes de escribir codigo.
|
|
@@ -103,7 +99,6 @@ A que rama quieres crear el PR? (recomendado: testing)
|
|
|
103
99
|
|
|
104
100
|
## Reglas
|
|
105
101
|
|
|
106
|
-
-
|
|
107
|
-
- Si la rama actual es protegida, **detener** — la validacion de rama se hace en `/refacil:apply` o `/refacil:bug`, no aqui
|
|
108
|
-
- Toda integracion a cualquier rama protegida requiere PR
|
|
102
|
+
- Respetar estrictamente la politica de ramas protegidas e integracion por PR del `METHODOLOGY-CONTRACT.md`
|
|
103
|
+
- Si la rama actual es protegida, **detener** — la validacion/cambio de rama se hace en `/refacil:apply` o `/refacil:bug`, no aqui
|
|
109
104
|
- No forzar push (--force) a menos que el usuario lo pida explicitamente
|
package/skills/verify/SKILL.md
CHANGED
|
@@ -8,10 +8,7 @@ user-invocable: true
|
|
|
8
8
|
|
|
9
9
|
Este comando envuelve la funcionalidad de OpenSpec verify y agrega verificacion de tests.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `openspec`** antes de continuar.
|
|
14
|
-
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
11
|
+
**Prerequisitos**: perfil `openspec` de `refacil-prereqs/SKILL.md` + reglas de `METHODOLOGY-CONTRACT.md`.
|
|
15
12
|
|
|
16
13
|
## Instrucciones
|
|
17
14
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- AUTO-GENERADO por refacil-sdd-ai. No edites entre los marcadores; el contenido se refresca en cada sesion. -->
|
|
2
|
+
|
|
3
|
+
## Eficiencia de tokens
|
|
4
|
+
|
|
5
|
+
Reglas para minimizar el consumo de contexto al trabajar en este repositorio.
|
|
6
|
+
|
|
7
|
+
**Lectura de archivos**
|
|
8
|
+
- Usa `Read` con `offset` y `limit` cuando conozcas la zona relevante del archivo.
|
|
9
|
+
- No leas archivos de mas de 500 lineas completos; segmenta por rango.
|
|
10
|
+
- Para descubrir estructura del repo: usa `Glob` en lugar de `ls -R` o `find`.
|
|
11
|
+
- No releas el archivo completo si ya leiste el bloque relevante; continua desde ese contexto.
|
|
12
|
+
- Antes de leer un archivo largo, ubica simbolos con busqueda y luego lee solo rangos candidatos.
|
|
13
|
+
|
|
14
|
+
**Busqueda**
|
|
15
|
+
- Usa `Grep` con `head_limit` en vez de dump crudo.
|
|
16
|
+
- Cuando solo necesites ubicaciones, usa `output_mode: "files_with_matches"`.
|
|
17
|
+
- Acota siempre con `glob` o `type` para no escanear de mas.
|
|
18
|
+
|
|
19
|
+
**Git (via Bash)**
|
|
20
|
+
- Historial: `git log --oneline -20` por defecto; amplia solo si es insuficiente.
|
|
21
|
+
- Diffs: empieza con `git diff --stat`; pide el diff completo solo del archivo que vas a tocar.
|
|
22
|
+
- Status: `git status -s` (short format).
|
|
23
|
+
- Show: `git show --stat` antes del full.
|
|
24
|
+
|
|
25
|
+
**Tests**
|
|
26
|
+
- Reporta solo failures; no enumeres los passes en el output visible.
|
|
27
|
+
- Si el runner tiene modo silencioso o summary (`jest --silent --reporters=summary`, `pytest -q`), usalo.
|
|
28
|
+
- Si el runner es verboso por defecto, redirige: `2>&1 | tail -80`.
|
|
29
|
+
|
|
30
|
+
**Logs y errores**
|
|
31
|
+
- No pegues stack traces enteros; extrae solo el frame relevante con el mensaje.
|
|
32
|
+
- Resume logs repetidos: "(N ocurrencias de <mensaje>)".
|
|
33
|
+
- Para archivos de log: `tail -100` o filtra por nivel ERROR/WARN.
|
|
34
|
+
|
|
35
|
+
**Build y lint**
|
|
36
|
+
- `tsc`, `eslint`, `biome`: agrupa errores por archivo o por regla; no enumeres linea por linea.
|
|
37
|
+
- Construccion exitosa: confirma con una sola linea, no pegues el output completo.
|
|
38
|
+
- Si hay muchos errores similares: muestra un ejemplo y el conteo.
|
|
39
|
+
|
|
40
|
+
**Docker y contenedores**
|
|
41
|
+
- `docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"`.
|
|
42
|
+
- `docker logs --tail 100` siempre; nunca logs completos.
|
|
43
|
+
|
|
44
|
+
**Regla general**
|
|
45
|
+
Cuando dudes entre verbosidad y concision, elige concision. El usuario puede pedir detalle bajo demanda.
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Las instrucciones completas del proyecto estan en [AGENTS.md](AGENTS.md).
|
|
4
|
-
Si AGENTS.md no existe, ejecuta `/refacil:setup` para generarlo automaticamente.
|
|
1
|
+
Instrucciones completas del proyecto: ver `AGENTS.md`. Si falta, ejecuta `/refacil:setup`.
|
|
5
2
|
|
|
6
3
|
## Metodologia SDD-AI (Refacil)
|
|
7
4
|
|
|
8
|
-
|
|
5
|
+
Skills identicas en `.claude/skills/refacil-*/` (Claude Code) y `.cursor/skills/refacil-*/` (Cursor). Instaladas por `refacil-sdd-ai init`.
|
|
9
6
|
|
|
10
7
|
| Comando | Descripcion |
|
|
11
8
|
|---------|-------------|
|
|
@@ -18,7 +15,14 @@ Este proyecto usa la metodologia SDD-AI en **Claude Code** y **Cursor** con el m
|
|
|
18
15
|
| `/refacil:verify` | Validar implementacion vs specs |
|
|
19
16
|
| `/refacil:review` | Review con checklist de calidad |
|
|
20
17
|
| `/refacil:archive` | Archivar cambio completado |
|
|
21
|
-
| `/refacil:up-code` | Subir codigo
|
|
18
|
+
| `/refacil:up-code` | Subir codigo y crear PR |
|
|
22
19
|
| `/refacil:bug` | Flujo guiado de bugfix |
|
|
23
20
|
|
|
24
21
|
Flujo: `setup` → `propose` → `apply` → `test` → `verify` → `review` → `archive` → `up-code`
|
|
22
|
+
|
|
23
|
+
## Eficiencia de tokens (automatica)
|
|
24
|
+
|
|
25
|
+
- El hook `check-update` en `SessionStart` sincroniza el bloque `compact-guidance` en `AGENTS.md`.
|
|
26
|
+
- El bloque define reglas de salida compacta (lectura por rango, busqueda acotada, tests/logs resumidos).
|
|
27
|
+
- Si `AGENTS.md` aun no existe, la sincronizacion se omite sin error.
|
|
28
|
+
- No editar manualmente el contenido entre marcadores `compact-guidance`; se sobreescribe automaticamente.
|
package/templates/cursorrules.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Cursor Rules
|
|
2
|
-
|
|
3
|
-
Las instrucciones completas del proyecto estan en AGENTS.md.
|
|
4
|
-
Si AGENTS.md no existe, ejecuta /refacil:setup para generarlo automaticamente.
|
|
5
|
-
|
|
6
|
-
## Metodologia SDD-AI (Refacil)
|
|
7
|
-
|
|
8
|
-
Metodologia equivalente en Claude Code (`.claude/skills/refacil-*/`) y Cursor (`.cursor/skills/refacil-*/`). Comandos (en este IDE, bajo `.cursor/skills/refacil-*/`):
|
|
9
|
-
|
|
10
|
-
- /refacil:setup — Instalar OpenSpec y generar AGENTS.md
|
|
11
|
-
- /refacil:guide — Guia interactiva
|
|
12
|
-
- /refacil:explore — Explorar codebase
|
|
13
|
-
- /refacil:propose — Crear propuesta de cambio
|
|
14
|
-
- /refacil:apply — Implementar tasks
|
|
15
|
-
- /refacil:test — Generar tests unitarios
|
|
16
|
-
- /refacil:verify — Validar vs specs
|
|
17
|
-
- /refacil:review — Review con checklist
|
|
18
|
-
- /refacil:archive — Archivar cambio
|
|
19
|
-
- /refacil:up-code — Subir codigo a rama de desarrollo
|
|
20
|
-
- /refacil:bug — Flujo guiado de bugfix
|
|
21
|
-
|
|
22
|
-
Flujo: setup → propose → apply → test → verify → review → archive → up-code
|