A Atenea orchestration core
GitHub

Atenea documentation

Conocimiento verificado

On this page

Conocimiento verificado#

P15 añade internal/knowledge, un almacén SQLite separado de notebook, historial y cachés. Cada entrada pertenece a un proyecto y repositorio, declara su tipo (decision, convention, solution, hypothesis o fact), fuentes con identidad y dependencias con generación/proveedor cuando aplica.

Las entradas nacen como candidate. El AcceptanceGate productivo delega en PromoteVerified, que consulta un EvidenceResolver autoritativo del workflow; el caller no puede insertar receipts ni pasar booleanos. Un punto aceptado, revisión de Sol, auditoría de Astra y sus digests verificables deben pertenecer al mismo punto, árbol, modelo y scope. Fallos, resultados parciales, evidence falsificada o pruebas sin completar no satisfacen ese gate. Un cambio de dependencia marca la entrada stale; una decisión reemplazada conserva el evento superseded. Todas las transiciones se escriben en knowledge_events de forma append-only dentro de la misma transacción SQLite.

El almacén comprueba sujeto, proyecto, repositorio y visibilidad antes de cada lectura o mutación; las entradas privadas solo son visibles para su propietario y las de proyecto para miembros autorizados. ContextProvider.Prepare consulta únicamente conocimiento verified y revalida cada entrada con dependencias fresh dentro de su TTL mediante un probe autorizado antes de devolverla; candidates, stale y legacy_unverified quedan fuera. Las revalidaciones comprueban fuentes, snapshots, generaciones y receipts de probe completos, y aplican CAS sobre el estado leído. Core expone esta ruta cuando [knowledge].enabled está activo o se le configura explícitamente un Store P15. Las escrituras usan transacciones, WAL, synchronous=FULL, busy timeout y reintentos acotados. Backup y Restore trabajan sobre copias SQLite verificables.

La integración normal se activa con:

[knowledge]
enabled = true
# path y workflow_path son opcionales; por defecto quedan bajo el estado de Atenea.

Core abre el almacén y el workflow al arrancar y registra la herramienta MCP read-only knowledge.context. La herramienta exige scope.project_id y scope.repository_id, deriva el sujeto de la sesión y devuelve solo entradas verified cuya revalidación del workflow es completa y fresca. Si falta el workflow, el snapshot o una identidad verificable, la entrada se omite; una instalación sin [knowledge] no anuncia la herramienta. MCP no expone APIs de escritura ni permite insertar receipts.

Los datos anteriores no se migran ni se consideran hechos: siguen siendo legacy_unverified en sus interfaces existentes. El almacén usa un esquema versionado, eventos append-only protegidos por triggers, copias atómicas con integrity_check y bases con permisos 0600; una versión incompatible se rechaza.

Durante una ejecución, solo un paso con rol implement, resultado completo y un objeto explícito knowledge_candidate puede crear un candidato:

{
  "knowledge_candidate": {
    "kind": "fact",
    "title": "Un escritor por worktree",
    "body": "El coordinador conserva un único escritor activo.",
    "visibility": "project"
  }
}

El host fija repositorio, propietario, fuente, proveedor y fingerprint; el agente no puede suministrarlos. En esta primera versión el identificador del repositorio también delimita el proyecto porque el contrato del workflow aún no transporta un proyecto separado. Un candidato inválido convierte el paso en fallo antes de cualquier promoción. La promoción automática ocurre después de persistir el checklist aceptado y exige la cadena completa de implementación, revisión Sol y auditoría Astra sobre el mismo fingerprint.