El modo agente de GitHub Copilot en VSCode (especialmente en su versión gratuita con límites de uso) tiene características muy específicas que lo diferencian de otros asistentes:

  1. Acceso al contexto del workspace: Puede leer archivos, entender la estructura del proyecto y modificar múltiples archivos de forma coordinada.
  2. Ejecución de comandos de terminal: Puede crear carpetas, instalar dependencias y ejecutar la app.
  3. Iteración contextual: Recuerda la conversación dentro de la sesión y puede referenciar archivos específicos.
  4. Modo “Ask” vs “Edit” vs “Agent”: El modo agente es el más potente porque puede planificar y ejecutar múltiples pasos.

A continuación, presento una secuencia de prompts optimizados específicamente para el modo agente de VSCode, diseñados para que sus estudiantes desarrollen la App de Diseño Experimental de forma profesional, aprovechando al máximo las capacidades del agente.


Secuencia de Prompts para el Modo Agente de VSCode — App de Diseño Experimental

Instrucciones Previas para el Estudiante

Antes de iniciar, el estudiante debe: 1. Abrir VSCode y crear una carpeta vacía llamada app_diseno_experimental. 2. Abrir esa carpeta en VSCode (File > Open Folder). 3. Abrir el chat de GitHub Copilot (ícono de Copilot en la barra lateral o Ctrl+Alt+I). 4. Seleccionar el modo agente (no “Ask” ni “Edit”). 5. Tener Python 3.10+ instalado y disponible en el PATH.


FASE 1: Inicialización del Proyecto

Prompt 1. Creación de la estructura base del proyecto

Actúa como un Ingeniero de Software Senior especializado en Python y Streamlit.

Necesito crear un proyecto profesional para una aplicación web de Diseño Experimental en Streamlit.

Por favor:
1. Crea la siguiente estructura de carpetas y archivos:
   - app.py (archivo principal de navegación)
   - pages/ (carpeta para las páginas de cada diseño)
   - utils/ (carpeta para funciones reutilizables)
   - data/ (carpeta para datasets de ejemplo)
   - assets/ (carpeta para imágenes y recursos)
   - exports/ (carpeta para archivos generados)
   - tests/ (carpeta para pruebas unitarias con pytest)
   - requirements.txt
   - README.md
   - .gitignore
   - pyproject.toml

2. En requirements.txt incluye: streamlit, pandas, numpy, scipy, statsmodels, matplotlib, plotly, kaleido, openpyxl, xlsxwriter, pingouin, pytest

