AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Pbi Dax Create

skill-xperiun-claude-code-powerbi-skills-pbi-dax-create · by xperiun

Cria 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.

— No reviews yet
0 installs
28 views
0.0% view→install

Install

$ agentstack add skill-xperiun-claude-code-powerbi-skills-pbi-dax-create

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-xperiun-claude-code-powerbi-skills-pbi-dax-create)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
○ 5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Pbi Dax Create? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

/pbi-dax-create — Criação de medida DAX

> 📦 Distribuída publicamente: github.com/xperiun/claude-code-powerbi-skills — pasta claude-code/pbi-dax-create/ (skill nativa) + claude-web/pbi-dax-create.zip (upload no Claude.ai). Mudança aqui exige sincronizar lá: atualizar pasta + regenerar ZIP (Python zipfile, ver CLAUDE.md) + commit + bump CHANGELOG. Repo é open-source, leiame público — evitar referências internas (Xperiun-only) na SKILL.md.

Gera medidas DAX a partir de descrição em linguagem natural, respeitando o modelo existente:

  • Usa as colunas e tabelas que realmente existem (sem inventar)
  • Detecta o padrão de nomenclatura do projeto (Title Case, camelCase, com prefixos, etc.) e segue
  • Aplica boas práticas DAX automaticamente (DIVIDE em vez de /, SUMX vs SUM correto, time intelligence apropriado)
  • Avisa se a medida pedida já existe ou tem similar parecida
  • Faz pergunta clarificadora quando o pedido é ambíguo

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).

Quando usar

  • Analista que sabe o que quer mas quer pular o "digitar DAX no editor"
  • Líder de dados criando medidas em batch sem abrir Power BI Desktop
  • Refatorando uma medida pra padrão DAX recomendado
  • Onboarding: aprendiz descreve em PT e a skill mostra a forma correta

Não usar quando:

  • Quer documentar medidas existentes → use /pbi-doc
  • Quer auditar qualidade de modelo → use /pbi-modelo-review
  • Quer refatorar medidas existentes em batch (skill futura /pbi-dax-refactor)
  • Quer apenas explicar um DAX que já existe (use /pbi-doc que tem isso)

Pré-requisitos

  1. Projeto em formato PBIP (Power BI Project) — pasta com .SemanticModel/. Se faltar, instruir conversão e encerrar.
  2. Acesso aos arquivos .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.

Modos de execução

A skill detecta automaticamente o ambiente e adapta input/output:

Modo Code (Claude Code · Desktop · file-based)

  • Detecção: tenho acesso a filesystem e a pasta atual contém .SemanticModel/
  • Input: leio automaticamente os .tmdl da pasta
  • Output: medida no chat. Se aprovado, edito direto o .tmdl da tabela host

Modo Web (Claude.ai · upload-based)

  • Detecção: não tenho acesso a filesystem (claude.ai web)
  • Input: peço ao usuário pra anexar os arquivos:

> Pra eu criar uma medida que funciona com o seu modelo real, anexe nesse chat: > - model.tmdl (lista geral de tabelas) > - O .tmdl da tabela onde a medida vai ficar (ex: Medidas.tmdl) > - Se a medida vai usar colunas/medidas de outras tabelas, anexa também esses .tmdl > > Pode arrastar individualmente ou zipar tudo num arquivo só.

  • Output: medida no chat (3 nomes + DAX + explicação + onde colar). Como não posso editar arquivo direto no web, devolvo o bloco TMDL pronto pra usuário copiar e colar manualmente no arquivo (ou no Power BI Desktop).

Detecção automática

Verificar se a pasta .SemanticModel/ é acessível via filesystem:

  • ✅ Sim → Modo Code (file-based, edição direta possível)
  • ❌ Não → Modo Web (peço uploads, devolvo bloco pra copiar)

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 .tmdl direto; pra web você precisa colar o bloco que eu te mando.

Inputs

  • Descrição em PT (obrigatório) — o que a medida deve calcular
  • (Opcional) Tabela host — onde colocar. Default: tabela Medidas se existir, senão pergunta

Se descrição for vaga ou ambígua (ex: "vendas totais" — bruto ou líquido?), fazer 1 pergunta clarificadora antes de gerar.

Processo

