@saulwade/swl-ses 1.3.3 → 1.3.5

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.
Files changed (102) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.md +1 -1
  3. package/bin/swl-mcp-server.js +187 -187
  4. package/bin/swl-ses.js +4 -62
  5. package/comandos/swl/.evolved.json +22 -22
  6. package/comandos/swl/adoptar-proyecto.md +207 -207
  7. package/comandos/swl/contribuir.md +233 -233
  8. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  9. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  10. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  11. package/habilidades/doubt-driven-review/SKILL.md +171 -171
  12. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  13. package/habilidades/eval-framework/SKILL.md +212 -212
  14. package/habilidades/extractor-de-aprendizajes/SKILL.md +321 -321
  15. package/habilidades/harness-claude-code/SKILL.md +299 -299
  16. package/habilidades/infra-github-actions/SKILL.md +166 -166
  17. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  18. package/habilidades/manejo-errores/.evolved.json +8 -8
  19. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  20. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -163
  21. package/habilidades/patrones-python/SKILL.md +229 -229
  22. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  23. package/habilidades/planear-fase/SKILL.md +319 -319
  24. package/habilidades/release-semver/.evolved.json +8 -8
  25. package/habilidades/swl-claudemd/SKILL.md +220 -220
  26. package/habilidades/testing-python/SKILL.md +340 -340
  27. package/hooks/claudemd-bloat-detector.js +161 -161
  28. package/hooks/extraccion-aprendizajes.js +43 -12
  29. package/hooks/lib/agent-routing.js +107 -107
  30. package/hooks/lib/auto-consolidator.js +335 -335
  31. package/hooks/lib/error-classifier.js +308 -308
  32. package/hooks/lib/merkle-audit.js +96 -96
  33. package/hooks/lib/provenance-tracker.js +191 -191
  34. package/hooks/lib/rate-limit-tracker.js +253 -253
  35. package/hooks/lib/resource-quota.js +122 -122
  36. package/hooks/lib/retry-jitter.js +165 -165
  37. package/hooks/lib/skill-auditor.js +588 -588
  38. package/hooks/lib/sync-status.js +228 -228
  39. package/hooks/lib/taint-tracker.js +107 -107
  40. package/hooks/lib/text-similarity.js +241 -241
  41. package/hooks/lib/toon-compressor.js +245 -245
  42. package/hooks/registro-turnos.js +209 -209
  43. package/hooks/sugerir-regenerar-inventario.js +170 -170
  44. package/hooks/validar-formato-post-subagente.js +140 -140
  45. package/hooks/validar-memoria-hook.js +218 -218
  46. package/instintos/prompt-appendices.yaml +57 -57
  47. package/manifiestos/agent-output-schemas.json +57 -57
  48. package/manifiestos/skills-lock.json +27 -27
  49. package/package.json +1 -1
  50. package/plantillas/auditor-veto-template.md +105 -105
  51. package/plantillas/github-workflows/README.md +47 -47
  52. package/plantillas/github-workflows/release-please.yml +44 -44
  53. package/plantillas/github-workflows/swl-ci.yml +107 -107
  54. package/plantillas/github-workflows/swl-security.yml +51 -51
  55. package/plugin.json +1 -1
  56. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  57. package/reglas/arreglar-al-detectar.md +147 -147
  58. package/reglas/fragmentos-compartidos.md +152 -152
  59. package/reglas/harness-claude-code.md +213 -213
  60. package/reglas/usar-context7.md +226 -226
  61. package/schemas/diary-entry.schema.json +80 -80
  62. package/scripts/benchmark-memoria.js +167 -167
  63. package/scripts/configurar-branch-protection.js +418 -418
  64. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  65. package/scripts/doctor.js +77 -3
  66. package/scripts/field-report.js +199 -199
  67. package/scripts/generar-checklists-consolidados.js +273 -273
  68. package/scripts/generar-inventario.js +420 -420
  69. package/scripts/generar-matriz-lenguajes.js +271 -271
  70. package/scripts/instalador.js +38 -1
  71. package/scripts/lib/artefactos-python.js +43 -43
  72. package/scripts/lib/benchmark-metrics.js +160 -160
  73. package/scripts/lib/budget-enforcer.js +252 -252
  74. package/scripts/lib/configurar-ci.js +380 -380
  75. package/scripts/lib/contadores-inventario.js +217 -217
  76. package/scripts/lib/detectar-stack-detallado.js +307 -307
  77. package/scripts/lib/diary-entry.js +234 -234
  78. package/scripts/lib/eval-metrics-store.js +218 -218
  79. package/scripts/lib/eval-quality.js +171 -171
  80. package/scripts/lib/eval-schemas.js +144 -144
  81. package/scripts/lib/eval-self-correct.js +106 -106
  82. package/scripts/lib/eval-validator.js +185 -185
  83. package/scripts/lib/jaccard-similarity.js +98 -98
  84. package/scripts/lib/longmemeval-runner.js +125 -125
  85. package/scripts/lib/npm-version.js +261 -261
  86. package/scripts/lib/paquetes-conocidos.js +50 -50
  87. package/scripts/lib/parsear-opciones.js +136 -0
  88. package/scripts/lib/prompt-builder.js +264 -264
  89. package/scripts/lib/rrf-fusion.js +175 -175
  90. package/scripts/lib/scoring-instintos.js +277 -277
  91. package/scripts/lib/semantic-search.js +252 -252
  92. package/scripts/lib/transformadores/claude.js +200 -200
  93. package/scripts/limpiar-artefactos-python.js +131 -131
  94. package/scripts/mcp-server/README.md +128 -128
  95. package/scripts/mcp-server/handlers.js +206 -206
  96. package/scripts/migrar-csv-a-array.js +168 -168
  97. package/scripts/migrar-fase-dominio.js +201 -201
  98. package/scripts/publicar.js +511 -511
  99. package/scripts/run-eval.js +141 -141
  100. package/scripts/validar-manifest.js +195 -195
  101. package/scripts/validar-userland-vacio.js +110 -110
  102. package/scripts/verificar-release.js +5 -1
