Saltar a contenido

SOURCE-003 Promote Core Execute Gate Implementation 001

Fecha local: 2026-06-15

Estado: PROMOTE-CORE EXECUTE GATE IMPLEMENTADO / BLOCKED / SIN CARGA CORE

portal_visible = yes

Scope: tenant

tenant_id: alpuntodeventa

Owner: Gabi / Carlos Canu

Fuente de verdad: docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-PROMOTE-CORE-EXECUTE-GATE-IMPLEMENTATION-001.md

1. Objetivo

Implementar en el importer el gate controlado para:

powershell python scripts/source_003_importer.py promote-core --execute

No implementa escritura real. No carga datos en CORE, no modifica RAW, no genera CSV, no ejecuta runner y no habilita sync.

2. Safe point

Control Resultado
workspace C:\APV\openclawai
rama main
git status --short --branch inicial ## main...origin/main
git rev-parse HEAD inicial 6945c158b565b4091f2a1cc4bf6b4c4805226ed9
ultimo commit inicial docs: define source 003 promote core execution gate
decision SAFE POINT PASS

3. Archivos modificados

Archivo Impacto
scripts/source_003_importer.py Agrega flags y validacion de confirmaciones para promote-core --execute; el resultado sigue siempre BLOCKED y sin escritura.
docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-PYTHON-IMPORTER-SKELETON-001.md Actualiza el contrato operativo observado del skeleton.
docs/tenants/alpuntodeventa/business-observer/design/SOURCE-003-PROMOTE-CORE-EXECUTE-GATE-IMPLEMENTATION-001.md Registra la evidencia de implementacion.
mkdocs.yml Publica la evidencia nueva en el portal documental.
README.md, docs/PROJECT-STATE.md, docs/ROADMAP.md, docs/governance/ACTIVE-CONTEXT.md, docs/tenants/alpuntodeventa/business-observer/README.md, docs/tenants/alpuntodeventa/business-observer/PROJECT-STATE.md, docs/tenants/alpuntodeventa/business-observer/ROADMAP.md Actualizan el estado resumido del frente.

4. Gate implementado

promote-core sin --execute conserva comportamiento DRY_RUN.

promote-core --execute valida confirmaciones explicitas y devuelve BLOCKED si falta alguna, si hay mismatch o aunque todas coincidan, porque la ruta de escritura CORE no esta implementada en esta etapa.

Confirmaciones requeridas:

powershell --confirm-local-dev --confirm-promote-core-local-dev --confirm-target-database openclaw_business_observer_dev --confirm-source-table business_observer.raw_source_003_sales_items --confirm-target-table business_observer.core_source_003_sales_items --confirm-batch 1827f887-9499-4579-b4f3-234d54f41f7f --confirm-raw-row-count 1886 --confirm-core-empty --confirm-core-initial-row-count 0 --confirm-candidate-rows 1886 --confirm-target-columns 66 --confirm-duplicates-core 0 --confirm-db-fingerprint "::1/128:5432|openclaw_business_observer_dev|postgres|PostgreSQL 15.15, compiled by Visual C++ build 1944, 64-bit"

5. Controles preservados

El gate conserva como evidencia obligatoria:

  • DB permitida: openclaw_business_observer_dev;
  • RAW source: business_observer.raw_source_003_sales_items;
  • CORE target: business_observer.core_source_003_sales_items;
  • batch permitido: 1827f887-9499-4579-b4f3-234d54f41f7f;
  • RAW batch rows = 1886;
  • CORE row_count = 0;
  • candidate_rows = 1886;
  • target_columns = 66;
  • duplicates_core = 0;
  • fingerprint DB obligatorio;
  • postgres-sandbox prohibido;
  • db_write=false;
  • data_written=false;
  • sync_enabled=false.

6. Resultado esperado

promote-core:

json { "command": "promote-core", "result": "DRY_RUN", "raw_batch_rows": 1886, "core_row_count": 0, "candidate_rows": 1886, "target_columns": 66, "duplicates_core": 0, "db_write": false, "data_written": false, "sync_enabled": false }

promote-core --execute sin confirmaciones:

json { "command": "promote-core", "result": "BLOCKED", "db_touched": false, "db_write": false, "sql_executed": false, "sql_write": false, "data_written": false, "sync_enabled": false }

7. Bloqueos preservados

Siguen bloqueados:

  • escritura real en CORE;
  • modificacion de RAW;
  • INSERT, COPY, UPDATE, DELETE en promote-core;
  • CSV nuevo;
  • runner;
  • rollback real;
  • VPS, Docker, OpenClaw, NPM, Portainer;
  • push y deploy;
  • produccion final;
  • sync diaria.

8. Validaciones ejecutadas

Validaciones de esta etapa:

text python -m py_compile scripts/source_003_importer.py -> PASS python scripts/source_003_importer.py --help -> PASS python scripts/source_003_importer.py promote-core -> DRY_RUN python scripts/source_003_importer.py promote-core --execute -> BLOCKED python scripts/source_003_importer.py promote-core --execute --confirm-local-dev -> BLOCKED git diff --check -> PASS .venv-portal\Scripts\mkdocs.exe build --strict -> PASS

Resultado promote-core observado:

  • result = DRY_RUN;
  • raw_batch_rows = 1886;
  • core_row_count = 0;
  • candidate_rows = 1886;
  • target_columns = 66;
  • duplicates_core = 0;
  • db_write=false;
  • data_written=false;
  • sync_enabled=false.

Resultado promote-core --execute observado:

  • result = BLOCKED;
  • confirmaciones faltantes listadas en confirmation_gate;
  • db_touched=false;
  • db_write=false;
  • sql_executed=false;
  • sql_write=false;
  • data_written=false;
  • sync_enabled=false.

No se ejecutaron confirmaciones completas.

9. Decision

text PROMOTE-CORE EXECUTE GATE IMPLEMENTADO / BLOCKED / SIN CARGA CORE

El importer queda preparado para exigir confirmaciones explicitas en el modo promote-core --execute, pero no contiene ruta de escritura CORE. La carga real, rollback real, runner, produccion y sync diaria siguen bloqueados.