Saltearse al contenido

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:

GrupoPrefijoDescripción
CuratorcuratorCuración AI, tests E2E y batches de generación
Document DiscoverydocsDescubrimiento, descarga y catalogación de fuentes
TaxonomytaxonomyExploración de estándares, rúbricas y cursos
Spec Batchspec batchPipeline declarativo por etapas
CurriculumcurriculumAnálisis de brechas, creación de planes ACA y seguimiento
User OperationsuserAprovisionamiento de usuarios
CRM OperationscrmImportación de leads desde CSV

Configuración de entorno

Ventana de terminal
# Obligatorio
export 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 API
export COLABEDU_API_KEY_EUROPEANA=<wskey> # Europeana Education API
export GOOGLE_CSE_API_KEY=<key> # Google Custom Search API
export GOOGLE_CSE_ID=<cx> # Google CSE ID
# Opcionales (operaciones internas)
export COLABEDU_API_BASE_URL=http://localhost:8081
export COLABEDU_API_INTERNAL_KEY=<key> # X-Internal-API-Key

Diagrama 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.

Ventana de terminal
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:

FlagTipoDefaultDescripción
--sourceStringobligatorioRuta local (PDF, DOCX, .imscc, .mbz) o URI GCS (gs://...)
--referenceCodeStringCódigo de referencia taxonómico (p.ej. es.lomloe.bach.2.lcl). Auto-resuelve standard, nivel y asignatura.
--sectionsStringSecciones separadas por coma: "Opción A,Opción B"
--typeStringC2_EXERCISESTipo de spec a generar
--outputString./curator_outDirectorio de salida para los YAMLs
--countryString(del referenceCode)Código de país override
--standardStringStandard curricular override (p.ej. LOMLOE, IB). Ignorado si se usa --referenceCode.
--levelStringNivel educativo override (p.ej. 4 ESO, 2 BACH). Ignorado si se usa --referenceCode.
--subjectStringAsignatura override (p.ej. lcl, matematicas). Ignorado si se usa --referenceCode.
--source-typeString(auto)WEB o LMS_PACKAGE. Auto-detectado: .imscc/.mbz/.zipLMS_PACKAGE.
--output-typeStringRECIPERECIPE | INTERACTIVE_LESSON | RESOURCE_LEARNING
--sandboxbooleantrueEscribe YAMLs a disco sin registrar en DB
--validatebooleantrueValida estructuralmente los YAMLs descargados
--userStringEmail 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.
--visibilityStringPUBLICVisibilidad 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 descargado

Ejemplos:

Ventana de terminal
# 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ícitos
curator curate \
--source examen.pdf \
--standard LOMLOE --level "2 BACH" --subject lcl \
--sections "Opción A,Opción B" \
--type C2_EXERCISES

curator status

Consulta el estado de un workflow de curación en curso o completado.

Ventana de terminal
curator status --id <workflowId>
FlagDescripción
--idObligatorio. ID de workflow devuelto por curator curate.

Endpoint: GET /api/v1/curator/status/{workflowId}

Ejemplo:

Ventana de terminal
curator status --id wf-20240601-abc123
# → Workflow ID : wf-20240601-abc123
# → Status : COMPLETED
# → Specs ready : 2

curator validate

Valida estructuralmente un YAML de spec generado por el curator.

Ventana de terminal
curator validate --spec <ruta-al-yaml>
FlagDescripción
--specObligatorio. 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:

Ventana de terminal
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.

Ventana de terminal
curator test [--case <id>] [--all] [--manifest <ruta>] [--report true|false]
[--output <dir>] [--lms]
FlagDefaultDescripción
--caseEjecuta un único test case por ID
--allfalseEjecuta todos los test cases del manifest
--manifestce-specs/tests/curator_test_manifest.yamlRuta al manifest YAML
--reporttrueGenera informe Markdown en el directorio de salida
--output./curator_outDirectorio de salida (se crea subdirectorio yyyy-MM-dd/)
--lmsfalseUsa lms_curator_test_manifest.yaml en vez del manifest estándar

Ejemplos:

Ventana de terminal
# Un caso concreto del manifest clásico
curator test --case ap_spanish_2023_ordinaria
# Todos los casos LMS/OER
curator test --lms --all
# Manifest personalizado
curator test --manifest mis-tests/batch_test.yaml --all --output ./resultados
# Sin informe Markdown
curator test --all --report false

curator batch

Genera specs para todos los documentos de un manifest en modo producción (sin comparación semántica).

Ventana de terminal
curator batch [--manifest <ruta>] [--output <dir>] [--country <cc>] [--standard <std>]
FlagDefaultDescripción
--manifestce-specs/tests/curator_test_manifest.yamlRuta al manifest YAML
--output./curator_outDirectorio de salida
--countryESCódigo de país para el contexto curricular
--standardLOMLOEStandard curricular

Ejemplo:

Ventana de terminal
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.

Ventana de terminal
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:

FlagDefaultDescripción
--seedobligatorioreferenceCode de la spec semilla ingestada
--strategySOURCE_DERIVATIONEstrategia 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
--count2Número de ejercicios a generar (ignorado para PROGRESSION)
--focusTema o sección concreta de la semilla en la que enfocarse
--output./bloom_outDirectorio de salida para los YAMLs generados
--sandboxfalseGenera los YAML localmente sin registrar en SpecManager

Endpoint: POST /api/v1/bloom/derive

Ejemplos:

Ventana de terminal
# Derivar 3 ejercicios desde un documento fuente privado
curator 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

Grupo docs — Descubrimiento de documentos

docs discover

Descubre documentos de examen desde fuentes conocidas o búsqueda web.

Ventana de terminal
docs discover [--query "<texto>"] [--source <id>] [--subject <slug>]
[--years "2022-2024"|"2022,2023"] [--call-type ordinaria|frq|mcq]
[--output <archivo.yaml>] [--dry-run]
FlagDescripción
--queryTexto libre para búsqueda web (requiere Google CSE configurado)
--sourceID de fuente conocida: collegeboard, madrid, boe, canvas-commons, ck12, europeana
--subjectAsignatura: lcl, matematicas, spanish_language, biology
--yearsRango "2022-2024" o lista "2022,2023"
--call-typeordinaria | extraordinaria | frq | mcq
--outputGuarda la lista de descubrimiento en un archivo YAML
--dry-runLista 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:

Ventana de terminal
# Exámenes AP de College Board
docs 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 descargar
docs discover --source boe --subject matematicas --years 2023 --dry-run

docs download

Descarga los documentos de una lista de descubrimiento al disco local.

Ventana de terminal
docs download --list <discovery_list.yaml> [--local-dir <dir>]
[--status FOUND] [--catalog true|false]
FlagDefaultDescripción
--listobligatorioRuta al YAML producido por docs discover
--local-dirDirectorio local donde guardar las descargas
--statusFOUNDSolo descarga documentos con este estado
--catalogtrueAñade los descargados al catálogo persistente source_catalog.yaml

Ejemplo:

Ventana de terminal
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.yaml

docs catalog

Añade documentos de una lista de descubrimiento al manifest del curator.

Ventana de terminal
docs catalog --list <discovery_list.yaml> [--manifest <curator_manifest.yaml>]
[--filter-status DOWNLOADED] [--dry-run]
FlagDefaultDescripción
--listobligatorioLista de descubrimiento YAML
--manifestManifest del curator donde añadir entradas (append)
--filter-statusDOWNLOADEDSolo incluye documentos con este estado
--dry-runfalseImprime el YAML en consola sin escribir al disco

Ejemplo:

Ventana de terminal
docs catalog \
--list ap_spanish.yaml \
--manifest ce-specs/tests/curator_test_manifest.yaml
# Dry-run para revisar antes de escribir
docs catalog --list ap_spanish.yaml --dry-run

Consulta el catálogo local de fuentes descargadas.

Ventana de terminal
docs search [--subject <slug>] [--year <año>] [--source <id>]
[--curator-status PENDING|DONE|FAILED]

Ejemplo:

Ventana de terminal
docs search --subject lcl --curator-status PENDING
# Lista todos los PDFs de LCL pendientes de curar

docs sources

Lista todas las fuentes de documentos conocidas registradas en el sistema.

Ventana de terminal
docs sources [--scope global|es|us] [--subject <slug>]

Ejemplo:

Ventana de terminal
docs sources
docs sources --scope us --subject spanish_language

docs stats

Muestra estadísticas del catálogo local de fuentes.

Ventana de terminal
docs stats
# → Nº total, por estado, por subject, por source

Grupo taxonomy — Exploración de taxonomía

taxonomy standards

Lista todos los estándares curriculares disponibles, con filtro opcional por país.

Ventana de terminal
taxonomy standards [--country <cc>]
# cc: es | us | mx | (vacío = todos)

Endpoint: GET /api/v1/taxonomy/options/countries + /countries/{code}/standards

Ejemplo:

Ventana de terminal
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.

Ventana de terminal
taxonomy tree --standard <std_id> [--subject <kw>]

Endpoints:

  • GET /api/v1/taxonomy/options/standards/{std}/levels
  • GET /api/v1/taxonomy/options/standards/{std}/subjects
  • GET /api/v1/taxonomy/options/standards/{std}/subjects/{sval}/variants

Ejemplo:

Ventana de terminal
taxonomy tree --standard std.intl.ap
taxonomy tree --standard std.es.lomloe --subject lcl

taxonomy rubrics

Lista las rúbricas C0 disponibles en ce-specs/catalog/, con filtro por standard y asignatura.

Ventana de terminal
taxonomy rubrics [--standard <kw>] [--subject <kw>]

Ejemplo:

Ventana de terminal
taxonomy rubrics --standard ap --subject spanish
taxonomy rubrics --standard lomloe --subject matematicas

taxonomy courses

Lista los CourseBundle specs (BUNDLE_COURSE) para un país, standard o prefijo de referenceCode.

Ventana de terminal
taxonomy courses [--country <cc>] [--standard <kw>] [--referenceCode <prefix>]

Endpoint: GET /api/v1/taxonomy/options/course-bundles?referenceCode=<prefix>

Ejemplo:

Ventana de terminal
taxonomy courses --country es --standard lomloe
taxonomy courses --referenceCode us.ap.spanish_language

taxonomy check

Pre-flight check completo para un referenceCode antes de curar. Verifica:

  1. ✅ Taxonomía en DB (/api/v1/taxonomy/options/resolve)
  2. 📐 Rúbricas C0 en ce-specs/catalog/
  3. 🧪 Recetas C1 en ce-specs/catalog/
  4. 📄 PDFs en ce-specs/sources/
  5. 📦 CourseBundles en la DB
  6. 📄 Specs ya curados en curator_out/
Ventana de terminal
taxonomy check --referenceCode <código>

Ejemplo:

Ventana de terminal
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 curar

taxonomy report

Genera una tabla de estado para todos los estándares de un país (o todos).

Ventana de terminal
taxonomy report [--country <cc>] [--save]
FlagDefaultDescripción
--country(todos)Filtra por código de país
--savefalseGuarda el informe como Markdown en curator_out/taxonomy_report.md

Ejemplo:

Ventana de terminal
taxonomy report --country es --save
taxonomy report # Todos los países

Grupo spec batch — Pipeline declarativo

spec batch run

Ejecuta un pipeline de specs por etapas desde un archivo YAML de definición.

Ventana de terminal
spec batch run --batch <archivo.yaml> [--from <etapa>] [--dry-run]
FlagDescripción
--batchObligatorio. Ruta al YAML de definición del batch
--fromReanuda desde una etapa: taxonomy | discover | fetch | parse | approval | ingest
--dry-runMuestra el plan de ejecución sin correr nada

Etapas del pipeline:

taxonomy → discover → fetch → parse → approval → ingest

El estado se persiste en .ce-batch-state.json para reanudar en caso de fallo.

Ejemplo:

Ventana de terminal
spec batch run --batch batch_ap_spanish.yaml
spec batch run --batch batch_ap_spanish.yaml --dry-run
spec batch run --batch batch_ap_spanish.yaml --from parse # Reanudar desde parse

spec batch status

Muestra el estado de la última ejecución de batch (o por ID).

Ventana de terminal
spec batch status [--batch-id <id>]

Lee .ce-batch-state.json del directorio actual.

Ejemplo:

Ventana de terminal
spec batch status
# Batch ID : batch-ap-spanish-2024
# Status : ✅ COMPLETED
# Discovered URLs : 12
# Fetched files : 11
# Parsed specs : 10
# Ingested ref codes : 10

spec batch generate

Genera un YAML de definición de batch desde una descripción en lenguaje natural usando AI.

Ventana de terminal
spec batch generate --description "<descripción>" [--out batch.yaml] [--print]
FlagDefaultDescripción
--descriptionobligatorioDescripción del contenido pedagógico a ingestar
--outbatch.yamlArchivo de salida
--printImprime el YAML en consola en vez de guardar

Endpoint: POST /api/v1/curator/batch/generate

Ejemplo:

Ventana de terminal
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" --print

Grupo 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.

Ventana de terminal
curriculum gaps --standard <ESTANDAR> --country <PAIS>
FlagTipoObligatorioDescripción
--standardStringCódigo del estándar curricular (p.ej. AP_SPANISH, LOMLOE)
--countryStringCódigo de país ISO (US, ES, MX…)

Endpoint: GET /api/v1/curriculum/gaps?standard=&country=

Ejemplo:

Ventana de terminal
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.

Ventana de terminal
curriculum progress --standard <ESTANDAR> --country <PAIS>
FlagTipoObligatorioDescripción
--standardStringCódigo del estándar curricular
--countryStringCódigo de país ISO

Endpoint: GET /api/v1/curriculum/progress?standard=&country=

Ejemplo:

Ventana de terminal
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 0

curriculum 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}.

