feat(crm-ops): estrategia-marca 1.3.0 — SPEC v2.0, versão completa (36 capítulos), redação em paralelo, montagem e PDF A4; funde marketing:brand-strategy (marketing 2.1.0)

This commit is contained in:
AIkTop
2026-10-17 01:39:40 +01:00
parent bce12944ae
commit c18bb90ff6
16 changed files with 662 additions and 590 deletions
+134 -131
View File
@@ -1,174 +1,177 @@
---
name: estrategia-marca
description: Cria estratégias de marca completas seguindo a metodologia Descomplicar® (ACIDA + Framework 16Ps). Inclui fase de pesquisa de mercado com /deep-research antes do briefing. Guia a análise de público, posicionamento, Pitch Canvas, copywriting e documento final entregável. Usar quando o utilizador diz "estratégia de marca", "branding", "criar marca", "posicionamento", "16Ps", "/estrategia-marca", "análise de público", "narrativa de marca", "proposta de valor", "pitch canvas", "pain + gain", "copywriting estratégico", "identidade de marca", "pesquisa de mercado para marca", ou quando um cliente adquire o serviço EST-MRK-010.
description: Cria estratégias de marca Descomplicar® (EST-MRK-010) conforme a SPEC v2.0 (16Ps 2026, 40Ps em projetos complexos, ≥5 nichos, 20 pontos por segmento, identidade visual da marca, bloco BRIEFING-LLM) em três níveis, Essencial, Standard e Completo, do briefing ao PDF A4 validado. A versão completa (36 capítulos) junta todos os elementos de todas as estratégias já entregues. Usar quando o utilizador diz "estratégia de marca", "brand strategy", "branding", "criar marca", "posicionamento", "16Ps", "40Ps", "/estrategia-marca", "análise de público", "personas", "segmentação", "narrativa de marca", "proposta de valor", "pitch canvas", "pain + gain", "copywriting estratégico", "tom de voz", "identidade de marca", "manifesto", "versão completa da estratégia", ou quando um cliente adquire o serviço EST-MRK-010.
---
# Skill: Estratégia de Marca
Guia completo para criar estratégias de marca Descomplicar® — da pesquisa de mercado ao documento final entregável.
Da pesquisa ao documento final validado e em PDF. Substitui a antiga skill
`marketing:brand-strategy` (fundida aqui a 17-10-2026).
---
## Fonte de verdade (ler antes de escrever)
## Fluxo de trabalho (8 fases)
Standard canónico em `Cloud/Descomplicar/ACIDA/Estrategia-de-Marca/`
(caminho local: `/media/ealmeida/Dados/Cloud/Descomplicar/ACIDA/Estrategia-de-Marca/`):
### Fase 0 — Pesquisa de mercado
| Ficheiro | Para quê |
|---|---|
| `SPEC-Estrategia-de-Marca.md` (v2.0) | Decisões canónicas, níveis, critérios de completude |
| `PROC-Estrategia-de-Marca.md` (v2.0) | Fases, gates, responsáveis |
| `CONTRATO-OUTPUT-LLM.md` | Esquema do bloco `## BRIEFING-LLM` |
| `golden-example-briefing-llm.md` | Bloco BRIEFING-LLM preenchido (Descomplicar®) |
| `validador-estrategia-marca.mjs` | Gate final: `node validador-estrategia-marca.mjs <ficheiro> [--completo]` |
Antes do briefing com o cliente, fazer pesquisa independente. Verificar primeiro se já existem ficheiros de pesquisa (ex: pasta `Pesquisas/` no projecto).
Esta skill implementa o PROC. Se algo aqui contradisser a SPEC, prevalece a SPEC.
**Se a pesquisa já existe:** ler os ficheiros relevantes e extrair síntese.
Decisões que não se regridem (SPEC §1): 16Ps com a numeração de 2026 como base;
40Ps só em projetos complexos; ≥5 nichos reais e 20 pontos por segmento;
paleta é sempre a da marca em causa (nunca a da Descomplicar® num cliente);
`## BRIEFING-LLM` como última secção; PT-PT estrito; nada inventado, o que
faltar fica `[a validar: …]` e vai para o anexo A.
**Se não existe:** usar `/deep-research` (ou `mcp__tavily__tavily_research`) com os seguintes focos:
## Níveis
1. **Mercado/sector** — dimensão, crescimento, tendências, regulação
2. **Concorrentes** — posicionamento, mensagens, pricing, pontos fracos
3. **Público** — linguagem online, canais activos, dores expressas em fóruns/reviews
4. **Oportunidades** — gaps de mercado, tendências emergentes não exploradas
| Nível | Quando | Estrutura | Modo de redação |
|---|---|---|---|
| Essencial | Produto próprio, iteração rápida | Capítulos E de `estrutura-completa.md` | Um agente, de seguida |
| Standard (default) | Cliente EST-MRK-010 | Capítulos E + S | Bloco a bloco com validação do utilizador |
| Completo | "versão completa", marca da casa, branding WOW, cliente com várias linhas de negócio | Todos os 36 capítulos e anexos | Subagentes em paralelo por parte (`prompt-redacao-parte.md`) |
Guardar síntese em `Pesquisas/sintese-mercado.md` no projecto do cliente.
Se o pedido for ambíguo, Standard. "Completa", "com todos os elementos" ou
"como a da Descomplicar" = Completo.
**Resultado esperado:** chegar ao briefing já com hipóteses validadas sobre o mercado e o público — não para impor, mas para fazer perguntas mais certeiras e poupar tempo ao cliente.
## Fases
### Fase 1 — Activação e contexto
### Fase 0. Pesquisa de mercado
Verificar se já existe pesquisa (`Pesquisas/` no projeto). Se não, usar
`/deep-research` (ou pesquisa web) sobre mercado, concorrentes, público e
oportunidades. Só fontes primárias para números (INE, Eurostat, reguladores,
associações), sempre com link. Guardar em `Pesquisas/sintese-mercado.md`.
Ao iniciar, perguntar:
- Qual o nome do cliente/marca?
- Já existe briefing ou material de partida?
- Qual o sector/indústria?
- Temos exemplos de concorrentes?
### Fase 1. Ativação e contexto
Nome da marca, sector, material existente, concorrentes conhecidos, projeto no
Desk CRM (`get_project`). Para a própria Descomplicar® ou marcas da casa, ler
também: `Cloud/Descomplicar/Planeamento/Estrategia-2026/`, o sistema de design
(`Hub/04-Stack/02.04-Sistemas/DesignSystem-Descomplicar/sistema/docs/marca.md`)
e as fichas OKF (`empresa/`, `produtos-servicos/`).
Se existir projecto no Desk CRM, verificar com `get_project` antes de prosseguir.
### Fase 2. Briefing (rondas curtas, saltar o que já se sabe)
1. Essenciais: nome, sector, o que vende, quem compra, website.
2. Contexto: problema que resolve, 2-3 concorrentes, diferenciador, material de marca, mercado geográfico.
3. Ambição: onde quer estar a 2-3 anos, nichos prioritários, enquadramento legal.
Perguntas completas em `references/perguntas-briefing.md`.
### Fase 2 — Briefing estruturado
### Fase 3. Fundamentos (P1-P4)
Problema em 3 níveis, propósito, missão, visão, valores, objetivos, posicionamento
testável, proposta de valor. `references/framework-16ps.md` (Bloco A).
Gate P4: sem declaração de posicionamento testável, não avançar.
Conduzir entrevista com as perguntas de `references/perguntas-briefing.md`.
### Fase 4. Público (P5-P7)
≥5 nichos sectoriais com 8 pontos (`references/nichos.md`; "PMEs" não é nicho),
depois os segmentos com os 20 pontos por ordem (`references/template-documento.md` §5,
exemplo em `references/exemplo-persona-20d.md`), personas nomeadas.
Gate Público: ≥5 nichos e ≥2 segmentos com os 20 pontos completos.
Organizar por blocos:
1. Negócio (problema, serviços, mercado)
2. Público-alvo (segmentos identificados)
3. Posicionamento actual vs desejado
4. Tom de voz e personalidade
5. Concorrência e diferenciação
### Fase 5. Pitch canvas
Para quem, problema, solução, resultado, porquê nós, mais a declaração de mudança no mundo.
### Fase 3 — Fundamentos estratégicos
### Fase 6. Copywriting
Questionamento estratégico (10 perguntas), Pain + Gain original e refinado,
narrativa por segmento (dor → solução → resultado), mensagem central, headlines.
`references/narrativas-copywriting.md`.
Desenvolver com o cliente:
- **Proposta de valor única** — o que nos torna únicos, diferenciais, benefícios por camada
- **Missão, Visão, Valores e Objectivos** — com exemplos de como se manifestam na prática
- **Apresentação sumária** — empresa + serviços com tabela clara
- **Posicionamento** — declaração de posicionamento testável
### Fase 7. Restante documento
Seguir a ordem de `references/estrutura-completa.md` para o nível escolhido:
identidade e expressão, oferta e preço, comunicação e canais, crescimento,
medição e roteiro. Gate Identidade Visual: paleta desta marca em hex.
Ver `references/framework-16ps.md` → Bloco A para questões orientadoras.
No nível Completo as fases 3 a 7 correm em paralelo: o orquestrador fecha as
decisões transversais e lança um subagente por parte com
`references/prompt-redacao-parte.md`. Depois lê os relatórios, alinha nomes
partilhados entre partes e retira o que não pode sair (detalhes de incidentes,
promessas sem cláusula, concorrentes nomeados em copy).
### Fase 4 — Análise de público (20 pontos por segmento)
### Fase 8. Montagem, validação e PDF
1. Escrever a introdução (resumo executivo de 1 página + "Sobre este documento":
fontes, decisões tomadas quando as fontes divergem, convenções).
2. Escrever o `## BRIEFING-LLM` (esquema do CONTRATO; partir do golden example
e trocar tudo pelos valores desta marca; coerente com o corpo).
3. Montar: `python3 scripts/montar.py --partes <dir> --intro intro.md --briefing briefing-llm.md --config marca.json --out <ficheiro>.md [--glossario …] [--historico …]`.
Gera o anexo A com todos os `[a validar]`.
4. Validar: `node <ACIDA>/Estrategia-de-Marca/validador-estrategia-marca.mjs <ficheiro>.md` (acrescentar `--completo` no nível Completo). Corrigir até 0 erros.
5. PDF A4: copiar `assets/marca-descomplicar.json` para o projeto, trocar cores,
fontes, logótipo e textos pelos da marca, e correr
`python3 scripts/render_pdf.py <ficheiro>.md <ficheiro>.pdf --config marca.json`.
6. Verificar: abrir pelo menos a capa, o índice, uma página de texto com € e uma
tabela (`pdftoppm -r 60 -f N -l N`); o script avisa se aparecerem fontes de
recurso do sistema (Liberation/DejaVu).
**Obrigatório:** Antes dos segmentos psicográficos, identificar os nichos sectoriais relevantes para o produto. Usar `references/nichos.md` para seleccionar e analisar **pelo menos 5 nichos específicos** (ex: clínicas de saúde, imobiliárias, agências digitais — não "PMEs" como categoria vaga). Para cada nicho preencher os 8 pontos do guia de análise sectorial. Cruzar com os 20 pontos psicográficos abaixo para construir personas completas.
### Fase 9. Entrega
- Estratégia de cliente: pasta do projeto do cliente (Desk/GDrive/local), nunca
na pasta do standard. Marca da casa: `Cloud/Descomplicar/Planeamento/…` e
atualizar a ficha OKF correspondente.
- Status `rascunho-para-validacao` enquanto houver pontos no anexo A;
`aprovado` só com o validador a 0 erros e revisão do Emanuel.
- Cliente no Desk: comentar na tarefa com o caminho e a lista de pontos a validar.
Para cada segmento identificado, desenvolver os 20 pontos na seguinte ordem:
## Checklist de entrega
1. Perfil Demográfico
2. Perfil Psicográfico
3. Dores
4. Anseios
5. Desejos
6. Frustrações
7. Preocupações
8. Medos
9. Inimigos
10. Linguagem
11. Como procuram ajuda/informação/dicas
12. Canais digitais activos
13. Estilo de Decisão
14. Mudanças (que sabem necessárias)
15. Resistência à mudança
16. Objecções típicas (+ como ultrapassar)
17. Forma de gerar emoção
18. Argumentos (a que são mais sensíveis)
19. Concorrentes (que alternativas avaliam)
20. Propostas Recusadas (e porquê)
- [ ] Pesquisa de mercado com fontes (Fase 0)
- [ ] P1-P16 referidos explicitamente
- [ ] Posicionamento testável, proposta única de valor, missão, visão, valores
- [ ] ≥5 nichos (8 pontos) e segmentos com os 20 pontos (≥2 Essencial, 3-4 Standard, todos Completo)
- [ ] Pitch canvas + declaração de mudança no mundo
- [ ] Pain + Gain original e refinado, narrativa por segmento, mensagem central
- [ ] Identidade visual com paleta desta marca em hex
- [ ] KPIs com base e metas a 3/6/12 meses
- [ ] Capítulos do nível escolhido todos presentes (`estrutura-completa.md`)
- [ ] Anexo A gerado; nenhum dado inventado
- [ ] `## BRIEFING-LLM` em último, sem placeholders
- [ ] Validador a 0 erros; PDF A4 verificado visualmente
Ver `references/metodologia-acida.md` para contexto e profundidade em cada ponto.
## Erros a evitar
### Fase 5 — Pitch Canvas
- Personas genéricas sem nome nem história; segmentos vagos ("PMEs").
- Missão e visão de modelo; SWOT vago ("boa qualidade"); headlines do tipo "soluções inovadoras".
- KPIs sem meta numérica; proposta de valor com funcionalidades em vez de benefícios; ignorar objeções.
- Números, casos, testemunhos, preços ou concorrentes sem fonte.
- Garantias de resultado ("ROI garantido") em texto para clientes sem cláusula contratual.
- Paleta da Descomplicar® na estratégia de um cliente.
- Assinatura antiga: a Descomplicar® assina "Agência de Marketing Digital" (sistema de design de 16-10-2026), não "Aceleração" nem "Crescimento Digital".
- PDF em Letter: é sempre A4.
Estrutura de 5 elementos:
- **Para quem:** segmento + problema específico
- **O problema:** dor principal na linguagem do cliente
- **A solução:** mecanismo único de resolução
- **O resultado:** transformação concreta (antes/depois + métrica)
- **Por que nós:** razão para acreditar
Criar também a **Declaração de mudança no mundo** — frase que resume o impacto maior da marca.
### Fase 6 — Copywriting estratégico
Sequência obrigatória:
1. **Questionamento estratégico** — Qual é o objectivo da comunicação? Que transformação prometemos?
2. **Pain + Gain** — formulação problema/resultado na linguagem do cliente; depois refinar com especificidades do sector
3. **Narrativa por segmento** — fórmula: Problema (dor do público) → Solução (serviços) → Resultado (benefícios concretos)
4. **Mensagem central** — 1 frase que toda a equipa sabe de cor
5. **Headlines** — por segmento (principal + secundária)
Ver `references/narrativas-copywriting.md` para templates e exemplos reais.
### Fase 7 — Documento final + Investimentos
Completar as secções finais:
- **Demonstração dos serviços** — como demonstrar, preparação, follow-up
- **Investimentos prioritários** — canais, orçamento, ROI esperado
- **KPIs** — baseline + metas a 3m, 6m, 12m
- **Inventário de activos** — o que existe, estado, prioridade
Ver `references/template-documento.md` para a estrutura completa do documento.
**Checklist de entrega:**
- [ ] Pesquisa de mercado feita (Fase 0)
- [ ] Proposta de valor única definida
- [ ] Missão, Visão, Valores escritos
- [ ] Apresentação sumária da empresa e serviços
- [ ] Mínimo 5 nichos sectoriais analisados (8 pontos cada) — ver `references/nichos.md`
- [ ] Mínimo 2 segmentos psicográficos com 20 pontos completos
- [ ] Pitch Canvas preenchido
- [ ] Declaração de mudança no mundo
- [ ] Pain + Gain (original + refinado)
- [ ] Narrativa por segmento (Problema → Solução → Resultado)
- [ ] Mensagem central definida
- [ ] Investimentos prioritários identificados
- [ ] KPIs definidos com metas
---
## Referências (carregar conforme necessário)
## Referências
| Ficheiro | Quando carregar |
|----------|----------------|
| `references/metodologia-acida.md` | Fases 3-4: ACIDA, 20 pontos por segmento |
| `references/framework-16ps.md` | Fase 3: fundamentos estratégicos (Bloco A) |
| `references/perguntas-briefing.md` | Fase 2: conduzir entrevista cliente |
| `references/narrativas-copywriting.md` | Fase 6: copywriting, Pain+Gain, narrativas |
| `references/template-documento.md` | Fase 7: estrutura completa do documento |
| `references/nichos.md` | Fase 4: análise sectorial dos 10 nichos PT/EU (mínimo 5 obrigatórios) |
|---|---|
| `references/estrutura-completa.md` | Sempre: ordem canónica, níveis, mapa 16Ps → capítulos |
| `references/prompt-redacao-parte.md` | Nível Completo: contexto e tarefa de cada subagente |
| `references/perguntas-briefing.md` | Fase 2 |
| `references/framework-16ps.md` | Fase 3 |
| `references/metodologia-acida.md` | Fases 3-4 |
| `references/nichos.md` | Fase 4: 10 nichos PT/UE, 8 pontos cada |
| `references/template-documento.md` | Guia de escrita de cada secção (20 pontos em detalhe, pitch canvas, KPIs, inventário) |
| `references/exemplo-persona-20d.md` | Fase 4: exemplo de segmento com as 20 dimensões |
| `references/narrativas-copywriting.md` | Fase 6 |
| `scripts/montar.py`, `scripts/render_pdf.py`, `assets/marca-descomplicar.json` | Fase 8 |
---
Exemplos reais: `99-Arquivo/Manual-OwnCloud-Descomplicar/exemplos estrategias de marca/`
(Carritools é o mais completo dos clientes) e a Estratégia Descomplicar® v3.0 em
`Cloud/Descomplicar/Planeamento/Estrategia-2026/DESCOMPLICAR_ESTRATEGIA_MARCA_V3.md`.
## Contexto do serviço
- **Código:** EST-MRK-010
- **Preço:** 900 EUR
- **Prazo médio:** 30h de trabalho
- **Entregáveis:** Documento estratégico completo, dashboard personas, narrativa de marca, apresentação executiva editável, guia de implementação, sessão de alinhamento com equipa
- **Suporte pós-entrega:** WhatsApp 1 mês
Complementar com Branding WOW (BRAND-ESS/DIG/COM: 1.800–4.500 EUR) se o cliente precisar de identidade visual.
---
- Código EST-MRK-010 · 900€ fixo · cerca de 30 horas (catálogo, outubro de 2026).
- Entregáveis: documento estratégico, personas, narrativa, apresentação executiva editável, plano de implementação, sessão de alinhamento com a equipa, suporte por WhatsApp durante 1 mês.
- Identidade visual completa: Branding WOW (1 800€ a 4 500€).
## Healing Log
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
Lido antes de executar. Acrescentar uma linha por erro corrigido.
```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
{"date":"2026-10-17","issue":"Skill dizia-se alinhada com a SPEC (GATE-HOOK) mas não pedia o BRIEFING-LLM; a estratégia Descomplicar v3 reprovou no validador","fix":"Fase 8 obriga a escrever o BRIEFING-LLM e a correr o validador antes de entregar","source":"auto"}
{"date":"2026-10-17","issue":"Subagentes copiaram identificadores e pormenores de incidentes de segurança para a SWOT","fix":"Contrato de redação proíbe; orquestrador revê antes de montar","source":"auto"}
{"date":"2026-10-17","issue":"PDF saiu com Liberation Sans em vez das fontes da marca: woff2 subset sem € e faces de recurso na mesma família com pesos diferentes","fix":"render_pdf.py usa família de recurso separada e avisa se houver fontes do sistema no PDF","source":"auto"}
{"date":"2026-10-17","issue":"Partes escritas em paralelo usaram durações e segmentos diferentes (diagnóstico 30 vs 45 min, 5 vs 6 segmentos)","fix":"Fixar nomes partilhados no bloco 'Decisões já tomadas' antes de lançar","source":"auto"}
```
*Adicionar nova linha após cada erro corrigido.*
@@ -0,0 +1,44 @@
{
"_nota": "Config de exemplo para render_pdf.py e montar.py. Só para estratégias DA PRÓPRIA Descomplicar®. Para clientes, copiar e trocar cores, fontes, logótipo e textos pelos da marca do cliente (SPEC C4). Caminhos absolutos do posto 'desktop'/'hp' (Hub em /media/ealmeida/Dados).",
"marca": "Descomplicar®",
"titulo_documento": "Estratégia de marca",
"rodape": "Descomplicar® · Estratégia de marca",
"capa_eyebrow": "Documento estratégico · versão 3.0",
"capa_titulo": "Estratégia<br>de marca",
"capa_slogan": "Criamos Resultados!",
"capa_assinatura": "Descomplicar® - Agência de Marketing Digital",
"capa_data": "outubro de 2026",
"logo_capa": "/media/ealmeida/Dados/Hub/04-Stack/02.04-Sistemas/DesignSystem-Descomplicar/sistema/assets/Logos/assinatura-vertical-white.svg",
"fonte_titulos": "Montserrat",
"fonte_texto": "Roboto",
"fallback": "'DCArrows','DCFallback',sans-serif",
"fontes": [
{"family": "Montserrat", "src": "/media/ealmeida/Dados/Hub/04-Stack/02.04-Sistemas/DesignSystem-Descomplicar/sistema/fonts/Montserrat-latin-wght-normal.woff2"},
{"family": "Roboto", "src": "/media/ealmeida/Dados/Hub/04-Stack/02.04-Sistemas/DesignSystem-Descomplicar/sistema/fonts/Roboto-latin-wght-normal.woff2"},
{"family": "Roboto", "style": "italic", "src": "/media/ealmeida/Dados/Hub/04-Stack/02.04-Sistemas/DesignSystem-Descomplicar/sistema/fonts/Roboto-latin-wght-italic.woff2"},
{"family": "DCFallback", "weight": "100 500", "src": "/media/ealmeida/Dados/Dev/SEO-Reports/public/fonts/pdf/Roboto-Regular.ttf"},
{"family": "DCFallback", "weight": "600 900", "src": "/media/ealmeida/Dados/Dev/SEO-Reports/public/fonts/pdf/Roboto-Bold.ttf"},
{"family": "DCArrows", "src": "/media/ealmeida/Dados/Dev/SEO-Reports/public/fonts/pdf/Montserrat-Regular.ttf", "unicode_range": "U+2190-21FF"}
],
"cores": {
"escura": "#0e0d0b",
"clara_texto": "#f5f1e8",
"primaria": "#cc8d00",
"acento_texto": "#7a5400",
"texto": "#1a1814",
"texto_secundario": "#5c5750",
"suave": "#faf4e6",
"linha": "#e6e1d8",
"alternada": "#faf8f3",
"aviso_fundo": "#fdecc8",
"aviso_texto": "#5a3d00"
},
"frontmatter": {
"type": "Document",
"title": "Descomplicar® · Estratégia de marca",
"codigo": "EST-MRK-010",
"version": "3.0",
"status": "rascunho-para-validacao",
"elaborado": "Descomplicar® - Agência de Marketing Digital"
}
}
@@ -0,0 +1,156 @@
# Estrutura completa — Estratégia de Marca Descomplicar® (SPEC v2.0)
Ordem canónica do documento de autoria. Junta, sem perder nenhum, todos os
elementos usados nas estratégias entregues (Carritools MCT, Espiral Sénior ESP,
Loja da Maria LJM, Sintricare SNT, Water Control WTC, Solar FV SFV), no modelo
ACIDA v3, no prompt 40Ps, na skill `brand-strategy` (40 pontos, fundida aqui) e
na Estratégia de Marca Descomplicar® v3.0 (17-10-2026), que é o exemplo de
referência do nível Completo.
Exemplo de referência (nível Completo, 34 capítulos, 192 páginas A4; anterior a esta
estrutura, junta os 20 pontos nos caps. 9-11 e não tem capítulo de jornada):
`Cloud/Descomplicar/Planeamento/Estrategia-2026/DESCOMPLICAR_ESTRATEGIA_MARCA_V3.md` (+ `.pdf`).
Exemplo de profundidade por capítulo (cliente): `99-Arquivo/Manual-OwnCloud-Descomplicar/exemplos estrategias de marca/MCT Estratégia de Marca Carritools.md`.
A ordem vai do contexto para a ação: perceber o mercado e a empresa, fixar os
fundamentos, conhecer o público, definir a expressão da marca, desenhar a oferta,
planear a comunicação e o crescimento, e por fim medir e implementar.
## Níveis de profundidade
| Nível | Quando | O que entra | Público |
|---|---|---|---|
| Essencial | Produto próprio, iteração rápida, teste de posicionamento | Cabeçalho, caps. 2-4 resumidos, 5-8, 9 (≥5 nichos), 10 (≥2 segmentos com 20 pontos), 16, 17, 20, 27, 32, anexo A, BRIEFING-LLM | 2-3 segmentos |
| Standard (default) | Cliente EST-MRK-010 | Essencial + 1, 11, 13-15, 18, 19, 21, 23, 35, 36 (resumo), anexos B e D | 3-4 segmentos, 20 pontos cada |
| Completo | Pedido "versão completa", marca da casa, branding WOW, cliente com várias linhas de negócio | Todos os capítulos e anexos abaixo | Todos os segmentos com 20 pontos + secundários e prescritores |
Coluna "Nível" abaixo: E = Essencial, S = Standard, C = Completo. Um capítulo
marcado S entra em S e C; marcado E entra nos três.
## Cabeçalho (todos os níveis)
| Elemento | Conteúdo | Fonte de exemplo |
|---|---|---|
| Frontmatter | title, cliente, codigo EST-MRK-010, versao, data, elaborado ("Descomplicar® - Agência de Marketing Digital"), status `rascunho-para-validacao` / `aprovado` | template-documento |
| Capa | Marca, "Estratégia de marca", assinatura ou slogan do cliente | todos |
| Declaração de impacto | Uma frase de 10-15 palavras (a mudança no mundo) | template v3, LJM ("Alegria todo o dia"), WTC ("Cada gota conta") |
| Índice | Partes e capítulos | todos |
| Resumo executivo | Tabela de 1 página: assinatura, slogan, missão, visão, posicionamento, proposta única de valor, método, persona principal, oferta de entrada, prioridade imediata, cada um com o capítulo | v3.0 |
| Sobre este documento | Fontes usadas, decisões tomadas quando as fontes divergem, convenções (o que significa `[a validar]`) | v3.0 |
## Parte I. Contexto (P6 Pesquisa)
| Cap. | Título | Contém | P / 40Ps | Nível | Fonte de exemplo |
|---|---|---|---|---|---|
| 1 | Apresentação | Quem é a empresa (identidade legal, fundação, equipa, localização), histórico e evolução, como opera, serviços e produtos em resumo, estado atual | P8 resumo; Apresentação institucional | S | SNT, WTC, template v3, v3.0 |
| 2 | Enquadramento do mercado e contexto social | Contexto do sector, dimensão, tendências, mudanças sociais e tecnológicas, enquadramento legal e regulatório, cultura e comunidade do sector | P6; Possibilidades | E (resumo) / C | MCT 1.1-1.5, LJM, ESP |
| 3 | Concorrência e oportunidades de diferenciação | Tipos de concorrente e posicionamento de cada tipo, matriz comparativa, propostas recusadas e porquê, oportunidades de diferenciação com a condição para serem credíveis | P4, P6 | E (resumo) / C | MCT 1.3-1.6 |
| 4 | Análise SWOT | Forças, fraquezas, oportunidades, ameaças com evidência; cruzamento estratégico (SO, ST, WO, WT) e prioridades | P6 | E (resumo) / C | LJM |
## Parte II. Fundamentos (P1-P4)
| Cap. | Título | Contém | P | Nível | Fonte |
|---|---|---|---|---|---|
| 5 | Problema, causa e propósito | P1 em 3 níveis (superficial, real, raiz), a causa da marca, propósito (porquê, como, o quê), manifesto (opcional em E/S), lema interno | P1, P2 | E | WTC ("A nossa causa"), v3.0 |
| 6 | Missão, visão, valores e objetivos | Missão, visão com metas datadas, valores com comportamentos concretos ("fazemos / não fazemos"), objetivos estratégicos com indicador, base e meta | P2, P16 | E | todos |
| 7 | Posicionamento | Categoria e papel, declaração de posicionamento testável (formato clássico + 1 frase + versão oral), especialização vs. competição pelo preço, mapa de posicionamento, oportunidades | P4 | E | LJM, MCT 1.6 |
| 8 | Proposta de valor | Proposta única de valor, dores e como a marca as resolve (tabela), diferenciais, benefícios tangíveis e benefícios por camada/segmento, expectativas emocionais e racionais, USP, escada de valor | P3 | E | MCT 3, SNT, WTC |
## Parte III. Públicos (P5-P7)
| Cap. | Título | Contém | P | Nível | Fonte |
|---|---|---|---|---|---|
| 9 | Nichos e segmentos | ≥5 nichos sectoriais com os 8 pontos (`nichos.md`); segmentos primário, secundário e terciário; critérios de cliente ideal (obrigatórios, desejáveis, sinais de alerta); anti-persona; públicos secundários (prescritores, parceiros, talento) | P5 | E | MCT 2, WTC, SNT |
| 10 | Análise de 20 pontos por segmento | Para cada segmento, os 20 pontos por ordem (ver lista abaixo), com o ponto 16 (objeções) sempre acompanhado do tratamento | P5-P7 | E (≥2 seg.) / S (3-4) / C (todos) | template-documento §5, ESP, WTC |
| 11 | Personas e dashboard de personas | Persona principal com nome, biografia, objetivos, frustrações, comportamento digital, processo de decisão, citações típicas, mapa de empatia; personas secundárias; dashboard (uma ficha por persona) | P7 | S | 40Ps [8], v3.0 |
| 12 | Jornada e experiência do cliente | Fases da jornada (descoberta, consideração, decisão, onboarding, fidelização), pontos de contacto, emoção e fricção por fase | P9, P10 | C | brand-strategy 23b |
Os 20 pontos (ordem fixa, cabeçalhos com estes nomes para o validador os
encontrar): Perfil demográfico · Perfil psicográfico · Dores · Anseios · Desejos ·
Frustrações · Preocupações · Medos · Inimigos · Linguagem · Como procuram
ajuda/informação · Canais digitais · Estilo de decisão · Mudanças · Resistência à
mudança · Objeções (+ como ultrapassar) · Forma de gerar emoção · Argumentos ·
Concorrentes · Propostas recusadas.
## Parte IV. Identidade e expressão
| Cap. | Título | Contém | Nível | Fonte |
|---|---|---|---|---|
| 13 | Personalidade da marca | Arquétipo, traços (é / não é), símbolo e o que representa | S | MCT 4.4 |
| 14 | Voz, tom e estilo de comunicação | Princípios de voz, tom por contexto (site, propostas, redes, suporte, crise), regras de escrita, léxico a usar e a banir, tabela "em vez de / escrever" | S | MCT 4.5-4.6, ESP "Voz da marca" |
| 15 | Narrativa e história da marca | Origem, porquê do nome, o cliente como herói, narrativa por segmento (Problema → Solução → Resultado) | S | ESP, SNT, WTC |
| 16 | Identidade visual | Paleta DESTA marca em hex (primária, secundária, neutros, proporções), tipografia, logótipo e versões, margens e mínimos, proibições, imagem, iconografia, acessibilidade. Nunca a paleta da Descomplicar® num cliente | E (obrigatório, SPEC C4) | MCT 4.7 |
| 17 | Assinaturas, slogan e mensagens-chave | Assinatura, slogan/tagline e regras de uso, mensagem central (≤10 palavras), mensagens-chave institucionais, mensagens e headlines por segmento, elevator pitch de 10/30/60 segundos | E | MCT 10, template-documento §7.4-7.5 |
## Parte V. Oferta e venda (P8-P10, P15)
| Cap. | Título | Contém | P | Nível | Fonte |
|---|---|---|---|---|---|
| 18 | Produtos, serviços e metodologia | Arquitetura da oferta, catálogo por área, casos de uso, metodologia de entrega, processos críticos, placement (canais de distribuição, pontos de venda, presença física e digital) | P8, P9, P10 | S | SNT "Serviços", v3.0 |
| 19 | Preço e modelo comercial | Lógica de preço, pacotes, avenças, preços de referência COM fonte, política de descontos e pagamento, garantias (só com cláusula contratual) | P15 | S | v3.0 |
| 20 | Pitch canvas | Porque é útil e como usar; declaração de impacto/compromisso; problema e resultado (Pain + Gain); solução; demonstração; aspetos únicos; relações; parcerias; pistas de futuro e tecnologia; atração de clientes; investimento; declaração de mudança no mundo | P3, P4 | E | SNT, template v3 |
| 21 | Venda consultiva e demonstração | Etapas do primeiro contacto ao fecho, diagnóstico, guião de demonstração (preparação, introdução, demonstração ao vivo, casos de uso, perguntas, follow-up), materiais de apoio, FAQ | P10 | S | WTC "Demonstração", brand-strategy 36 |
## Parte VI. Comunicação e canais (P14)
| Cap. | Título | Contém | Nível | Fonte |
|---|---|---|---|---|
| 22 | Objetivos de comunicação | Consciencialização, educação, envolvimento, confiança e credibilidade, conversão, retenção, diferenciação, advocacia; um indicador por objetivo | C | ESP |
| 23 | Canais | Website (função, mensagens-chave, estratégia, frequência, estrutura de menu e páginas), redes sociais por rede, email marketing, eventos e feiras, material impresso, vídeo e áudio, relações públicas, proximidade (WhatsApp, comunidade) | S | MCT 5, WTC, ESP "Estrutura do site" |
| 24 | Marketing de conteúdo e política editorial | Pilares, tipos de conteúdo, secções do blog, lista de artigos iniciais com intenção, princípios editoriais, CTA de fim de artigo | C | ESP, MCT 6.1 |
| 25 | SEO e GEO | Clusters de palavras-chave (sem volumes inventados), on-page, técnico, link building, presença em respostas de IA | C | MCT 6.2 |
| 26 | Publicidade online | Por plataforma: importância, estratégia, formatos, frequência e orçamento; diferenciação dos canais | C | MCT 7 |
| 27 | Copywriting | Questionamento estratégico (10 perguntas) respondido, Pain + Gain original e refinado, exemplos de CTA, estrutura da página de captura | E | SNT "Resumo estratégico", WTC, ESP |
| 28 | Calendário de conteúdos | Cadência por canal (diária, semanal, mensal), temas por mês ou trimestre | C | MCT 5.6 |
## Parte VII. Crescimento (P11-P13, Projeção)
| Cap. | Título | Contém | Nível | Fonte |
|---|---|---|---|---|
| 29 | Parcerias | Tipos (tecnológicas, distribuição, prescritores, associações, criadores de conteúdo), objetivo e critério de cada tipo | C | MCT 8, WTC |
| 30 | Expansão | Novos mercados geográficos, novos serviços ou produtos, cenários alternativos, critérios de decisão para avançar | C | LJM (Espanha, dropshipping), MCT 8.4 |
| 31 | Atração de clientes e prova social | Casos de sucesso e testemunhos (só com autorização), workshops e seminários, ofertas de entrada, presença em comunidades, programa de referência | C | WTC "Atração de clientes" |
## Parte VIII. Medição e implementação (P12, P16)
| Cap. | Título | Contém | Nível | Fonte |
|---|---|---|---|---|
| 32 | KPIs | Por área (site e SEO, redes, email, vendas, retenção): definição, fonte de dados, base, metas a 3/6/12 meses | E | MCT 9.1, SPEC P16 |
| 33 | Testes A/B e otimização contínua | Objetivos, variáveis, hipóteses, duração, análise | C | MCT 9.2, WTC |
| 34 | Sistema de relatórios | Semanal, mensal, trimestral: quem lê, o que contém, ferramenta | C | MCT 9.3 |
| 35 | Investimentos prioritários e inventário de ativos | Prioridades impacto/esforço, orçamento por canal, inventário de ativos de marketing (existe, estado, prioridade) | S | template-documento §9, §11 |
| 36 | Roteiro de implementação | Fases a 90 dias com entregáveis e responsáveis por papel, visão a 12 meses, recursos necessários, riscos e mitigação, notas de implementação (sessão de alinhamento, validação com clientes) | S (resumo) / C | v3.0, template-documento |
## Anexos e secção final
| Elemento | Contém | Nível |
|---|---|---|
| A. Pontos a validar | Lista gerada de todas as marcas `[a validar: …]`, por capítulo (o script `montar.py` gera-a) | todos |
| B. Glossário | Termos técnicos e nomes internos usados no documento | S |
| C. Complementos do sector | Enquadramento legal detalhado, informações operacionais, serviços detalhados (só quando o sector o pede) | C |
| D. Histórico de alterações | Versão, data, alteração | todos |
| `## BRIEFING-LLM` | Bloco-contrato YAML (`CONTRATO-OUTPUT-LLM.md`). **Última secção do ficheiro**, depois dos anexos | todos (obrigatório) |
## Mapa 16Ps → capítulos
| P | Capítulos |
|---|---|
| P1 Problema | 5 |
| P2 Propósito | 5, 6 |
| P3 Proposta de valor | 8, 20 |
| P4 Posicionamento | 3, 7 |
| P5 Público-alvo | 9, 10 |
| P6 Pesquisa | 2, 3, 4 |
| P7 Persona | 10, 11 |
| P8 Produto/serviço | 1, 18 |
| P9 Placement | 12, 18, 23 |
| P10 Processos críticos | 18, 21 |
| P11 Pessoas | 1, 36 (recursos) |
| P12 Planeamento | 28, 36 |
| P13 Parcerias | 29 |
| P14 Promoção | 22-27 |
| P15 Preço | 19 |
| P16 Performance | 6, 32-34 |
Escrever explicitamente "(P1)", "(P2)"… nos títulos ou na primeira linha de cada
capítulo: o validador procura as referências P1-P16 no texto.
@@ -0,0 +1,159 @@
# Exemplo de Persona — 20 Dimensoes
Baseado no padrao AcidaOS (o mais profundo dos exemplos Descomplicar).
---
## Segmento A — O Empreendedor Sobrecarregado
**Prioridade:** Alta
**Dimensao estimada:** 45% do mercado-alvo
### 1. Perfil demografico
- Idade: 35-50 anos
- Genero: predominantemente masculino (60/40)
- Localizacao: areas urbanas, Portugal continental
- Educacao: licenciatura ou equivalente profissional
- Rendimento: 25.000-60.000 EUR/ano (empresa factura 100K-500K)
- Dimensao empresa: 2-15 colaboradores
- Sector: servicos, comercio, consultoria
### 2. Perfil psicografico
- Trabalhador incansavel, faz tudo sozinho
- Valoriza independencia acima de tudo
- Resistente a delegar por medo de perda de controlo
- Pragmatico — quer solucoes que funcionem, nao teoria
- Orgulho no que construiu mas frustrado com a estagnacao
- Ceptico em relacao a "solucoes magicas"
### 3. Dores
- "Trabalho 12 horas por dia e o negocio nao cresce"
- Sem tempo para pensar estrategicamente
- Informacao dispersa (Excel, papel, cabeca)
- Clientes perdidos por falta de follow-up
- Nao sabe quanto lucra realmente
### 4. Anseios
- Ter tempo para a familia sem o negocio parar
- Ver o negocio crescer de forma previsivel
- Sentir-se no controlo em vez de apagar incendios
- Ser reconhecido como empresario de sucesso
### 5. Desejos
- Um sistema que "trabalhe por ele" nas tarefas repetitivas
- Dashboard simples que mostre como esta o negocio
- Processo de vendas que nao dependa so dele
- Facturacao automatica sem erros
### 6. Frustracoes
- Ja tentou CRMs e desistiu (demasiado complexos)
- Paga software que nao usa
- Funcionarios nao adoptam ferramentas novas
- Contabilista so aparece no fim do mes
### 7. Preocupacoes
- "Se eu parar, o negocio para"
- Concorrencia a crescer enquanto ele estagna
- Legislacao fiscal cada vez mais complexa
- Nao estar a usar a tecnologia como devia
### 8. Medos
- Perder clientes para concorrentes mais organizados
- Nao conseguir pagar salarios num mes mau
- Ser ultrapassado pela digitalizacao
- Investir em tecnologia e nao ter retorno
### 9. Inimigos
- Burocracia (AT, Seguranca Social, RGPD)
- Empresas grandes que competem com precos impossíveis
- Consultores que vendem teoria sem resultados
- O proprio perfeccionismo que impede de delegar
### 10. Linguagem
- "Nao tenho tempo para isso"
- "Ja tentei e nao funcionou"
- "Quanto e que isso custa?"
- "Mostra-me resultados, nao apresentacoes"
- Informal, directo, sem paciencia para jargao
### 11. Como procuram ajuda
- Perguntam a outros empresarios (boca-a-boca)
- Google quando ha um problema urgente
- LinkedIn para conteudo de negocios
- Contabilista como conselheiro informal
- Nao frequentam eventos/conferencias (sem tempo)
### 12. Canais digitais
- WhatsApp (principal — pessoal e profissional misturado)
- Facebook (pessoal, menos profissional)
- LinkedIn (passivo — le mas nao publica)
- Email (verifica 2-3x por dia, ignora newsletters)
- Instagram (pessoal, nao profissional)
### 13. Estilo de decisao
- Decide rapido quando ve valor claro
- Precisa de prova social (outro empresario a recomendar)
- Quer testar antes de comprometer
- Preco e factor mas nao o unico — valor percebido importa mais
- Prefere relacao pessoal a processo de vendas formal
### 14. Mudancas que procuram
- De "faz-tudo" para gestor que delega
- De reactivo (apagar incendios) para proactivo
- De Excel para sistema integrado
- De "acho que esta bem" para "sei que esta bem" (dados)
### 15. Resistencia a mudanca
- "Sempre fiz assim e funcionou"
- Medo da curva de aprendizagem
- Experiencias negativas anteriores com tecnologia
- Nao quer depender de fornecedores externos
- Equipa resiste a novas ferramentas
### 16. Objecoes tipicas
- "E caro demais para o meu negocio"
- "Nao tenho tempo para implementar"
- "Ja tentei um CRM e ninguem usou"
- "O meu negocio e diferente, isso nao se aplica"
- "Prefiro investir em publicidade directa"
### 17. Forma de gerar emocao
- Mostrar quanto tempo perde por semana em tarefas repetitivas (quantificar)
- Historias de empresarios semelhantes que transformaram o negocio
- Demonstrar em 5 minutos o que o sistema faz automaticamente
- Falar da familia — "imagina sair as 18h todos os dias"
### 18. Argumentos de venda
- ROI em 3 meses (calculado com dados do negocio)
- "Nao precisa de saber tecnologia — nos tratamos de tudo"
- Garantia de satisfacao ou devolucao
- Implementacao faseada (nao muda tudo de uma vez)
- Suporte por WhatsApp (o canal dele)
### 19. Concorrentes percebidos
- "O meu sobrinho faz-me um website"
- Freelancers no OLX/Facebook
- Ferramentas gratuitas (Google Sheets, Canva)
- PHC/Sage (que ja tem e nao usa)
- "Nao investir" (o concorrente mais forte)
### 20. Propostas recusadas
- Pacotes anuais sem flexibilidade
- Solucoes que requerem formacao extensa
- Propostas sem resultados tangíveis prometidos
- Precos acima de 200 EUR/mes sem trial
- Vendedores que nao entendem o sector especifico
---
## Formato resumido (para nivel Essencial — 8 dimensoes)
Quando o nivel e Essencial, usar apenas:
1. Perfil demografico
2. Perfil psicografico
3. Dores
4. Desejos
5. Objecoes tipicas
6. Canais digitais
7. Estilo de decisao
8. Argumentos de venda
@@ -0,0 +1,89 @@
# Prompt de redação por parte (nível Completo)
No nível Completo o documento tem 60 000 a 90 000 palavras. Um só agente não o
escreve com qualidade numa passagem. Divide-se por partes (I a VIII de
`estrutura-completa.md`) e entrega-se cada parte a um subagente, em paralelo. O
orquestrador fixa as decisões, junta, revê e gera o PDF.
Divisão que funcionou (Estratégia Descomplicar® v3.0, 17-10-2026, 7 subagentes,
cerca de 15 minutos): I · II · III · IV · V · VI · VII+VIII.
## Antes de lançar (orquestrador)
1. Ler as fontes principais e decidir os conflitos que afetam várias partes:
assinatura e slogan, nome da categoria, garantias, lista e ordem dos
segmentos, oferta de entrada (nome e duração), formato monetário.
2. Escrever essas decisões no bloco "Decisões já tomadas" abaixo. Subagentes
não rediscutem decisões; registam divergências em "Nota de fonte".
3. Mandar os subagentes alinharem entre si os nomes partilhados (segmentos,
ofertas, canais) por mensagem direta, sem editar ficheiros alheios.
## Contexto partilhado (copiar para o campo de contexto de todos os subagentes)
```markdown
# Goal
Escrever a Estratégia de Marca de <MARCA> (<sector>, <país>), nível Completo.
Cada subagente escreve UMA parte; o orquestrador junta.
# Estrutura global (contrato; numeração fixa)
<colar a lista de capítulos de references/estrutura-completa.md, Partes I a VIII,
com o "Contém" de cada capítulo>
# Fontes (ler as relevantes; NÃO inventar factos)
- Briefing e notas da entrevista: <caminho>
- Pesquisa de mercado (Fase 0): <caminho>/Pesquisas/sintese-mercado.md
- Material do cliente (site, catálogo, propostas, manual de marca): <caminhos/URLs>
- Desk CRM / OKF do cliente: <ids ou caminhos>
- Exemplo de profundidade: 99-Arquivo/Manual-OwnCloud-Descomplicar/exemplos estrategias de marca/MCT Estratégia de Marca Carritools.md (formato, não conteúdo)
- Dados externos: só fontes primárias (INE, Eurostat, Comissão Europeia, entidades
reguladoras, associações do sector); cada número com link numa nota no fim do capítulo.
# Decisões já tomadas (aplicar, não rediscutir)
- Assinatura / slogan / categoria: <…>
- Segmentos (nome e ordem): <…>
- Oferta de entrada: <…>
- Garantias: só as que existem em contrato; promessas de resultado não entram em texto para clientes.
- Onde as fontes divergem, prevalece a mais recente; registar numa linha "Nota de fonte" no fim do capítulo.
# Regras de escrita
- PT-PT, Acordo Ortográfico de 1990, zero brasileirismos (equipa, registo, ecrã, telemóvel, utilizador, planeamento).
- Copy dirigido ao cliente final em 3.ª pessoa de cortesia ("a sua empresa"); nunca "você" fora de citações.
- Títulos em frase. `## N. Título` para capítulos, `### N.M` para secções, `####` se preciso. Não escrever o título da Parte.
- Indicar o P correspondente na primeira linha do capítulo, ex.: "(P4)".
- Sem emoji, sem travessões (— ou –) como pausa, sem negrito no início de cada item de lista, sem frases-feitas ("alavancar", "no panorama atual", "não é X, é Y", perguntas retóricas respondidas logo a seguir).
- Moeda: 1 250€ (valor, espaço de milhar, símbolo colado). Datas por extenso: 16 de outubro de 2026.
- Concorrentes: no documento interno descrever por tipo; nomes só se vierem das fontes e nunca em copy ou mensagens destinadas a material público.
- Nunca inventar números, clientes, casos, preços, testemunhos ou concorrentes. Se o dado faltar, escrever o elemento na mesma e marcar `[a validar: o que falta]`.
- Casos e testemunhos de clientes só com autorização registada; sem ela, `[a validar: autorização de <cliente>]`.
- Detalhes de incidentes de segurança, credenciais e dados pessoais nunca entram no documento.
- Não repetir capítulos de outras partes: escrever "ver capítulo N".
# Entrega
Escrever em `local://marca/parte-<romano>.md` só os capítulos atribuídos.
Não criar nem alterar mais nenhum ficheiro, não correr builds.
Resposta final: nº de palavras, lista de `[a validar]`, notas de fonte, decisões tomadas que o orquestrador deve conhecer.
```
## Tarefa por subagente (um por parte)
```markdown
# Target
Parte <romano>. <nome>: capítulos <N> a <M>. Ficheiro: local://marca/parte-<romano>.md.
# Change
- Cap. N: <o que entra, tirado de estrutura-completa.md, adaptado ao cliente>
- …
# Acceptance
Capítulos N-M completos, cada afirmação factual rastreável a fonte interna ou a nota com link; `[a validar]` onde faltar dado.
```
## Depois de receber as partes (orquestrador)
1. Ler os relatórios: decisões tomadas por cada subagente, divergências entre
partes (ex.: duração do diagnóstico, segmentos) e corrigi-las.
2. Procurar e retirar: detalhes de incidentes, caminhos de relatórios internos
sensíveis, nomes de concorrentes em copy, promessas sem cláusula.
3. Correr `scripts/montar.py` (junta, cria o anexo A) e escrever à mão a
introdução (resumo executivo e "Sobre este documento") e o `## BRIEFING-LLM`.
4. Validar e gerar o PDF (ver SKILL.md, Fase 8).
@@ -1,7 +1,7 @@
# Template: Documento de Estratégia de Marca
Estrutura completa do documento entregável ao cliente. Baseado nos projectos SFV, LJM, MCT, Espiral Senior e Sintricare.
Adaptar secções ao sector e complexidade do cliente.
Guia de escrita de cada secção (o que escrever e com que profundidade). Baseado nos projetos SFV, LJM, MCT, Espiral Sénior e Sintricare.
A ORDEM e a numeração dos capítulos vêm de `estrutura-completa.md` (SPEC v2.0), que prevalece sobre o índice abaixo. Adaptar ao sector e ao nível (Essencial, Standard, Completo).
---
@@ -14,7 +14,7 @@ cliente: [Nome do cliente]
código: EST-MRK-010
versão: 1.0
data: [DD-MM-YYYY]
elaborado: Descomplicar® — Agência de Aceleração Digital
elaborado: Descomplicar® - Agência de Marketing Digital
status: draft | aprovado
---
```
@@ -370,5 +370,5 @@ O Pitch Canvas é uma ferramenta de comunicação estratégica que resume, numa
---
*Elaborado por Descomplicar® — Agência de Aceleração Digital*
*Elaborado por Descomplicar® - Agência de Marketing Digital*
*emanuel@descomplicar.pt | descomplicar.pt*
+86
View File
@@ -0,0 +1,86 @@
#!/usr/bin/env python3
"""Junta as partes de uma estratégia de marca num único markdown.
Uso:
montar.py --partes DIR --intro intro.md --briefing briefing-llm.md --config marca.json --out estrategia.md
[--glossario glossario.md] [--complementos complementos.md] [--historico historico.md]
- DIR contém parte-I.md ... parte-VIII.md (só os capítulos, `## N. Título`).
- intro.md: resumo executivo + "Sobre este documento" (títulos `# ...`).
- briefing-llm.md: a secção `## BRIEFING-LLM` completa (fica sempre em último).
- marca.json: chaves `frontmatter` (dict) e, opcional, `partes` ([[romano, nome], ...]).
Gera o anexo A (pontos a validar) a partir das marcas `[a validar: ...]`.
"""
import argparse, json, os, re, sys
PARTES = [["I", "Contexto"], ["II", "Fundamentos da marca"], ["III", "Públicos"],
["IV", "Identidade e expressão"], ["V", "Oferta e venda"], ["VI", "Comunicação e canais"],
["VII", "Crescimento"], ["VIII", "Medição e implementação"]]
def yaml_value(v):
if isinstance(v, list):
return "[" + ", ".join(str(x) for x in v) + "]"
s = str(v)
return '"' + s.replace('"', '\\"') + '"' if re.search(r"[:#®·\-]", s) else s
def main():
ap = argparse.ArgumentParser()
ap.add_argument("--partes", required=True)
ap.add_argument("--intro", required=True)
ap.add_argument("--briefing", required=True)
ap.add_argument("--config", required=True)
ap.add_argument("--out", required=True)
ap.add_argument("--glossario")
ap.add_argument("--complementos")
ap.add_argument("--historico")
a = ap.parse_args()
cfg = json.load(open(a.config, encoding="utf-8"))
fm = "---\n" + "".join(f"{k}: {yaml_value(v)}\n" for k, v in cfg.get("frontmatter", {}).items()) + "---\n\n"
doc = [fm, open(a.intro, encoding="utf-8").read().rstrip() + "\n\n"]
for rom, nome in cfg.get("partes", PARTES):
p = os.path.join(a.partes, f"parte-{rom}.md")
if not os.path.exists(p):
sys.exit(f"Falta {p}")
t = open(p, encoding="utf-8").read().strip()
if re.search(r"^# ", t, re.M):
sys.exit(f"{p} tem títulos de nível 1; só o montar.py escreve as Partes")
doc.append(f"# Parte {rom}. {nome}\n\n{t}\n\n")
full = "".join(doc)
pend, cap, seen, rows = [], None, set(), []
for line in full.split("\n"):
m = re.match(r"^## (\d+)\. ", line)
if m:
cap = int(m.group(1))
for v in re.findall(r"\[a validar:\s*([^\]]+)\]", line):
pend.append((cap or 0, v.strip().rstrip(".")))
for c, v in pend:
if (c, v.lower()) in seen:
continue
seen.add((c, v.lower()))
rows.append(f"| {c or '—'} | {v[0].upper() + v[1:]} |")
anexos = ["# Anexos\n\n## A. Pontos a validar\n\n",
f"{len(rows)} pontos, por capítulo. Cada ponto fechado corrige-se no capítulo e sai desta lista.\n\n",
"| Cap. | O que falta confirmar |\n| --- | --- |\n", "\n".join(rows) or "| — | Nenhum |", "\n\n"]
extras = [(t, f) for t, f in [("Glossário", a.glossario), ("Complementos do sector", a.complementos),
("Histórico de alterações", a.historico)] if f]
for letra, (titulo, f) in zip("BCD", extras):
anexos.append(f"## {letra}. {titulo}\n\n" + open(f, encoding="utf-8").read().strip() + "\n\n")
full += "".join(anexos)
br = open(a.briefing, encoding="utf-8").read().strip()
if not br.startswith("## BRIEFING-LLM"):
sys.exit("briefing-llm.md tem de começar por '## BRIEFING-LLM'")
full += br + "\n"
open(a.out, "w", encoding="utf-8").write(full)
caps = len(re.findall(r"^## \d+\. ", full, re.M))
print(f"{a.out}: {len(full.split())} palavras, {caps} capítulos, {len(rows)} pontos a validar")
if __name__ == "__main__":
main()
+134
View File
@@ -0,0 +1,134 @@
#!/usr/bin/env python3
"""Estratégia de marca (markdown) -> PDF A4 com a identidade DA MARCA em causa.
Uso: render_pdf.py estrategia.md estrategia.pdf --config marca.json [--html saida.html]
Requer: pandoc, google-chrome (ou chromium), pdfinfo.
O marca.json define cores, fontes, logótipo e textos da capa (ver assets/marca-descomplicar.json).
Regras aprendidas (17-10-2026):
- A4 sempre (nunca Letter). Margens 20/18 mm, numeração no rodapé.
- Fontes web subset (ex.: woff2 só latim básico) não têm €, → ou −; declarar uma
família de recurso SEPARADA (`fallback` no config) e acrescentá-la a todas as pilhas.
Não usar unicode-range na mesma família com intervalos de peso diferentes: o Chrome
escolhe a face pelo peso e perde o resto dos glifos.
- Confirmar com `pdffonts` que não aparecem Liberation/DejaVu (exceto mono) e ver uma
página de conteúdo renderizada, não só a capa.
- A secção BRIEFING-LLM vai no PDF como está (bloco yaml), por ser a última secção.
"""
import argparse, json, re, shutil, subprocess, tempfile, os
TPL = """<!doctype html>
<html lang="$lang$"><head><meta charset="utf-8"><title>$title$</title></head>
<body>
<!--CAPA-->
<nav id="TOC">
$table-of-contents$
</nav>
$body$
</body></html>
"""
def face(f):
s = f"@font-face{{font-family:'{f['family']}';src:url('file://{f['src']}');"
s += f"font-weight:{f.get('weight', '100 900')};font-style:{f.get('style', 'normal')};"
if f.get("unicode_range"):
s += f"unicode-range:{f['unicode_range']};"
return s + "}"
def main():
ap = argparse.ArgumentParser()
ap.add_argument("src")
ap.add_argument("out")
ap.add_argument("--config", required=True)
ap.add_argument("--html")
a = ap.parse_args()
c = json.load(open(a.config, encoding="utf-8"))
md = open(a.src, encoding="utf-8").read()
md = re.sub(r"\A---\n.*?\n---\n", "", md, flags=re.S)
with tempfile.TemporaryDirectory() as tmp:
tpl = os.path.join(tmp, "tpl.html")
open(tpl, "w", encoding="utf-8").write(TPL)
body = subprocess.run(
["pandoc", "-f", "gfm+attributes", "-t", "html5", "--toc", "--toc-depth=2", "--standalone",
"--template", tpl, "--metadata", f"title={c['titulo_documento']}", "--metadata", "lang=pt-PT"],
input=md, capture_output=True, text=True, check=True).stdout
marca = c["marca"] # ex.: "Descomplicar®"
if marca.endswith("®"):
base = re.escape(marca[:-1])
body = re.sub(rf"(?<![/\w.]){base}®", f'{marca[:-1]}<sup class="reg">®</sup>', body)
body = re.sub(r"\[a validar:([^\]]*)\]", r'<span class="av">[a validar:\1]</span>', body)
T, X, FB = c["fonte_titulos"], c["fonte_texto"], c.get("fallback", "sans-serif")
k = c["cores"] # escura, clara_texto, primaria, acento_texto, suave, linha, alternada, aviso_fundo, aviso_texto
faces = "\n".join(face(f) for f in c.get("fontes", []))
css = f"""{faces}
@page{{size:A4;margin:20mm 18mm 20mm 18mm;
@bottom-left{{content:"{c['rodape']}";font:8.5pt '{X}',{FB};color:{k['texto_secundario']}}}
@bottom-right{{content:counter(page);font:600 8.5pt '{T}',{FB};color:{k['acento_texto']}}}}}
@page capa{{margin:0;@bottom-left{{content:none}}@bottom-right{{content:none}}}}
html{{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
body{{font-family:'{X}',{FB};font-size:10.2pt;line-height:1.55;color:{k['texto']};margin:0}}
sup.reg{{font-size:.45em;vertical-align:super;line-height:0;margin-left:.02em}}
.capa{{page:capa;height:297mm;width:210mm;background:{k['escura']};color:{k['clara_texto']};position:relative;break-after:page;box-sizing:border-box;padding:34mm 22mm}}
.capa svg,.capa img{{width:56mm;height:auto;display:block}}
.capa .eyebrow{{font:700 9pt '{T}',{FB};letter-spacing:.14em;text-transform:uppercase;color:{k['primaria']};margin-top:52mm}}
.capa h1{{font:300 40pt/1.05 '{T}',{FB};text-transform:uppercase;margin:6mm 0 8mm;color:{k['clara_texto']};border:0;padding:0;break-before:auto}}
.capa .slogan{{font:700 18pt '{T}',{FB};color:{k['primaria']}}}
.capa .meta{{position:absolute;left:22mm;right:22mm;bottom:24mm;border-top:1px solid {k['primaria']};padding-top:5mm;font-size:9.5pt;color:{k['clara_texto']};opacity:.75;display:flex;justify-content:space-between}}
nav#TOC{{break-after:page}}
nav#TOC::before{{content:"Índice";display:block;font:700 22pt '{T}',{FB};margin:0 0 6mm}}
nav#TOC ul{{list-style:none;padding-left:0;margin:0}}
nav#TOC > ul > li{{margin-top:3.2mm;font:700 10pt '{T}',{FB};color:{k['acento_texto']};text-transform:uppercase;letter-spacing:.05em}}
nav#TOC > ul > li > ul > li{{font:400 9.6pt '{X}',{FB};color:{k['texto']};text-transform:none;letter-spacing:0;padding-left:4mm;margin-top:.6mm}}
nav#TOC a{{color:inherit;text-decoration:none}}
h1{{font:300 26pt/1.1 '{T}',{FB};text-transform:uppercase;letter-spacing:.02em;break-before:page;margin:0 0 8mm;padding-bottom:4mm;border-bottom:3px solid {k['primaria']}}}
h2{{font:700 17pt/1.2 '{T}',{FB};margin:9mm 0 3mm;break-after:avoid}}
h3{{font:600 12.5pt/1.25 '{T}',{FB};margin:6mm 0 2mm;break-after:avoid}}
h4{{font:600 10.5pt '{T}',{FB};margin:4mm 0 1.5mm;break-after:avoid;color:{k['acento_texto']}}}
p{{margin:0 0 2.6mm;orphans:3;widows:3}}
ul,ol{{margin:0 0 3mm;padding-left:6mm}} li{{margin:.6mm 0}}
a{{color:{k['acento_texto']}}}
blockquote{{margin:3mm 0;padding:3mm 5mm;background:{k['suave']};border-left:4px solid {k['primaria']};font-size:10.6pt}}
blockquote p:last-child{{margin:0}}
table{{border-collapse:collapse;width:100%;margin:2mm 0 4mm;font-size:8.8pt}}
tr{{break-inside:avoid}}
th{{background:{k['escura']};color:{k['clara_texto']};font:600 8.4pt '{T}',{FB};text-align:left;padding:2mm 2.4mm}}
td{{border-bottom:1px solid {k['linha']};padding:1.8mm 2.4mm;vertical-align:top}}
tr:nth-child(even) td{{background:{k['alternada']}}}
code,pre{{font-size:8.4pt;background:{k['suave']};border-radius:2px}}
code{{padding:0 1mm}} pre{{padding:3mm;white-space:pre-wrap}}
hr{{border:0;border-top:1px solid {k['linha']};margin:5mm 0}}
.av{{background:{k['aviso_fundo']};color:{k['aviso_texto']};padding:0 1mm;border-radius:2px;font-size:.92em}}
"""
logo = ""
if c.get("logo_capa"):
logo = open(c["logo_capa"], encoding="utf-8").read()
logo = re.sub(r"<\?xml[^>]*>", "", logo)
capa = (f'<section class="capa"><div>{logo}</div><div class="eyebrow">{c["capa_eyebrow"]}</div>'
f'<h1>{c["capa_titulo"]}</h1><div class="slogan">{c.get("capa_slogan", "")}</div>'
f'<div class="meta"><span>{c["capa_assinatura"]}</span><span>{c["capa_data"]}</span></div></section>')
if marca.endswith("®"):
capa = capa.replace(marca, f'{marca[:-1]}<sup class="reg">®</sup>')
html = body.replace("</head>", f"<style>{css}</style></head>").replace("<!--CAPA-->", capa)
hp = a.html or os.path.join(tmp, "doc.html")
open(hp, "w", encoding="utf-8").write(html)
chrome = shutil.which("google-chrome") or shutil.which("google-chrome-stable") or shutil.which("chromium")
subprocess.run([chrome, "--headless=new", "--no-sandbox", "--disable-gpu", "--no-pdf-header-footer",
"--generate-pdf-document-outline", "--virtual-time-budget=20000",
f"--print-to-pdf={os.path.abspath(a.out)}", "file://" + os.path.abspath(hp)],
check=True, capture_output=True, timeout=600)
info = subprocess.run(["pdfinfo", a.out], capture_output=True, text=True).stdout
fonts = subprocess.run(["pdffonts", a.out], capture_output=True, text=True).stdout
print("\n".join(l for l in info.splitlines() if l.startswith(("Pages", "Page size"))))
bad = sorted({re.sub(r"^[A-Z]{6}\+", "", l.split()[0]) for l in fonts.splitlines()[2:]
if re.search(r"Liberation|DejaVuSans(?!Mono)|Nimbus", l)})
if bad:
print("AVISO: fontes de recurso do sistema no PDF:", ", ".join(bad))
if __name__ == "__main__":
main()