O que Construtor de Apresentação de Impacto Técnico (TIP) faz?
Constrói uma Apresentação de Impacto Técnico personalizada e com a marca, voltada para o cliente, que mapeia os critérios de sucesso do cliente ao que o Dynatrace entregou, com base em números vivos do tenant e links profundos para as visualizações exatas a serem capturadas. Deriva as regras de marca do dynatrace-pptx-skill — leia aquele primeiro para cores/fontes.
Regra de ouro: nunca invente métricas. Cada número em um slide deve vir de uma consulta dtctl executada nesta sessão. Se um critério estiver "Em Andamento", diga isso — honestidade vence a estética.
Entradas necessárias do usuário
| Entrada | Obrigatório | Observações |
|---|---|---|
Template PowerPoint DT (.pptx) | sim | O deck base; seus layouts/tema são herdados. |
Exemplo de deck preenchido (.pptx) | opcional | Espelhe o fluxo de slides (ex.: POV de um cliente anterior). |
| Critérios de sucesso (imagem/tabela/texto) | sim | A espinha dorsal do conteúdo — caso de uso · propósito · como-é-feito-hoje · status. |
| Tenant / contexto dtctl | sim | ex. <tenant-id> → dtctl --context <ctx>. |
| Nome do apresentador / data | opcional | Assume o usuário autenticado + mês atual. |
Pipeline (executar em ordem)
1 — VALIDAÇÃO PREFLIGHT (obrigatória, não pular)
Ambas as verificações devem passar antes de construir. Execute a verificação dtctl, depois a verificação MCP.
1a. Validação dtctl — execute scripts/preflight.sh <context>:
bash scripts/preflight.sh <contexto-dtctl>
Ela verifica: contexto atual, auth whoami (token não expirado), acesso de leitura (uma DQL trivial),
acesso de gravação (necessário se for enviar dashboards), e lista os IDs de aplicativos instalados (necessários para
links profundos). Se o token expirou, ela imprime o comando de reautenticação — diga ao usuário para executar
!dtctl auth login --context <ctx> na sessão (OAuth é interativo; você não pode fazer isso).
1b. Validação Dynatrace MCP — você (o agente) deve confirmar que o servidor MCP Dynatrace está
acessível, porque scripts não podem chamar MCP. Invoque uma ferramenta de leitura MCP leve, ex.
get_dql_knowledgebase ou list_strato_components (os nomes parecem mcp__<servidor>__<ferramenta>).
- Sucesso → anote "MCP: conectado" e use-o para validar/autorizar DQL e dashboards.
- Falha/ausente → anote "MCP: indisponível — prosseguindo apenas com dtctl" e continue (MCP é recomendado, não obrigatório). Não assuma silenciosamente que funciona.
Registre ambos os resultados em uma linha curta de pré-voo antes de prosseguir, ex.
Preflight ✓ dtctl(leitura+gravação, 47 apps) · MCP(conectado).
2 — COLETAR DADOS VIVOS DO TENANT
Execute scripts/gather_tenant_data.sh <context> para obter as estatísticas principais (hosts, serviços,
grupos de processos/instâncias, clusters K8s/namespaces/workloads, spans/2h, logs/2h, problemas
distintos/7d), os IDs de aplicativos instalados (para links profundos) e IDs de entidade candidatos
(principais serviços, grupos de host, sistemas de banco de dados) para links premium. Capture a saída; você colará esses números
no config. Adicione quaisquer consultas específicas de critério necessárias (ex. db.system,
serviços Oracle/MSSQL, regiões Azure, spans gen_ai).
3 — CONSTRUIR O CONFIG
Copie references/example_config.json e edite-o para este cliente: capa, visão geral executiva,
POV do cliente (4 cartões), linha do tempo, as linhas de critérios de sucesso, uma entrada de
funcionalidade por critério (+ valor agregado), resumo de valor, encerramento. Cada funcionalidade = {title, done, status, bullets[], url, capture}. url = um link profundo de aplicativo real (<base>/<appId> da etapa 1/2);
capture = uma linha dizendo exatamente ao usuário o que capturar.
Base do link profundo = https://<tenant>.apps.dynatrace.com/ui/apps/. IDs de aplicativos comuns (confirme por
tenant via etapa 1): dynatrace.infraops, dynatrace.discovery.coverage,
dynatrace.classic.smartscape, dynatrace.services, dynatrace.distributedtracing,
dynatrace.database.overview, dynatrace.clouds, dynatrace.automations (Workflows/ServiceNow),
dynatrace.davis.problems (Problems), dynatrace.logs, dynatrace.kubernetes,
dynatrace.devobs.debugger (Live Debugger), dynatrace.dashboards,
dynatrace.security.vulnerabilities.
4 — GERAR O DECK
python3 scripts/build_tip.py config.json
build_tip.py carrega o template, exclui os slides do esqueleto corretamente (remove relacionamentos
para que não haja partes duplicadas / corrupção), reconstrói a partir dos layouts do template e
detecta automaticamente por layout se o fundo é escuro ou claro — escolhendo texto branco em
slides de capa/seção escuros e texto azul marinho em slides de conteúdo claros automaticamente. Cartões personalizados,
nós de linha do tempo, caixas de link e tabelas são sempre preenchidos com fundo escuro e texto claro, para que sejam legíveis em
qualquer slide.
5 — QA (obrigatório)
python3 scripts/qa_tip.py "<saída>.pptx"
Falha ruidosamente em: texto branco sobre claro (invisível), hiperlinks quebrados/vazios, texto de esqueleto
restante ("Caso de Uso 1", "Nome do Cliente", "Lorem"), tabelas vazias. Corrija e reexecute até ficar limpo. Se
LibreOffice/soffice estiver disponível, exporte também um PDF e examine-o visualmente; se não, diga ao usuário para
abrir o arquivo e confirmar se o texto cabe em slides densos.
6 — ENTREGAR
Forneça o caminho absoluto + link file://. Ofereça-se para open (abrir) o arquivo. Resuma o esboço dos slides, as
métricas usadas e os links de captura de tela por slide.
Blueprint do deck (fluxo padrão)
Capa → Agenda → Visão Geral Executiva → Ponto de Vista do Cliente (4 cartões) → Linha do Tempo do POV → Tabela de Critérios de Sucesso → divisor de seção → um slide de funcionalidade por critério de sucesso → slides de valor agregado (Problemas/RCA, Logs, Kubernetes, Live Debugger, Dashboards entregues, Segurança) → divisor de seção → Scorecard de Resultados → Valor Entregue e Próximos Passos → Agradecimento.
Cada slide de funcionalidade: título + chip de status (✅ Concluído / 🔄 Em Andamento) + 3–4 bullets de valor + uma caixa teal "ESPAÇO PARA CAPTURA DE TELA" à direita com a instrução de captura e o link profundo clicável.
Lições aprendidas incorporadas nos scripts (não regredir)
- Layouts claros vs escuros. Os templates "Technical Impact" da Dynatrace vêm com layouts de conteúdo
claros (brancos) e layouts de capa/seção escuros (imagem no fundo). Texto branco em um slide claro
é invisível.
build_tip.pydetecta automaticamente (uma imagem no fundo ou preenchimento sólido escuro ⇒ escuro) e colore o texto de acordo. Nunca codifique texto branco em layouts de conteúdo. - Excluir slides corretamente. Remover apenas entradas
sldIdórfãs de partes de slide e causa corrupção zip por nomes duplicados. Sempreprs.part.drop_rel(rId)e remova osldId. - Substituições de termos de marca diferenciam maiúsculas de minúsculas. ex., substitua
**Davis**visível →**Inteligência Dynatrace**mas deixedavisminúsculo dentro de URLs de ID de aplicativo (dynatrace.davis.problems) intacto, ou você quebra os links.qa_tip.pynão sinalizará URLs. - Apenas IDs de aplicativos reais. Obtenha-os de
dtctl get apps(etapa 1) — não adivinhe.dynatrace. database.overview(nãodynatrace.databases),dynatrace.davis.problems, etc. - Honestidade de status. Mantenha os sinalizadores Concluído/Em Andamento do cliente; pinte Em Andamento em âmbar.
Compartilhando este skill
Ele é autocontido neste diretório. Para compartilhar: copie
~/.claude/skills/technical-impact-presentation/ para o ~/.claude/skills/ de um colega (ou
~/.agents/skills/), ou envie-o para um repositório de skills compartilhado. Nenhuma dependência externa além de
python-pptx (pip3 install python-pptx) e dtctl.