Voz não é vibe. É contrato.
Extraindo uma voz de 152 posts em regras explícitas, um few-shot e um contrato de saída: o mesmo arquivo markdown roda em qualquer runtime de agentes.
Eu queria um ghostwriter: mandar uma ideia crua para um bot e receber de volta um post pronto numa voz específica. A versão ingênua é enfiar alguns exemplos no prompt e mandar o modelo “soar como” o criador. Não funciona. O modelo não sabe o que “soar como” significa. Ele chuta e regride para a média.
A versão certa: fazer crawl do corpus público de um criador, 152 posts originais, fazer engenharia reversa das regras reais e escrevê-las. Regras, não vibes.
O 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 regra carrega um WHY porque o modelo precisa entender a intenção, não só a forma. Uma regra sem WHY é frágil: o modelo copia a superfície e escolhe o default errado quando a entrada é ambígua.
Escrever é a spec
“Infira a voz” não é spec. É esperança. Depois que as regras estão escritas, o modelo ou cumpre ou viola. Isso dá para testar. O ghostwriter vira um arquivo de skill: um documento markdown simples com as regras, uma seção de few-shot e o contrato de saída. Por ser markdown simples, não depende de runtime. O mesmo arquivo funciona como skill em qualquer runtime de agentes, pode ser colado num system prompt ou ir para produção como skill da empresa num pipeline multiagente. O recipiente muda. O contrato não.
Lição
Uma voz é um contrato que dá para extrair: regras, exemplos e um formato de saída. Escreva uma vez e roda em qualquer lugar.