---
name: proposal-deck
description: Geracao de apresentacoes PPTX de propostas comerciais profissionais com branding Descomplicar. Integra dados do CRM, tabela de precos e template curado de 16 layouts.
---

# Skill /proposal-deck - Apresentacoes de Propostas Comerciais

Gera apresentacoes PPTX profissionais para propostas comerciais da Descomplicar, usando um template curado com 16 layouts e branding oficial.

## Triggers

- `/proposal-deck`
- "proposta", "apresentacao cliente", "deck proposta", "proposta comercial", "apresentacao proposta"

## Quando Usar

- Preparar apresentacao visual de proposta para reuniao com cliente
- Criar deck profissional para acompanhar orcamento/estimate
- Gerar proposta completa com branding para envio por email
- Complementar `/orcamento` com material visual

## Quando NAO Usar

- Para criar orcamento sem apresentacao (usar `/orcamento`)
- Para analise estrategica de lead (usar `/lead-approach`)
- Para operacoes CRM genericas (usar `/crm-ops`)
- Para apresentacoes sem contexto comercial (usar pptx-generator directamente)

---

## Template

**Localizacao:** `/media/ealmeida/Dados/Hub/90-Templates/Comercial/descomplicar-proposal-template.pptx`

### Layouts Disponiveis (16)

| # | Nome | Funcao | Quando usar |
|---|------|--------|-------------|
| 1 | capa | Titulo da proposta + subtitulo + ano | Sempre (obrigatorio) |
| 2 | divisor-seccao | Fundo escuro com titulo centrado | Entre seccoes principais |
| 3 | sobre-nos | Card texto + imagem lateral | Sempre (quem somos) |
| 4 | objectivos | Fundo escuro + objectivos + logo cliente | Sempre (o que vamos resolver) |
| 5 | processo-3-passos | 3 colunas douradas com texto | Explicar metodologia |
| 6 | fases-3-blocos | 3 blocos numerados verticais | Fases do projecto (3 items) |
| 7 | grid-4-cards | Grid 4 cards com icones | Valores, diferenciais, pilares (4 items) |
| 8 | beneficios-6 | 6 blocos com icones e setas | Beneficios (6 items) |
| 9 | pilares-engrenagens | 4 pilares em engrenagens | Solucao completa (4 pilares) |
| 10 | detalhe-servico | Titulo + features list + foto + CTA | Detalhe de um servico/pack |
| 11 | deliverables | 4 rows dourados com bullets | Lista deliverables/escopo |
| 12 | timeline-etapas | 5 etapas coloridas horizontais | Cronograma/fases com precos |
| 13 | pack-pricing | Checklist com preco e foto | Pack/avenca mensal |
| 14 | resumo-financeiro | Timeline com precos por fase | Resumo valores total |
| 15 | contacto | Foto gestor + dados | Sempre (obrigatorio) |
| 16 | encerramento | Lobo + branding nocturno | Sempre (obrigatorio) |

### Slides Obrigatorios

Toda proposta inclui **no minimo**: capa (1) + sobre-nos (3) + objectivos (4) + contacto (15) + encerramento (16).

---

## Scripts PPTX

**Base path:** `~/.claude/plugins/marketplaces/descomplicar-plugins/design-media/skills/pptx-generator/scripts/`

| Script | Funcao |
|--------|--------|
| `office/unpack.py` | Descompactar PPTX em XML editavel |
| `office/pack.py` | Recompactar XML em PPTX valido |
| `clean.py` | Limpar XMLs (namespaces, refs orfas) |
| `add_slide.py` | Adicionar slides ao XML |
| `office/validate.py` | Validar estrutura do PPTX |

---

## Protocolo

### Sintaxe

```
/proposal-deck [cliente] [tipo]
```

**Parametros:**
- `cliente` - Nome ou ID do cliente (opcional, sera solicitado se omitido)
- `tipo` - Complexidade da proposta (opcional): `minima`, `standard`, `completa`

### Fase 1: Recolha de Informacao

1. **Identificar cliente no CRM:**
   ```
   mcp__desk-crm-v3__search_customers query="[nome]" fields="company,vat"
   mcp__desk-crm-v3__get_customer customer_id=[id]
   ```

2. **Verificar orcamentos existentes:**
   ```
   mcp__desk-crm-v3__get_estimates status="draft" client_id=[id]
   ```

3. **Consultar tabela de precos** (complementar ao CRM):
   - Ficheiro: `/media/ealmeida/Dados/GDrive/Cloud/Descomplicar/Servicos/tabela-geral.csv`
   - CRM (fonte de verdade): `mcp__desk-crm-v3__price_management action="get_pricing_insights"`

4. **Solicitar dados em falta** (se nao disponiveis no CRM):

