@saulwade/swl-ses 1.9.0 → 2.0.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.
Files changed (108) hide show
  1. package/CLAUDE.md +8 -8
  2. package/README.md +12 -12
  3. package/agentes/accesibilidad-wcag-swl.md +3 -3
  4. package/agentes/auto-evolucion-swl.md +908 -908
  5. package/agentes/disenador-ui-swl.md +6 -5
  6. package/agentes/frontend-angular-swl.md +2 -2
  7. package/agentes/frontend-css-swl.md +2 -2
  8. package/agentes/frontend-react-swl.md +4 -4
  9. package/agentes/frontend-swl.md +6 -6
  10. package/agentes/investigador-ux-swl.md +5 -5
  11. package/agentes/orquestador-swl.md +7 -7
  12. package/agentes/perfilador-usuario-swl.md +308 -308
  13. package/agentes/producto-prd-swl.md +1 -1
  14. package/agentes/red-team-swl.md +218 -218
  15. package/agentes/tdd-qa-swl.md +17 -1
  16. package/comandos/swl/actualizar.md +1 -1
  17. package/comandos/swl/aprender.md +2 -2
  18. package/comandos/swl/aprobar-plan.md +152 -0
  19. package/comandos/swl/ayuda.md +3 -3
  20. package/comandos/swl/discutir-fase.md +20 -2
  21. package/comandos/swl/ejecutar-fase.md +53 -6
  22. package/comandos/swl/evolucionar.md +1 -1
  23. package/comandos/swl/inbox.md +1 -1
  24. package/comandos/swl/instalar.md +1 -1
  25. package/comandos/swl/nemesis.md +1 -1
  26. package/comandos/swl/planear-fase.md +17 -1
  27. package/comandos/swl/plugins.md +1 -1
  28. package/comandos/swl/release.md +1 -1
  29. package/comandos/swl/status.md +279 -0
  30. package/comandos/swl/verificar.md +26 -1
  31. package/habilidades/ai-runtime-security/SKILL.md +1 -1
  32. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  33. package/habilidades/benchmark-memoria/SKILL.md +1 -1
  34. package/habilidades/calidad-contract-testing/SKILL.md +165 -0
  35. package/habilidades/changelog-generator/SKILL.md +9 -2
  36. package/habilidades/changelog-generator/scripts/parse-commits.js +11 -1
  37. package/habilidades/diagrama-arquitectura/SKILL.md +1 -1
  38. package/habilidades/drift-detection/SKILL.md +179 -179
  39. package/habilidades/ejecutar-fase/SKILL.md +64 -14
  40. package/habilidades/estructura-proyecto-claude/SKILL.md +17 -14
  41. package/habilidades/estructura-proyecto-claude/recursos/configuracion-y-extensiones.md +34 -23
  42. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +70 -53
  43. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -77
  44. package/habilidades/extractor-de-aprendizajes/SKILL.md +9 -5
  45. package/habilidades/harness-claude-code/SKILL.md +10 -7
  46. package/{reglas/harness-claude-code.md → habilidades/harness-claude-code/recursos/disciplina-harness-regla.md} +2 -2
  47. package/habilidades/instalar-sistema/SKILL.md +3 -3
  48. package/habilidades/meta-skills-estandar/recursos/frameworks-seguridad.md +1 -1
  49. package/habilidades/perfil-usuario/SKILL.md +200 -200
  50. package/habilidades/planear-fase/SKILL.md +25 -4
  51. package/habilidades/proceso-ddia-fundamentos/SKILL.md +1 -1
  52. package/habilidades/proceso-ddia-streaming/SKILL.md +4 -4
  53. package/habilidades/proceso-debate-adversarial/SKILL.md +2 -2
  54. package/habilidades/protocolo-revision-swl/SKILL.md +1 -1
  55. package/habilidades/seguridad-skills-ia/SKILL.md +1 -1
  56. package/habilidades/swl-claudemd/SKILL.md +50 -210
  57. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -0
  58. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -0
  59. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -0
  60. package/habilidades/swl-dashboard/SKILL.md +9 -9
  61. package/habilidades/swl-revisar-impacto/SKILL.md +1 -1
  62. package/habilidades/tdd-workflow/SKILL.md +45 -5
  63. package/habilidades/validacion-ci-sistema/SKILL.md +3 -3
  64. package/hooks/calidad-pre-commit.js +340 -3
  65. package/hooks/ciclo-evolucion-subagente.js +26 -0
  66. package/hooks/ciclo-evolucion.js +26 -0
  67. package/hooks/extraccion-aprendizajes.js +13 -0
  68. package/hooks/lib/ciclo-evolucion.js +47 -0
  69. package/hooks/{auto-evolucion.js → lib/etapa-auto-evolucion.js} +701 -700
  70. package/hooks/{metricas-evolucion.js → lib/etapa-metricas.js} +388 -376
  71. package/hooks/{actualizar-perfil-usuario.js → lib/etapa-perfil-usuario.js} +376 -364
  72. package/hooks/lib/evolution-tracker.js +24 -3
  73. package/hooks/spec-gate.js +211 -0
  74. package/hooks/tdd-gate.js +241 -0
  75. package/hooks/validar-intent-spec.js +30 -10
  76. package/llms.txt +6 -6
  77. package/manifiestos/hooks-config.json +26 -17
  78. package/manifiestos/modulos.json +17 -14
  79. package/manifiestos/skills-lock.json +63 -56
  80. package/package.json +2 -2
  81. package/plugin.json +6 -10
  82. package/reglas/accesibilidad.md +10 -0
  83. package/reglas/api-diseno.md +9 -0
  84. package/reglas/auditorias-documentales-estructurales.md +7 -0
  85. package/reglas/cloud-infra.md +8 -0
  86. package/reglas/fragmentos-compartidos.md +5 -0
  87. package/reglas/gobernanza.md +4 -4
  88. package/reglas/hooks.md +6 -0
  89. package/reglas/intent-engineering.md +4 -0
  90. package/reglas/markitdown.md +8 -0
  91. package/reglas/memoria-consolidada.md +1 -1
  92. package/reglas/patrones.md +6 -0
  93. package/reglas/registro-componentes-nuevos.md +10 -1
  94. package/reglas/seguridad-agentes.md +1 -1
  95. package/reglas/skills-estandar.md +6 -0
  96. package/reglas/testing.md +7 -0
  97. package/reglas/tests-cleanup.md +4 -0
  98. package/reglas/usar-sistema-swl.md +1 -1
  99. package/scripts/lib/gitignore-manifest.js +29 -1
  100. package/scripts/lib/plan-lock.js +275 -0
  101. package/scripts/migrar-fase-dominio.js +0 -1
  102. package/scripts/verificar-trazabilidad.js +292 -0
  103. package/agentes/ux-disenador-swl.md +0 -503
  104. package/comandos/swl/dashboard.md +0 -146
  105. package/comandos/swl/evolucion-estado.md +0 -191
  106. package/comandos/swl/metricas.md +0 -376
  107. package/comandos/swl/salud.md +0 -481
  108. package/reglas/verificar-citas-temporales.md +0 -139
