swl-ses 3.3.2

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 (177) hide show
  1. package/CLAUDE.md +425 -0
  2. package/_userland/agentes/.gitkeep +0 -0
  3. package/_userland/habilidades/.gitkeep +0 -0
  4. package/agentes/accesibilidad-wcag-swl.md +683 -0
  5. package/agentes/arquitecto-swl.md +210 -0
  6. package/agentes/auto-evolucion-swl.md +408 -0
  7. package/agentes/backend-api-swl.md +442 -0
  8. package/agentes/backend-node-swl.md +439 -0
  9. package/agentes/backend-python-swl.md +469 -0
  10. package/agentes/backend-workers-swl.md +444 -0
  11. package/agentes/cloud-infra-swl.md +466 -0
  12. package/agentes/consolidador-swl.md +487 -0
  13. package/agentes/datos-swl.md +568 -0
  14. package/agentes/depurador-swl.md +301 -0
  15. package/agentes/devops-ci-swl.md +352 -0
  16. package/agentes/disenador-ui-swl.md +546 -0
  17. package/agentes/documentador-swl.md +323 -0
  18. package/agentes/frontend-angular-swl.md +603 -0
  19. package/agentes/frontend-css-swl.md +700 -0
  20. package/agentes/frontend-react-swl.md +672 -0
  21. package/agentes/frontend-swl.md +483 -0
  22. package/agentes/frontend-tailwind-swl.md +808 -0
  23. package/agentes/implementador-swl.md +235 -0
  24. package/agentes/investigador-swl.md +274 -0
  25. package/agentes/investigador-ux-swl.md +482 -0
  26. package/agentes/migrador-swl.md +389 -0
  27. package/agentes/mobile-android-swl.md +473 -0
  28. package/agentes/mobile-cross-swl.md +501 -0
  29. package/agentes/mobile-ios-swl.md +464 -0
  30. package/agentes/notificador-swl.md +886 -0
  31. package/agentes/observabilidad-swl.md +408 -0
  32. package/agentes/orquestador-swl.md +490 -0
  33. package/agentes/planificador-swl.md +222 -0
  34. package/agentes/producto-prd-swl.md +565 -0
  35. package/agentes/release-manager-swl.md +545 -0
  36. package/agentes/rendimiento-swl.md +691 -0
  37. package/agentes/revisor-codigo-swl.md +254 -0
  38. package/agentes/revisor-seguridad-swl.md +316 -0
  39. package/agentes/tdd-qa-swl.md +323 -0
  40. package/agentes/ux-disenador-swl.md +498 -0
  41. package/bin/swl-ses.js +119 -0
  42. package/comandos/swl/actualizar.md +117 -0
  43. package/comandos/swl/aprender.md +348 -0
  44. package/comandos/swl/auditar-deps.md +390 -0
  45. package/comandos/swl/autoresearch.md +346 -0
  46. package/comandos/swl/checkpoint.md +296 -0
  47. package/comandos/swl/compactar.md +283 -0
  48. package/comandos/swl/crear-skill.md +609 -0
  49. package/comandos/swl/discutir-fase.md +230 -0
  50. package/comandos/swl/ejecutar-fase.md +302 -0
  51. package/comandos/swl/evolucionar.md +377 -0
  52. package/comandos/swl/instalar.md +220 -0
  53. package/comandos/swl/mapear-codebase.md +205 -0
  54. package/comandos/swl/nuevo-proyecto.md +154 -0
  55. package/comandos/swl/planear-fase.md +221 -0
  56. package/comandos/swl/release.md +405 -0
  57. package/comandos/swl/salud.md +382 -0
  58. package/comandos/swl/verificar.md +292 -0
  59. package/habilidades/accesibilidad-a11y/SKILL.md +584 -0
  60. package/habilidades/angular-avanzado/SKILL.md +491 -0
  61. package/habilidades/angular-moderno/SKILL.md +326 -0
  62. package/habilidades/api-rest-diseno/SKILL.md +302 -0
  63. package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
  64. package/habilidades/aprendizaje-continuo/SKILL.md +369 -0
  65. package/habilidades/async-python/SKILL.md +474 -0
  66. package/habilidades/auth-patrones/SKILL.md +488 -0
  67. package/habilidades/auto-evolucion-protocolo/SKILL.md +376 -0
  68. package/habilidades/autoresearch/SKILL.md +248 -0
  69. package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
  70. package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
  71. package/habilidades/checklist-calidad/SKILL.md +247 -0
  72. package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
  73. package/habilidades/checklist-seguridad/SKILL.md +224 -0
  74. package/habilidades/checkpoints-verificacion/SKILL.md +309 -0
  75. package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
  76. package/habilidades/ci-cd-pipelines/SKILL.md +583 -0
  77. package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
  78. package/habilidades/cloud-aws/SKILL.md +497 -0
  79. package/habilidades/compactacion-contexto/SKILL.md +201 -0
  80. package/habilidades/contenedores-docker/SKILL.md +453 -0
  81. package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
  82. package/habilidades/css-moderno/SKILL.md +463 -0
  83. package/habilidades/datos-etl/SKILL.md +486 -0
  84. package/habilidades/dependencias-auditoria/SKILL.md +293 -0
  85. package/habilidades/deprecacion-migracion/SKILL.md +485 -0
  86. package/habilidades/design-tokens/SKILL.md +519 -0
  87. package/habilidades/discutir-fase/SKILL.md +167 -0
  88. package/habilidades/diseno-responsivo/SKILL.md +326 -0
  89. package/habilidades/django-experto/SKILL.md +395 -0
  90. package/habilidades/doc-sync/SKILL.md +259 -0
  91. package/habilidades/ejecutar-fase/SKILL.md +199 -0
  92. package/habilidades/estructura-proyecto-claude/SKILL.md +459 -0
  93. package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
  94. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +213 -0
  95. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
  96. package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
  97. package/habilidades/event-driven/SKILL.md +580 -0
  98. package/habilidades/extractor-de-aprendizajes/SKILL.md +234 -0
  99. package/habilidades/fastapi-experto/SKILL.md +368 -0
  100. package/habilidades/frontend-avanzado/SKILL.md +555 -0
  101. package/habilidades/git-worktrees-paralelo/SKILL.md +246 -0
  102. package/habilidades/iam-secretos/SKILL.md +511 -0
  103. package/habilidades/instalar-sistema/SKILL.md +140 -0
  104. package/habilidades/kubernetes-orquestacion/SKILL.md +549 -0
  105. package/habilidades/manejo-errores/SKILL.md +512 -0
  106. package/habilidades/mapear-codebase/SKILL.md +199 -0
  107. package/habilidades/microservicios/SKILL.md +473 -0
  108. package/habilidades/mobile-flutter/SKILL.md +566 -0
  109. package/habilidades/mobile-react-native/SKILL.md +493 -0
  110. package/habilidades/monitoring-alertas/SKILL.md +447 -0
  111. package/habilidades/node-experto/SKILL.md +521 -0
  112. package/habilidades/notificaciones-multicanal/SKILL.md +448 -0
  113. package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
  114. package/habilidades/nuevo-proyecto/SKILL.md +183 -0
  115. package/habilidades/patrones-python/SKILL.md +381 -0
  116. package/habilidades/performance-baseline/SKILL.md +243 -0
  117. package/habilidades/planear-fase/SKILL.md +184 -0
  118. package/habilidades/postgresql-experto/SKILL.md +379 -0
  119. package/habilidades/react-experto/SKILL.md +434 -0
  120. package/habilidades/react-optimizacion/SKILL.md +328 -0
  121. package/habilidades/release-semver/SKILL.md +226 -0
  122. package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
  123. package/habilidades/sql-optimizacion/SKILL.md +314 -0
  124. package/habilidades/tailwind-experto/SKILL.md +412 -0
  125. package/habilidades/tdd-workflow/SKILL.md +267 -0
  126. package/habilidades/testing-python/SKILL.md +350 -0
  127. package/habilidades/threat-model-lite/SKILL.md +218 -0
  128. package/habilidades/typescript-avanzado/SKILL.md +454 -0
  129. package/habilidades/ux-diseno/SKILL.md +488 -0
  130. package/habilidades/validacion-ci-sistema/SKILL.md +543 -0
  131. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
  132. package/habilidades/verificar-trabajo/SKILL.md +208 -0
  133. package/habilidades/wireframes-flujos/SKILL.md +396 -0
  134. package/habilidades/workflow-claude-code/SKILL.md +359 -0
  135. package/hooks/calidad-pre-commit.js +578 -0
  136. package/hooks/escaneo-secretos.js +302 -0
  137. package/hooks/extraccion-aprendizajes.js +550 -0
  138. package/hooks/linea-estado.js +249 -0
  139. package/hooks/monitor-contexto.js +230 -0
  140. package/hooks/proteccion-rutas.js +249 -0
  141. package/manifiestos/hooks-config.json +41 -0
  142. package/manifiestos/modulos.json +318 -0
  143. package/manifiestos/perfiles.json +189 -0
  144. package/package.json +45 -0
  145. package/plantillas/PROJECT.md +122 -0
  146. package/plantillas/REQUIREMENTS.md +132 -0
  147. package/plantillas/ROADMAP.md +143 -0
  148. package/plantillas/STATE.md +109 -0
  149. package/plantillas/research/ARCHITECTURE.md +220 -0
  150. package/plantillas/research/FEATURES.md +175 -0
  151. package/plantillas/research/PITFALLS.md +299 -0
  152. package/plantillas/research/STACK.md +233 -0
  153. package/plantillas/research/SUMMARY.md +165 -0
  154. package/plugin.json +144 -0
  155. package/reglas/accesibilidad.md +269 -0
  156. package/reglas/api-diseno.md +400 -0
  157. package/reglas/arquitectura.md +183 -0
  158. package/reglas/cloud-infra.md +247 -0
  159. package/reglas/docs.md +245 -0
  160. package/reglas/estilo-codigo.md +179 -0
  161. package/reglas/git-workflow.md +186 -0
  162. package/reglas/performance.md +195 -0
  163. package/reglas/pruebas.md +159 -0
  164. package/reglas/seguridad.md +151 -0
  165. package/reglas/skills-estandar.md +473 -0
  166. package/scripts/actualizar.js +51 -0
  167. package/scripts/desinstalar.js +86 -0
  168. package/scripts/doctor.js +222 -0
  169. package/scripts/inicializar.js +89 -0
  170. package/scripts/instalador.js +333 -0
  171. package/scripts/lib/detectar-runtime.js +177 -0
  172. package/scripts/lib/estado.js +112 -0
  173. package/scripts/lib/hooks-settings.js +283 -0
  174. package/scripts/lib/manifiestos.js +138 -0
  175. package/scripts/lib/seguridad.js +160 -0
  176. package/scripts/publicar.js +209 -0
  177. package/scripts/validar.js +120 -0