| Campo | Obrigatorio | Default |
|-------|:-----------:|---------|
| Nome do cliente | Sim | — |
| Sector/industria | Sim | — |
| Objectivos | Sim | — |
| Servicos a propor | Sim | — |
| Precos | Sim | CRM |
| Prazo estimado | Nao | "a definir" |
| Gestor de conta | Nao | Emanuel Almeida |

### Fase 2: Seleccao de Layouts

Seleccionar layouts com base na complexidade e servicos propostos.

#### Proposta Minima (8 slides)
Para projectos simples, orcamentos rapidos.

| Ordem | Layout | Conteudo |
|:-----:|--------|----------|
| 1 | capa | "Proposta [Servico]" + nome cliente + ano |
| 2 | sobre-nos | Apresentacao Descomplicar |
| 3 | objectivos | 3-5 objectivos do cliente |
| 4 | processo-3-passos | Metodologia de trabalho |
| 5 | deliverables | O que esta incluido |
| 6 | pack-pricing | Preco + o que inclui |
| 7 | contacto | Dados do gestor |
| 8 | encerramento | Branding Descomplicar |

#### Proposta Standard (12 slides)
Para projectos de media complexidade (websites, marketing).

| Ordem | Layout | Conteudo |
|:-----:|--------|----------|
| 1 | capa | Titulo + cliente + ano |
| 2 | sobre-nos | Apresentacao Descomplicar |
| 3 | divisor-seccao | "Desafio" |
| 4 | objectivos | Objectivos do cliente |
| 5 | processo-3-passos | Metodologia |
| 6 | fases-3-blocos | Fases do projecto |
| 7 | divisor-seccao | "Solucao" |
| 8 | beneficios-6 | Beneficios da solucao |
| 9 | deliverables | Escopo detalhado |
| 10 | timeline-etapas | Cronograma com precos |
| 11 | contacto | Dados do gestor |
| 12 | encerramento | Branding Descomplicar |

#### Proposta Completa (16 slides)
Para projectos complexos, concursos, clientes enterprise.

Usa todos os 16 layouts na ordem numerica original.

### Fase 3: Geracao do PPTX

**Directorio de trabalho:** `~/.claude-work/proposal-[cliente-slug]/`

```bash
# 1. Criar directorio e copiar template
mkdir -p ~/.claude-work/proposal-[slug]/
cp "/media/ealmeida/Dados/Hub/90-Templates/Comercial/descomplicar-proposal-template.pptx" \
   ~/.claude-work/proposal-[slug]/template.pptx

# 2. Descompactar template
python3 ~/.claude/plugins/marketplaces/descomplicar-plugins/design-media/skills/pptx-generator/scripts/office/unpack.py \
  ~/.claude-work/proposal-[slug]/template.pptx \
  ~/.claude-work/proposal-[slug]/unpacked/

# 3. Editar slides XML (ver seccao "Edicao de Conteudo XML")

# 4. Remover slides nao necessarios de presentation.xml
#    (alterar rIdX refs e apagar ficheiros slideN.xml correspondentes)

# 5. Limpar XMLs
python3 ~/.claude/plugins/marketplaces/descomplicar-plugins/design-media/skills/pptx-generator/scripts/clean.py \
  ~/.claude-work/proposal-[slug]/unpacked/

# 6. Recompactar
python3 ~/.claude/plugins/marketplaces/descomplicar-plugins/design-media/skills/pptx-generator/scripts/office/pack.py \
  ~/.claude-work/proposal-[slug]/unpacked/ \
  ~/.claude-work/proposal-[slug]/proposta-[slug].pptx \
  --original ~/.claude-work/proposal-[slug]/template.pptx
```

### Edicao de Conteudo XML

Cada slide e um ficheiro `ppt/slides/slideN.xml`. Localizar placeholders pelo texto visivel e substituir:

| Placeholder | Substituir por | Exemplo |
|-------------|----------------|---------|
| `[TITULO_PROPOSTA]` | Nome do servico proposto | "Website Corporativo" |
| `[SUBTITULO]` | Nome do cliente | "Para Empresa XYZ" |
| `[ANO]` | Ano corrente | "2026" |
| `[OBJECTIVO_N]` | Objectivo N do cliente | "Aumentar presenca online" |
| `[FASE_N_TITULO]` | Titulo da fase N | "Fase 1: Descoberta" |
| `[FASE_N_DESC]` | Descricao da fase N | "Analise de requisitos..." |
| `[DELIVERABLE_N]` | Item do escopo | "Website responsivo" |
| `[PRECO]` | Valor formatado | "1.200 EUR" |
| `[PRECO_TOTAL]` | Valor total | "2.500 EUR + IVA" |
| `[TIMELINE_N]` | Etapa do cronograma | "Semana 1-2" |
| `[GESTOR_NOME]` | Nome do gestor | "Emanuel Almeida" |
| `[GESTOR_EMAIL]` | Email do gestor | "emanuel@descomplicar.pt" |
| `[GESTOR_TEL]` | Telefone | "911 510 005" |