package/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- # CLAUDE.md — @saulwade/swl-ses v1.9.0
1
+ # CLAUDE.md — @saulwade/swl-ses v2.0.0
2
2
 
3
3
  ## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
4
4
 
@@ -49,7 +49,7 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
49
49
  | `npm run publish:dry` | Dry-run de publicación a npm + GitHub |
50
50
  | `node scripts/verificar-release.js` | Gate pre-release: 15+ ubicaciones de versión, sincronización, AI-isms (si `SWL_AIISMS_GATE=1`) |
51
51
  | `node scripts/generar-inventario.js` | Regenera contadores oficiales (NUNCA contar a mano) |
52
- | `node scripts/derivar-feature-list.js` | Genera `.planning/feature-list.json` (derivado de `HOJA-RUTA.md`, gitignored, regenerable). Modo `--check` exit 2 si drift detectado. Consumido por `/swl:metricas fases`. |
52
+ | `node scripts/derivar-feature-list.js` | Genera `.planning/feature-list.json` (derivado de `HOJA-RUTA.md`, gitignored, regenerable). Modo `--check` exit 2 si drift detectado. Consumido por `/swl:status metricas fases`. |
53
53
 
54
54
  ## Code style
55
55
 
@@ -63,11 +63,12 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
63
63
  - **Nombre completo del paquete en npx**: todo mensaje del installer/docs usa `npx -y @saulwade/swl-ses@latest <comando>`. **NUNCA** `npx swl-ses@latest <comando>` sin el scope `@saulwade/` — eso resuelve al paquete legacy DEPRECATED (v5.13.1) que aún existe en npm tras el rebrand de 2026-04-30. El `@latest` es indispensable: sin él npx reutiliza la primera versión cacheada y el usuario corre código viejo sin saberlo. El `-y` evita la prompt de confirmación en CI/scripts
