Volver a la wiki

KB vs Graph Fase 1 · schema Astro + migración D1-0024 + backfill 449 páginas (s61)

Descripción

Fase 1 de la iniciativa Knowledge Base vs Knowledge Graph (Sprint 61). Introduce los tres campos arquitectónicos del ADR decision—20260514—knowledge-base-vs-graph sin activar todavía crons nuevos. Las fases siguientes añadirán el drift check automático con Haiku y la evolución del agente Lint bulk.

Piezas implementadas

1. Schema Astro (src/content.config.ts · commit 068b32f)

Tres campos nuevos añadidos a la colección wiki, todos opcionales (retrocompatibles con los ~449 .md existentes):

kind: z.enum(['knowledge_base', 'knowledge_graph']).optional(),
lifecycle: z
  .string()
  .regex(/^(evergreen|refresh-\d+d|ephemeral-\d+d)$/)
  .optional(),
verification_pending: z.boolean().optional(),

2. Migración D1 0024 (migrations/0024_kind_lifecycle_drift.sql · commit 75a37b8)

Añade a bib_wiki_pages:

ColumnaTipoDefaultConstraint
kindTEXT NOT NULL'knowledge_base'CHECK (kind IN ('knowledge_base','knowledge_graph'))
lifecycleTEXTNULL— (validación en Astro + bib_ingest.py)
verification_pendingINTEGER NOT NULL0CHECK (verification_pending IN (0, 1))

Índices nuevos:

Crea tabla nueva bib_drift_checks — ver [[entity—biblioteca—table—bib-drift-checks]].

Footgun D1: ALTER TABLE ADD COLUMN ... CHECK en SQLite solo valida filas nuevas/actualizadas. Las filas preexistentes no se re-verifican. Los defaults garantizan valores válidos en rows anteriores.

3. Script de backfill (scripts/migrate_kind_lifecycle.py · commit a7d9ec7)

Script Python idempotente (318 LOC) que asigna kind y lifecycle a los frontmatters YAML de las páginas .md en src/content/wiki/. Características clave:

# Dry-run (default):
python scripts/migrate_kind_lifecycle.py

# Aplicar cambios:
python scripts/migrate_kind_lifecycle.py --apply

# Con detalle por archivo:
python scripts/migrate_kind_lifecycle.py --apply --verbose

Distribución resultante (post-backfill)

By kind:
  knowledge_base   421  (documentación intencional)
  knowledge_graph   28  (concept--general--* auto-archivados de bib_ask)

By lifecycle:
  refresh-90d     317  (concepts, features, entities, ia-tech)
  evergreen        67  (decision--, incident--, ia-tech--roles--)
  refresh-30d      37  (workspace--, entity--*--endpoint--, ia-tech--automatismos--)
  ephemeral-90d    28  (concept--general--* del knowledge_graph)

Test plan ejecutado

Fases siguientes (s61)

Véase también

Subir