workspace-v1/projects/gamilit/database/seeds/dev/educational_content/07-assessment-rubrics.sql
Adrian Flores Cortes 967ab360bb Initial commit: Workspace v1 with 3-layer architecture
Structure:
- control-plane/: Registries, SIMCO directives, CI/CD templates
- projects/: Gamilit, ERP-Suite, Trading-Platform, Betting-Analytics
- shared/: Libs catalog, knowledge-base

Key features:
- Centralized port, domain, database, and service registries
- 23 SIMCO directives + 6 fundamental principles
- NEXUS agent profiles with delegation rules
- Validation scripts for workspace integrity
- Dockerfiles for all services
- Path aliases for quick reference

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 00:35:19 -06:00

568 lines
18 KiB
SQL

-- =====================================================
-- Seed: educational_content.assessment_rubrics (PROD)
-- Description: Rúbricas de evaluación para ejercicios
-- Environment: PRODUCTION
-- Dependencies: educational_content.modules
-- Order: 07
-- Created: 2025-01-11
-- Version: 1.0
-- =====================================================
--
-- RÚBRICAS INCLUIDAS:
-- - Comprensión Literal (3 niveles)
-- - Comprensión Inferencial (3 niveles)
-- - Comprensión Crítica (4 niveles)
-- - Producción de Textos (5 niveles)
--
-- TOTAL: 15 rúbricas (criteria)
--
-- IMPORTANTE: Estas rúbricas son usadas para evaluar ejercicios.
-- =====================================================
SET search_path TO educational_content, public;
-- =====================================================
-- INSERT: Rúbricas de Evaluación
-- =====================================================
INSERT INTO educational_content.assessment_rubrics (
id,
name,
description,
rubric_type,
criteria,
scoring_guide,
max_score,
pass_threshold,
is_active,
metadata,
created_at,
updated_at
) VALUES
-- =====================================================
-- MÓDULO 1: COMPRENSIÓN LITERAL
-- =====================================================
(
'80000001-0001-0000-0000-000000000001'::uuid,
'Comprensión Literal - Nivel Básico',
'Rúbrica para evaluar comprensión literal básica: identificación de información explícita.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object(
'name', 'Insuficiente',
'description', 'No identifica información básica del texto',
'score', 0,
'indicators', jsonb_build_array(
'No localiza datos explícitos',
'Confunde información principal'
)
),
'nivel_2', jsonb_build_object(
'name', 'Suficiente',
'description', 'Identifica algunos datos explícitos',
'score', 50,
'indicators', jsonb_build_array(
'Localiza datos básicos',
'Identifica personajes y lugares'
)
),
'nivel_3', jsonb_build_object(
'name', 'Excelente',
'description', 'Identifica toda la información explícita relevante',
'score', 100,
'indicators', jsonb_build_array(
'Localiza todos los datos explícitos',
'Distingue ideas principales de secundarias',
'Comprende la secuencia cronológica'
)
)
),
jsonb_build_object(
'scoring_method', 'levels',
'levels', 3,
'weighted', false
),
100,
60, -- 60% para aprobar
true,
jsonb_build_object(
'module_name', 'MÓDULO 1: Comprensión Literal',
'bloom_level', 'remember',
'created_by', 'seed_script'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000001-0002-0000-0000-000000000002'::uuid,
'Comprensión Literal - Nivel Intermedio',
'Rúbrica para evaluar comprensión literal intermedia: organización y secuenciación.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object(
'name', 'Insuficiente',
'description', 'No puede organizar la información',
'score', 0
),
'nivel_2', jsonb_build_object(
'name', 'Suficiente',
'description', 'Organiza información con ayuda',
'score', 70
),
'nivel_3', jsonb_build_object(
'name', 'Excelente',
'description', 'Organiza y secuencia información de forma autónoma',
'score', 100
)
),
jsonb_build_object(
'scoring_method', 'levels',
'levels', 3
),
100,
70,
true,
jsonb_build_object(
'module_name', 'MÓDULO 1: Comprensión Literal',
'bloom_level', 'understand'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000001-0003-0000-0000-000000000003'::uuid,
'Comprensión Literal - Nivel Avanzado',
'Rúbrica para evaluar comprensión literal avanzada: integración de información múltiple.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object(
'name', 'Insuficiente',
'description', 'No puede integrar información de múltiples fuentes',
'score', 0
),
'nivel_2', jsonb_build_object(
'name', 'Suficiente',
'description', 'Integra información de 2-3 fuentes',
'score', 75
),
'nivel_3', jsonb_build_object(
'name', 'Excelente',
'description', 'Integra y sintetiza información de múltiples fuentes',
'score', 100
)
),
jsonb_build_object(
'scoring_method', 'levels',
'levels', 3
),
100,
75,
true,
jsonb_build_object(
'module_name', 'MÓDULO 1: Comprensión Literal',
'bloom_level', 'apply'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
-- =====================================================
-- MÓDULO 2: COMPRENSIÓN INFERENCIAL
-- =====================================================
(
'80000002-0001-0000-0000-000000000004'::uuid,
'Comprensión Inferencial - Nivel Básico',
'Rúbrica para evaluar inferencias simples y deducciones básicas.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object(
'name', 'Insuficiente',
'description', 'No realiza inferencias',
'score', 0
),
'nivel_2', jsonb_build_object(
'name', 'Suficiente',
'description', 'Realiza inferencias simples',
'score', 65
),
'nivel_3', jsonb_build_object(
'name', 'Excelente',
'description', 'Realiza inferencias precisas y justificadas',
'score', 100
)
),
jsonb_build_object(
'scoring_method', 'levels',
'levels', 3
),
100,
65,
true,
jsonb_build_object(
'module_name', 'MÓDULO 2: Comprensión Inferencial',
'bloom_level', 'understand'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000002-0002-0000-0000-000000000005'::uuid,
'Comprensión Inferencial - Nivel Intermedio',
'Rúbrica para evaluar predicciones y análisis de causa-efecto.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object(
'name', 'Insuficiente',
'description', 'No identifica relaciones causa-efecto',
'score', 0
),
'nivel_2', jsonb_build_object(
'name', 'Suficiente',
'description', 'Identifica algunas relaciones causa-efecto',
'score', 70
),
'nivel_3', jsonb_build_object(
'name', 'Excelente',
'description', 'Analiza relaciones causa-efecto complejas',
'score', 100
)
),
jsonb_build_object(
'scoring_method', 'levels',
'levels', 3
),
100,
70,
true,
jsonb_build_object(
'module_name', 'MÓDULO 2: Comprensión Inferencial',
'bloom_level', 'analyze'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000002-0003-0000-0000-000000000006'::uuid,
'Comprensión Inferencial - Nivel Avanzado',
'Rúbrica para evaluar interpretación de intenciones y lenguaje figurado.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object(
'name', 'Insuficiente',
'description', 'No interpreta lenguaje figurado',
'score', 0
),
'nivel_2', jsonb_build_object(
'name', 'Suficiente',
'description', 'Interpreta lenguaje figurado simple',
'score', 75
),
'nivel_3', jsonb_build_object(
'name', 'Excelente',
'description', 'Interpreta intenciones y lenguaje figurado complejo',
'score', 100
)
),
jsonb_build_object(
'scoring_method', 'levels',
'levels', 3
),
100,
75,
true,
jsonb_build_object(
'module_name', 'MÓDULO 2: Comprensión Inferencial',
'bloom_level', 'analyze'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
-- =====================================================
-- MÓDULO 3: COMPRENSIÓN CRÍTICA
-- =====================================================
(
'80000003-0001-0000-0000-000000000007'::uuid,
'Comprensión Crítica - Nivel 1: Análisis',
'Rúbrica para evaluar análisis crítico de textos.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Insuficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Básico', 'score', 50),
'nivel_3', jsonb_build_object('name', 'Competente', 'score', 75),
'nivel_4', jsonb_build_object('name', 'Excelente', 'score', 100,
'description', 'Análisis crítico profundo y fundamentado')
),
jsonb_build_object('scoring_method', 'levels', 'levels', 4),
100,
65,
true,
jsonb_build_object(
'module_name', 'MÓDULO 3: Comprensión Crítica',
'bloom_level', 'analyze'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000003-0002-0000-0000-000000000008'::uuid,
'Comprensión Crítica - Nivel 2: Evaluación',
'Rúbrica para evaluar juicios y valoraciones fundamentadas.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Insuficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Básico', 'score', 55),
'nivel_3', jsonb_build_object('name', 'Competente', 'score', 75),
'nivel_4', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 4),
100,
70,
true,
jsonb_build_object(
'module_name', 'MÓDULO 3: Comprensión Crítica',
'bloom_level', 'evaluate'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000003-0003-0000-0000-000000000009'::uuid,
'Comprensión Crítica - Nivel 3: Argumentación',
'Rúbrica para evaluar construcción de argumentos sólidos.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Insuficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Básico', 'score', 60),
'nivel_3', jsonb_build_object('name', 'Competente', 'score', 80),
'nivel_4', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 4),
100,
75,
true,
jsonb_build_object(
'module_name', 'MÓDULO 3: Comprensión Crítica',
'bloom_level', 'evaluate'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000003-0004-0000-0000-000000000010'::uuid,
'Comprensión Crítica - Nivel 4: Síntesis',
'Rúbrica para evaluar síntesis y propuestas creativas.',
'holistic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Insuficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Básico', 'score', 60),
'nivel_3', jsonb_build_object('name', 'Competente', 'score', 80),
'nivel_4', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 4),
100,
75,
true,
jsonb_build_object(
'module_name', 'MÓDULO 3: Comprensión Crítica',
'bloom_level', 'create'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
-- =====================================================
-- MÓDULO 5: PRODUCCIÓN DE TEXTOS
-- =====================================================
(
'80000005-0001-0000-0000-000000000011'::uuid,
'Producción de Textos - Nivel 1: Estructura',
'Rúbrica para evaluar estructura y organización textual.',
'analytic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Deficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Insuficiente', 'score', 40),
'nivel_3', jsonb_build_object('name', 'Aceptable', 'score', 60),
'nivel_4', jsonb_build_object('name', 'Bueno', 'score', 80),
'nivel_5', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 5),
100,
60,
true,
jsonb_build_object(
'module_name', 'MÓDULO 5: Producción de Textos',
'bloom_level', 'create',
'criteria_focus', 'structure'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000005-0002-0000-0000-000000000012'::uuid,
'Producción de Textos - Nivel 2: Contenido',
'Rúbrica para evaluar calidad y relevancia del contenido.',
'analytic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Deficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Insuficiente', 'score', 40),
'nivel_3', jsonb_build_object('name', 'Aceptable', 'score', 65),
'nivel_4', jsonb_build_object('name', 'Bueno', 'score', 85),
'nivel_5', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 5),
100,
65,
true,
jsonb_build_object(
'module_name', 'MÓDULO 5: Producción de Textos',
'bloom_level', 'create',
'criteria_focus', 'content'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000005-0003-0000-0000-000000000013'::uuid,
'Producción de Textos - Nivel 3: Lenguaje',
'Rúbrica para evaluar uso del lenguaje y vocabulario.',
'analytic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Deficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Insuficiente', 'score', 45),
'nivel_3', jsonb_build_object('name', 'Aceptable', 'score', 65),
'nivel_4', jsonb_build_object('name', 'Bueno', 'score', 85),
'nivel_5', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 5),
100,
65,
true,
jsonb_build_object(
'module_name', 'MÓDULO 5: Producción de Textos',
'bloom_level', 'create',
'criteria_focus', 'language'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000005-0004-0000-0000-000000000014'::uuid,
'Producción de Textos - Nivel 4: Coherencia',
'Rúbrica para evaluar coherencia y cohesión textual.',
'analytic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Deficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Insuficiente', 'score', 50),
'nivel_3', jsonb_build_object('name', 'Aceptable', 'score', 70),
'nivel_4', jsonb_build_object('name', 'Bueno', 'score', 85),
'nivel_5', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 5),
100,
70,
true,
jsonb_build_object(
'module_name', 'MÓDULO 5: Producción de Textos',
'bloom_level', 'create',
'criteria_focus', 'coherence'
),
gamilit.now_mexico(),
gamilit.now_mexico()
),
(
'80000005-0005-0000-0000-000000000015'::uuid,
'Producción de Textos - Nivel 5: Creatividad',
'Rúbrica para evaluar originalidad y creatividad.',
'analytic',
jsonb_build_object(
'nivel_1', jsonb_build_object('name', 'Deficiente', 'score', 0),
'nivel_2', jsonb_build_object('name', 'Insuficiente', 'score', 50),
'nivel_3', jsonb_build_object('name', 'Aceptable', 'score', 70),
'nivel_4', jsonb_build_object('name', 'Bueno', 'score', 90),
'nivel_5', jsonb_build_object('name', 'Excelente', 'score', 100)
),
jsonb_build_object('scoring_method', 'levels', 'levels', 5),
100,
70,
true,
jsonb_build_object(
'module_name', 'MÓDULO 5: Producción de Textos',
'bloom_level', 'create',
'criteria_focus', 'creativity'
),
gamilit.now_mexico(),
gamilit.now_mexico()
)
ON CONFLICT (id) DO UPDATE SET
name = EXCLUDED.name,
description = EXCLUDED.description,
criteria = EXCLUDED.criteria,
scoring_guide = EXCLUDED.scoring_guide,
max_score = EXCLUDED.max_score,
pass_threshold = EXCLUDED.pass_threshold,
is_active = EXCLUDED.is_active,
metadata = EXCLUDED.metadata,
updated_at = gamilit.now_mexico();
-- =====================================================
-- Verification Query
-- =====================================================
DO $$
DECLARE
rubric_count INTEGER;
literal_count INTEGER;
inferencial_count INTEGER;
critica_count INTEGER;
produccion_count INTEGER;
BEGIN
SELECT COUNT(*) INTO rubric_count
FROM educational_content.assessment_rubrics;
SELECT COUNT(*) INTO literal_count
FROM educational_content.assessment_rubrics
WHERE metadata->>'module_name' LIKE '%Comprensión Literal%';
SELECT COUNT(*) INTO inferencial_count
FROM educational_content.assessment_rubrics
WHERE metadata->>'module_name' LIKE '%Comprensión Inferencial%';
SELECT COUNT(*) INTO critica_count
FROM educational_content.assessment_rubrics
WHERE metadata->>'module_name' LIKE '%Comprensión Crítica%';
SELECT COUNT(*) INTO produccion_count
FROM educational_content.assessment_rubrics
WHERE metadata->>'module_name' LIKE '%Producción de Textos%';
RAISE NOTICE '========================================';
RAISE NOTICE 'RÚBRICAS DE EVALUACIÓN CREADAS';
RAISE NOTICE '========================================';
RAISE NOTICE 'Total rúbricas: %', rubric_count;
RAISE NOTICE ' - Comprensión Literal: %', literal_count;
RAISE NOTICE ' - Comprensión Inferencial: %', inferencial_count;
RAISE NOTICE ' - Comprensión Crítica: %', critica_count;
RAISE NOTICE ' - Producción de Textos: %', produccion_count;
RAISE NOTICE '========================================';
IF rubric_count = 15 THEN
RAISE NOTICE '✓ Todas las rúbricas fueron creadas correctamente';
ELSE
RAISE WARNING '⚠ Se esperaban 15 rúbricas, se crearon %', rubric_count;
END IF;
END $$;