Operating System · Content Engine

De los comentarios al short: motor de inteligencia de audiencia

Un flujo upstream que convierte la voz real de la audiencia (Voice-of-Customer) en briefs y guiones gobernados, y los entrega al Shorts Factory existente. Reemplaza el "qué decir" genérico por el dolor real del nicho, con evidencia citable. Construido, bilingüe y validado end-to-end — con una primera tanda real ya en cola.

Estado · operativo · validado E2E Idiomas · ES + EN Tests · 80 + 70 verdes Para · Roberto Alcance · termina en guiones Home · ~/bin/voc-shorts/
El "so what"

La "IA propietaria" del modelo de referencia es, técnicamente, scraper de comentarios + 3 prompts LLM + generadores de plantilla. Cero ML, 100% replicable. El valor no está en la tecnología sino en el framework (VOC → micro-nicho → guion en las palabras de la audiencia) y en enchufarlo a una línea de producción que ya existe. Eso ya está construido: 6 módulos, 80 tests verdes, gobernanza horneada (evidencia, idioma, título JuntaYT) y un handoff que el factory respeta.

OPERATIVO
construido + validado E2E en ES y EN (no es diseño)
80 +70
tests verdes · upstream + factory
$0.10
costo VOC por video fuente (Apify, ~72 comentarios)
1ª tanda
short #3 en cola, listo para producir
Exhibit 1

El flujo end-to-end

El flujo nuevo (azul) termina entregando guiones gobernados; el handoff (teal) los materializa en el formato que el Shorts Factory (teal) ya consume. Sin reinventar la producción — y desde el fix del cable, sin que el factory pise el contenido VOC.

Flujo nuevo · upstream — construido
L1 · INPUT

Nicho / links virales

Roberto da el nicho o 1-3 videos virales (el scout puede sugerirlos por outlier score).

L2 · VOC MINING

Scrape comentarios

Apify comments-scraper · ~72-300 · dedup · filtra ruido. Validado · $0.10/video.

L3 · BRIEF

Inteligencia de audiencia

LLM → dolores · frases verbatim · micro-nichos · hooks. Cada item con evidencia substring (anti-alucinación).

L4 · GUIONES

Briefs de short gobernados

angle · hook ≤6 palabras · guion (ES LATAM-neutro / EN natural) · título validado JuntaYT.

↓   HANDOFF   —   queue/<slug>/{spec.json, script.txt}   ·   status=scene_pending   ↓
Shorts Factory · downstream (ya existe) — respeta el contenido VOC
1 · SCENE

Scene element

gate humano

2 · BRIEF+VO

Prompt HeyGen + MP3

usa tu guion + título VOC

3 · AVATAR

Render HeyGen

gate humano

4 · COMPOSE

Compositor + QA

receta C1

5 · PUBLISH

Upload + comentario

OAuth

Exhibit 2

Arquitectura por capas · automático vs gate humano

La automatización se detiene en 2 puntos donde el juicio humano protege el valor: elegir el micro-nicho/dolor, y aprobar los guiones. Todo lo demás corre solo.

L1
Input del nicho   nicho o 1-3 links virales · parámetro lang ES|EN
auto / light
L2
VOC mining   Apify · ~72-200 comentarios · dedup · filtro de ruido
automático
L3
Brief de audiencia   LLM · dolores/frases/micro-nichos/hooks · evidencia verbatim obligatoria
automático
Gate 1Roberto elige el micro-nicho + dolores a atacar (y el idioma)
L4
Guiones   batch · angle · hook · guion ES/EN · título JuntaYT (Ask-YT)
automático
Gate 2Roberto aprueba/edita los guiones — el contenido es el activo
Handoff   escribe queue/<slug>/ para el Shorts Factory
automático
Exhibit 3

Las 4 garantías que el motor hornea

El diferencial no es generar texto — es generar texto que no se sale de control. Cada garantía está code-enforced: si el LLM la incumple, el sistema descarta o reescribe, no improvisa.

01

Evidencia verbatim (anti-alucinación)

Cada dolor, micro-nicho y hook del brief debe rastrearse a un comentario real: la evidencia tiene que ser substring literal del VOC. Lo que no se respalda, se filtra.

enforced · lib/brief.py
02

Idioma correcto por mercado

ES = LATAM neutro con voseo gate (reescribe hasta 2 veces, marca si persiste). EN = inglés natural, sin gate de voseo. El idioma es un parámetro, no un parche.

enforced · lib/scripts.py
03

Título validado por la JuntaYT

Ask-YT (pregunta→respuesta, Eloisa Wolf) · contiene el keyword del micro-nicho (vidIQ) · complementa el hook, no lo duplica (Galloway) · ≤70 chars · sin clickbait ("you won't believe", "shocking"…). Si no cumple, se descarta.

enforced · _validate_title
04

El factory respeta el contenido

El "cable": cuando el short viene de VOC (source=voc-shorts + script.txt + hook), el factory usa tu guion y tu título verbatim — ya no los regenera. La voz cae al kit de la persona (SSOT).

