Use when working with Work Orders in trifecta_dope and you need to lint, format, or enforce WO integrity gates in local workflows, CI, or WO take/finish operations.
Aplicar un flujo fail-closed para Work Orders (WO): formatear, validar contratos y bloquear avance de WOs inválidos antes de mover estado.
make wo-fmt
make wo-fmt-check
make wo-lint
make wo-lint-json > _ctx/telemetry/wo_lint.json
Usar validación focalizada para un solo WO cuando se depura creación/toma:
uv run python scripts/ctx_wo_lint.py --strict --json --wo-id WO-XXXX --root .
Interpretar salida:
severity=ERROR: bloqueante.severity=INFO o no error: no bloqueante.1: hay errores.0: sin errores bloqueantes.Para scripts/ctx_wo_take.py, la validación inmediata debe correr antes de lock/worktree/mutaciones de estado:
--wo-id en modo --strict --json.ERROR, abortar con exit 1 y hints de remediación.Regla operativa:
--force nunca bypass de integridad (schema/lint).--force solo puede mantener bypass de validaciones de dependencia de dominio ya existentes.Resolver primero hallazgos que rompen contratos del sistema:
id distinto al nombre de archivo.status inconsistente con carpeta (pending/running/done/failed).epic_id o dod_id inexistente.scope.allow/scope.deny faltantes.verify.commands vacío en pending/running.dependencies apuntando a WO inexistente._ctx/jobs/{pending,running,done,failed}/WO-*.yaml_ctx/backlog/backlog.yaml_ctx/dod/*.yaml_ctx/telemetry/wo_lint.jsonwo-fmt-check falla: ejecutar make wo-fmt y revisar diff.wo-lint falla: corregir errores por código de finding antes de reintentar.ctx_wo_take.py rechaza un WO: ejecutar lint focalizado con --wo-id para ver errores precisos.Antes de cerrar cambios en WOs o scripts WO:
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