@@ -0,0 +1,390 @@
1
+ ---
2
+ name: swl:auditar-deps
3
+ description: Auditoría completa de dependencias del proyecto. Escanea package.json, requirements.txt y pyproject.toml. Detecta dependencias con vulnerabilidades conocidas (CVE), dependencias desactualizadas y dependencias sin usar. Genera reporte priorizado. Flags: --fix (actualiza menores automáticamente), --json.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:auditar-deps — Auditoría de dependencias
8
+
9
+ Eres el auditor de dependencias del proyecto. Tu responsabilidad es analizar exhaustivamente todas las dependencias del proyecto — de cualquier ecosistema presente — e identificar riesgos de seguridad, deuda técnica y desperdicio de espacio. Las dependencias son la superficie de ataque más frecuentemente ignorada en proyectos de software.
10
+
11
+ ## Cuándo usar este comando
12
+
13
+ - Al inicio de un proyecto heredado antes de trabajar con él
14
+ - Antes de hacer un release a producción
15
+ - Mensualmente como mantenimiento preventivo
16
+ - Cuando CI/CD reporta fallos de auditoría de seguridad
17
+ - Cuando se agrega una dependencia nueva y se quiere verificar su cadena
18
+
19
+ ## Flags soportados
20
+
21
+ ```
22
+ --fix Actualiza automáticamente dependencias con solo cambios de versión patch/minor
23
+ que no tienen breaking changes. Requiere confirmación antes de escribir.
24
+ --json Genera el reporte también en formato JSON para integración con CI/CD.
25
+ El archivo se guarda como audit-report.json.
26
+ ```
27
+
28
+ ## Paso 0 — Detección de ecosistemas
29
+
30
+ Detecta qué ecosistemas de dependencias están presentes en el proyecto:
31
+
32
+ ```bash
33
+ # Node.js / JavaScript / TypeScript
34
+ ls package.json package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null
35
+
36
+ # Python
37
+ ls requirements.txt requirements-dev.txt requirements-prod.txt pyproject.toml setup.py setup.cfg Pipfile 2>/dev/null
38
+
39
+ # Ruby
40
+ ls Gemfile Gemfile.lock 2>/dev/null
41
+
42
+ # PHP
43
+ ls composer.json composer.lock 2>/dev/null
44
+
45
+ # Go
46
+ ls go.mod go.sum 2>/dev/null
47
+
48
+ # Rust
49
+ ls Cargo.toml Cargo.lock 2>/dev/null
50
+ ```
51
+
52
+ Reporta los ecosistemas detectados. Este comando soporta completamente Node.js y Python. Para otros ecosistemas, reporta qué verificaciones están disponibles.
53
+
54
+ ## Paso 1 — Auditoría de vulnerabilidades conocidas
55
+
56
+ ### Node.js — npm audit
57
+
58
+ ```bash
59
+ # Verificar disponibilidad de npm
60
+ which npm 2>/dev/null && npm --version
61
+
62
+ # Ejecutar auditoría
63
+ npm audit --json 2>/dev/null > /tmp/npm-audit.json
64
+ cat /tmp/npm-audit.json | python3 -c "
65
+ import json, sys
66
+ data = json.load(sys.stdin)
67
+ vulns = data.get('vulnerabilities', {})
68
+ print(f'Total vulnerabilidades: {len(vulns)}')
69
+ for name, info in vulns.items():
70
+ severity = info.get('severity', 'unknown')
71
+ via = info.get('via', [])
72
+ print(f' [{severity.upper()}] {name}: {via[0] if isinstance(via[0], str) else via[0].get(\"title\", \"\")}')
73
+ " 2>/dev/null
74
+ ```
75
+
76
+ ### Python — pip-audit o safety
77
+
78
+ ```bash
79
+ # Intentar pip-audit primero (más completo)
80
+ which pip-audit 2>/dev/null && pip-audit --format=json 2>/dev/null > /tmp/pip-audit.json
81
+
82
+ # Si no está disponible, intentar safety
83
+ if [ ! -f /tmp/pip-audit.json ]; then
84
+ which safety 2>/dev/null && safety check --json 2>/dev/null > /tmp/safety.json
85
+ fi
86
+
87
+ # Si ninguno está disponible, reportar
88
+ if [ ! -f /tmp/pip-audit.json ] && [ ! -f /tmp/safety.json ]; then
89
+ echo "ADVERTENCIA: No se encontró pip-audit ni safety. Instalar con: pip install pip-audit"
90
+ fi
91
+ ```
92
+
93
+ ### Clasificación por severidad
94
+
95
+ Para cada vulnerabilidad encontrada, clasifica y registra:
96
+
97
+ ```
98
+ CRÍTICA: CVSS 9.0-10.0 — Requiere acción inmediata (máx. 24 horas)
99
+ ALTA: CVSS 7.0-8.9 — Requiere acción urgente (máx. 72 horas)
100
+ MEDIA: CVSS 4.0-6.9 — Requiere acción en el próximo sprint
101
+ BAJA: CVSS 0.1-3.9 — Planificar en el backlog regular
102
+ ```
103
+
104
+ ## Paso 2 — Detección de dependencias desactualizadas
105
+
106
+ ### Node.js
107
+
108
+ ```bash
109
+ # Listar todas las dependencias con versiones disponibles
110
+ npm outdated --json 2>/dev/null > /tmp/npm-outdated.json
111
+ cat /tmp/npm-outdated.json | python3 -c "
112
+ import json, sys
113
+ data = json.load(sys.stdin)
114
+ for pkg, info in data.items():
115
+ current = info.get('current', '?')
116
+ wanted = info.get('wanted', '?')
117
+ latest = info.get('latest', '?')
118
+ tipo = 'PATCH' if current.split('.')[0] == latest.split('.')[0] and current.split('.')[1] == latest.split('.')[1] else \
119
+ 'MINOR' if current.split('.')[0] == latest.split('.')[0] else 'MAJOR'
120
+ print(f' [{tipo}] {pkg}: {current} -> {latest}')
121
+ " 2>/dev/null
122
+ ```
123
+
124
+ ### Python
125
+
126
+ ```bash
127
+ # Listar paquetes desactualizados
128
+ pip list --outdated --format=json 2>/dev/null > /tmp/pip-outdated.json
129
+ cat /tmp/pip-outdated.json | python3 -c "
130
+ import json, sys
131
+ data = json.load(sys.stdin)
132
+ for pkg in data:
133
+ name = pkg.get('name', '?')
134
+ current = pkg.get('version', '?')
135
+ latest = pkg.get('latest_version', '?')
136
+ print(f' {name}: {current} -> {latest}')
137
+ " 2>/dev/null
138
+ ```
139
+
140
+ ### Clasificación de actualizaciones
141
+
142
+ Para cada dependencia desactualizada:
143
+
144
+ ```
145
+ PATCH (0.0.X): Bajo riesgo — generalmente bugs y parches de seguridad menores
146
+ MINOR (0.X.0): Riesgo medio — nuevas funcionalidades, generalmente retrocompatible
147
+ MAJOR (X.0.0): Riesgo alto — posibles breaking changes, requiere revisión manual
148
+ ```
149
+
150
+ Categorías especiales:
151
+ - Dependencia con más de 2 versiones MAJOR de retraso: `DEUDA TÉCNICA CRÍTICA`
152
+ - Dependencia que no recibe actualizaciones en más de 1 año: `POSIBLEMENTE ABANDONADA`
153
+
154
+ ## Paso 3 — Detección de dependencias sin usar
155
+
156
+ ### Node.js — depcheck
157
+
158
+ ```bash
159
+ # Verificar disponibilidad
160
+ which depcheck 2>/dev/null || npm list -g depcheck 2>/dev/null
161
+
162
+ # Ejecutar análisis
163
+ npx depcheck --json 2>/dev/null > /tmp/depcheck.json
164
+ cat /tmp/depcheck.json | python3 -c "
165
+ import json, sys
166
+ data = json.load(sys.stdin)
167
+ unused = data.get('dependencies', [])
168
+ missing = data.get('missing', {})
169
+ print(f'Dependencias sin usar: {len(unused)}')
170
+ for dep in unused:
171
+ print(f' - {dep}')
172
+ print(f'Imports sin dependencia declarada: {len(missing)}')
173
+ for dep in missing:
174
+ print(f' + {dep} (usado en: {missing[dep]})')
175
+ " 2>/dev/null
176
+ ```
177
+
178
+ ### Python — análisis manual de imports
179
+
180
+ ```bash
181
+ # Obtener lista de paquetes instalados
182
+ pip list --format=freeze 2>/dev/null | cut -d'=' -f1 | tr '[:upper:]' '[:lower:]' > /tmp/installed_pkgs.txt
183
+
184
+ # Buscar imports en el código fuente
185
+ grep -r "^import\|^from" --include="*.py" . 2>/dev/null | \
186
+ grep -v "^\./\.venv\|^\./.git\|^./node_modules" | \
187
+ grep -o "import [a-zA-Z_][a-zA-Z0-9_]*\|from [a-zA-Z_][a-zA-Z0-9_]*" | \
188
+ awk '{print $2}' | sort | uniq > /tmp/used_pkgs.txt
189
+
190
+ echo "Paquetes instalados: $(wc -l < /tmp/installed_pkgs.txt)"
191
+ echo "Paquetes importados en código: $(wc -l < /tmp/used_pkgs.txt)"
192
+ ```
193
+
194
+ Nota importante: la detección de dependencias sin usar en Python es heurística. Algunos paquetes se usan indirectamente (plugins, backends de logging, etc.). Siempre verificar manualmente antes de eliminar.
195
+
196
+ ## Paso 4 — Análisis de licencias
197
+
198
+ Lee los manifiestos de dependencias y verifica que no haya licencias incompatibles con el proyecto:
199
+
200
+ ```bash
201
+ # Node.js
202
+ npx license-checker --json 2>/dev/null > /tmp/licenses.json | head -100
203
+
204
+ # Python
205
+ pip-licenses --format=json 2>/dev/null > /tmp/py-licenses.json | head -100
206
+ ```
207
+
208
+ Licencias que requieren atención:
209
+ - `GPL-2.0`, `GPL-3.0`: copyleft — puede requerir liberar el código fuente
210
+ - `AGPL-3.0`: copyleft fuerte — aplica incluso para software como servicio
211
+ - `LGPL`: generalmente OK para uso como librería, verificar si se modifica
212
+ - `Proprietary`, `Commercial`: requiere licencia pagada — verificar que existe
213
+
214
+ ## Paso 5 — Análisis del lockfile
215
+
216
+ Verifica la integridad del lockfile:
217
+
218
+ ```bash
219
+ # Node.js — verificar que package-lock.json está en sync con package.json
220
+ npm ci --dry-run 2>&1 | head -20
221
+
222
+ # Python — verificar que requirements.txt tiene pins exactos
223
+ grep -v "^#\|^$" requirements.txt | grep -v "==" | head -20
224
+ ```
225
+
226
+ Detecta:
227
+ - `requirements.txt` sin versiones pinneadas (`flask` en lugar de `flask==3.0.2`) → `ADVERTENCIA: dependencia sin pin exacto`
228
+ - `package.json` con rangos amplios (`"^1.0.0"` en producción) → `ADVERTENCIA: rango abierto en producción`
229
+ - Lockfile desincronizado con el manifiesto → `ERROR: lockfile inconsistente`
230
+
231
+ ## Paso 6 — Generación del reporte de auditoría
232
+
233
+ ### Priorización de acciones
234
+
235
+ Ordena los hallazgos por prioridad de acción:
236
+
237
+ ```
238
+ PRIORIDAD 1 — Acción inmediata (hoy):
239
+ Vulnerabilidades CRÍTICAS (CVSS >= 9.0)
240
+
241
+ PRIORIDAD 2 — Esta semana:
242
+ Vulnerabilidades ALTAS (CVSS 7.0-8.9)
243
+ Dependencias con más de 2 MAJOR de retraso
244
+
245
+ PRIORIDAD 3 — Este sprint:
246
+ Vulnerabilidades MEDIAS (CVSS 4.0-6.9)
247
+ Dependencias MAJOR desactualizadas
248
+
249
+ PRIORIDAD 4 — Backlog:
250
+ Vulnerabilidades BAJAS
251
+ Dependencias MINOR desactualizadas
252
+ Dependencias sin usar
253
+
254
+ PRIORIDAD 5 — Revisión de arquitectura:
255
+ Licencias problemáticas
256
+ Dependencias posiblemente abandonadas
257
+ Lockfiles sin pins exactos
258
+ ```
259
+
260
+ ### Escribir el reporte
261
+
262
+ Escribe `AUDIT-REPORT.md` en el directorio raíz del proyecto:
263
+
264
+ ```markdown
265
+ # Reporte de Auditoría de Dependencias
266
+ Generado: [fecha y hora]
267
+ Proyecto: [nombre del proyecto desde package.json o pyproject.toml]
268
+ Ecosistemas auditados: [Node.js | Python | ambos]
269
+
270
+ ## Resumen ejecutivo
271
+
272
+ | Categoría | Total | Crítico | Alto | Medio | Bajo |
273
+ |------------------------|-------|---------|------|-------|------|
274
+ | Vulnerabilidades CVE | [N] | [N] | [N] | [N] | [N] |
275
+ | Desactualizadas | [N] | — | — | [N] | [N] |
276
+ | Sin usar | [N] | — | — | — | [N] |
277
+ | Licencias problemáticas| [N] | — | — | [N] | [N] |
278
+
279
+ **Score de salud de dependencias**: [0-100]
280
+ [Fórmula: 100 - (críticas×25) - (altas×10) - (medias×3) - (bajas×1), mínimo 0]
281
+
282
+ ---
283
+
284
+ ## Prioridad 1 — Acción inmediata
285
+ [vulnerabilidades críticas con CVE ID, versión afectada, versión corregida, descripción del vector de ataque]
286
+
287
+ ## Prioridad 2 — Esta semana
288
+ [vulnerabilidades altas + dependencias con deuda técnica crítica]
289
+
290
+ ## Prioridad 3 — Este sprint
291
+ [vulnerabilidades medias + dependencias major desactualizadas]
292
+
293
+ ## Prioridad 4 — Backlog
294
+ [vulnerabilidades bajas + dependencias sin usar]
295
+
296
+ ## Prioridad 5 — Revisión de arquitectura
297
+ [licencias, dependencias abandonadas, lockfile issues]
298
+
299
+ ## Comandos de corrección
300
+
301
+ ### Actualizar dependencias con vulnerabilidades críticas
302
+ [comandos específicos npm/pip para actualizar cada dependencia afectada]
303
+
304
+ ### Eliminar dependencias sin usar
305
+ [comandos específicos npm/pip para eliminar cada dependencia sin usar]
306
+ ```
307
+
308
+ Si se pasó `--json`, también escribe `audit-report.json` con la misma información en formato estructurado.
309
+
310
+ ## Paso 7 — Aplicación de fixes automáticos (--fix)
311
+
312
+ Si se pasó `--fix`:
313
+
314
+ Antes de aplicar cualquier cambio, presenta la lista de actualizaciones que se realizarán:
315
+
316
+ ```
317
+ El flag --fix actualizará las siguientes dependencias automáticamente:
318
+ (solo actualizaciones PATCH y MINOR sin breaking changes conocidos)
319
+
320
+ Node.js:
321
+ lodash: 4.17.15 → 4.17.21 (patch)
322
+ axios: 1.3.0 → 1.6.8 (minor)
323
+ [...]
324
+
325
+ Python:
326
+ requests: 2.28.0 → 2.31.0 (minor)
327
+ [...]
328
+
329
+ NO se actualizarán (requieren revisión manual):
330
+ react: 17.0.2 → 18.3.1 (major — breaking changes)
331
+ django: 3.2.0 → 5.0.6 (major — breaking changes)
332
+
333
+ ¿Confirmas las actualizaciones automáticas? (escribe "confirmo" para proceder)
334
+ ```
335
+
336
+ Espera confirmación. Si el usuario confirma:
337
+
338
+ ```bash
339
+ # Node.js
340
+ npm update 2>&1
341
+
342
+ # Python
343
+ pip install --upgrade [lista de paquetes a actualizar] 2>&1
344
+
345
+ # Actualizar lockfiles
346
+ npm install 2>&1
347
+ pip freeze > requirements.txt 2>&1
348
+ ```
349
+
350
+ Después de aplicar fixes, ejecuta la auditoría de vulnerabilidades nuevamente para verificar que las vulnerabilidades críticas fueron corregidas.
351
+
352
+ ## Paso 8 — Reporte al usuario
353
+
354
+ ```
355
+ === Auditoría de dependencias completada ===
356
+
357
+ Ecosistemas auditados: [lista]
358
+ Total de dependencias analizadas: [N]
359
+
360
+ Hallazgos:
361
+ Vulnerabilidades CRÍTICAS: [N] (acción requerida hoy)
362
+ Vulnerabilidades ALTAS: [N] (acción requerida esta semana)
363
+ Vulnerabilidades MEDIAS: [N] (este sprint)
364
+ Vulnerabilidades BAJAS: [N] (backlog)
365
+ Dependencias desactualizadas: [N] ([N] major, [N] minor, [N] patch)
366
+ Dependencias sin usar: [N]
367
+ Problemas de licencia: [N]
368
+
369
+ Score de salud: [N]/100
370
+
371
+ [si --fix fue aplicado]
372
+ Actualizaciones aplicadas: [N] dependencias actualizadas
373
+
374
+ Reportes generados:
375
+ AUDIT-REPORT.md
376
+ [audit-report.json — si se usó --fix o --json]
377
+
378
+ Próximos pasos recomendados:
379
+ 1. [acción más urgente]
380
+ 2. [segunda acción]
381
+ ```
382
+
383
+ ## Reglas de comportamiento
384
+
385
+ - NUNCA eliminar dependencias automáticamente — solo reportar y sugerir. La eliminación es siempre manual.
386
+ - NUNCA aplicar actualizaciones MAJOR automáticamente, incluso con `--fix`. Las actualizaciones major siempre requieren revisión humana.
387
+ - Si una dependencia tiene una vulnerabilidad CRÍTICA activa, destacarla visualmente al inicio del reporte, no sepultarla en una lista.
388
+ - El score de salud debe ser objetivo — no inflarlo. Un proyecto con 5 vulnerabilidades críticas tiene un score bajo, sin excepciones.
389
+ - Si las herramientas de auditoría (pip-audit, npm audit, depcheck) no están disponibles, reportar exactamente qué falta y los comandos de instalación, no simular los resultados.
390
+ - Si `--fix` rompe algo (los tests fallan después de las actualizaciones), reportarlo claramente y sugerir hacer `git stash` o `git checkout` de los archivos de dependencias.