**Tecnica XML:** Localizar `<a:t>` tags dentro de `<a:r>` runs. Substituir texto preservando formatacao:

```python
# Exemplo: substituir texto num slide
import re

def replace_placeholder(xml_content, placeholder, value):
    """Substituir placeholder preservando formatacao XML."""
    # Placeholders podem estar fragmentados em multiplos <a:t> tags
    # Usar regex para localizar e substituir
    return xml_content.replace(placeholder, value)
```

**Regra critica:** Nunca alterar atributos de formatacao (`<a:rPr>`, `<a:pPr>`). Apenas substituir conteudo textual dentro de `<a:t>`.

### Fase 4: Entrega

1. **Guardar PPTX final:**
   ```
   Hub/03-Propostas/[cliente]/proposta-[servico]-[data].pptx
   ```

2. **Upload para Google Drive** (opcional):
   ```
   mcp__google-workspace__drive_upload_file
     file_path="~/.claude-work/proposal-[slug]/proposta-[slug].pptx"
     folder_id="[pasta-cliente-drive]"
   ```

3. **Registar no CRM** (se nao existir estimate):
   ```
   mcp__desk-crm-v3__create_estimate
     client_id=[id]
     date=[hoje]
     expiry_date=[hoje + 30 dias]
     items=[items]
   ```

4. **Limpar temporarios:**
   ```bash
   rm -rf ~/.claude-work/proposal-[slug]/
   ```

---

## Exemplos de Propostas Tipicas

### Website Corporativo (CorporateWP)

**Tipo:** Standard (12 slides)
**Servico:** CorporateWP
**Slides seleccionados:** capa, sobre-nos, divisor, objectivos, processo-3-passos, fases-3-blocos, divisor, beneficios-6, deliverables, timeline-etapas, contacto, encerramento

**Conteudo tipico:**
- **Objectivos:** Presenca profissional online, geracao de leads, credibilidade digital
- **3 Passos:** Descoberta -> Desenvolvimento -> Lancamento
- **3 Fases:** Analise e Conteudo (S1-2) -> Design e Desenvolvimento (S3-5) -> Testes e Lancamento (S6)
- **6 Beneficios:** Design responsivo, SEO optimizado, painel intuitivo, SSL incluido, suporte dedicado, performance rapida
- **Deliverables:** Website responsivo, 5-8 paginas, formularios, integracao redes sociais, Google Analytics, formacao
- **Timeline:** 4-6 semanas, 900 EUR + IVA, anuidade 299 EUR

### Marketing 360

**Tipo:** Completa (16 slides)
**Servico:** Marketing Digital 360
**Slides seleccionados:** todos os 16

**Conteudo tipico:**
- **Objectivos:** Aumentar visibilidade, gerar leads qualificados, ROI mensuravel, posicionamento digital
- **4 Pilares (engrenagens):** SEO, Redes Sociais, Publicidade Online, Email Marketing
- **Processo:** Auditoria -> Estrategia -> Execucao
- **6 Beneficios:** Mais trafego, leads qualificados, brand awareness, ROI mensuravel, relatorios mensais, equipa dedicada
- **Deliverables:** Auditoria inicial, plano estrategico, gestao redes sociais, campanhas Ads, relatorios mensais, reunioes quinzenais
- **Timeline:** Ongoing, setup 500-1500 EUR, mensalidade 300-800 EUR

### SEO / Optimizacao

**Tipo:** Standard (12 slides)
**Servico:** Pack SEO
**Slides seleccionados:** capa, sobre-nos, divisor, objectivos, processo-3-passos, grid-4-cards, divisor, detalhe-servico, deliverables, pack-pricing, contacto, encerramento

**Conteudo tipico:**
- **Objectivos:** Melhorar posicionamento Google, aumentar trafego organico, ultrapassar concorrencia
- **3 Passos:** Auditoria Tecnica -> Optimizacao On-Page -> Link Building
- **4 Cards:** Pesquisa Keywords, SEO Tecnico, Conteudo Optimizado, Relatorios Mensais
- **Deliverables:** Auditoria inicial, optimizacao 10-20 paginas, blog mensal, relatorio posicoes, Google Search Console
- **Pricing:** Mensalidade 300-600 EUR conforme pack

---

## MCPs Utilizados

```
mcp__desk-crm-v3__search_customers   - Pesquisar cliente
mcp__desk-crm-v3__get_customer       - Obter detalhes cliente
mcp__desk-crm-v3__get_estimates      - Verificar orcamentos existentes
mcp__desk-crm-v3__create_estimate    - Registar estimate no CRM
mcp__desk-crm-v3__price_management   - Consultar precos oficiais
mcp__google-workspace__drive_upload_file - Upload para Google Drive
mcp__mcp-time__current_time          - Data/hora actual
```

