Guia Operacional: Gerar Signal™
Propósito: Gerar e publicar uma nova edição do Signal™, o resumo semanal de inteligência estratégica do Grupo CSV.
Regras Invioláveis
- O PDF do Signal™ deve ter exatamente 1 (uma) página. Essa restrição é absoluta. Ajustar diagramação, tamanho de fonte e comprimento dos resumos para garantir que todo o conteúdo caiba em uma única página A4.
- Acentuação e cedilha devem ser rigorosamente respeitadas em todo o conteúdo (PDF, Markdown, metadados).
- Consultar o Dicionário Oficial antes de gerar qualquer texto para garantir grafias corretas.
- Nunca usar
replace_contentpara edições pontuais no Notion. Para correções de grafia ou atualizações parciais, usar exclusivamente o comandoupdate_contentcomcontent_updates. O comandoreplace_contentsubstitui TODO o conteúdo da página e só deve ser usado para reescrita total intencional. Violação desta regra causa perda de dados (incidente S11/2026).
Workflow de Geração
Este processo é executado semanalmente, tipicamente às segundas-feiras, para cobrir a semana anterior (D-7 a D-1).
Fase 1: Coleta de Sinais
- Varredura Notion: Buscar por todas as páginas criadas ou editadas na última semana que contenham palavras-chave relevantes (
RADAR,EVS,Axys,decisão,estratégia,projeto, etc.). - Varredura Gmail: Buscar por todas as threads de e-mail no mesmo período com os mesmos critérios de palavra-chave.
- Consolidação Bruta: Agregar todo o conteúdo textual (páginas do Notion e corpos de e-mail) em um único arquivo de trabalho (e.g.,
varredura_sNN.md).
Fase 2: Análise e Síntese
- Identificação de Fatos: Ler o conteúdo consolidado e identificar os 5 a 7 acontecimentos mais relevantes da semana. Um "fato" pode ser uma reunião importante, uma decisão tomada, o avanço de um projeto, uma nova parceria, ou uma movimentação de mercado.
- Categorização: Atribuir a cada fato uma tag de categoria, conforme o
padrão-editorial.md. - Síntese: Para cada fato, escrever um título claro e um resumo de 2 a 4 frases que capture o essencial do acontecimento.
- Outras Movimentações: Listar outros pontos relevantes, mas de menor impacto estratégico, em formato de bullet points.
Fase 3: Criação da Edição
- Criar Estrutura de Pastas: No diretório
signal/edicoes/AAAA/, criar uma nova pastaSNN(e.g.,S08). Dentro dela, criar a subpastaassets. - Criar
signal.md: Usar otemplates/signal_template.mdpara criar o arquivosignal/edicoes/AAAA/SNN/signal.md. Preencher com os fatos e movimentações sintetizados na Fase 2. - Criar
metadata.yml: Usar otemplates/metadata_template.ymlpara criar o arquivosignal/edicoes/AAAA/SNN/metadata.yml. Preencher todos os campos.
Fase 4: Geração do PDF
- Atualizar Script: Atualizar o script
tools/signal-pdf/signal-pdf-gen.pycom o conteúdo da nova edição. - Executar Script: Rodar o script para gerar o PDF.bash
python3 tools/signal-pdf/signal-pdf-gen.py - Validar 1 Página: Confirmar que o PDF gerado tem exatamente 1 página. Se ultrapassar, reduzir resumos e reexecutar.
- Mover PDF: Mover o arquivo PDF gerado (e.g.,
Signal_S08_2026.pdf) para a pastasignal/edicoes/AAAA/SNN/assets/.
Fase 5: Publicação no Repositório
- Espelhar Arquivos: Copiar a pasta da nova edição (
signal/edicoes/AAAA/SNN/) para o diretóriodocs/signal/edicoes/AAAA/SNN/. - Atualizar Índice: Editar o arquivo
signal/README.mdedocs/signal/index.md, adicionando a nova edição à tabela de "Edições publicadas". - Atualizar Sidebar: Editar o arquivo
docs/.vitepress/config.mtspara adicionar a nova edição na barra lateral do Signal™. - Commit e Push:bash
git add . git commit -m "signal: publica Signal SNN/AAAA (DD-DD/MMM)" git push
Fase 6: Envio por E-mail e Entrega
Obrigatório: O envio do Signal™ deve ser realizado exclusivamente pela skill
/csv-mail(/home/ubuntu/skills/csv-mail/SKILL.md). Ler a skill antes de executar o envio.
- Enviar E-mail via csv-mail: Usar a API
POST /send-template(template institucional) com o PDF anexo em base64. O headerUser-Agent: csv-mail-client/1.0é obrigatório para evitar bloqueio Cloudflare 1010.- Endpoint:
https://mail-api.grupocsv.com/send-template - Lista de distribuição:
guilherme@grupocsv.comguilherme.thome@unimedgv.com.brnaline@grupocsv.comnaline.rocha@unimedgv.com.br
- Tags obrigatórias:
source:manus,project:signal - from_name:
Guilherme Thomé - reply_to:
guilherme@grupocsv.com
- Endpoint:
- Assunto do E-mail:
Signal™ SNN/AAAA — Resumo Semanal Estratégico (DD a DD de mês) - Corpo HTML: Parágrafo breve indicando a edição, o período, o número de fatos estratégicos e os destaques principais.
- Confirmar e Entregar: Após a confirmação do envio (verificar
success: trueeidretornado), o PDF é disponibilizado ao usuário para download.
Fluxo de Correção
Quando uma edição publicada contiver erro (formato, conteúdo, grafia), seguir este fluxo:
- Corrigir o PDF e o
signal.mdno repositório, substituindo a versão anterior. Não versionar a versão incorreta. - Commit com mensagem:
fix(signal): corrige edição SNN/AAAA — [descrição breve] - Reenviar e-mail com assunto:
Signal™ SNN/AAAA — Versão pós-correção - O corpo do e-mail segue o padrão normal, sem menção explícita ao erro corrigido.
- Entregar o PDF corrigido ao usuário para download.
Salvaguardas para Edição no Notion (MCP)
Esta seção documenta o uso correto dos comandos de edição de conteúdo do MCP Notion, após incidente de perda de dados em S11/2026.
Comandos de Edição de Conteúdo
| Comando | Uso correto | Parâmetros | Risco |
|---|---|---|---|
update_content | Edições pontuais (search-and-replace) | content_updates: array de {old_str, new_str, replace_all_matches} | Baixo — altera apenas o trecho encontrado |
replace_content | Reescrita total da página | new_str: conteúdo completo novo | ALTO — apaga todo o conteúdo existente |
Exemplo Correto — Correção de Grafia
json
{
"page_id": "2fcdc8a9-...",
"command": "update_content",
"content_updates": [
{
"old_str": "Relay",
"new_str": "Relay™",
"replace_all_matches": true
}
]
}Exemplo ERRADO — Nunca Fazer
json
{
"page_id": "2fcdc8a9-...",
"command": "replace_content",
"old_str": "Relay",
"new_str": "Relay™"
}Este comando apaga todo o conteúdo da página e substitui por "Relay™". O parâmetro old_str não pertence ao comando replace_content.
Regra Geral
- Para correções de grafia, adição de termos ou atualizações parciais: sempre
update_content. - Para reescrita total intencional (raro):
replace_contentcomnew_strcontendo o conteúdo completo. - Antes de qualquer edição no Dicionário, fazer
fetchda página para confirmar o conteúdo atual.
Checklist de Qualidade
- [ ] O PDF tem exatamente 1 (uma) página? (REGRA INVIOLÁVEL)
- [ ] Acentuação e cedilha estão corretas em todo o conteúdo?
- [ ] O PDF foi gerado em alta qualidade e revisado visualmente?
- [ ] O nome do arquivo PDF segue o padrão
Signal_SNN_AAAA.pdf? - [ ] O arquivo
signal.mdestá preenchido e formatado corretamente? - [ ] O arquivo
metadata.ymlestá completo e válido? - [ ] A nova edição foi adicionada aos dois arquivos de índice (
README.mdeindex.md)? - [ ] A sidebar do VitePress (
config.mts) foi atualizada? - [ ] Todos os links funcionam como esperado?
- [ ] Todos os nomes conferem com o Dicionário Oficial?
