docs: Plan P2603.01 Automatización Zoom y actualizaciones P2601.09

This commit is contained in:
Ricardo Monla
2026-03-31 18:03:21 -03:00
parent 160da47f96
commit 1fd213173e
72 changed files with 19694 additions and 460 deletions
@@ -0,0 +1,78 @@
# P2603.04 - Plan: Herencia Automática de Modo de Jornada
## Objetivo
Eliminar la fricción de especificar manualmente el modo (`[P]`, `[R]`, `[S]`) en cada evento. El modo se define una sola vez al iniciar la jornada y se hereda automáticamente.
## Problema Identificado
- Fricción actual: Registrar modo en cada evento es repetitivo y propenso a errores
- 4 eventos corregidos hoy (1186, 1210, 1211, 1213) por modo incorrecto
- El modo debería ser contexto de jornada, no dato por evento
## Diseño Propuesto
### Concepto: Jornada Define el Modo
```
┌─────────────────────────────────────────────────────────────┐
│ JORNADA PRESENCIAL (8:00-13:00) │
│ ├── Evento 1: 08:00-09:00 → [P] automático │
│ ├── Evento 2: 09:00-10:00 → [P] automático │
│ ├── Evento 3: 11:00-12:00 → [R] override manual │
│ └── Evento 4: 13:00-18:00 → [R] automático (fuera horario) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ JORNADA REMOTA │
│ └── Todos los eventos → [R] automático │
└─────────────────────────────────────────────────────────────┘
```
### Reglas de Herencia
1. **Modo de jornada**: Definido al iniciar (`jornada --iniciar --modo presencial`)
2. **Heredar por defecto**: Todo evento nuevo usa el modo de la jornada
3. **Override manual**: Si se especifica `--modo` explícitamente, se usa ese
4. **Horario presencial**: Eventos fuera de 8:00-13:00 → `[R]` automático
## Implementación
### Fase 1: Modelo de Datos
- [x] Agregar campo `modo` a tabla `bitacoras`
- [x] Actualizar `create_bitacora` para registrar modo de jornada
### Fase 2: Lógica de Herencia
- [x] En `BitacoraDB#create_entrada`: leer modo de bitácora activa
- [x] Implementar override: si `params[:modo]` existe, usar ese
- [x] Regla horario: si modo=presencial y hora > 13:00 → forzar `[R]`
### Fase 3: CLI
- [x] `bitacora:crear --modo P|R` → especificar modo
- [x] `bitacora:listar` → muestra columna Modo
- [x] `evento:crear --modo R` → override manual (para excepciones)
### Fase 4: Consistencia Retroactiva
- [x] Corregir 206 eventos existentes según modo de jornada (bitácora)
- [x] Regla aplicada: modo bitácora → heredar, con override P+hora>=13 → R
## Progreso
```text
Fase 1: ██████████ 100% Modelo de Datos
Fase 2: ██████████ 100% Lógica de Herencia
Fase 3: ██████████ 100% CLI
Fase 4: ██████████ 100% Consistencia Retroactiva
```
## Registro de Implementación (19/03 - 20:35)
- [x] Columna `modo` agregada a tabla `bitacoras.bitacoras`
- [x] `create_bitacora` acepta parámetro `--modo`
- [x] `list_bitacoras` muestra columna Modo
- [x] `create_entrada` hereda modo desde bitácora
- [x] Regla implementada: jornada presencial + hora > 13:00 → [R] automático
- [x] CLI actualizado: `--modo` en `bitacora:crear`
- [x] Test 1: Herencia automática (1218)
- [x] Test 2: Herencia automática (1219)
- [x] Implementada herencia automática (1220)
- [x] Consistencia retroactiva: 206 entradas corregidas según modo de bitácora (1221)
## Beneficios Esperados
- **Menos fricción**: 0 errores de modo por descuido
- **Trazabilidad**: Un lugar donde se define el contexto de trabajo
- **Menos es más**: Elimina dato redundante de cada evento