## Asset Header

- **Asset ID:** SOP-TriRH-NewsFactory-SistemaCompleto-v01
- **Version:** v01
- **Status:** Draft
- **Owner:** Victor Heredia
- **IntellBank:** IB-TriRH-TribusRRHH
- **Tipo:** SOP — Standard Operating Procedure
- **Propósito:** 🏭 News Factory — Sistema Completo v1.0
- **Última actualización:** 2026-04-11

---

# 🏭 News Factory — Sistema Completo v1.0
> Factoría de producción de newsletters de EmpowerLabs
> Cadencia semanal · Mínima intervención humana · 2 checkpoints · 8 estaciones · Multi-proyecto
> **v1.0** — Primera versión operativa. Alineada con Book Factory v2.1 y Control Plane CP-ED-EL-v01.

---

## ¿Qué es la News Factory?

Una factoría que transforma fuentes dispersas (noticias, investigación, conversaciones de comunidad, tendencias) en newsletters de alta calidad listos para publicar en Beehiiv. Cada edición entra como un brief mínimo y sale como un paquete completo: newsletter listo para publicar + prompts de imágenes para el equipo de diseño + posts de LinkedIn derivados.

El modelo sigue los principios de la **Big MetaFactory**:
- Cada edición pasa por estaciones en orden de ejecución
- Cada estación produce artefactos atómicos y reutilizables
- Una Ficha de Producción acompaña a cada edición de principio a fin
- El operador humano solo interviene en 2 checkpoints estratégicos

**Pipeline oficial:** `NEWS-1`
**Plataforma de publicación:** Beehiiv
**Cadencia:** Semanal (configurable por proyecto)

---

## Diferencia clave vs. Book Factory

| Dimensión | Book Factory (E0-E8) | News Factory (NS0-NS7) |
|---|---|---|
| Cadencia | Una vez por libro | Semanal (recurrente) |
| Profundidad | Profunda (libro completo) | Curada (best of the week) |
| Fuentes | El libro PDF | Web + comunidad + tendencias |
| Output principal | Resumen publicable + RAG | Newsletter + imágenes + LinkedIn |
| Checkpoints | 3 | 2 |
| Tiempo de producción | 3 sesiones | 1 sesión |
| Reutilización | Por libro | Por proyecto/cliente |

---

## Arquitectura del Pipeline

```
FLUJO ESTÁNDAR (sin comunidad activa):
NS0 → NS1 → NS2 → ⚑#1 → NS3 → NS4A → NS4B || NS4C → NS5 → NS6 → ⚑#2 → NS7

FLUJO TRIBUS RRHH (con resumen de comunidad como insumo):
[GPT-Resumen-Comunidad] → NS0 → NS1 → NS2 → ⚑#1 → NS3 → NS4A → NS4B || NS4C → NS5 → NS6 → ⚑#2 → NS7

NOTA: NS4B y NS4C son PARALELIZABLES — se ejecutan en simultáneo después de NS4A.
```

---

## Mapa de Estaciones

| # | Estación | Descripción | Artefacto de salida | Checkpoint |
|---|---|---|---|---|
| NS0 | Intake | Brief de la edición: tema, fecha, proyecto | Ficha de Producción | ⚑ ninguno |
| NS1 | Intel Sprint | Investigación rápida de fuentes relevantes | Banco de Fuentes Curadas | — |
| NS2 | Curación + Arquitectura | Selección de piezas + diseño de estructura | Mapa Editorial de la Edición | ⚑ #1 |
| NS3 | Redacción | Escritura de cada sección en voz editorial | Draft Completo por Secciones | — |
| NS4A | Ensamblado | Documento completo listo para Beehiiv | **Newsletter Ensamblado — archivo independiente** `NL[N]_[Proyecto]_[Fecha]_Newsletter.md` (solo contenido, sin logs de producción) | — |
| NS4B | Prompts Visuales | 4-6 prompts de imagen para diseño | Pack de Prompts Visuales | Paralelizable |
| NS4C | Derivados LinkedIn | 3-5 posts de LinkedIn del contenido | Pack LinkedIn (.md) | Paralelizable |
| NS5 | QA Automático | Checklist de calidad editorial | Score QA + Dictamen | — |
| NS6 | Publicación | Upload a Beehiiv + activación | Edición Publicada | ⚑ #2 |

