--- asset_id: SOP-XX-AuditVault-Proceso-v01 version: v01 tipo: SOP — Standard Operating Procedure (proceso operativo canónico) estado: 🟢 v01 · canónico intellibank: IB-XX-Maestro owner: Victor Heredia sherpa: SherpaX (Cowork) ratificador: Victor Heredia proposito: Procedimiento canónico y reutilizable para auditar la salud de un vault de conocimiento (Obsidian hoy · Intellibanks en el futuro). aplica_a: cualquier vault/IntelliBank (Reinventaverse, Rebelocity, clientes…) fecha_creacion: 2026-06-15 fecha_ultima_actualizacion: 2026-06-15 tags: [SOP, auditoria, salud, vault, intellibanks, obsidian, XX, infraestructura] --- # SOP · Auditoría de Salud de un Vault/IntelliBank > **Qué es:** el proceso repetible para diagnosticar la salud de cualquier vault de conocimiento y dejar evidencia versionada. Hoy opera sobre **Obsidian**; está diseñado para operar igual sobre **Intellibanks** cuando migre (mismo árbol de Markdown, mismas reglas BMF). ## 1. Cuándo se corre - Cierre de semana / antes de subir un equipo nuevo a un vault. - Antes y después de cualquier maniobra estructural (rename, consolidación, ingesta masiva). - A demanda, cuando se sospecha duplicación, enlaces rotos o deriva de naming. ## 2. Reglas WORX que aplican - **Gate G0 (vault-first):** se mide el estado real antes de proponer cambios. - **Solo lectura sobre el vault:** el escaneo NO modifica contenido. Cualquier remediación es un paso aparte, con backup. - **Tripleta** en cada activo producido: Owner + Sherpa + Ratificador. - **Naming + ubicación** válidos antes de escribir las salidas (van al harness `IB-Test-Vault/`, nunca a bancos operativos). ## 3. Insumos (el harness) Herramientas en `IB-Test-Vault/IB-ObsidianHealth-Pack-v01/`: - `obsidian_health.py` — salud general (duplicados, naming BMF, enlaces, huérfanas, adjuntos). - `wiki_validator.py` — salud del WikiX (links Wiki→Wiki, huérfanas, cobertura Raw→Wiki, headers, index). - `build_obsidian_dashboard.py` — tablero HTML. ## 4. Procedimiento (fases) ### Fase 0 · Encuadre - Confirmar la ruta del vault y que el escaneo es de solo lectura. - Definir excepciones conocidas (capas espejo: `IB-WikiX/Raw/`, `CloudVault/`; páginas `Wiki/` con nombre = concepto). ### Fase 1 · Escaneo ```bash python3 obsidian_health.py "" > snapshots/salud-.json python3 wiki_validator.py "" IB-WikiX > snapshots/wiki-.md python3 build_obsidian_dashboard.py snapshots/salud-.json Tablero-Salud-.html ``` ### Fase 2 · Lectura e interpretación Leer el score **junto con los conteos crudos** (no solo el número). Separar: - **Accionable:** enlaces rotos a activos nombrados, naming sin tipo/versión, duplicados reales entre bancos. - **Arquitectónico/esperado:** duplicados espejo (Raw/, CloudVault), huérfanas en capas Raw/inbox, adjuntos de export. ### Fase 3 · Triage Producir un documento de triage (`OUT-XX-AuditTriage---v01.md`) que clasifique los hallazgos en: corregir ahora / programar / reconocer como esperado. ### Fase 4 · Remediación (opcional, con backup) Si se acuerda corregir: backup primero, cambios por lotes, y re-escaneo para medir el delta. Toda maniobra destructiva = DRY-RUN + confirmación del Ratificador. ### Fase 5 · Cierre - Guardar snapshot de cierre (`snapshots/salud-CIERRE-.json`). - Registrar el delta vs baseline en el reporte de hallazgos. - `/resumenroom` + minuta del día. ## 5. Verificaciones de salud (qué significan) | Check | Qué valida | Penaliza | |---|---|---| | Enlaces rotos | `[[...]]` que no resuelve a nota/adjunto | Sí | | Duplicado por contenido | dos notas con hash idéntico | Sí (excepto espejos) | | Duplicado por nombre | mismo nombre en varias rutas | Sí | | Naming BMF (notas) | `TIPO-ENTIDAD-…-vNN` (exenta páginas Wiki/ concepto) | Sí | | Naming BMF (carpetas) | bancos `IB-…` (exenta CloudVault, WikiX por diseño) | Sí | | Carpetas vacías | banco raíz sin notas | Sí | | Huérfanas / adjuntos sin usar | higiene | No (informativo) | ## 6. Calibración del medidor (deuda conocida) - **Scoring binario → proporcional:** hoy el score es todo-o-nada por bloque; un incidente reprueba el bloque. Pendiente: pasar a proporcional y reconocer espejos para que el número refleje el progreso real. - **Exenciones ya aplicadas:** páginas `Wiki/` (nombre = concepto), guías pedagógicas (sin Asset Header), `.claude/`. ## 7. Salidas canónicas (naming) - `snapshots/salud-.json` · `snapshots/wiki-.md` (datos de corrida). - `Tablero-Salud-.html` (visual). - `OUT-XX-AuditHallazgos---v01.md` (reporte). - `OUT-XX-AuditTriage---v01.md` (triage). ## 8. Futuro: Intellibanks Cuando el vault migre a Intellibanks, este SOP opera igual sobre la carpeta sincronizada del banco. Añadidos esperados: validar la integridad del `sync_map` por banco (huérfanos, colisiones de `skill_id`, deriva de hash) y la reconciliación nube↔local — ya prototipados en `ib_health.py` de la versión Intellibanks del harness. ## NEXTs - [ ] Migrar el scoring a proporcional + exención de espejos en `obsidian_health.py`. - [ ] Versionar el harness como release (zip) por cada `vNN` del SOP. - [ ] Ratificación de Victor.