colibri-report-builder
Relatório grid do Colibri Reports — cria ou altera relatórios com saída grid (.conf, SQL com bloco de metadados de filtros/ordenação/relacionamento e grid.ini).
Skill by ColibriAgile
Chalk Labs
Need help deploying colibri-report-builder?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/colibriagile-colibri-report-builder
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/colibri-report-builder
What's inside
- Skill name
colibri-report-builder- Description
- Relatório grid do Colibri Reports — cria ou altera relatórios com saída grid (.conf, SQL com bloco de metadados de filtros/ordenação/relacionamento e grid.ini). Use quando o pedido for montar um relatório ou consulta em grid no Reports, acrescentar uma saída grid ou um detalhe mestre-detalhe a um .conf, ou ajustar filtros, ordenação, colunas, bandas e totais de um grid existente. Não use para layouts .rtm do ReportBuilder nem para alterar o código Delphi do colibri-reports.
- License
- MIT
- Instructions
- 114 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (14)
- SKILL.md
- detalhe.sql · assets/
- estilos.ini · assets/
- grid-spec.detalhe.json · assets/
- grid-spec.vw1.json · assets/
- principal.sql · assets/
- relatorio.conf · assets/
- conf.md · references/
- filtros.md · references/
- grid-ini.md · references/
- sql.md · references/
- gerar_grid_ini.py · scripts/
- normalizar_arquivos.py · scripts/
- validar_relatorio.py · scripts/
SKILL.md (first lines)
# Relatório grid do Colibri Reports
Todo relatório grid sai do mesmo **contrato de três camadas**, validado antes da entrega:
1. `.conf`: identidade do relatório, saídas e árvore de consultas.
2. `.sql` de cada consulta: um template T-SQL. O bloco de metadados no fim do arquivo desenha as abas de filtro e de ordenação e liga o detalhe ao mestre.
3. `grid\<id da saída>\`: o layout das colunas, bandas e totais.
`<skill-dir>` é a pasta deste `SKILL.md`. Os helpers exigem Python 3:
- `scripts/validar_relatorio.py`: **somente leitura**;
- `scripts/gerar_grid_ini.py`: **altera** arquivos, grava o layout;
- `scripts/normalizar_arquivos.py`: **altera** arquivos, regrava em UTF-8 com BOM e CRLF.
## Arquitetura em uma tela
```
<PastaRaiz>\ (pai de client\colibriReports.exe)
reports\<produto>\filtros\*.filtros definições globais de filtro (tipo -> modelo)
reports\<produto>\<categoria>\<nome>\
<categoria>-<nome>.conf descoberto por varredura recursiva de *.conf
sql\<consulta>.sql template + bloco /* [filtro.x] [ordenacao] [relacionamento] */
grid\<id da saída>\grid.ini layout da view raiz (vw1)
grid\<id da saída>\grid.vw<id>.ini layout de cada detalhe
grid\<id da saída>\estilos.ini
```
Na execução, o app lê o `.conf`. A partir dos blocos de todos os SQLs da saída, monta a tela de filtros (cada `[filtro.x]` aponta uma definição por `tipo=`). Em seguida troca as macros `/*macro.*/` pelas restrições escolhidas, executa as consultas como hierarquia ADO mestre-detalhe e abre o grid aplicando o `grid.ini`.
## Etapas
**Etapa 1: Situar o relatório**
1. Descubra a `PastaRaiz` da instalação-alvo e o produto (padrão `pos`). Se não estiverem claros no pedido nem no ambiente, pergunte.
2. Para **alteração**, leia integralmente o `.conf`, todos os `.sql` da saída e os arquivos de `grid\<id da saída>\`. Rode o validador sobre o estado atual para separar defeitos antigos dos novos.
3. Para **criação**, defina a pasta do relatório pela tabela "Onde colocar" de `references/conf.md`.
4. Liste o catálogo de filtros da instalação:
`python <skill-dir>/scripts/validar_relatorio.py --listar-filtros --pasta-raiz "<PastaRaiz>"`
*Concluído quando:* a pasta do relatório está definida, o catálogo de `tipo`s está listado e, se for alteração, todos os arquivos existentes da saída foram lidos.
**Etapa 2: Projetar**
1. Leia `references/sql.md` e `references/filtros.md` por inteiro antes de projetar.
2. Monte a árvore de consultas: uma raiz (a primeira raiz é a única que o grid mostra) e detalhes com `id` ASCII.
3. Monte a tabela de colunas de cada consulta: alias, tipo SQL, editor (`texto`, `inteiro`, `moeda`, `decimal`, `data`, `check`), formato, banda, visibilidade, agrupamento, total.
4. Monte a tabela de filtros: `id`, `tipo` presente no catálogo, `campo` ou `literal`, `macros`. Monte também a de ordenação.
5. Para cada detalhe, liste as colunas do mestre que o ligam; todas precisam estar no `SELECT` do mestre.
6. Se o pedido exigir um `tipo` de filtro inexistente, proponha a definição local (`filtros.md`, "Definição local no `.conf`") e confirme com o usuário.
*Concluído quando:* cada coluna, filtro, ordenação e ligação mestre-detalhe está tabelado, e todo `tipo` usado existe no catálogo ou tem definição local aprovada.
**Etapa 3: Escrever os SQLs**
1. Parta de `assets/principal.sql` (raiz) e `assets/detalhe.sql` (detalhe).
2. Coloque `/*macro.filtro*/` ou `/*macro.filtro+*/` em cada trecho que deve receber as restrições. Num `union`, isso significa os dois lados.
3. Coloque `/*macro.ordenacao*/` onde vai o `order by`.
4. Nos detalhes, abra o arquivo com `/*macro.relacionamento*/` e use `@colunaDoMestre`.
5. Feche cada arquivo com um único bloco de metadados na ordem `[filtro.*]` → `[ordenacao]` → `[relacionamento]`, com `*/` na última linha.
*Concluído quando:* todo `campo` e `literal` da tabela de filtros tem a macro correspondente no SQL, e cada detalhe referencia só colunas existentes no mestre.
**Etapa 4: Escrever o `.conf`**
1. Leia `references/conf.md` por inteiro e parta de `assets/relatorio.conf`.
2. Gere um GUID novo para o relatório (`python -c "import uuid;print('{%s}' % str(uuid.uuid4()).upper())"`).
3. Escreva o `id` da saída (vira o nome da pasta `grid\`) e o array `sqls`, com o mestre antes dos detalhes.
4. Em alteração, preserve os ids existentes de relatório, saída e consulta.
*Concluído quando:* o `.conf` tem produto, id, título, categoria e ao menos uma saída grid, e cada `sqls[].sql` aponta um arquivo existente.
**Etapa 5: Gerar o layout**
1. Leia `references/grid-ini.md` por inteiro.
2. Escreva um spec JSON por view. Parta de `assets/grid-spec.vw1.json` (raiz) e `assets/grid-spec.detalhe.json` (detalhe, com `"view": "<id da consulta>"`). Declare **todas** as colunas do `SELECT`, na ordem de exibição, com `campo` = alias exato (um alias repetido vira `<alias>_1`). Toda view com dois ou mais detalhes fica com `abas_detalhe` = `topo` (o padrão) ou `esquerda`.
3. Rode o gerador para cada view:
`python <skill-dir>/scripts/gerar_grid_ini.py --spec <spec.json> --saida "<pasta do relatório>/grid/<id da saída>"`
Use `--sobrescrever` ao regerar. Na primeira execução o gerador copia `assets/estilos.ini` para a pasta.
4. Se o gerador sair com `ERRO`, corrija o spec (ou o alias no SQL) conforme a mensagem e rode de novo; o ini só é gravado quando o spec inteiro é válido.
5. Mantenha os specs fora da pasta do relatório. O app não os lê.
*Concluído quando:* existe `grid.ini` e um `grid.vw<id>.ini` por detalhe, e a lista "nome ← campo" impressa pelo gerador cobre todas as colunas de cada `SELECT`.
**Etapa 6: Validar**
1. Rode `python <skill-dir>/scripts/normalizar_arquivos.py <cada .conf, .sql e .ini escrito>`.
2. Rode `python <skill-dir>/scripts/validar_relatorio.py "<arquivo.conf>" --pasta-raiz "<PastaRaiz>"`.
3. Corrija todo `ERRO` e releia cada `AVISO`. Um aviso sobre coluna faltando ou sobrando no ini indica alias divergente entre o SQL e o spec. A extração de aliases é heurística: quando não confirmar, confira à mão.
4. Com acesso ao banco, rode `validar_relatorio.py --expandir <arquivo.sql>` e execute o resultado (filtros desligados) para confirmar sintaxe, colunas e tipos.
*Concluído quando:* o validador sai com código 0, todo aviso restante está explicado ao usuário e, com banco disponível, cada SQL expandido executa.
**Etapa 7: Conferir no Reports**
1. Quando o app estiver disponível, abra `<PastaRaiz>\client\colibriReports.exe -editar`, execute o relatório e use "Editar report". Confira primeiro os totais do rodapé e do grupo: a recriação dos itens de total no restore não é comprovada pelo código, então um total ausente ou duplicado deve ser ajustado na tela e salvo. Depois confira colunas, bandas e a expansão dos detalhes.
2. Salvar (Ctrl+S) ou fechar no modo edição **regrava** o `grid.ini` com o layout da tela. Depois disso, rode o validador de novo.
3. Sem acesso ao app, registre no relatório final que a verificação visual está pendente.
*Concluído quando:* o grid abriu com o layout esperado, ou a pendência de verificação visual está declarada.
## Erros comuns
| Sintoma | Causa e correção |
|---|---|
| Relatório não aparece na lista | `produto` diferente, JSON inválido (aviso na carga), `tipo` de saída inválido ou `id` duplicado. Rode o validador. |
| Tela de filtros sem abas | Bloco de metadados não reconhecido: LF em vez de CRLF, texto antes da primeira seção, `*/` fora do início da linha. Rode `normalizar_arquivos.py`. |
| Aba "As definições deste filtro não foram encontradas" | `tipo=` fora do catálogo. Use um tipo listado ou uma definição local. |
| `grid.ini` sumiu depois de abrir o grid | O restore falhou e o app apagou o arquivo. Regere com `gerar_grid_ini.py` e valide. |
| Colunas embaralhadas | Colunas do SQL sem seção no ini. Declare todas no spec. |
| Detalhe não aparece | O `master` vem depois do detalhe no array ou tem maiúsculas diferentes. |
| `Parametro "x" não encontrado na view` | O detalhe usa uma coluna que não está no `SELECT` do mestre. |
| Aba de ordenação sem efeito | Falta `/*macro.ordenacao*/`, ou uma flag foi escrita depois de `->asc`. |From ColibriAgile/agents-instructions, MIT.
More from ColibriAgile/agents-instructions
- 0.570score
colibri-deploy-producao
ColibriAgile
Liberação para produção dos pacotes Colibri a partir de tarefas do Jira: lê uma ou mais chaves (por exemplo WIN-3159), levanta as versões dos pacotes, confere…
SkillAFreshness: AClaude Code +9 - 0.567score
colibri-cis-testes
ColibriAgile
CIS (ColibriServer) em teste no ambiente local: use quando for preciso testar a API REST do CIS isolado em outra porta, ou integrado ao POS ou a outro client.
SkillAFreshness: AClaude Code +9 - 0.566score
colibri-design-kit
ColibriAgile
Colibri Design Kit leva a linha visual das aplicações Colibri (perfis Admin e Operação) a um repositório e mede a aderência a ela, sobre a skill impeccable 4.x.
SkillAFreshness: AClaude Code +9 - 0.565score
commit
ColibriAgile
Cria commits no padrão conventional commits (título + descrição em bullets), tratando primeiro os submódulos com alterações pendentes e depois o repositório…
SkillAFreshness: AClaude Code +9 - 0.529score
agent-customization
ColibriAgile
**WORKFLOW SKILL** — Create, update, review, fix, or debug VS Code agent customization files (.instructions.md, .prompt.md, .agent.md, SKILL.md…
SkillBFreshness: BClaude Code +9 - 0.529score
architectural-analysis
Pedro Nauck
Read-only architectural audit of a .NET/C# codebase — dead code, duplication, anti-patterns, nullability and type safety, code smells — written to a report…
SkillBFreshness: BClaude Code +9 - 0.529score
atualizar-pacotes-nuget
ColibriAgile
tight NuGet: atualiza dependências .NET com dotnet outdated, valida restore/build/testes, sincroniza submódulos e decide entre corrigir uma incompatibilidade…
SkillBFreshness: BClaude Code +9 - 0.529score
colibri-connection-string
ColibriAgile
Configuração de conexões — Use when a tarefa precisar incluir ou refatorar a obtenção de strings SQL Server ou PostgreSQL por arquivos de configuração do…
SkillBFreshness: BClaude Code +9 - 0.529score
colibri-ports
ColibriAgile
Leitura de portas Colibri: use quando um projeto C# precisar criar ou adaptar código para ler o valor de uma porta usando CoLib.Ambiente e CoLib.Colibri…
SkillBFreshness: BClaude Code +9 - 0.526score
ai-ready-score
ColibriAgile
AI Ready avalia a prontidão de um repositório para agentes de IA com nota de 0 a 5 e achados verificáveis.
SkillBFreshness: BClaude Code +9 - 0.526score
assign-bundles
ColibriAgile
Atribui interativamente cada skill de SKILLS/ sem bundle a um bundle existente ou novo em bundles.yaml, perguntando skill por skill com opções de bundle…
SkillBFreshness: BClaude Code +9 - 0.526score
colibri-logging
ColibriAgile
Logs — Use quando o agente adiciona, refatora ou padroniza o logging de aplicação C# para o padrão Colibri.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 28, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ColibriAgile
- 0.570score
colibri-deploy-producao
ColibriAgile
Liberação para produção dos pacotes Colibri a partir de tarefas do Jira: lê uma ou mais chaves (por exemplo WIN-3159), levanta as versões dos pacotes, confere…
SkillAFreshness: AClaude Code +9 - 0.567score
colibri-cis-testes
ColibriAgile
CIS (ColibriServer) em teste no ambiente local: use quando for preciso testar a API REST do CIS isolado em outra porta, ou integrado ao POS ou a outro client.
SkillAFreshness: AClaude Code +9 - 0.566score
colibri-design-kit
ColibriAgile
Colibri Design Kit leva a linha visual das aplicações Colibri (perfis Admin e Operação) a um repositório e mede a aderência a ela, sobre a skill impeccable 4.x.
SkillAFreshness: AClaude Code +9 - 0.565score
commit
ColibriAgile
Cria commits no padrão conventional commits (título + descrição em bullets), tratando primeiro os submódulos com alterações pendentes e depois o repositório…
SkillAFreshness: AClaude Code +9 - 0.529score
agent-customization
ColibriAgile
**WORKFLOW SKILL** — Create, update, review, fix, or debug VS Code agent customization files (.instructions.md, .prompt.md, .agent.md, SKILL.md…
SkillBFreshness: BClaude Code +9 - 0.529score
atualizar-pacotes-nuget
ColibriAgile
tight NuGet: atualiza dependências .NET com dotnet outdated, valida restore/build/testes, sincroniza submódulos e decide entre corrigir uma incompatibilidade…
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get colibri-report-builder running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
colibri-report-builder skill. Agent Mart. https://agentmart.dev/skills/colibriagile-colibri-report-builder (last updated 2026-10-24)