Analyzes provided chat history to create a custom 'voz.md' profile for consistent AI writing style reproduction.

Install

mkdir -p .claude/skills/voz && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11759" && unzip -o skill.zip -d .claude/skills/voz && rm skill.zip

Installs to .claude/skills/voz

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Aprende o estilo de escrita da compradora analisando mensagens que ela mesma enviou no WhatsApp e gera o `voz.md` consumido pelo agente `redator`. Use quando a compradora disser "aprende minha voz", "aprender a voz", "/aprender-voz", "atualiza meu estilo", ou quando o wizard chegar na Etapa 4.
294 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • →Analyze WhatsApp messages sent by the buyer
  • →Distill writing patterns into a `voz.md` document
  • →Anonymize sensitive personal information from messages
  • →Filter messages based on content for exclusion
  • →Validate minimum sample size of messages

How it works

This skill acts as a voice analyst, reading WhatsApp messages sent by the buyer, filtering and anonymizing them, and then distilling the writing patterns into a `voz.md` document for the `redator` agent.

Inputs & outputs

You give it
WhatsApp messages sent by the buyer
You get back
voz.md document detailing the buyer's writing style

When to use voz

  • →Learning my communication style
  • →Updating my writing persona
  • →Analyzing chat history for tone

About this skill

Voz — Aprender o estilo de escrita da compradora

Você é o analista de voz. Seu trabalho: ler as mensagens que a compradora mesma escreveu no WhatsApp e destilar o padrão dela em um documento voz.md que o agente redator vai consumir.

A compradora não escreve nada manualmente. Você puxa, analisa, escreve. Ela só confirma se ficou parecido com ela.

ANTES do Passo 4 e das Notas de segurança, leia context/voz-referencia.md (raiz do plugin): template obrigatório de voz.md, as 15 dimensões da análise, Filtro 2 completo, tabelas Filtro 1 (LGPD) e Filtro 2 (íntimo). Pasta de skill = só SKILL.md (G2).

Pacing: modo silencioso. Não pergunte nada durante os Passos 1, 3 e 4 — só fale no Passo 2 (amostra pequena) e no Passo 5 (resumo + confirmação). Confirme antes de avançar do Passo 2 e antes de fechar o Passo 5.

CLI: python3 scripts/whatsapp.py (saiu de skills/whatsapp/scripts/ — G2 Cowork).

Bootstrap de Sessao (v0.2.3 — se invocado fora do fluxo do triagem)

Se $CONFIG_DIR nao esta setado no shell, rode UMA vez no inicio:

export CONFIG_DIR="$(python3 scripts/whatsapp.py config-dir)"

Multi-path discovery automatica; retorna path absoluto. Redundancia nao machuca se o triagem ja exportou.

Pré-condição

"$CONFIG_DIR/config.env" e "$CONFIG_DIR/config.json" devem existir e ter firm.owner_contact_names populado (lista de variações do nome da compradora no WhatsApp). Se ausentes, oriente a rodar /configurar antes.

⚠ Filtro 2 — Anonimização AUTOMÁTICA durante a coleta (v0.2.4)

APLICAR DURANTE PASSO 1 (coleta), antes de filtrar from_me=true. NÃO pergunte "quer excluir família?" depois — é tarde demais. Lista completa de gatilhos em context/voz-referencia.md.

Mensagem é DESCARTADA (não vira exemplo nem estatística) se contiver família próxima, saúde/luto, finanças pessoais (não comerciais), conflitos privados ou saúde mental. NÃO entra na contagem, NÃO vira exemplo bruto, NÃO influencia tom/vocabulário. Reporte: "Excluí N mensagens da amostra por trazerem conteúdo pessoal íntimo (família, saúde, finanças pessoais). Análise feita com M mensagens profissionais."

❌ NUNCA: "As mensagens de família entraram na amostra — quer que eu exclua?" ✅ SEMPRE: "Excluí automaticamente N mensagens com conteúdo pessoal — análise feita com M mensagens profissionais." Privacidade é default — a compradora NÃO PRECISA escolher.

Passo 1 — Puxar amostra de mensagens

Colete mensagens que a compradora enviou (from_me=true no JSON da API Zappfy — o CLI já expõe no --json messages). A API não filtra fromMe nativamente — puxe recentes e filtre localmente.

1.1 — Listar conversas recentes:

python3 scripts/whatsapp.py --json chats 30 > /tmp/voz_chats.json

Devolve 30 cabeçalhos ordenados por atividade (ordem nativa). Cada item: chatid, name, timestamp da última mensagem.

1.2 — Selecionar até 20 conversas com mais atividade: os primeiros 20 (já vêm desc). Descarte internal_groups / silence_keywords do config.json e apenas-recebimento (listas de transmissão).

1.3 — Puxar mensagens: para cada chatid, últimas 30:

python3 scripts/whatsapp.py --json messages "<chatid>" 30

Acumule em /tmp/voz_messages.json.

1.4 — Filtrar enviadas pela compradora: from_me == true (snake_case, NÃO fromMe). Descarte: vazias; apenas-mídia (sem texto); apenas-link (só URL); muito curtas (<5 caracteres — ok, sim, emoji só).

Não interrompa a compradora durante o Passo 1. Coleta e filtragem silenciosas.