---

## Checklist de Execucao

- [ ] Cliente identificado no CRM
- [ ] Dados recolhidos (objectivos, servicos, precos)
- [ ] Tipo de proposta seleccionado (minima/standard/completa)
- [ ] Layouts seleccionados e conteudo definido
- [ ] Template copiado para ~/.claude-work/
- [ ] PPTX descompactado
- [ ] Slides editados com dados do cliente
- [ ] Slides desnecessarios removidos
- [ ] XMLs limpos (clean.py)
- [ ] PPTX recompactado e validado
- [ ] Ficheiro guardado em Hub/03-Propostas/[cliente]/
- [ ] Temporarios limpos
- [ ] Estimate registado no CRM (se aplicavel)

---

## Anti-Patterns

| Fazer | NAO Fazer |
|-------|-----------|
| Personalizar cada slide com dados reais do cliente | Usar placeholders genericos ou "Lorem ipsum" |
| Consultar CRM para precos actualizados | Inventar precos de memoria |
| Seleccionar layouts relevantes para o servico | Incluir todos os 16 slides quando 8 bastam |
| Manter branding Descomplicar (cores, fontes, logo) | Alterar formatacao XML (cores, tamanhos, posicoes) |
| Guardar em Hub/03-Propostas/ com nome descritivo | Deixar ficheiros em ~/.claude-work/ |
| Usar slug sem espacos no nome do ficheiro | Espacos ou caracteres especiais no nome |
| Verificar PPTX abre correctamente apos geracao | Entregar sem validar |
| Adaptar objectivos ao sector do cliente | Copiar objectivos genericos entre propostas |
| Incluir dados de contacto do gestor real | Dados de contacto ficticios |

---

## Procedimentos Relacionados

- `PROC-Catalogo-Codificacao-Produtos.md` - Codificacao e catalogo de produtos
- `PROC-CRM-Operacoes.md` - Operacoes CRM padrao

---

## Changelog

### v1.0.0 (2026-03-06)
- Versao inicial da skill /proposal-deck
- 16 layouts mapeados do template PPTX curado
- 3 niveis de complexidade: minima (8), standard (12), completa (16)
- Integracao CRM (cliente, estimates, precos)
- Workflow completo: recolha -> seleccao -> geracao -> entrega
- Exemplos para website, marketing 360, SEO
- Anti-patterns documentados

---

**Versao**: 1.0.0 | **Data**: 2026-03-06 | **Template**: descomplicar-proposal-template.pptx

---

## Media Bank (D7-MB-001)

**Quando consultar:** antes de gerar o deck da proposta — para hero da capa, backgrounds de slides de secção e imagens ilustrativas. Garante consistência visual e evita dependência de geração IA por cada proposta.

**Workflow tentativa-primeiro:**

1. Pesquisar via MCP `media-bank`:
   ```
   mcp__media-bank__search_media(
     query="<sector/serviço do cliente em EN>",
     type="image",
     tema="<um dos 9 temas alinhado com serviço>",
     orientation="landscape",
     min_quality=8,               # exigência mais alta para propostas
     min_width=1920,
     exclude_used_in_last_days=60,
     limit=5
   )
   ```
2. Avaliar candidatos por `description_en` + `quality_score` + alinhamento com identidade visual Descomplicar.
3. Se ≥1 adequado → usar `path_local` directamente no PPTX (slide master / capa) ou compor no template.
4. Se nenhum → fallback para geração IA (Flux) ou biblioteca de stock interna.
5. Marcar uso: `mcp__media-bank__mark_used(asset_id, {type:"proposal-deck", ref:"<cliente>-<data>", date:"<YYYY-MM-DD>"})`.

**Fallback REST** (se MCP indisponível):
```bash
SK=$(grep SERVICE_KEY /media/ealmeida/Dados/Hub/05-Projectos/Banco-Imagens-Videos/scripts/.env | cut -d= -f2)
curl -s "https://mem.descomplicar.pt/rest/v1/media_bank_assets?type=eq.image&orientation=eq.landscape&quality_score=gte.8&deleted_at=is.null&order=quality_score.desc&limit=5" \
  -H "apikey: $SK" -H "Authorization: Bearer $SK"
```

**Regra inviolável:** matéria-prima local. Usar como input no template PPTX — NUNCA servir o ficheiro raw ao cliente sem integração no deck (overlays, branding, layout).

Ver `Hub/06-Operacoes/Procedimentos/D7-Tecnologia/MCP/PROC-Media-Bank.md` (D7-MB-001) para detalhes.

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