1. Detectar e mapear o modelo

  • Confirmar .SemanticModel/
  • Ler model.tmdl (config), relationships.tmdl, tables/*.tmdl
  • Ignorar LocalDateTable_* e DateTableTemplate_* (auto-date hidden)
  • Inventariar:
  • Tabelas (e qual delas é "Medidas" container, se existir)
  • Todas as colunas tipadas (qual tabela, tipo, papel inferido)
  • Todas as medidas existentes (nome, DAX, displayFolder)
  • Padrão de naming detectado nas medidas (ver references/padroes.md)

2. Interpretar a solicitação

Da descrição em PT, identificar:

  • Tipo de cálculo: agregação simples (soma/média/contagem), divisão (%, ratio), comparação temporal (YoY, MTD, YTD), ranking, filtro condicional, lógica IF/SWITCH
  • Colunas/medidas necessárias: tem que existir no modelo. Se a descrição menciona algo que não existe → sugerir alternativas reais
  • Granularidade implícita: se "total" provavelmente quer SUM/SUMX, se "média" AVERAGE, se "único/distintos" DISTINCTCOUNT, etc.

Se ambíguo, parar e perguntar (1 pergunta única, objetiva). Exemplos:

  • "vendas totais" → "Total de qual coisa? (a) Receita bruta com SUMX(Vendas, Qtd × Preço), (b) Receita líquida com algum desconto/devolução, (c) Quantidade total de itens vendidos"
  • "% de margem" → "Sobre o quê? (a) Margem Bruta / Faturamento, (b) Margem Líquida / Receita Líquida"

3. Aplicar padrões DAX

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 linha
  • SUM(tabela[col]) quando é soma simples de 1 coluna
  • DISTINCTCOUNT() em coluna inteira (key) quando possível
  • Time intelligence (SAMEPERIODLASTYEAR, DATEADD, DATESYTD) sempre referenciando coluna de tabela calendário
  • CALCULATE com filter modifier explícito quando precisa modificar contexto
  • VAR ... RETURN pra medidas com 3+ passos lógicos (legibilidade)

4. Aplicar padrão de nomenclatura

Detectar o padrão usado nas medidas existentes do projeto (ver references/padroes.md seção naming):

  • Title Case PT (Total Vendas, % Margem Bruta)
  • Prefixo de tipo (% Faturamento YoY, # Pedidos, Δ MoM)
  • camelCase (totalVendas)
  • Mistura (sinalizar que tá inconsistente, sugerir o mais comum)

Sempre gerar 3 sugestões de nome seguindo o padrão dominante.

5. Gerar a medida

Verificar antes de retornar:

  • ✅ Todas as colunas/medidas referenciadas existem no modelo
  • ✅ DAX segue boas práticas
  • ✅ Nome segue padrão do projeto
  • ⚠️ Existe medida similar no modelo? (busca por nome parecido OU mesma fórmula) → avisar antes de duplicar

6. Retornar no chat

Usar o formato definido em templates/output-medida.md. Resposta:

  • 3 sugestões de nome (1ª recomendada, com justificativa)
  • DAX completo formatado
  • Explicação linha-a-linha em PT
  • Onde colar (qual .tmdl, em qual seção/displayFolder)
  • displayFolder sugerido (se aplicável)

7. Aplicação opcional

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:

  • Localizar a tabela host no .tmdl
  • Inserir a medida na seção correta (alfabética dentro do displayFolder)
  • Adicionar description: opcional se útil
  • Salvar
  • Não commita (regra inviolável git do CLAUDE.md raiz)

Outputs

Modo padrão (só sugere):

  • Resposta no chat com nome + DAX + explicação + instruções de colar
  • Nenhum arquivo modificado

Modo aplicar (com aprovação explícita):

  • .tmdl da tabela host modificado (medida inserida)
  • Resumo curto no chat: "Medida X adicionada em Medidas.tmdl, linha Y"

Edge cases

| 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 |

Tom

Estilo Xperiun:

  • Direto: vai pra fórmula sem rodeio teórico
  • Didático mas não condescendente: explica linha-a-linha em PT, mas no nível de quem já sabe DAX
  • Provocativo quando útil: se o pedido tem antipattern óbvio, sinaliza ("você quer SUMX direto em fato de 5M linhas? Pode dar trabalho — alternativa: ...")
  • PT-BR com todos os acentos (regra inviolável CLAUDE.md)

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)."

Segurança / Blast radius

  • Lê arquivos .tmdl (texto puro)
  • Modo padrão: zero modificação no projeto
  • Modo aplicar: edita só o .tmdl da tabela host, nunca toca outros
  • NÃO commita (segue regra inviolável git)
  • NÃO faz rede — operação 100% local

Tom dos avisos sobre risco

Quando aplicar direto:

  • Antes: "Vou editar Medidas.tmdl e adicionar a medida na seção 0. Medidas Padrão. Pode?"
  • Após: "Adicionada. Abre o Power BI Desktop e ele vai recarregar o modelo automaticamente. Se quiser desfazer, só rodar git diff e descartar."

Tempo típico

  • Medida simples (agregação ou divisão): 15–30s
  • Medida com time intelligence ou múltiplos VAR: 30–60s
  • Medida que requer pergunta clarificadora: + tempo de ida-e-volta com você

Versão

v0.1 — protótipo interno Xperiun OS. Faz parte do trio do lead magnet (/pbi-modelo-review · /pbi-doc · /pbi-dax-create).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.