Ventana de terminal
curriculum plan create --standard <ESTANDAR> --country <PAIS>
--theme <themeId> --spec-type <TIPO>
--sources "<url1>,<url2>,..."
[--subject <materia>] [--level <nivel>]
FlagValor por defectoDescripción
--standardobligatorioEstándar curricular (p.ej. AP_SPANISH, LOMLOE)
--countryobligatorioCódigo de país ISO (US, ES…)
--themeobligatorioID del tema del YAML de requisitos (p.ej. simulated_conversation)
--spec-typeC2_EXERCISESTipo de spec a producir: C2_EXERCISES, INTERACTIVE_LESSON, BLOCK_RUBRIC
--sourcesobligatorioURLs de fuentes separadas por comas
--subjectspanishMateria (override)
--level9-12Nivel educativo (override)

Endpoint: POST /api/v1/curriculum/plans

Ejemplo:

Ventana de terminal
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 US

Grupo user — Operaciones de usuario

user provision

Aprovisiona un usuario individual vía la API Ops del backend.

Ventana de terminal
user provision --email <email> --name "<nombre>" [--role "teacher;admin"]
FlagDefaultDescripción
--emailobligatorioEmail del usuario
--nameobligatorioNombre completo
--roleteacherRoles 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).

Ventana de terminal
user bulk-provision --file <usuarios.csv>

