App web (Next.js) que ayuda a entender y aplicar el nuevo Modelo de Acreditacion SINEACE 2025 para institutos y escuelas de educacion superior tecnologica (IEEST). Hackathon AIdea, problema (1): comprension y aplicacion del modelo.
Tres modos sobre un mismo motor de datos (Dimension -> Factor -> Estandar -> Aspectos -> Nivel):
- Explicar — selecciona un estandar y pregunta en lenguaje natural. Claude responde llano y cita el modelo textualmente ("segun el modelo").
- Estimar nivel — pega la evidencia real de tu programa. Claude estima No Logrado / Nivel 1 / 2 / 3 contra el patron HACER -> MEDIR -> MEJORAR y dice que falta para subir.
- Scorecard — los 18 estandares por nivel, con el veredicto global
min >= Nivel 1y el cuello de botella resaltado.
npm install
npm run dev # http://localhost:3002 (usa 3000 si esta libre)No necesitas API key: la IA usa tu suscripcion de Claude via el CLI headless
(claude -p), costo $0. Solo requiere haber hecho claude login una vez. Si
prefieres respaldo por API, copia .env.example a .env y descomenta
ANTHROPIC_API_KEY.
- Datos canonicos:
data/modelo.json(18 estandares, enunciados verbatim, aspectos, rubrica de 4 niveles, regla de otorgamiento). Verificado contraresearch/modelo-acreditacion-2025.txt. Sin base de datos. - RAG por seleccion explicita, no embeddings: el usuario elige el estandar en el arbol; eso determina de forma determinista que chunk (enunciado + aspectos + rubrica) se inyecta en el prompt. Sin vector DB, sin ambiguedad de retrieval.
- Cadena de proveedores de IA (
lib/ai.ts, configurable viaAI_PROVIDER_ORDER, por defectocli,api,demo):- cli — ejecuta
claude -p(Claude Code headless) como proceso aparte, borrandoANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKENdel entorno del hijo para que use el login de tu suscripcion ($0). El contenido del usuario va por stdin (a prueba de inyeccion), el system prompt por--system-prompt, salida--output-format json. Modelo viaCLAUDE_CLI_MODEL(sonnet por defecto). - api — Anthropic API por token via salida estructurada (
output_config.format+ JSON Schema,lib/anthropic.ts), solo si hayANTHROPIC_API_KEY. - demo — texto fijo marcado como "demo".
Cada respuesta incluye
_providery la UI muestra un badge (suscripcion · $0 / API / DEMO). Nota: el modo cli solo funciona donde existe el binarioclaude+ tu login (local); en un deploy serverless caen los respaldos api/demo.
- cli — ejecuta
- Anti-alucinacion: el system prompt (
lib/prompts.ts) prohibe responder fuera del texto provisto y exige una cita verbatim, renderizada como blockquote "segun el modelo". Auditable en vivo ante los expertos SINEACE. - Scorecard: funcion pura
lib/scorecard.ts(min(niveles) >= Nivel 1), sin LLM. - Estado:
localStorageentre estimaciones (narrativa anti-rotacion de personal). - Fixtures de demo:
data/demo-fixtures.json. La ruta/api/estimatedetecta inputs de demo y devuelve salida determinista (el momento wow funciona aun sin wifi); todo lo demas usa la API en vivo.
data/modelo.json datos canonicos (18 estandares + rubrica)
data/glosario.json definiciones de jerga (EFSRT, SGI, ...)
data/demo-fixtures.json evidencias de demo -> salidas fijas
lib/modelo.ts tipos + helpers (getEstandares, nivelIndex)
lib/scorecard.ts veredicto puro (min >= Nivel 1 + cuello de botella)
lib/anthropic.ts cliente Claude + helper de salida estructurada
lib/prompts.ts system prompts (grounding + cita verbatim, sin em-dashes)
app/api/explain/route.ts Explicar (Claude opus, estructurado)
app/api/estimate/route.ts Estimar nivel (Claude opus, estructurado + fixtures)
app/api/glossary/route.ts Glosario (lookup estatico)
components/ Tree, Workbench, Scorecard, ResultCard, Citation, LevelLadder, GoldenRuleBar
app/page.tsx orquesta arbol + workbench + scorecard
Programa: "Desarrollo de Sistemas de Informacion". Estandar estrella: 1.2 (mejora via SGI).
- Comprension — click en 1.2, Explicar: "que me pide el 1.2 y que documento subo?". Claude responde y resalta la cita del modelo.
- Aplicacion (wow) — Estimar nivel, pegar: "Tenemos un sistema que recopila tasas de aprobacion y permanencia cada ciclo y sacamos reportes." Devuelve Nivel 1 (no Nivel 2), confianza media, cita verbatim, y que falta para subir. (Fixture determinista.)
- Golpe estrategico — Scorecard: 17 celdas pintadas, 1 gris -> NO ACREDITABLE. "Sube ESTO, no pulas aquello."
- Cierre — mismo motor: semilla de evidencias (problema 3), monitoreo (problema 4) y lenguaje comun entre actores (problema 2).
- Wirear el glosario (hover sobre terminos subrayados) usando
/api/glossary. - Deep-link por estandar en la URL (
/?std=3.3) para compartir. - Upload de archivos (.pdf/.docx) en vez de solo pegar texto.
- Validacion de los aspectos verbatim por los 3 expertos SINEACE (hora 1).
- Confirmar la regla 7.1.a (innovacion) vs 7.1.b (investigacion) segun tipo de programa.
Plan completo:
research/SOLUTION-PLAYBOOK.md. Modelo decodificado:research/01-model-brief.md. Analisis del dolor:research/02-pain-map.md.