otimização do agent para docuemntação

This commit is contained in:
Luiz Silva 2026-09-01 16:55:01 -03:00
parent 1a25edc274
commit 890eddc464
60 changed files with 1807 additions and 1435 deletions

View file

@ -1,18 +1,19 @@
---
name: documentar-dominio-modulo
scope: global
updatedAt: "2026-06-01"
updatedAt: "2026-09-01"
description: >
Guia para documentar o domínio científico/técnico de cada módulo SaaS,
garantindo que o agente compreenda a terminologia e as regras do domínio
ao gerar código, texto e interface.
Guia para documentar o domínio científico/técnico de cada módulo nas wikis
de usuário (../../wiki/<modulo>/) e de desenvolvimento (../../wiki/dev/<modulo>/).
---
# Skill: Documentar Domínio de um Módulo
Use esta skill ao iniciar um novo módulo SaaS ou ao perceber que o agente não conhece o vocabulário e as regras do domínio que o módulo aborda.
Cada módulo opera em uma disciplina diferente da ciência/gestão ambiental (licenciamento, gases de efeito estufa, resíduos, projetos, etc.). O agente precisa de uma **base factual do domínio** para gerar labels, mensagens, regras de negócio e textos comerciais corretos.
Cada módulo opera em uma disciplina diferente da ciência/gestão ambiental (licenciamento, efluentes, bombeamento, resíduos, projetos, etc.). O repositório `../../wiki` é uma **aplicação VitePress**, onde a base factual do domínio é estruturada em dois níveis de acesso:
1. **Wiki do Usuário (`../../wiki/<modulo>/`):** Aplicação VitePress com **acesso dos usuários e clientes** (linguagem funcional, conceitos, glossário, fluxos e manuais operacionais).
2. **Wiki de Desenvolvimento (`../../wiki/dev/<modulo>/`):** Aplicação VitePress com **acesso interno exclusivo da equipe de desenvolvimento e arquitetura** (arquitetura técnica, diagramas, modelos de banco, regras de negócio e ADRs).
---
@ -20,112 +21,82 @@ Cada módulo opera em uma disciplina diferente da ciência/gestão ambiental (li
Determinar qual área da ciência/gestão o módulo aborda:
| Exemplo de módulo | Domínio |
|---|---|
| Licenciamento | Licenciamento ambiental (LP, LI, LO, condicionantes) |
| GEE | Gases de Efeito Estufa (inventário, emissões, fatores) |
| Resíduos | Gestão de resíduos sólidos (PGRS, MTR, classificação) |
| Outorga | Outorga de uso de recursos hídricos |
| Flora/Fauna | Monitoramento de biodiversidade |
| Projetos | Gestão de projetos ambientais e consultorias |
| Exemplo de módulo | Domínio | Destino Usuário | Destino Dev |
|---|---|---|---|
| SIGMA | Monitoramento ambiental (efluentes, piezometria, bombeamento) | `../../wiki/e-licencie.sigma/` | `../../wiki/dev/e-licencie.sigma/` |
| Licenciamento | Gestão de licenças (LP, LI, LO, condicionantes) | `../../wiki/e-licencie/` | `../../wiki/dev/e-licencie/` |
| Resíduos | Gestão de resíduos sólidos (PGRS, MTR, MTR-e) | `../../wiki/e-licencie.residuos/` | `../../wiki/dev/e-licencie.residuos/` |
| Qualificação | Qualificação e conformidade de fornecedores | `../../wiki/e-licencie.qualifica/` | `../../wiki/dev/e-licencie.qualifica/` |
---
## PASSO 2 — Criar o Arquivo de Domínio
## PASSO 2 — Criar Documentação na Wiki do Usuário (`../../wiki/<modulo>/`)
Criar documento no arquivo `.regras-negocio.md` do módulo:
Estruturar o guia do usuário e conceitos de negócio em linguagem clara e acessível:
```markdown
# Domínio: <Nome do Módulo>
# [Nome do Módulo] — Guia do Usuário
## Área de Conhecimento
Breve descrição da disciplina (1-3 linhas).
## Glossário do Módulo
## Visão Geral
Breve descrição do propósito do módulo para o gestor e operador.
## Glossário do Domínio
| Termo | Definição | Sigla |
|---|---|---|
| Licença Prévia | Autorização para planejamento do empreendimento | LP |
| Licença de Instalação | Autorização para início das obras | LI |
| ... | ... | ... |
| Ponto de Monitoramento | Local físico onde são coletadas amostras | PM |
| Parâmetro Ambiental | Variável físico-química monitorada (ex: DBO, DQO) | — |
## Entidades Principais
Lista das entidades de negócio do módulo com descrição e relações:
- **Empreendimento**: unidade física onde ocorre a atividade potencialmente poluidora
- **Licença**: autorização ambiental vinculada a um empreendimento
- **Condicionante**: obrigação imposta pelo órgão ambiental na licença
- ...
## Legislação Aplicável
| Norma | Descrição | Relevância |
|---|---|---|
| Lei 6.938/1981 | Política Nacional do Meio Ambiente | Base legal do licenciamento |
| Resolução CONAMA 237/1997 | Regulamenta o licenciamento ambiental | Tipos de licença, prazos |
| ... | ... | ... |
## Regras de citação legal
- Formato: "Resolução CONAMA nº 237/1997, art. 8º, inciso I"
- Toda sigla na primeira ocorrência com nome por extenso
- Legislação federal > estadual > municipal (hierarquia)
## Fluxos do Domínio
Descrever os processos-chave que o módulo implementa:
1. Solicitação de licença → Análise técnica → Emissão → Monitoramento
2. Cadastro de condicionante → Acompanhamento de prazo → Cumprimento
## Vocabulário de Interface
Termos que devem ser usados em labels, botões e mensagens:
| Contexto | ❌ Genérico | ✅ Correto para o módulo |
|---|---|---|
| Campo de nome | "Nome" | "Razão Social do Empreendedor" |
| Status | "Ativo/Inativo" | "Vigente/Vencida/Suspensa" |
| Ação principal | "Criar novo" | "Solicitar nova licença" |
| Lista vazia | "Nenhum registro" | "Nenhuma licença cadastrada" |
## Fluxos Operacionais do Usuário
1. Cadastro de pontos de monitoramento.
2. Lançamento e importação de medições.
3. Emissão de relatórios e acompanhamento de conformidade.
```
---
## PASSO 3 — Validar com o Operador
## PASSO 3 — Criar Documentação na Wiki de Desenvolvimento (`../../wiki/dev/<modulo>/`)
Antes de consolidar:
Estruturar a especificação técnica, modelos de banco e arquitetura:
- [ ] Os termos do glossário estão corretos para o contexto do módulo?
- [ ] As entidades cobrem os conceitos centrais?
- [ ] A legislação listada é a principal (não exaustiva)?
- [ ] O vocabulário de interface reflete como o usuário fala no dia a dia?
```markdown
# [Nome do Módulo] — Arquitetura e Engenharia
## Modelo de Dados e Entidades
- **Tabelas principais:** `sigma_pontos`, `sigma_medicoes`, `sigma_parametros`
- **Schemas Zod canônicos:** `zPontoCriar`, `zMedicaoRegistrar` em `*-comuns`
## Processamento Assíncrono e Filas (BullMQ)
- **Fila `calcular_agenda`:** Recalcula status e prazos de monitoramento.
## Rotas e Integração de IA
- **Rota `/llm.md`:** Disponibiliza catálogo dinâmico de endpoints e contratos.
```
---
## PASSO 4 — Conectar com as Rules
## PASSO 4 — Conectar com Código e UI
Após documentar o domínio:
1. Verificar se labels e mensagens no código usam o vocabulário definido (rule `mensagens-usuario`)
2. Verificar se schemas Zod têm mensagens de erro no idioma do domínio (rule `zod-validacao-padrao`)
3. Verificar se os arquivos `.ajuda.md` usam termos do glossário (workflow `adicionar-ajuda.md`)
4. Verificar se textos comerciais citam a legislação corretamente (workflow `comercial`)
1. Verificar se mensagens e labels na UI seguem o vocabulário definido (rule `mensagens-usuario`).
2. Verificar se componentes e modais Vue possuem `modalX.ajuda.md` co-localizado (skill `adicionar-ajuda`).
3. Garantir que funções centrais e serviços possuem comentários claros de aplicação (rule `jsdoc-padrao`).
4. Assegurar que regras com 3+ critérios possuam `.regras-negocio.md` co-localizado (rule `regras-negocio-md`).
---
## Checklist Final
- [ ] Arquivo `.regras-negocio.md` do módulo criado e validado?
- [ ] Glossário com pelo menos os 10 termos centrais do módulo?
- [ ] Entidades principais listadas com descrição?
- [ ] Legislação base documentada com formato de citação?
- [ ] Vocabulário de interface definido (labels, status, ações, empty states)?
- [ ] Operador validou a terminologia?
- [ ] Documentação de usuário criada/atualizada em `../../wiki/<modulo>/`?
- [ ] Documentação técnica criada/atualizada em `../../wiki/dev/<modulo>/`?
- [ ] Glossário com os termos centrais do domínio documentado?
- [ ] Regras e entidades técnicas alinhadas com os schemas Zod do `*-comuns`?
- [ ] Rota `/llm.md` no backend reflete o módulo?
---
## Referências
- Rule: `global/rules/mensagens-usuario`
- Rule: `global/rules/regras-negocio-md`
- Workflow: `agents/comercial/workflows/comercial`
- Workflow: `agents/front/workflows/adicionar-ajuda`
- Rule: `rules/ddd-documentacao-primeiro.md`
- Rule: `rules/jsdoc-padrao.md`
- Rule: `rules/regras-negocio-md.md`
- Skill: `skills/adicionar-ajuda/SKILL.md`

View file

@ -1,18 +1,19 @@
---
name: documentar-dominio-modulo
scope: global
updatedAt: "2026-06-01"
updatedAt: "2026-09-01"
description: >
Guia para documentar o domínio científico/técnico de cada módulo SaaS,
garantindo que o agente compreenda a terminologia e as regras do domínio
ao gerar código, texto e interface.
Guia para documentar o domínio científico/técnico de cada módulo nas wikis
de usuário (../../wiki/<modulo>/) e de desenvolvimento (../../wiki/dev/<modulo>/).
---
# Skill: Documentar Domínio de um Módulo
Use esta skill ao iniciar um novo módulo SaaS ou ao perceber que o agente não conhece o vocabulário e as regras do domínio que o módulo aborda.
Cada módulo opera em uma disciplina diferente da ciência/gestão ambiental (licenciamento, gases de efeito estufa, resíduos, projetos, etc.). O agente precisa de uma **base factual do domínio** para gerar labels, mensagens, regras de negócio e textos comerciais corretos.
Cada módulo opera em uma disciplina diferente da ciência/gestão ambiental (licenciamento, efluentes, bombeamento, resíduos, projetos, etc.). O repositório `../../wiki` é uma **aplicação VitePress**, onde a base factual do domínio é estruturada em dois níveis de acesso:
1. **Wiki do Usuário (`../../wiki/<modulo>/`):** Aplicação VitePress com **acesso dos usuários e clientes** (linguagem funcional, conceitos, glossário, fluxos e manuais operacionais).
2. **Wiki de Desenvolvimento (`../../wiki/dev/<modulo>/`):** Aplicação VitePress com **acesso interno exclusivo da equipe de desenvolvimento e arquitetura** (arquitetura técnica, diagramas, modelos de banco, regras de negócio e ADRs).
---
@ -20,112 +21,82 @@ Cada módulo opera em uma disciplina diferente da ciência/gestão ambiental (li
Determinar qual área da ciência/gestão o módulo aborda:
| Exemplo de módulo | Domínio |
|---|---|
| Licenciamento | Licenciamento ambiental (LP, LI, LO, condicionantes) |
| GEE | Gases de Efeito Estufa (inventário, emissões, fatores) |
| Resíduos | Gestão de resíduos sólidos (PGRS, MTR, classificação) |
| Outorga | Outorga de uso de recursos hídricos |
| Flora/Fauna | Monitoramento de biodiversidade |
| Projetos | Gestão de projetos ambientais e consultorias |
| Exemplo de módulo | Domínio | Destino Usuário | Destino Dev |
|---|---|---|---|
| SIGMA | Monitoramento ambiental (efluentes, piezometria, bombeamento) | `../../wiki/e-licencie.sigma/` | `../../wiki/dev/e-licencie.sigma/` |
| Licenciamento | Gestão de licenças (LP, LI, LO, condicionantes) | `../../wiki/e-licencie/` | `../../wiki/dev/e-licencie/` |
| Resíduos | Gestão de resíduos sólidos (PGRS, MTR, MTR-e) | `../../wiki/e-licencie.residuos/` | `../../wiki/dev/e-licencie.residuos/` |
| Qualificação | Qualificação e conformidade de fornecedores | `../../wiki/e-licencie.qualifica/` | `../../wiki/dev/e-licencie.qualifica/` |
---
## PASSO 2 — Criar o Arquivo de Domínio
## PASSO 2 — Criar Documentação na Wiki do Usuário (`../../wiki/<modulo>/`)
Criar documento no arquivo `.regras-negocio.md` do módulo:
Estruturar o guia do usuário e conceitos de negócio em linguagem clara e acessível:
```markdown
# Domínio: <Nome do Módulo>
# [Nome do Módulo] — Guia do Usuário
## Área de Conhecimento
Breve descrição da disciplina (1-3 linhas).
## Glossário do Módulo
## Visão Geral
Breve descrição do propósito do módulo para o gestor e operador.
## Glossário do Domínio
| Termo | Definição | Sigla |
|---|---|---|
| Licença Prévia | Autorização para planejamento do empreendimento | LP |
| Licença de Instalação | Autorização para início das obras | LI |
| ... | ... | ... |
| Ponto de Monitoramento | Local físico onde são coletadas amostras | PM |
| Parâmetro Ambiental | Variável físico-química monitorada (ex: DBO, DQO) | — |
## Entidades Principais
Lista das entidades de negócio do módulo com descrição e relações:
- **Empreendimento**: unidade física onde ocorre a atividade potencialmente poluidora
- **Licença**: autorização ambiental vinculada a um empreendimento
- **Condicionante**: obrigação imposta pelo órgão ambiental na licença
- ...
## Legislação Aplicável
| Norma | Descrição | Relevância |
|---|---|---|
| Lei 6.938/1981 | Política Nacional do Meio Ambiente | Base legal do licenciamento |
| Resolução CONAMA 237/1997 | Regulamenta o licenciamento ambiental | Tipos de licença, prazos |
| ... | ... | ... |
## Regras de citação legal
- Formato: "Resolução CONAMA nº 237/1997, art. 8º, inciso I"
- Toda sigla na primeira ocorrência com nome por extenso
- Legislação federal > estadual > municipal (hierarquia)
## Fluxos do Domínio
Descrever os processos-chave que o módulo implementa:
1. Solicitação de licença → Análise técnica → Emissão → Monitoramento
2. Cadastro de condicionante → Acompanhamento de prazo → Cumprimento
## Vocabulário de Interface
Termos que devem ser usados em labels, botões e mensagens:
| Contexto | ❌ Genérico | ✅ Correto para o módulo |
|---|---|---|
| Campo de nome | "Nome" | "Razão Social do Empreendedor" |
| Status | "Ativo/Inativo" | "Vigente/Vencida/Suspensa" |
| Ação principal | "Criar novo" | "Solicitar nova licença" |
| Lista vazia | "Nenhum registro" | "Nenhuma licença cadastrada" |
## Fluxos Operacionais do Usuário
1. Cadastro de pontos de monitoramento.
2. Lançamento e importação de medições.
3. Emissão de relatórios e acompanhamento de conformidade.
```
---
## PASSO 3 — Validar com o Operador
## PASSO 3 — Criar Documentação na Wiki de Desenvolvimento (`../../wiki/dev/<modulo>/`)
Antes de consolidar:
Estruturar a especificação técnica, modelos de banco e arquitetura:
- [ ] Os termos do glossário estão corretos para o contexto do módulo?
- [ ] As entidades cobrem os conceitos centrais?
- [ ] A legislação listada é a principal (não exaustiva)?
- [ ] O vocabulário de interface reflete como o usuário fala no dia a dia?
```markdown
# [Nome do Módulo] — Arquitetura e Engenharia
## Modelo de Dados e Entidades
- **Tabelas principais:** `sigma_pontos`, `sigma_medicoes`, `sigma_parametros`
- **Schemas Zod canônicos:** `zPontoCriar`, `zMedicaoRegistrar` em `*-comuns`
## Processamento Assíncrono e Filas (BullMQ)
- **Fila `calcular_agenda`:** Recalcula status e prazos de monitoramento.
## Rotas e Integração de IA
- **Rota `/llm.md`:** Disponibiliza catálogo dinâmico de endpoints e contratos.
```
---
## PASSO 4 — Conectar com as Rules
## PASSO 4 — Conectar com Código e UI
Após documentar o domínio:
1. Verificar se labels e mensagens no código usam o vocabulário definido (rule `mensagens-usuario`)
2. Verificar se schemas Zod têm mensagens de erro no idioma do domínio (rule `zod-validacao-padrao`)
3. Verificar se os arquivos `.ajuda.md` usam termos do glossário (workflow `adicionar-ajuda.md`)
4. Verificar se textos comerciais citam a legislação corretamente (workflow `comercial`)
1. Verificar se mensagens e labels na UI seguem o vocabulário definido (rule `mensagens-usuario`).
2. Verificar se componentes e modais Vue possuem `modalX.ajuda.md` co-localizado (skill `adicionar-ajuda`).
3. Garantir que funções centrais e serviços possuem comentários claros de aplicação (rule `jsdoc-padrao`).
4. Assegurar que regras com 3+ critérios possuam `.regras-negocio.md` co-localizado (rule `regras-negocio-md`).
---
## Checklist Final
- [ ] Arquivo `.regras-negocio.md` do módulo criado e validado?
- [ ] Glossário com pelo menos os 10 termos centrais do módulo?
- [ ] Entidades principais listadas com descrição?
- [ ] Legislação base documentada com formato de citação?
- [ ] Vocabulário de interface definido (labels, status, ações, empty states)?
- [ ] Operador validou a terminologia?
- [ ] Documentação de usuário criada/atualizada em `../../wiki/<modulo>/`?
- [ ] Documentação técnica criada/atualizada em `../../wiki/dev/<modulo>/`?
- [ ] Glossário com os termos centrais do domínio documentado?
- [ ] Regras e entidades técnicas alinhadas com os schemas Zod do `*-comuns`?
- [ ] Rota `/llm.md` no backend reflete o módulo?
---
## Referências
- Rule: `global/rules/mensagens-usuario`
- Rule: `global/rules/regras-negocio-md`
- Workflow: `agents/comercial/workflows/comercial`
- Workflow: `agents/front/workflows/adicionar-ajuda`
- Rule: `rules/ddd-documentacao-primeiro.md`
- Rule: `rules/jsdoc-padrao.md`
- Rule: `rules/regras-negocio-md.md`
- Skill: `skills/adicionar-ajuda/SKILL.md`