Guía rápida — actualizar datos del SSOT

📋 Datos canónicos: NEGOCIO_SSOT. Esta guía explica CÓMO editarlos sin romper la arquitectura.

La regla mental

Solo hay un comando que necesitas recordar:

python3 scripts/audit/vault_update.py

El script te abre el SSOT en tu editor, valida cuando lo cierras, te muestra el diff y te ofrece commitear. Si la validación falla, te ofrece reabrir el editor para arreglarlo. No puedes hacerlo mal.


Casos comunes

Caso 1 — Añadir un nuevo lanzamiento de Ritual Core Legacy

Ejemplo: lanzamiento de Junio 2026 con 15 ventas y $4.500 brutos.

  1. Ejecuta python3 scripts/audit/vault_update.py
  2. En el SSOT, busca la sección ## Lanzamientos (Ritual Core Legacy)
  3. Añade una fila ANTES de la fila TOTAL:
    | 2026-06 | Core y Suelo Pélvico - Junio26 | 15 | $4.500 | $300 |
    
  4. Actualiza la fila TOTAL:
    • ventas: 114129 (sumar 15)
    • revenue: $30.973$35.473 (sumar 4500)
    • ticket medio: nuevo total / nuevas ventas (calcula a mano o deja igual; es informativo)
  5. Si era el mejor lanzamiento, ya tocará pensar si actualizar el flag mutable=False de mejor_lanzamiento_usd en scripts/audit/audit_ssot.py (consulta a una IA si dudas).
  6. Guarda, cierra el editor. El script valida y te ofrece commitear.

Caso 2 — Actualizar contactos Zenler

Ejemplo: el último export muestra 11.200 contactos totales y 10.100 entregables.

  1. python3 scripts/audit/vault_update.py
  2. Busca ## Segmentos de contactos Zenler
  3. Edita:
    • “Total Zenler (todos)” → cambia 10.863 por 11.200
    • “Entregables (último broadcast)” → cambia ~9.900 por ~10.100
  4. Guarda y cierra.

Caso 3 — Añadir un evento crítico

Ejemplo: el 2026-09-01 abres una nueva membresía.

  1. python3 scripts/audit/vault_update.py
  2. Busca ## Eventos críticos
  3. Añade fila al final (orden cronológico):
    | 2026-09-01 | Apertura nueva membresía | inicio nuevo ciclo |
    
  4. Guarda y cierra.

Caso 4 — Añadir un nuevo segmento de contactos

Ejemplo: 60 alumnas activas tras campaña de reactivación.

  1. python3 scripts/audit/vault_update.py
  2. Busca ## Segmentos de contactos Zenler
  3. Añade fila:
    | Alumnas reactivadas 2026 | **60** | tag `reactivada_2026` en CSV |
    
  4. Si quieres exponer ese número en BI/index/dashboard vía Dataview, abre scripts/audit/audit_ssot.py:
    • Localiza el bloque seg_patterns (~línea 116)
    • Añade una tupla: ("alumnas_reactivadas", r"Alumnas reactivadas 2026\s*\|\s*\*\*([\d.,]+)\*\*", ["reactivada", "reactivadas"])
    • Añade "alumnas_reactivadas": "alumnas_reactivadas" al dict FRONTMATTER_TO_SSOT (~línea 155)
  5. Guarda, cierra. El script regenerará el frontmatter de BI con el campo nuevo.

Caso 5 — Cambiar el estado de un producto

Ejemplo: reabres la membresía.

  1. python3 scripts/audit/vault_update.py
  2. Busca ## Productos
  3. En la fila de membresia-ritual-core, edita la celda modelo: quita “cerrada”, cambia precio si toca, actualiza alumnas_pago si hay nuevas.
  4. Guarda y cierra.

Si algo va mal

El script bloquea el commit si:

  • Drift entre SSOT y frontmatter de BI → causado por editar BI a mano (no lo hagas). Solución: deja que el script regenere el FM.
  • Hardcode mutable en prosa → causado por escribir un número de negocio en prosa nueva en BI/index/PROGRAMAS/etc. Solución: usa `= this.X` (en BI) o `$= dv.page("BUSINESS_INTELLIGENCE").X` (en otros docs).
  • Violación direccional en SSOT → causado por añadir wikilink [[OTRA_NOTA]] o referencia a .md dentro del SSOT. Solución: muévelo a _INDEX_NEGOCIO.md.

Cuando dudes, ejecuta el auditor sin commitear:

python3 scripts/audit/audit_ssot.py --strict

Genera un reporte en _docs/audits/ssot_drift_<fecha>.md con cada hallazgo, ruta y línea exacta.


Atajos

Quiero…Comando
Actualizar datos paso a pasopython3 scripts/audit/vault_update.py
Validar sin editar nadapython3 scripts/audit/vault_update.py --no-edit --dry-run
Auto-commit (CI o desde otra IA)python3 scripts/audit/vault_update.py --no-edit --auto-commit -m "..."
Solo auditarpython3 scripts/audit/audit_ssot.py --strict
Solo sincronizar BIpython3 scripts/audit/sync_ssot_to_frontmatter.py

Aliases recomendados (tu próximo .zshrc/.bashrc)

alias vault-update='python3 scripts/audit/vault_update.py'
alias vault-check='python3 scripts/audit/audit_ssot.py --strict'
alias vault-sync='python3 scripts/audit/sync_ssot_to_frontmatter.py'