> **NS4B y NS4C son paralelizables** — no bloquean el pipeline principal. Pueden ejecutarse simultáneamente con NS4A o después.

---

## El Perfil de Proyecto — La Clave de la Reutilización

Antes de ejecutar cualquier edición, el sistema carga el **Perfil de Proyecto** del cliente. Este perfil define todo lo que hace única a esa newsletter: audiencia, voz editorial, secciones, formato, marca. El pipeline de producción es el mismo; el Perfil de Proyecto es lo que cambia entre clientes.

**Cada proyecto tiene su propio archivo:** `NewsFactory_PerfilProyecto_[CLIENTE]_v1.md`

Ver `NewsFactory_PerfilProyecto_TribusRRHH_v1.md` como implementación de referencia.

---

## Estación NS0 — Intake
**Artefacto:** 📋 Ficha de Producción de la Edición

### Campos requeridos

| Campo | Descripción | Ejemplo |
|---|---|---|
| `proyecto` | Nombre del proyecto/cliente | Tribus RRHH |
| `edicion_numero` | Número de la edición | #42 |
| `fecha_publicacion` | Fecha de envío planificada | 2026-04-12 |
| `tema_foco` | Tema central de esta edición (puede ser libre) | Automatización en RRHH |
| `insumo_comunidad` | ¿Hay resumen de comunidad disponible? | sí / no |
| `operador` | Quién ejecuta la producción | Anahí |
| `perfil_proyecto` | Referencia al Perfil de Proyecto | NewsFactory_PerfilProyecto_TribusRRHH_v1.md |

### Ficha de Producción — Template YAML

```yaml
# FICHA DE PRODUCCIÓN — News Factory v1.0
pipeline: NEWS-1
proyecto: "{{proyecto}}"
edicion: "{{edicion_numero}}"
fecha_publicacion: "{{fecha_publicacion}}"
tema_foco: "{{tema_foco}}"
perfil_proyecto: "{{perfil_proyecto}}"
insumo_comunidad: "{{sí/no}}"
operador: "{{operador}}"
fecha_inicio: "{{fecha}}"

estaciones:
  NS0_intake:
    fecha: null
    status: pendiente   # pendiente | en_proceso | completado

  NS1_intel_sprint:
    fecha: null
    fuentes_encontradas: null   # número de fuentes
    fuentes_seleccionadas: null
    status: pendiente

  NS2_curacion_arquitectura:
    fecha: null
    secciones_definidas: null
    checkpoint_1: null          # aprobado | rechazado | ajustes_menores
    status: pendiente

  NS3_redaccion:
    fecha: null
    secciones_completadas: null
    palabras_totales: null
    status: pendiente

  NS4A_ensamblado:
    fecha: null
    status: pendiente

  NS4B_prompts_visuales:
    fecha: null
    prompts_generados: null
    status: pendiente

  NS4C_derivados_linkedin:
    fecha: null
    posts_generados: null
    status: pendiente

  NS5_qa:
    fecha: null
    score_calidad: null         # 1-10
    dictamen: null              # aprobado | revision_humana | rechazado
    status: pendiente

  NS6_publicacion:
    fecha: null
    url_publicado: null
    checkpoint_2: null          # aprobado
    status: pendiente
```

---

## Estación NS1 — Intel Sprint
**Artefacto:** 🔍 Banco de Fuentes Curadas

**Propósito:** Investigar y recopilar las mejores fuentes de la semana relacionadas con el tema foco y la audiencia del proyecto. Es la materia prima para la curación.

**Inputs:**
- Ficha de Producción (NS0)
- Perfil del Proyecto (audiencia, temas recurrentes, fuentes confiables)
- Resumen de comunidad [si disponible — solo Tribus RRHH u otros proyectos con comunidad activa]

**Protocolo de investigación:**
1. Buscar en fuentes definidas en el Perfil del Proyecto (máx. 20 minutos)
2. Identificar 10-15 piezas candidatas
3. Para cada pieza: título + fuente + resumen de 2 líneas + relevancia (Alta/Media)
4. Marcar las 5-7 más fuertes con 🌟

