Referencia CLI de ColabEdu
Referencia CLI de ColabEdu
El CLI ce-svc-cli es la interfaz de línea de comandos para operar el pipeline de curación pedagógica de ColabEdu. Agrupa los comandos en siete grupos funcionales:
| Grupo | Prefijo | Descripción |
|---|---|---|
| Curator | curator | Curación AI, tests E2E y batches de generación |
| Document Discovery | docs | Descubrimiento, descarga y catalogación de fuentes |
| Taxonomy | taxonomy | Exploración de estándares, rúbricas y cursos |
| Spec Batch | spec batch | Pipeline declarativo por etapas |
| Curriculum | curriculum | Análisis de brechas, creación de planes ACA y seguimiento |
| User Operations | user | Aprovisionamiento de usuarios |
| CRM Operations | crm | Importación de leads desde CSV |
Configuración de entorno
# Obligatorioexport CURATOR_API_BASE_URL=http://localhost:8081 # URL del backend (ce-svc-ai-services)export CE_SPECS_ROOT=/ruta/a/ce-specs # Raíz del repositorio de specs
# Opcionales (discovery de fuentes externas)export COLABEDU_API_KEY_CANVAS=<token> # Canvas Commons APIexport COLABEDU_API_KEY_EUROPEANA=<wskey> # Europeana Education APIexport GOOGLE_CSE_API_KEY=<key> # Google Custom Search APIexport GOOGLE_CSE_ID=<cx> # Google CSE ID
# Opcionales (operaciones internas)export COLABEDU_API_BASE_URL=http://localhost:8081export COLABEDU_API_INTERNAL_KEY=<key> # X-Internal-API-KeyDiagrama general de pipelines
┌──────────────────────────────────────────────────────────────────────┐│ ColabEdu CLI — Pipelines ││ ││ PIPELINE CLÁSICO (PDFs de exámenes) ││ ───────────────────────────────── ││ taxonomy check → docs discover → docs download → docs catalog ││ → curator curate → curator validate → sync_specs.sh ││ ││ PIPELINE LMS (Canvas/Moodle) ││ ──────────────────────────── ││ docs discover --source canvas-commons ││ → docs download → docs catalog --manifest lms_manifest.yaml ││ → curator batch → curator test --lms --all ││ ││ PIPELINE OER (CK-12/Khan/Procomún/Europeana) ││ ──────────────────────────────────────────── ││ docs discover --source ck12|europeana ││ → docs download → docs catalog ││ → curator curate --source-type OER_RESOURCE ││ --output-type RESOURCE_LEARNING ││ ││ PIPELINE BATCH DECLARATIVO ││ ────────────────────────── ││ spec batch generate → spec batch run → spec batch status ││ PIPELINE SEED & BLOOM (Derivación de contenido) ││ ────────────────────────────────────────── ││ curator curate --source libro.pdf --visibility private ││ → curator bloom derive --seed <ref> --strategy PROGRESSION ││ ││ PIPELINE CURRICULUM (ACA Orientado a Brechas) ││ ─────────────────────────────────── ││ curriculum gaps --standard LOMLOE --country ES ││ → curriculum plan create --theme <brecha> --sources "url1,..." ││ → curriculum progress (estado de todos los planes ACA) ││ │└──────────────────────────────────────────────────────────────────────┘Grupo curator — Pipeline de curación AI
curator curate
Lanza el pipeline de curación AI sobre un documento local o GCS URI y descarga los YAMLs generados.
curator curate --source <archivo-o-gs-uri> --referenceCode <código> [--sections "A,B"] [--type C2_EXERCISES] [--output <dir>] [--country <cc>] [--standard <std>] [--level <nivel>] [--subject <asig>] [--source-type WEB|LMS_PACKAGE] [--output-type RECIPE|INTERACTIVE_LESSON|RESOURCE_LEARNING] [--sandbox true|false] [--validate true|false] [--user <email>]Flags:
| Flag | Tipo | Default | Descripción |
|---|---|---|---|
--source | String | obligatorio | Ruta local (PDF, DOCX, .imscc, .mbz) o URI GCS (gs://...) |
--referenceCode | String | — | Código de referencia taxonómico (p.ej. es.lomloe.bach.2.lcl). Auto-resuelve standard, nivel y asignatura. |
--sections | String | — | Secciones separadas por coma: "Opción A,Opción B" |
--type | String | C2_EXERCISES | Tipo de spec a generar |
--output | String | ./curator_out | Directorio de salida para los YAMLs |
--country | String | (del referenceCode) | Código de país override |
--standard | String | — | Standard curricular override (p.ej. LOMLOE, IB). Ignorado si se usa --referenceCode. |
--level | String | — | Nivel educativo override (p.ej. 4 ESO, 2 BACH). Ignorado si se usa --referenceCode. |
--subject | String | — | Asignatura override (p.ej. lcl, matematicas). Ignorado si se usa --referenceCode. |
--source-type | String | (auto) | WEB o LMS_PACKAGE. Auto-detectado: .imscc/.mbz/.zip → LMS_PACKAGE. |
--output-type | String | RECIPE | RECIPE | INTERACTIVE_LESSON | RESOURCE_LEARNING |
--sandbox | boolean | true | Escribe YAMLs a disco sin registrar en DB |
--validate | boolean | true | Valida estructuralmente los YAMLs descargados |
--user | String | — | Email del usuario propietario del job. Sin este flag el job se crea como compartido (shared=true) y es visible para todos los roles CONTENT_CREATOR, TEACHER y ADMIN. |
--visibility | String | PUBLIC | Visibilidad de la spec ingestada: PUBLIC (disponible a todos) o PRIVATE (solo semilla — no se sirve a estudiantes, se usa como fuente de derivación Bloom). |
Flujo interno:
curator curate │ ├─ 1. POST /api/v1/curator/curate → workflowId │ (body: headless=true, sandboxMode, specType, referenceCode, │ rawContentBase64 / storageUrl, lmsSourceType, outputType) │ ├─ 2. Poll GET /api/v1/curator/status/{workflowId} │ cada 3s, timeout: 300s │ estados: RUNNING → COMPLETED | FAILED | ERROR │ ├─ 3. Descarga proposedSpecs[] → {workflowId}_spec_{n}_{outputType}_{ts}.yaml │ └─ 4. (opcional) curator validate sobre cada archivo descargadoEjemplos:
# Con referenceCode (recomendado)curator curate \ --source ce-specs/sources/es/lomloe/2bach/lcl/examen_selectividad_lcl_2023.pdf \ --referenceCode es.lomloe.bach.2.lcl
# Con flags explícitoscurator curate \ --source examen.pdf \ --standard LOMLOE --level "2 BACH" --subject lcl \ --sections "Opción A,Opción B" \ --type C2_EXERCISES# Canvas (.imscc) — source-type auto-detectadocurator curate \ --source ce-specs/sources/lms/canvas/canvas_bio_mitosis.imscc \ --referenceCode es.lomloe.bach.1.biologia \ --output-type INTERACTIVE_LESSON \ --sandbox
# Moodle (.mbz)curator curate \ --source curso_matematicas.mbz \ --referenceCode us.ap.calculus.bc \ --output-type INTERACTIVE_LESSON# Desde GCScurator curate \ --source gs://colabedu-sources/oer/ck12/ck12_bio_mitosis.json \ --referenceCode us.ap.biology \ --source-type OER_RESOURCE \ --output-type RESOURCE_LEARNING
# Local JSON OERcurator curate \ --source ck12_bio_mitosis.json \ --source-type OER_RESOURCE \ --output-type RESOURCE_LEARNING \ --sandbox# Sin --user: el job queda en la cola compartida# Visible para todos los CONTENT_CREATOR/TEACHER/ADMINcurator curate \ --source ce-specs/sources/es/lomloe/2bach/lcl/exam_lcl_2023.pdf \ --referenceCode es.lomloe.bach.2.lcl# → badge 🟡 "Shared" en el Job Command Center
# Con --user: el job se asigna a un pedagogo específicocurator curate \ --source exam_lcl_2024.pdf \ --referenceCode es.lomloe.bach.2.lcl \ --user profesor@colabedu.org# → solo visible para profesor@colabedu.orgcurator status
Consulta el estado de un workflow de curación en curso o completado.
curator status --id <workflowId>| Flag | Descripción |
|---|---|
--id | Obligatorio. ID de workflow devuelto por curator curate. |
Endpoint: GET /api/v1/curator/status/{workflowId}
Ejemplo:
curator status --id wf-20240601-abc123# → Workflow ID : wf-20240601-abc123# → Status : COMPLETED# → Specs ready : 2curator validate
Valida estructuralmente un YAML de spec generado por el curator.
curator validate --spec <ruta-al-yaml>| Flag | Descripción |
|---|---|
--spec | Obligatorio. Ruta al archivo YAML a validar. |
Comprueba que el YAML tenga los bloques metadata (con type e id) y spec (con exercises[].prompt si aplica).
Ejemplo:
curator validate --spec curator_out/wf-abc123_spec_1_recipe_20240601.yaml# → ✅ wf-abc123_spec_1_recipe_20240601.yaml — Valid YAML spec. All required fields present.curator test
Ejecuta casos de prueba E2E desde el test manifest y genera un informe Markdown.
curator test [--case <id>] [--all] [--manifest <ruta>] [--report true|false] [--output <dir>] [--lms]| Flag | Default | Descripción |
|---|---|---|
--case | — | Ejecuta un único test case por ID |
--all | false | Ejecuta todos los test cases del manifest |
--manifest | ce-specs/tests/curator_test_manifest.yaml | Ruta al manifest YAML |
--report | true | Genera informe Markdown en el directorio de salida |
--output | ./curator_out | Directorio de salida (se crea subdirectorio yyyy-MM-dd/) |
--lms | false | Usa lms_curator_test_manifest.yaml en vez del manifest estándar |
Ejemplos:
# Un caso concreto del manifest clásicocurator test --case ap_spanish_2023_ordinaria
# Todos los casos LMS/OERcurator test --lms --all
# Manifest personalizadocurator test --manifest mis-tests/batch_test.yaml --all --output ./resultados
# Sin informe Markdowncurator test --all --report falsecurator batch
Genera specs para todos los documentos de un manifest en modo producción (sin comparación semántica).
curator batch [--manifest <ruta>] [--output <dir>] [--country <cc>] [--standard <std>]| Flag | Default | Descripción |
|---|---|---|
--manifest | ce-specs/tests/curator_test_manifest.yaml | Ruta al manifest YAML |
--output | ./curator_out | Directorio de salida |
--country | ES | Código de país para el contexto curricular |
--standard | LOMLOE | Standard curricular |
Ejemplo:
curator batch --manifest ce-specs/tests/lms_curator_test_manifest.yaml --output batch_output/curator bloom derive
Deriva nuevos ejercicios pedagógicos a partir de una spec semilla ingestada, usando una estrategia Bloom configurable.
curator bloom derive --seed <referenceCode> [--strategy SOURCE_DERIVATION|PROGRESSION|MISCONCEPTION_REMEDIATION] [--context <standard/level/subject>] [--levels SIMPLIFIED,STANDARD,EXTENDED,CHALLENGE] [--count <n>] [--focus <tema>] [--output <dir>] [--sandbox]Flags:
| Flag | Default | Descripción |
|---|---|---|
--seed | obligatorio | referenceCode de la spec semilla ingestada |
--strategy | SOURCE_DERIVATION | Estrategia Bloom a aplicar |
--context | (de la semilla) | Contexto curricular: IB/HL/spanish_language |
--levels | (los 4) | Niveles de dificultad (solo PROGRESSION): SIMPLIFIED,STANDARD,EXTENDED,CHALLENGE |
--count | 2 | Número de ejercicios a generar (ignorado para PROGRESSION) |
--focus | — | Tema o sección concreta de la semilla en la que enfocarse |
--output | ./bloom_out | Directorio de salida para los YAMLs generados |
--sandbox | false | Genera los YAML localmente sin registrar en SpecManager |
Endpoint: POST /api/v1/bloom/derive
Ejemplos:
# Derivar 3 ejercicios desde un documento fuente privadocurator bloom derive \ --seed ib.spa.textual_analysis_rubric \ --strategy SOURCE_DERIVATION \ --context IB/HL/spanish_language \ --count 3# → Generados: bloom_out/ib.spa.derived.ex_001.yaml# bloom_out/ib.spa.derived.ex_002.yaml# bloom_out/ib.spa.derived.ex_003.yaml# → Cada YAML tiene metadata.provenance.seedRef = ib.spa.textual_analysis_rubric# Generar los 4 niveles de dificultad desde un ejercicio existentecurator bloom derive \ --seed ib.spa.textual_analysis_ex_001 \ --strategy PROGRESSION# → Generados: *_SIMPLIFIED.yaml, *_STANDARD.yaml, *_EXTENDED.yaml, *_CHALLENGE.yaml
# Solo dos nivelescurator bloom derive \ --seed ib.spa.textual_analysis_ex_001 \ --strategy PROGRESSION \ --levels SIMPLIFIED,CHALLENGE# Generar sin registrar (revisar antes de ingestar)curator bloom derive \ --seed es.lomloe.spa.rubrica_lcl_2025 \ --strategy SOURCE_DERIVATION \ --context LOMLOE/2BACH/lengua_castellana \ --count 2 \ --sandbox# → Escrito en ./bloom_out/ — NO registrado en SpecManager# → Ejecuta 'curator validate' + 'sync_specs.sh' cuando esté listoGrupo docs — Descubrimiento de documentos
docs discover
Descubre documentos de examen desde fuentes conocidas o búsqueda web.
docs discover [--query "<texto>"] [--source <id>] [--subject <slug>] [--years "2022-2024"|"2022,2023"] [--call-type ordinaria|frq|mcq] [--output <archivo.yaml>] [--dry-run]| Flag | Descripción |
|---|---|
--query | Texto libre para búsqueda web (requiere Google CSE configurado) |
--source | ID de fuente conocida: collegeboard, madrid, boe, canvas-commons, ck12, europeana… |
--subject | Asignatura: lcl, matematicas, spanish_language, biology… |
--years | Rango "2022-2024" o lista "2022,2023" |
--call-type | ordinaria | extraordinaria | frq | mcq |
--output | Guarda la lista de descubrimiento en un archivo YAML |
--dry-run | Lista candidatos sin verificación HTTP |
Estrategias internas:
docs discover │ ├─ [--source canvas-commons|ck12|europeana] → LmsPackageDiscoveryStrategy (API) │ ├─ [--source collegeboard|madrid|boe...] → KnownSourcesStrategy (HEAD check URLs) │ └─ [--query "..."] → WebSearchStrategy (Google CSE)Ejemplos:
# Exámenes AP de College Boarddocs discover --source collegeboard --subject spanish_language --years 2020-2024 \ --output ap_spanish.yaml
# Selectividad Madrid (Lengua Castellana)docs discover --source madrid --subject lcl --years 2022-2024 \ --call-type ordinaria --output selectividad_lcl.yaml
# Búsqueda web libre (requiere Google CSE)docs discover --query "selectividad lcl andalucía 2023" --output web_lcl.yaml
# Paquetes Canvas Commons (requiere COLABEDU_API_KEY_CANVAS)docs discover --source canvas-commons --subject biology --output canvas_bio.yaml
# Recursos Europeana (requiere COLABEDU_API_KEY_EUROPEANA)docs discover --source europeana --subject history --output europeana_history.yaml
# Dry-run para explorar sin descargardocs discover --source boe --subject matematicas --years 2023 --dry-rundocs download
Descarga los documentos de una lista de descubrimiento al disco local.
docs download --list <discovery_list.yaml> [--local-dir <dir>] [--status FOUND] [--catalog true|false]| Flag | Default | Descripción |
|---|---|---|
--list | obligatorio | Ruta al YAML producido por docs discover |
--local-dir | — | Directorio local donde guardar las descargas |
--status | FOUND | Solo descarga documentos con este estado |
--catalog | true | Añade los descargados al catálogo persistente source_catalog.yaml |
Ejemplo:
docs download --list ap_spanish.yaml --local-dir ce-specs/sources/us/ap/spanish/# → Actualiza source_catalog.yaml automáticamente# → Siguiente paso: docs catalog --list ap_spanish.yaml --manifest curator_manifest.yamldocs catalog
Añade documentos de una lista de descubrimiento al manifest del curator.
docs catalog --list <discovery_list.yaml> [--manifest <curator_manifest.yaml>] [--filter-status DOWNLOADED] [--dry-run]| Flag | Default | Descripción |
|---|---|---|
--list | obligatorio | Lista de descubrimiento YAML |
--manifest | — | Manifest del curator donde añadir entradas (append) |
--filter-status | DOWNLOADED | Solo incluye documentos con este estado |
--dry-run | false | Imprime el YAML en consola sin escribir al disco |
Ejemplo:
docs catalog \ --list ap_spanish.yaml \ --manifest ce-specs/tests/curator_test_manifest.yaml
# Dry-run para revisar antes de escribirdocs catalog --list ap_spanish.yaml --dry-rundocs search
Consulta el catálogo local de fuentes descargadas.
docs search [--subject <slug>] [--year <año>] [--source <id>] [--curator-status PENDING|DONE|FAILED]Ejemplo:
docs search --subject lcl --curator-status PENDING# Lista todos los PDFs de LCL pendientes de curardocs sources
Lista todas las fuentes de documentos conocidas registradas en el sistema.
docs sources [--scope global|es|us] [--subject <slug>]Ejemplo:
docs sourcesdocs sources --scope us --subject spanish_languagedocs stats
Muestra estadísticas del catálogo local de fuentes.
docs stats# → Nº total, por estado, por subject, por sourceGrupo taxonomy — Exploración de taxonomía
taxonomy standards
Lista todos los estándares curriculares disponibles, con filtro opcional por país.
taxonomy standards [--country <cc>]# cc: es | us | mx | (vacío = todos)Endpoint: GET /api/v1/taxonomy/options/countries + /countries/{code}/standards
Ejemplo:
taxonomy standards --country us# 🇺🇸 United States# ├── std.intl.ap Advanced Placement (AP)# ├── std.us.tx.teks Texas Essential Knowledge and Skills# ├── std.intl.ib International Baccalaureate (IB)taxonomy tree
Muestra el árbol de niveles y asignaturas de un estándar.
taxonomy tree --standard <std_id> [--subject <kw>]Endpoints:
GET /api/v1/taxonomy/options/standards/{std}/levelsGET /api/v1/taxonomy/options/standards/{std}/subjectsGET /api/v1/taxonomy/options/standards/{std}/subjects/{sval}/variants
Ejemplo:
taxonomy tree --standard std.intl.aptaxonomy tree --standard std.es.lomloe --subject lcltaxonomy rubrics
Lista las rúbricas C0 disponibles en ce-specs/catalog/, con filtro por standard y asignatura.
taxonomy rubrics [--standard <kw>] [--subject <kw>]Ejemplo:
taxonomy rubrics --standard ap --subject spanishtaxonomy rubrics --standard lomloe --subject matematicastaxonomy courses
Lista los CourseBundle specs (BUNDLE_COURSE) para un país, standard o prefijo de referenceCode.
taxonomy courses [--country <cc>] [--standard <kw>] [--referenceCode <prefix>]Endpoint: GET /api/v1/taxonomy/options/course-bundles?referenceCode=<prefix>
Ejemplo:
taxonomy courses --country es --standard lomloetaxonomy courses --referenceCode us.ap.spanish_languagetaxonomy check
Pre-flight check completo para un referenceCode antes de curar. Verifica:
- ✅ Taxonomía en DB (
/api/v1/taxonomy/options/resolve) - 📐 Rúbricas C0 en
ce-specs/catalog/ - 🧪 Recetas C1 en
ce-specs/catalog/ - 📄 PDFs en
ce-specs/sources/ - 📦 CourseBundles en la DB
- 📄 Specs ya curados en
curator_out/
taxonomy check --referenceCode <código>Ejemplo:
taxonomy check --referenceCode us.ap.spanish_language.hl# ╔══════════════════════════════════════════════════════════╗# ║ Pre-flight Check: us.ap.spanish_language.hl ║# ╚══════════════════════════════════════════════════════════╝# 📚 TAXONOMY (DB)# Standard: AP# Level: HL# ...# RESULTADO: ✅ Listo para curartaxonomy report
Genera una tabla de estado para todos los estándares de un país (o todos).
taxonomy report [--country <cc>] [--save]| Flag | Default | Descripción |
|---|---|---|
--country | (todos) | Filtra por código de país |
--save | false | Guarda el informe como Markdown en curator_out/taxonomy_report.md |
Ejemplo:
taxonomy report --country es --savetaxonomy report # Todos los paísesGrupo spec batch — Pipeline declarativo
spec batch run
Ejecuta un pipeline de specs por etapas desde un archivo YAML de definición.
spec batch run --batch <archivo.yaml> [--from <etapa>] [--dry-run]| Flag | Descripción |
|---|---|
--batch | Obligatorio. Ruta al YAML de definición del batch |
--from | Reanuda desde una etapa: taxonomy | discover | fetch | parse | approval | ingest |
--dry-run | Muestra el plan de ejecución sin correr nada |
Etapas del pipeline:
taxonomy → discover → fetch → parse → approval → ingestEl estado se persiste en .ce-batch-state.json para reanudar en caso de fallo.
Ejemplo:
spec batch run --batch batch_ap_spanish.yamlspec batch run --batch batch_ap_spanish.yaml --dry-runspec batch run --batch batch_ap_spanish.yaml --from parse # Reanudar desde parsespec batch status
Muestra el estado de la última ejecución de batch (o por ID).
spec batch status [--batch-id <id>]Lee .ce-batch-state.json del directorio actual.
Ejemplo:
spec batch status# Batch ID : batch-ap-spanish-2024# Status : ✅ COMPLETED# Discovered URLs : 12# Fetched files : 11# Parsed specs : 10# Ingested ref codes : 10spec batch generate
Genera un YAML de definición de batch desde una descripción en lenguaje natural usando AI.
spec batch generate --description "<descripción>" [--out batch.yaml] [--print]| Flag | Default | Descripción |
|---|---|---|
--description | obligatorio | Descripción del contenido pedagógico a ingestar |
--out | batch.yaml | Archivo de salida |
--print | — | Imprime el YAML en consola en vez de guardar |
Endpoint: POST /api/v1/curator/batch/generate
Ejemplo:
spec batch generate \ --description "cursos de español AP para high school en California" \ --out batch_ap_ca.yaml
spec batch generate --description "exámenes LOMLOE de matemáticas 4 ESO" --printGrupo curriculum — Análisis de brechas curriculares y planificación ACA
El grupo curriculum integra el CurriculumArchitectService con la CLI. Lee los requisitos curriculares de archivos YAML spec-as-code ubicados en ce-specs/catalog/requirements/, identifica qué specs faltan y puede lanzar planes ACA dirigidos a cubrir esas brechas automáticamente.
curriculum gaps
Devuelve un informe estructurado de brechas comparando las specs existentes con los requisitos curriculares.
curriculum gaps --standard <ESTANDAR> --country <PAIS>| Flag | Tipo | Obligatorio | Descripción |
|---|---|---|---|
--standard | String | ✅ | Código del estándar curricular (p.ej. AP_SPANISH, LOMLOE) |
--country | String | ✅ | Código de país ISO (US, ES, MX…) |
Endpoint: GET /api/v1/curriculum/gaps?standard=&country=
Ejemplo:
curriculum gaps --standard AP_SPANISH --country US# 📊 Curriculum Gap Analysis — AP_SPANISH / US# Coverage : 42.0% (21 / 50 specs)## Theme SpecType REQ HAVE GAP# ──────────────────────────────────────────────────────────────# ❌ simulated_conversation C2_EXERCISES 10 2 8# ❌ simulated_conversation INTERACTIVE_LESSON 5 0 5# ⚠️ email_reply C2_EXERCISES 8 4 4# ✅ cultural_comparison C2_EXERCISES 6 6 0Íconos de cobertura:
- ✅
cobertura ≥ 100%— completamente cubierto - ⚠️
cobertura 50–99%— parcialmente cubierto - ❌
cobertura < 50%— brecha crítica
curriculum progress
Muestra el estado agregado del pipeline ACA para todos los planes de un estándar + país.
curriculum progress --standard <ESTANDAR> --country <PAIS>| Flag | Tipo | Obligatorio | Descripción |
|---|---|---|---|
--standard | String | ✅ | Código del estándar curricular |
--country | String | ✅ | Código de país ISO |
Endpoint: GET /api/v1/curriculum/progress?standard=&country=
Ejemplo:
curriculum progress --standard AP_SPANISH --country US# 🚀 Curriculum Progress — AP_SPANISH / US# Overall : 58.0% complete# Items : 8 DONE | 1 PENDING | 1 REVIEW | 0 FAILED## Plan STATUS STAGE DONE PEND REV FAIL# ─────────────────────────────────────────────────────────────────────────────# CURRICULUM-AP_SPANISH-US-simulated... RUNNING c2_exercises 4 1 0 0# CURRICULUM-AP_SPANISH-US-email_reply COMPLETED c2_exercises 4 0 1 0curriculum plan create
Crea y lanza inmediatamente un plan ACA para cubrir una brecha curricular específica.
El nombre del plan se genera automáticamente como CURRICULUM-{standard}-{country}-{theme}-{specType}.
curriculum plan create --standard <ESTANDAR> --country <PAIS> --theme <themeId> --spec-type <TIPO> --sources "<url1>,<url2>,..." [--subject <materia>] [--level <nivel>]| Flag | Valor por defecto | Descripción |
|---|---|---|
--standard | obligatorio | Estándar curricular (p.ej. AP_SPANISH, LOMLOE) |
--country | obligatorio | Código de país ISO (US, ES…) |
--theme | obligatorio | ID del tema del YAML de requisitos (p.ej. simulated_conversation) |
--spec-type | C2_EXERCISES | Tipo de spec a producir: C2_EXERCISES, INTERACTIVE_LESSON, BLOCK_RUBRIC… |
--sources | obligatorio | URLs de fuentes separadas por comas |
--subject | spanish | Materia (override) |
--level | 9-12 | Nivel educativo (override) |
Endpoint: POST /api/v1/curriculum/plans
Ejemplo:
curriculum plan create \ --standard AP_SPANISH \ --country US \ --theme simulated_conversation \ --spec-type C2_EXERCISES \ --sources "https://apcentral.collegeboard.org/media/pdf/ap23-apc-spanish-language.pdf,https://apcentral.collegeboard.org/media/pdf/ap22-apc-spanish-language.pdf"# ✅ ACA Plan created and launched# Plan ID : e4a1c230-...# Items queued : 2# Status : RUNNING## Monitor with:# aca plan status --id e4a1c230-...# curriculum progress --standard AP_SPANISH --country USGrupo user — Operaciones de usuario
user provision
Aprovisiona un usuario individual vía la API Ops del backend.
user provision --email <email> --name "<nombre>" [--role "teacher;admin"]| Flag | Default | Descripción |
|---|---|---|
--email | obligatorio | Email del usuario |
--name | obligatorio | Nombre completo |
--role | teacher | Roles separados por ; (p.ej. teacher;admin) |
Endpoint: POST /ops/v1/provisioning/trigger
user bulk-provision
Aprovisiona usuarios en masa desde un CSV (email,name,role).
user bulk-provision --file <usuarios.csv>Ejemplo CSV:
email,name,rolemaria@escuela.es,María García,teacheradmin@escuela.es,Admin Centro,teacher;adminGrupo crm — Operaciones CRM
crm import-leads
Importa leads en masa al CRM desde un CSV (email,name,state,subject).
crm import-leads --file <leads.csv> [--owner <ownerId>]Endpoint: POST /ops/v1/provisioning/crm/leads/ingest
Workflows típicos completos
Workflow A: Curación de examen AP (clásico)
# 1. Pre-flighttaxonomy check --referenceCode us.ap.spanish_language.hl
# 2. Descubrir y descargar fuentesdocs discover --source collegeboard --subject spanish_language --years 2020-2024 \ --output ap_spanish.yamldocs download --list ap_spanish.yaml --local-dir ce-specs/sources/us/ap/spanish/
# 3. Añadir al manifest y curardocs catalog --list ap_spanish.yaml \ --manifest ce-specs/tests/curator_test_manifest.yamlcurator test --case ap_spanish_2023_ordinaria
# 4. Curar un documento específicocurator curate \ --source ce-specs/sources/us/ap/spanish/ap_spanish_2023.pdf \ --referenceCode us.ap.spanish_language.hl \ --sections "Section I,Section II"
# 5. Validar e ingestarcurator validate --spec curator_out/wf-abc123_spec_1_recipe_20240601.yamlbash sync_specs.sh local GLOBALWorkflow B: Paquetes LMS Canvas en batch
# 1. Descubrir paquetes en Canvas Commonsdocs discover --source canvas-commons --subject biology --output canvas_bio.yaml
# 2. Descargardocs download --list canvas_bio.yaml --local-dir ce-specs/sources/lms/canvas/
# 3. Crear manifest LMSdocs catalog --list canvas_bio.yaml \ --manifest ce-specs/tests/lms_curator_test_manifest.yaml
# 4. Ejecutar batchcurator batch --manifest ce-specs/tests/lms_curator_test_manifest.yaml \ --output batch_output/
# 5. Test LMScurator test --lms --allWorkflow C: Pipeline batch declarativo
# 1. Generar definición desde descripción naturalspec batch generate \ --description "exámenes selectividad lengua castellana Madrid 2020-2024" \ --out batch_lcl_madrid.yaml
# 2. Revisar y ejecutarspec batch run --batch batch_lcl_madrid.yaml --dry-runspec batch run --batch batch_lcl_madrid.yaml
# 3. Consultar estadospec batch statusWorkflow E: Cola compartida de revisión pedagógica
# 1. Lanzar curation desde CI/CD o CLI (sin usuario asignado)curator curate \ --source ce-specs/sources/es/lomloe/2bach/lcl/exam_lcl_2024.pdf \ --referenceCode es.lomloe.bach.2.lcl# → job creado con shared=true# → badge 🟡 "Shared" aparece en Job Command Center para todos los TEACHER/CONTENT_CREATOR
# 2. (Opcional) Asignar a un pedagogo específicocurator curate \ --source exam_lcl_2024.pdf \ --referenceCode es.lomloe.bach.2.lcl \ --user pedagogo@colabedu.org# → job.shared = false, job.owner_email = "pedagogo@colabedu.org"# → solo visible para ese usuario
# 3. Verificar estado del jobcurator status --id <workflowId>
# 4. El pedagogo aprueba el job desde el Job Command Center en la UI web# → Estado: PENDING_REVIEW → APPROVED → registro automático en SpecManager
# 5. Ingestar specs aprobadasbash sync_specs.sh local GLOBALWorkflow F: Brecha curricular → Sprint ACA
# 1. Ver qué specs faltan para AP Spanishcurriculum gaps --standard AP_SPANISH --country US# → Cobertura 42%, brechas críticas en simulated_conversation y email_reply
# 2. Descubrir fuentes relevantesdocs discover --source collegeboard --subject spanish_language --years 2020-2024 \ --output ap_spanish.yaml
# 3. Descargar fuentesdocs download --list ap_spanish.yaml --local-dir ce-specs/sources/us/ap/spanish/
# 4. Lanzar plan ACA para la brecha prioritaria (simulated_conversation)curriculum plan create \ --standard AP_SPANISH \ --country US \ --theme simulated_conversation \ --spec-type C2_EXERCISES \ --sources "$(grep 'url:' ap_spanish.yaml | awk '{print $2}' | tr '\n' ',' | sed 's/,$//')"# → Plan creado: CURRICULUM-AP_SPANISH-US-simulated_conversation-C2_EXERCISES
# 5. Monitorear progreso del pipeline ACAcurriculum progress --standard AP_SPANISH --country US# → Progreso general 58%, 8 DONE, 1 PENDING
# 6. Gestionar items en NEEDS_REVIEWaca plan list <planId> --status NEEDS_REVIEWaca plan approve <planId> --item <itemId>
# 7. Verificar cierre de brechacurriculum gaps --standard AP_SPANISH --country US# → simulated_conversation C2_EXERCISES: 10/10 ✅