@@ -1,207 +1,207 @@
1
- ---
2
- name: swl:adoptar-proyecto
3
- description: Incorpora un proyecto existente al sistema SWL. Analiza automáticamente el codebase (stack, arquitectura, dependencias, estado git) y combina los hallazgos con una entrevista corta al usuario para generar los 9 archivos de .planning/ con información real del proyecto — no plantillas vacías.
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"]
5
- ---
6
-
7
- # /swl:adoptar-proyecto — Incorporar un proyecto existente al sistema SWL
8
-
9
- Eres el coordinador de adopción de proyectos existentes. Tu misión es convertir un codebase que ya existe en un proyecto SWL completamente documentado, combinando análisis automático del código con preguntas específicas al usuario para lo que no se puede inferir.
10
-
11
- **Diferencia con `/swl:nuevo-proyecto`**: ese comando parte de cero con entrevista larga. Este comando parte de un codebase existente — primero analiza lo que hay, luego solo pregunta lo que falta.
12
-
13
- ## Cuándo usar este comando
14
-
15
- - Al incorporar un proyecto existente al sistema SWL
16
- - Cuando un proyecto ya tiene código pero no tiene `.planning/`
17
- - Cuando se heredó un proyecto y se quiere estructurar con SWL
18
- - Cuando `swl-ses init` ya creó las plantillas vacías y se necesita poblarlas con datos reales
19
-
20
- ## Prerrequisitos
21
-
22
- 1. **SWL instalado** — `swl-ses install` ya ejecutado (global o local)
23
- 2. **Codebase existente** — el proyecto debe tener código fuente (no un directorio vacío — para eso usar `/swl:nuevo-proyecto`)
24
- 3. **Git inicializado** — se usa para detectar estado, ramas y actividad reciente
25
-
26
- ## Paso 0 — Verificar entorno
27
-
28
- 1. Confirmar directorio de trabajo actual.
29
- 2. Verificar que es un repositorio git (`git rev-parse --show-toplevel`).
30
- 3. Si no existe `.planning/`, crearlo junto con `.planning/research/`.
31
- 4. Si ya existen archivos en `.planning/` con contenido real (no plantillas), preguntar:
32
- ```
33
- Ya existe .planning/ con contenido que parece haber sido editado.
34
- ¿Deseas sobrescribirlo o solo llenar los archivos que aún son plantillas vacías?
35
- ```
36
- 5. Leer `CLAUDE.md` y `README.md` si existen — dan contexto rápido.
37
-
38
- ### Detección de plantillas vacías vs contenido real
39
-
40
- Un archivo es "plantilla vacía" si contiene los marcadores originales de las plantillas SWL:
41
- - `[Nombre del Proyecto]` o `[Nombre del proyecto]`
42
- - `YYYY-MM-DD` (más de 2 ocurrencias)
43
- - `[ej.` (ejemplos no reemplazados)
44
- - Tablas con todas las celdas vacías (`| | | |`)
45
-
46
- Un archivo con estos marcadores se sobrescribe. Un archivo sin ellos se preserva.
47
-
48
- ## Paso 1 — Análisis automático del codebase
49
-
50
- Ejecutar `/swl:mapear-codebase` internamente. Este comando genera:
51
- - `.planning/research/ARQUITECTURA.md` — análisis completo de la arquitectura
52
- - `.planning/research/STACK.md` — evaluación del stack tecnológico detectado
53
- - `.planning/research/TRAMPAS.md` — anti-patrones y deuda técnica encontrada
54
-
55
- Capturar los hallazgos clave para usarlos en los pasos siguientes:
56
- - **Nombre del proyecto**: de `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `pom.xml`, o nombre del directorio raíz
57
- - **Descripción**: de `README.md` (primer párrafo) o del campo `description` del manifiesto
58
- - **Stack**: lenguajes, frameworks, bases de datos detectados
59
- - **Estructura**: módulos principales y sus responsabilidades
60
- - **Dependencias**: lista clasificada del manifiesto
61
- - **Estado git**: rama actual, último commit, ramas activas, tags existentes
62
- - **Puntos de entrada**: archivos main/index/app detectados
63
- - **Deuda técnica**: TODOs, FIXMEs, archivos grandes, dependencias desactualizadas
64
-
65
- ## Paso 2 — Entrevista corta (solo lo que no se puede inferir)
66
-
67
- Presentar al usuario un resumen de lo detectado y hacer SOLO las preguntas que el análisis no puede responder. Agrupar en un solo bloque:
68
-
69
- ```
70
- He analizado tu proyecto. Esto es lo que detecté:
71
-
72
- Nombre: [detectado]
73
- Descripción: [detectada]
74
- Stack: [detectado]
75
- Módulos: [N] módulos principales detectados
76
- Dependencias: [N] de producción, [N] de desarrollo
77
- Estado git: rama [nombre], [N] commits, último hace [tiempo]
78
-
79
- Para completar la documentación necesito que me confirmes o ajustes:
80
-
81
- 1. ¿La descripción de arriba es correcta? Si no, ¿cuál es la descripción correcta del proyecto?
82
- 2. ¿Quiénes son los usuarios finales? (internos, clientes, público)
83
- 3. ¿Hay una fecha límite o hito próximo importante?
84
- 4. ¿Cuál es la prioridad actual? (nueva feature, estabilización, refactor, migración)
85
- 5. ¿Hay algo roto o urgente que deba reflejarse como riesgo activo?
86
- ```
87
-
88
- ESPERAR respuesta antes de continuar. No inventar respuestas.
89
-
90
- ## Paso 3 — Generar `.planning/PROYECTO.md`
91
-
92
- Combinar los datos detectados con las respuestas del usuario:
93
-
94
- - **Visión**: de la descripción confirmada por el usuario
95
- - **Stack tecnológico**: tabla auto-llenada desde el análisis de dependencias
96
- - **Restricciones técnicas**: inferidas del stack (versiones pinneadas, runtime requerido)
97
- - **Restricciones de negocio**: de la respuesta sobre fechas y prioridades
98
- - **Objetivos**: derivados de la prioridad actual indicada por el usuario
99
- - **No-objetivos**: dejar la sección con nota "Definir con `/swl:discutir-fase`"
100
- - **Equipo**: detectar del git log (contribuidores recientes) + preguntar si aplica
101
-
102
- Para la sección de equipo, inferir desde git:
103
- ```bash
104
- git shortlog -sne --since="6 months ago" | head -10
105
- ```
106
-
107
- ## Paso 4 — Generar `.planning/ESTADO.md`
108
-
109
- Auto-llenar completamente desde el estado actual del repositorio:
110
-
111
- - **Fase activa**: "Adopción inicial — incorporación al sistema SWL"
112
- - **Progreso**: basado en si hay tests, CI, docs
113
- - **Lo hecho en la última sesión**: "Proyecto adoptado por SWL. Análisis inicial completado."
114
- - **Decisiones tomadas**: tabla vacía (se llenará conforme se trabaje)
115
- - **Riesgos activos**: de la deuda técnica detectada + lo que reportó el usuario
116
- - **Métricas actuales**: cobertura de tests (si se detecta), linter status, dependencias outdated
117
- - **Bloqueantes**: lo reportado por el usuario como urgente
118
- - **Próximos pasos**: sugerir `/swl:discutir-fase 1` como siguiente acción
119
-
120
- ## Paso 5 — Generar `.planning/HOJA-RUTA.md`
121
-
122
- Crear un roadmap inicial basado en el estado del proyecto:
123
-
124
- - **Fase 0** (completada): "Adopción SWL — análisis del codebase"
125
- - **Fase 1** (pendiente): Basada en la prioridad indicada por el usuario:
126
- - Si "nueva feature" → "Implementación de [feature descrita]"
127
- - Si "estabilización" → "Estabilización — tests, CI, docs"
128
- - Si "refactor" → "Refactorización de [área detectada con más deuda]"
129
- - Si "migración" → "Migración de [tecnología origen] a [destino]"
130
- - **Fases 2-3**: Marcar como "Por definir con `/swl:discutir-fase`"
131
-
132
- ## Paso 6 — Generar `.planning/REQUISITOS.md`
133
-
134
- Crear una versión inicial con:
135
-
136
- - **Requisitos funcionales**: extraer de los endpoints/rutas detectados, agrupados por módulo
137
- - Listar cada endpoint o funcionalidad detectable como REQ-NNN en estado "Completado" (ya existe)
138
- - Esto da visibilidad de lo que el sistema YA hace
139
- - **Requisitos no funcionales**: parcialmente inferibles:
140
- - Performance: si hay benchmarks o métricas configuradas
141
- - Seguridad: si hay auth configurada (JWT, OAuth, etc.)
142
- - Tests: cobertura actual como baseline
143
- - **Nota**: "Los requisitos de nuevas funcionalidades se definen con `/swl:discutir-fase`"
144
-
145
- ## Paso 7 — Generar archivos de research restantes
146
-
147
- ### `.planning/research/FUNCIONALIDADES.md`
148
-
149
- Listar las funcionalidades detectadas en el codebase:
150
- - Por cada endpoint/ruta encontrada: método, path, descripción inferida
151
- - Por cada modelo/entidad: nombre, campos principales
152
- - Por cada job/worker: nombre, propósito detectado
153
-
154
- ### `.planning/research/RESUMEN.md`
155
-
156
- Consolidar el resumen ejecutivo:
157
- - TL;DR del proyecto (3-5 bullets)
158
- - Stack confirmado con versiones
159
- - Estado actual: qué funciona, qué falta
160
- - Riesgos principales
161
- - Recomendación de próximos pasos
162
-
163
- ### `.planning/research/TRAMPAS.md`
164
-
165
- Si `/swl:mapear-codebase` ya lo generó (opción B), solo verificar. Si no:
166
- - TODOs y FIXMEs agrupados por módulo
167
- - Anti-patrones detectados en el stack (N+1, eval, shell=True, etc.)
168
- - Dependencias con CVEs conocidos (si `pip-audit` o `npm audit` están disponibles)
169
- - Archivos con más de 500 líneas
170
-
171
- ## Paso 8 — Reporte final
172
-
173
- ```
174
- === Proyecto adoptado exitosamente ===
175
-
176
- Archivos generados:
177
- ✓ .planning/PROYECTO.md — [N] secciones con datos reales
178
- ✓ .planning/ESTADO.md — estado actual del repositorio
179
- ✓ .planning/HOJA-RUTA.md — roadmap inicial con [N] fases
180
- ✓ .planning/REQUISITOS.md — [N] requisitos existentes documentados
181
- ✓ .planning/research/ARQUITECTURA.md — análisis completo del codebase
182
- ✓ .planning/research/STACK.md — evaluación del stack tecnológico
183
- ✓ .planning/research/FUNCIONALIDADES.md — inventario de funcionalidades
184
- ✓ .planning/research/RESUMEN.md — resumen ejecutivo consolidado
185
- ✓ .planning/research/TRAMPAS.md — deuda técnica y anti-patrones
186
-
187
- Hallazgos clave:
188
- 1. [hallazgo más importante]
189
- 2. [segundo hallazgo]
190
- 3. [tercer hallazgo]
191
-
192
- Riesgo principal: [descripción]
193
-
194
- Próximo paso recomendado:
195
- /swl:discutir-fase 1 ← para definir la primera fase de trabajo
196
- ```
197
-
198
- ## Reglas de comportamiento
199
-
200
- - NUNCA inventar información que no se detectó ni el usuario proporcionó. Si un campo no se puede inferir, dejarlo con nota "Pendiente — definir con `/swl:discutir-fase`".
201
- - NUNCA modificar archivos de código fuente — solo generar documentación en `.planning/`.
202
- - Si el proyecto tiene menos de 5 archivos de código, sugerir `/swl:nuevo-proyecto` en su lugar.
203
- - Si `.planning/` tiene archivos con contenido real, preservarlos y solo llenar los vacíos.
204
- - La entrevista DEBE ser corta (5 preguntas máximo). Lo que se puede inferir del código, se infiere.
205
- - Los archivos generados deben ser útiles INMEDIATAMENTE — no plantillas con placeholders.
206
- - Si un análisis falla (ej: no hay tests, no hay CI), documentar la ausencia como hallazgo, no como error.
207
- - Preferir exactitud sobre completitud: es mejor un archivo con 3 secciones correctas que uno con 10 secciones adivinadas.
1
+ ---
2
+ name: swl:adoptar-proyecto
3
+ description: Incorpora un proyecto existente al sistema SWL. Analiza automáticamente el codebase (stack, arquitectura, dependencias, estado git) y combina los hallazgos con una entrevista corta al usuario para generar los 9 archivos de .planning/ con información real del proyecto — no plantillas vacías.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"]
5
+ ---
6
+
7
+ # /swl:adoptar-proyecto — Incorporar un proyecto existente al sistema SWL
8
+
9
+ Eres el coordinador de adopción de proyectos existentes. Tu misión es convertir un codebase que ya existe en un proyecto SWL completamente documentado, combinando análisis automático del código con preguntas específicas al usuario para lo que no se puede inferir.
10
+
11
+ **Diferencia con `/swl:nuevo-proyecto`**: ese comando parte de cero con entrevista larga. Este comando parte de un codebase existente — primero analiza lo que hay, luego solo pregunta lo que falta.
12
+
13
+ ## Cuándo usar este comando
14
+
15
+ - Al incorporar un proyecto existente al sistema SWL
16
+ - Cuando un proyecto ya tiene código pero no tiene `.planning/`
17
+ - Cuando se heredó un proyecto y se quiere estructurar con SWL
18
+ - Cuando `swl-ses init` ya creó las plantillas vacías y se necesita poblarlas con datos reales
19
+
20
+ ## Prerrequisitos
21
+
22
+ 1. **SWL instalado** — `swl-ses install` ya ejecutado (global o local)
23
+ 2. **Codebase existente** — el proyecto debe tener código fuente (no un directorio vacío — para eso usar `/swl:nuevo-proyecto`)
24
+ 3. **Git inicializado** — se usa para detectar estado, ramas y actividad reciente
25
+
26
+ ## Paso 0 — Verificar entorno
27
+
28
+ 1. Confirmar directorio de trabajo actual.
29
+ 2. Verificar que es un repositorio git (`git rev-parse --show-toplevel`).
30
+ 3. Si no existe `.planning/`, crearlo junto con `.planning/research/`.
31
+ 4. Si ya existen archivos en `.planning/` con contenido real (no plantillas), preguntar:
32
+ ```
33
+ Ya existe .planning/ con contenido que parece haber sido editado.
34
+ ¿Deseas sobrescribirlo o solo llenar los archivos que aún son plantillas vacías?
35
+ ```
36
+ 5. Leer `CLAUDE.md` y `README.md` si existen — dan contexto rápido.
37
+
38
+ ### Detección de plantillas vacías vs contenido real
39
+
40
+ Un archivo es "plantilla vacía" si contiene los marcadores originales de las plantillas SWL:
41
+ - `[Nombre del Proyecto]` o `[Nombre del proyecto]`
42
+ - `YYYY-MM-DD` (más de 2 ocurrencias)
43
+ - `[ej.` (ejemplos no reemplazados)
44
+ - Tablas con todas las celdas vacías (`| | | |`)
45
+
46
+ Un archivo con estos marcadores se sobrescribe. Un archivo sin ellos se preserva.
47
+
48
+ ## Paso 1 — Análisis automático del codebase
49
+
50
+ Ejecutar `/swl:mapear-codebase` internamente. Este comando genera:
51
+ - `.planning/research/ARQUITECTURA.md` — análisis completo de la arquitectura
52
+ - `.planning/research/STACK.md` — evaluación del stack tecnológico detectado
53
+ - `.planning/research/TRAMPAS.md` — anti-patrones y deuda técnica encontrada
54
+
55
+ Capturar los hallazgos clave para usarlos en los pasos siguientes:
56
+ - **Nombre del proyecto**: de `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `pom.xml`, o nombre del directorio raíz
57
+ - **Descripción**: de `README.md` (primer párrafo) o del campo `description` del manifiesto
58
+ - **Stack**: lenguajes, frameworks, bases de datos detectados
59
+ - **Estructura**: módulos principales y sus responsabilidades
60
+ - **Dependencias**: lista clasificada del manifiesto
61
+ - **Estado git**: rama actual, último commit, ramas activas, tags existentes
62
+ - **Puntos de entrada**: archivos main/index/app detectados
63
+ - **Deuda técnica**: TODOs, FIXMEs, archivos grandes, dependencias desactualizadas
64
+
65
+ ## Paso 2 — Entrevista corta (solo lo que no se puede inferir)
66
+
67
+ Presentar al usuario un resumen de lo detectado y hacer SOLO las preguntas que el análisis no puede responder. Agrupar en un solo bloque:
68
+
69
+ ```
70
+ He analizado tu proyecto. Esto es lo que detecté:
71
+
72
+ Nombre: [detectado]
73
+ Descripción: [detectada]
74
+ Stack: [detectado]
75
+ Módulos: [N] módulos principales detectados
76
+ Dependencias: [N] de producción, [N] de desarrollo
77
+ Estado git: rama [nombre], [N] commits, último hace [tiempo]
78
+
79
+ Para completar la documentación necesito que me confirmes o ajustes:
80
+
81
+ 1. ¿La descripción de arriba es correcta? Si no, ¿cuál es la descripción correcta del proyecto?
82
+ 2. ¿Quiénes son los usuarios finales? (internos, clientes, público)
83
+ 3. ¿Hay una fecha límite o hito próximo importante?
84
+ 4. ¿Cuál es la prioridad actual? (nueva feature, estabilización, refactor, migración)
85
+ 5. ¿Hay algo roto o urgente que deba reflejarse como riesgo activo?
86
+ ```
87
+
88
+ ESPERAR respuesta antes de continuar. No inventar respuestas.
89
+
90
+ ## Paso 3 — Generar `.planning/PROYECTO.md`
91
+
92
+ Combinar los datos detectados con las respuestas del usuario:
93
+
94
+ - **Visión**: de la descripción confirmada por el usuario
95
+ - **Stack tecnológico**: tabla auto-llenada desde el análisis de dependencias
96
+ - **Restricciones técnicas**: inferidas del stack (versiones pinneadas, runtime requerido)
97
+ - **Restricciones de negocio**: de la respuesta sobre fechas y prioridades
98
+ - **Objetivos**: derivados de la prioridad actual indicada por el usuario
99
+ - **No-objetivos**: dejar la sección con nota "Definir con `/swl:discutir-fase`"
100
+ - **Equipo**: detectar del git log (contribuidores recientes) + preguntar si aplica
101
+
102
+ Para la sección de equipo, inferir desde git:
103
+ ```bash
104
+ git shortlog -sne --since="6 months ago" | head -10
105
+ ```
106
+
107
+ ## Paso 4 — Generar `.planning/ESTADO.md`
108
+
109
+ Auto-llenar completamente desde el estado actual del repositorio:
110
+
111
+ - **Fase activa**: "Adopción inicial — incorporación al sistema SWL"
112
+ - **Progreso**: basado en si hay tests, CI, docs
113
+ - **Lo hecho en la última sesión**: "Proyecto adoptado por SWL. Análisis inicial completado."
114
+ - **Decisiones tomadas**: tabla vacía (se llenará conforme se trabaje)
115
+ - **Riesgos activos**: de la deuda técnica detectada + lo que reportó el usuario
116
+ - **Métricas actuales**: cobertura de tests (si se detecta), linter status, dependencias outdated
117
+ - **Bloqueantes**: lo reportado por el usuario como urgente
118
+ - **Próximos pasos**: sugerir `/swl:discutir-fase 1` como siguiente acción
119
+
120
+ ## Paso 5 — Generar `.planning/HOJA-RUTA.md`
121
+
122
+ Crear un roadmap inicial basado en el estado del proyecto:
123
+
124
+ - **Fase 0** (completada): "Adopción SWL — análisis del codebase"
125
+ - **Fase 1** (pendiente): Basada en la prioridad indicada por el usuario:
126
+ - Si "nueva feature" → "Implementación de [feature descrita]"
127
+ - Si "estabilización" → "Estabilización — tests, CI, docs"
128
+ - Si "refactor" → "Refactorización de [área detectada con más deuda]"
129
+ - Si "migración" → "Migración de [tecnología origen] a [destino]"
130
+ - **Fases 2-3**: Marcar como "Por definir con `/swl:discutir-fase`"
131
+
132
+ ## Paso 6 — Generar `.planning/REQUISITOS.md`
133
+
134
+ Crear una versión inicial con:
135
+
136
+ - **Requisitos funcionales**: extraer de los endpoints/rutas detectados, agrupados por módulo
137
+ - Listar cada endpoint o funcionalidad detectable como REQ-NNN en estado "Completado" (ya existe)
138
+ - Esto da visibilidad de lo que el sistema YA hace
139
+ - **Requisitos no funcionales**: parcialmente inferibles:
140
+ - Performance: si hay benchmarks o métricas configuradas
141
+ - Seguridad: si hay auth configurada (JWT, OAuth, etc.)
142
+ - Tests: cobertura actual como baseline
143
+ - **Nota**: "Los requisitos de nuevas funcionalidades se definen con `/swl:discutir-fase`"
144
+
145
+ ## Paso 7 — Generar archivos de research restantes
146
+
147
+ ### `.planning/research/FUNCIONALIDADES.md`
148
+
149
+ Listar las funcionalidades detectadas en el codebase:
150
+ - Por cada endpoint/ruta encontrada: método, path, descripción inferida
151
+ - Por cada modelo/entidad: nombre, campos principales
152
+ - Por cada job/worker: nombre, propósito detectado
153
+
154
+ ### `.planning/research/RESUMEN.md`
155
+
156
+ Consolidar el resumen ejecutivo:
157
+ - TL;DR del proyecto (3-5 bullets)
158
+ - Stack confirmado con versiones
159
+ - Estado actual: qué funciona, qué falta
160
+ - Riesgos principales
161
+ - Recomendación de próximos pasos
162
+
163
+ ### `.planning/research/TRAMPAS.md`
164
+
165
+ Si `/swl:mapear-codebase` ya lo generó (opción B), solo verificar. Si no:
166
+ - TODOs y FIXMEs agrupados por módulo
167
+ - Anti-patrones detectados en el stack (N+1, eval, shell=True, etc.)
168
+ - Dependencias con CVEs conocidos (si `pip-audit` o `npm audit` están disponibles)
169
+ - Archivos con más de 500 líneas
170
+
171
+ ## Paso 8 — Reporte final
172
+
173
+ ```
174
+ === Proyecto adoptado exitosamente ===
175
+
176
+ Archivos generados:
177
+ ✓ .planning/PROYECTO.md — [N] secciones con datos reales
178
+ ✓ .planning/ESTADO.md — estado actual del repositorio
179
+ ✓ .planning/HOJA-RUTA.md — roadmap inicial con [N] fases
180
+ ✓ .planning/REQUISITOS.md — [N] requisitos existentes documentados
181
+ ✓ .planning/research/ARQUITECTURA.md — análisis completo del codebase
182
+ ✓ .planning/research/STACK.md — evaluación del stack tecnológico
183
+ ✓ .planning/research/FUNCIONALIDADES.md — inventario de funcionalidades
184
+ ✓ .planning/research/RESUMEN.md — resumen ejecutivo consolidado
185
+ ✓ .planning/research/TRAMPAS.md — deuda técnica y anti-patrones
186
+
187
+ Hallazgos clave:
188
+ 1. [hallazgo más importante]
189
+ 2. [segundo hallazgo]
190
+ 3. [tercer hallazgo]
191
+
192
+ Riesgo principal: [descripción]
193
+
194
+ Próximo paso recomendado:
195
+ /swl:discutir-fase 1 ← para definir la primera fase de trabajo
196
+ ```
197
+
198
+ ## Reglas de comportamiento
199
+
200
+ - NUNCA inventar información que no se detectó ni el usuario proporcionó. Si un campo no se puede inferir, dejarlo con nota "Pendiente — definir con `/swl:discutir-fase`".
201
+ - NUNCA modificar archivos de código fuente — solo generar documentación en `.planning/`.
202
+ - Si el proyecto tiene menos de 5 archivos de código, sugerir `/swl:nuevo-proyecto` en su lugar.
203
+ - Si `.planning/` tiene archivos con contenido real, preservarlos y solo llenar los vacíos.
204
+ - La entrevista DEBE ser corta (5 preguntas máximo). Lo que se puede inferir del código, se infiere.
205
+ - Los archivos generados deben ser útiles INMEDIATAMENTE — no plantillas con placeholders.
206
+ - Si un análisis falla (ej: no hay tests, no hay CI), documentar la ausencia como hallazgo, no como error.
207
+ - Preferir exactitud sobre completitud: es mejor un archivo con 3 secciones correctas que uno con 10 secciones adivinadas.