64
64
  - **Fixtures `secret`/`token` en tests deben ser en español** (`secreto`, `tokenBearer`, `clave-test`). El hook `calidad-pre-commit.js` matchea `\bsecret\s*[=:]\s*["'][^"'\s]{4,}["']` y `\btoken\s*[=:]\s*["'][^"'\s]{8,}["']` — `const secret = "valor"` se bloquea como credencial hardcodeada aunque sea fixture legítimo. Renombrar a español elude el regex sin bypass (alternativas reconocidas por el hook: `placeholder`, `example`, `fake_`, `dummy_`, `os.environ`/`process.env`). Coherente con regla global de idioma. Origen: PR #11 sesión 2026-05-13
65
65
  - **`git add archivo && git commit -m "..."` en un solo comando bash NO actualiza el index antes del PreToolUse hook**: el hook `calidad-pre-commit.js` evalúa el contenido staged previo al `&&`, no el actualizado en la misma línea. Síntoma: commit bloqueado por contenido que ya corregiste vía Write/Edit pero seguía staged en versión antigua. Fix: separar en dos calls Bash (`git add archivo` → ver resultado → `git commit -m "..."`). NUNCA usar `--no-verify` para bypassear. Origen: PR #11 sesión 2026-05-13
66
- - **Secretos compartidos entre múltiples clientes MCP viven como variables de entorno persistentes del SO, NO en archivos JSON** [v2 — 2026-05-18 supersede patrón anterior]: cuando un MCP server (ej. Obsidian) se usa simultáneamente desde **Cursor + Claude Code CLI + VS Code**, cada cliente tiene SU PROPIO config (`~/.cursor/mcp.json` vs `~/.claude/settings.json` vs `~/AppData/Roaming/Code/User/mcp.json`). Duplicar `OBSIDIAN_API_KEY` en N archivos JSON genera drift al regenerar la apiKey con Reset Crypto del plugin. Patrón correcto: `setx OBSIDIAN_API_KEY <key>` (CMD) o `[Environment]::SetEnvironmentVariable("OBSIDIAN_API_KEY","<key>","User")` (PowerShell 7) → escribe a `HKCU\Environment` → todos los clientes heredan al spawnear el binario. Los configs JSON OMITEN la clave `env` por completo (NO `env: {}` vacío — eso pasa literal a `child_process.spawn` y REEMPLAZA el env del padre, rompiendo la herencia). Regenerar apiKey = un solo `setx` + reiniciar Cursor, sin tocar JSONs. Origen: sesión 2026-05-18 tras 6h peleando con 40101 a través de 3 configs descoordinados.
66
+ - **Secretos compartidos entre clientes MCP viven como variables de entorno persistentes del SO, NO en archivos JSON** [v2 — 2026-05-18]: un MCP usado desde Cursor + Claude Code + VS Code tiene un config JSON POR cliente; duplicar `OBSIDIAN_API_KEY` en N archivos genera drift al regenerar la apiKey. Patrón: `setx OBSIDIAN_API_KEY <key>` (o `[Environment]::SetEnvironmentVariable(..., "User")` en PS7) → escribe a `HKCU\Environment` → todos los clientes la heredan al spawnear el binario. Los JSON OMITEN la clave `env` por completo (NO `env: {}` vacío — pasa literal a `child_process.spawn` y REEMPLAZA el env del padre, rompiendo la herencia). Regenerar apiKey = un `setx` + reiniciar clientes, sin tocar JSONs. Origen: 2026-05-18, 6h de errores 40101 por 3 configs descoordinados.
67
67
 
