Volver a la wiki

Runbook: Audit Docs Drift — Ejecución, triaje y corrección de drift documental

Propósito

Este runbook cubre la operación del sistema de detección de drift documental introducido en PR#29 (s61). Está dirigido a cualquier miembro del equipo que reciba un issue automático del cron mensual o que quiera ejecutar el script manualmente al cierre de una sesión de desarrollo.


Cuándo ejecutar este runbook

SituaciónAcción
Issue automático [audit-docs-drift] Hard drift detectado abierto por el cron→ Sección Triaje de issue hard
Cierre de sesión que haya tocado docs (CLAUDE.md, TASK.md, wikis, CHANGELOG)→ Sección Ejecución manual rápida
Añadir una nueva wiki (product: nuevo)→ Sección Actualizar constantes del script
APP_VERSION bump→ Sección Verificar propagación de versión
Smoke test tras merge de este PR→ gh workflow run audit-docs-drift.yml

Prerequisitos

# Tener ambos repos clonados como hermanos:
# ├── CreaRack-Pro/          ← REPO_ROOT
# └── CreaRackSL-workspace/  ← WORKSPACE_ROOT

cd CreaRack-Pro
python --version  # ≥ 3.11

No hay dependencias externas — el script usa solo stdlib Python.


Ejecución manual rápida

# Desde la raíz de CreaRack-Pro:
python scripts/audit_docs_drift.py

Lectura del output:

## [OK] wiki-counts (hard)         → sin productos desconocidos ✓
## [OK] app-version-propagation (hard) → versión propagada en 6 archivos ✓
## [INFO] dead-doc-refs (soft)     → refs muertas (no bloquea)
## [INFO] huerfanas (soft)         → páginas sin ruta UI (no bloquea)
---
Summary: 0 hard failure(s), N soft info finding(s).

Triaje de issue hard

1. wiki-counts falla

Causa típica: se añadió una página wiki con un product: no reconocido por el script.

Diagnóstico:

python scripts/audit_docs_drift.py --check wiki-counts --json | python -m json.tool
# Buscar "unknown_products" en el output

Resolución:

CasoAcción
Nuevo product: para una wiki con ruta UI realAñadir a UI_PRODUCTS en el script
Nuevo product: para páginas huérfanas esperadasAñadir a ORPHAN_PRODUCTS en el script
Error tipográfico en front-matter de la páginaCorregir el product: en el .md afectado

Tras corregir → re-ejecutar para confirmar status: ok.

2. app-version-propagation falla

Causa típica: APP_VERSION fue bumpeada en config/settings/base.py pero no se propagó a todos los archivos.

Diagnóstico:

python scripts/audit_docs_drift.py --check app-version-propagation --json
# Buscar "missing" en el output — lista archivos donde falta

Resolución:

# Ver la versión actual en settings:
grep "APP_VERSION" config/settings/base.py

# Buscar en cada archivo listado en "missing" y actualizar manualmente
# Archivos afectados: README.md, CLAUDE.md, pyproject.toml,
#   workspace/CLAUDE.md, workspace/src/components/shell/Sidebar.tsx,
#   workspace/src/components/variants/desktop/DesktopA.tsx

Si se añadieron nuevos archivos donde debe propagarse la versión → añadir a APP_VERSION_PROPAGATION en el script.


Triaje de findings soft (no bloquean, pero conviene revisar)

dead-doc-refs

Referencias Documentation/*.md que ya no existen. Mayoría serán entradas históricas del CHANGELOG (aceptables).

python scripts/audit_docs_drift.py --check dead-doc-refs --json

Acción por caso:

obsolete-banners

Ficheros .md que mencionan OBSOLETO/DEPRECATED sin banner explícito al inicio.

python scripts/audit_docs_drift.py --check obsolete-banners

Acción: añadir al inicio del fichero afectado:

> **OBSOLETO**: Este documento ha sido reemplazado por [...].

ugly-bibask-slugs

~80 slugs patrón concept--general--existe-* generados por bib_ask sin curación. Candidatos a renombrar o archivar.

python scripts/audit_docs_drift.py --check ugly-bibask-slugs --json

Acción: sesión dedicada del Curator para renombrar, fusionar o archivar.

huerfanas

Páginas con product: supercontext o product: infra — sin ruta en la navegación UI.

python scripts/audit_docs_drift.py --check huerfanas --json

Acción por cada página (triaje caso a caso):

Estado actual (14-05-2026): 39 huérfanas (38 supercontext + 1 infra) — sub-iniciativa abierta en TASK.md.


Actualizar constantes del script

Nueva wiki con ruta UI

# En scripts/audit_docs_drift.py, línea ~45:
UI_PRODUCTS = {"crearack", "crearack-tech", "workspace", "workspace-tech", "ia-tech", "<nueva-wiki>"}

Nueva ruta de propagación de APP_VERSION

# En scripts/audit_docs_drift.py, línea ~50:
APP_VERSION_PROPAGATION = [
    ...
    REPO_ROOT / "ruta/al/nuevo/archivo.ext",
]

Tras editar: ejecutar python scripts/audit_docs_drift.py para confirmar que los checks pasan.


Verificar el workflow CI

# Disparar manualmente (requiere gh CLI autenticado):
gh workflow run audit-docs-drift.yml

# Ver estado del último run:
gh run list --workflow=audit-docs-drift.yml --limit=5

# Descargar el artifact de reporte:
gh run download <RUN_ID> --name docs-drift-report

El artifact docs-drift-report se retiene 90 días.


Formato del issue automático

Cuando hay drift hard, el workflow crea un issue con:

Cerrar el issue solo tras confirmar que el check pasa en re-ejecución manual.


Véase también

Subir