**Output — Banco de Fuentes:**
```
# BANCO DE FUENTES — Edición {{edicion_numero}}
Fecha: {{fecha}}
Tema foco: {{tema_foco}}

## Fuentes 🌟 (candidatas principales)

1. [Título] — [Fuente/URL]
   Qué dice: [2 líneas]
   Relevancia: Alta | Por qué importa a [audiencia]: [1 línea]

2. [...]

## Fuentes de apoyo (contexto, datos, referencias)

[...]

## Insumo de comunidad (si aplica)
[Resumen de los temas calientes de la semana en la comunidad]
```

**Actualizar Ficha:** `NS1_intel_sprint.fuentes_encontradas = N` · `status = completado`

---

## Estación NS2 — Curación + Arquitectura
**Artefacto:** 🗺️ Mapa Editorial de la Edición

**Propósito:** Seleccionar las mejores piezas del Banco de Fuentes y diseñar la estructura específica de esta edición. Aquí se decide qué entra, en qué sección, y qué historia cuenta la edición.

**Inputs:**
- Banco de Fuentes (NS1)
- Perfil del Proyecto (estructura de secciones, formato)
- Tema foco de la edición

**Protocolo de curación:**
1. Seleccionar las piezas que mejor responden al tema foco
2. Asignar cada pieza a una sección del newsletter
3. Definir el ángulo editorial de cada sección
4. Redactar el hook de apertura (primera frase del editorial)
5. Confirmar que la edición tiene coherencia narrativa

**Output — Mapa Editorial:**
```
# MAPA EDITORIAL — Edición {{edicion_numero}}
Tema foco: {{tema_foco}}
Historia que cuenta esta edición: [1 oración que define el hilo conductor]

## Estructura de la edición

| Sección | Ángulo / Enfoque | Fuente(s) a usar | Palabras estimadas |
|---|---|---|---|
| [Nombre sección 1] | [qué se va a decir] | [fuente 1, fuente 2] | [n] |
| [Nombre sección 2] | [...] | [...] | [...] |
| [...] | [...] | [...] | [...] |

## Hook de apertura
"[Primera frase del editorial — gancho que define el tono de la edición]"

## Lo que NO entra (y por qué)
- [Pieza excluida]: [razón — off-topic / baja calidad / ya cubierta antes]
```

⚑ **Checkpoint #1** — El operador revisa el Mapa Editorial y aprueba antes de escribir. Si hay ajustes, se hacen aquí. Una vez aprobado, NS3 empieza. La escritura no se inicia sin aprobación.

**Actualizar Ficha:** `NS2_curacion.secciones_definidas = N` · `checkpoint_1 = aprobado`

---

## Estación NS3 — Redacción
**Artefacto:** ✍️ Draft Completo por Secciones

**Propósito:** Escribir cada sección del newsletter en la voz editorial del proyecto. El draft sale listo para ensamblar — no para editar pesado. Si el Perfil de Proyecto está bien cargado, la voz debe ser consistente desde el primer intento.

**Inputs:**
- Mapa Editorial aprobado (NS2)
- Perfil del Proyecto (voz editorial, audiencia, tono, formato)
- Banco de Fuentes (NS1)

**Protocolo de redacción:**
- Escribir sección por sección en el orden del Mapa Editorial
- Seguir las especificaciones de cada sección del Perfil del Proyecto
- Cada sección es un artefacto independiente — puede regenerarse sin afectar las demás
- Mantener la longitud objetivo de cada sección (definida en el Perfil de Proyecto)
- Incluir las URLs de fuentes al final de cada sección relevante

**Estructura de cada sección redactada:**
```
## [NOMBRE DE SECCIÓN]
[Contenido redactado]

> Fuentes: [URL1] · [URL2]
```

**Alerta de calidad:** Si una sección no suena a la voz editorial del proyecto, regenerar con el Perfil de Proyecto cargado antes de continuar.

**Actualizar Ficha:** `NS3_redaccion.secciones_completadas = N` · `palabras_totales = N`

---

## Estación NS4A — Ensamblado
**Artefacto:** 📄 Newsletter Ensamblado (.md)

