feat: sync all plugins, skills, agents updates
New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
155
metabase/skills/query/SKILL.md
Normal file
155
metabase/skills/query/SKILL.md
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
name: query
|
||||
description: Executar queries SQL no Metabase com linguagem natural. Explorar tabelas,
|
||||
extrair métricas, criar reports ad-hoc via bi.descomplicar.pt.
|
||||
author: Descomplicar® Crescimento Digital
|
||||
version: 1.0.0
|
||||
quality_score: 70
|
||||
user_invocable: true
|
||||
desk_task: null
|
||||
allowed-tools: Task, ToolSearch
|
||||
---
|
||||
|
||||
# Skill /query - Metabase SQL Query Assistant
|
||||
|
||||
Executar queries SQL no Metabase com assistência AI. Traduz perguntas em linguagem natural para SQL, explora tabelas e extrai métricas.
|
||||
|
||||
## Sintaxe
|
||||
|
||||
```
|
||||
/query [pergunta em linguagem natural ou SQL]
|
||||
```
|
||||
|
||||
**Exemplos:**
|
||||
- `/query quantos clientes temos activos?`
|
||||
- `/query total facturado em Janeiro 2026`
|
||||
- `/query top 10 produtos mais vendidos`
|
||||
- `/query SELECT COUNT(*) FROM customers WHERE active = true`
|
||||
|
||||
## Quando usar
|
||||
|
||||
- Extrair dados específicos das bases de dados
|
||||
- Responder perguntas de negócio com dados reais
|
||||
- Análise ad-hoc rápida
|
||||
- Validar hipóteses com números concretos
|
||||
- Criar queries para futuros cards/questions
|
||||
|
||||
---
|
||||
|
||||
## Protocolo de execução
|
||||
|
||||
### 1. Carregar MCP
|
||||
|
||||
```
|
||||
ToolSearch("metabase")
|
||||
```
|
||||
|
||||
### 2. Compreender o pedido
|
||||
|
||||
**Se linguagem natural:**
|
||||
1. Identificar a pergunta de negócio
|
||||
2. Determinar database e tabelas relevantes
|
||||
3. Usar AI SQL generation do MCP se disponível
|
||||
|
||||
**Se SQL directo:**
|
||||
1. Validar syntax
|
||||
2. Verificar que tabelas existem
|
||||
3. Executar
|
||||
|
||||
### 3. Explorar schema (se necessário)
|
||||
|
||||
```
|
||||
1. mcp__metabase__list_databases → identificar database
|
||||
2. mcp__metabase__get_database_tables → listar tabelas
|
||||
3. mcp__metabase__get_table_fields → ver campos disponíveis
|
||||
```
|
||||
|
||||
### 4. Construir e executar query
|
||||
|
||||
```
|
||||
1. Construir SQL baseado no schema real
|
||||
2. Executar via mcp__metabase__execute_sql
|
||||
3. Validar resultados (nulls, zeros, outliers)
|
||||
4. Formatar output
|
||||
```
|
||||
|
||||
### 5. Apresentar resultados
|
||||
|
||||
**Output format:**
|
||||
|
||||
```markdown
|
||||
## Query: [Descrição da pergunta]
|
||||
|
||||
**Database:** [nome] | **Tabelas:** [lista]
|
||||
|
||||
### Resultados
|
||||
|
||||
| Col1 | Col2 | Col3 |
|
||||
|------|------|------|
|
||||
| ... | ... | ... |
|
||||
|
||||
**Total registos:** N
|
||||
|
||||
### Insight
|
||||
[Interpretação breve dos dados]
|
||||
```
|
||||
|
||||
## Boas práticas SQL
|
||||
|
||||
### Performance
|
||||
- Usar `LIMIT` em queries exploratórias (default: 100)
|
||||
- Evitar `SELECT *` - especificar campos necessários
|
||||
- Usar `WHERE` para filtrar antes de agregar
|
||||
- Indexes: verificar campos indexados para JOINs
|
||||
|
||||
### Segurança
|
||||
- **Read-only**: o MCP opera em modo read-only por defeito
|
||||
- Nunca executar DDL (CREATE, ALTER, DROP) sem confirmação
|
||||
- Nunca executar DML (INSERT, UPDATE, DELETE) sem confirmação
|
||||
|
||||
### Padrões comuns
|
||||
|
||||
**Contagem com agrupamento:**
|
||||
```sql
|
||||
SELECT campo, COUNT(*) as total
|
||||
FROM tabela
|
||||
GROUP BY campo
|
||||
ORDER BY total DESC
|
||||
LIMIT 10;
|
||||
```
|
||||
|
||||
**Evolução temporal:**
|
||||
```sql
|
||||
SELECT DATE_TRUNC('month', created_at) as mes,
|
||||
COUNT(*) as total,
|
||||
SUM(valor) as valor_total
|
||||
FROM tabela
|
||||
WHERE created_at >= NOW() - INTERVAL '12 months'
|
||||
GROUP BY mes
|
||||
ORDER BY mes;
|
||||
```
|
||||
|
||||
**Comparação período actual vs anterior:**
|
||||
```sql
|
||||
SELECT
|
||||
SUM(CASE WHEN created_at >= DATE_TRUNC('month', NOW()) THEN valor END) as mes_actual,
|
||||
SUM(CASE WHEN created_at >= DATE_TRUNC('month', NOW() - INTERVAL '1 month')
|
||||
AND created_at < DATE_TRUNC('month', NOW()) THEN valor END) as mes_anterior
|
||||
FROM tabela;
|
||||
```
|
||||
|
||||
## Guardar query como question
|
||||
|
||||
Se o utilizador quiser reutilizar a query:
|
||||
```
|
||||
1. Confirmar nome e descrição
|
||||
2. Criar question/card no Metabase
|
||||
3. Associar a collection adequada
|
||||
4. Retornar URL directa
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
- Resultados limitados a 2000 linhas por defeito pelo MCP
|
||||
- Para datasets grandes, usar agregações
|
||||
- Queries complexas: delegar ao agente `metabase-analyst`
|
||||
Reference in New Issue
Block a user