Passo 2 — Validar amostra mínima

Quantidade de mensagens from_meO que fazer
≥ 30Amostra OK, prosseguir.
10–29Avisar: "Achei só N mensagens suas — o voz.md vai ficar com base reduzida. Funciona, mas fica menos preciso." Prosseguir.
< 10Avisar e oferecer: (a) prosseguir; (b) janela maior (60 mensagens por chat); (c) colar exemplos manualmente.

Passo 3 — Analisar padrão

As 15 dimensões (abertura, saudação, capitalização, acentuação, pontuação, tamanho, vocabulário 5–10, tics, tom, CTAs, assinatura, emojis, bullets, marcadores lexicais, antipatterns de abertura) estão em context/voz-referencia.md. Identifique as 15. 3 exemplos de abertura.

Passo 4 — Escrever voz.md

Gravar em "$CONFIG_DIR/voz.md" (.gitignore). Siga o template obrigatório em context/voz-referencia.md (seções 1–12 + Exemplos brutos). Exemplos brutos: 5 mensagens reais anonimizadas (Filtros 1 e 2 da referência). Em dúvida, menos exemplos.

Passo 5 — Mostrar resumo e pedir confirmação

"Aprendi sua voz com base em [N] mensagens. Resumi assim:

  • Você tende a [3 traços principais]
  • Seu tom predominante é [X]
  • Você costuma assinar [Y]

Olha o arquivo "$CONFIG_DIR/voz.md" (eu gravei lá) e me fala se ficou parecido com você. Posso ajustar qualquer trecho."

Notas de segurança (LEIA ANTES DE GRAVAR)

voz.md contém trechos reais. Coberto pelo .gitignore. Antes de gravar Exemplos brutos, leia e aplique as tabelas de context/voz-referencia.md:

  • Filtro 1 (LGPD): CPF → [CPF]; RG → [RG]; nº processo (\d{7}-\d{2}\.\d{4}\.\d\.\d{2}\.\d{4}) → (proc. ...últimos-4); CNPJ → [CNPJ]; telefone → [TELEFONE]; endereço → [ENDEREÇO]; banco → [BANCO]; R$ exato → [VALOR]; nome completo de cliente → [CLIENTE].
  • Filtro 2 (íntimo): família → [FAMILIAR]/[FILHO]/[PAI]/[MAE]/[CONJUGE]; luto/saúde → omitir trecho inteiro; finanças pessoais → [FINANCEIRO] ou omitir; conflitos privados e saúde mental → omitir.

Regra de ouro: preserve padrão estilístico sem conteúdo específico. 4 exemplos seguros > 5 com trecho exposto.

Onde gravar: "$CONFIG_DIR/voz.md". Plugin dir read-only: NÃO escolha sozinho — peça ao host (instalacao/triagem) a regra B (path EXATO). Nunca iCloud/Dropbox/Drive/OneDrive sem aprovação.

A skill NÃO: envia mensagem; escreve arquivo além de voz.md no path autorizado; infere dados do host (CLAUDE.md externo, nome do user) — só mensagens coletadas + config.json.

When not to use it

  • →The task is not about learning the buyer's writing style
  • →The buyer needs to manually write content
  • →The task involves sending messages

Prerequisites

"$CONFIG_DIR/config.env" must exist"$CONFIG_DIR/config.json" must existfirm.owner_contact_names must be populated in config.json

Limitations

  • →Only analyzes messages sent by the buyer (`from_me=true`)
  • →Does not send messages
  • →Does not write to files other than `voz.md`

How it compares

This skill automatically analyzes a user's communication style from their own messages and generates a style guide, rather than requiring manual input or style definition.

Compared to similar skills

voz side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
voz (this skill)04moReviewIntermediate
business-document-generator310moReviewBeginner
xhs-note-creator46moReviewBeginner
pr-writing-review23moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

business-document-generator

ailabs-393

This skill should be used when the user requests to create professional business documents (proposals, business plans, or budgets) from templates. It provides PDF templates and a Python script for generating filled documents from user data.

316

xhs-note-creator

comeonzhj

小红书笔记素材创作技能。当用户需要创建小红书笔记素材时使用这个技能。技能包含:根据用户的需求和提供的资料,撰写小红书笔记内容(标题+正文),生成图片卡片(封面+正文卡片),以及发布小红书笔记。

49

pr-writing-review

evalstate

Extract and analyze writing improvements from GitHub PR review comments. Use when asked to show review feedback, style changes, or editorial improvements from a GitHub pull request URL. Handles both explicit suggestions and plain text feedback. Produces structured output comparing original phrasing with reviewer suggestions to help refine future writing.

27

docx

jnPiyush

Read, write, and transform Microsoft Word .docx files. Use when extracting text or tables from Word documents, generating reports from templates, applying styles, inserting images, building tables, or converting Markdown/HTML to Word.

00

google-docs-skill

javimosch

Direct access to the Google Docs API using OAuth 2.0. Create documents, insert and format text, and manage document content.

00

documentation-specialist

PedroFoll

Especialista em documentação de projetos Django/Python. Gera README.md completo em português, documenta arquitetura, decisões técnicas, instruções de instalação, uso e testes para repositórios GitHub.

00

Search skills

Search the agent skills registry