CuratorPlan ACA Runtime
Un CuratorPlan representa una campaña de ingesta curricular de larga duración y recuperable ante fallos. No es un fichero YAML de ce-specs — es un recurso de base de datos creado por el CLI o la API REST para orquestar el pipeline del Agente Curador Autónomo (ACA).
Schema: CuratorPlan
# Representación lógica de un CuratorPlan (tabla: curator_plans)
id : uuid # Generado automáticamente (UUID v4)
name : string # Nombre legible del operador (--name en CLI)
country : string # ISO-3166-1 alpha-2: "US" | "ES" | "MX" | "GB"…
standard : string # Clave del estándar: "LOMLOE" | "AP" | "IB" | "AP_SPANISH"…
status : enum # Ver tabla de estados abajo
total_items : integer # Total de ítems descubiertos
processed_items : integer # Ítems ya procesados (DONE + FAILED + NEEDS_REVIEW)
failed_items : integer # Ítems en estado FAILED
current_stage : string # Fase activa: DISCOVER | FETCH | PARSE | INGEST
config_json : object # Configuración del operador (ver abajo)
state_json : object # Checkpoint de ejecución (uso interno del ACA)
created_by : string # Email / ID del operador CLI que creó el plan
last_heartbeat : timestamp # Última señal de vida del bucle executePlan()
config_json — Claves habituales
"approval_gates" : [ " after_c0 " , " after_c1 " ],
"confidence_threshold" : 0.75 ,
"router" : " gemini-2.0-flash " ,
"c0_model" : " gemini-2.5-pro "
Estados del plan
Estado Descripción DRAFTCreado, aún no iniciado RUNNINGEl orquestador está procesando ítems activamente WAITING_REVIEWPausado en una puerta de aprobación — esperando al operador PAUSEDEstancamiento detectado (sin heartbeat > 30 min) o pausa manual COMPLETEDTodos los ítems procesados (DONE + NEEDS_REVIEW + FAILED) FAILEDCancelado o error crítico irrecuperable
Schema: CuratorPlanItem
Cada documento fuente descubierto crea un CuratorPlanItem dentro de un plan.
# Representación lógica de un CuratorPlanItem (tabla: curator_plan_items)
id : uuid # Generado automáticamente
plan_id : uuid # FK → curator_plans.id
source_url : string # URI del documento fuente: http://, gs://, drive://
spec_type : string # Tipo OAS a producir: C0_STANDARDS | C1_RECIPES | C2_EXERCISES
status : enum # Ver tabla de estados abajo
confidence_score : float # 0.0–1.0 — puntuación del nodo de evaluación del Curador
attempts : integer # Número de intentos realizados
output_path : string # Ruta del YAML generado en el repositorio ce-specs
error_message : string # Último mensaje de error (ítems FAILED)
original_source_url : string # URL original antes del URL Healing (null si no aplica)
Estados del ítem
Estado Descripción PENDINGEn cola, aún no procesado PROCESSINGCuratorWorkflow ejecutándose activamente DONEAuto-ingestado — confidence_score ≥ umbral NEEDS_REVIEWconfidence_score < umbral — cola de revisión humana (HITL)FAILEDError irrecuperable (PDF cifrado, timeout, error de parseo…)
spec_type — Valores válidos
Valor Descripción Capa OAS C0_STANDARDSRúbricas y estándares normativos C0 BLOCK_RUBRICAlias para C0 — rúbrica de evaluación C0 C1_RECIPESRecetas pedagógicas C1 C2_EXERCISESEjercicios con contexto C2 INTERACTIVE_LESSONLección interactiva con slides C2 RESOURCE_LEARNINGPuntero OER anotado C2
Creación vía CLI
# Crear y lanzar un plan ACA completo
./ce-cli.sh --env local \
--name 'LOMLOE LCL 2º BACH — Sprint Octubre 2026' \
./ce-cli.sh --env local " aca plan start <planId> "
Creación vía REST API
Content-Type : application/json
"name" : " LOMLOE LCL 2º BACH — Sprint Octubre 2026 " ,
"approval_gates" : [ " after_c0 " ],
"confidence_threshold" : 0.80
Respuesta:
"id" : " 3fa85f64-5717-4562-b3fc-2c963f66afa6 " ,
"createdAt" : " 2026-10-01T09:00:00Z "
Referencia completa de endpoints REST
Método Endpoint Descripción POST/api/v1/aca/plansCrear plan GET/api/v1/aca/plans/{id}Estado del plan POST/api/v1/aca/plans/{id}/startIniciar / reanudar POST/api/v1/aca/plans/{id}/pausePausa controlada POST/api/v1/aca/plans/{id}/cancelCancelar (irreversible) GET/api/v1/aca/plans/{id}/itemsListar ítems del plan POST/api/v1/aca/plans/{id}/items/{itemId}/approveAprobar ítem NEEDS_REVIEW POST/api/v1/aca/plans/{id}/gates/{gateId}/approveAprobar puerta de calidad
Ver También