Detectado durante la revisión UX del #72 (PR #95). Inconsistencia de cálculo preexistente:
GoalAccordion.jsx calcula el % del goal sobre countableActions (excluye skipped).
DevelopmentPlanDetail.jsx (línea ~43) agrega con g.actions?.length (incluye skipped).
PlanCard.jsx excluye skipped (consistente con el goal).
Resultado: un plan con acciones saltadas muestra un % agregado que no cuadra con los % de sus goals (el Detail diluye el avance con acciones que ya no cuentan).
Fix propuesto
Unificar el criterio (excluir skipped, que es el mayoritario y el semánticamente correcto: una acción saltada no es trabajo pendiente) en un helper compartido de agregación, y cubrirlo con un test que mezcle estados.
Criterio de aceptación
Detectado durante la revisión UX del #72 (PR #95). Inconsistencia de cálculo preexistente:
GoalAccordion.jsxcalcula el % del goal sobrecountableActions(excluyeskipped).DevelopmentPlanDetail.jsx(línea ~43) agrega cong.actions?.length(incluyeskipped).PlanCard.jsxexcluyeskipped(consistente con el goal).Resultado: un plan con acciones saltadas muestra un % agregado que no cuadra con los % de sus goals (el Detail diluye el avance con acciones que ya no cuentan).
Fix propuesto
Unificar el criterio (excluir
skipped, que es el mayoritario y el semánticamente correcto: una acción saltada no es trabajo pendiente) en un helper compartido de agregación, y cubrirlo con un test que mezcle estados.Criterio de aceptación