executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
pbi-dax-createCria medida DAX a partir de descrição em PT, respeitando o modelo Power BI existente (colunas reais, naming convention, padrões DAX). Use quando o usuário pedir "cria medida pra X", "preciso de DAX que faça Y", "quero calcular Z", "uma fórmula pra...", ou qualquer pedido pra gerar nova medida em projeto PBIP aberto.
Independent GitHub snapshot · Automated classification · Original documentation governs
📦 Parte do xperiun/skills-xperiun-free: pasta
claude-code/pbi-dax-create/(Claude Code) +claude-web/pbi-dax-create.zip(upload no Claude.ai).
Gera medidas DAX a partir de descrição em linguagem natural, respeitando o modelo existente:
Output principal: medida DAX no chat com nome, fórmula completa, explicação linha-a-linha e onde colar. Opcional: aplica direto no .tmdl (com aprovação explícita).
Não usar quando:
/pbi-doc/pbi-modelo-review/pbi-dax-refactor)/pbi-doc que tem isso).SemanticModel/. Se faltar, instruir conversão e encerrar..tmdl (via filesystem ou upload — ver "Modos de execução" abaixo)Se faltar PBIP, mensagem curta:
Esse projeto ainda está em
.pbix(binário). Pra eu criar medidas com base no modelo real, salva como Power BI Project:File → Save as → Power BI Project (.pbip). Sem isso eu não consigo ler colunas/medidas existentes pra te dar uma medida que funciona.
A skill detecta automaticamente o ambiente e adapta input/output:
.SemanticModel/.tmdl da pasta.tmdl da tabela hostPra eu criar uma medida que funciona com o seu modelo real, anexe nesse chat:
model.tmdl(lista geral de tabelas)- O
.tmdlda tabela onde a medida vai ficar (ex:Medidas.tmdl)- Se a medida vai usar colunas/medidas de outras tabelas, anexa também esses
.tmdlPode arrastar individualmente ou zipar tudo num arquivo só.
Verificar se a pasta .SemanticModel/ é acessível via filesystem:
Se ambíguo, perguntar uma vez:
Você tá rodando isso no Claude Code (CLI/IDE com acesso à pasta) ou no claude.ai (web)? Pra Code eu posso editar o
.tmdldireto; pra web você precisa colar o bloco que eu te mando.
Medidas se existir, senão perguntaSe descrição for vaga ou ambígua (ex: "vendas totais" — bruto ou líquido?), fazer 1 pergunta clarificadora antes de gerar.
.SemanticModel/model.tmdl (config), relationships.tmdl, tables/*.tmdlLocalDateTable_* e DateTableTemplate_* (auto-date hidden)references/padroes.md)Da descrição em PT, identificar:
Se ambíguo, parar e perguntar (1 pergunta única, objetiva). Exemplos:
Ler references/padroes.md e seguir as regras:
DIVIDE(num, den) em vez de num / den (evita ∞ e erros silenciosos)SUMX(tabela, expressão) quando expressão envolve mais de 1 coluna por linhaSUM(tabela[col]) quando é soma simples de 1 colunaDISTINCTCOUNT() em coluna inteira (key) quando possívelSAMEPERIODLASTYEAR, DATEADD, DATESYTD) sempre referenciando coluna de tabela calendárioCALCULATE com filter modifier explícito quando precisa modificar contextoVAR ... RETURN pra medidas com 3+ passos lógicos (legibilidade)Detectar o padrão usado nas medidas existentes do projeto (ver references/padroes.md seção naming):
Total Vendas, % Margem Bruta)% Faturamento YoY, # Pedidos, Δ MoM)totalVendas)Sempre gerar 3 sugestões de nome seguindo o padrão dominante.
Verificar antes de retornar:
Usar o formato definido em templates/output-medida.md. Resposta:
.tmdl, em qual seção/displayFolder)Ao final, perguntar:
Quer que eu aplique direto no
Medidas.tmdl(vou editar o arquivo) ou prefere só copiar e colar no Power BI manualmente?
Default seguro: só mostra. Aplica direto somente se o usuário disser sim explicitamente.
Se aplicar:
.tmdldescription: opcional se útilModo padrão (só sugere):
Modo aplicar (com aprovação explícita):
.tmdl da tabela host modificado (medida inserida)| Cenário | O que fazer |
|---|---|
| Descrição muito vaga | 1 pergunta clarificadora antes de gerar |
| Coluna pedida não existe | Sugerir as 2-3 colunas reais mais próximas + perguntar qual |
| Medida pedida já existe (mesmo nome) | Avisar e perguntar: substituir ou criar com nome diferente? |
| Medida com fórmula similar já existe | Avisar e mostrar a existente — perguntar se é o que ele quer ou se realmente quer criar nova |
| Sem tabela "Medidas" no modelo | Listar tabelas e perguntar onde colocar (ou sugerir criar tabela vazia "Medidas") |
| Time intelligence sem dim Calendario marcada | Avisar limitação + criar a medida mas sinalizar que pode dar resultado errado |
| Modelo enorme (>500 medidas) | Carregar só nomes+DAX-essência das existentes (não DAX completo) pra evitar contexto explodir |
Estilo Xperiun:
Exemplos:
❌ Ruim: "Para calcular o faturamento, podemos utilizar a função SUMX que iterará..."
✅ Bom: "Faturamento — SUMX em fVendas multiplicando QtdItens × PrecoUnitario. Mais limpo que coluna calculada (que infla a fato)."
.tmdl (texto puro).tmdl da tabela host, nunca toca outrosQuando aplicar direto:
Medidas.tmdl e adicionar a medida na seção 0. Medidas Padrão. Pode?"git diff e descartar."Distribuída no repo público xperiun/skills-xperiun-free.