Cada producto en products/* debe declarar en pyproject.toml:
project.nameproject.versionen formato SemVer estricto:X.Y.Z
El job release-metadata bloquea merges si falta o es invalido.
MAJOR: ruptura de contrato de API o flujo principal.MINOR: funcionalidad nueva compatible.PATCH: correcciones sin ruptura.
qualityen verde (ruff, mypy, bandit, cobertura minima).portfolio-testsyproducts-testsen verde.- Version actualizada en productos afectados.
- Riesgos y limites operativos documentados en README o docs del producto.
- Rollback definido (commit/tag anterior estable).
- Link a workflow exitoso.
- Lista de productos/versiones impactadas.
- Resumen de riesgos residuales aceptados.