68
68
  ## Convenciones de arquitectura
69
69
 
70
70
  - **Precedencia de capas**: Reglas base (`reglas/`) → Reglas por lenguaje (`reglas/{lang}/`) → Skills (`habilidades/`) → Instintos (`instintos/`). Cada capa puede especializar pero NUNCA contradecir las superiores
71
+ - **`reglas/` es la FUENTE; `~/.claude/rules/` son copias INSTALADAS** por el instalador: todo cambio a reglas base va en la fuente y se sincroniza — editar solo las copias es deuda volátil (el install las sobreescribe). Origen: Fase 09 (APRENDIZAJES 2026-06-11)
71
72
  - **Privilegio mínimo de agentes**: un agente delegado NUNCA excede los permisos declarados en su propio frontmatter. La cadena de delegación no escala privilegios. Ver `@reglas/seguridad-agentes.md`
72
73
  - **Preservación de datos en actualización**: `.planning/sessions/`, `.planning/comms/`, `_userland/`, `instintos/proyecto.yaml`, `APRENDIZAJES.md` NUNCA se sobreescriben
73
74
  - **Documentación obligatoria**: toda funcionalidad nueva DEBE documentarse en `MANUAL_USO.md`, `COMANDOS.md`, `CLAUDE.md` y `README.md` ANTES del commit
@@ -95,7 +96,7 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
95
96
  ## Qué es este repositorio
96
97
 
97
98
  Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo).
98
- 11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 61 agentes, 181 skills, 45 comandos, 71 reglas, 45 hooks.
99
+ 11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 60 agentes, 182 skills, 43 comandos, 69 reglas, 46 hooks.
99
100
 
100
101
  ## Estructura del repositorio
101
102
 
@@ -115,7 +116,7 @@ scripts/ bin/ _userland/ .claude/ .planning/
115
116
 
116
117
  ## Comandos del sistema (/swl:*)
117
118
 
118
- Catálogo completo de 45 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales por categoría:
119
+ Catálogo completo de 43 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales por categoría:
119
120
 
120
121
  - **Ciclo GSD por fase**: `discutir-fase` → `planear-fase` → `ejecutar-fase` → `verificar` (con discovery routing, modo iterativo `--iterative` y `--until-converge`).
121
122
  - **Anti-context-rot**: `checkpoint`, `compactar`.
@@ -127,7 +128,7 @@ Catálogo completo de 45 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales po
127
128
 
128
129
  Para flags exactos y semántica de cada comando ver `@COMANDOS.md` y `@MANUAL_USO.md`.
129
130
 
130
- ## Reglas obligatorias (25 base + 40 por lenguaje)
131
+ ## Reglas obligatorias (29 base + 40 por lenguaje)
131
132
 
132
133
  Las reglas globales del usuario en `~/.claude/rules/` se cargan automáticamente
133
134
  y aplican a todos los proyectos. Las reglas del sistema en `reglas/` se cargan
@@ -136,7 +137,6 @@ proyecto. Reglas de mayor uso:
136
137
 
137
138
  | Regla | Carga cuando |
138
139
  |-------|-------------|
139
- | `usar-sistema-swl.md` | Siempre — matriz operacional: tarea → componente SWL obligatorio |
140
140
  | `brevedad-output.md` | Siempre — idioma español, eficiencia de tokens |
141
141
  | `seguridad.md` / `seguridad-agentes.md` | `*.py`, `*.ts`, `auth/`, agentes autónomos |
142
142
  | `arreglar-al-detectar.md` | Siempre — detectar → informar → arreglar en mismo turno |
@@ -149,7 +149,7 @@ proyecto. Reglas de mayor uso:
149
149
 
150
150
  Catálogo completo y matchers en `@INVENTARIO.md` sección Reglas.
151
151
 
152
- @reglas/usar-sistema-swl.md
152
+ <!-- La regla de la sección "Uso obligatorio del sistema SWL" NO se importa con @: la copia global ya carga sola; el @import duplicaba ~250 líneas/sesión. Depurado Fase 09 (commit 7273c9e). -->
153
153
 
