Constructor de Bases de Conocimiento de Dominio — 领域知识库生成器
Dame N artículos + nombre de dominio → genera un skill de base de conocimiento de dominio consultable de nivel A. Estructura de la base de conocimiento: DAG (5 tipos de nodos + 10 relaciones) + modelos mentales + protocolo de consulta + límites de honestidad. Puerta de calidad: puntuación darwin 2.0 de 9 dimensiones, solo se considera exitosa si ≥ B+ (80).
Modelos Mentales Centrales
1. Conocimiento ≠ Acumulación de Definiciones
Una base de conocimiento de dominio útil no consiste en trasladar definiciones/teoremas uno por uno, sino en destilar con qué lentes mira el mundo este dominio (modelos mentales), y luego usar nodos de conocimiento para sostener esas lentes. Pregunta "mi flujo de datos no es conmutativo, ¿cómo me ayudaría CP?" — la mera acumulación de definiciones no puede responder; una base de conocimiento impulsada por modelos mentales puede inferir la postura. Por lo tanto, el proceso de ingestión debe incluir un paso de destilación de modelos mentales (S5), no solo extraer nodos.
2. Ciclo de Vida de Karpathy × Estructura DAG
- El LLM Wiki de Karpathy proporciona el «ciclo de vida»: tres capas (raw (fuente inmutable) → wiki (mantenido por LLM) → SCHEMA (norma)) + tres flujos de trabajo (Ingest/Query/Lint). La base de conocimiento es un organismo que crece, no una instantánea de una extracción.
- El DAG proporciona la «estructura»: las relaciones entre nodos no son solo clasificaciones, son relaciones —
garantiza/generaliza/contradice/depende_de. El teorema A implica el teorema B, el método C contradice al método D; estas relaciones son el núcleo del conocimiento del dominio, y un directorio plano no puede soportarlas. - Fusión: Karpathy gestiona "cómo crece el conocimiento" (ciclo de vida), el DAG gestiona "cómo se conecta el conocimiento" (estructura).
3. El Generador Debe Ser Controlable (D7)
La esencia de un meta-skill ≠ un skill normal es generar otros skills — muchas escrituras en el sistema de archivos, spawn de subagentes, red. Esto debe ser controlable: cada ingestión debe poder reanudarse desde un checkpoint, si darwin no pasa la puerta se puede hacer git revert, cada nodo debe ser trazable (provenance), y volver a ejecutar el mismo artículo debe producir el mismo ID de nodo (determinismo). De lo contrario, no será mantenible después de 6 meses. Estos cuatro pilares (reversible/auditable/determinista/verificación previa) son el estándar de cumplimiento para generator-skill (subclase de la novena dimensión de darwin).
Cuándo Usarlo / Cuándo No Usarlo
Usar:
- "Construir para un experto un skill de asesor que pueda responder '¿qué opina el experto sobre X?' + '¿por qué? (fundamento)'"
- "Convertir los artículos/entrevistas/blogs de un experto en un motor dual de mentalidad y conocimiento"
- "Convertir estos artículos en una base de conocimiento consultable"
- "Construir un DAG de base de conocimiento para el dominio X"
- "Tengo N PDFs, quiero un asistente de dominio que pueda inferir posturas"
Diferenciación de rutas:
- Base de conocimiento de dominio pura (sin perspectiva de experto) → Modo DKB original (
examples/conformal-prediction) - Perspectiva de experto (con juicio de experto + fundamento) → Esta extensión (modo asesor-experto)
No usar (enrutar a otro skill):
- "¿Qué es Split CP?" → Consultar la base de conocimiento CP existente (
examples/conformal-prediction) - "Resumir este libro" → Usar book-to-skill para generar directamente un skill de un solo libro
- "Destilar cómo piensa una persona (sin conocimiento de dominio)" → Usar nuwa-skill
Arquitectura (5 Capas)
domain-knowledge-skill/
├── SKILL.md # Este archivo (entrada del meta-skill)
├── schema/schema.md # Norma de conocimiento (5 tipos + 10 relaciones + controlabilidad D7)
├── pipeline/ # Flujos de trabajo Ingest/Query/Lint
│ ├── ingest.md # Contrato del pipeline de 7 pasos (S1-S7)
│ ├── query.md # Consulta de 5 pasos de recorrido DAG
│ ├── lint.md # Verificación de estructura + cumplimiento de Generator
│ ├── run-dag-pipeline.js # Script de orquestación del flujo de trabajo
│ └── state/ # Runtime D7
│ ├── init_run.py # UUID + git + run-manifest + preflight
│ └── lint_d7.py # Lint de los cuatro pilares
├── engines/ # Motores reutilizables
│ ├── book_to_skill/ # Motor de extracción de virgiliojr94 (modo technical)
│ ├── darwin-rubric.md # Puntuación de calidad de 9 dimensiones (doble subclase de la 9ª dimensión)
│ └── nuwa-validation.md # Validación triple de dominio
├── references/ # Plantillas (en planificación)
└── examples/
└── conformal-prediction/ # Referencia dorada (88 puntos A-, carga perezosa)
Pipeline de Ingestión de 7 Pasos (Desglose por Fases D3)
Determinismo (fan-out del flujo de trabajo) Interacción/juicio (cadena de subagentes)
───────────────────── ─────────────────────
S1 Extraer ──┬─▶ S2×N Paralelo ──┐
└─▶ ... ├─▶ S3 Fusionar ──▶ S4 Navegar ──▶ S5 Modelos Mentales ──▶ S6 Validar ──▶ S7 Montar ──▶ Puerta darwin
│ (contradice (paralelo 3) (validación triple) (fresh) (<4K) (≥B+)
│ confirmación
│ humana)
Ver el contrato detallado en pipeline/ingest.md. Restricciones clave:
- S1 debe hacer docling preflight (§12.4 del schema, dependencia fuerte del modo technical)
- ID de nodo S2 debe seguir
<type>-<source>-<canonical-term>(§10 Determinismo del schema) - S3 ante aristas
contradice/no_garantizadebe llamar acontact_supervisorpara confirmación humana - S5 cargar
engines/nuwa-validation.mdpara validación triple - S6/S7 usar subagentes de contexto fresco (validación/puntuación independiente, prohibida autoevaluación)
- Cada nodo debe escribir provenance (generated_by_step/run_id/source_span) en todo momento
Puerta de Calidad (darwin 2.0, 9 Dimensiones)
Cargar engines/darwin-rubric.md, un subagente de contexto fresco puntúa:
| Dimensión | Peso | Enfoque |
|---|---|---|
| ① Integridad estructural ② Claridad ③ Integridad de contenido ④ Operatividad | 15%×4 | frontmatter/flujo de trabajo/cobertura/ejecutable |
| ⑤ Precisión ⑥ Consistencia | 10%×2 | Precisión del texto original del teorema/sin citas rotas |
| ⑦ Eficiencia de ejecución ⑧ Robustez | 8%/7% | Presupuesto de tokens/límites de honestidad |
| ⑨ Cumplimiento de meta-habilidad | 5% | Subclase generator-skill: cuatro pilares |
Doble subclase de la 9ª dimensión (insight de oracle): query-skill (tipo CP, solo lectura) vs generator-skill (este tipo de skill, permite escritura controlada pero debe cumplir los cuatro pilares: reversible/auditable/determinista/verificación previa). Esto permite que los generadores pasen la puerta de calidad de manera justa.
Mecanismo de trinquete: darwin < B+ → git revert de la última etapa → diagnosticar la dimensión baja → reparar y reevaluar. Si no hay mejora en 3 rondas consecutivas → proponer reescritura exploratoria.
Destino de las 5 Fuentes de Referencia
| Fuente | Destino | Modo de Reutilización |
|---|---|---|
| Karpathy LLM Wiki | schema/ + pipeline/ | Herencia limpia: 3 capas + ciclo de vida Ingest/Query/Lint |
| book-to-skill | engines/book_to_skill/ | Vendor limpio: motor de extracción (modo técnico preserva fórmulas) |
| nuwa-skill | engines/nuwa-validation.md | Destilación metodológica: validación triple (sin ADN de expression) |
| darwin-skill | engines/darwin-rubric.md | Reconstrucción dual: 9 dimensiones del validation-report + comparación con 8 antiguas |
| dag-executor | Solo referencia filosófica | Paralelismo basado en ondas + bloqueo de archivos (implementación con pi workflow/subagent) |
examples/conformal-prediction (Referencia Dorada)
Carga perezosa — no participa en el enrutamiento de skills por defecto, se activa solo cuando se solicita explícitamente:
- v1.1.0 / 50 nodos / 138 aristas / 0 rotas / darwin 88 puntos (A-)
- 3 fuentes (Angelopoulos 2022 / Teneggi 2025 / Min 2026)
- Uso: (1) como referencia de calidad al ingerir un nuevo dominio; (2) cargar cuando el usuario consulta explícitamente "predicción conforme"
Restricciones y Límites de Honestidad
Restricciones duras:
- docling es una dependencia fuerte del modo técnico (artículos académicos sin fórmulas = sin valor, no se puede sacrificar)
- El cuerpo de SKILL.md < 4K tokens (la compactación trunca desde el final)
- Todos los nodos deben tener provenance obligatoria (nueva ingestión)
- Las rutas de los skills generados solo usan rutas relativas a la raíz del skill (para evitar enlaces rotos)
No puede hacer:
- No puede destilar intuición — el marco puede extraer, la inspiración no
- No puede cubrir todos los artículos del dominio — solo cubre las fuentes proporcionadas por el usuario
- No puede juzgar automáticamente la calidad de las fuentes — basura entra, basura sale (artículos de baja calidad → base de conocimiento de baja calidad)
- No puede reemplazar el juicio experto — las aristas de contradicción deben ser confirmadas manualmente
Limitaciones conocidas:
- La deriva de versiones de docling puede degradar silenciosamente la extracción (sin pruebas que lo detecten)
- La extracción de términos canónicos por LLM no es completamente determinista (dos extracciones del mismo artículo pueden diferir en el hash, Lint lo reportará)
- El costo de extracción de artículos grandes (>50K tokens) es alto (se recomienda ingestión por lotes)
Inicio Rápido
Usuario: Construye para mí una base de conocimiento de dominio de modelos de difusión, artículos en ~/papers/ddpm.pdf, ~/papers/score-sde.pdf
→ Este skill:
1. Confirma dominio + fuentes + preflight docling
2. Ejecuta el pipeline de 7 pasos (pipeline/ingest.md)
3. Puntuación darwin, si ≥ B+ entrega el skill generado a ~/.pi/agent/skills/diffusion-models/
4. El usuario puede luego consultar ese skill generado
Ver el contrato completo en pipeline/ingest.md.
Este meta-skill versión: v0.1 | 5 fuentes reutilizadas + controlabilidad D7 + puerta de calidad darwin 2.0 | Referencia dorada: examples/conformal-prediction (88/A-)