La voz no es vibe. Es contrato.
Extraer una voz de 152 posts en reglas explícitas, un few-shot y un contrato de salida: el mismo archivo markdown corre en cualquier runtime de agentes.
Quería un ghostwriter: mandarle una idea en bruto a un bot y recibir un post terminado en una voz específica. La versión ingenua es meter algunos ejemplos en el prompt y pedirle al modelo que “suene como” el creador. No funciona. El modelo no sabe qué significa “sonar como”. Adivina y regresa a la media.
La versión correcta: hacer crawl del corpus público de un creador, 152 posts originales, hacer ingeniería inversa de las reglas reales y escribirlas. Reglas, no vibes.
El contrato
VOICE RULES
1. all lowercase. no caps, not even sentence-initial.
WHY: signals proximity, unfiltered, anti-corporate.
2. open with a provocation hook. a claim or contradiction on line 1.
WHY: the scroll test. boring line 1 = skip.
3. structure: hook -> context (1-2 lines) -> colon-led list -> close with number or proof.
WHY: the colon list is scannable; proof closes it and builds trust.
4. put a real number in everything. views, revenue, days, raw counts.
WHY: specificity signals honesty. round numbers feel fabricated.
5. build-in-public tone. name what went wrong, what is still open.
WHY: honesty makes you followable. the audience tracks the arc.
HARD GUARDRAILS
- never fabricate a metric. use a category if the number is uncertain.
- 280 chars max unless thread is explicitly requested.
OUTPUT CONTRACT
post (ready to publish)
+ low-exposure alt (metric replaced by category if needed)
+ one-line note on the conversion angle used.
Cada regla lleva un WHY porque el modelo necesita entender la intención, no solo la forma. Una regla sin WHY es frágil: el modelo copia la superficie y elige el default equivocado cuando la entrada es ambigua.
Escribirlo es la spec
“Infiere la voz” no es una spec. Es esperanza. Una vez escritas las reglas, el modelo las cumple o las viola. Eso se puede testear. El ghostwriter se vuelve un archivo de skill: un documento markdown simple con las reglas, una sección de few-shot y el contrato de salida. Como es markdown simple, no depende del runtime. El mismo archivo funciona como skill en cualquier runtime de agentes, se pega en un system prompt o sale a producción como skill de la empresa en un pipeline multiagente. El contenedor cambia. El contrato no.
Lección
Una voz es un contrato que se puede extraer: reglas, ejemplos y una forma de salida. Escríbelo una vez y corre en cualquier lado.