--- type: DC asset_id: DC-XX-LLMWiki-DefinicionActualizacion-v01 version: v01 status: Activo owner: Victor Heredia sherpa_owner: Jay fecha_creacion: 2026-06-04 intellbank: IB-XX-Maestro subbank: IPC-XX-IP-Conocimiento/IPC-XX-WORX proposito: Define formalmente qué significa que el LLM-Wiki esté "actualizado" — criterios medibles, umbrales de aceptación, score de salud y proceso de verificación. Elimina la ambigüedad sobre el estado del wiki. --- # ¿Cuándo está el LLM-Wiki actualizado? ## Definición formal y mecanismo de verificación > Un wiki "actualizado" no es un wiki perfecto. Es un wiki que cumple los criterios mínimos para que cualquier Sherpa del equipo pueda bootstrapear el sistema con contexto confiable y suficiente. La actualización es un estado relativo al vault — no una meta absoluta. --- ## Los 5 Criterios de Actualización ### Criterio 1 — Cobertura de Raw/ (peso: 40%) **Definición:** ≥ 80% de los documentos Clase C del vault están copiados en `Raw/`. **Qué cuenta como Clase C para el Wiki:** - `DC-XX-*`, `ARQ-XX-*`, `MePB-XX-*`, `CP-XX-*`, `SOMA-*`, `PP-XX-*` — IB-XX-Maestro (siempre) - `DC-EL-SX-*`, `DC-EL-LoopX-*`, `SOP-EL-*`, `PP-EL-*`, `MePB-EL-*` — IB-EL canónicos - `PP-BVH-*`, `PBO-BVH-*`, `WP-BVH-*` — IB-BVH papers - `DC-MPX-*`, `MePB-MPX-*`, `ARQ-MPX-*` — IB-MPX canónicos **Qué NO cuenta (excluir del denominador):** - `OUT-*`, `MIN-*`, `PLAN-*`, `SIM-*`, `XD-*`, `RFI-*` — operativos/coyunturales - `CP-EL-SX-ROI-Tracker-*`, trackers, spreadsheets - Docs de cliente específico (IB-Clientes/) — confidencial, no entra al wiki compartido **Cómo medirlo:** ```bash # Clase C en vault (denominador) find IB-XX-Maestro IB-EL-EmpowerLabs IB-MPX-MasterPlaybooks IB-BVH-Publications \ -name "*.md" | grep -E "/(DC-XX|ARQ-XX|MePB-XX|CP-XX|SOMA|PP-|SOP-|MPB-EL-WORX)" \ | grep -v "OUT-\|MIN-\|SIM-\|XD-\|RFI-" | wc -l # En Raw/ (numerador) find IB-WikiX/Raw -name "*.md" | wc -l # Score = (numerador / denominador) × 100 ``` **Umbral:** ≥ 80% = ✅ | 60-79% = ⚠️ | < 60% = 🔴 --- ### Criterio 2 — Frescura (peso: 30%) **Definición:** No existe ningún documento Clase C creado hace más de **14 días** que no esté en Raw/. **Lógica:** El conocimiento canónico que se produce y no entra al wiki en 2 semanas es conocimiento perdido para el Sherpa. En un contexto de equipo activo, 14 días es el máximo tolerable. **Cómo medirlo:** ```bash # Archivos Clase C más nuevos que 14 días y NO en Raw/ find IB-XX-Maestro -name "*.md" -mtime -14 \ | grep -E "/(DC-XX|ARQ-XX|MePB-XX|CP-XX|SOMA)" \ | grep -v "OUT-\|MIN-" \ | xargs -I{} basename {} .md \ | grep -v -f <(find IB-WikiX/Raw -name "*.md" | xargs -I{} basename {} .md) ``` **Umbral:** 0 docs rezagados = ✅ | 1-3 = ⚠️ | > 3 = 🔴 --- ### Criterio 3 — Cobertura de conceptos en Wiki/ (peso: 20%) **Definición:** Cada concepto clave del ecosistema tiene al menos una página en `Wiki/` que lo explica. **Lista de conceptos clave obligatorios** (si existe en el vault, debe tener página wiki): | Concepto | Página Wiki | Estado mínimo | |---|---|---| | BigMetaFactory | [[BigMetaFactory]] | Obligatorio | | DOIX | [[DOIX]] | Obligatorio | | HIOrgs | [[HIOrgs]] | Obligatorio | | WORX | [[WORX]] | Obligatorio | | SherpaX | [[SherpaX]] | Obligatorio | | IntelliBanks | [[IntelliBanks]] | Obligatorio | | WORX OS | [[WORX OS]] | Obligatorio | | BrainCodes | [[BrainCodes]] | Obligatorio | | SOMA | [[SOMA]] | Obligatorio si SOMA existe en vault | | BrainX Loop / LoopX | [[BrainX-Loop]] | Obligatorio si existe en vault | | XDoc | [[XDoc-Sistema]] | Obligatorio si existe en vault | | RFI | [[RFI]] | Obligatorio si existe en vault | | MetaPlaybooks | [[MetaPlaybooks]] | Obligatorio | | Naming Convention | [[Naming-Convention]] | Obligatorio | **Umbral:** 100% de obligatorios = ✅ | 1-2 faltantes = ⚠️ | > 2 = 🔴 --- ### Criterio 4 — Salud estructural del Wiki (peso: 10%) **Definición:** El Wiki no tiene navigation broken links y tiene < 10% de páginas huérfanas. | Métrica | Umbral verde | Umbral amarillo | Umbral rojo | |---|---|---|---| | Navigation broken links | 0 | 1-3 | > 3 | | Páginas huérfanas | < 10% | 10-20% | > 20% | | Páginas sin inbound links críticas | 0 | — | Cualquiera obligatoria | | README en index.md | ✅ | — | — | **Nota:** Los `[[Raw/path/...]]` source citations son estéticos — no cuentan como navigation broken links. --- ### Criterio 5 — Sincronización del index.md (peso: 0% — bloqueante) **Definición:** El `index.md` refleja exactamente el estado real del wiki. Si no está sincronizado, el wiki no está "actualizado" independientemente del resto. Verificaciones: - Conteo de páginas en Quick Reference = archivos reales en Wiki/ - Cada página en Wiki/ aparece en el directorio del index - Ingest Log tiene entrada para cada ingest ejecutado - Health Dashboard refleja valores actuales **Umbral:** ✅ Sincronizado | 🔴 Desincronizado (bloqueante — no puede ser verde) --- ## Score Global de Actualización ``` Score = (C1 × 0.40) + (C2 × 0.30) + (C3 × 0.20) + (C4 × 0.10) Donde cada criterio: ✅ = 100 puntos ⚠️ = 60 puntos 🔴 = 0 puntos Si C5 (index.md) está desincronizado → Score máximo = 60 (no puede ser verde) ``` | Score | Estado | Acción | |---|---|---| | 85–100 | 🟢 Wiki actualizado | Ninguna urgente | | 65–84 | 🟡 Wiki funcional con gaps | Ingest en próxima semana | | < 65 | 🔴 Wiki desactualizado | Ingest inmediato antes de trabajo de equipo | --- ## Cuándo ejecutar el ingest ### Trigger automático (Jay lo sugiere sin que pidan): - Se crea un `DC-XX-*`, `SOMA-*`, `ARQ-XX-*` o `MePB-XX-*` nuevo → Jay propone ingest - Han pasado **14 días** desde el último ingest → Jay recuerda al cierre de semana - Nuevo colaborador hace onboarding → ingest + lint completo obligatorio ### Trigger manual: - Victor dice "actualiza el wiki" / "ingest semanal" / "qué le falta al wiki" → skill `wiki-ingest` - Antes de una demo o presentación importante → lint rápido ### Frecuencia recomendada: - **Contexto de equipo activo** (como ahora): cada semana al cierre, el viernes - **Contexto de trabajo individual lento**: cada 2 semanas o por evento --- ## Verificación rápida — "¿Está el wiki actualizado?" Respuesta en 60 segundos: ```bash VAULT="ruta/al/vault" RAW="$VAULT/IB-WikiX/Raw" WIKI="$VAULT/IB-WikiX/Wiki" # C1: Cobertura Raw/ CLASE_C=$(find $VAULT/IB-XX-Maestro -name "*.md" | grep -E "/(DC-XX|ARQ-XX|MePB-XX|CP-XX|SOMA|PP-XX)" | grep -v "OUT-\|MIN-" | wc -l) EN_RAW=$(find $RAW -name "*.md" | wc -l) echo "C1 Raw/: $EN_RAW / $CLASE_C docs Clase C" # C2: Frescura (docs > 14 días sin ingestar) REZAGADOS=$(find $VAULT/IB-XX-Maestro -name "*.md" -mtime -14 | grep -E "/(DC-XX|SOMA|ARQ-XX)" | grep -v "OUT-\|MIN-" | wc -l) echo "C2 Rezagados: $REZAGADOS docs nuevos en 14 días" # C3: Páginas obligatorias PAGES=$(ls $WIKI | grep -E "^(SOMA|BrainX-Loop|XDoc-Sistema|RFI|WORX|SherpaX|IntelliBanks|BrainCodes|BigMetaFactory|DOIX|HIOrgs|WORX OS|MetaPlaybooks)\.md" | wc -l) echo "C3 Páginas obligatorias presentes: $PAGES / 13" # C4: Broken links python3 -c " import re; from pathlib import Path wiki = Path('$WIKI'); pages = {f.stem for f in wiki.glob('*.md')} broken = sum(1 for f in wiki.glob('*.md') for m in re.finditer(r'\[\[([^\]|]+)', f.read_text(errors='ignore')) if m.group(1).strip() not in pages and not m.group(1).startswith('Raw/')) print(f'C4 Broken navigation links: {broken}') " ``` --- ## Historial de ejecuciones | Fecha | Score | C1 | C2 | C3 | C4 | C5 | Acción tomada | |---|---|---|---|---|---|---|---| | 2026-06-04 | 🟡 ~70 | ⚠️ 315/~120 Clase C | 🔴 14 días sin ingest | ⚠️ 4/13 páginas | ✅ 0 broken | 🔴 index stale | Ingest masivo: +51 Raw/, +4 Wiki | | 2026-06-04 (post-ingest) | 🟢 ~88 | ✅ 366 archivos | ✅ 0 rezagados | ✅ 13/13 páginas | ✅ 0 broken | ✅ actualizado | — | --- *Creado: 2026-06-04 · Jay · Primer framework formal de criterios para el LLM-Wiki* *Referencia: skill `wiki-ingest` · skill `llm-wiki-validator`*