Control Previo — Órdenes de Servicio y Órdenes de Compra MINEDU
Enrutador MINEDU — qué skill manda en cada expediente
La norma y el criterio los pone la skill de dominio. El formato del Excel lo pone la skill de salida. Ninguna reemplaza a otra ni borra las normas de otra: se suman.
| Tipo de expediente |
Dominio: norma y criterio |
Salida: formato del informe |
| Orden de Servicio y Orden de Compra |
control-previo-ordenes |
informe-control-previo-os-oc — siete hojas, Protocolo v1.1 |
| Rendición de viáticos |
control-previo-viaticos-v3 |
la propia skill — tres hojas, formato oficial v7.0 |
| Encargos a personal |
control-previo-encargos |
informe-control-previo-minedu — dos hojas |
| Caja chica |
control-previo-caja-chica |
informe-control-previo-minedu — dos hojas |
| Convenios, servicios básicos, tasas, sentencias judiciales |
criterio de la especialidad |
informe-control-previo-minedu — dos hojas |
Transversales, se aplican encima de cualquiera de las anteriores: deteccion-firmas-expedientes y coherencia-documental-expedientes.
Regla de desempate: si dos skills de salida pudieran activarse, manda la de la fila del tipo de expediente. Viáticos nunca usa una salida ajena.
Versión 10.0 — generada el 10-09-2026 (hora de Lima)
Ver carpeta versiones/ para el detalle de cambios de cada versión.
Marco normativo aplicable
- Pautas operativas: "PAUTAS PARA LA REMISIÓN DE EXPEDIENTES DE PAGO – REVISIÓN CONTROL PREVIO" (MINEDU, vigentes).
- Ley 32069 — Ley General de Contrataciones Públicas y su Reglamento.
- Ley 27444 — Ley del Procedimiento Administrativo General (jerárquicamente superior a directivas internas).
- TUO Ley del Impuesto a la Renta, Art. 33 inciso a) — base de no retención de cuarta categoría.
- Régimen de detracciones SUNAT (cuando el servicio esté afecto).
- Pautas para los Contratos Menores en el MINEDU – UE 024, 026 y 116.
PRINCIPIO RECTOR (Ley 27444): Si el expediente está completo conforme a las pautas, no se puede detener el pago por errores formales o información accesoria que no corresponda al expediente. La Ley 27444 prevalece sobre directivas internas. Prefiere NO observar antes que observar incorrectamente.
v10.0 — Documentos ajenos inocuos: un documento que no tiene nada que ver con el trámite (circulares, oficios múltiples, directivas, resoluciones generales, etc.) NO anula ni interrumpe el pago de un expediente completo. Solo se observa un documento ajeno cuando tergiversa la información del expediente o corresponde a otra persona/contrato (ver "Clasificación de documentos ajenos").
Auto-montaje de carpetas (REGLA OBLIGATORIA)
Si el usuario menciona o pega una ruta de carpeta de expediente (Windows o Unix) y esa carpeta NO está montada, montarla inmediatamente pasando la ruta tal cual (mcp__cowork__request_cowork_directory, o mcp__remote-devices__device_request_folder_access cuando la sesión trabaja contra el equipo del usuario).
- PROHIBIDO preguntar al usuario "¿quieres que la monte?" o "no la veo, móntala desde Cowork".
- PROHIBIDO sugerir un expediente alternativo que sí esté montado.
- Si la ruta tiene número similar a otra ya montada, igual montarla — son expedientes distintos.
- Aplicar el mismo auto-montaje cuando el usuario adjunte una imagen del Explorador de Windows mostrando la ruta.
Flujo de trabajo general (REGLAS ANTI-ALUCINACIÓN)
Cuando el usuario proporcione un expediente de OS/OC, ejecutar este flujo en orden estricto:
Paso 0 — Inventario y extracción de TODOS los PDFs
# Para cada PDF del expediente:
pdfinfo "$f" # contar páginas
pdftotext -layout "$f" "$f.txt" # extracción de texto base
pdfimages -list "$f" # ¿qué páginas tienen imágenes?
Paso 1 — OCR OBLIGATORIO Y EXHAUSTIVO sobre TODAS las páginas image-only del EXPEDIENTE COMPLETO
REGLA DE ORO: Antes de emitir CUALQUIER juicio, se debe construir un corpus textual completo del expediente que incluya el texto OCR de TODAS las páginas image-only de TODOS los PDFs. Sin excepciones, sin muestreo, sin "cercanía al RHE", sin filtrar por nombre de archivo.
Pipeline obligatorio para cada PDF del expediente:
mkdir -p /tmp/cp_ocr
for f in *.pdf; do
base=$(basename "$f" .pdf)
pdftotext -layout "$f" "/tmp/cp_ocr/${base}.txt"
npages=$(pdfinfo "$f" | awk '/Pages/ {print $2}')
for n in $(seq 1 $npages); do
# ¿la página n tiene texto extraíble?
chars=$(pdftotext -layout -f $n -l $n "$f" - | tr -d '[:space:]' | wc -c)
if [ "$chars" -lt 20 ]; then
pdftoppm -f $n -l $n -r 250 "$f" "/tmp/cp_ocr/${base}_p${n}" -png
tesseract "/tmp/cp_ocr/${base}_p${n}-${n}.png" - -l spa 2>/dev/null \
>> "/tmp/cp_ocr/${base}.ocr.txt"
fi
done
done
# Corpus consolidado del expediente:
cat /tmp/cp_ocr/*.txt /tmp/cp_ocr/*.ocr.txt > /tmp/cp_ocr/_CORPUS.txt
Comprobación previa del OCR (v9.9): si tesseract --list-langs no incluye spa, instalarlo antes de OCRear (por ejemplo descargando spa.traineddata de tessdata_fast a /usr/share/tesseract-ocr/*/tessdata/). Un OCR que devuelve páginas vacías NO es prueba de que la página esté en blanco: verificar siempre que el motor cargó el idioma antes de concluir que un documento no existe.
Disparadores OBLIGATORIOS de OCR (cualquiera de estos):
- Una página tiene < 20 caracteres extraíbles por
pdftotext.
pdfimages -list reporta imágenes en una página sin texto.
- Un PDF tiene tamaño > 1 MB y texto extraído < 50 líneas por MB.
- El nombre del PDF sugiere comprobante (RHE, factura, recibo, boleto, constancia, suspensión).
- El expediente referencia un documento (RHE, factura, constancia SUNAT, conformidad) que no aparece en el corpus actual.
Búsquedas OBLIGATORIAS sobre el corpus consolidado (NO sobre un solo PDF, NO solo cerca del RHE):
# Constancia de Suspensión 4ta Categoría — buscar por TODOS los términos:
grep -in -E "1609|Suspensi[oó]n|AUTORIZADO|Form\.?\s*1609|4ta.*[Cc]ategor" /tmp/cp_ocr/_CORPUS.txt
# Por RUC del proveedor (reemplazar):
grep -n "RUC_DEL_PROVEEDOR" /tmp/cp_ocr/_CORPUS.txt
# RHE / Factura:
grep -in -E "RECIBO POR HONORARIOS|FACTURA ELECTR|E001-|EE01-" /tmp/cp_ocr/_CORPUS.txt
REGLA ANTI-FALSO-NEGATIVO (no negociable): PROHIBIDO declarar un documento "ausente" (Constancia de Suspensión, RHE, factura, conformidad, etc.) sin haber:
- Construido el corpus OCR completo del expediente conforme al pipeline anterior.
- Ejecutado las búsquedas obligatorias por al menos tres términos distintos (p.ej. "1609", "Suspensión", RUC del proveedor) sobre el corpus consolidado.
- Confirmado que ninguna página del expediente — esté donde esté, en cualquier PDF, en cualquier orden — contiene el documento.
Las constancias y comprobantes pueden estar en CUALQUIER PDF del expediente, en CUALQUIER página, no necesariamente junto al RHE ni en páginas contiguas. Las imágenes escaneadas son la causa #1 de falsos positivos.
Paso 2 — Reglas operativas
- Leer TODOS los archivos del expediente, página por página, antes de emitir cualquier juicio. Nunca muestrear.
- Nunca completar información de un documento con datos de otro.
- Nunca calcular por cuenta propia salvo verificación matemática indicada (saldo por devengar, plazos, sumas de armadas).
- Si un dato no es visible → escribir NULL o "no visible en expediente"; nunca inferir.
- Evaluar el expediente como un TODO: si un documento existe en cualquier parte del expediente (incluido OCR de imágenes), es válido. No observar ausencia por no verlo en una página o por estar en formato imagen.
- Antes de emitir cualquier observación, verificar contra la lista "Reglas de NO observar" (ver más abajo).
- Antes de declarar "ausente" un comprobante de pago o una constancia SUNAT, certificar que se aplicó OCR sobre todas las páginas image-only del expediente y que se buscó por RUC + "1609" + "Suspensión" sobre el corpus consolidado completo.
- Las constancias, RHE y comprobantes pueden estar en CUALQUIER PDF y CUALQUIER página del expediente. Nunca asumir que un documento debe estar "junto" o "cerca" de otro.
- Antes de observar una supuesta discrepancia de montos, entender qué representa CADA campo del formato (nivel contrato vs nivel armada). Ver "Lectura de campos por nivel" más abajo. Un campo que responde a otra pregunta no es una contradicción.
Lectura de campos por nivel: CONTRATO vs ARMADA (REGLA OBLIGATORIA — v9.9)
En los expedientes MINEDU conviven formatos que razonan a nivel de contrato y formatos que razonan a nivel de armada. Confundirlos produce falsas observaciones.
| Documento |
Nivel |
Campos típicos |
| Orden de Servicio / Compra (SIGA) |
Contrato, con detalle de cuotas |
Monto total del contrato; cuotas 001, 002… con su plazo e importe |
| Informe/Cuadro de Aplicación de Penalidad (SGC) |
Contrato para el residual, armada para la base de cálculo |
"1. Monto del contrato", "3. Saldo a pagar", "7. Monto a pagar" son CONTRACTUALES; la penalidad diaria se calcula con el monto de la ARMADA |
| Proveído de Devengado (SGC) |
Armada |
SUB TOTAL del comprobante y de cada penalidad; TOTAL S/. = lo que se paga en ESTA armada |
| Conformidad |
Armada |
Monto de armada a pagar, N° de armada, fechas de la armada |
Consecuencia práctica: en el cuadro de penalidad, 7. Monto a pagar = monto del contrato − esa penalidad. NO es el pago de la armada y NO tiene por qué coincidir con el TOTAL del Proveído. Cuando hay dos o más penalidades en la misma armada, cada cuadro muestra el residual contractual considerando solo la suya; la acumulación aparece únicamente en el Proveído. Eso es el comportamiento normal del formato SGC y NO se observa.
Lo que sí debe cruzarse es el importe de la penalidad (y su base de cálculo), no el residual contractual.
Estructura de análisis — 8 verificaciones obligatorias
Aplicar en este orden, una por una:
1. CLASIFICACIÓN DEL EXPEDIENTE
Identificar:
- Tipo de contratación: Contratación Menor (CM ≤ 8 UIT), Adjudicación Simplificada, Concurso Público, Consultor Individual, Servicios Básicos, Acuerdo Marco, etc.
- Tipo de pago: armada única / 1ra / 2da / posterior / única.
- Naturaleza del proveedor: persona natural / persona jurídica.
- Tipo de comprobante: Factura Electrónica / RHE / Boleto aéreo / otro.
- Nº de Orden de Servicio o Compra y Carta Contrato (si aplica).
2. VERIFICACIÓN DOCUMENTAL
Ver lista completa en references/checklist-documentos.md. Marcar cada documento como ✔ presente / ⚠ incompleto / ❌ ausente.
3. COHERENCIA DOCUMENTAL
Cruzar entre TDR, OS/OC, Carta Contrato, Conformidad, RHE/Factura, cuadros de penalidad y Proveído de devengado:
- Nº de armada
- Monto de la armada y monto a pagar (respetando el nivel de cada campo)
- Nº de OS/OC
- Nº de contrato (si lo hay)
- Razón social y RUC del proveedor
- Descripción del servicio / bien
- N° del informe que la Conformidad declara como sustento
4. VERIFICACIÓN MATEMÁTICA
- Monto total contractual = suma de todas las armadas previstas.
- Saldo por devengar (regla crítica): en Control Previo, el devengado AÚN NO se ha registrado en SIAF. Por lo tanto:
Saldo por devengar = Monto total – Armadas YA pagadas (sin restar la armada actual)
La armada que se está revisando puede estar incluida en el saldo por devengar. NO observar por este motivo.
- Neto de la armada = monto de la armada − suma de TODAS las deducciones de esa armada (penalidades, retención de garantía si corresponde). Debe coincidir con el TOTAL del Proveído. Esta suma la hace el control previo; no se le exige al cuadro de penalidad (ver "Lectura de campos por nivel").
5. VERIFICACIÓN DE PLAZOS (cómputo inclusivo)
- El día de inicio cuenta como día 1.
- Sumar días calendario inclusivos.
- Si el vencimiento cae en sábado, domingo o feriado, la entrega el primer día hábil siguiente es válida (y la fecha límite del cuadro de penalidad puede reflejar ese corrimiento: no observarlo).
- NO observar presentación anticipada del entregable o de la conformidad.
6. VERIFICACIÓN TRIBUTARIA (RHE / Factura)
Reglas obligatorias:
- Recibo por Honorarios Electrónico (RHE):
- Si tiene retención del 8% efectiva (importe distinto de cero en "Retención (8%) IR") → OK, no exigir suspensión.
- Si NO tiene retención (Retención 8% IR = 0.00) → buscar en TODO el expediente la Constancia de Suspensión de Retenciones de Cuarta Categoría otorgada por SUNAT (vigente para el ejercicio fiscal en curso). Solo si NO se encuentra → observar.
- IMPORTANTE — Inciso A del Art. 33 LIR NO es exención: la mención "Inciso A del Artículo 33 de la Ley del Impuesto a la Renta" aparece siempre en todos los RHE como referencia normativa estándar (define qué son rentas de cuarta categoría). NO debe interpretarse como base de exoneración de retención. La única base válida para no retener es la Constancia de Suspensión SUNAT vigente.
- PROHIBIDO: observar incumplimiento solo porque el monto sea > S/ 1,500. El umbral lo define la suspensión SUNAT, no el monto del recibo.
- PROHIBIDO: exigir firma manuscrita en RHE o factura electrónica (son documentos electrónicos válidos por sí mismos).
- El proveído consigna el monto bruto (Total por honorarios), no el neto. Que el bruto del proveído sea mayor al neto del RHE por la retención NO es inconsistencia.
- Factura electrónica: verificar detracción si el servicio está afecto (consultar tipo de servicio en SUNAT).
- Validar: importe neto, condición "al crédito", fecha de emisión dentro del ejercicio fiscal vigente.
- En boletos aéreos: el boleto es el comprobante de pago; no exigir factura adicional.
7. VERIFICACIÓN DE FIRMAS Y SUSTENTOS
Reglas alineadas con el skill control-previo-viaticos:
- La firma puede ser digital o manuscrita.
- Firma digital (Ley 27269): se considera válida si el documento presenta el bloque "FAU 20131370998 hard/soft", el sello "FIRMADO DIGITALMENTE", o un QR/URL de validación institucional (p.ej. apps.firmaperu.gob.pe, esinad.minedu.gob.pe).
- Firma manuscrita: debe ir acompañada de nombres, apellidos, DNI y cargo del firmante. Si falta alguno, la firma es incompleta.
- ÚNICA EXCEPCIÓN: NO exigir firma en RHE ni en Factura Electrónica (son comprobantes electrónicos válidos por sí mismos). Ningún otro documento del expediente está exento, y en particular NO lo están los cuadros de penalidad ni los formatos generados por sistema (SIGA/SGC).
- SOLO observar la ausencia de firma cuando NO exista ninguna de las formas válidas anteriores, tras revisar TODAS las páginas del PDF (ver "Firmas dispersas en múltiples páginas") y tras OCR y render visual si la página es imagen.
Para cada documento del checklist, registrar el campo firma con uno de: OK (firma digital o manuscrita completa), N.A. (SOLO RHE/Factura y documentos no suscribibles como constancias SUNAT o cargos de mesa de partes), INCOMPLETO (manuscrita sin DNI/cargo), AUSENTE.
v9.9 — PROHIBIDO marcar firma: "N.A." en un cuadro o informe de aplicación de penalidad. Ese documento SIEMPRE requiere suscripción; si no la tiene, va firma: "AUSENTE" y estado: "OBSERVABLE".
Reglas de NO observar (CRÍTICAS — evitan falsos positivos)
Antes de emitir cualquier observación, verificar que NO sea uno de estos casos. Si lo es, no observar:
- Presentación anticipada: la conformidad, el entregable o el RHE pueden ser anteriores al fin nominal de la armada.
- Saldo por devengar incluyendo la armada actual: es correcto en Control Previo.
- No es primer pago: no exigir certificación presupuestal ni la propia OS/OC en cada armada (basta que estén en el primer expediente del contrato).
- Diferencia entre monto bruto del proveído y monto neto del RHE por la retención del 8%: NO es inconsistencia, es lo esperado.
- RHE o factura electrónica sin firma manuscrita: válidos.
- Campos "Nº de Contrato" o "Nº de Requerimiento" en blanco cuando se trata de Carta Contrato bajo régimen de Contratación Menor (CM): no es observable.
- Errores menores de tipeo o información accesoria que no afecten la integridad del expediente: por Ley 27444 no se puede detener el pago.
- Numeración de anexos distinta a la directiva más reciente cuando se usan formatos institucionales aún vigentes.
- Comprobantes adicionales no listados en TDR: no generan observación.
- Copia previa sin firma de un documento que también obra firmado (p.ej. dos versiones del mismo Proveído, una sin suscribir y otra suscrita horas después): prevalece la versión suscrita; dejar nota, no observar.
- "Monto a pagar" / "Saldo a pagar" contractual del cuadro de penalidad que no coincide con el TOTAL del Proveído (v9.9): esos campos del formato SGC son de nivel CONTRATO y consideran solo la penalidad de ese cuadro. NO es inconsistencia. Lo que se cruza contra el Proveído es el importe de la penalidad, no el residual.
- Fecha límite del cuadro de penalidad corrida al primer día hábil cuando el vencimiento cayó sábado, domingo o feriado: es correcto y favorece al contratista.
- Penalidad por mora computada desde el vencimiento del plazo para subsanar observaciones, cuando el TDR lo prevé: es penalidad por mora, NO una "penalidad adicional"; no observarla aunque el TDR diga "penalidades adicionales: no corresponde".
- Documentos ajenos inocuos (v10.0): PDFs de otro expediente SINAD que no tienen relación alguna con el pago (circulares, oficios múltiples, directivas, resoluciones generales, comunicaciones institucionales) y que no alteran, contradicen ni sustituyen ningún dato o documento del expediente. Si el expediente está completo, NO se observan (Ley 27444): solo se deja una nota "descartar del legajo" y el veredicto sigue siendo "No hay observaciones".
Formato de respuesta obligatorio
Empezar SIEMPRE con una de estas dos líneas exactas:
- "Sí hay observaciones."
- "No hay observaciones."
Si hay observaciones, enumerarlas de forma directa, una por línea numerada, sin justificar cumplimiento, sin análisis positivo, sin indicar archivo ni página (aunque internamente sí se debe identificar).
Tono: directo, técnico, sin adornos.
Datos fijos de las Unidades Ejecutoras MINEDU
| UE |
Nombre |
RUC |
Dirección fiscal |
| 024 |
Ministerio de Educación Sede Central |
20131370998 |
Calle El Comercio 193 San Borja |
| 026 |
Programa Educación Básica Para Todos |
20380795907 |
Calle El Comercio 193 San Borja |
| 116 |
Colegio Mayor Secundario Presidente del Perú |
20546369383 |
Calle El Comercio 193 San Borja |
Informe Excel OBLIGATORIO por expediente
FORMATO VIGENTE — leer antes de generar nada. El libro que se entrega es el del Protocolo v1.1, siete hojas, definido en la skill informe-control-previo-os-oc: DICTAMEN, PROVEIDO, EXPEDIENTE, FIRMAS, TDR VALIDACIONES, TRIBUTARIO y PROTOCOLO ACUERDOS. Esa skill manda en nombres de hoja, cuadros, paleta, columna de página en formato TEXTO y orden de construcción.
Todo lo que sigue en esta sección conserva su valor como contenido y contrato de datos: el JSON, el orden canónico de documentos, las reglas de hyperlinks y el generador scripts/generar_checklist.py siguen siendo válidos y NO se eliminan. Se usan como respaldo cuando la skill de salida no esté disponible, y como fuente de los datos que alimentan las siete hojas cuando sí lo esté. Ante conflicto de forma, manda el Protocolo v1.1; ante conflicto de norma o criterio, manda esta skill.
Al finalizar el análisis de cada expediente, siempre generar un archivo Excel con el checklist completo y guardarlo dentro de la misma carpeta del expediente (no en Downloads, no en outputs). Nombre fijo:
INFORME_CONTROL_PREVIO_<NRO_EXPEDIENTE>.xlsx
Para generarlo usar el script incluido en la skill:
python3 scripts/generar_checklist.py "<carpeta_expediente_VM>" /tmp/datos_expediente.json \
--host-base "C:\\Users\\<usuario>\\...\\<EXPEDIENTE>"
El parámetro --host-base es OBLIGATORIO: es la ruta HOST (Windows) de la carpeta del expediente, necesaria para construir hyperlinks file:///...#page=N que abran el PDF directamente en la página correcta. Si los archivos vinieron por montaje de carpeta, esa ruta es la que se usó al montar.
Si el Excel ya está abierto en Excel/WPS al momento de escribirlo, la escritura falla: avisar al usuario que lo cierre y reintentar. NO cambiar el nombre del archivo para esquivar el bloqueo.
donde /tmp/datos_expediente.json es un JSON construido por Claude con el inventario completo. La estructura del JSON está documentada en el encabezado de scripts/generar_checklist.py. Campos mínimos obligatorios:
expediente, ue, tipo_contratacion, orden, proveedor, ruc
monto_total, n_armadas, armada_actual, monto_armada
fecha_inicio, fecha_fin, fecha_entregable, fecha_conformidad
veredicto ("No hay observaciones" o "Sí hay observaciones")
observaciones (lista vacía si no hay)
checklist: cada ítem con item, estado (PRESENTE/AUSENTE/OBSERVABLE/N.A.), archivo (nombre EXACTO del PDF tal como aparece en la carpeta — el nombre será el hipervínculo), pagina (número entero — primera página donde aparece el documento), exigible_en ("1ra" para documentos base que solo se exigen en el primer pago, "cada armada" para los exigibles en todas las armadas), firma (OK/N.A./INCOMPLETO/AUSENTE), comentario
Distinción CRÍTICA Conformidad ≠ Proveído de Devengado:
- La Conformidad es el documento técnico emitido por el área usuaria que da por aceptado el entregable. Suele incluir, en formato MINEDU consolidado, una tabla "DETALLE DE LA PRESTACIÓN" con OS, monto, armada, fechas y referencia al Informe técnico. Esa tabla NO es el Proveído.
- El Proveído de Devengado es un documento DISTINTO, generado por el área administrativa para autorizar el devengado. Es exigible SIEMPRE en TODAS las armadas del expediente que llega a control previo. Si no está → AUSENTE → OBSERVACIÓN.
Separación de exigibilidad por armada — IMPRESCINDIBLE:
Sólo mostrar y exigir lo que corresponde según la armada en revisión.
A) PRIMER PAGO (1ra armada) — REVISIÓN COMPLETA Y PROFUNDA
Se debe verificar todo lo relativo a los antecedentes de la contratación, además de los documentos de la armada actual:
- Términos de Referencia (TDR) firmados por el área usuaria — leer a fondo: requisitos del proveedor (nivel de formación, capacitación, experiencia general en años, experiencia específica en años), unidad orgánica que otorga la conformidad, forma de pago, número de armadas, plazo, régimen de penalidades y garantías.
- Verificación del perfil del proveedor vs requisitos del TDR: el CV/Anexo del proveedor (Certificado Único Laboral, certificados de trabajo, diplomas, títulos, constancias) debe acreditar el nivel de formación exigido (titulado/bachiller/diplomado/maestría según el caso) y los años de experiencia general y específica solicitados. Si falta alguna acreditación → OBSERVACIÓN.
- Estructura de Costos (Anexo 2).
- Declaración Jurada del Proveedor (Anexo 3).
- Cotización / propuesta económica.
- Autorización VMGP y formato A correspondiente.
- Cuadro CM (Contratación Menor) o equivalente según tipo de contratación.
- Anexos de contratación: RNP vigente, declaraciones juradas de no impedimentos, ficha RUC con estado ACTIVO/HABIDO, política institucional firmada, etc.
- Certificación de Crédito Presupuestal (CCP) o, en su defecto, evidencia de SIAF asignado en la OS.
- Orden de Servicio / Orden de Compra firmada digitalmente por las áreas correspondientes.
- Carta Contrato (cuando aplique) o equivalente para Contratación Menor.
- CCI - Carta de Autorización de Pago firmada por el proveedor (debe coincidir el CCI con el banco indicado).
- Constancia de Suspensión 4ta Categoría (Form. 1609 SUNAT) vigente para el ejercicio fiscal — si el RHE no tiene retención.
- Constancia de recepción del entregable (mesa de partes / SIGA-SISMEC).
- Entregable / producto físico del 1er entregable.
- Informe técnico del especialista responsable.
- Conformidad del área usuaria: firmada por la unidad orgánica indicada en el TDR como responsable de otorgar la conformidad. Si la firma la otra área → OBSERVACIÓN.
- Memorando de remisión.
- RHE / Factura Electrónica de la armada — verificar retención 8% o Constancia 1609.
- Cuadro(s) de Aplicación de Penalidades — cuando haya mora o deducción en el proveído; firmado y con importe coherente con el proveído (ver Verificación 8).
- Proveído de Devengado (siempre exigible).
Cruzar coherencia: proveedor, RUC, OS, monto contractual, monto armada, deducciones, monto neto, descripción del servicio. Cualquier contradicción real entre documentos del antecedente → OBSERVACIÓN.
B) SEGUNDO PAGO en adelante (2da, 3ra... armada) — REVISIÓN SIMPLIFICADA
Solo se exige y muestra:
- Constancia de aceptación / recepción del entregable de la armada.
- Entregable del periodo.
- Informe técnico del área usuaria (de la armada).
- Conformidad de la armada (firmada por la unidad indicada en el TDR).
- RHE / Factura de la armada — siempre verificar si corresponde retención 8% o si está la Constancia 1609 vigente.
- Cuadro(s) de Aplicación de Penalidades de la armada, firmados, si hubo mora o deducción.
- Proveído de Devengado (siempre exigible).
NO se vuelven a exigir TDR, Anexo 3, CCI, CCP, RNP, etc., ya que se presentaron en la 1ra armada.
Codificación en exigible_en del JSON
"1ra" → ítem que solo se exige en la 1ra armada (NO se mostrará en armadas posteriores).
"cada armada" → ítem que se exige en cada armada (incluyendo Proveído de Devengado y cuadros de penalidad de esa armada).
accesos_rapidos: lista corta con los documentos clave (RHE, Constancia 1609, Proveído de Devengado, OS/OC, Conformidad, Informe técnico, Memorando, Penalidad si la hay) cada uno con doc, archivo, pagina — se renderiza en una hoja "Accesos rápidos" con hipervínculos directos
coherencia: cruce entre documentos (proveedor, RUC, OS, armada, importe de penalidades, monto neto, descripción)
tributario: datos del RHE/factura, retención y constancia 1609 (con archivo y página donde se ubicó)
Reglas obligatorias del checklist:
- Cada documento del checklist DEBE indicar el nombre exacto del archivo PDF y la página (o rango de páginas) donde aparece. Si fue ubicado vía OCR, indicarlo en
comentario ("vía OCR").
- Cada documento DEBE indicar a qué armada aplica (1ra / 2da / 3ra / todas). Documentos base del contrato (TDR, OS, Carta Contrato, Estructura de Costos) → "todas". Documentos por armada (Conformidad, Informe técnico, RHE, cuadros de penalidad, Anexo administrativo, Proveído) → la armada en revisión.
- Si la armada actual NO es la 1ra, en el comentario de los documentos base anotar: "presentado en la 1ra armada (no exigible)".
Hoja "Observaciones": vacía si veredicto es No hay observaciones; en caso contrario, una fila por observación con descripción + fundamento normativo + gravedad (A subsanable / B devolutivo).
Si el usuario adicionalmente lo pide, también generar INFORME_CP_OS_[NRO_EXPEDIENTE].xlsx extendido usando la skill xlsx con las siguientes hojas:
- Datos del Expediente — Nº expediente, OS/OC, Carta Contrato, proveedor, RUC, monto total, armada actual, periodo, UE.
- Inventario de Documentos — Nº / nombre / fecha / observación.
- Checklist Documental — documento requerido / estado (PRESENTE/AUSENTE/OBSERVABLE/N.A.) / observación.
- Coherencia Documental — campo / valor en doc 1 / valor en doc 2 / resultado.
- Verificación Matemática — monto contractual / armadas pagadas / armada actual / deducciones / neto / saldo / fórmula.
- Verificación de Plazos — fecha inicio / fecha fin / días contractuales / fecha entregable / fecha conformidad / resultado.
- Verificación Tributaria — RHE/Factura / fecha / importe / retención / suspensión / inciso art. 33 / detracción / resultado.
- Observaciones Consolidadas — Nº / descripción / fundamento / gravedad (A subsanable / B devolutivo) / veredicto final.
Formato condicional: rojo para OBSERVABLE/AUSENTE/INCONSISTENTE, verde para CONFORME/PRESENTE/CONSISTENTE.
Procesamiento de MÚLTIPLES expedientes en paralelo
Cuando el usuario indique de manera explícita varios expedientes (por nombre o por ruta), procesarlos en paralelo lanzando un subagente independiente por expediente. Cada subagente debe:
- Montar la carpeta del expediente si aún no está montada.
- Ejecutar el pipeline OCR completo (Paso 0 + Paso 1) sobre TODOS los PDFs de SU expediente y construir su propio
_CORPUS.txt aislado.
- Aplicar las 8 verificaciones de control previo sobre su corpus.
- Construir el JSON de datos del expediente.
- Ejecutar
scripts/generar_checklist.py con la ruta VM y la ruta HOST de SU expediente como --host-base, generando el INFORME_CONTROL_PREVIO_<EXPEDIENTE>.xlsx dentro de la propia carpeta del expediente.
- Devolver al orquestador:
{expediente, veredicto, n_observaciones, ruta_xlsx}.
Reglas críticas del paralelismo:
- Cada subagente trabaja en su propio directorio temporal (
/tmp/cp_<expediente>/) — nunca compartir corpus entre expedientes.
- El orquestador NO emite veredictos por su cuenta; solo consolida los resultados de los subagentes en una tabla resumen al final.
- Capacidad práctica: 5 a 10 expedientes en paralelo en una sola tanda. Si el usuario pasa más de 10, procesarlos en oleadas.
- El orquestador debe entregar al final una tabla resumen
{expediente | tipo (OS/OC) | armada | proveedor | monto | veredicto | observaciones | link al xlsx} y un link a cada Excel individual.
Si el usuario no pide expresamente varios expedientes, NO se lanzan subagentes — la revisión es secuencial dentro de la conversación principal.
Arquitectura multiagente recomendada (para expedientes complejos o lotes)
Cuando un expediente sea grande (>50 páginas totales) o cuando sea parte de un lote, el subagente del expediente puede a su vez delegar dimensiones específicas en agentes especializados. Cada agente solo "ve" su dimensión, lo que reduce alucinaciones y permite trazabilidad:
- Agente OCR/Visión — corre
pdftoppm + tesseract sobre todas las páginas image-only y produce el corpus consolidado. Solo entrega texto, no juicios.
- Agente Documental/Pautas — aplica el checklist normativo sobre el corpus y marca PRESENTE/AUSENTE con archivo y página.
- Agente TDR/Perfil (solo 1er pago) — extrae los requisitos del TDR (formación, experiencia general, experiencia específica, unidad que da la conformidad) y los confronta contra el CV/Anexos del proveedor (CUL, certificados, diplomas, títulos). Devuelve OK / INCONSISTENTE por requisito.
- Agente Tributario — RHE/factura, retención 8%, Constancia 1609, detracción, coherencia bruto/neto, regla del Inciso A Art. 33 LIR.
- Agente Coherencia — cruza proveedor, RUC, OS, monto, armada, importe de penalidades, monto neto y descripción del servicio entre TDR, OS, Conformidad, Informe técnico, RHE, cuadros de penalidad, Proveído y Memorando. Reporta cualquier contradicción real, respetando la regla de "Lectura de campos por nivel".
- Agente Plazos y Penalidades — cómputo de plazos, presentación anticipada permitida, fecha de entrega vs fecha fin armada, cálculo, firma e importe de las penalidades, incumplimientos contractuales mencionados en Conformidad/Informe técnico/Memorando.
- Agente Firmas — verifica que todo documento exigible tenga firma válida (digital con FAU 20131370998, manuscrita con DNI+cargo, o QR institucional). Verifica especialmente que la Conformidad esté firmada por la unidad orgánica indicada en el TDR y que los cuadros de penalidad estén suscritos.
- Agente Auditor (orquestador) — consolida los hallazgos, aplica las "Reglas de NO observar", emite el veredicto final y dispara
generar_checklist.py.
Esta arquitectura es opcional. Para expedientes pequeños (<30 páginas), la conversación principal hace todo.
Verificación 8 — PENALIDADES E INCUMPLIMIENTOS CONTRACTUALES
Verificación obligatoria por cada armada:
- Comparar
fecha_entregable vs fecha_fin_armada:
- Si entregable ≤ fin de armada → SIN PENALIDAD.
- Si entregable > fin de armada → calcular días de mora y penalidad:
0.10 / (0.40 × plazo_del_entregable) × monto_armada × días_mora, con tope del 10% del monto del contrato (Art. 120 del Reglamento de la Ley 32069 / Pautas MINEDU). En CM la fórmula puede ser distinta — verificar TDR.
- Mora en la subsanación: si el TDR prevé que, vencido el plazo otorgado para subsanar observaciones, corresponde penalidad por mora, esa penalidad es legítima y NO es una "penalidad adicional" — se computa desde el vencimiento del plazo para subsanar hasta la fecha de reingreso. Verificar además que el plazo otorgado no exceda el tope del TDR (típicamente 30% del plazo del entregable).
- Buscar en Conformidad, Informe técnico, Memorando y Proveído cualquier mención a:
- "incumplimiento", "subsanación", "observado", "rechazado", "se aplica penalidad", "deducción", "descuento", "amonestación", "suspensión".
- Si la Conformidad menciona penalidad pero el monto del Proveído NO la deduce → OBSERVACIÓN.
- Si el entregable se presentó tarde y NO hay penalidad calculada en el expediente → OBSERVACIÓN.
- Si hay incumplimientos contractuales documentados sin justificación o subsanación → OBSERVACIÓN.
8.A — FIRMA DE LOS CUADROS DE PENALIDAD (REGLA OBLIGATORIA — v9.9)
Todo "INFORME/CUADRO DE APLICACIÓN DE PENALIDAD" (por mora, por observación/subsanación, o por cualquier otra causal) que sustente una deducción en el Proveído DEBE estar suscrito. Que provenga del SGC/SIGA y traiga cabecera con fecha y hora del sistema NO reemplaza la firma.
Procedimiento obligatorio antes de dar por conforme un cuadro de penalidad:
- Extraer el texto de TODAS sus páginas y buscar
FAU, FIRMADO DIGITALMENTE, En señal de conformidad, Doy V° B°, o un QR/URL de validación institucional.
- Si el texto no arroja firma, renderizar la página a imagen (
pdftoppm -r 130 o superior) y verificarla VISUALMENTE, porque los sellos y firmas gráficas no siempre son texto extraíble.
- Solo después de ambos pasos se puede concluir.
Resultado:
- Sin firma digital, sin firma manuscrita con nombres + DNI + cargo, y sin sello del funcionario responsable →
firma: "AUSENTE", estado: "OBSERVABLE" y OBSERVACIÓN OBLIGATORIA.
- PROHIBIDO marcar
firma: "N.A." en un cuadro de penalidad. Esa codificación está reservada a RHE/facturas electrónicas y a documentos no suscribibles (constancias SUNAT, cargos de mesa de partes).
- PROHIBIDO despachar la falta de firma como "error formal accesorio" bajo la Ley 27444: el cuadro es el sustento de una deducción sobre el pago del contratista.
8.B — LO QUE SÍ SE CRUZA CONTRA EL PROVEÍDO (y lo que NO) — v9.9
SÍ se verifica:
- Importe de cada penalidad: el monto del cuadro debe aparecer idéntico como línea PENALIDAD en el Proveído.
- Base y fórmula de cálculo:
0.10 × monto_armada / (0.40 × plazo_del_entregable) por día de retraso, salvo que el TDR disponga otra. Verificar que la base sea el monto de la armada y el plazo el del entregable.
- Correspondencia uno a uno: cada penalidad deducida en el Proveído tiene su cuadro, y cada cuadro corresponde a una deducción del Proveído. Ni de más ni de menos.
- Neto de la armada:
monto_armada − Σ penalidades = TOTAL del Proveído. Esta suma la hace el control previo.
- Tope acumulado: la suma de penalidades por mora y otras penalidades no puede exceder el 10% del monto del contrato, considerando las armadas anteriores.
- Firma (ver 8.A).
NO se observa (error cometido en la primera revisión del caso DIFODS2026-INT-0567802):
- Que el campo
7. Monto a pagar del cuadro no coincida con el TOTAL del Proveído. Ese campo, junto con 1. Monto del contrato y 3. Saldo a pagar, es de nivel contrato y considera solo la penalidad de ese cuadro. Con dos penalidades en la misma armada, cada cuadro mostrará el mismo residual contractual y ninguno reflejará el neto de la armada: así funciona el formato SGC. Ver "Lectura de campos por nivel".
8.C — Marcado en el checklist
Para cada ítem de penalidad:
N.A. → solo si el entregable llegó a tiempo y no hay observación documental alguna (no hay penalidad que aplicar).
PRESENTE → la penalidad fue calculada correctamente, el cuadro está firmado y su importe se traslada correctamente al Proveído.
OBSERVABLE (rojo) → el cuadro existe pero no está firmado, o su base de cálculo o su importe no corresponden a lo deducido en el Proveído.
AUSENTE (rojo) → correspondía aplicar penalidad y no figura el cuadro.
Si la conformidad técnica indica "EL CONTRATISTA SI INCURRIO EN PENALIDADES" o similar y el expediente NO incluye el Cuadro de Aplicación de Penalidades detallado y firmado (Pautas MINEDU numeral 11) → OBSERVACIÓN OBLIGATORIA.
Caso de referencia (v9.9)
DIFODS2026-INT-0567802 (OS 0005220-2026, ZACARIAS MERCADO CARLOS MANUEL, UE 026, armada 1 de 2). Dos lecciones opuestas del mismo expediente:
- Falso negativo corregido: los dos cuadros de penalidad llegaron sin firma alguna y en la primera revisión se marcaron erróneamente como
firma: "N.A." por ser reportes de sistema. De ahí la regla 8.A.
- Falso positivo corregido: se observó que cada cuadro consignaba "Monto a pagar S/ 13,943.55" mientras el Proveído N° 12847 pagaba S/ 6,887.10, y se calificó como inconsistencia. Era incorrecto: 13,943.55 = 14,000.00 − 56.45 es el residual contractual del formato, no el pago de la armada; el importe de la penalidad (S/ 56.45 por cada cuadro) sí se trasladaba correctamente al Proveído, y la base de cálculo era la correcta (0.10 × 7,000 / (0.40 × 31)). De ahí las reglas 8.B y "Lectura de campos por nivel": entender el nivel de cada campo ANTES de observar una diferencia de montos.
Informe de Conformidad (regla condicional)
El Informe de Conformidad NO es un documento exigido en todos los casos por las pautas MINEDU. Sin embargo:
- Si el documento de Conformidad menciona expresamente "Informe de Conformidad N° X" o "se sustenta en el Informe de Conformidad…" o "según Informe de Conformidad…" o "Conformidad generada en base a Informe N° X", entonces ese informe DEBE estar adjunto al expediente y firmado por el área usuaria. Si no aparece — o si el informe adjunto tiene un número distinto al citado — → OBSERVACIÓN.
- Si la Conformidad solo se sustenta en un "Informe técnico" del especialista (sin usar la frase "Informe de Conformidad"), basta con verificar el Informe técnico — no se exige adicionalmente un Informe de Conformidad.
- No confundir: "Informe técnico" del especialista ≠ "Informe de Conformidad" del área usuaria. Cuando ambos términos aparecen distinguirlos en el checklist como ítems separados.
Cuando aplique, agregar al checklist el ítem "Informe de Conformidad" con su archivo y página, exigible en cada armada, y verificar firma del responsable del área usuaria.
Coherencia obligatoria en TODOS los pagos
Regla bloqueante (aplica tanto a 1er pago como a pagos siguientes):
**Cualquier contradicción REAL entre dos o más documentos del expediente sobre datos sustantivos (proveedor
…(truncated)
1---2name: control-previo-ordenes3description: Control previo administrativo y financiero de expedientes de pago de Ordenes de Servicio (OS) y Ordenes de Compra (OC) del MINEDU. Aplica las Pautas para la Remision de Expedientes para el Tramite de Devengado y Pago, la Ley 32069 y la Ley 27444. Usar cuando se mencione orden de servicio, orden de compra, OS, OC, carta contrato, expediente de pago, recibo por honorarios, RHE, factura, devengado, proveido, conformidad, entregable, armada, suspension de cuarta categoria, detraccion, contratacion menor a 8 UIT o locacion de servicios. Produce el veredicto, las observaciones con su base normativa y la matriz de coherencia. El formato del informe Excel lo define informe-control-previo-os-oc, Protocolo v1.1 de siete hojas.4---56# Control Previo — Órdenes de Servicio y Órdenes de Compra MINEDU78## Enrutador MINEDU — qué skill manda en cada expediente910La norma y el criterio los pone la **skill de dominio**. El formato del Excel lo pone la **skill de salida**. Ninguna reemplaza a otra ni borra las normas de otra: se suman.1112| Tipo de expediente | Dominio: norma y criterio | Salida: formato del informe |13|---|---|---|14| Orden de Servicio y Orden de Compra | `control-previo-ordenes` | `informe-control-previo-os-oc` — siete hojas, Protocolo v1.1 |15| Rendición de viáticos | `control-previo-viaticos-v3` | la propia skill — tres hojas, formato oficial v7.0 |16| Encargos a personal | `control-previo-encargos` | `informe-control-previo-minedu` — dos hojas |17| Caja chica | `control-previo-caja-chica` | `informe-control-previo-minedu` — dos hojas |18| Convenios, servicios básicos, tasas, sentencias judiciales | criterio de la especialidad | `informe-control-previo-minedu` — dos hojas |1920Transversales, se aplican encima de cualquiera de las anteriores: `deteccion-firmas-expedientes` y `coherencia-documental-expedientes`.2122Regla de desempate: si dos skills de salida pudieran activarse, manda la de la fila del tipo de expediente. Viáticos nunca usa una salida ajena.232425> **Versión 10.0 — generada el 10-09-2026 (hora de Lima)**26>27> Ver carpeta `versiones/` para el detalle de cambios de cada versión.2829## Marco normativo aplicable3031- **Pautas operativas**: "PAUTAS PARA LA REMISIÓN DE EXPEDIENTES DE PAGO – REVISIÓN CONTROL PREVIO" (MINEDU, vigentes).32- **Ley 32069** — Ley General de Contrataciones Públicas y su Reglamento.33- **Ley 27444** — Ley del Procedimiento Administrativo General (jerárquicamente superior a directivas internas).34- **TUO Ley del Impuesto a la Renta**, Art. 33 inciso a) — base de no retención de cuarta categoría.35- **Régimen de detracciones SUNAT** (cuando el servicio esté afecto).36- **Pautas para los Contratos Menores en el MINEDU – UE 024, 026 y 116**.3738> **PRINCIPIO RECTOR (Ley 27444)**: Si el expediente está completo conforme a las pautas, no se puede detener el pago por errores formales o información accesoria que no corresponda al expediente. La Ley 27444 prevalece sobre directivas internas. Prefiere NO observar antes que observar incorrectamente.39>40> **v10.0 — Documentos ajenos inocuos**: un documento que no tiene nada que ver con el trámite (circulares, oficios múltiples, directivas, resoluciones generales, etc.) NO anula ni interrumpe el pago de un expediente completo. Solo se observa un documento ajeno cuando tergiversa la información del expediente o corresponde a otra persona/contrato (ver "Clasificación de documentos ajenos").4142---4344## Auto-montaje de carpetas (REGLA OBLIGATORIA)4546Si el usuario menciona o pega una ruta de carpeta de expediente (Windows o Unix) y esa carpeta NO está montada, **montarla inmediatamente** pasando la ruta tal cual (`mcp__cowork__request_cowork_directory`, o `mcp__remote-devices__device_request_folder_access` cuando la sesión trabaja contra el equipo del usuario).4748- **PROHIBIDO** preguntar al usuario "¿quieres que la monte?" o "no la veo, móntala desde Cowork".49- **PROHIBIDO** sugerir un expediente alternativo que sí esté montado.50- Si la ruta tiene número similar a otra ya montada, igual montarla — son expedientes distintos.51- Aplicar el mismo auto-montaje cuando el usuario adjunte una imagen del Explorador de Windows mostrando la ruta.5253## Flujo de trabajo general (REGLAS ANTI-ALUCINACIÓN)5455Cuando el usuario proporcione un expediente de OS/OC, ejecutar este flujo en orden estricto:5657### Paso 0 — Inventario y extracción de TODOS los PDFs58```bash59# Para cada PDF del expediente:60pdfinfo "$f" # contar páginas61pdftotext -layout "$f" "$f.txt" # extracción de texto base62pdfimages -list "$f" # ¿qué páginas tienen imágenes?63```6465### Paso 1 — OCR OBLIGATORIO Y EXHAUSTIVO sobre TODAS las páginas image-only del EXPEDIENTE COMPLETO6667**REGLA DE ORO**: Antes de emitir CUALQUIER juicio, se debe construir un **corpus textual completo del expediente** que incluya el texto OCR de TODAS las páginas image-only de TODOS los PDFs. Sin excepciones, sin muestreo, sin "cercanía al RHE", sin filtrar por nombre de archivo.6869Pipeline obligatorio para cada PDF del expediente:7071```bash72mkdir -p /tmp/cp_ocr73for f in *.pdf; do74 base=$(basename "$f" .pdf)75 pdftotext -layout "$f" "/tmp/cp_ocr/${base}.txt"76 npages=$(pdfinfo "$f" | awk '/Pages/ {print $2}')77 for n in $(seq 1 $npages); do78 # ¿la página n tiene texto extraíble?79 chars=$(pdftotext -layout -f $n -l $n "$f" - | tr -d '[:space:]' | wc -c)80 if [ "$chars" -lt 20 ]; then81 pdftoppm -f $n -l $n -r 250 "$f" "/tmp/cp_ocr/${base}_p${n}" -png82 tesseract "/tmp/cp_ocr/${base}_p${n}-${n}.png" - -l spa 2>/dev/null \83 >> "/tmp/cp_ocr/${base}.ocr.txt"84 fi85 done86done87# Corpus consolidado del expediente:88cat /tmp/cp_ocr/*.txt /tmp/cp_ocr/*.ocr.txt > /tmp/cp_ocr/_CORPUS.txt89```9091**Comprobación previa del OCR (v9.9)**: si `tesseract --list-langs` no incluye `spa`, instalarlo antes de OCRear (por ejemplo descargando `spa.traineddata` de `tessdata_fast` a `/usr/share/tesseract-ocr/*/tessdata/`). Un OCR que devuelve páginas vacías NO es prueba de que la página esté en blanco: verificar siempre que el motor cargó el idioma antes de concluir que un documento no existe.9293**Disparadores OBLIGATORIOS de OCR** (cualquiera de estos):94- Una página tiene < 20 caracteres extraíbles por `pdftotext`.95- `pdfimages -list` reporta imágenes en una página sin texto.96- Un PDF tiene tamaño > 1 MB y texto extraído < 50 líneas por MB.97- El nombre del PDF sugiere comprobante (RHE, factura, recibo, boleto, constancia, suspensión).98- El expediente referencia un documento (RHE, factura, constancia SUNAT, conformidad) que no aparece en el corpus actual.99100**Búsquedas OBLIGATORIAS sobre el corpus consolidado** (NO sobre un solo PDF, NO solo cerca del RHE):101102```bash103# Constancia de Suspensión 4ta Categoría — buscar por TODOS los términos:104grep -in -E "1609|Suspensi[oó]n|AUTORIZADO|Form\.?\s*1609|4ta.*[Cc]ategor" /tmp/cp_ocr/_CORPUS.txt105# Por RUC del proveedor (reemplazar):106grep -n "RUC_DEL_PROVEEDOR" /tmp/cp_ocr/_CORPUS.txt107# RHE / Factura:108grep -in -E "RECIBO POR HONORARIOS|FACTURA ELECTR|E001-|EE01-" /tmp/cp_ocr/_CORPUS.txt109```110111**REGLA ANTI-FALSO-NEGATIVO (no negociable)**: PROHIBIDO declarar un documento "ausente" (Constancia de Suspensión, RHE, factura, conformidad, etc.) sin haber:1121. Construido el corpus OCR completo del expediente conforme al pipeline anterior.1132. Ejecutado las búsquedas obligatorias por **al menos tres términos distintos** (p.ej. "1609", "Suspensión", RUC del proveedor) sobre el corpus consolidado.1143. Confirmado que ninguna página del expediente — esté donde esté, en cualquier PDF, en cualquier orden — contiene el documento.115116Las constancias y comprobantes pueden estar en CUALQUIER PDF del expediente, en CUALQUIER página, no necesariamente junto al RHE ni en páginas contiguas. Las imágenes escaneadas son la causa #1 de falsos positivos.117118### Paso 2 — Reglas operativas1191201. **Leer TODOS los archivos del expediente, página por página**, antes de emitir cualquier juicio. Nunca muestrear.1212. **Nunca completar** información de un documento con datos de otro.1223. **Nunca calcular** por cuenta propia salvo verificación matemática indicada (saldo por devengar, plazos, sumas de armadas).1234. Si un dato no es visible → escribir **NULL** o "no visible en expediente"; nunca inferir.1245. **Evaluar el expediente como un TODO**: si un documento existe en cualquier parte del expediente (incluido OCR de imágenes), es válido. No observar ausencia por no verlo en una página o por estar en formato imagen.1256. Antes de emitir cualquier observación, verificar contra la lista "Reglas de NO observar" (ver más abajo).1267. Antes de declarar "ausente" un comprobante de pago o una constancia SUNAT, **certificar** que se aplicó OCR sobre todas las páginas image-only del expediente y que se buscó por RUC + "1609" + "Suspensión" sobre el corpus consolidado completo.1278. Las constancias, RHE y comprobantes pueden estar en CUALQUIER PDF y CUALQUIER página del expediente. Nunca asumir que un documento debe estar "junto" o "cerca" de otro.1289. **Antes de observar una supuesta discrepancia de montos, entender qué representa CADA campo del formato** (nivel contrato vs nivel armada). Ver "Lectura de campos por nivel" más abajo. Un campo que responde a otra pregunta no es una contradicción.129130---131132## Lectura de campos por nivel: CONTRATO vs ARMADA (REGLA OBLIGATORIA — v9.9)133134En los expedientes MINEDU conviven formatos que razonan a **nivel de contrato** y formatos que razonan a **nivel de armada**. Confundirlos produce falsas observaciones.135136| Documento | Nivel | Campos típicos |137|---|---|---|138| Orden de Servicio / Compra (SIGA) | Contrato, con detalle de cuotas | Monto total del contrato; cuotas 001, 002… con su plazo e importe |139| Informe/Cuadro de Aplicación de Penalidad (SGC) | **Contrato** para el residual, **armada** para la base de cálculo | "1. Monto del contrato", "3. Saldo a pagar", "7. Monto a pagar" son CONTRACTUALES; la penalidad diaria se calcula con el monto de la ARMADA |140| Proveído de Devengado (SGC) | **Armada** | SUB TOTAL del comprobante y de cada penalidad; TOTAL S/. = lo que se paga en ESTA armada |141| Conformidad | Armada | Monto de armada a pagar, N° de armada, fechas de la armada |142143**Consecuencia práctica**: en el cuadro de penalidad, `7. Monto a pagar` = `monto del contrato − esa penalidad`. NO es el pago de la armada y **NO tiene por qué coincidir con el TOTAL del Proveído**. Cuando hay dos o más penalidades en la misma armada, cada cuadro muestra el residual contractual considerando **solo la suya**; la acumulación aparece únicamente en el Proveído. **Eso es el comportamiento normal del formato SGC y NO se observa.**144145Lo que sí debe cruzarse es el **importe de la penalidad** (y su base de cálculo), no el residual contractual.146147---148149## Estructura de análisis — 8 verificaciones obligatorias150151Aplicar en este orden, una por una:152153### 1. CLASIFICACIÓN DEL EXPEDIENTE154Identificar:155- Tipo de contratación: Contratación Menor (CM ≤ 8 UIT), Adjudicación Simplificada, Concurso Público, Consultor Individual, Servicios Básicos, Acuerdo Marco, etc.156- Tipo de pago: armada única / 1ra / 2da / posterior / única.157- Naturaleza del proveedor: persona natural / persona jurídica.158- Tipo de comprobante: Factura Electrónica / RHE / Boleto aéreo / otro.159- Nº de Orden de Servicio o Compra y Carta Contrato (si aplica).160161### 2. VERIFICACIÓN DOCUMENTAL162Ver lista completa en `references/checklist-documentos.md`. Marcar cada documento como ✔ presente / ⚠ incompleto / ❌ ausente.163164### 3. COHERENCIA DOCUMENTAL165Cruzar entre TDR, OS/OC, Carta Contrato, Conformidad, RHE/Factura, cuadros de penalidad y Proveído de devengado:166- Nº de armada167- Monto de la armada y monto a pagar (respetando el nivel de cada campo)168- Nº de OS/OC169- Nº de contrato (si lo hay)170- Razón social y RUC del proveedor171- Descripción del servicio / bien172- N° del informe que la Conformidad declara como sustento173174### 4. VERIFICACIÓN MATEMÁTICA175- Monto total contractual = suma de todas las armadas previstas.176- **Saldo por devengar (regla crítica)**: en Control Previo, el devengado AÚN NO se ha registrado en SIAF. Por lo tanto:177 `Saldo por devengar = Monto total – Armadas YA pagadas (sin restar la armada actual)`178 La armada que se está revisando puede estar incluida en el saldo por devengar. **NO observar** por este motivo.179- **Neto de la armada** = monto de la armada − suma de TODAS las deducciones de esa armada (penalidades, retención de garantía si corresponde). Debe coincidir con el TOTAL del Proveído. Esta suma la hace el control previo; no se le exige al cuadro de penalidad (ver "Lectura de campos por nivel").180181### 5. VERIFICACIÓN DE PLAZOS (cómputo inclusivo)182- El día de inicio cuenta como **día 1**.183- Sumar días calendario inclusivos.184- Si el vencimiento cae en sábado, domingo o feriado, la entrega el primer día hábil siguiente es **válida** (y la fecha límite del cuadro de penalidad puede reflejar ese corrimiento: no observarlo).185- **NO observar presentación anticipada** del entregable o de la conformidad.186187### 6. VERIFICACIÓN TRIBUTARIA (RHE / Factura)188Reglas obligatorias:189- **Recibo por Honorarios Electrónico (RHE)**:190 - Si **tiene retención del 8%** efectiva (importe distinto de cero en "Retención (8%) IR") → **OK**, no exigir suspensión.191 - Si **NO tiene retención** (Retención 8% IR = 0.00) → **buscar en TODO el expediente la Constancia de Suspensión de Retenciones de Cuarta Categoría** otorgada por SUNAT (vigente para el ejercicio fiscal en curso). Solo si NO se encuentra → **observar**.192 - **IMPORTANTE — Inciso A del Art. 33 LIR NO es exención**: la mención "Inciso A del Artículo 33 de la Ley del Impuesto a la Renta" aparece **siempre** en todos los RHE como referencia normativa estándar (define qué son rentas de cuarta categoría). **NO debe interpretarse como base de exoneración de retención**. La única base válida para no retener es la Constancia de Suspensión SUNAT vigente.193 - **PROHIBIDO**: observar incumplimiento solo porque el monto sea > S/ 1,500. El umbral lo define la suspensión SUNAT, no el monto del recibo.194 - **PROHIBIDO**: exigir firma manuscrita en RHE o factura electrónica (son documentos electrónicos válidos por sí mismos).195 - El proveído consigna el **monto bruto** (Total por honorarios), no el neto. Que el bruto del proveído sea mayor al neto del RHE por la retención **NO es inconsistencia**.196- **Factura electrónica**: verificar detracción si el servicio está afecto (consultar tipo de servicio en SUNAT).197- Validar: importe neto, condición "al crédito", fecha de emisión dentro del ejercicio fiscal vigente.198- En boletos aéreos: el boleto **es** el comprobante de pago; no exigir factura adicional.199200### 7. VERIFICACIÓN DE FIRMAS Y SUSTENTOS201Reglas alineadas con el skill `control-previo-viaticos`:202- La firma puede ser **digital** o **manuscrita**.203- **Firma digital** (Ley 27269): se considera válida si el documento presenta el bloque "FAU 20131370998 hard/soft", el sello "FIRMADO DIGITALMENTE", o un QR/URL de validación institucional (p.ej. apps.firmaperu.gob.pe, esinad.minedu.gob.pe).204- **Firma manuscrita**: debe ir acompañada de **nombres, apellidos, DNI y cargo** del firmante. Si falta alguno, la firma es **incompleta**.205- **ÚNICA EXCEPCIÓN**: NO exigir firma en RHE ni en Factura Electrónica (son comprobantes electrónicos válidos por sí mismos). **Ningún otro documento del expediente está exento**, y en particular NO lo están los cuadros de penalidad ni los formatos generados por sistema (SIGA/SGC).206- **SOLO observar** la ausencia de firma cuando NO exista ninguna de las formas válidas anteriores, tras revisar TODAS las páginas del PDF (ver "Firmas dispersas en múltiples páginas") y tras OCR y **render visual** si la página es imagen.207208Para cada documento del checklist, registrar el campo `firma` con uno de: `OK` (firma digital o manuscrita completa), `N.A.` (SOLO RHE/Factura y documentos no suscribibles como constancias SUNAT o cargos de mesa de partes), `INCOMPLETO` (manuscrita sin DNI/cargo), `AUSENTE`.209210> **v9.9 — PROHIBIDO marcar `firma: "N.A."` en un cuadro o informe de aplicación de penalidad.** Ese documento SIEMPRE requiere suscripción; si no la tiene, va `firma: "AUSENTE"` y `estado: "OBSERVABLE"`.211212---213214## Reglas de NO observar (CRÍTICAS — evitan falsos positivos)215216Antes de emitir cualquier observación, verificar que NO sea uno de estos casos. Si lo es, **no observar**:2172181. **Presentación anticipada**: la conformidad, el entregable o el RHE pueden ser anteriores al fin nominal de la armada.2192. **Saldo por devengar incluyendo la armada actual**: es correcto en Control Previo.2203. **No es primer pago**: no exigir certificación presupuestal ni la propia OS/OC en cada armada (basta que estén en el primer expediente del contrato).2214. **Diferencia entre monto bruto del proveído y monto neto del RHE** por la retención del 8%: NO es inconsistencia, es lo esperado.2225. **RHE o factura electrónica sin firma manuscrita**: válidos.2236. **Campos "Nº de Contrato" o "Nº de Requerimiento" en blanco** cuando se trata de Carta Contrato bajo régimen de Contratación Menor (CM): no es observable.2247. **Errores menores de tipeo o información accesoria** que no afecten la integridad del expediente: por Ley 27444 no se puede detener el pago.2258. **Numeración de anexos distinta** a la directiva más reciente cuando se usan formatos institucionales aún vigentes.2269. **Comprobantes adicionales no listados en TDR**: no generan observación.22710. **Copia previa sin firma de un documento que también obra firmado** (p.ej. dos versiones del mismo Proveído, una sin suscribir y otra suscrita horas después): prevalece la versión suscrita; dejar nota, no observar.22811. **"Monto a pagar" / "Saldo a pagar" contractual del cuadro de penalidad que no coincide con el TOTAL del Proveído** (v9.9): esos campos del formato SGC son de nivel CONTRATO y consideran solo la penalidad de ese cuadro. NO es inconsistencia. Lo que se cruza contra el Proveído es el **importe de la penalidad**, no el residual.22912. **Fecha límite del cuadro de penalidad corrida al primer día hábil** cuando el vencimiento cayó sábado, domingo o feriado: es correcto y favorece al contratista.23013. **Penalidad por mora computada desde el vencimiento del plazo para subsanar observaciones**, cuando el TDR lo prevé: es penalidad por mora, NO una "penalidad adicional"; no observarla aunque el TDR diga "penalidades adicionales: no corresponde".23114. **Documentos ajenos inocuos** (v10.0): PDFs de otro expediente SINAD que no tienen relación alguna con el pago (circulares, oficios múltiples, directivas, resoluciones generales, comunicaciones institucionales) y que no alteran, contradicen ni sustituyen ningún dato o documento del expediente. Si el expediente está completo, NO se observan (Ley 27444): solo se deja una nota "descartar del legajo" y el veredicto sigue siendo "No hay observaciones".232233---234235## Formato de respuesta obligatorio236237Empezar SIEMPRE con una de estas dos líneas exactas:238239- **"Sí hay observaciones."**240- **"No hay observaciones."**241242Si hay observaciones, enumerarlas de forma directa, una por línea numerada, sin justificar cumplimiento, sin análisis positivo, sin indicar archivo ni página (aunque internamente sí se debe identificar).243244Tono: directo, técnico, sin adornos.245246---247248## Datos fijos de las Unidades Ejecutoras MINEDU249250| UE | Nombre | RUC | Dirección fiscal |251|----|--------|-----|------------------|252| 024 | Ministerio de Educación Sede Central | 20131370998 | Calle El Comercio 193 San Borja |253| 026 | Programa Educación Básica Para Todos | 20380795907 | Calle El Comercio 193 San Borja |254| 116 | Colegio Mayor Secundario Presidente del Perú | 20546369383 | Calle El Comercio 193 San Borja |255256---257258## Informe Excel OBLIGATORIO por expediente259260> **FORMATO VIGENTE — leer antes de generar nada.** El libro que se entrega es el del **Protocolo v1.1, siete hojas**, definido en la skill `informe-control-previo-os-oc`: DICTAMEN, PROVEIDO, EXPEDIENTE, FIRMAS, TDR VALIDACIONES, TRIBUTARIO y PROTOCOLO ACUERDOS. Esa skill manda en nombres de hoja, cuadros, paleta, columna de página en formato TEXTO y orden de construcción.261>262> Todo lo que sigue en esta sección conserva su valor como **contenido y contrato de datos**: el JSON, el orden canónico de documentos, las reglas de hyperlinks y el generador `scripts/generar_checklist.py` siguen siendo válidos y NO se eliminan. Se usan como respaldo cuando la skill de salida no esté disponible, y como fuente de los datos que alimentan las siete hojas cuando sí lo esté. Ante conflicto de forma, manda el Protocolo v1.1; ante conflicto de norma o criterio, manda esta skill.263264Al finalizar el análisis de cada expediente, **siempre** generar un archivo Excel con el checklist completo y guardarlo **dentro de la misma carpeta del expediente** (no en Downloads, no en outputs). Nombre fijo:265266```267INFORME_CONTROL_PREVIO_<NRO_EXPEDIENTE>.xlsx268```269270Para generarlo usar el script incluido en la skill:271272```bash273python3 scripts/generar_checklist.py "<carpeta_expediente_VM>" /tmp/datos_expediente.json \274 --host-base "C:\\Users\\<usuario>\\...\\<EXPEDIENTE>"275```276277El parámetro `--host-base` es **OBLIGATORIO**: es la ruta HOST (Windows) de la carpeta del expediente, necesaria para construir hyperlinks `file:///...#page=N` que abran el PDF directamente en la página correcta. Si los archivos vinieron por montaje de carpeta, esa ruta es la que se usó al montar.278279Si el Excel ya está abierto en Excel/WPS al momento de escribirlo, la escritura falla: avisar al usuario que lo cierre y reintentar. NO cambiar el nombre del archivo para esquivar el bloqueo.280281donde `/tmp/datos_expediente.json` es un JSON construido por Claude con el inventario completo. La estructura del JSON está documentada en el encabezado de `scripts/generar_checklist.py`. Campos mínimos obligatorios:282283- `expediente`, `ue`, `tipo_contratacion`, `orden`, `proveedor`, `ruc`284- `monto_total`, `n_armadas`, `armada_actual`, `monto_armada`285- `fecha_inicio`, `fecha_fin`, `fecha_entregable`, `fecha_conformidad`286- `veredicto` ("No hay observaciones" o "Sí hay observaciones")287- `observaciones` (lista vacía si no hay)288- `checklist`: cada ítem con `item`, `estado` (PRESENTE/AUSENTE/OBSERVABLE/N.A.), `archivo` (nombre EXACTO del PDF tal como aparece en la carpeta — el nombre será el hipervínculo), `pagina` (número entero — primera página donde aparece el documento), `exigible_en` ("1ra" para documentos base que solo se exigen en el primer pago, "cada armada" para los exigibles en todas las armadas), `firma` (OK/N.A./INCOMPLETO/AUSENTE), `comentario`289290**Distinción CRÍTICA Conformidad ≠ Proveído de Devengado**:291- La **Conformidad** es el documento técnico emitido por el área usuaria que da por aceptado el entregable. Suele incluir, en formato MINEDU consolidado, una tabla "DETALLE DE LA PRESTACIÓN" con OS, monto, armada, fechas y referencia al Informe técnico. Esa tabla NO es el Proveído.292- El **Proveído de Devengado** es un documento DISTINTO, generado por el área administrativa para autorizar el devengado. **Es exigible SIEMPRE en TODAS las armadas** del expediente que llega a control previo. Si no está → **AUSENTE → OBSERVACIÓN**.293294**Separación de exigibilidad por armada — IMPRESCINDIBLE**:295296Sólo mostrar y exigir lo que corresponde según la armada en revisión.297298### A) PRIMER PAGO (1ra armada) — REVISIÓN COMPLETA Y PROFUNDA299Se debe verificar todo lo relativo a los antecedentes de la contratación, además de los documentos de la armada actual:3003011. **Términos de Referencia (TDR)** firmados por el área usuaria — leer a fondo: requisitos del proveedor (nivel de formación, capacitación, experiencia general en años, experiencia específica en años), unidad orgánica que otorga la conformidad, forma de pago, número de armadas, plazo, régimen de penalidades y garantías.3022. **Verificación del perfil del proveedor vs requisitos del TDR**: el CV/Anexo del proveedor (Certificado Único Laboral, certificados de trabajo, diplomas, títulos, constancias) debe **acreditar** el nivel de formación exigido (titulado/bachiller/diplomado/maestría según el caso) y los años de experiencia general y específica solicitados. Si falta alguna acreditación → OBSERVACIÓN.3033. **Estructura de Costos (Anexo 2)**.3044. **Declaración Jurada del Proveedor (Anexo 3)**.3055. **Cotización / propuesta económica**.3066. **Autorización VMGP** y formato A correspondiente.3077. **Cuadro CM (Contratación Menor)** o equivalente según tipo de contratación.3088. **Anexos de contratación**: RNP vigente, declaraciones juradas de no impedimentos, ficha RUC con estado ACTIVO/HABIDO, política institucional firmada, etc.3099. **Certificación de Crédito Presupuestal (CCP)** o, en su defecto, evidencia de SIAF asignado en la OS.31010. **Orden de Servicio / Orden de Compra** firmada digitalmente por las áreas correspondientes.31111. **Carta Contrato** (cuando aplique) o equivalente para Contratación Menor.31212. **CCI - Carta de Autorización de Pago** firmada por el proveedor (debe coincidir el CCI con el banco indicado).31313. **Constancia de Suspensión 4ta Categoría (Form. 1609 SUNAT)** vigente para el ejercicio fiscal — si el RHE no tiene retención.31414. **Constancia de recepción** del entregable (mesa de partes / SIGA-SISMEC).31515. **Entregable / producto** físico del 1er entregable.31616. **Informe técnico** del especialista responsable.31717. **Conformidad del área usuaria**: firmada por **la unidad orgánica indicada en el TDR** como responsable de otorgar la conformidad. Si la firma la otra área → OBSERVACIÓN.31818. **Memorando de remisión**.31919. **RHE / Factura Electrónica** de la armada — verificar retención 8% o Constancia 1609.32020. **Cuadro(s) de Aplicación de Penalidades** — cuando haya mora o deducción en el proveído; **firmado** y con importe coherente con el proveído (ver Verificación 8).32121. **Proveído de Devengado** (siempre exigible).322323Cruzar coherencia: proveedor, RUC, OS, monto contractual, monto armada, deducciones, monto neto, descripción del servicio. Cualquier contradicción real entre documentos del antecedente → OBSERVACIÓN.324325### B) SEGUNDO PAGO en adelante (2da, 3ra... armada) — REVISIÓN SIMPLIFICADA326Solo se exige y muestra:3273281. **Constancia de aceptación / recepción** del entregable de la armada.3292. **Entregable** del periodo.3303. **Informe técnico** del área usuaria (de la armada).3314. **Conformidad** de la armada (firmada por la unidad indicada en el TDR).3325. **RHE / Factura** de la armada — siempre verificar si corresponde retención 8% o si está la Constancia 1609 vigente.3336. **Cuadro(s) de Aplicación de Penalidades** de la armada, firmados, si hubo mora o deducción.3347. **Proveído de Devengado** (siempre exigible).335336NO se vuelven a exigir TDR, Anexo 3, CCI, CCP, RNP, etc., ya que se presentaron en la 1ra armada.337338### Codificación en `exigible_en` del JSON339- `"1ra"` → ítem que solo se exige en la 1ra armada (NO se mostrará en armadas posteriores).340- `"cada armada"` → ítem que se exige en cada armada (incluyendo Proveído de Devengado y cuadros de penalidad de esa armada).341- `accesos_rapidos`: lista corta con los documentos clave (RHE, Constancia 1609, Proveído de Devengado, OS/OC, Conformidad, Informe técnico, Memorando, Penalidad si la hay) cada uno con `doc`, `archivo`, `pagina` — se renderiza en una hoja "Accesos rápidos" con hipervínculos directos342- `coherencia`: cruce entre documentos (proveedor, RUC, OS, armada, importe de penalidades, monto neto, descripción)343- `tributario`: datos del RHE/factura, retención y constancia 1609 (con archivo y página donde se ubicó)344345**Reglas obligatorias del checklist**:346- Cada documento del checklist DEBE indicar el **nombre exacto del archivo PDF** y la **página** (o rango de páginas) donde aparece. Si fue ubicado vía OCR, indicarlo en `comentario` ("vía OCR").347- Cada documento DEBE indicar a qué armada aplica (1ra / 2da / 3ra / todas). Documentos base del contrato (TDR, OS, Carta Contrato, Estructura de Costos) → "todas". Documentos por armada (Conformidad, Informe técnico, RHE, cuadros de penalidad, Anexo administrativo, Proveído) → la armada en revisión.348- Si la armada actual NO es la 1ra, en el comentario de los documentos base anotar: "presentado en la 1ra armada (no exigible)".349350Hoja "Observaciones": vacía si veredicto es No hay observaciones; en caso contrario, una fila por observación con descripción + fundamento normativo + gravedad (A subsanable / B devolutivo).351352Si el usuario adicionalmente lo pide, también generar `INFORME_CP_OS_[NRO_EXPEDIENTE].xlsx` extendido usando la skill `xlsx` con las siguientes hojas:3533541. **Datos del Expediente** — Nº expediente, OS/OC, Carta Contrato, proveedor, RUC, monto total, armada actual, periodo, UE.3552. **Inventario de Documentos** — Nº / nombre / fecha / observación.3563. **Checklist Documental** — documento requerido / estado (PRESENTE/AUSENTE/OBSERVABLE/N.A.) / observación.3574. **Coherencia Documental** — campo / valor en doc 1 / valor en doc 2 / resultado.3585. **Verificación Matemática** — monto contractual / armadas pagadas / armada actual / deducciones / neto / saldo / fórmula.3596. **Verificación de Plazos** — fecha inicio / fecha fin / días contractuales / fecha entregable / fecha conformidad / resultado.3607. **Verificación Tributaria** — RHE/Factura / fecha / importe / retención / suspensión / inciso art. 33 / detracción / resultado.3618. **Observaciones Consolidadas** — Nº / descripción / fundamento / gravedad (A subsanable / B devolutivo) / veredicto final.362363Formato condicional: rojo para OBSERVABLE/AUSENTE/INCONSISTENTE, verde para CONFORME/PRESENTE/CONSISTENTE.364365---366367## Procesamiento de MÚLTIPLES expedientes en paralelo368369Cuando el usuario indique de manera explícita varios expedientes (por nombre o por ruta), procesarlos **en paralelo** lanzando un subagente independiente por expediente. Cada subagente debe:3703711. Montar la carpeta del expediente si aún no está montada.3722. Ejecutar el pipeline OCR completo (Paso 0 + Paso 1) sobre TODOS los PDFs de SU expediente y construir su propio `_CORPUS.txt` aislado.3733. Aplicar las 8 verificaciones de control previo sobre su corpus.3744. Construir el JSON de datos del expediente.3755. Ejecutar `scripts/generar_checklist.py` con la ruta VM y la ruta HOST de SU expediente como `--host-base`, generando el `INFORME_CONTROL_PREVIO_<EXPEDIENTE>.xlsx` **dentro de la propia carpeta del expediente**.3766. Devolver al orquestador: `{expediente, veredicto, n_observaciones, ruta_xlsx}`.377378**Reglas críticas del paralelismo**:379380- Cada subagente trabaja en su propio directorio temporal (`/tmp/cp_<expediente>/`) — nunca compartir corpus entre expedientes.381- El orquestador NO emite veredictos por su cuenta; solo consolida los resultados de los subagentes en una tabla resumen al final.382- Capacidad práctica: 5 a 10 expedientes en paralelo en una sola tanda. Si el usuario pasa más de 10, procesarlos en oleadas.383- El orquestador debe entregar al final una tabla resumen `{expediente | tipo (OS/OC) | armada | proveedor | monto | veredicto | observaciones | link al xlsx}` y un link a cada Excel individual.384385Si el usuario no pide expresamente varios expedientes, NO se lanzan subagentes — la revisión es secuencial dentro de la conversación principal.386387---388389## Arquitectura multiagente recomendada (para expedientes complejos o lotes)390391Cuando un expediente sea grande (>50 páginas totales) o cuando sea parte de un lote, el subagente del expediente puede a su vez delegar dimensiones específicas en agentes especializados. Cada agente solo "ve" su dimensión, lo que reduce alucinaciones y permite trazabilidad:3923931. **Agente OCR/Visión** — corre `pdftoppm + tesseract` sobre todas las páginas image-only y produce el corpus consolidado. Solo entrega texto, no juicios.3942. **Agente Documental/Pautas** — aplica el checklist normativo sobre el corpus y marca PRESENTE/AUSENTE con archivo y página.3953. **Agente TDR/Perfil** (solo 1er pago) — extrae los requisitos del TDR (formación, experiencia general, experiencia específica, unidad que da la conformidad) y los confronta contra el CV/Anexos del proveedor (CUL, certificados, diplomas, títulos). Devuelve OK / INCONSISTENTE por requisito.3964. **Agente Tributario** — RHE/factura, retención 8%, Constancia 1609, detracción, coherencia bruto/neto, regla del Inciso A Art. 33 LIR.3975. **Agente Coherencia** — cruza proveedor, RUC, OS, monto, armada, importe de penalidades, monto neto y descripción del servicio entre TDR, OS, Conformidad, Informe técnico, RHE, cuadros de penalidad, Proveído y Memorando. Reporta cualquier contradicción real, respetando la regla de "Lectura de campos por nivel".3986. **Agente Plazos y Penalidades** — cómputo de plazos, presentación anticipada permitida, fecha de entrega vs fecha fin armada, cálculo, **firma** e importe de las penalidades, incumplimientos contractuales mencionados en Conformidad/Informe técnico/Memorando.3997. **Agente Firmas** — verifica que todo documento exigible tenga firma válida (digital con FAU 20131370998, manuscrita con DNI+cargo, o QR institucional). Verifica especialmente que la **Conformidad esté firmada por la unidad orgánica indicada en el TDR** y que **los cuadros de penalidad estén suscritos**.4008. **Agente Auditor (orquestador)** — consolida los hallazgos, aplica las "Reglas de NO observar", emite el veredicto final y dispara `generar_checklist.py`.401402Esta arquitectura es opcional. Para expedientes pequeños (<30 páginas), la conversación principal hace todo.403404---405406## Verificación 8 — PENALIDADES E INCUMPLIMIENTOS CONTRACTUALES407408Verificación obligatoria por cada armada:4094101. Comparar `fecha_entregable` vs `fecha_fin_armada`:411 - Si entregable ≤ fin de armada → SIN PENALIDAD.412 - Si entregable > fin de armada → calcular días de mora y penalidad: `0.10 / (0.40 × plazo_del_entregable) × monto_armada × días_mora`, con tope del 10% del monto del contrato (Art. 120 del Reglamento de la Ley 32069 / Pautas MINEDU). En CM la fórmula puede ser distinta — verificar TDR.413 - **Mora en la subsanación**: si el TDR prevé que, vencido el plazo otorgado para subsanar observaciones, corresponde penalidad por mora, esa penalidad es legítima y NO es una "penalidad adicional" — se computa desde el vencimiento del plazo para subsanar hasta la fecha de reingreso. Verificar además que el plazo otorgado no exceda el tope del TDR (típicamente 30% del plazo del entregable).4142. Buscar en Conformidad, Informe técnico, Memorando y Proveído cualquier mención a:415 - "incumplimiento", "subsanación", "observado", "rechazado", "se aplica penalidad", "deducción", "descuento", "amonestación", "suspensión".4163. Si la Conformidad menciona penalidad pero el monto del Proveído NO la deduce → OBSERVACIÓN.4174. Si el entregable se presentó tarde y NO hay penalidad calculada en el expediente → OBSERVACIÓN.4185. Si hay incumplimientos contractuales documentados sin justificación o subsanación → OBSERVACIÓN.419420### 8.A — FIRMA DE LOS CUADROS DE PENALIDAD (REGLA OBLIGATORIA — v9.9)421422Todo "INFORME/CUADRO DE APLICACIÓN DE PENALIDAD" (por mora, por observación/subsanación, o por cualquier otra causal) que sustente una deducción en el Proveído **DEBE estar suscrito**. Que provenga del SGC/SIGA y traiga cabecera con fecha y hora del sistema **NO reemplaza la firma**.423424Procedimiento obligatorio antes de dar por conforme un cuadro de penalidad:4251. Extraer el texto de TODAS sus páginas y buscar `FAU`, `FIRMADO DIGITALMENTE`, `En señal de conformidad`, `Doy V° B°`, o un QR/URL de validación institucional.4262. Si el texto no arroja firma, **renderizar la página a imagen (`pdftoppm -r 130` o superior) y verificarla VISUALMENTE**, porque los sellos y firmas gráficas no siempre son texto extraíble.4273. Solo después de ambos pasos se puede concluir.428429Resultado:430- Sin firma digital, sin firma manuscrita con nombres + DNI + cargo, y sin sello del funcionario responsable → **`firma: "AUSENTE"`, `estado: "OBSERVABLE"` y OBSERVACIÓN OBLIGATORIA**.431- **PROHIBIDO** marcar `firma: "N.A."` en un cuadro de penalidad. Esa codificación está reservada a RHE/facturas electrónicas y a documentos no suscribibles (constancias SUNAT, cargos de mesa de partes).432- **PROHIBIDO** despachar la falta de firma como "error formal accesorio" bajo la Ley 27444: el cuadro es el sustento de una deducción sobre el pago del contratista.433434### 8.B — LO QUE SÍ SE CRUZA CONTRA EL PROVEÍDO (y lo que NO) — v9.9435436**SÍ se verifica:**4371. **Importe de cada penalidad**: el monto del cuadro debe aparecer idéntico como línea PENALIDAD en el Proveído.4382. **Base y fórmula de cálculo**: `0.10 × monto_armada / (0.40 × plazo_del_entregable)` por día de retraso, salvo que el TDR disponga otra. Verificar que la base sea el monto de la armada y el plazo el del entregable.4393. **Correspondencia uno a uno**: cada penalidad deducida en el Proveído tiene su cuadro, y cada cuadro corresponde a una deducción del Proveído. Ni de más ni de menos.4404. **Neto de la armada**: `monto_armada − Σ penalidades = TOTAL del Proveído`. Esta suma la hace el control previo.4415. **Tope acumulado**: la suma de penalidades por mora y otras penalidades no puede exceder el 10% del monto del contrato, considerando las armadas anteriores.4426. **Firma** (ver 8.A).443444**NO se observa (error cometido en la primera revisión del caso DIFODS2026-INT-0567802):**445- Que el campo `7. Monto a pagar` del cuadro no coincida con el TOTAL del Proveído. Ese campo, junto con `1. Monto del contrato` y `3. Saldo a pagar`, es de **nivel contrato** y considera **solo la penalidad de ese cuadro**. Con dos penalidades en la misma armada, cada cuadro mostrará el mismo residual contractual y ninguno reflejará el neto de la armada: **así funciona el formato SGC**. Ver "Lectura de campos por nivel".446447### 8.C — Marcado en el checklist448449Para cada ítem de penalidad:450- `N.A.` → solo si el entregable llegó a tiempo y no hay observación documental alguna (no hay penalidad que aplicar).451- `PRESENTE` → la penalidad fue calculada correctamente, el cuadro está **firmado** y su importe **se traslada** correctamente al Proveído.452- `OBSERVABLE` (rojo) → el cuadro existe pero no está firmado, o su base de cálculo o su importe no corresponden a lo deducido en el Proveído.453- `AUSENTE` (rojo) → correspondía aplicar penalidad y no figura el cuadro.454455Si la conformidad técnica indica "EL CONTRATISTA SI INCURRIO EN PENALIDADES" o similar y el expediente NO incluye el Cuadro de Aplicación de Penalidades detallado y firmado (Pautas MINEDU numeral 11) → **OBSERVACIÓN OBLIGATORIA**.456457### Caso de referencia (v9.9)458DIFODS2026-INT-0567802 (OS 0005220-2026, ZACARIAS MERCADO CARLOS MANUEL, UE 026, armada 1 de 2). Dos lecciones opuestas del mismo expediente:459- **Falso negativo corregido**: los dos cuadros de penalidad llegaron **sin firma alguna** y en la primera revisión se marcaron erróneamente como `firma: "N.A."` por ser reportes de sistema. De ahí la regla 8.A.460- **Falso positivo corregido**: se observó que cada cuadro consignaba "Monto a pagar S/ 13,943.55" mientras el Proveído N° 12847 pagaba S/ 6,887.10, y se calificó como inconsistencia. **Era incorrecto**: 13,943.55 = 14,000.00 − 56.45 es el residual contractual del formato, no el pago de la armada; el importe de la penalidad (S/ 56.45 por cada cuadro) sí se trasladaba correctamente al Proveído, y la base de cálculo era la correcta (0.10 × 7,000 / (0.40 × 31)). De ahí las reglas 8.B y "Lectura de campos por nivel": entender el nivel de cada campo ANTES de observar una diferencia de montos.461462---463464## Informe de Conformidad (regla condicional)465466El **Informe de Conformidad** NO es un documento exigido en todos los casos por las pautas MINEDU. Sin embargo:467468- **Si el documento de Conformidad menciona expresamente** "Informe de Conformidad N° X" o "se sustenta en el Informe de Conformidad…" o "según Informe de Conformidad…" o "Conformidad generada en base a Informe N° X", entonces ese informe **DEBE estar adjunto al expediente y firmado** por el área usuaria. Si no aparece — o si el informe adjunto tiene un **número distinto** al citado — → **OBSERVACIÓN**.469- Si la Conformidad solo se sustenta en un "Informe técnico" del especialista (sin usar la frase "Informe de Conformidad"), basta con verificar el Informe técnico — no se exige adicionalmente un Informe de Conformidad.470- **No confundir**: "Informe técnico" del especialista ≠ "Informe de Conformidad" del área usuaria. Cuando ambos términos aparecen distinguirlos en el checklist como ítems separados.471472Cuando aplique, agregar al checklist el ítem "Informe de Conformidad" con su archivo y página, exigible en `cada armada`, y verificar firma del responsable del área usuaria.473474---475476## Coherencia obligatoria en TODOS los pagos477478Regla bloqueante (aplica tanto a 1er pago como a pagos siguientes):479480> **Cualquier contradicción REAL entre dos o más documentos del expediente sobre datos sustantivos (proveedor481482…(truncated)