Uso de IA en el trabajo

Crear un informe semanal con IA a partir de registros CSV

Redacta un informe semanal con IA a partir de registros CSV y verifica horas y tareas completadas con Python. Usa una instrucción para separar trabajo completado, en curso, planificado y bloqueado.

Ver el índice

La traducción se ha realizado con IA. Comprueba el código, las unidades y los valores junto con el original. La revisión por hablantes nativos de cada idioma aún no se ha completado. English

Para quién esPara personas que llevan registros diarios breves y quieren usar IA para redactar informes semanales sin perder el control de las horas, los recuentos y los datos.

Preparación
  • Python 3.12
  • Un archivo CSV sencillo que contenga el registro diario de trabajo

01¿Por qué conciliar los números de un informe semanal escrito por IA?

La IA es útil para reorganizar notas de trabajo breves en un texto legible, pero no debe considerarse la fuente de verdad para los cálculos. Un informe semanal puede sonar coherente y, aun así, cambiar un total, contar dos veces una actividad o presentar una tarea planificada como completada. Un flujo más seguro separa la redacción narrativa de la conciliación numérica.

  • Usa el registro de trabajo como fuente factual.
  • Pide a la IA que resuma únicamente lo que aparece en el registro.
  • Calcula las horas y los recuentos de forma independiente a partir de los datos estructurados.
  • Compara el informe de la IA con los totales calculados por separado.
  • Corrige el informe antes de enviarlo o publicarlo.

02Empezar con un pequeño registro de trabajo sintético

El siguiente registro de trabajo es sintético. Cada fila contiene una actividad, las horas dedicadas y si se completó durante la semana. Mantener estos campos estructurados facilita mucho la conciliación posterior.

datetaskhoursstatus
2026-09-14Clean customer CSV2.0completed
2026-09-14Draft import script1.5completed
2026-09-15Test import script2.5completed
2026-09-16Investigate duplicate IDs1.0completed
2026-09-17Update validation rules2.0completed
2026-09-18Prepare user notes1.5in progress

Calculado a mano, el tiempo es 2.0 + 1.5 + 2.5 + 1.0 + 2.0 + 1.5 = 10.5 horas. Cinco de las seis actividades tienen el estado completed, por lo que el número de actividades completadas es 5. La última actividad sigue in progress y no debe contarse como completada.

03Pedir a la IA que redacte a partir del registro, no de su memoria

Pega el registro en un asistente de chat con IA y limita explícitamente la tarea a reorganizar y redactar los datos proporcionados. Pídele también que indique sus totales para poder comprobarlos después.

Petición a la IA: usando únicamente el registro de trabajo que aparece a continuación, redacta un informe semanal breve con tres partes: trabajo completado, trabajo aún en curso y totales semanales. No inventes resultados ni tareas. Indica el total de horas registradas y el número de actividades completadas. Conserva el significado original de las tareas.

Una respuesta típica de la IA podría decir: esta semana se limpiaron los datos de clientes, se redactó y probó un script de importación, se investigaron los ID duplicados y se actualizaron las reglas de validación. Las notas para usuarios siguen en curso. El tiempo total registrado fue de 10.5 horas, con 5 actividades completadas.

04Mantener una copia estructurada para la conciliación

Guarda el mismo ejemplo sintético como work_log.csv con las columnas date, task, hours y status. El script de conciliación debe leer directamente este archivo fuente en lugar de intentar recuperar los números del texto redactado por la IA.

MétricaValor esperado según el registro
Filas6
Horas totales10.5
Actividades completadas5
Actividades en curso1

Esta separación es importante: el CSV es la evidencia y el informe semanal es una presentación de esa evidencia.

05Recalcular horas y recuentos con Python

El siguiente script para Python 3.12 lee work_log.csv, valida los campos obligatorios, suma las horas, cuenta los estados y escribe un informe de conciliación en outputs/weekly_reconciliation.txt. No sobrescribe un directorio outputs existente.

python
from pathlib import Path
import csv

input_path = Path("work_log.csv")
output_dir = Path("outputs")

if output_dir.exists():
    raise SystemExit("outputs already exists; remove or rename it before running again")

if not input_path.exists():
    raise SystemExit("work_log.csv was not found")

required_fields = {"date", "task", "hours", "status"}
rows = []

with input_path.open("r", encoding="utf-8", newline="") as f:
    reader = csv.DictReader(f)

    if reader.fieldnames is None:
        raise SystemExit("CSV has no header")

    missing = required_fields - set(reader.fieldnames)
    if missing:
        raise SystemExit(f"Missing columns: {sorted(missing)}")

    for line_number, row in enumerate(reader, start=2):
        try:
            hours = float(row["hours"])
        except ValueError:
            raise SystemExit(f"Invalid hours value on line {line_number}")

        if hours < 0:
            raise SystemExit(f"Negative hours on line {line_number}")

        status = row["status"].strip().lower()
        if status not in {"completed", "in progress"}:
            raise SystemExit(f"Unexpected status on line {line_number}: {status}")

        rows.append({
            "date": row["date"].strip(),
            "task": row["task"].strip(),
            "hours": hours,
            "status": status,
        })

total_hours = sum(row["hours"] for row in rows)
completed_count = sum(row["status"] == "completed" for row in rows)
in_progress_count = sum(row["status"] == "in progress" for row in rows)

output_dir.mkdir()
report_path = output_dir / "weekly_reconciliation.txt"