enforced · brief.build · prep
Exhibit 4

El contrato del handoff

El flujo nuevo produce el lado-contenido del spec.json; el factory aporta producción. Enchufa exacto — y desde el fix, sin pisarse.

Produce el flujo nuevo
  • hook_card_text — gancho en pantalla, ≤6 palabras, de frase verbatim
  • hook_keyword — palabra dorada del caption
  • script.txt — guion literal (ES neutro / EN natural)
  • title — validado JuntaYT (ya no es opcional)
  • evidence — comentario VOC que respalda cada guion
  • source = voc-shorts · lang · target_duration
  • Lo pone el Shorts Factory
  • persona · avatar_look · voice_id (del kit, SSOT)
  • card geometría · vo_speed · beats / b-rolls
  • HeyGen brief · VO (ElevenLabs) · avatar render
  • compose (receta C1) · QA gate · captions · outro
  • publish (OAuth) · comentario fijado · dedupe
  • El cable (fix · commit f168a22)

    Antes: el factory regeneraba script + título desde el angle y descartaba el contenido VOC. Ahora: brief.build detecta el origen VOC y conserva guion + título; prep resuelve la voz desde el perfil de la persona cuando el spec no la trae. El handoff fluye sin pérdida.

    Exhibit 5 · Caso real

    Primera tanda real: del comentario al short en cola

    Nicho "AI agents" (canales en inglés). Una corrida real, end-to-end, hasta dejar el short #3 en la cola del factory. Esta es la cadena de transformación — sin invención en ningún eslabón.

    VOC · evidencia verbatim
    "Most people jump to Level 3 agents and abandon them because they skipped the foundation"
    comentario real de la audiencia
    Micro-nicho elegido · Gate 1
    Prospección de ventas / outreach B2B
    agentes para contactos, emails, envíos
    Hook card · ≤6 palabras
    "Don't jump to Level 3"
    keyword: Level 3
    Título JuntaYT · Ask-YT
    "Why Your AI Sales Agent Keeps Failing"
    complementa el hook · keyword "AI sales agent" · ≤70 chars
    72 comentarios minados (Apify)
    $0.10 costo de la fuente
    3 guiones EN generados
    #3 elegido → en cola

    Los otros 2 guiones de la misma tanda (mismos comentarios, distintos dolores):

    Hook: "Your first sales prospecting agent" — deseo: tutorial real paso a paso, sin código Hook: "Free AI agents, or pay?" — dolor: el costo de los modelos grandes como barrera de entrada
    Exhibit 6

    Estado de build · por waves

    7 tasks · 5 waves · cada una con criterios "Done when" verificables. W0–W4 entregadas y validadas E2E (ES + EN). Mismo patrón de ingeniería que el Shorts Factory (config + lib + handoff + tests).

    0setup
    T1 Scaffold voc-shorts/shipped
    1w0
    T2 VOC mining (Apify)T3 Audience brief (LLM+schema)shipped
    2w1
    T4 Guiones (ES/EN + título JuntaYT)T5 Handoff writershipped
    3w1·2
    T6 Orchestrator + 2 gatesshipped
    4w2·3
    T7 Validación E2E (nicho real → handoff válido, ES+EN)shipped
    Exhibit 7 · Runbook

    De la cola al publicado · activar el short #3

    El upstream termina en la cola; el factory produce. Slug real: 2026-06-09-mistake-beginners-jump-straight-to-autonomous. Cinco pasos, dos gates humanos. El guion y el título ya viajan validados — el factory no los toca.

    Confirmar Scene Element Gate 1
    Elegí: orchestrator · delegation · c1-governance · agentsquad-office-set2
    prep.confirm_scene('queue/<slug>', 'orchestrator', angle) → scene_confirmed
    Prep · brief + VO
    Usa tu guion VOC y conserva el título JuntaYT. Genera heygen-brief.md + vo.mp3 + proposal.md.
    prep.prep('queue/<slug>', config) → brief_ready
    Render HeyGen Gate 2
    Revisá proposal.md → rendí a Camila en modo AUDIO con vo.mp3 → dejá avatar.mp4.
    Compose
    Compositor + QA + captions + outro (receta C1).
    ./run-compose.sh → composed
    Publish
    Upload + comentario fijado (OAuth).
    ./run-publish.sh → published
    Honestidad de diseño

    Lo que SÍ resuelve · lo que NO

    ✓ Resuelve

    El qué decir y para quién, con base real (VOC) y evidencia citable — no inventado. Lo entrega listo y gobernado (idioma, título JuntaYT, sin fricción de formato), y el factory lo respeta verbatim.

    ✗ No resuelve

    La distribución / alcance. Producir shorts ≠ tener tráfico. Eso sigue siendo el Shorts Factory + el alcance del canal. La calidad del brief depende de elegir buenos videos-fuente → por eso el Gate 1.