## Asset Header - **Asset ID:** SOP-MPX-BookFactorySistema-v02 - **Version:** v02 - **Status:** Draft - **Owner:** Victor Heredia - **IntellBank:** IB-MPX-MasterPlaybooks - **Tipo:** SOP — Standard Operating Procedure - **Propósito:** 🏭 Book Factory — Master Playbooks v2.1 - **Última actualización:** 2026-04-11 --- # 🏭 Book Factory — Master Playbooks v2.1 > Sistema de producción de conocimiento estructurado para Sherpa > 20 libros/semana · 3 checkpoints humanos · 9 estaciones · 19 artefactos > **v2.1** — Brechas estructurales corregidas: numeración, tracking, atomicidad, retrabajo, versiones --- ## ¿Qué es la Book Factory? Una factoría que transforma libros en conocimiento estructurado profundo. Cada libro entra como materia prima y sale como un ecosistema de artefactos que permite a **Sherpa** — un asistente de IA — responder preguntas del lector como si fuera el propio autor. El modelo sigue los principios de la **Big MetaFactory**: cada libro pasa por estaciones numeradas en orden de ejecución, cada estación produce artefactos atómicos y reutilizables, y una Ficha de Producción acompaña al libro de principio a fin. --- ## Cambios v2.0 → v2.1 | Brecha corregida | Cambio aplicado | |-----------------|----------------| | Numeración rota | Estaciones renombradas 0→8 en orden de ejecución real | | Sin tracking | Ficha de Producción añadida como artefacto obligatorio del Intake | | Sin retrabajo | Mapa de retrabajo documentado en Estación 6 (QA) | | Fase 3 no atómica | Dividida en Estaciones 4A, 4B y 4C independientes | | Fronteras borrosas 3→4 | Artefactos renombrados: "Chunks de Contenido" vs "Fuente Completa" | | Sin versiones | Estación 8 — Mantenimiento añadida al pipeline | --- ## Arquitectura del Pipeline ### Flujo CON libro disponible ``` E0 → E1 → E3 → E4A → E4B → E4C → E5 → E6 → E7 ``` ### Flujo SIN libro disponible ``` E0 → E1 → E2 → E3 → E4A → E4B → E4C → E5 → E6 → E7 ``` ### Flujo de Mantenimiento (re-entrada) ``` Trigger → identificar estaciones afectadas → re-ejecutar → E6 → E7 (v1.1) ``` --- ## Mapa de Estaciones | # | Estación | Descripción | Status | Checkpoint | | --- | ------------------ | ---------------------------------------- | ------ | ---------- | | E0 | Intake | Entrada y clasificación del libro | ✅ | ⚑ #1 | | E1 | Investigación | Libro + autor desde fuentes públicas | ✅ | — | | E2 | Libro Virtual | Reconstrucción cuando no hay PDF | ✅ | ⚑ #2 | | E3 | Perfil Intelectual | Lentes cognitivos y voz del autor | ✅ | — | | E4A | Resumen Narrativo | Resumen publicable en voz del autor | ✅ | — | | E4B | Estructuración RAG | Chunks de Contenido (.md) | ✅ | — | | E4C | Prompts Visuales | 5 prompts Midjourney | ✅ | — | | E5 | Fuente Completa | Documento maestro para Sherpa RAG | 🔲 | — | | E6 | QA Automático | Batería de preguntas + LLM-as-judge | 🔲 | — | | E7 | Publicación | Upload + activación de Sherpa | 🔲 | ⚑ #3 | | E8 | Mantenimiento | Re-entrada para correcciones y versiones | 🔲 | — | > **E4C es paralelizable** — no bloquea el pipeline principal. Puede ejecutarse en paralelo a E5. --- ## Estación 0 — Intake **Artefacto de salida:** 📋 Ficha de Intake + 🗂️ Ficha de Producción (nueva) ### Campos requeridos | Campo | Tipo | Valores | |-------|------|---------| | `titulo` | texto | Título completo del libro | | `autor` | texto | Nombre completo del autor | | `libro_disponible` | booleano | `sí` / `no` | | `tipo_autoria` | enum | `individual` / `colectiva` | ### Reglas de routing ``` libro_disponible = sí → E0 → E1 → E3 → E4A → E4B → E4C → E5 → E6 → E7 libro_disponible = no → E0 → E1 → E2 → E3 → E4A → E4B → E4C → E5 → E6 → E7 tipo_autoria = individual → voz Sherpa = voz del autor tipo_autoria = colectiva → voz Sherpa = filosofía editorial del director → Sherpa puede citar al colaborador por capítulo ``` ### Ficha de Producción (artefacto nuevo — acompaña al libro en todo el pipeline) ```yaml # FICHA DE PRODUCCIÓN — Book Factory v2.1 id_libro: [generado automáticamente] titulo: "{{titulo}}" autor: "{{autor}}" tipo_autoria: "{{tipo_autoria}}" libro_disponible: "{{libro_disponible}}" flujo: "[con_libro / sin_libro]" fecha_entrada: "{{fecha}}" operador: "{{operador}}" estaciones: E0_intake: fecha: null operador: null status: pendiente # pendiente | en_proceso | completado | rechazado E1_investigacion: fecha: null fuentes_citadas: null status: pendiente E2_libro_virtual: activada: null # sí | no score_cobertura: null # % (alerta si < 50%) tipo_indice: null # estructural | conceptual status: pendiente E3_perfil_intelectual: fecha: null lentes_count: null filtros_negativos_count: null status: pendiente E4A_resumen_narrativo: fecha: null tipo_estructura: null # bloques_tematicos | ejes_tematicos secciones_count: null status: pendiente E4B_chunks_contenido: fecha: null chunks_count: null status: pendiente E4C_prompts_visuales: fecha: null status: pendiente # puede ejecutarse en paralelo a E5 E5_fuente_completa: fecha: null version: null # v1.0 chunks_totales: null status: pendiente E6_qa: fecha: null score_global: null dictamen: null # aprobado | revision_humana | rechazado preguntas_evaluadas: null status: pendiente E7_publicacion: fecha: null operador: null version_publicada: null # v1.0 status: pendiente versiones: - version: "v1.0" fecha: null motivo: "publicación inicial" estaciones_re_ejecutadas: [] ``` ⚑ **Checkpoint #1** — El operador valida clasificación, disponibilidad del libro y firma la Ficha de Producción antes de iniciar E1. --- ## Estación 1 — Investigación del Libro y Autor **Antes:** Fase 1A | **Artefactos:** 📚 Investigación del Libro · 👤 Perfil del Autor **Propósito:** Producir el contexto completo del libro y del autor desde fuentes públicas. Los lentes cognitivos y la voz NO se generan aquí — se generan en E3 desde el contenido real. **Inputs:** Ficha de Producción (E0) · Fuentes públicas: web, entrevistas, podcasts, reseñas, Goodreads **Outputs:** - Clasificación con granularidad (categoría, subcategoría, tipo, audiencia) - Tesis central precisa (suficiente para reconstruir el libro en E2) - Argumentos clave en orden lógico (mínimo 3) - Biografía intelectual del autor + obra completa **Actualizar en Ficha de Producción:** `E1_investigacion.status = completado` · `fuentes_citadas = N` --- ## Estación 2 — Libro Virtual *(condicional)* **Antes:** Fase 2 | **Condición:** Solo activa cuando `libro_disponible = NO` **Artefactos:** 📖 Libro Virtual · 📊 Score de Cobertura **Propósito:** Reconstruir el contenido del libro capítulo a capítulo cuando no hay PDF. Tres prompts encadenados con checkpoint entre el segundo y el tercero. **3 prompts encadenados:** 1. **E2-P1** — Verificación y ampliación de conocimiento 2. **E2-P2** — Generación del índice para validación humana ← **pausa aquí** 3. **E2-P3** — Reconstrucción completa (solo después de aprobación del índice) **Outputs:** - Índice validado (tipo: Estructural o Conceptual) - Reconstrucción capítulo a capítulo con 5 elementos por capítulo - Score de cobertura global (% cubierto) — alerta si < 50% **Actualizar en Ficha de Producción:** `E2_libro_virtual.activada = sí` · `score_cobertura = %` · `tipo_indice = ...` ⚑ **Checkpoint #2** — El operador aprueba el índice antes de ejecutar E2-P3. --- ## Estación 3 — Perfil Intelectual **Antes:** Fase 1B | **Artefactos:** 🔭 Lentes Cognitivos · 🎙️ Voz Intelectual · 🚫 Filtros Negativos **Propósito:** Derivar cómo piensa y habla el autor desde el contenido real del libro. Siempre después de tener el contenido (E2 o libro PDF). **2 prompts encadenados en batches de 3–4 capítulos:** 1. **E3-P1** — Extracción por batch (ficha por capítulo) 2. **E3-P2** — Consolidación del perfil intelectual definitivo **Outputs:** - 3–6 lentes cognitivos (cada uno con evidencia en mínimo 3 capítulos) - Vocabulario característico (10–15 términos del libro) - "Lo que NUNCA diría" (mínimo 4 afirmaciones concretas) → filtro real de Sherpa - Manejo de la incertidumbre (cómo responde cuando algo excede el libro) **Actualizar en Ficha de Producción:** `E3_perfil.lentes_count = N` · `filtros_negativos_count = N` --- ## Estación 4A — Resumen Narrativo **Antes:** Fase 3, Prompt 3.1 | **Artefacto:** 📄 Resumen Publicable (.docx) **Propósito:** Producir el resumen publicable en la voz del autor. Es lo que lee el lector final. **Estructura según tipo de libro:** - Narrativos/encadenados → 4–7 bloques temáticos - Prescriptivos/temáticos → 4–8 ejes temáticos **Playbook fusionado — 7 elementos por sección:** | Elemento | Descripción | |----------|-------------| | Objetivo del paso | 1 oración: qué herramienta gana el lector | | Qué hacer | Acción concreta en imperativo | | Cómo hacerlo | Instrucción práctica específica | | Cuándo aplicarlo | Momento o frecuencia concreta | | Indicador de progreso | Señal observable y concreta | | Mini caso genérico | Ejemplo del lector, no del libro | | Error común a evitar | Error + corrección | **Secciones del .docx:** Sinopsis · Resumen Express (400–500 palabras) · Resumen Amplio + Playbooks · Sobre el Autor · Recursos · Disclaimer **Actualizar en Ficha de Producción:** `E4A_resumen.tipo_estructura = ...` · `secciones_count = N` --- ## Estación 4B — Estructuración RAG **Antes:** Fase 3, Prompt 3.2 | **Artefacto:** 🧩 Chunks de Contenido (.md) > ⚠️ **Distinción crítica para el operador:** > Los **Chunks de Contenido** de E4B son materia prima para E5. > **NO subir estos chunks al RAG.** Solo subir la Fuente Completa de E5. **Propósito:** Tomar el resumen de E4A y estructurarlo en chunks independientes y autocontenidos, listos para ser integrados en la Fuente Completa. **Reglas de chunking:** - Cada chunk autocontenido (Sherpa puede responder usando solo ese chunk) - Header semántico en cada chunk: nombre · tipo · temas - Tamaño objetivo: 200–600 palabras por chunk - Par por sección: chunk de contenido + chunk de playbook **Actualizar en Ficha de Producción:** `E4B_chunks.chunks_count = N` --- ## Estación 4C — Prompts Visuales *(paralelizable)* **Antes:** Fase 3, Prompt 3.3 | **Artefacto:** 🎨 Prompts Visuales (5 prompts Midjourney) > **E4C es independiente del pipeline principal.** Puede ejecutarse en paralelo a E5. > No bloquea la publicación. Si no hay diseñador disponible, puede posponerse. **Propósito:** Generar los 5 prompts visuales para las imágenes del resumen publicado. **5 imágenes:** Portada (alta prioridad) · Concepto Central · Framework · Proceso · Cita/Cierre **Especificaciones:** `--style raw --ar 1:1 --v 6` · Inglés · Flat design editorial · Sin rostros · Sin texto renderizado · Paleta de colores con hex --- ## Estación 5 — Fuente Completa RAG **Antes:** Fase 4 | **Artefactos:** 🗄️ Fuente Completa Sherpa v1.0 (.md) · 📑 Índice de Chunks > ⚠️ **Este es el único documento que se sube al sistema RAG de Sherpa.** > Los Chunks de Contenido de E4B son su insumo, no su sustituto. **Propósito:** Integrar todos los outputs anteriores en UN SOLO documento maestro estructurado para recuperación semántica. Lo que Sherpa consume. **4 bloques fijos en este orden:** ``` Bloque 1 — Perfil del Autor y Lentes Cognitivos [Prioridad: Alta] Bloque 2 — Mapa Conceptual del Libro [Prioridad: Media-alta] Bloque 3 — Contenido por Sección [Pares: contenido + playbook] Bloque 4 — Contexto Externo [Prioridad: Baja] ``` **Reglas:** - Todo en voz del autor con su vocabulario - Cada chunk lleva: Prioridad RAG + Preguntas que lo activan - Versión registrada (v1.0) en el header del documento - Índice de chunks al final con tipo y prioridad **Actualizar en Ficha de Producción:** `E5_fuente.version = v1.0` · `chunks_totales = N` --- ## Estación 6 — QA Automático **Antes:** Fase 5 | **Artefactos:** 🧪 Batería QA · 📊 Score de Calidad · ✅ Dictamen Final **Propósito:** Evaluar si Sherpa puede responder correctamente antes de publicar. Ningún libro llega a E7 sin pasar el QA. ### 4 tipos de preguntas | Tipo | Qué prueba | Señal de fallo | |------|-----------|----------------| | A — Recuperación directa | Sherpa encuentra info correcta | Inventa datos | | B — Aplicación/Inferencia | Aplica frameworks del autor | Respuestas genéricas | | C — Preguntas de borde | Sabe qué NO cubre el libro | Inventa para temas no cubiertos | | D — Preguntas trampa | No alucina ni atribuye ideas falsas | Confirma afirmaciones inventadas | ### Thresholds de aprobación | Condición | Threshold | Consecuencia | |-----------|-----------|--------------| | Score ≥ 8.0 | Aprobado | → E7 | | Score 7.0–7.9 | Revisión humana | → Checkpoint especial | | Score < 7.0 | Rechazado | → Mapa de retrabajo | | Tipo D — fallos | 0 permitidos | Cualquier fallo = revisión | **Pesos LLM-as-judge:** Precisión 35% · Voz del autor 25% · Manejo de límites 25% · Utilidad 15% ### Mapa de retrabajo (Brecha 3 corregida) ``` Causa del fallo → Re-entrada en → Qué re-ejecutar ─────────────────────────────────────────────────────────────────────── Sherpa inventa hechos → E5 → Fuente Completa RAG Voz no suena al autor → E3 → Perfil Intelectual completo Tema del libro sin cobertura → E4A + E4B → Sección específica Sherpa confirma afirmaciones falsas → E3 → Filtros negativos Playbook no ejecutable → E4A → Playbook de la sección Score QA limítrofe (7.0–7.9) → Checkpoint esp. → Revisión humana antes de E7 ``` **Actualizar en Ficha de Producción:** `E6_qa.score_global = X.X` · `dictamen = ...` --- ## Estación 7 — Publicación **Antes:** Fase 6 | **Artefactos:** 🚀 Libro Publicado · 🤖 Sherpa Activo **Condiciones de entrada:** - QA dictamen = APROBADO → Checkpoint #3 → publicar - QA dictamen = REVISIÓN HUMANA → operador resuelve → Checkpoint #3 → publicar - QA dictamen = RECHAZADO → ❌ no entra · regresar según mapa de retrabajo **3 acciones:** 1. **E7-A** — Upload del `.docx` a la plataforma (para el lector) 2. **E7-B** — Upload de la Fuente Completa al sistema RAG (para Sherpa) 3. **E7-C** — Activación de Sherpa + verificación post-publicación (5 preguntas rápidas) **Actualizar en Ficha de Producción:** `E7_publicacion.version_publicada = v1.0` · `status = completado` ⚑ **Checkpoint #3** — El operador revisa el score QA y aprueba el go-live. --- ## Estación 8 — Mantenimiento *(nueva — Brecha 6 corregida)* **Artefacto:** 🗂️ Ficha de Producción actualizada (vX.X) **Propósito:** Gestionar correcciones, actualizaciones y nuevas versiones de libros ya publicados sin necesidad de re-ejecutar el pipeline completo. ### Triggers de re-entrada | Trigger | Prioridad | Acción | |---------|-----------|--------| | Fallo reportado por lector en Sherpa | Alta | Identificar estación causa raíz → re-ejecutar | | Nueva edición del libro disponible | Media | Re-ejecutar E1 en adelante si hay cambios de fondo | | Score QA cayó en auditoría periódica | Media | Re-ejecutar E6 → si falla: mapa de retrabajo | | Error tipográfico en .docx | Baja | Corregir E4A directamente → re-publicar E7-A | | Actualización de prompts visuales | Baja | Re-ejecutar E4C → re-publicar E7-A | ### Protocolo de re-entrada ``` 1. Identificar el trigger y la estación causa raíz 2. Determinar cuáles estaciones descendientes necesitan re-ejecutarse (no re-ejecutar estaciones que no dependan del cambio) 3. Re-ejecutar las estaciones identificadas 4. Re-ejecutar E6 (QA) si la Fuente Completa cambió 5. Re-ejecutar E7 si el QA aprueba 6. Actualizar la Ficha de Producción: - Nueva versión: vX.X - Motivo del cambio - Estaciones re-ejecutadas - Fecha y operador ``` ### Árbol de dependencias para re-entrada ``` Si cambió E1 → re-ejecutar E2 (si activa) + E3 + E4A + E4B + E5 + E6 + E7 Si cambió E2 → re-ejecutar E3 + E4A + E4B + E5 + E6 + E7 Si cambió E3 → re-ejecutar E4A + E4B + E5 + E6 + E7 Si cambió E4A → re-ejecutar E4B + E5 + E6 + E7-A (solo .docx) Si cambió E4B → re-ejecutar E5 + E6 + E7 Si cambió E5 → re-ejecutar E6 + E7-B (solo RAG) Si cambió E4C → re-ejecutar solo E7-A (solo .docx visual) ``` --- ## Inventario Completo de Artefactos (v2.1) | # | Estación | Artefacto | Formato | Condición | |---|----------|-----------|---------|-----------| | 01 | E0 | 📋 Ficha de Intake | Registro | Siempre | | 02 | E0 | 🗂️ Ficha de Producción | YAML | Siempre | | 03 | E1 | 📚 Investigación del Libro | MD | Siempre | | 04 | E1 | 👤 Perfil del Autor | MD | Siempre | | 05 | E2 | 📖 Libro Virtual | MD | Sin libro | | 06 | E2 | 📊 Score de Cobertura | Métrica | Sin libro | | 07 | E3 | 🔭 Lentes Cognitivos | MD | Siempre | | 08 | E3 | 🎙️ Voz Intelectual | MD | Siempre | | 09 | E3 | 🚫 Filtros Negativos | Sección | Siempre | | 10 | E4A | 📄 Resumen Publicable | .docx | Siempre | | 11 | E4B | 🧩 Chunks de Contenido | .md múltiple | Siempre | | 12 | E4C | 🎨 Prompts Visuales | 5 prompts | Paralelizable | | 13 | E5 | 🗄️ Fuente Completa Sherpa | .md maestro único | Siempre | | 14 | E5 | 📑 Índice de Chunks | Sección del .md | Siempre | | 15 | E6 | 🧪 Batería QA | 15–20 preguntas | Siempre | | 16 | E6 | 📊 Score de Calidad | Métrica | Siempre | | 17 | E6 | ✅ Dictamen Final | Decisión | Siempre | | 18 | E7 | 🚀 Libro Publicado | Plataforma | Si QA aprueba | | 19 | E7 | 🤖 Sherpa Activo | RAG live | Si QA aprueba | --- ## Métricas del Sistema | Métrica | v2.0 | v2.1 | |---------|------|------| | Estaciones | 8 | 11 (E4 dividida en 4A/4B/4C + E8 nueva) | | Artefactos por libro | 18 | 19 (Ficha de Producción añadida) | | Checkpoints humanos | 3 | 3 (sin cambio) | | Loops de retrabajo documentados | 0 | 5 causas mapeadas | | Protocolo de versiones | No | Sí (E8 + árbol de dependencias) | | Estaciones paralelizables | 0 | 1 (E4C) | | Target de producción | 20+/semana | 20+/semana | --- ## Estado del Sistema — Sprint 3 | Estación | Nombre | Status | |----------|--------|--------| | E0 | Intake | ✅ Completada | | E1 | Investigación | ✅ Completada | | E2 | Libro Virtual | ✅ Completada | | E3 | Perfil Intelectual | ✅ Completada | | E4A | Resumen Narrativo | ✅ Completada | | E4B | Estructuración RAG | ✅ Completada | | E4C | Prompts Visuales | ✅ Completada | | E5 | Fuente Completa RAG | 🔲 Sprint 3 — Siguiente | | E6 | QA Automático | 🔲 Sprint 3 — Pendiente | | E7 | Publicación | 🔲 Sprint 3 — Pendiente | | E8 | Mantenimiento | 🔲 Sprint 3 — Pendiente | --- *Book Factory · Master Playbooks v2.1 · Brechas estructurales corregidas · 2026-03-13*