Caducidade — the 30-day guard after the inquiry
useWorkflow.executeTransition contains an explicit caducidade (lapse) guard on the
PHASE_DEADLINES — the legally-anchored deadline catalogue
src/lib/workflow-config.ts declares deadline rules per phase. Each rule is type,
Working-day math ignores Portuguese holidays (and timezone)
date-utils.addBusinessDays advances a date skipping only Saturday and Sunday:
Mandatory consultation (CT/Sindicato) before dismissal
The BODIES_OPINION phase models the Portuguese requirement to consult the works council
Witness limits (art. 357.º/4 CT)
InquiryActionsList.tsx enforces a witness cap that cites a statute — the only
Conditional workflow branching on case flags
The procedure is not a single linear path — three boolean flags on cases reshape it.
Sanctions, and the instructor's end-of-inquiry proposal
Disciplinary outcomes (sanctions)