Motor de Redacción de Informes de Viabilidad (Informe de Viabilidad de Proyectos Industriales · Manual Completo de Entrega Profesional)
Nota de morfología del skill: Este skill = versión de entrega «Word completo + hoja de cálculo Excel de estados financieros vinculados» para la redacción de informes de viabilidad. Formato del producto: ① Borrador completo del informe en Word (portada → cuerpo → anexos, según el esquema 2023 de la NDRC) ② Hoja de cálculo de inversión en Excel (con todas las fórmulas ya conectadas). Skills hermanos de la misma familia de negocio (diferenciados por formato de entrega): Versión PPT para presentación del informe de viabilidad, Versión PDF del informe de viabilidad — pendientes de desarrollo (en planificación, ver hoja de ruta de skills en README). Uso rápido: El cliente/entidad del proyecto proporciona los materiales → este motor sigue seis pasos → se entregan los tres archivos (informe docx + hoja de cálculo xlsx + instrucciones docx) en el chat. Este motor se ha consolidado a partir de la práctica real de un gran proyecto de septiembre de 2026 (clúster industrial oceánico de 300 mil millones · 9 volúmenes · 200 000 palabras), incluyendo todos los puntos a evitar.
Actualización v1.6 (en esta versión): ① Se añaden
report_qa.py(QA de documentos largos con caché/aserción/expresiones regulares) ypipeline_check.py(autoverificación de la cadena de producción), biblioteca estándar de Python puro, sin dependencias, listo para usar; ② Se añaden los «Tres controles de calidad del informe» y la «Lista de verificación previa a la entrega», transformando la entrega basada en la intuición en una entrega verificada punto por punto; ③ Se complementan las «Reglas férreas de paginación e imágenes (la renderización en Word ≠ renderización en LibreOffice)» y la entrega en PDF; ④ Se añade el capítulo «Revisión y alineación de criterios» para evitar contratiempos al recibir correcciones del cliente; ⑤ Se añaden la tabla de verificación de criterios de cálculo financiero y de conciliación de los cuatro estados, y los requisitos de análisis de sensibilidad.
1. Condiciones de activación y posicionamiento
Activación: El cliente/entidad solicitante necesita un «informe de viabilidad», «estudio de viabilidad», «informe de proyecto» o «informe de debida diligencia para financiación»; el cliente ha proporcionado materiales dispersos (nombre del proyecto/ubicación/escala/algunas imágenes) y necesita un informe formal para presentar a inversores, para aprobación o para atraer inversión.
División del trabajo con skills hermanos:
| Skill | Uso |
|---|---|
| Este motor | Informe de viabilidad para entrega externa al cliente (estándar de cumplimiento = esquema 2023 de la NDRC) |
| report-production-pipeline | Cadena de producción de informes generales (cinco fases + script de autoverificación), los pasos 2 a 4 de este motor son isomórficos con él |
| feasibility-study-writing | Toma de decisiones interna / argumentación de planes de negocio |
| mh-calculation | Motor de cálculo financiero (17 tablas, este motor lo llama para los cálculos) |
Línea roja de la entrega comercial (fabricación invisible):
- El cliente firma la entrega con su propio nombre, nosotros solo hacemos el contenido — la entidad responsable, la fecha y las firmas se dejan en blanco para que el cliente las complete
- Nunca exponer rastros de IA (nombres de archivo sin «final/AI/doble revisión», metadatos limpios, sin símbolos de IA en el texto)
- Sello de cualificación: indicar al cliente que busque una unidad de consultoría de ingeniería cualificada para colaborar (línea roja de cumplimiento + punto de entrada para captación de clientes)
- Anclaje de precio: vender «rápido + profesional», estándar personalizado de 8000 a 15 000 RMB, no hacer trabajos de menos de 3000 RMB
2. Estándar de oro del sector: dos esquemas (clasificar antes de escribir)
Aviso de inversión y desarrollo [2023] n.º 304 de la NDRC: «Esquema y descripción de la redacción de informes de viabilidad de proyectos de inversión» — la única base de cumplimiento para redactar informes de viabilidad.
| Clasificación | Proyecto de inversión gubernamental (esquema general de 11 capítulos) | Proyecto de inversión empresarial (esquema de referencia de 10 capítulos) |
|---|---|---|
| Financiación | Inversión gubernamental / aportación de capital / bonos especiales | Autofinanciación empresarial / financiación de mercado |
| Cliente típico | Empresas municipales / plataformas / proyectos gubernamentales | Empresas privadas / inversión industrial / propiedad mixta |
| Énfasis | Necesidad de construcción / beneficios sociales / equilibrio financiero | Demanda del mercado / rentabilidad / modelo de negocio |
Los requisitos completos capítulo por capítulo se encuentran en references/ (gov-dagang-2023.md para la versión gubernamental, ent-dagang-2023.md para la versión empresarial). Consultar capítulo por capítulo al escribir.
Autoverificación de la clasificación (si se clasifica mal = rehacer todo el informe, responder primero a estas cuatro preguntas)
- ¿De dónde viene el dinero?: Fondos fiscales / bonos especiales / aportación de plataforma gubernamental → versión gubernamental; autofinanciación empresarial / préstamo comercial / financiación de mercado → versión empresarial.
- ¿Para quién se presenta?: Aprobación / autorización de la NDRC, solicitud de fondos fiscales → versión gubernamental; revisión de préstamo bancario, decisión del inversor, atracción de inversión → versión empresarial.
- ¿Cuál es la necesidad final?: Necesidad pública (debilidad regional / bienestar público / requisito estricto de planificación superior) → versión gubernamental; demanda del mercado y rentabilidad → versión empresarial.
- ¿Incluye estos capítulos?: Plan de gestión del rendimiento, análisis de pico de carbono y neutralidad de carbono → exclusivo de la versión gubernamental; modelo de negocio / estrategia de marketing / análisis de competencia con mayor peso → versión empresarial.
En caso de financiación mixta (capital gubernamental + autofinanciación empresarial): utilizar el criterio de aprobación/presentación como esquema principal, incorporar la argumentación financiera empresarial en el capítulo «Inversión, financiación y plan financiero» y señalar el doble criterio en la visión general.
3. Flujo de trabajo en seis pasos (proceso completo)
Paso 0: Inventario de materiales + clasificación + tres preguntas antes de aceptar el pedido (0.5 h)
Antes de escribir, preguntar tres cosas:
- Propósito (aprobación del proyecto / financiación bancaria / presentación para atraer inversión / decisión interna) → determina la profundidad del formato y el esquema
- Naturaleza del propietario (plataforma gubernamental / empresa privada) → determina si se aplica la versión gubernamental o empresarial del esquema
- Fecha límite → determina el modo A (completo, 7-15 días) o el modo B (primera versión rápida, 1-3 días) ⭐
Inventario de materiales «lo que hay vs. lo que falta». Preguntar las carencias de una vez, no ir y venir. Si falta la estimación de inversión → utilizar la estimación de referencia del sector y anotar «según la práctica habitual del sector XX». Si falta el terreno/ubicación → investigar con planes públicos. Si el cliente proporciona poca información → optar por el modo B.
Criterio de finalización: Confirmar por escrito la conclusión de la clasificación (versión gubernamental/empresarial + justificación); tener una lista de carencias de materiales documentada; tener claro el modo A/B.
Paso 0.5: Lista de solicitud de datos (tres lotes, pedir todo de una vez, no preguntar mientras se escribe)
| Lote | Contenido | Consecuencia de la falta |
|---|---|---|
| Primer lote: base de cantidad, precio e inversión | Contenido y escala de la construcción, lista de equipos y consulta de precios, precio del suelo/alquiler, precio del agua/electricidad/gas, coste laboral | Si falta, solo se puede producir una «versión de argumentación preliminar» y la estimación de inversión se basará en la práctica del sector |
| Segundo lote: entidad principal y confirmación de cumplimiento | Licencia comercial/documentos de la entidad, examen previo del terreno y selección de la ubicación, EIA/evaluación energética/evaluación hídrica/evaluación de estabilidad, permisos de uso marítimo y estado de tramitación | Si falta, el módulo de cumplimiento solo se puede escribir como «en trámite» y será criticado en la revisión |
| Tercer lote: mercado y evidencia de pedidos | Pedidos de intención/acuerdos marco, contratos ascendentes y descendentes, datos operativos de proyectos similares, documentos de políticas de respaldo | Si falta, el análisis de mercado se quedará solo con datos públicos y la profundidad se verá afectada |
Plantilla de lista: references/data-request-list.md. Al enviar la lista, indicar simultáneamente: «Si falta el segundo lote, solo se puede producir la versión de argumentación preliminar» — es profesionalidad y también un punto de apoyo para una segunda tarifa.
Paso 1: Investigación en línea (¡obligatorio! 1-3 h, cuatro vías en paralelo)
Prohibido escribir sin buscar. La línea divisoria entre un informe de viabilidad «presentable» y una «plantilla genérica» es que cada afirmación tenga respaldo de datos/políticas.
- Políticas: Políticas industriales provinciales/municipales, planes especiales, permisos de acceso al sector → buscar «[sector] XV Plan Quinquenal», «[provincia/ciudad] política industrial [sector]»
- Mercado: Tamaño del sector, tasa de crecimiento, panorama competitivo → informes de corredores de bolsa/asociaciones del sector/oficina de estadística, cruce de múltiples fuentes
- Zona: Parque industrial del lugar seleccionado, terreno, infraestructura, proyectos similares → buscar «[ciudad] [sector] parque industrial»
- Referencia: Intensidad de inversión y tasa de rendimiento de proyectos similares → comparar con los valores de referencia del sector de mh-calculation
Para cada dato clave, anotar la fuente (institución + año + enlace) y citar la fuente al escribir. Si faltan datos, no inventarlos, escribir «pendiente de confirmación mediante debida diligencia» y proporcionar un intervalo del sector.
Canales de obtención de datos (ordenados por dificultad de la página, no rendirse en el primer nivel):
- Nivel 1: Captura normal / resumen del motor de búsqueda — textos originales de políticas, noticias, informes públicos
- Nivel 2: Captura con bypass anti-scraping (renderizar JS, manejar desafíos de Cloudflare) — sitios web gubernamentales, asociaciones del sector, sitios de informes
- Nivel 3: Control real del navegador (clic/paginación/formularios) — datos que requieren interacción para obtenerlos (sistemas de consulta, bases de datos públicas)
- Los materiales originales obtenidos se guardan con trazabilidad (en
<nombre del proyecto>/diligencia/, nombrados por fuente), para poder consultarlos al escribir y no tener que volver a buscar al revisar.
Criterio de finalización: Todos los números clave pueden responder a «quién lo dijo, qué año, con qué criterio»; los materiales originales están guardados y se pueden consultar.
Paso 2: Redacción colaborativa (matriz de modelos — clave para poder generar obras de 200 000 palabras)
No dejar que un solo modelo se encargue de todo el texto. Asignar roles:
- Cerebro principal (modelo de la conversación actual): construir la estructura, escribir la introducción/visión general/argumentación estratégica, ensamblar y revisar el final
- Modelo de expansión (API de modelo más potente, ej. DeepSeek V4 Pro / Qwen Max): ampliar en profundidad los capítulos importantes como la evaluación financiera y el análisis de mercado — alimentar capítulo por capítulo con «estado actual del capítulo + requisitos de expansión + ejemplo», aumentar max_tokens (12000+, de lo contrario, el razonamiento consume toda la salida y da 0)
- Modelo de cálculo: llamar a mh-calculation para calcular TIR/VAN/periodo de recuperación (no hacer cálculos manuales)
- Modelo de revisión (un modelo inteligente que lea todo el texto y señale fallos): que Qwen/Doubao, actuando como un gestor experimentado, lea todo el texto (no solo un resumen) para encontrar lagunas lógicas/incoherencias de criterios/distorsión de datos
- Modelo visual (verificación de maquetación, ver Paso 4): Mimo 2.5 / DeepSeek Vision / GLM-4V / Qwen-VL para revisión cruzada de imágenes
Experiencia: con la misma clave se pueden usar dos niveles (flash para lo cotidiano / pro para trabajo profundo); para la revisión, dar el texto real completo, no un resumen, de lo contrario será una revisión inútil.
Antes de escribir, elaborar una lista de capítulos (cada capítulo = qué se va a decir | con qué se va a decir | de dónde viene). Los capítulos con evidencias en blanco se devuelven al Paso 1 para completar. No empezar a escribir con evidencias vacías. Plantilla de lista en templates/report-plan.md.
Criterio de finalización: La lista de capítulos tiene las tres columnas completas, sin espacios en blanco; cada borrador de capítulo tiene datos, fuentes y una cadena lógica cerrada.
Paso 3: Tres controles de calidad (el paso entre el borrador de IA y la entrega final, no saltarlo)
| Control | Qué hacer | Si no se supera |
|---|---|---|
| ① Reflexión | Revisar el proceso: ¿los datos son completos? ¿Las fuentes son fiables (primarias/secundarias)? ¿Hay saltos en la lógica? | Completar datos, cambiar fuentes, complementar la argumentación |
| ② Revisión | Verificar punto por punto con la lista: ¿las conclusiones coinciden con las evidencias? ¿Hay inferencias excesivas? ¿Se han respondido las posturas contrarias? ¿Los números/nombres/fechas son correctos? ¿Los criterios son uniformes? | Corregir punto por punto, no vale «más o menos» |
| ③ Corrección | Después de corregir, volver a revisar las zonas corregidas (comprobar especialmente si se han introducido nuevos errores) y volver a escanear todo el texto en busca de residuos de criterios antiguos | Si no se supera la segunda revisión, repetir el proceso |
Versión en lista de verificación: templates/review-checklist.md. Comprobación mínima automatizable:
python3 scripts/pipeline_check.py informe.md # Fuentes/divulgación de incertidumbre/visión contraria/conclusión/estructura/criterios numéricos
python3 scripts/pipeline_check.py informe.md --strict --json # Código de salida distinto de 0 = hay errores graves, se puede conectar directamente a automatización
La redacción y la revisión no pueden realizarse en la misma ronda — uno mismo no ve sus propios errores al escribir, es una ley cognitiva, no una cuestión de actitud. Cambiar de perspectiva/cambiar de modelo/al menos cambiar de ronda.
Paso 4: Ingeniería de maquetación (del borrador de IA a la versión profesional de entrega, un solo clic con scripts)
El docx generado por IA entregado directamente = rasgo de principiante. Procesar con la cadena de scripts:
# 1) Crear la estructura desde cero: portada + página de firmas + índice automático + encabezado y número de página (sistema de estilos ya incorporado)
python3 scripts/gen_report_docx.py "Nombre completo del proyecto" "" salida.docx
# (el parámetro intermedio = entidad responsable; para entrega externa, pasar siempre cadena vacía para dejarlo en blanco)
# 2) Si ya hay un borrador/docx del cliente: añadir la portada (portada/página de firmas/campo de índice) → ver scripts/face_docx.py --help
python3 scripts/face_docx.py entrada.docx salida.docx "Nombre completo del proyecto" "" "KY-2026-×××"
# 3) Purificación de maquetación (eliminación de rastros de IA + reconstrucción de estilos + mejora de tablas) ⭐ El más utilizado
python3 scripts/docx_polish.py entrada.docx salida.docx "Nombre completo del proyecto" --title "Título del informe"
# 4) Hoja de cálculo de estados financieros (fórmulas ya conectadas, azul = entrada) ⭐ Versión profesional v2 (tablas de tres líneas + semántica de cinco colores + portada con instrucciones)
python3 scripts/gen_model_xlsx_v2.py salida.xlsx "Nombre del proyecto" inversión_total_miles_de_millones ingresos_plena_producción_miles_de_millones periodo_construcción periodo_operación
# Ejemplo: python3 scripts/gen_model_xlsx_v2.py tabla.xlsx "Proyecto ××" 3000000 600000 4 16
# 5) Instrucciones y lista de solicitud de datos (1-2 páginas, uno de los tres archivos de entrega)
python3 scripts/gen_shuoming.py salida.docx "Nombre del proyecto" "Aprox. 300 mil millones"
4.1 Reglas férreas de paginación e imágenes (la renderización en Word ≠ renderización en LibreOffice — lecciones aprendidas con sangre)
Concepto clave: Usar LibreOffice para convertir a PDF y autoverificar la maquetación ≠ el efecto visual al abrirlo con Word/WPS. El 90% de los clientes usa Word/WPS. Los problemas de paginación/recorte de imágenes solo se manifiestan en el motor de Word; primero hay que revisar el XML antes de sacar conclusiones.
| Síntoma | Causa raíz | Reparación |
|---|---|---|
| La imagen solo muestra una línea estrecha / una esquina | El estilo Normal tiene lineRule="exact" con interlineado fijo que recorta las imágenes en línea (específico de Word, LO no lo recorta) | Cambiar el interlineado del estilo del cuerpo a atLeast (mantiene el interlineado visual pero permite que la imagen lo expanda); en los párrafos con imágenes, añadir explícitamente spacing line=240 lineRule=auto |
| Una página solo tiene una línea de texto / un gran espacio en blanco | Cada fila de la tabla tiene cantSplit (prohibido dividir entre páginas) → si una tabla grande no cabe, salta completa a la siguiente página | Solo bloquear cantSplit en las filas de encabezado, permitir que las filas de datos se dividan entre páginas; añadir tblHeader al encabezado (se repite automáticamente al cruzar páginas) |
| La tabla provoca una división anómala en Word | El ancho total de la tabla supera el ancho del área de texto (área de texto A4 = 8730 twips, margen izquierdo de 3 cm) | Escalar gridCol proporcionalmente a ≤ 8700 twips |
| Línea huérfana al final del texto (2 líneas al final de una página que continúa) | El párrafo cruza la página justo dejando 2 líneas | Añadir keepLines a ese párrafo (no dividir dentro del párrafo), mover todo el párrafo a la página siguiente |
| Línea huérfana en la última página («(Fin del texto)» ocupa una página entera sola) | El párrafo final después de una tabla grande de apéndice no cabe y se empuja a la última página | Eliminar directamente la marca final o comprimir la tabla anterior |
| Línea «Entidad responsable: ______» en la portada | Run de subrayado con espacio como marcador de posición (<w:u>+espacio) | Cuando ya se haya rellenado el nombre de la entidad, eliminar el run de subrayado con espacio, no dejar la línea de marcador de posición |
Después de la reparación, volver a renderizar y revisar: fitz escanea página por página en busca de «páginas casi vacías» con max_y < 350 y anchos de imagen > 200 pt para confirmar que están completas.
4.2 Entrega en PDF (formato de lectura para inversores)
- LibreOffice
soffice --headless --convert-to pdfes suficiente; el esquema de títulos se convierte automáticamente en marcadores (766 = nivel profesional) - Es normal que los campos de número de página/índice se rendericen como marcadores de posición (Word los actualiza con F9) — el PDF renderizado con LO no se ve afectado; en el docx, indicar al cliente que abra con Word y pulse F9
- Si el docx es grande (>10 MB con muchas imágenes), la vista previa en el móvil/IM puede no mostrar las imágenes → adjuntar también el PDF en la entrega + indicar que se abra con Word
Paso 5: QA del informe (revisión automática de números y criterios)
python3 scripts/report_qa.py stats informe.docx # Revisión de dimensiones: número de páginas/párrafos/caracteres/imágenes incrustadas
python3 scripts/report_qa.py grep informe.docx "criterio antiguo|número antiguo" # Búsqueda con expresión regular (incluye celdas de tabla; pasar por alto las celdas = pasar por alto la mitad de los números)
python3 scripts/report_qa.py check informe.docx baseline.json # Verificación por aserción: las palabras prohibidas deben tener 0 aciertos, los elementos obligatorios deben aparecer
python3 scripts/report_qa.py cache informe.docx # Crear caché de texto plano; durante la revisión, las consultas repetidas son ~14 veces más rápidas
- Antes de la entrega de la versión revisada, escribir cada solicitud del cliente como una aserción (palabras prohibidas / elementos obligatorios) y demostrar con un solo comando que todo se cumple — más fiable que revisar tres veces con ojos humanos
- Si el conjunto de aserciones está vacío, se muestra una advertencia explícita para evitar el falso positivo de «0/0 todo verde»
Paso 6: Verificación visual + entrega (tres archivos + doble salida)
Verificación visual (último filtro antes de la entrega): Los problemas de maquetación de IA no se ven con la revisión de texto; hay que renderizar la página como imagen para que el modelo visual la «vea con sus propios ojos». Un solo modelo puede ser evasivo o cometer errores → usar 2+ modelos para validación cruzada; después de encontrar problemas, verificar con datos de coordenadas antes de corregir.
# Elegir una de las variables de entorno (se recomienda configurar en orden: gratuito → barato y rápido → respaldo)
export ZHIPU_API_KEY=... # ① GLM-4V-Flash (gratuito, velocidad 1.6 s/página) — primera opción
export DASHSCOPE_API_KEY=sk-... # ② qwen3-vl-flash (Bailian Qianwen Visual Flash, barato y rápido)
export MIMO_API_KEY=... # ③ Xiaomi Mimo 2.5 (multimodal nativo)
export DEEPSEEK_API_KEY=... # ④ DeepSeek vision (respaldo — DeepSeek se usa principalmente para redactar, ocupar poco capacidad visual)
python3 scripts/vision_check.py informe.docx # docx → renderizar páginas clave → revisión con múltiples modelos (en orden ①→②→③→④ auto-saltar)