**Propósito:** Integrar todas las secciones en un documento único, completo y listo para copiar en Beehiiv. Aplicar formato final, revisar coherencia visual del texto, y preparar el subject line y preview text.

**Estructura del documento ensamblado:**

```markdown
# [NOMBRE DEL PROYECTO] — Edición #[N]
📅 [Fecha de publicación]

---

**SUBJECT LINE:** [Subject line del email — máx 50 caracteres]
**PREVIEW TEXT:** [Preview text — máx 90 caracteres]

---

[SECCIÓN 1: EDITORIAL/INTRO]
[contenido]

---

[SECCIÓN 2]
[contenido]

---

[continúa con cada sección...]

---

**LINKS DE FUENTES**
- [Fuente 1]: [URL]
- [Fuente 2]: [URL]

---
*[Footer estándar del proyecto — definido en Perfil de Proyecto]*
```

**Checkpoints de ensamblado:**
- ✅ Todas las secciones presentes
- ✅ Subject line + Preview text escritos
- ✅ Fuentes linkadas
- ✅ Footer incluido
- ✅ Longitud total dentro del rango del Perfil de Proyecto

**Actualizar Ficha:** `NS4A_ensamblado.status = completado`

---

## Estación NS4B — Prompts Visuales *(paralelizable)*
**Artefacto:** 🎨 Pack de Prompts Visuales (4-6 prompts)

> **NS4B es independiente del pipeline principal.** Puede ejecutarse en paralelo a NS4A o NS4C.
> Si el equipo de diseño no está disponible, puede posponerse sin bloquear la publicación.

**Propósito:** Generar los prompts de imagen para el equipo de diseño. Cada prompt corresponde a una imagen de la newsletter: imagen de header, imágenes de secciones, y/o imágenes para posts de LinkedIn.

**Imágenes estándar por edición:**

| # | Imagen | Uso | Prioridad |
|---|---|---|---|
| 1 | Header / Portada | Banner principal del newsletter | Alta |
| 2 | Imagen sección principal | Artículo o sección central | Alta |
| 3 | Imagen recurso/herramienta | Ilustración de la sección de recurso | Media |
| 4 | Imagen para LinkedIn | Post visual principal de la semana | Alta |
| 5-6 | Imágenes adicionales | Según estructura de la edición | Baja |

**Especificaciones de los prompts:**
- Idioma: Inglés (para Midjourney/generadores de imagen)
- Estilo: `--style raw --ar 16:9 --v 6` para headers · `--ar 1:1 --v 6` para LinkedIn
- Sin rostros humanos identificables
- Sin texto renderizado dentro de la imagen
- Paleta de colores alineada con la marca del proyecto (definida en Perfil de Proyecto)
- Flat design editorial o fotografía conceptual

**Formato de cada prompt:**
```
IMAGEN [N] — [Nombre/Uso]
Formato: [16:9 / 1:1]
Prompt: [prompt completo en inglés]
Concepto visual: [descripción breve en español para el diseñador]
```

**Actualizar Ficha:** `NS4B_prompts_visuales.prompts_generados = N`

---

## Estación NS4C — Derivados LinkedIn *(paralelizable)*
**Artefacto:** 💼 Pack LinkedIn (.md con 3-5 posts)

> **NS4C es independiente del pipeline principal.** Puede ejecutarse en paralelo a NS4B.

**Propósito:** Transformar el contenido de la newsletter en 3-5 posts de LinkedIn listos para publicar. Cada post extrae un ángulo diferente del contenido — no son resúmenes, son piezas independientes que amplifican y llevan tráfico hacia la newsletter.

**3 tipos de posts estándar:**

| Tipo | Descripción | Longitud |
|---|---|---|
| POST-A — Insight | Idea principal de la edición, expandida y con profundidad | 800-1200 caracteres |
| POST-B — Lista | "X cosas que aprendí sobre [tema]" — dato por dato del contenido | 600-1000 caracteres |
| POST-C — Pregunta | Pregunta provocadora del tema central para generar conversación | 400-600 caracteres |
| POST-D — Dato/Stat | El dato más impactante de la edición + contexto + CTA | 400-600 caracteres |
| POST-E — CTA Newsletter | Post invitación a suscribirse usando el contenido como gancho | 600-800 caracteres |

