| name | neo-mejoras |
| description | Ejecuta el plan de mejoras de NeoCorporateWeb por bloques. Úsalo cuando el usuario escriba "/neo-mejoras", o cuando pida avanzar/continuar el "plan de mejoras", "roadmap", "bloque X" o "fase de mejoras" del proyecto. Lee `NeoCorporateWeb.Web/infraestructura/md/analisis-mejoras-sistema-completo.md` como fuente de verdad del plan. |
Skill: neo-mejoras
Esta skill orquesta la ejecución del plan de mejoras documentado en NeoCorporateWeb.Web/infraestructura/md/analisis-mejoras-sistema-completo.md. Cada vez que el usuario te invoca, debes:
- Leer el archivo de análisis para conocer el plan completo y el orden recomendado.
- Leer el archivo de estado
.claude/skills/neo-mejoras/estado.md (si existe) para saber qué bloques ya se completaron.
- Determinar la acción según el argumento del usuario.
Argumentos soportados
| Argumento | Acción |
|---|
| (vacío) | Mostrar estado actual + sugerir próximo bloque a ejecutar |
estado | Mostrar tabla detallada de progreso de los 10 bloques |
bloque N | Ejecutar el bloque número N (1–10) con confirmación previa |
bloque N.M | Ejecutar solo el item M del bloque N (ej. bloque 2.3) |
siguiente | Ejecutar automáticamente el próximo item pendiente del bloque en curso |
marcar N.M completado | Marcar manualmente un item como completado en estado.md |
reset | (pide confirmación) Borra estado.md y empieza desde cero |
Flujo por bloque
Cuando ejecutes un bloque:
- Lee el detalle del bloque en
analisis-mejoras-sistema-completo.md.
- Muestra al usuario la lista de items del bloque y pregúntale (con
AskUserQuestion si hay >1 opción):
- ¿Ejecutar todos los items del bloque, o seleccionar específicos?
- ¿Confirmar antes de cada item, o avanzar automáticamente?
- ¿Crear commit por item, por bloque, o no commitear?
- Ejecuta los items aprobados en orden:
- Para cada item: investiga el código actual, planea el cambio, lo implementa, lo prueba (build + tests si aplica).
- Si un item requiere migración SQL, créala tanto en
infraestructura/sql/ como en database/Scripts/ (regla del proyecto).
- Si un item requiere texto en UI, añade claves a los 3 archivos
.resx (es, en, pt).
- Actualiza
estado.md marcando los items completados.
- Reporta al usuario qué se hizo, qué falló y qué queda pendiente del bloque.
Reglas obligatorias
- No inventes items. Solo ejecuta lo que está en
analisis-mejoras-sistema-completo.md.
- Respeta la arquitectura existente:
- Multi-tenant con
CompanyId y query filters globales.
- Controllers ligeros; reglas de negocio en
Services/.
AuditService para acciones administrativas relevantes.
HtmlSanitizerService antes de persistir/renderizar HTML editable.
- No romper rutas públicas, endpoints API ni nombres de tablas existentes.
- No skipees hooks ni firma de commits (
--no-verify, --no-gpg-sign, etc).
- Confirma antes de commands destructivos (delete branches, force push, drop tables, rm -rf).
- Build verificable: tras cambios de código, ejecuta
dotnet build NeoCorporateWeb.Web.slnx y reporta el resultado.
- Tests verificables: si tocas Services, Controllers, Middlewares o Data, ejecuta
dotnet test NeoCorporateWeb.Web.slnx y reporta.
- Una migración → ambas carpetas: cualquier script SQL nuevo debe quedar en
infraestructura/sql/ Y en database/Scripts/, con nombre incremental tipo YYYYMMDD_NN_descripcion.sql.
- Documentación viva: al cerrar un bloque, actualiza
analisis-mejoras-sistema-completo.md reflejando el avance (cambiar estado de items a ✅).
Archivo de estado (estado.md)
Si no existe, créalo con esta estructura inicial:
# Estado del plan de mejoras NeoCorporateWeb
Última actualización: <fecha>
## Bloque 1 — Cierre del trabajo en progreso
- [ ] 1.1 SecurityHeadersMiddleware
- [ ] 1.2 IFeatureGate integración
- [ ] 1.3 Query filters nuevos + tests
- [ ] 1.4 Precisión decimal + migración
- [ ] 1.5 .gitignore + limpiar tracked artifacts
- [ ] 1.6 Documentar RequestLocalization
- [ ] 1.7 Commit semántico
## Bloque 2 — Pendientes documentados
- [ ] 2.1 Recuperación de contraseña
- [ ] 2.2 Cambio de password desde perfil
- [ ] 2.3 Account lockout
- [ ] 2.4 Auditoría de login
- [ ] 2.5 Catálogo de países dropdown
- [ ] 2.6 Validación culture/timezone
- [ ] 2.7 Preview moneda/fecha
- [ ] 2.8 Upload logo/favicon
- [ ] 2.9 Drag & drop menús
- [ ] 2.10 Subniveles profundos menús
- [ ] 2.11 Validación client-side contacto
- [ ] 2.12 Cookie Consent
- [ ] 2.13 AllowSetup config
- [ ] 2.14 Complejidad password setup
- [ ] 2.15 Rate limit /setup
- [ ] 2.16 Logging estructurado setup
## Bloque 3 — Seguridad y hardening
- [ ] 3.1 Política de password global
- [ ] 3.2 Reset password por email
- [ ] 3.3 Account lockout global
- [ ] 3.4 Sink Serilog adicional
- [ ] 3.5 Health checks extendidos
- [ ] 3.6 Auditoría eventos críticos
- [ ] 3.7 Rotación API keys
- [ ] 3.8 Revisión [Authorize(Roles)]
- [ ] 3.9 Verificación SecurityHeaders
## Bloque 4 — Testing y calidad
- [ ] 4.1 Cobertura módulos
- [ ] 4.2 Tests integración
- [ ] 4.3 Tests migraciones SQL
- [ ] 4.4 E2E Playwright
- [ ] 4.5 OWASP ZAP CI
- [ ] 4.6 Smoke tests post-deploy
## Bloque 5 — UX/UI Polish
- [ ] 5.1 i18n admin completo
- [ ] 5.2 Mobile admin
- [ ] 5.3 Dark mode
- [ ] 5.4 Media Manager WebP
- [ ] 5.5 (Opcional) Reemplazar Summernote
## Bloque 6 — Features comerciales
- [ ] 6.1 Búsqueda global pública
- [ ] 6.2 Newsletter campaigns
- [ ] 6.3 Blog comments
- [ ] 6.4 Embed Dynamic Forms
- [ ] 6.5 (Opcional) E-commerce
- [ ] 6.6 (Opcional) Chat widget
- [ ] 6.7 (Opcional) Reservas/citas
## Bloque 7 — Operación
- [ ] 7.1 Backup automatizado tenant
- [ ] 7.2 Restore UI
- [ ] 7.3 Storage quotas
- [ ] 7.4 App Insights/OpenTelemetry
- [ ] 7.5 Alertas configurables
- [ ] 7.6 Status page pública
## Bloque 8 — Documentación
- [ ] 8.1 Manual usuario admin
- [ ] 8.2 Manual SuperAdmin
- [ ] 8.3 Guía despliegue
- [ ] 8.4 Swagger enriquecido
- [ ] 8.5 CHANGELOG versionado
## Bloque 9 — Performance/escalabilidad
- [ ] 9.1 Redis IDistributedCache
- [ ] 9.2 Redis rate limiter
- [ ] 9.3 Hangfire/Quartz
- [ ] 9.4 CDN wwwroot/uploads
- [ ] 9.5 Review índices SQL
- [ ] 9.6 Read-replica SQL
## Bloque 10 — NeoClientPortal
- [ ] 10.1 Implementación según plan técnico
Cuando completes un item, cambia [ ] por [x] y agrega al final del item — completado YYYY-MM-DD.
Cuándo NO ejecutar
- Si el usuario solo pregunta "¿qué hay en el plan?": muéstralo, no ejecutes.
- Si un item requiere decisiones de producto que no están en el plan: pregunta antes de implementar.
- Si detectas que ya se hizo algo (por código o git log), márcalo como completado en
estado.md y continúa al siguiente sin re-hacerlo.
Convención de commits
Cuando crees commits durante la ejecución:
<tipo>(neo-mejoras): bloque N.M <descripción corta>
<descripción extendida si aplica>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tipos: feat, fix, refactor, test, docs, chore, perf, style.
Ejemplo: feat(neo-mejoras): bloque 2.1 reset de contraseña por email con token TTL