3. En .gitignore incluye patrones para: __pycache__, .venv, *.pyc, .streamlit/, exports/*, .env

4. En README.md incluye: título "App de Diseño Experimental con Streamlit", descripción breve, objetivo académico, lista de módulos (DCA, DBCA, DCL, DPD, Factoriales, RSM), y una sección de instalación.

5. Crea un entorno virtual llamado .venv usando python -m venv .venv

6. Activa el entorno virtual e instala las dependencias desde requirements.txt

7. Verifica que todo se instaló correctamente ejecutando: python -c "import streamlit; print(streamlit.__version__)"

Responde con los comandos ejecutados y confirma que la estructura está lista.

Prompt 2. Configuración de la página principal con navegación moderna

Ahora necesito que crees el archivo app.py como página principal de la aplicación.

Requisitos:
1. Usa st.set_page_config con layout="wide", page_title="App de Diseño Experimental", page_icon="🧪"

2. Configura un tema visual profesional con colores neutros (primario: #1f77b4, fondo: #ffffff, secundario: #f0f2f6)

3. Muestra un título principal: "App de Diseño Experimental"

4. Incluye una sección de bienvenida que explique:
   - Propósito de la app (apoyar el aprendizaje de diseños experimentales)
   - Lista de módulos disponibles: DCA, DBCA, DCL, DPD, Factoriales, RSM
   - Advertencia académica: "Esta app apoya el aprendizaje, pero el estudiante debe interpretar los resultados y verificar supuestos"

5. Usa st.sidebar para mostrar información sobre el proyecto y el autor

6. El código debe estar completamente documentado con docstrings y comentarios en español

7. No incluyas todavía los cálculos estadísticos, solo la estructura de navegación

Crea el archivo app.py con este contenido.

FASE 2: Módulo DCA (Diseño Completamente al Azar)

Prompt 3. Desarrollo del módulo DCA con dataset de ejemplo

Ahora desarrolla el primer módulo funcional: pages/01_DCA.py

Requisitos funcionales:
1. Permite cargar un archivo CSV o Excel usando st.file_uploader
2. Si no se carga archivo, usa un dataset de ejemplo embebido (rendimiento de maíz por variedad, con 4 variedades y 5 réplicas)
3. Permite seleccionar la columna de tratamiento y la columna de respuesta
4. Muestra la tabla de datos con st.dataframe
5. Ajusta un modelo ANOVA de un factor usando statsmodels.formula.api.ols
6. Muestra la tabla ANOVA con st.dataframe (incluyendo sumas de cuadrados, grados de libertad, F, p-valor)
7. Calcula y muestra las medias por tratamiento
8. Genera un boxplot de la respuesta por tratamiento usando plotly
9. Si el p-valor del tratamiento es < 0.05, realiza una prueba de Tukey HSD y muestra los resultados
10. Incluye una interpretación automática en lenguaje sencillo usando st.info o st.success

Requisitos técnicos:
- El código debe estar completamente documentado
- Usa try-except para manejar errores gracefully
- Incluye comentarios explicando cada paso estadístico
- Usa st.cache_data para evitar recálculos innecesarios

Crea el archivo pages/01_DCA.py con este contenido.

Prompt 4. Refactorización del DCA hacia utils/

El módulo DCA funciona, pero ahora necesito refactorizarlo para hacerlo más profesional y reutilizable.

Por favor:
1. Crea el archivo utils/anova_utils.py con las siguientes funciones:
   - cargar_datos(archivo): carga CSV o Excel y devuelve un DataFrame
   - validar_columnas(df, col_tratamiento, col_respuesta): valida que las columnas existan y sean del tipo correcto
   - ajustar_anova_un_factor(df, col_tratamiento, col_respuesta): ajusta el modelo ANOVA y devuelve el objeto del modelo
   - generar_tabla_anova(modelo): extrae y devuelve la tabla ANOVA como DataFrame
   - calcular_medias(df, col_tratamiento, col_respuesta): calcula medias por tratamiento
   - prueba_tukey(df, col_tratamiento, col_respuesta): realiza la prueba de Tukey HSD
   - generar_interpretacion(tabla_anova): genera un texto de interpretación automática

2. Cada función debe tener:
   - Type hints completos
   - Docstrings detallados (estilo Google)
   - Manejo de errores con try-except
   - Comentarios explicativos

3. Luego modifica pages/01_DCA.py para que importe y use estas funciones desde utils/anova_utils.py

4. Verifica que el módulo DCA sigue funcionando correctamente después de la refactorización

Crea utils/anova_utils.py y actualiza pages/01_DCA.py.

Prompt 5. Pruebas unitarias para el módulo DCA

Ahora necesito crear pruebas unitarias para las funciones de utils/anova_utils.py usando pytest.

Por favor:
1. Crea el archivo tests/test_anova_utils.py

2. Incluye pruebas para:
   - test_cargar_datos_csv: crea un CSV temporal, cárgalo y verifica que el DataFrame tiene las columnas correctas
   - test_validar_columnas_exitoso: valida columnas que existen
   - test_validar_columnas_fallido: intenta validar columnas que no existen y verifica que lance una excepción
   - test_ajustar_anova_un_factor: crea un DataFrame sintético con 3 tratamientos y 4 réplicas, ajusta el ANOVA y verifica que el modelo tiene los atributos correctos
   - test_calcular_medias: verifica que las medias calculadas son correctas
   - test_prueba_tukey: verifica que la prueba de Tukey devuelve un DataFrame con las columnas esperadas

3. Cada prueba debe usar datos sintéticos generados con numpy o pandas

4. Incluye fixtures de pytest para reutilizar datos de prueba

5. Ejecuta las pruebas con: pytest tests/test_anova_utils.py -v

6. Reporta cuántas pruebas pasaron y cuántas fallaron

Crea tests/test_anova_utils.py y ejecuta las pruebas.

FASE 3: Módulo DBCA (Diseño en Bloques Completamente al Azar)

Prompt 6. Desarrollo del módulo DBCA

Desarrolla el módulo para Diseño en Bloques Completamente al Azar: pages/02_DBCA.py

Requisitos funcionales:
1. Permite cargar CSV o Excel
2. Si no se carga archivo, usa un dataset de ejemplo embebido (rendimiento de sorgo con gradientes de suelo, 3 tratamientos, 4 bloques)
3. Permite seleccionar: variable de bloques, variable de tratamientos, variable de respuesta
4. Muestra la tabla de datos
5. Ajusta el modelo: respuesta ~ C(tratamiento) + C(bloque) usando statsmodels
6. Muestra la tabla ANOVA
7. Muestra medias por tratamiento y por bloque
8. Genera boxplots de la respuesta por tratamiento y por bloque
9. Realiza prueba de Tukey para tratamientos (si p-valor < 0.05)
10. Incluye interpretación automática

Requisitos técnicos:
- Reutiliza funciones de utils/anova_utils.py cuando sea posible
- Si necesitas funciones adicionales para el DBCA, agrégalas a utils/anova_utils.py
- Documenta completamente el código
- Usa st.cache_data para el ajuste del modelo

Crea pages/02_DBCA.py y actualiza utils/anova_utils.py si es necesario.

FASE 4: Módulo DCL (Diseño en Cuadro Latino)

Prompt 7. Desarrollo del módulo DCL

Desarrolla el módulo para Diseño en Cuadro Latino: pages/03_DCL.py

Requisitos funcionales:
1. Permite cargar CSV o Excel
2. Si no se carga archivo, usa un dataset de ejemplo embebido (experimento de mecanización agrícola con 5 tratamientos, 5 filas, 5 columnas)
3. Permite seleccionar: variable fila, variable columna, variable tratamiento, variable respuesta
4. Valida que el diseño tenga estructura de cuadro latino (mismo número de niveles en filas, columnas y tratamientos)
5. Muestra una tabla resumen del diseño
6. Ajusta el modelo: respuesta ~ C(fila) + C(columna) + C(tratamiento)
7. Muestra la tabla ANOVA
8. Muestra medias por tratamiento
9. Genera gráfica de medias con intervalos de confianza
10. Realiza prueba de Tukey para tratamientos
11. Incluye una explicación pedagógica de qué controla cada factor (fila, columna, tratamiento)

Requisitos técnicos:
- Agrega funciones necesarias a utils/anova_utils.py
- Valida la estructura del cuadro latino antes de ajustar el modelo
- Muestra mensajes de error claros si la validación falla
- Documenta completamente

Crea pages/03_DCL.py y actualiza utils/anova_utils.py si es necesario.

FASE 5: Módulo DPD (Diseño en Parcelas Divididas)

Prompt 8. Desarrollo del módulo DPD

Desarrolla el módulo para Diseño en Parcelas Divididas: pages/04_DPD.py

Requisitos funcionales:
1. Permite cargar CSV o Excel
2. Si no se carga archivo, usa un dataset de ejemplo embebido (experimento de riego × dosis de nitrógeno en maíz, con bloques)
3. Permite seleccionar: variable de bloques, factor principal (parcelas), factor secundario (subparcelas), variable respuesta
4. Muestra la estructura del diseño
5. Ajusta un modelo para parcelas divididas diferenciando:
   - Error de parcela principal
   - Error de subparcela
6. Muestra la tabla ANOVA con ambos errores
7. Muestra medias por factor principal, factor secundario y su interacción
8. Genera gráfica de interacción usando plotly
9. Incluye interpretación automática

Requisitos técnicos:
- Explica cuidadosamente las limitaciones del análisis de parcelas divididas en Python con statsmodels
- Si statsmodels no maneja bien los errores anidados, documenta la limitación y sugiere cómo validar con R
- Agrega funciones necesarias a utils/anova_utils.py
- Documenta completamente

Crea pages/04_DPD.py y actualiza utils/anova_utils.py si es necesario.

FASE 6: Módulo de Diseños Factoriales

Prompt 9. Desarrollo del módulo de factoriales

Desarrolla el módulo para diseños factoriales: pages/05_Factoriales.py

Requisitos funcionales:
1. Permite cargar CSV o Excel
2. Si no se carga archivo, usa un dataset de ejemplo embebido (experimento de temperatura × tiempo × concentración en proceso agroindustrial)
3. Permite seleccionar la variable respuesta y dos o más factores
4. Construye automáticamente la fórmula del modelo con todas las interacciones (ej: Y ~ A * B * C)
5. Ajusta el modelo usando statsmodels
6. Muestra la tabla ANOVA con efectos principales e interacciones
7. Muestra efectos principales y interacciones
8. Genera gráficas de interacción usando plotly
9. Incluye interpretación automática

Requisitos técnicos:
- Construye la fórmula dinámicamente según el número de factores seleccionados
- Agrega funciones necesarias a utils/anova_utils.py
- Documenta completamente

Crea pages/05_Factoriales.py y actualiza utils/anova_utils.py si es necesario.

FASE 7: Módulo RSM (Metodología de Superficie de Respuesta)

Prompt 10. Desarrollo del módulo RSM completo

Desarrolla el módulo de Metodología de Superficie de Respuesta: pages/06_RSM.py

Este módulo debe tener exactamente estas siete secciones usando st.tabs:

1. Modelo de primer orden:
   - Permite cargar datos con variables codificadas x1, x2 y respuesta y
   - Ajusta un modelo lineal: y ~ x1 + x2
   - Muestra coeficientes, R², p-valores
   - Interpreta el modelo

2. Trayectoria de máximo ascenso:
   - Calcula la dirección de máximo ascenso a partir de los coeficientes lineales
   - Muestra una tabla con los puntos de la trayectoria
   - Grafica la trayectoria

3. Modelo de segundo orden:
   - Ajusta un modelo cuadrático: y ~ x1 + x2 + x1² + x2² + x1*x2
   - Muestra coeficientes, R², p-valores
   - Interpreta el modelo

4. Punto estacionario:
   - Calcula el punto estacionario usando la matriz B (términos cuadráticos) y el vector b (términos lineales)
   - Clasifica el punto estacionario (máximo, mínimo, punto de silla) usando los eigenvalores de B
   - Muestra el punto estacionario y su clasificación

5. Superficie 3D:
   - Genera una malla de predicción
   - Muestra la superficie 3D usando plotly.graph_objects

6. Curvas de nivel:
   - Muestra las curvas de nivel usando plotly

7. Exportación de figuras:
   - Permite exportar la superficie 3D y las curvas de nivel a PNG y PDF usando kaleido

Requisitos técnicos:
- Crea archivos auxiliares en utils/:
  - utils/rsm_coding.py (codificación/decodificación de variables)
  - utils/rsm_models.py (ajuste de modelos)
  - utils/rsm_stationary.py (cálculo del punto estacionario)
  - utils/rsm_mesh.py (generación de mallas)
  - utils/rsm_plots.py (gráficas 3D y contornos)
  - utils/rsm_export.py (exportación de figuras)
- Documenta completamente cada función explicando las fórmulas matemáticas
- Incluye un dataset de ejemplo embebido

Crea pages/06_RSM.py y todos los archivos auxiliares en utils/.

FASE 8: Diagnóstico de Supuestos y Validaciones

Prompt 11. Módulo de diagnóstico de supuestos transversal

Necesito agregar un módulo de diagnóstico de supuestos que pueda reutilizarse en todos los diseños.

Por favor:
1. Crea utils/diagnostics_utils.py con funciones para:
   - calcular_residuos(modelo): extrae los residuos del modelo
   - graficar_residuos_vs_ajustados(residuos, ajustados): genera gráfica de residuos vs valores ajustados
   - graficar_qq_plot(residuos): genera un QQ-plot
   - prueba_shapiro_wilk(residuos): realiza la prueba de Shapiro-Wilk para normalidad
   - prueba_levene(df, col_grupo, col_respuesta): realiza la prueba de Levene para homogeneidad de varianzas
   - generar_diagnostico_completo(modelo, df, col_grupo, col_respuesta): integra todas las funciones anteriores

2. Cada función debe:
   - Tener type hints completos
   - Tener docstrings detallados
   - Devolver tanto las gráficas (plotly) como los resultados numéricos (DataFrame)
   - Incluir interpretación automática de los p-valores

3. Crea un componente reutilizable components/diagnostico.py que pueda insertarse en cualquier módulo usando st.expander

4. Agrega este componente a pages/01_DCA.py, pages/02_DBCA.py, pages/03_DCL.py y pages/05_Factoriales.py

Crea utils/diagnostics_utils.py, components/diagnostico.py y actualiza los módulos correspondientes.

Prompt 12. Validaciones y mensajes de error amigables

Necesito mejorar la robustez de la app agregando validaciones completas.

Por favor:
1. Crea utils/validation_utils.py con funciones para:
   - validar_archivo_vacio(archivo): verifica que el archivo no esté vacío
   - validar_columnas_seleccionadas(**kwargs): verifica que se hayan seleccionado todas las columnas necesarias
   - validar_variable_respuesta_numerica(df, col_respuesta): verifica que la variable de respuesta sea numérica
   - validar_diseño_balanceado(df, col_tratamiento): verifica que el diseño esté balanceado
   - validar_datos_faltantes(df): verifica que no haya datos faltantes
   - validar_nombres_columnas(df): verifica que los nombres de columnas no tengan espacios ni caracteres especiales

2. Cada función debe:
   - Devolver un booleano indicando si la validación pasó
   - Devolver un mensaje de error claro y pedagógico si la validación falla
   - Usar st.error o st.warning para mostrar los mensajes en la app

3. Integra estas validaciones en todos los módulos (DCA, DBCA, DCL, DPD, Factoriales, RSM)

4. Los mensajes de error deben ser en español y explicar claramente qué debe corregir el usuario

Crea utils/validation_utils.py y actualiza todos los módulos para usar estas validaciones.

FASE 9: Exportación de Resultados

Prompt 13. Funcionalidad de exportación completa

Necesito agregar funcionalidad de exportación a todos los módulos.

Por favor:
1. Crea utils/export_utils.py con funciones para:
   - exportar_tabla_anova_excel(tabla_anova, nombre_archivo): exporta la tabla ANOVA a Excel
   - exportar_medias_excel(df_medias, nombre_archivo): exporta las medias a Excel
   - exportar_tukey_excel(df_tukey, nombre_archivo): exporta los resultados de Tukey a Excel
   - exportar_figura_png(fig, nombre_archivo): exporta una figura de plotly a PNG usando kaleido
   - exportar_figura_pdf(fig, nombre_archivo): exporta una figura de plotly a PDF usando kaleido
   - exportar_reporte_markdown(resultados, nombre_archivo): genera un reporte en Markdown con los resultados

2. Cada función debe:
   - Usar BytesIO para generar archivos en memoria
   - Devolver un objeto que pueda ser usado con st.download_button
   - Incluir formato condicional en los archivos Excel (ej: resaltar p-valores < 0.05 en rojo)

3. Agrega botones de descarga en todos los módulos para:
   - Tabla ANOVA
   - Medias por tratamiento
   - Resultados de Tukey (si aplica)
   - Figuras principales (PNG y PDF)
   - Reporte completo en Markdown

Crea utils/export_utils.py y actualiza todos los módulos para incluir los botones de descarga.

FASE 10: Documentación y Despliegue

Prompt 14. README completo y profesional

Necesito que actualices el README.md para que sea completo y profesional.

Por favor incluye:
1. Título del proyecto con badge de versión
2. Descripción general del proyecto
3. Objetivo académico
4. Lista de módulos implementados (DCA, DBCA, DCL, DPD, Factoriales, RSM)
5. Tecnologías usadas (Python, Streamlit, pandas, statsmodels, plotly, etc.)
6. Estructura del proyecto (árbol de carpetas)
7. Instalación paso a paso:
   - Clonar el repositorio
   - Crear entorno virtual
   - Activar entorno virtual
   - Instalar dependencias
   - Ejecutar la app
8. Ejemplos de uso con capturas de pantalla (placeholders)
9. Limitaciones actuales
10. Posibles mejoras futuras
11. Créditos del grupo
12. Referencias bibliográficas (Montgomery, Gutiérrez y De la Vara, etc.)
13. Licencia

El tono debe ser académico, claro y profesional.

Actualiza README.md con este contenido.

Prompt 15. Preparación para GitHub y despliegue

Necesito preparar el proyecto para subirlo a GitHub y desplegarlo en Streamlit Community Cloud.

Por favor:
1. Verifica que .gitignore esté completo y correcto

2. Dame los comandos de Git para:
   - Inicializar el repositorio: git init
   - Agregar todos los archivos: git add .
   - Hacer el primer commit: git commit -m "Initial commit"
   - Crear un repositorio remoto en GitHub (instrucciones manuales)
   - Conectar el repositorio local con el remoto: git remote add origin <url>
   - Hacer push: git push -u origin main

3. Explica cómo desplegar la app en Streamlit Community Cloud:
   - Requisitos previos (cuenta de GitHub, cuenta de Streamlit Cloud)
   - Pasos para conectar el repositorio
   - Selección del archivo principal (app.py)
   - Verificación del requirements.txt
   - Posibles errores comunes y cómo solucionarlos

4. Si hay errores de dependencias en Streamlit Cloud (especialmente con kaleido o scipy), explica cómo solucionarlos

Ejecuta los comandos de Git necesarios y proporciona las instrucciones de despliegue.

FASE 11: Sustentación y Revisión Final

Prompt 16. Preparación de la sustentación

Necesito preparar la sustentación final del proyecto.

Por favor organiza un guion para una presentación de 15 minutos con esta estructura:

1. Presentación del grupo (1 min)
2. Problema académico que resuelve la app (2 min)
3. Diseños experimentales implementados (2 min)
4. Estructura técnica del proyecto (muestra el árbol de carpetas) (2 min)
5. Demostración en vivo de la app (3 min):
   - Cargar un dataset
   - Analizar un DBCA
   - Mostrar diagnóstico de supuestos
   - Exportar resultados
6. Ejemplo de análisis completo con interpretación estadística (2 min)
7. Dificultades encontradas y cómo se resolvieron (1 min)
8. Mejoras futuras (1 min)
9. Conclusión (1 min)

Divide el guion entre los integrantes del grupo (asume 3 integrantes).

Incluye qué debe decir cada integrante y qué debe mostrar en la app.

Genera el guion completo en formato Markdown.

Prompt 17. Revisión final antes de entregar

Actúa como un evaluador experto del proyecto final.

Voy a pegarte la siguiente información:
1. La estructura de carpetas del proyecto
2. El contenido del README.md
3. El archivo requirements.txt
4. El código principal de app.py
5. El código de uno de los módulos (por ejemplo, pages/01_DCA.py)
6. El enlace al repositorio de GitHub (si lo tengo)
7. El enlace a la app desplegada (si lo tengo)

Por favor revisa:
- Organización del proyecto
- Calidad del código (PEP-8, type hints, docstrings)
- Modularidad y reutilización de funciones
- Claridad de los comentarios
- Correctitud estadística de los análisis
- Funcionamiento en Streamlit
- Posibles errores o mejoras

Devuélveme una lista priorizada de correcciones y mejoras necesarias antes de entregar.

[El estudiante pegará aquí la información solicitada]

FASE 12: Prompts de Emergencia para Errores Comunes

Prompt 18. Error de importación

Me aparece este error al ejecutar la app:

ModuleNotFoundError: No module named 'utils.anova_utils'

Esta es mi estructura de carpetas:
[El estudiante pegará aquí la estructura]

Este es el archivo desde donde intento importar:
[El estudiante pegará aquí el código]

Por favor:
1. Diagnostica el problema
2. Explica si necesito agregar archivos __init__.py
3. Explica si debo modificar sys.path
4. Explica si Streamlit está causando el error al cambiar el directorio de trabajo
5. Dame la solución exacta

Corrige el problema.

Prompt 19. Error estadístico en ANOVA

El modelo ANOVA no se ajusta correctamente y me da este error:

[El estudiante pegará aquí el error completo]

Este es mi dataframe (primeras filas):
[El estudiante pegará aquí el dataframe]

Esta es la fórmula que estoy usando:
[El estudiante pegará aquí la fórmula]

Por favor:
1. Diagnostica el problema
2. Explica qué estaba mal desde el punto de vista estadístico
3. Explica qué estaba mal desde el punto de vista de Python
4. Corrige el código
5. Explica cómo evitar este error en el futuro

Corrige el problema.

Prompt 20. Error en Streamlit Cloud

La app funciona perfectamente en mi computador, pero falla en Streamlit Community Cloud con este error:

[El estudiante pegará aquí el error completo]

Este es mi requirements.txt:
[El estudiante pegará aquí el requirements.txt]

Esta es mi estructura de archivos:
[El estudiante pegará aquí la estructura]

Por favor:
1. Diagnostica la causa del error
2. Explica si es un problema de dependencias del sistema (compiladores, librerías C)
3. Explica si es un problema de versión de Python
4. Explica si faltan archivos en el repositorio
5. Dame la solución exacta

Corrige el problema.

Recomendaciones para el Docente

  1. Gestión del Modo Agente Gratuito: El modo agente de GitHub Copilot tiene límites de uso en la versión gratuita. Recomiende a sus estudiantes:

    • Usar el modo agente para tareas complejas (crear estructuras, refactorizar, debuggear)
    • Usar el modo “Ask” para preguntas simples (explicar un concepto, sugerir una mejora)
    • Planificar bien los prompts para no desperdiciar usos del agente
  2. Contexto del Workspace: El modo agente de VSCode tiene acceso a todo el workspace. Aproveche esto pidiendo a los estudiantes que:

    • Mantengan una estructura de carpetas limpia y organizada
    • Usen nombres descriptivos para archivos y funciones
    • Documenten bien el código para que el agente pueda entender el contexto
  3. Iteración y Refinamiento: El modo agente puede iterar sobre el código. Enseñe a los estudiantes a:

    • Probar cada módulo antes de pasar al siguiente
    • Pedir al agente que refactorice y mejore el código gradualmente
    • No intentar construir toda la app de una vez
  4. Bitácora de IA: Insista en que los estudiantes mantengan una bitácora de los prompts usados y las respuestas del agente, tal como lo establece su plan de estudios.

  5. Validación Humana: Recuerde a los estudiantes que el agente puede cometer errores estadísticos o de lógica. Siempre deben verificar los resultados manualmente o con R.