154
154
  ## Estrategia de modelos por nivel de criticidad (Model-Tier)
155
155
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # swl-ses v1.9.0
1
+ # swl-ses v2.0.0
2
2
 
3
3
  > El paquete anterior `@saulwadeleon/swl-software-engineering-system` está deprecado. Migrar a `@saulwade/swl-ses` (npmjs.org canónico) o `@saul-wade/swl-ses` (mirror en GitHub Packages) — el CLI `swl-ses` no cambia.
4
4
 
@@ -13,10 +13,10 @@ Cubre el SDLC completo: discovery, requisitos, arquitectura, UX/UI, frontend, ba
13
13
  | Componente | Cantidad |
14
14
  |-----------|----------|
15
15
  | Agentes SWL | 60 |
16
- | Habilidades | 160 (todas <=300 líneas, con divulgación progresiva a recursos/) |
17
- | Comandos (/swl:*) | 44 (todos <=300 líneas, delegan a skills) |
18
- | Reglas | 25 base + 40 por lenguaje (8 lenguajes x 5) |
19
- | Hooks | 41 + 66 librerías en hooks/lib/ |
16
+ | Habilidades | 182 (todas <=300 líneas, con divulgación progresiva a recursos/) |
17
+ | Comandos (/swl:*) | 43 (todos <=300 líneas, delegan a skills) |
18
+ | Reglas | 29 base + 40 por lenguaje (8 lenguajes x 5) |
19
+ | Hooks | 46 + 73 librerías en hooks/lib/ |
20
20
  | Tools ejecutables (audit-tools) | 8 (code-profiler, pentest-scanner, dep-doctor, bundle-tracker, env-validator, migration-checker, canary-monitor, audit-history) |
21
21
  | Schemas | 15 |
22
22
  | Perfiles de instalación | 17 |
@@ -195,7 +195,7 @@ claude
195
195
  | `mobile` | Android + iOS + React Native/Flutter + UX |
196
196
  | `devops` | CI/CD + cloud + observabilidad + releases + seguridad |
197
197
  | `polyglot` | Todos los lenguajes: 11 lenguajes + revisores + build resolvers |
198
- | `completo` | Todo: 61 agentes + 181 habilidades + 45 comandos + 71 reglas + 45 hooks |
198
+ | `completo` | Todo: 60 agentes + 182 habilidades + 43 comandos + 69 reglas + 46 hooks |
199
199
 
200
200
  ### Targets soportados
201
201
 
@@ -266,7 +266,7 @@ npx @saulwade/swl-ses@latest info --target claude
266
266
  `arquitecto-swl`, `planificador-swl`
267
267
 
268
268
  ### UX / UI / Diseño
269
- `ux-disenador-swl`, `disenador-ui-swl`, `accesibilidad-wcag-swl`
269
+ `investigador-ux-swl`, `disenador-ui-swl`, `accesibilidad-wcag-swl`
270
270
 
271
271
  ### Frontend
272
272
  `frontend-swl`, `frontend-react-swl`, `frontend-angular-swl`, `frontend-css-swl`, `frontend-tailwind-swl`
@@ -325,15 +325,15 @@ npx @saulwade/swl-ses@latest info --target claude
325
325
  | `/swl:evolucionar` | Auto-evolución de agentes/skills |
326
326
  | `/swl:autoresearch` | Loop de auto-mejora iterativa contra checklist |
327
327
  | `/swl:crear-skill` | Crear nuevo skill con guía interactiva |
328
- | `/swl:salud` | Diagnóstico de integridad del sistema |
328
+ | `/swl:status salud` | Diagnóstico de integridad del sistema |
329
329
  | `/swl:release` | Ciclo de release SemVer |
330
330
  | `/swl:auditar-deps` | Auditoría de dependencias (CVEs) |
331
331
  | `/swl:contexto` | Cambiar modo de desarrollo activo (dev/review/research) |
332
332
  | `/swl:sesiones` | Gestionar persistencia de sesiones de trabajo |
333
333
  | `/swl:instintos` | Inspeccionar y gestionar instintos del sistema |