**Posts mínimos por edición:** POST-A + POST-C + POST-E (los 3 obligatorios)
**Posts opcionales:** POST-B y POST-D según riqueza del contenido

**Estructura de cada post:**
```
## POST-[LETRA] — [Tipo]
[Contenido del post]

[Hashtags: máx 3-5, definidos en Perfil de Proyecto]

[CTA de cierre si aplica]

---
NOTA PARA PUBLICACIÓN: [Mejor horario / día recomendado según Perfil de Proyecto]
```

**Actualizar Ficha:** `NS4C_derivados.posts_generados = N`

---

## Estación NS5 — QA Automático
**Artefactos:** 🧪 Score de Calidad · ✅ Dictamen Final

**Propósito:** Verificar que el newsletter cumple los estándares del proyecto antes de publicar. No se publica ninguna edición sin pasar el QA.

### Checklist de QA (evaluar 1-10 cada ítem)

| Dimensión | Criterio | Peso |
|---|---|---|
| **Voz editorial** | ¿Suena consistente con el Perfil del Proyecto? | 30% |
| **Relevancia** | ¿El contenido es relevante para la audiencia de esta semana? | 25% |
| **Estructura** | ¿Todas las secciones están completas y en orden? | 20% |
| **Accionabilidad** | ¿El lector obtiene algo útil/aplicable? | 15% |
| **Elementos técnicos** | Subject line, preview text, fuentes, footer | 10% |

### Thresholds de aprobación

| Condición | Score | Acción |
|---|---|---|
| Aprobado | ≥ 8.0 | → NS6 Publicación directa |
| Revisión humana | 7.0–7.9 | → Checkpoint especial con operador |
| Rechazado | < 7.0 | → Identificar sección problema → regenerar → NS5 de nuevo |

### Diagnóstico de fallos → re-entrada

| Fallo detectado | Re-entrada en | Qué regenerar |
|---|---|---|
| Voz no suena al proyecto | NS3 | Sección(es) afectada(s) |
| Contenido off-topic o poco relevante | NS2 | Arquitectura + NS3 |
| Sección incompleta o muy corta | NS3 | Solo la sección afectada |
| Subject line / preview text débil | NS4A | Solo esos elementos |
| Fuentes no linkadas | NS4A | Corrección puntual |

**Actualizar Ficha:** `NS5_qa.score_calidad = X.X` · `dictamen = [aprobado/revision_humana/rechazado]`

---

## Estación NS6 — Publicación
**Artefactos:** 🚀 Newsletter Publicado · 📊 URL de Edición

**Condiciones de entrada:**
- QA dictamen = APROBADO → ⚑ Checkpoint #2 → publicar
- QA dictamen = REVISIÓN HUMANA → operador resuelve → ⚑ Checkpoint #2 → publicar
- QA dictamen = RECHAZADO → ❌ no entra · regresar según diagnóstico NS5

⚑ **Checkpoint #2** — El operador revisa la edición ensamblada y el score QA, y da el go-live. Con score ≥ 8.0, el operador solo necesita hacer scroll rápido y aprobar. Con revisión humana, el operador resuelve el punto específico marcado.

### Protocolo de publicación en Beehiiv

```
NS6-A — Subir el newsletter ensamblado a Beehiiv
  1. Copiar contenido del Newsletter Ensamblado (.md) a Beehiiv
  2. Aplicar formato en editor Beehiiv (headings, bold, links)
  3. Subir imágenes (cuando el equipo de diseño las entrega)
  4. Configurar: Subject line · Preview text · Send date/time

NS6-B — Verificación pre-envío (checklist rápido)
  ✅ Subject line correcto
  ✅ Preview text correcto
  ✅ Imágenes subidas y correctas (o placeholder si faltan)
  ✅ Links funcionan
  ✅ Footer correcto
  ✅ Lista de destinatarios correcta

NS6-C — Go-live
  → Click en "Send" o "Schedule"
  → Registrar URL de la edición publicada en Ficha de Producción
```

**Nota sobre imágenes:** Si el equipo de diseño no ha entregado las imágenes al momento de publicar, se puede publicar con imágenes placeholder y actualizar después. No bloquear la publicación por imágenes.

