Patterns y Riffs
Dos conceptos del producto que conviven en cada pipeline:
- Pattern — la estructura reutilizable que el AI extrae de un input (hook, tone, format, triggers).
- Riff — el draft nuevo que el AI genera grounded en uno o más patterns, en tu voz, sin copiar contenido.
¿Cómo se decodifica un pattern?
Cuando un pipeline procesa un input (post, URL, paste), el LLM elegido extrae cuatro dimensiones:
| Dimensión | Qué captura | Ejemplo |
|---|---|---|
| hook | La forma del opener — qué hace que alguien siga leyendo. | numbered-list + stake, contrarian opener, story-arc opener, question opener |
| tone | La voz del autor. | confessional, operational, analytical, contrarian, narrative |
| format | La estructura física. | single post, 5-post thread, 2-post reply chain |
| triggers | Elementos retóricos / numéricos que driven engagement. | dollar-amount, time-anchor, personal-loss, nobody-says-this |
Estos campos quedan persistidos en el artifact structured y son la base para riffear después.
¿Cómo se riffea?
Un riff toma un pattern + el insumo del operador (perfil de voz, instrucciones específicas) y genera prose en la voz del operador respetando la estructura del pattern.
No es copia. El LLM tiene instrucciones explícitas de:
- Mantener la forma del hook (numbered, contrarian, etc.).
- Mantener el tono dentro del rango pedido.
- Cambiar contenido completamente — temas, ejemplos, métricas.
- Usar el perfil de voz (rasgos lingüísticos del operador) si está disponible.
Genealogía y refinement
Cada artifact preserva su árbol genealógico vía parent_id. Cuando disparás un refinement (shorter, change_tone, etc.), se crea un artifact hijo con:
parent_artifact
├── child_a · action=shorter
│ └── grandchild_a1 · action=change_tone (target=punchy)
└── child_b · action=match_voice
Podés navegar el árbol completo desde la UI o pidiendo el resource artifact://{id} vía MCP.
Multi-source riff (synthesis) — roadmap
:::caution Roadmap
Hoy cada riff toma un source post. El synthesis multi-source con citation markers descrito abajo no está implementado todavía: en taxonomy.ts las combinaciones multi-source están marcadas como supported: false.
:::
Idea de futuro: cuando un pipeline tenga multi-source, el riff combinará patterns de varios inputs y generará un draft con citations:
Input 1: @growth_dr post sobre pricing
Input 2: @bootstrap_fi post sobre 4 decisiones
Input 3: URL de blog sobre pricing anatomy
→ "Most founders obsess over their pricing page [3]. The teams that
scaled fastest skipped them — until they couldn't [1] [2]…"
Los markers [1] [2] [3] referenciarán los post_id / url de cada source. Mientras tanto, la única forma de combinar inputs es disparar un brief con múltiples source_post_ids (hasta 50) desde el Agent API, que sintetiza prose pero sin markers de citation.
Modelo de voz — roadmap
:::caution Roadmap
No existe todavía un voice profile persistente. La voz del operador entra hoy como style_reference (texto libre, ≤4000 chars) que el agente pasa explícitamente en cada llamada al MCP tool start_draft o en cada refinement match_voice. No hay UI de Settings → Voice ni endpoint de API para guardar el perfil.
:::
La intención del producto es soportar un voice profile por operador con:
- Muestras de texto propio (3–10 párrafos).
- Rasgos opt-in: ¿usás contractions? ¿swear words? ¿first-person plural?
- Tonos preferidos por default por pipeline.
Mientras tanto, el patrón recomendado es mantener tus muestras de voz en un archivo local (o en una memoria del agente que tengas a mano) y pasarlas como style_reference cuando dispares un draft.
Editar y publicar
Después de generar, el operador puede:
- Aceptar el draft tal cual (
publish_artifact). - Editarlo inline (override
final_text). - Disparar un refinement para una variante hija.
- Archivarlo sin publicar.
Cualquier publicación requiere confirmación humana — Whet no auto-publica.
Ver también
- Pipelines — el contenedor que define qué sources alimentan a los riffs.
- Operadores — el rol que opera refinement loops y publicación.
- MCP · refine_post — el prompt template guía para refinement vía agentes.