Ejemplo CSV:

email,name,role
maria@escuela.es,María García,teacher
admin@escuela.es,Admin Centro,teacher;admin

Grupo crm — Operaciones CRM

crm import-leads

Importa leads en masa al CRM desde un CSV (email,name,state,subject).

Ventana de terminal
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)

Ventana de terminal
# 1. Pre-flight
taxonomy check --referenceCode us.ap.spanish_language.hl
# 2. Descubrir y descargar fuentes
docs discover --source collegeboard --subject spanish_language --years 2020-2024 \
--output ap_spanish.yaml
docs download --list ap_spanish.yaml --local-dir ce-specs/sources/us/ap/spanish/
# 3. Añadir al manifest y curar
docs catalog --list ap_spanish.yaml \
--manifest ce-specs/tests/curator_test_manifest.yaml
curator test --case ap_spanish_2023_ordinaria
# 4. Curar un documento específico
curator 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 ingestar
curator validate --spec curator_out/wf-abc123_spec_1_recipe_20240601.yaml
bash sync_specs.sh local GLOBAL

Workflow B: Paquetes LMS Canvas en batch

Ventana de terminal
# 1. Descubrir paquetes en Canvas Commons
docs discover --source canvas-commons --subject biology --output canvas_bio.yaml
# 2. Descargar
docs download --list canvas_bio.yaml --local-dir ce-specs/sources/lms/canvas/
# 3. Crear manifest LMS
docs catalog --list canvas_bio.yaml \
--manifest ce-specs/tests/lms_curator_test_manifest.yaml
# 4. Ejecutar batch
curator batch --manifest ce-specs/tests/lms_curator_test_manifest.yaml \
--output batch_output/
# 5. Test LMS
curator test --lms --all