**Actualizar Ficha:** `NS6_publicacion.url_publicado = [URL]` · `checkpoint_2 = aprobado` · `status = completado`

---

## Inventario de Artefactos por Edición

| # | Estación | Artefacto | Formato | Condición |
|---|---|---|---|---|
| 01 | NS0 | 📋 Ficha de Producción | YAML | Siempre |
| 02 | NS1 | 🔍 Banco de Fuentes Curadas | .md | Siempre |
| 03 | NS2 | 🗺️ Mapa Editorial | .md | Siempre |
| 04 | NS3 | ✍️ Draft por Secciones | .md | Siempre |
| 05 | NS4A | 📄 Newsletter Ensamblado | .md | Siempre |
| 06 | NS4B | 🎨 Prompts Visuales | .md (4-6 prompts) | Paralelizable |
| 07 | NS4C | 💼 Pack LinkedIn | .md (3-5 posts) | Paralelizable |
| 08 | NS5 | 🧪 Score + Dictamen QA | Sección del .md | Siempre |
| 09 | NS6 | 🚀 Edición Publicada + URL | Beehiiv live | Si QA aprueba |

---

## Métricas del Sistema

| Métrica | Valor |
|---|---|
| Estaciones totales | 8 (NS0-NS6 + NS4B + NS4C paralelizables) |
| Checkpoints humanos | 2 (post-NS2 y post-NS5) |
| Artefactos por edición | 9 |
| Tiempo de producción estimado | 60-90 minutos (1 sesión) |
| Intervención humana máxima | 10-15 minutos (dos reviews) |
| Target de calidad | Score QA ≥ 8.0 |
| Cadencia | Semanal |

---

## Guía de Activación por Sesión (para Anahí)

### Antes de empezar una edición

```
1. Abrir este archivo + Perfil de Proyecto del cliente
2. Completar el Intake (NS0) — 5 minutos
3. Verificar si hay insumo de comunidad disponible (Tribus RRHH: ¿hay resumen de GPT?)
4. Activar PackNEWS_PromptsOperativos_v1.md para tener los prompts listos
```

### Secuencia de ejecución

```
NS0 → NS1 → NS2 → [PAUSA: checkpoint con Victor/cliente si aplica]
     → NS3 → NS4A → [NS4B y NS4C en paralelo]
     → NS5 → [PAUSA: confirmar go-live]
     → NS6 → Registrar en Control Plane
```

### Al terminar la edición

```
1. Actualizar Ficha de Producción (todos los campos)
2. Registrar en Control Plane CP-ED-EL-v01, Sección 3 (Publicaciones)
3. Enviar Pack LinkedIn al publicador de LinkedIn correspondiente
4. Enviar Prompts Visuales al equipo de diseño con fecha límite de entrega
```

---

## Integración con el Control Plane

Este sistema se registra bajo:
- **Línea de producción:** PL-NEWSLETTERS
- **Pipeline ID:** NEWS-1
- **Assets de referencia:** `NewsFactory_Sistema_Completo_v1.md` + `PackNEWS_PromptsOperativos_v1.md` + `NewsFactory_PerfilProyecto_[CLIENTE]_v1.md`

Cada edición publicada se registra en **Sección 3 — Publicaciones** del Control Plane con fecha, proyecto, y URL.

---

## Roadmap de Evolución

| Versión | Mejora planificada | Trigger |
|---|---|---|
| v1.1 | Añadir métricas de performance (open rate, clicks) a la Ficha de Producción | Después de 4 ediciones publicadas |
| v1.2 | Automatizar NS1 con web search agent | Cuando AniX esté operativa |
| v2.0 | Pipeline de A/B testing de subject lines | Cuando se tengan datos de 10+ ediciones |
| v2.1 | Derivación automática a otros formatos (audio, video script) | Según demanda de proyectos |

---

*News Factory · Sistema Completo v1.0 · EmpowerLabs · 2026-04-06*
*Alineado con Book Factory v2.1 · Control Plane CP-ED-EL-v01 · Arquitectura BMF-EL-v01*
*Pipeline: NEWS-1 · Operadora: Anahí · Owner: Victor Heredia*
