WO Lint Formatter
Overview
Aplicar un flujo fail-closed para Work Orders (WO): formatear, validar contratos y bloquear avance de WOs inválidos antes de mover estado.
Quick Workflow
- •Ejecutar formato determinista:
bash
make wo-fmt
- •Verificar que no queden cambios de formato:
bash
make wo-fmt-check
- •Validar reglas estrictas de WO:
bash
make wo-lint
- •Generar evidencia JSON para CI/auditoría:
bash
make wo-lint-json > _ctx/telemetry/wo_lint.json
Focused Lint (WO puntual)
Usar validación focalizada para un solo WO cuando se depura creación/toma:
bash
uv run python scripts/ctx_wo_lint.py --strict --json --wo-id WO-XXXX --root .
Interpretar salida:
- •
severity=ERROR: bloqueante. - •
severity=INFOo no error: no bloqueante. - •Exit code
1: hay errores. - •Exit code
0: sin errores bloqueantes.
Gate in WO Take
Para scripts/ctx_wo_take.py, la validación inmediata debe correr antes de lock/worktree/mutaciones de estado:
- •Cargar WO y validar schema básico.
- •Ejecutar lint focalizado con
--wo-iden modo--strict --json. - •Si hay
ERROR, abortar conexit 1y hints de remediación.
Regla operativa:
- •
--forcenunca bypass de integridad (schema/lint). - •
--forcesolo puede mantener bypass de validaciones de dependencia de dominio ya existentes.
Findings To Prioritize
Resolver primero hallazgos que rompen contratos del sistema:
- •
iddistinto al nombre de archivo. - •IDs duplicados entre estados.
- •
statusinconsistente con carpeta (pending/running/done/failed). - •
epic_idodod_idinexistente. - •
scope.allow/scope.denyfaltantes. - •
verify.commandsvacío enpending/running. - •
dependenciesapuntando a WO inexistente.
Expected Paths
- •WOs:
_ctx/jobs/{pending,running,done,failed}/WO-*.yaml - •Backlog:
_ctx/backlog/backlog.yaml - •DoD catalog:
_ctx/dod/*.yaml - •CI telemetry artifact:
_ctx/telemetry/wo_lint.json
Troubleshooting
- •Si
wo-fmt-checkfalla: ejecutarmake wo-fmty revisar diff. - •Si
wo-lintfalla: corregir errores por código de finding antes de reintentar. - •Si
ctx_wo_take.pyrechaza un WO: ejecutar lint focalizado con--wo-idpara ver errores precisos.
Verification Before Completion
Antes de cerrar cambios en WOs o scripts WO:
bash
make wo-fmt-check make wo-lint uv run pytest -q tests/unit/test_ctx_wo_lint.py tests/unit/test_ctx_wo_take.py