PLAN AJUSTADO - FASE 2 (CAPVED)
Fecha: 2026-01-10
Basado en: ANALISIS-DETALLADO-FASE1-2026-01-10.md
Plan Original: PLAN-VALIDACION-DESARROLLO-2026-01-06.md
Fase CAPVED: P (Planeacion)
Orquestador: Claude Code - Opus 4.5
RESUMEN EJECUTIVO
Plan ajustado basado en verificacion real de archivos existentes. Se reducen 26 SP del total original debido a tareas ya completadas.
Comparativa de Story Points
| Sprint |
Original |
Refinado Anterior |
Ajustado |
Delta vs Original |
| Sprint 1 |
44 SP |
36 SP |
22 SP |
-22 SP (-50%) |
| Sprint 2 |
39 SP |
37 SP |
37 SP |
-2 SP (-5%) |
| Sprint 3 |
36 SP |
36 SP |
36 SP |
0 SP |
| Sprint 4 |
33 SP |
33 SP |
31 SP |
-2 SP (-6%) |
| TOTAL |
152 SP |
142 SP |
126 SP |
-26 SP (-17%) |
1. TAREAS ELIMINADAS (YA COMPLETADAS)
Las siguientes tareas del plan original NO requieren trabajo:
| Tarea ID |
Titulo |
SP Eliminados |
Razon |
| DB-001 |
Crear HR Schema |
8 SP |
12-hr.sql existe (870 lineas, 19+ tablas) |
| DB-003 |
track_field_changes() |
3 SP |
Existe en 09-system.sql (lineas 681-773) |
| DB-004 |
Crear seed data |
5 SP |
8 archivos seeds existen en database/seeds/ |
| TOTAL ELIMINADO |
- |
16 SP |
- |
2. TAREAS REDUCIDAS
| Tarea ID |
Titulo |
SP Original |
SP Ajustado |
Razon |
| BE-001 |
Jest Setup |
5 SP |
2 SP |
Jest/Supertest instalados, solo config |
| BE-006 |
Permission Cache |
4 SP |
2 SP |
Redis config existe y completo |
| DB-002 |
RLS Validation |
5 SP |
2 SP |
Tests SQL ya existen, solo ejecutar |
| FE-015 |
Frontend Tests |
3 SP |
1 SP |
Vitest/Playwright instalados |
| TOTAL REDUCIDO |
- |
17 SP |
7 SP |
-10 SP |
3. PLAN DETALLADO POR SPRINT
3.1 SPRINT 1: Foundation - Tests Setup + Catalogs Inicio
Duracion: 2 semanas
Story Points: 22 SP (antes 44 SP)
Objetivo: Validar seguridad, configurar tests, iniciar frontend catalogs
Database (2 SP)
DB-002:
titulo: "Ejecutar y validar RLS Tests"
sp: 2
estado: AJUSTADO (antes 5 SP)
descripcion: |
Los tests SQL ya existen en database/tests/:
- rls-validation.sql
- tenant-isolation.sql
- sql-functions.sql
Trabajo requerido:
- Ejecutar tests en ambiente de desarrollo
- Verificar que todos pasen
- Documentar resultados
- Crear reporte de cobertura RLS
archivos_existentes:
- database/tests/rls-validation.sql
- database/tests/tenant-isolation.sql
- database/tests/sql-functions.sql
archivos_a_crear:
- database/tests/REPORTE-RLS-2026-01.md
criterios_aceptacion:
- 100% tests RLS pasando
- Tenant isolation verificado
- Documentacion de resultados
perfil: PERFIL-DATABASE.md
dependencias: []
Backend (10 SP)
BE-001:
titulo: "Configurar Jest y crear setup base"
sp: 2
estado: AJUSTADO (antes 5 SP)
descripcion: |
Jest y Supertest ya estan instalados en package.json.
Trabajo requerido:
- Crear/verificar jest.config.js
- Crear tests/setup.ts con configuracion de DB de test
- Crear factories basicas (user, tenant)
archivos_existentes:
- backend/package.json (jest: ^29.7.0, supertest: ^7.0.0)
archivos_a_crear:
- backend/jest.config.js
- backend/tests/setup.ts
- backend/tests/factories/user.factory.ts
- backend/tests/factories/tenant.factory.ts
- backend/tests/utils/test-helpers.ts
criterios_aceptacion:
- npm test ejecuta sin errores
- DB de test se crea/destruye correctamente
- Factories generan datos validos
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: []
BE-002:
titulo: "Tests Auth Module"
sp: 8
estado: SIN CAMBIOS
descripcion: |
Crear suite completa de tests para modulo auth:
- Unit tests para services
- Integration tests para controllers
- E2E tests para flujos completos
archivos_a_crear:
- backend/src/modules/auth/__tests__/auth.service.spec.ts
- backend/src/modules/auth/__tests__/auth.controller.spec.ts
- backend/src/modules/auth/__tests__/auth.integration.spec.ts
- backend/src/modules/auth/__tests__/token.service.spec.ts
casos_de_prueba:
login:
- happy path (email + password validos)
- invalid email format
- wrong password
- rate limiting (5 intentos)
- locked account
register:
- success
- duplicate email
- weak password
- invalid tenant
refresh_token:
- valid refresh
- expired token
- revoked token
logout:
- single session
- all sessions
change_password:
- success
- wrong current password
- weak new password
cobertura_target: ">80%"
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: [BE-001]
Frontend (10 SP)
FE-001:
titulo: "Feature Catalogs - Estructura"
sp: 5
estado: SIN CAMBIOS
descripcion: |
Crear estructura completa del feature catalogs siguiendo patron FSD.
archivos_a_crear:
- frontend/src/features/catalogs/index.ts
- frontend/src/features/catalogs/api/catalogs.api.ts
- frontend/src/features/catalogs/types/catalog.types.ts
- frontend/src/features/catalogs/hooks/useCountries.ts
- frontend/src/features/catalogs/hooks/useCurrencies.ts
- frontend/src/features/catalogs/hooks/useUom.ts
- frontend/src/features/catalogs/hooks/useCategories.ts
- frontend/src/features/catalogs/components/CountrySelect.tsx
- frontend/src/features/catalogs/components/CurrencySelect.tsx
- frontend/src/features/catalogs/components/UomSelect.tsx
patron_a_seguir: "features/users/ (estructura existente)"
perfil: PERFIL-FRONTEND.md
dependencias: []
FE-002:
titulo: "Countries & States Pages"
sp: 5
estado: SIN CAMBIOS
descripcion: |
CRUD completo para paises y estados.
archivos_a_crear:
- frontend/src/pages/catalogs/countries/CountriesListPage.tsx
- frontend/src/pages/catalogs/countries/CountryDetailPage.tsx
- frontend/src/pages/catalogs/countries/CountryFormPage.tsx
- frontend/src/pages/catalogs/states/StatesByCountryPage.tsx
- frontend/src/features/catalogs/components/CountryForm.tsx
- frontend/src/features/catalogs/components/StateForm.tsx
funcionalidades:
- Lista de paises con busqueda y paginacion
- Detalle de pais con estados
- Crear/editar pais
- CRUD estados por pais
perfil: PERFIL-FRONTEND.md
dependencias: [FE-001]
Resumen Sprint 1
| Capa |
Tareas |
SP |
| Database |
DB-002 |
2 |
| Backend |
BE-001, BE-002 |
10 |
| Frontend |
FE-001, FE-002 |
10 |
| TOTAL |
5 tareas |
22 SP |
3.2 SPRINT 2: Tests Foundation + Catalogs Frontend
Duracion: 2 semanas
Story Points: 37 SP
Objetivo: Completar tests foundation, terminar catalogs frontend
Backend (17 SP)
BE-003:
titulo: "Tests Users Module"
sp: 5
descripcion: |
18+ test cases para modulo users
archivos_a_crear:
- backend/src/modules/users/__tests__/users.service.spec.ts
- backend/src/modules/users/__tests__/users.controller.spec.ts
casos_de_prueba:
- CRUD operations (create, read, update, delete)
- Search with filters
- Pagination
- Role assignment
- Activate/deactivate user
- Multi-tenant isolation
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: [BE-001]
BE-004:
titulo: "Tests Roles Module"
sp: 5
descripcion: |
15+ test cases para modulo roles
archivos_a_crear:
- backend/src/modules/roles/__tests__/roles.service.spec.ts
- backend/src/modules/roles/__tests__/roles.controller.spec.ts
casos_de_prueba:
- CRUD roles
- Permission assignment
- System role protection (no delete/modify)
- Role hierarchy
- Permission validation
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: [BE-001]
BE-005:
titulo: "Tests Tenants Module"
sp: 5
descripcion: |
12+ test cases para modulo tenants
archivos_a_crear:
- backend/src/modules/tenants/__tests__/tenants.service.spec.ts
- backend/src/modules/tenants/__tests__/tenants.controller.spec.ts
casos_de_prueba:
- Tenant creation/update
- Feature flags per tenant
- Plan limits validation
- Tenant isolation
- Settings management
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: [BE-001]
BE-006:
titulo: "Permission Cache Service"
sp: 2
estado: AJUSTADO (antes 4-6 SP)
descripcion: |
Redis config ya existe y esta completo.
Solo crear servicio de cache de permisos.
archivos_existentes:
- backend/src/config/redis.ts (179 lineas, redisClient, blacklistToken, etc.)
archivos_a_crear:
- backend/src/modules/auth/services/permission-cache.service.ts
funcionalidades:
- Cache de permisos por usuario (key: user:{id}:permissions)
- TTL: 1 hora
- Invalidacion en cambio de rol
- Fallback a DB si Redis no disponible
target_performance: "<5ms lookup"
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: []
Frontend (20 SP)
FE-003:
titulo: "Currencies Pages"
sp: 5
archivos_a_crear:
- frontend/src/pages/catalogs/currencies/CurrenciesListPage.tsx
- frontend/src/pages/catalogs/currencies/CurrencyFormPage.tsx
- frontend/src/pages/catalogs/currencies/ExchangeRatesPage.tsx
- frontend/src/features/catalogs/components/CurrencyForm.tsx
- frontend/src/features/catalogs/components/ExchangeRateForm.tsx
perfil: PERFIL-FRONTEND.md
dependencias: [FE-001]
FE-004:
titulo: "Units of Measure Pages"
sp: 5
archivos_a_crear:
- frontend/src/pages/catalogs/uom/UomCategoriesListPage.tsx
- frontend/src/pages/catalogs/uom/UomListPage.tsx
- frontend/src/features/catalogs/components/UomCategoryForm.tsx
- frontend/src/features/catalogs/components/UomForm.tsx
- frontend/src/features/catalogs/components/UomSelect.tsx
perfil: PERFIL-FRONTEND.md
dependencias: [FE-001]
FE-005:
titulo: "Product Categories Pages"
sp: 8
archivos_a_crear:
- frontend/src/pages/catalogs/categories/CategoriesTreePage.tsx
- frontend/src/pages/catalogs/categories/CategoryFormPage.tsx
- frontend/src/features/catalogs/components/CategoryTree.tsx
- frontend/src/features/catalogs/components/CategoryForm.tsx
- frontend/src/features/catalogs/hooks/useCategoryTree.ts
funcionalidades:
- Vista de arbol expandible
- Drag & drop para reorganizar
- CRUD con jerarquia
perfil: PERFIL-FRONTEND.md
dependencias: [FE-001]
FE-006:
titulo: "Rutas y navegacion Catalogs"
sp: 2
archivos_a_modificar:
- frontend/src/app/router/routes.tsx
rutas_a_agregar:
- /catalogs
- /catalogs/countries
- /catalogs/countries/:id
- /catalogs/currencies
- /catalogs/currencies/:id
- /catalogs/uom
- /catalogs/uom/:id
- /catalogs/categories
perfil: PERFIL-FRONTEND.md
dependencias: [FE-002, FE-003, FE-004, FE-005]
Resumen Sprint 2
| Capa |
Tareas |
SP |
| Backend |
BE-003, BE-004, BE-005, BE-006 |
17 |
| Frontend |
FE-003, FE-004, FE-005, FE-006 |
20 |
| TOTAL |
8 tareas |
37 SP |
3.3 SPRINT 3: OAuth + Settings Frontend
Duracion: 2 semanas
Story Points: 36 SP
Objetivo: OAuth integration, tests core business, inicio settings
Backend (22 SP)
BE-007:
titulo: "Tests Financial Module"
sp: 8
archivos_a_crear:
- backend/src/modules/financial/__tests__/journal.service.spec.ts
- backend/src/modules/financial/__tests__/invoice.service.spec.ts
- backend/src/modules/financial/__tests__/payment.service.spec.ts
casos_de_prueba:
- Journal entries balance validation
- Invoice workflow (draft -> posted -> paid)
- Payment reconciliation
- Multi-currency handling
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: [BE-001]
BE-008:
titulo: "Tests Inventory Module"
sp: 6
archivos_a_crear:
- backend/src/modules/inventory/__tests__/product.service.spec.ts
- backend/src/modules/inventory/__tests__/stock.service.spec.ts
casos_de_prueba:
- Stock moves validation
- Valuation (FIFO, LIFO, Average)
- Stock adjustments
- Location transfers
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: [BE-001]
BE-009:
titulo: "OAuth2 Integration"
sp: 8
archivos_a_crear:
- backend/src/modules/auth/providers/google.provider.ts
- backend/src/modules/auth/providers/microsoft.provider.ts
- backend/src/modules/auth/providers/oauth.types.ts
archivos_a_modificar:
- backend/src/modules/auth/auth.routes.ts
- backend/src/modules/auth/auth.controller.ts
endpoints:
- GET /auth/oauth/google
- GET /auth/oauth/google/callback
- GET /auth/oauth/microsoft
- GET /auth/oauth/microsoft/callback
- POST /auth/oauth/link
- DELETE /auth/oauth/unlink/:provider
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: []
Frontend (14 SP)
FE-007:
titulo: "Stores Catalogs (Zustand)"
sp: 3
archivos_a_crear:
- frontend/src/shared/stores/useCurrencyStore.ts
- frontend/src/shared/stores/useCatalogCacheStore.ts
funcionalidades:
- Current currency global
- Cache de listas de catalogos
- Invalidacion automatica
perfil: PERFIL-FRONTEND.md
dependencias: []
FE-008:
titulo: "Feature Settings - Estructura"
sp: 3
archivos_a_crear:
- frontend/src/features/settings/index.ts
- frontend/src/features/settings/api/settings.api.ts
- frontend/src/features/settings/types/settings.types.ts
- frontend/src/features/settings/hooks/useSystemSettings.ts
- frontend/src/features/settings/hooks/useTenantSettings.ts
- frontend/src/features/settings/hooks/useUserPreferences.ts
patron_a_seguir: "features/tenants/"
perfil: PERFIL-FRONTEND.md
dependencias: []
FE-009:
titulo: "System Settings Page"
sp: 5
archivos_a_crear:
- frontend/src/pages/settings/SystemSettingsPage.tsx
- frontend/src/features/settings/components/GeneralSettingsForm.tsx
- frontend/src/features/settings/components/EmailSettingsForm.tsx
- frontend/src/features/settings/components/SecuritySettingsForm.tsx
secciones:
- General (app name, logo, timezone)
- Email (SMTP config)
- Security (password policy, session timeout)
perfil: PERFIL-FRONTEND.md
dependencias: [FE-008]
FE-010-A:
titulo: "Tenant Settings Page (inicio)"
sp: 3
archivos_a_crear:
- frontend/src/pages/settings/TenantSettingsPage.tsx (estructura base)
- frontend/src/features/settings/components/BrandingForm.tsx
perfil: PERFIL-FRONTEND.md
dependencias: [FE-008]
Resumen Sprint 3
| Capa |
Tareas |
SP |
| Backend |
BE-007, BE-008, BE-009 |
22 |
| Frontend |
FE-007, FE-008, FE-009, FE-010-A |
14 |
| TOTAL |
7 tareas |
36 SP |
3.4 SPRINT 4: 2FA + Settings Completion
Duracion: 2 semanas
Story Points: 31 SP
Objetivo: Implementar 2FA, completar settings, tests frontend
Backend (12 SP)
BE-010:
titulo: "2FA/MFA Implementation"
sp: 8
archivos_a_crear:
- backend/src/modules/auth/services/mfa.service.ts
- backend/src/modules/auth/services/totp.service.ts
- backend/src/modules/auth/__tests__/mfa.service.spec.ts
archivos_a_modificar:
- backend/src/modules/auth/auth.routes.ts
- backend/src/modules/auth/auth.controller.ts
endpoints:
- POST /auth/mfa/setup (genera QR)
- POST /auth/mfa/verify (verifica codigo)
- POST /auth/mfa/disable
- GET /auth/mfa/backup-codes
- POST /auth/mfa/regenerate-backup
funcionalidades:
- TOTP (Google Authenticator compatible)
- Backup codes (10 codes de un solo uso)
- Recovery flow
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: []
BE-011:
titulo: "Email Verification Flow"
sp: 4
archivos_a_crear:
- backend/src/modules/auth/services/email-verification.service.ts
- backend/src/shared/services/email.service.ts
archivos_a_modificar:
- backend/src/modules/auth/auth.routes.ts
endpoints:
- POST /auth/verify-email/send
- GET /auth/verify-email/:token
- POST /auth/verify-email/resend
perfil: PERFIL-BACKEND-EXPRESS.md
dependencias: []
Frontend (19 SP)
FE-010-B:
titulo: "Tenant Settings Page (completar)"
sp: 2
archivos_a_crear:
- frontend/src/features/settings/components/LocalizationForm.tsx
- frontend/src/features/settings/components/FeaturesForm.tsx
archivos_a_modificar:
- frontend/src/pages/settings/TenantSettingsPage.tsx
secciones:
- Localization (language, timezone, dateFormat)
- Features enabled (checkboxes)
perfil: PERFIL-FRONTEND.md
dependencias: [FE-010-A]
FE-011:
titulo: "User Preferences Page"
sp: 5
archivos_a_crear:
- frontend/src/pages/settings/UserPreferencesPage.tsx
- frontend/src/features/settings/components/ThemePreferencesForm.tsx
- frontend/src/features/settings/components/LanguagePreferencesForm.tsx
- frontend/src/features/settings/components/NotificationPreferencesForm.tsx
secciones:
- Theme (light/dark/system)
- Language
- Notifications (email, push, in-app)
perfil: PERFIL-FRONTEND.md
dependencias: [FE-008]
FE-012:
titulo: "Feature Flags Management"
sp: 5
archivos_a_crear:
- frontend/src/pages/settings/FeatureFlagsPage.tsx
- frontend/src/features/settings/components/FeatureFlagToggle.tsx
- frontend/src/features/settings/components/FeatureFlagList.tsx
funcionalidades:
- Lista de feature flags
- Toggle por tenant
- Descripcion de cada flag
perfil: PERFIL-FRONTEND.md
dependencias: [FE-008]
FE-013:
titulo: "Settings Stores (Zustand)"
sp: 3
archivos_a_crear:
- frontend/src/shared/stores/useSettingsStore.ts
- frontend/src/shared/stores/useFeatureFlagsStore.ts
perfil: PERFIL-FRONTEND.md
dependencias: []
FE-014:
titulo: "Theme Selector Component"
sp: 3
archivos_a_crear:
- frontend/src/shared/components/organisms/ThemeSelector.tsx
archivos_a_modificar:
- frontend/src/shared/stores/useUIStore.ts
funcionalidades:
- Light/Dark/System toggle
- Persistent en localStorage
- Aplica clases Tailwind (dark:)
perfil: PERFIL-FRONTEND.md
dependencias: []
FE-015:
titulo: "Frontend Tests Config"
sp: 1
estado: AJUSTADO (antes 3 SP)
descripcion: |
Vitest ya instalado. Solo verificar/ajustar config.
archivos_existentes:
- frontend/package.json (vitest: ^2.1.5)
archivos_a_verificar:
- frontend/vitest.config.ts
- frontend/tests/setup.ts
perfil: PERFIL-FRONTEND.md
dependencias: []
Resumen Sprint 4
| Capa |
Tareas |
SP |
| Backend |
BE-010, BE-011 |
12 |
| Frontend |
FE-010-B, FE-011, FE-012, FE-013, FE-014, FE-015 |
19 |
| TOTAL |
8 tareas |
31 SP |
4. GRAFO DE DEPENDENCIAS ACTUALIZADO
graph TD
subgraph Sprint1["SPRINT 1 (22 SP)"]
DB002[DB-002: RLS Validation]
BE001[BE-001: Jest Setup]
BE002[BE-002: Auth Tests]
FE001[FE-001: Catalogs Structure]
FE002[FE-002: Countries Pages]
BE001 --> BE002
FE001 --> FE002
end
subgraph Sprint2["SPRINT 2 (37 SP)"]
BE003[BE-003: Users Tests]
BE004[BE-004: Roles Tests]
BE005[BE-005: Tenants Tests]
BE006[BE-006: Permission Cache]
FE003[FE-003: Currencies]
FE004[FE-004: UoM]
FE005[FE-005: Categories]
FE006[FE-006: Routes]
BE001 --> BE003
BE001 --> BE004
BE001 --> BE005
FE001 --> FE003
FE001 --> FE004
FE001 --> FE005
FE002 --> FE006
FE003 --> FE006
FE004 --> FE006
FE005 --> FE006
end
subgraph Sprint3["SPRINT 3 (36 SP)"]
BE007[BE-007: Financial Tests]
BE008[BE-008: Inventory Tests]
BE009[BE-009: OAuth]
FE007[FE-007: Catalog Stores]
FE008[FE-008: Settings Structure]
FE009[FE-009: System Settings]
FE010A[FE-010-A: Tenant Settings inicio]
BE001 --> BE007
BE001 --> BE008
FE008 --> FE009
FE008 --> FE010A
end
subgraph Sprint4["SPRINT 4 (31 SP)"]
BE010[BE-010: 2FA/MFA]
BE011[BE-011: Email Verification]
FE010B[FE-010-B: Tenant Settings completar]
FE011[FE-011: User Preferences]
FE012[FE-012: Feature Flags]
FE013[FE-013: Settings Stores]
FE014[FE-014: Theme Selector]
FE015[FE-015: Frontend Tests]
BE009 --> BE010
BE010 --> BE011
FE010A --> FE010B
FE008 --> FE011
FE008 --> FE012
end
%% Cross-sprint dependencies
DB002 -.-> BE005
BE002 -.-> FE001
5. PERFILES DE AGENTES REQUERIDOS
sprint_1:
database_agent:
perfil: PERFIL-DATABASE.md
tareas: [DB-002]
sp: 2
backend_agent:
perfil: PERFIL-BACKEND-EXPRESS.md
tareas: [BE-001, BE-002]
sp: 10
frontend_agent:
perfil: PERFIL-FRONTEND.md
tareas: [FE-001, FE-002]
sp: 10
sprint_2:
backend_agent:
perfil: PERFIL-BACKEND-EXPRESS.md
tareas: [BE-003, BE-004, BE-005, BE-006]
sp: 17
frontend_agent:
perfil: PERFIL-FRONTEND.md
tareas: [FE-003, FE-004, FE-005, FE-006]
sp: 20
sprint_3:
backend_agent:
perfil: PERFIL-BACKEND-EXPRESS.md
tareas: [BE-007, BE-008, BE-009]
sp: 22
frontend_agent:
perfil: PERFIL-FRONTEND.md
tareas: [FE-007, FE-008, FE-009, FE-010-A]
sp: 14
sprint_4:
backend_agent:
perfil: PERFIL-BACKEND-EXPRESS.md
tareas: [BE-010, BE-011]
sp: 12
frontend_agent:
perfil: PERFIL-FRONTEND.md
tareas: [FE-010-B, FE-011, FE-012, FE-013, FE-014, FE-015]
sp: 19
6. CRITERIOS DE ACEPTACION POR SPRINT
Sprint 1 - Criterios
database:
- [ ] RLS tests ejecutados (psql -f rls-validation.sql)
- [ ] Todos los tests pasando (0 failures)
- [ ] Tenant isolation verificado
- [ ] Reporte de validacion creado
backend:
- [ ] jest.config.js existe y funciona
- [ ] npm test ejecuta sin errores
- [ ] Auth tests: >80% cobertura
- [ ] Todos los tests pasando
frontend:
- [ ] features/catalogs/ estructura completa
- [ ] Countries CRUD funcional
- [ ] Paginas renderizando correctamente
Sprint 2 - Criterios
backend:
- [ ] Users tests: >80% cobertura
- [ ] Roles tests: >80% cobertura
- [ ] Tenants tests: >80% cobertura
- [ ] Permission cache: <5ms lookup
frontend:
- [ ] Currencies CRUD funcional
- [ ] UoM CRUD funcional
- [ ] Categories tree funcional
- [ ] Todas las rutas accesibles
Sprint 3 - Criterios
backend:
- [ ] OAuth Google login funcional
- [ ] OAuth Microsoft login funcional
- [ ] Financial tests: >60% cobertura
- [ ] Inventory tests: >60% cobertura
frontend:
- [ ] Settings estructura completa
- [ ] System settings guardando correctamente
- [ ] Stores funcionando
Sprint 4 - Criterios
backend:
- [ ] 2FA TOTP funcional (Google Authenticator)
- [ ] Backup codes generando
- [ ] Email verification enviando
- [ ] Recovery flow funcional
frontend:
- [ ] Settings module 100% completo
- [ ] Theme selector funcionando
- [ ] Feature flags toggle funcionando
- [ ] Vitest config verificado
7. RIESGOS Y MITIGACIONES
| Riesgo |
Probabilidad |
Impacto |
Estado |
Mitigacion |
| Jest setup complejo |
BAJA |
Medio |
MITIGADO |
Ya instalado |
| HR Schema faltante |
ELIMINADO |
- |
CERRADO |
Ya existe |
| Redis no disponible |
BAJA |
Bajo |
MITIGADO |
Config con fallback |
| OAuth API changes |
BAJA |
Medio |
PENDIENTE |
Usar SDKs oficiales |
| RLS performance |
MEDIA |
Alto |
PENDIENTE |
Ejecutar tests en Sprint 1 |
| Frontend scope creep |
ALTA |
Medio |
ACTIVO |
Seguir specs existentes |
8. RESUMEN FINAL
Metricas del Plan Ajustado
| Metrica |
Valor |
| Total Story Points |
126 SP |
| Sprints |
4 |
| Tareas totales |
28 |
| Tareas eliminadas |
4 (16 SP) |
| Tareas reducidas |
4 (10 SP) |
| Reduccion total |
26 SP (17%) |
Distribucion por Capa
| Capa |
SP |
% del Total |
| Database |
2 |
2% |
| Backend |
61 |
48% |
| Frontend |
63 |
50% |
| TOTAL |
126 |
100% |
Documento generado por: ORQUESTADOR (Claude Code Opus 4.5)
Sistema: SIMCO + CAPVED
Fase actual: P (Planeacion) - COMPLETADA
Proxima fase: V (Validacion de Planeacion)