Workflow C: Pipeline batch declarativo

Ventana de terminal
# 1. Generar definición desde descripción natural
spec batch generate \
--description "exámenes selectividad lengua castellana Madrid 2020-2024" \
--out batch_lcl_madrid.yaml
# 2. Revisar y ejecutar
spec batch run --batch batch_lcl_madrid.yaml --dry-run
spec batch run --batch batch_lcl_madrid.yaml
# 3. Consultar estado
spec batch status

Workflow E: Cola compartida de revisión pedagógica

Ventana de terminal
# 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ífico
curator 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 job
curator 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 aprobadas
bash sync_specs.sh local GLOBAL

Workflow F: Brecha curricular → Sprint ACA

Ventana de terminal
# 1. Ver qué specs faltan para AP Spanish
curriculum gaps --standard AP_SPANISH --country US
# → Cobertura 42%, brechas críticas en simulated_conversation y email_reply
# 2. Descubrir fuentes relevantes
docs discover --source collegeboard --subject spanish_language --years 2020-2024 \
--output ap_spanish.yaml
# 3. Descargar fuentes
docs 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 ACA
curriculum progress --standard AP_SPANISH --country US
# → Progreso general 58%, 8 DONE, 1 PENDING
# 6. Gestionar items en NEEDS_REVIEW
aca plan list <planId> --status NEEDS_REVIEW
aca plan approve <planId> --item <itemId>
# 7. Verificar cierre de brecha
curriculum gaps --standard AP_SPANISH --country US
# → simulated_conversation C2_EXERCISES: 10/10 ✅

Páginas relacionadas