Genera resúmenes médicos educativos para Axon usando el sistema de bloques (summary_blocks). Dispara SIEMPRE que el usuario mencione: crear resumen, generar resumen, insertar resumen, nuevo resumen, 'resumen de [tema]', 'bloque de resumen', producir contenido educativo, o cualquier referencia a crear contenido de estudio médico para la plataforma Axon. También activa cuando se menciona editar o mejorar resúmenes existentes, o agregar bloques a un resumen.
Genera resúmenes médicos educativos estructurados en bloques para la plataforma Axon. Cada resumen se compone de bloques tipados (prose, key_point, stages, comparison, list_detail, grid, two_column, callout, image_reference, section_divider) que se insertan en la tabla summary_blocks de Supabase y se renderizan en el frontend con componentes React especializados.
El proceso sigue 6 fases pedagógicas que transforman material fuente en contenido de estudio optimizado para retención.
El bloque NO se elige por variedad visual. Se elige porque la naturaleza del contenido lo exige. Un resumen con 6 bloques bien elegidos es superior a uno con 15 bloques forzados.
Los tipos de bloque se pueden y deben repetir cuando el contenido lo requiere. Si un tema tiene 5 subtemas narrativos, se usan 5 bloques . La variedad visual es consecuencia natural del contenido diverso, no un objetivo.
prosereferences/templates/ de esta skill.xdnciktarvxyhkrokbng)Antes de crear cualquier bloque, responder estas preguntas sobre el material:
1. ¿Cuáles son los subtemas reales? Listar cada concepto o sección del material fuente.
2. ¿Qué naturaleza tiene cada subtema? Clasificar:
3. ¿Cuál es la jerarquía?
Leer references/block-types.md para la guía completa de decisión. Resumen rápido:
| Naturaleza del contenido | Bloque recomendado |
|---|---|
| Narrativo, explicativo, contexto | prose |
| Concepto central / "aha moment" | key_point (máx 1-2) |
| Proceso secuencial estricto | stages |
| 2+ entidades que se confunden | comparison |
| Items con label + detalle | list_detail |
| Dicotomía natural (2 categorías) | two_column |
| 4+ items cortos panorámicos | grid |
| Tip, mnemotecnia, correlación clínica | callout (máx 2-3) |
| Diagrama o esquema necesario | image_reference |
| Separación entre secciones grandes | section_divider |
El orden sigue un flujo cognitivo: abstracto → concreto → aplicado → memorable.
1. CONTEXTO → ¿Qué es y por qué importa? → prose / key_point
2. VISIÓN MACRO → ¿Cuál es el panorama general? → stages / two_column / grid
3. PROFUNDIDAD → Detalles técnicos importantes → list_detail / comparison / prose
4. INTEGRACIÓN → ¿Cómo se conecta con la clínica? → callout (clinical/exam)
5. MEMORIA → ¿Cómo lo retengo? → callout (mnemonic)
Reglas de flujo (estas reglas son ESTRICTAS — violarlas es un error):
callout o grid — el alumno necesita contexto primerocallout consecutivos — SIEMPRE insertar al menos un bloque de contenido sustancial (prose, list_detail, comparison, stages, etc.) entre cada par de callouts. Esto es crítico porque los callouts son "pausas" en el flujo — dos seguidos rompen el ritmo de lecturaprose — el cierre debe ser memorable. Terminar con callout (mnemonic), callout (exam), o callout (clinical). La razón: el efecto de recencia hace que el estudiante recuerde mejor lo último que lee, y un callout memorable aprovecha estokey_point va después del prose introductorio O después de un bloque técnico complejoChecklist de flujo (verificar ANTES de finalizar):
Crear keywords para términos que cumplan TODOS estos criterios:
NO crear keyword para: términos comunes (dosis, paciente, tratamiento), términos que aparecen una sola vez y se explican in-situ, abreviaturas que ya se aclaran.
Cantidad: 5-10 por tema. Más de 12 indica inflación de keywords.
Los keywords se referencian en el texto como {{keyword_uuid}}. El frontend los parsea con renderTextWithKeywords() y los convierte en <KeywordChip> interactivos con popover.
Una pregunta por concepto clave, no por bloque. Criterios:
correct index debe variar (no siempre opción 1)Antes de finalizar, verificar:
CRITICAL: Los bloques van en
summary_blocks, NUNCA enchunks.
| Tabla | Propósito |
|---|---|
summary_blocks | UI de bloques (SummaryViewer/ViewerBlock). ESTA es la tabla correcta. |
chunks | Embeddings/RAG pipeline. Auto-generada. NO tocar para UI. |
keywords | Términos clave con definición. Referenciados como {{uuid}} en content. |
summaries | Metadata del resumen (título, status). FK parent. |
INSERT INTO summary_blocks (summary_id, type, content, order_index, is_active, created_by, metadata)
VALUES (
'<summary_uuid>',
'prose', -- type: TEXT column
'{"title": "Mi título", "content": "Texto con {{kw_uuid}} refs"}'::jsonb, -- content: JSONB
0, -- order_index: display order
true, -- is_active
'<user_uuid>', -- created_by (FK profiles.id)
'{}'::jsonb -- metadata
);
Para el schema completo de content JSONB por tipo de bloque, leer references/block-content-schema.md.
INSERT INTO keywords (summary_id, name, definition, priority, created_by, is_active)
VALUES (
'<summary_uuid>',
'Término',
'Definición del término...',
1, -- priority: INTEGER NOT NULL
'<user_uuid>',
true
);
Para insertar directamente, usar el MCP de Supabase con execute_sql:
xdnciktarvxyhkrokbngsummaries{{uuid}}Flujo de inserción:
summariessummary_blocks con {{keyword_uuid}} en el contentEl output principal es un JSON con esta estructura:
{
"meta": { "topic": "...", "area": "...", "difficulty": "...", ... },
"keywords": { "id_1": { "term": "...", "definition": "...", "related": [...] }, ... },
"blocks": [
{ "type": "prose", "title": "...", "content": "... {{id_1}} ..." },
{ "type": "key_point", "title": "...", "content": "...", "importance": "critical" },
...
],
"quiz": [
{ "question": "...", "options": ["a", "b", "c", "d"], "correct": 2, "explanation": "..." },
...
]
}
Este JSON puede usarse para:
Para el schema completo con todos los campos por tipo, leer references/block-content-schema.md.
Cada área tiene un template que sugiere secciones y bloques recomendados. Los templates son GUÍAS, no camisas de fuerza.
| Área | Template | Secciones típicas |
|---|---|---|
| Patología | references/templates/patologia.md | Definición → Epidemiología → Etiología → Patogénesis → Morfología → Clínica → Dx → Tx |
| Fisiología | references/templates/fisiologia.md | Concepto → Mecanismo → Regulación → Integración → Clínica |
| Anatomía | references/templates/anatomia.md | Ubicación → Relaciones → Irrigación → Inervación → Clínica |
| Farmacología | references/templates/farmacologia.md | Clase → Mecanismo → Farmacocinética → Indicaciones → RAM → Interacciones |
Leer el template relevante antes de empezar la Fase 1.