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.zipInstalls 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.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
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_me | O que fazer |
|---|---|
| ≥ 30 | Amostra OK, prosseguir. |
| 10–29 | Avisar: "Achei só N mensagens suas — o voz.md vai ficar com base reduzida. Funciona, mas fica menos preciso." Prosseguir. |
| < 10 | Avisar 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
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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| voz (this skill) | 0 | 4mo | Review | Intermediate |
| business-document-generator | 3 | 10mo | Review | Beginner |
| xhs-note-creator | 4 | 6mo | Review | Beginner |
| pr-writing-review | 2 | 3mo | Review | Beginner |
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.
xhs-note-creator
comeonzhj
小红书笔记素材创作技能。当用户需要创建小红书笔记素材时使用这个技能。技能包含:根据用户的需求和提供的资料,撰写小红书笔记内容(标题+正文),生成图片卡片(封面+正文卡片),以及发布小红书笔记。
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.
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.
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.
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.