Saltar a contenido

SOURCE-003 Build Mart Commit Gate 001

Fecha: 2026-06-18

Estado: IMPLEMENTADO / NO EJECUTADO / COMMIT FUTURO GATEADO

Objetivo

Agregar un segundo gate explicito para una futura persistencia real local-dev de:

python scripts/source_003_importer.py build-mart --execute

sin ejecutar esa persistencia en esta tarea.

Gates

  • gate 1 obligatorio: --confirm-local-dev-write SOURCE003_MART_LOCAL_DEV_1886
  • gate 2 obligatorio para commit futuro: --commit-local-dev-write SOURCE003_MART_LOCAL_DEV_COMMIT_1886
  • modo rehearsal: --rollback-rehearsal

Reglas

  • build-mart sin flags conserva DRY_RUN
  • build-mart --execute sin tokens conserva BLOCKED
  • token incorrecto conserva BLOCKED
  • token real sin --commit-local-dev-write y sin --rollback-rehearsal conserva BLOCKED
  • --rollback-rehearsal y --commit-local-dev-write son mutuamente excluyentes
  • la persistencia real futura solo queda habilitable si ambos tokens son correctos y --rollback-rehearsal no esta presente

Implementacion

Archivo modificado:

  • scripts/source_003_importer.py

Impacto:

  • agrega la constante SOURCE003_MART_LOCAL_DEV_COMMIT_1886
  • expone --commit-local-dev-write en CLI
  • separa build-mart --execute en dos modos: rollback-rehearsal y commit-local-dev
  • deja preparado el mismo write path transaccional para un futuro COMMIT local-dev
  • mantiene bloqueados los casos sin doble gate correcto

Validaciones previstas en esta tarea

  • python scripts/source_003_importer.py build-mart debe devolver DRY_RUN
  • python scripts/source_003_importer.py build-mart --execute debe devolver BLOCKED
  • python scripts/source_003_importer.py build-mart --execute --confirm-local-dev-write WRONG_TOKEN debe devolver BLOCKED
  • python scripts/source_003_importer.py build-mart --execute --confirm-local-dev-write SOURCE003_MART_LOCAL_DEV_1886 debe devolver BLOCKED
  • python scripts/source_003_importer.py build-mart --execute --confirm-local-dev-write SOURCE003_MART_LOCAL_DEV_1886 --commit-local-dev-write WRONG_TOKEN debe devolver BLOCKED
  • python scripts/source_003_importer.py build-mart --execute --confirm-local-dev-write SOURCE003_MART_LOCAL_DEV_1886 --rollback-rehearsal --commit-local-dev-write SOURCE003_MART_LOCAL_DEV_COMMIT_1886 debe devolver BLOCKED

Estado preservado

  • RAW = 1886
  • CORE = 1886
  • MART daily/seller/customer/sku = 0/0/0/0
  • sin INSERT, COPY, UPDATE, DELETE persistente
  • sin produccion, sync diaria, runner, scheduler, La Directa, runtime O4, VPS, Docker, NPM, Portainer, push ni deploy