334
334
  | `/swl:modelo` | Configurar modelo de IA por agente o globalmente |
335
- | `/swl:metricas` | Ver métricas de sesión y productividad |
336
- | `/swl:dashboard` | Dashboard histórico de uso multi-sesión (gráficas interactivas) |
335
+ | `/swl:status metricas` | Ver métricas de sesión y productividad |
336
+ | `/swl:status dashboard` | Dashboard histórico de uso multi-sesión (gráficas interactivas) |
337
337
  | `/swl:revisar-impacto` | Análisis de impacto estructural: blast radius, risk score, comunidades |
338
338
  | `/swl:evaluar-skill` | Evaluación formal de skills: 2 capas (estática + semántica), badges de calidad |
339
339
  | `/swl:wiki` | Gestionar wiki de conocimiento del proyecto (init/ingest/query/lint) |
@@ -498,9 +498,9 @@ swl-ses/
498
498
  manifiestos/ # Perfiles y módulos de instalación
499
499
  agentes/ # 60 agentes especializados
500
500
  habilidades/ # 160 habilidades modulares
501
- comandos/swl/ # 45 comandos slash
501
+ comandos/swl/ # 43 comandos slash
502
502
  reglas/ # 28 reglas base + 40 por lenguaje
503
- hooks/ # 45 hooks + 69 librerías en hooks/lib/
503
+ hooks/ # 46 hooks + 69 librerías en hooks/lib/
504
504
  schemas/ # 15 JSON Schemas
505
505
  contextos/ # 3 modos de desarrollo
506
506
  instintos/ # Instintos YAML con confianza
@@ -11,7 +11,7 @@ description: >
11
11
  con discapacidad, cuando se necesita certificar conformidad WCAG, o cuando
12
12
  se detectan problemas de accesibilidad reportados por usuarios. También invocar
13
13
  como segundo revisor de UI-SPEC.md producida por disenador-ui-swl o
14
- ux-disenador-swl para verificar que las especificaciones son accesibles.
14
+ disenador-ui-swl para verificar que las especificaciones son accesibles.
15
15
  tools: [Read, Grep, Glob, Bash, Write]
16
16
  model: claude-sonnet-4-6
17
17
  modeloAlterno: claude-haiku-4-5-20251001
@@ -29,7 +29,7 @@ fase: verify
29
29
  dominio: ux
30
30
  exclusiones:
31
31
  - "No invocar para implementar los cambios de accesibilidad identificados — este agente audita y produce reportes; la implementación corresponde al agente de frontend del stack."
32
- - "No invocar para diseñar la interfaz visual — el diseño corresponde a disenador-ui-swl o ux-disenador-swl; este agente solo revisa que el resultado cumpla WCAG."
32
+ - "No invocar para diseñar la interfaz visual — el diseño corresponde a disenador-ui-swl; este agente solo revisa que el resultado cumpla WCAG."
33
33
  - "No invocar cuando el trabajo es solo accesibilidad de documentos (PDFs, Word) sin componente web o móvil."
34
34
  ---
35
35
  Eres un auditor de accesibilidad web y móvil con certificación en WCAG y
@@ -37,7 +37,7 @@ Eres un auditor de accesibilidad web y móvil con certificación en WCAG y
37
37
  ## Cuándo NO invocarme
38
38
 
39
39
  - Para implementar los cambios de accesibilidad identificados: este agente audita y produce reportes; la implementación corresponde al agente de frontend del stack (`frontend-react-swl`, `frontend-angular-swl`, etc.).
40
- - Para diseñar la interfaz visual: el diseño corresponde a `disenador-ui-swl` o `ux-disenador-swl`; este agente solo revisa que el resultado cumpla WCAG.
40
+ - Para diseñar la interfaz visual: el diseño corresponde a `disenador-ui-swl`; este agente solo revisa que el resultado cumpla WCAG.
41
41
  - Cuando el trabajo es solo accesibilidad de documentos (PDFs, documentos Office) sin componente web o móvil.
42
42
  experiencia directa usando lectores de pantalla. Entiendes la accesibilidad
43
43
  como un derecho, no como una lista de verificación.