report = (
    f"Rows: {len(rows)}\n"
    f"Total hours: {total_hours:.1f}\n"
    f"Completed activities: {completed_count}\n"
    f"In-progress activities: {in_progress_count}\n"
)

report_path.write_text(report, encoding="utf-8")

print(report, end="")
print(f"Saved: {report_path}")

06Comparar el informe de la IA con los valores calculados

En este ejemplo, los valores esperados calculados de forma independiente son 10.5 horas totales y 5 actividades completadas. Compara esos valores con todas las afirmaciones numéricas del borrador generado por la IA.

ComprobaciónResultado del registroBorrador de la IADecisión
Horas totales10.510.5Coincide
Actividades completadas55Coincide
Actividades en curso1Las notas para usuarios siguen en cursoCoherente
  1. Compara cada número del informe de la IA con la salida de conciliación.
  2. Confirma que no se mezclaron tareas completadas y tareas en curso.
  3. Compara la redacción de las tareas con el registro original para comprobar que no se inventaron resultados.
  4. Si el total de la IA es distinto, usa el cálculo del registro estructurado y corrige el texto.

07Errores habituales y límites

  • Sumar los números del informe de la IA en lugar de usar el registro original.
  • Contar todas las filas como completadas aunque algunas sigan en curso.
  • Tratar varias filas sobre el mismo proyecto como una sola tarea sin definir antes esa regla de recuento.
  • Permitir que la IA infiera logros que no están registrados explícitamente.
  • Cambiar la forma de escribir los estados en el registro sin actualizar los valores aceptados por el script.
  • Ignorar filas ausentes, valores de horas no válidos o entradas duplicadas antes de calcular los totales.

Este ejemplo cuenta las actividades completadas por fila. En una organización real, el recuento podría basarse en tickets, entregables, proyectos o hitos, por lo que la regla debe definirse antes de conciliar. El script solo comprueba aritmética y estados simples; no puede determinar si una entrada del registro es verdadera ni si la calidad del trabajo realizado fue suficiente.

Prompt para un informe semanal de trabajo que separa tareas completadas, en curso, planificadas y bloqueadas

Al resumir un registro de trabajo en un informe semanal, es mejor no mezclar en un mismo párrafo tareas con estados diferentes. Pedir secciones separadas para el trabajo completado, el trabajo todavía en curso, los planes de la semana siguiente y los asuntos que bloquean el avance facilita la comparación con el texto original. Una celda vacía de un CSV puede tener un significado distinto de un valor real de 0, por lo que conviene restringir que la IA interprete automáticamente los espacios vacíos como cero. Además, pedir que cada elemento resumido incluya el número de fila o el identificador del registro original facilita encontrar omisiones o duplicados al contrastar después horas y recuentos con Python.

Instrucción
Usa el registro de trabajo CSV siguiente para crear un borrador de informe semanal de trabajo.

Estructura del informe:
1. Trabajo completado
2. Trabajo en curso
3. Planes para la próxima semana
4. Asuntos bloqueantes o elementos que requieren confirmación

Reglas:
- Después de cada elemento, incluye el número de fila del texto original o el identificador de fila proporcionado que lo respalda.
- No cambies arbitrariamente trabajo completado por trabajo en curso ni al contrario.
- Si los planes de la próxima semana no aparecen en el texto original, no inventes nuevos planes como hechos. Escribe «No hay información sobre planes en el texto original».
- Si no se registra ningún asunto bloqueante, no concluyas «0 asuntos bloqueantes». Escribe «No hay asuntos bloqueantes registrados».
- No conviertas automáticamente las celdas vacías del CSV en el número 0 ni en «ninguno».
- Mantén los valores originales de horas, recuentos, tareas completadas y otras cifras. Si es necesario realizar un cálculo, muestra también la fórmula.
- Al combinar tareas de filas diferentes, comprueba que no haya cambiado el significado original.
- Al final, enumera por separado los elementos numéricos que deben contrastarse con Python bajo el encabezado «Elementos para verificar».

Registro de ejecución y verificación

ChatGPT Python tool · Python 3.x · standard library only

  • El script terminó correctamente con el work log sintético exacto.
  • La salida informó Rows: 6.
  • La salida informó Total hours: 10.5, coincidiendo con 2.0 + 1.5 + 2.5 + 1.0 + 2.0 + 1.5.
  • La salida informó Completed activities: 5.
  • La salida informó In-progress activities: 1.
  • Estos valores coinciden con la tabla expected-values y la tabla de comparación AI-report del artículo.
  • El script creó outputs/weekly_reconciliation.txt con exactamente las cuatro métricas de reconciliation indicadas.
  • work_log.csv permaneció sin cambios después de la ejecución.
  • Una segunda ejecución se detuvo con 'outputs already exists; remove or rename it before running again', confirmando el comportamiento de no sobrescritura indicado.
Límites de la verificación
  • El script verifica las horas registradas y los recuentos de status, pero no puede determinar si las entradas originales del work-log son de hecho completas o correctas.
  • La regla de counting trata cada CSV row como una activity, tal como se indica en el artículo.
  • El entorno de ejecución de Python emitió una advertencia no relacionada del calentamiento del entorno de hojas de cálculo; no afectó al script del artículo ni a su salida.

Fuentes de referencia

Las explicaciones y los ejemplos son de elaboración propia. Puedes consultar los comportamientos y conceptos relacionados en las siguientes fuentes oficiales.