refactor: remover extensões .md de todos os artefatos — v3.0.0
- 55 arquivos .md renomeados para sem extensão - Convenção: artefatos de conhecimento sem extensão, scripts (.sh) e dados (.json) mantêm extensão - Scripts atualizados: gerar-manifesto.sh, atualizar-agente.sh, atualizar-agente.global.sh, gerar-agent-json.sh, verificar-linhas.sh - Documentação reescrita: AGENTS, README, EXTEND para refletir uso como submodule .agent direto - manifesto.json regenerado v3.0.0 - Todas as referências internas entre artefatos atualizadas BREAKING CHANGE: arquivos não possuem mais extensão .md
This commit is contained in:
parent
22023df81e
commit
bf9be375e2
58 changed files with 506 additions and 514 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
# AGENTS.md — Ponto de entrada dos agentes Azteca
|
# AGENTS — Ponto de entrada dos agentes Azteca
|
||||||
|
|
||||||
Este arquivo descreve como ativar e colaborar com os agentes especializados do ecossistema Azteca dentro do Antigravity.
|
Este arquivo descreve como ativar e colaborar com os agentes especializados do ecossistema Azteca.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -23,7 +23,7 @@ Este arquivo descreve como ativar e colaborar com os agentes especializados do e
|
||||||
|
|
||||||
## Como ativar um agente
|
## Como ativar um agente
|
||||||
|
|
||||||
No Antigravity, mencione o agente pelo handle:
|
Mencione o agente pelo handle:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ag-back implementa o endpoint POST /usuarios conforme schema zUsuarioCriar
|
@ag-back implementa o endpoint POST /usuarios conforme schema zUsuarioCriar
|
||||||
|
|
@ -37,58 +37,63 @@ No Antigravity, mencione o agente pelo handle:
|
||||||
|
|
||||||
## Estrutura do `.agent/`
|
## Estrutura do `.agent/`
|
||||||
|
|
||||||
|
Este repositório é usado como **git submodule** `.agent` nos monorepos.
|
||||||
|
|
||||||
```
|
```
|
||||||
.agent/
|
.agent/ ← este repositório (submodule)
|
||||||
├── AGENTS.md ← este arquivo
|
├── AGENTS ← este arquivo
|
||||||
|
├── EXTEND ← como projetos filhos herdam e estendem
|
||||||
|
├── README ← documentação do repositório
|
||||||
|
├── TOOLS ← ferramentas CLI recomendadas
|
||||||
├── manifesto.json ← inventário de todos os artefatos
|
├── manifesto.json ← inventário de todos os artefatos
|
||||||
├── gerar-manifesto.sh ← gera manifesto.json automaticamente
|
├── gerar-manifesto.sh ← gera manifesto.json automaticamente
|
||||||
├── atualizar-agente.sh ← distribui artefatos para os módulos
|
├── atualizar-agente.sh ← distribui artefatos para os módulos
|
||||||
├── tools.md ← ferramentas CLI recomendadas
|
|
||||||
├── verificar-linhas.sh ← governance: limite de linhas
|
├── verificar-linhas.sh ← governance: limite de linhas
|
||||||
│
|
│
|
||||||
├── global/ ← artefatos herdados por TODOS os agentes
|
├── global/ ← artefatos herdados por TODOS os agentes
|
||||||
│ ├── rules/ ← 11 rules globais
|
│ ├── rules/ ← 11 rules globais
|
||||||
│ ├── workflows/ ← 3 workflows globais
|
│ ├── workflows/ ← 4 workflows globais
|
||||||
│ └── skills/ ← 7 skills globais (incluindo orquestrar-agentes)
|
│ └── skills/ ← 7 skills globais (incluindo orquestrar-agentes)
|
||||||
│
|
│
|
||||||
├── agents/ ← definições dos 10 agentes
|
├── agents/ ← definições dos 10 agentes
|
||||||
│ ├── ag-arquiteto/
|
│ ├── ag-arquiteto/
|
||||||
│ │ └── persona.md ← identidade, escopo, responsabilidades
|
│ │ └── persona ← identidade, escopo, responsabilidades
|
||||||
│ ├── ag-back/
|
│ ├── ag-back/
|
||||||
│ │ ├── persona.md
|
│ │ └── persona
|
||||||
│ │ └── rules/ ← rules específicas do agente
|
|
||||||
│ ├── ag-front/
|
│ ├── ag-front/
|
||||||
│ │ ├── persona.md
|
│ │ ├── persona
|
||||||
│ │ ├── rules/
|
│ │ ├── rules/
|
||||||
│ │ └── workflows/
|
│ │ └── workflows/
|
||||||
|
│ ├── ag-refatorar/
|
||||||
|
│ │ ├── persona
|
||||||
|
│ │ ├── rules/ ← refatoracao-segura, solid-compliance, design-patterns-pragmatico
|
||||||
|
│ │ ├── skills/ ← diagnosticar-code-smells
|
||||||
|
│ │ └── workflows/ ← refatorar-modulo
|
||||||
│ ├── ag-testes/
|
│ ├── ag-testes/
|
||||||
│ ├── ag-deploy/
|
│ ├── ag-deploy/
|
||||||
│ ├── ag-documentacao/
|
│ ├── ag-documentacao/
|
||||||
│ ├── ag-ux/
|
│ ├── ag-ux/
|
||||||
│ ├── ag-comercial/
|
│ ├── ag-comercial/
|
||||||
│ ├── ag-agente/
|
│ └── ag-agente/
|
||||||
│ └── ag-refatorar/
|
|
||||||
│ ├── persona.md
|
|
||||||
│ ├── rules/ ← refatoracao-segura, solid-compliance, design-patterns-pragmatico
|
|
||||||
│ ├── skills/ ← diagnosticar-code-smells
|
|
||||||
│ └── workflows/ ← refatorar-modulo
|
|
||||||
│
|
│
|
||||||
└── adaptadores/ ← conversores por plataforma LLM
|
└── adaptadores/ ← conversores por plataforma LLM
|
||||||
├── antigravity/
|
├── antigravity/
|
||||||
│ └── gerar-agent-json.sh ← gera agent.json para o Antigravity
|
│ └── gerar-agent-json.sh ← gera agent.json para o Antigravity
|
||||||
├── claude/
|
├── claude/
|
||||||
│ └── README.md ← instruções para migração futura
|
│ └── README ← instruções para migração futura
|
||||||
└── openai/
|
└── openai/
|
||||||
└── README.md ← instruções para migração futura
|
└── README ← instruções para migração futura
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Convenção:** artefatos de conhecimento (personas, rules, workflows, skills) não possuem extensão. Scripts (`.sh`) e dados (`.json`) mantêm suas extensões nativas.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Compatibilidade com outras LLMs
|
## Compatibilidade com outras LLMs
|
||||||
|
|
||||||
A estrutura foi projetada para ser **vendor-neutral**:
|
A estrutura foi projetada para ser **vendor-neutral**:
|
||||||
|
|
||||||
- `persona.md` + `global/rules/` + `agents/*/rules/` = **Markdown puro**, funciona com qualquer LLM
|
- `persona` + `global/rules/` + `agents/*/rules/` = **Markdown puro**, funciona com qualquer LLM
|
||||||
- `agent.json` = configuração específica do Antigravity, **gerada automaticamente** pelo script adaptador
|
- `agent.json` = configuração específica do Antigravity, **gerada automaticamente** pelo script adaptador
|
||||||
- Para migrar para outra LLM: criar adaptador em `adaptadores/{nome}/` sem alterar o conhecimento
|
- Para migrar para outra LLM: criar adaptador em `adaptadores/{nome}/` sem alterar o conhecimento
|
||||||
|
|
||||||
|
|
@ -96,7 +101,7 @@ A estrutura foi projetada para ser **vendor-neutral**:
|
||||||
|
|
||||||
## Orquestração entre agentes
|
## Orquestração entre agentes
|
||||||
|
|
||||||
Consulte a skill `global/skills/orquestrar-agentes/SKILL.md` para o protocolo completo de colaboração.
|
Consulte a skill `global/skills/orquestrar-agentes/SKILL` para o protocolo completo de colaboração.
|
||||||
|
|
||||||
Sequência padrão para uma nova feature:
|
Sequência padrão para uma nova feature:
|
||||||
|
|
||||||
|
|
@ -114,7 +119,7 @@ Sequência padrão para uma nova feature:
|
||||||
|
|
||||||
## Distribuição para módulos
|
## Distribuição para módulos
|
||||||
|
|
||||||
Para copiar os artefatos do `.agent/` para um módulo do e-licencie:
|
Para copiar os artefatos do `.agent/` para um módulo:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sh .agent/atualizar-agente.sh
|
sh .agent/atualizar-agente.sh
|
||||||
210
EXTEND
Normal file
210
EXTEND
Normal file
|
|
@ -0,0 +1,210 @@
|
||||||
|
# Como usar o .agent como submodulo git
|
||||||
|
|
||||||
|
O repositório `.agent` é adicionado como **git submodule** em cada projeto.
|
||||||
|
Isso garante controle de versão, rollback seguro e atualizações rastreáveis.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Estrutura em um projeto filho
|
||||||
|
|
||||||
|
```
|
||||||
|
meu-modulo/
|
||||||
|
├── .agent/ ← git submodule (este repo — nunca editar diretamente)
|
||||||
|
│ ├── global/
|
||||||
|
│ ├── agents/
|
||||||
|
│ ├── adaptadores/
|
||||||
|
│ ├── AGENTS
|
||||||
|
│ ├── EXTEND
|
||||||
|
│ └── ...
|
||||||
|
├── .agent-local/ ← suas extensões (commitar no projeto)
|
||||||
|
│ ├── rules/
|
||||||
|
│ ├── workflows/
|
||||||
|
│ ├── skills/
|
||||||
|
│ ├── agents/
|
||||||
|
│ └── manifesto-local.json
|
||||||
|
└── .gitmodules ← gerado pelo git ao adicionar submodulo
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Configuração inicial (uma vez por projeto)
|
||||||
|
|
||||||
|
### 1. Adicionar o .agent como submodulo
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Na raiz do projeto
|
||||||
|
git submodule add https://git2.idz.one/publico/.agent.git .agent
|
||||||
|
git submodule update --init --recursive
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Criar a estrutura local
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkdir -p .agent-local/rules
|
||||||
|
mkdir -p .agent-local/workflows
|
||||||
|
mkdir -p .agent-local/skills
|
||||||
|
mkdir -p .agent-local/agents
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Criar o `manifesto-local.json`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp .agent/manifesto-local.template.json .agent-local/manifesto-local.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Editar o arquivo:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"submodulo": ".agent",
|
||||||
|
"projeto": "sigma2026",
|
||||||
|
"descricao": "Módulo de monitoramento ambiental",
|
||||||
|
"versao": "1.0.0",
|
||||||
|
"local": {
|
||||||
|
"rules": [
|
||||||
|
"rules/dominio-ambiental"
|
||||||
|
],
|
||||||
|
"workflows": [],
|
||||||
|
"skills": [
|
||||||
|
"skills/criar-funcao-api/SKILL"
|
||||||
|
],
|
||||||
|
"agents": {
|
||||||
|
"ag-back": {
|
||||||
|
"persona-local": "agents/ag-back/persona-local",
|
||||||
|
"rules": [
|
||||||
|
"agents/ag-back/rules/knex-padrao"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Configurar `.gitignore`
|
||||||
|
|
||||||
|
```gitignore
|
||||||
|
# O .agent/ é submodulo — gerenciado pelo git automaticamente
|
||||||
|
# Nada a ignorar; .agent-local/ é commitado normalmente
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Como atualizar o .agent no futuro
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd .agent
|
||||||
|
git pull origin main
|
||||||
|
cd ..
|
||||||
|
git add .agent
|
||||||
|
git commit -m "chore: atualizar .agent para versão mais recente"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Como fazer override de um agente
|
||||||
|
|
||||||
|
Crie `persona-local` em `.agent-local/agents/{agente}/`:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
name: ag-back
|
||||||
|
extends: .agent/agents/ag-back/persona
|
||||||
|
project: sigma2026
|
||||||
|
---
|
||||||
|
|
||||||
|
# Extensão: @ag-back para sigma2026
|
||||||
|
|
||||||
|
## Contexto adicional do projeto
|
||||||
|
|
||||||
|
- PostgreSQL com PostGIS (coordenadas geográficas)
|
||||||
|
- JSONB para características variáveis por tipo de monitoramento
|
||||||
|
- Padrão `zBaseTabelaPadrao` do sigma-comuns
|
||||||
|
|
||||||
|
## Regras adicionais
|
||||||
|
|
||||||
|
- Toda query de coordenadas usa funções PostGIS
|
||||||
|
- O campo `info` é cache descartável — não é fonte primária
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Como adicionar uma rule local
|
||||||
|
|
||||||
|
Crie em `.agent-local/rules/`:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
name: dominio-ambiental
|
||||||
|
description: Vocabulário e padrões do domínio ambiental para o sigma2026
|
||||||
|
scope: local
|
||||||
|
---
|
||||||
|
|
||||||
|
# Regra: Domínio Ambiental (sigma2026)
|
||||||
|
|
||||||
|
## Contexto
|
||||||
|
...
|
||||||
|
|
||||||
|
## Regra
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Declare no `manifesto-local.json`:
|
||||||
|
```json
|
||||||
|
"local": {
|
||||||
|
"rules": ["rules/dominio-ambiental"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Precedência de artefatos
|
||||||
|
|
||||||
|
```
|
||||||
|
.agent-local/ > .agent/ (base)
|
||||||
|
```
|
||||||
|
|
||||||
|
| Situação | Resultado |
|
||||||
|
|----------|-----------|
|
||||||
|
| Artefato só em `.agent/` | Usa o base |
|
||||||
|
| Artefato só em `.agent-local/` | Usa o local |
|
||||||
|
| Artefato em ambos | `.agent-local/` tem prioridade |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Pinagem de versão (segurança)
|
||||||
|
|
||||||
|
O submodulo fica travado em um commit específico do .agent.
|
||||||
|
Para atualizar para uma versão específica:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd .agent
|
||||||
|
git checkout v3.0.0 # travar em tag
|
||||||
|
# ou
|
||||||
|
git checkout main # usar sempre o mais recente
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
git add .agent
|
||||||
|
git commit -m "chore: atualizar .agent para v3.0.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## O que commitar no projeto filho
|
||||||
|
|
||||||
|
```
|
||||||
|
✅ Commitar:
|
||||||
|
.agent-local/ (todas as extensões locais)
|
||||||
|
.gitmodules (referência ao submodulo)
|
||||||
|
|
||||||
|
❌ Não commitar (gerenciado pelo git submodule):
|
||||||
|
.agent/ (é submodulo — referência automática)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Compatibilidade com múltiplas LLMs
|
||||||
|
|
||||||
|
O modelo de herança funciona com qualquer LLM:
|
||||||
|
- `.agent-local/` e `.agent/` são **Markdown puro** (sem extensão)
|
||||||
|
- `manifesto-local.json` é **JSON genérico**
|
||||||
|
- Para gerar config nativa de uma LLM: use `.agent/adaptadores/{llm}/`
|
||||||
227
EXTEND.md
227
EXTEND.md
|
|
@ -1,227 +0,0 @@
|
||||||
# Como usar o AGENT-IA como submodulo git
|
|
||||||
|
|
||||||
O AGENT-IA é adicionado como **git submodule** em cada projeto filho.
|
|
||||||
Isso garante controle de versão, rollback seguro e atualizações rastreáveis.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Estrutura em um projeto filho
|
|
||||||
|
|
||||||
```
|
|
||||||
meu-modulo/
|
|
||||||
├── .agent/
|
|
||||||
│ ├── base/ ← git submodule (AGENT-IA repo — nunca editar)
|
|
||||||
│ │ └── .agent/
|
|
||||||
│ │ ├── global/
|
|
||||||
│ │ ├── agents/
|
|
||||||
│ │ ├── adaptadores/
|
|
||||||
│ │ └── ...
|
|
||||||
│ ├── local/ ← suas extensões (commitar no projeto)
|
|
||||||
│ │ ├── rules/
|
|
||||||
│ │ ├── workflows/
|
|
||||||
│ │ ├── skills/
|
|
||||||
│ │ └── agents/
|
|
||||||
│ ├── inherited/ ← cópia sincronizada do base (git-ignored)
|
|
||||||
│ ├── manifesto-local.json
|
|
||||||
│ └── atualizar-agente.sh
|
|
||||||
└── .gitmodules ← gerado pelo git ao adicionar submodulo
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Configuração inicial (uma vez por projeto)
|
|
||||||
|
|
||||||
### 1. Adicionar o AGENT-IA como submodulo
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Na raiz do projeto
|
|
||||||
git submodule add https://git2.idz.one/publico/.agent.git .agent/base
|
|
||||||
git submodule update --init --recursive
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Criar a estrutura local
|
|
||||||
|
|
||||||
```sh
|
|
||||||
mkdir -p .agent/local/rules
|
|
||||||
mkdir -p .agent/local/workflows
|
|
||||||
mkdir -p .agent/local/skills
|
|
||||||
mkdir -p .agent/local/agents
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Criar o `manifesto-local.json`
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cp .agent/base/.agent/manifesto-local.template.json .agent/manifesto-local.json
|
|
||||||
```
|
|
||||||
|
|
||||||
Editar o arquivo:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"submodulo": ".agent/base",
|
|
||||||
"projeto": "sigma2026",
|
|
||||||
"descricao": "Módulo de monitoramento ambiental",
|
|
||||||
"versao": "1.0.0",
|
|
||||||
"local": {
|
|
||||||
"rules": [
|
|
||||||
"local/rules/dominio-ambiental.md"
|
|
||||||
],
|
|
||||||
"workflows": [],
|
|
||||||
"skills": [
|
|
||||||
"local/skills/criar-funcao-api/SKILL.md"
|
|
||||||
],
|
|
||||||
"agents": {
|
|
||||||
"ag-back": {
|
|
||||||
"persona-local": "local/agents/ag-back/persona-local.md",
|
|
||||||
"rules": [
|
|
||||||
"local/agents/ag-back/rules/knex-padrao.md"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Copiar e executar o script de sincronização
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cp .agent/base/.agent/atualizar-agente.sh .agent/atualizar-agente.sh
|
|
||||||
chmod +x .agent/atualizar-agente.sh
|
|
||||||
sh .agent/atualizar-agente.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Isso popula `.agent/inherited/` com os artefatos do base, sem tocar em `local/`.
|
|
||||||
|
|
||||||
### 5. Configurar `.gitignore`
|
|
||||||
|
|
||||||
```gitignore
|
|
||||||
# Artefatos sincronizados do submodulo — regenerados automaticamente
|
|
||||||
.agent/inherited/
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Como atualizar o base no futuro
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Atualiza o submodulo para o commit mais recente e sincroniza
|
|
||||||
sh .agent/atualizar-agente.sh
|
|
||||||
|
|
||||||
# Só atualiza o git sem sincronizar (verificar antes)
|
|
||||||
sh .agent/atualizar-agente.sh --no-pull --dry-run
|
|
||||||
|
|
||||||
# Atualiza sem fazer pull (usar conteúdo atual do submodulo)
|
|
||||||
sh .agent/atualizar-agente.sh --no-pull
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Como fazer override de um agente
|
|
||||||
|
|
||||||
Crie `persona-local.md` em `local/agents/{agente}/`:
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
---
|
|
||||||
name: ag-back
|
|
||||||
extends: inherited/agents/ag-back/persona.md
|
|
||||||
project: sigma2026
|
|
||||||
---
|
|
||||||
|
|
||||||
# Extensão: @ag-back para sigma2026
|
|
||||||
|
|
||||||
## Contexto adicional do projeto
|
|
||||||
|
|
||||||
- PostgreSQL com PostGIS (coordenadas geográficas)
|
|
||||||
- JSONB para características variáveis por tipo de monitoramento
|
|
||||||
- Padrão `zBaseTabelaPadrao` do sigma-comuns
|
|
||||||
|
|
||||||
## Regras adicionais
|
|
||||||
|
|
||||||
- Toda query de coordenadas usa funções PostGIS
|
|
||||||
- O campo `info` é cache descartável — não é fonte primária
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Como adicionar uma rule local
|
|
||||||
|
|
||||||
Crie em `local/rules/`:
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
---
|
|
||||||
name: dominio-ambiental
|
|
||||||
description: Vocabulário e padrões do domínio ambiental para o sigma2026
|
|
||||||
scope: local
|
|
||||||
---
|
|
||||||
|
|
||||||
# Regra: Domínio Ambiental (sigma2026)
|
|
||||||
|
|
||||||
## Contexto
|
|
||||||
...
|
|
||||||
|
|
||||||
## Regra
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
Declare no `manifesto-local.json`:
|
|
||||||
```json
|
|
||||||
"local": {
|
|
||||||
"rules": ["local/rules/dominio-ambiental.md"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Precedência de artefatos
|
|
||||||
|
|
||||||
```
|
|
||||||
local/ > inherited/ (base)
|
|
||||||
```
|
|
||||||
|
|
||||||
| Situação | Resultado |
|
|
||||||
|----------|-----------|
|
|
||||||
| Artefato só em `inherited/` | Usa o base |
|
|
||||||
| Artefato só em `local/` | Usa o local |
|
|
||||||
| Artefato em ambos | `local/` tem prioridade |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Pinagem de versão (segurança)
|
|
||||||
|
|
||||||
O submodulo fica travado em um commit específico do AGENT-IA.
|
|
||||||
Para atualizar para uma versão específica:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd .agent/base
|
|
||||||
git checkout v2.1.0 # travar em tag
|
|
||||||
# ou
|
|
||||||
git checkout main # usar sempre o mais recente
|
|
||||||
|
|
||||||
cd ../..
|
|
||||||
git add .agent/base
|
|
||||||
git commit -m "chore: atualizar agent-ia para v2.1.0"
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## O que commitar no projeto filho
|
|
||||||
|
|
||||||
```
|
|
||||||
✅ Commitar:
|
|
||||||
.agent/manifesto-local.json
|
|
||||||
.agent/atualizar-agente.sh
|
|
||||||
.agent/local/ (todas as extensões locais)
|
|
||||||
.gitmodules (referência ao submodulo)
|
|
||||||
|
|
||||||
❌ Não commitar (adicionar ao .gitignore):
|
|
||||||
.agent/inherited/ (sincronizado automaticamente)
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Compatibilidade com múltiplas LLMs
|
|
||||||
|
|
||||||
O modelo de herança funciona com qualquer LLM:
|
|
||||||
- `local/` e `inherited/` são **Markdown puro**
|
|
||||||
- `manifesto-local.json` é **JSON genérico**
|
|
||||||
- Para gerar config nativa de uma LLM: use `inherited/adaptadores/{llm}/`
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# AGENT-IA — Base de Conhecimento dos Agentes Azteca
|
# .agent — Base de Conhecimento dos Agentes Azteca
|
||||||
|
|
||||||
Repositório central de conhecimento para os agentes de IA do ecossistema Azteca.
|
Repositório central de conhecimento para os agentes de IA do ecossistema Azteca.
|
||||||
Usado como **git submodule** nos módulos do e-licencie e demais projetos.
|
Usado como **git submodule** `.agent` nos monorepos.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -10,25 +10,27 @@ Usado como **git submodule** nos módulos do e-licencie e demais projetos.
|
||||||
1. **Multiagente** — 10 agentes especializados com escopo e responsabilidades bem definidos
|
1. **Multiagente** — 10 agentes especializados com escopo e responsabilidades bem definidos
|
||||||
2. **Aprendizado contínuo** — conhecimento evolui a cada sessão via workflow `aprimorar-IA`
|
2. **Aprendizado contínuo** — conhecimento evolui a cada sessão via workflow `aprimorar-IA`
|
||||||
3. **Vendor-neutral** — arquitetura em Markdown puro, compatível com qualquer LLM
|
3. **Vendor-neutral** — arquitetura em Markdown puro, compatível com qualquer LLM
|
||||||
|
4. **Sem extensões** — artefatos de conhecimento não possuem extensão de arquivo
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Estrutura do repositório
|
## Estrutura do repositório
|
||||||
|
|
||||||
```
|
```
|
||||||
.agent-ia/ ← raiz do repositório (submodulo)
|
.agent/ ← raiz do repositório (submodulo)
|
||||||
├── AGENTS.md ← ponto de entrada: como acionar agentes
|
├── AGENTS ← ponto de entrada: como acionar agentes
|
||||||
├── EXTEND.md ← como projetos filhos herdam e estendem
|
├── EXTEND ← como projetos filhos herdam e estendem
|
||||||
|
├── README ← este arquivo
|
||||||
|
├── TOOLS ← ferramentas CLI recomendadas
|
||||||
├── manifesto.json ← inventário de todos os artefatos
|
├── manifesto.json ← inventário de todos os artefatos
|
||||||
├── manifesto-local.template.json ← template para projetos filhos
|
├── manifesto-local.template.json ← template para projetos filhos
|
||||||
├── gerar-manifesto.sh ← gera manifesto.json via auto-discovery
|
├── gerar-manifesto.sh ← gera manifesto.json via auto-discovery
|
||||||
├── atualizar-agente.sh ← sincroniza inherited/ nos projetos filhos
|
├── atualizar-agente.sh ← sincroniza inherited/ nos projetos filhos
|
||||||
├── tools.md ← ferramentas CLI recomendadas
|
|
||||||
├── verificar-linhas.sh ← governance: limite de 250 linhas
|
├── verificar-linhas.sh ← governance: limite de 250 linhas
|
||||||
│
|
│
|
||||||
├── global/ ← herdado por TODOS os agentes
|
├── global/ ← herdado por TODOS os agentes
|
||||||
│ ├── rules/ ← 7 regras universais
|
│ ├── rules/ ← 11 regras universais
|
||||||
│ ├── workflows/ ← 3 workflows globais
|
│ ├── workflows/ ← 4 workflows globais
|
||||||
│ └── skills/ ← 7 skills globais
|
│ └── skills/ ← 7 skills globais
|
||||||
│
|
│
|
||||||
├── agents/ ← definição dos 10 agentes
|
├── agents/ ← definição dos 10 agentes
|
||||||
|
|
@ -72,24 +74,23 @@ Usado como **git submodule** nos módulos do e-licencie e demais projetos.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Adicionar como submodulo
|
# Adicionar como submodulo
|
||||||
git submodule add https://git2.idz.one/publico/.agent.git .agent/base
|
git submodule add https://git2.idz.one/publico/.agent.git .agent
|
||||||
|
|
||||||
# Inicializar
|
# Inicializar
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
|
||||||
# Configurar o projeto
|
# Configurar o projeto
|
||||||
cp .agent/base/manifesto-local.template.json .agent/manifesto-local.json
|
cp .agent/manifesto-local.template.json .agent/manifesto-local.json
|
||||||
# editar: definir "projeto" e extensões locais
|
# editar: definir "projeto" e extensões locais
|
||||||
|
|
||||||
# Sincronizar artefatos
|
# Sincronizar artefatos
|
||||||
cp .agent/base/atualizar-agente.sh .agent/atualizar-agente.sh
|
|
||||||
sh .agent/atualizar-agente.sh
|
sh .agent/atualizar-agente.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Cada projeto mantém sua própria pasta `.agent/local/` com extensões específicas.
|
Cada projeto mantém sua própria pasta `.agent/local/` com extensões específicas.
|
||||||
O base em `.agent/inherited/` é sincronizado automaticamente e nunca editado.
|
O base em `.agent/inherited/` é sincronizado automaticamente e nunca editado.
|
||||||
|
|
||||||
Veja `EXTEND.md` para o guia completo de herança e customização.
|
Veja `EXTEND` para o guia completo de herança e customização.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -105,7 +106,7 @@ sh .agent/atualizar-agente.sh
|
||||||
|
|
||||||
| Camada | Formato | Portabilidade |
|
| Camada | Formato | Portabilidade |
|
||||||
|--------|---------|---------------|
|
|--------|---------|---------------|
|
||||||
| `global/` + `agents/*/persona.md` | Markdown puro | ✅ 100% — qualquer LLM |
|
| `global/` + `agents/*/persona` | Markdown puro | ✅ 100% — qualquer LLM |
|
||||||
| `agents/*/agent.json` | JSON Antigravity | 🔄 Regenerável via adaptador |
|
| `agents/*/agent.json` | JSON Antigravity | 🔄 Regenerável via adaptador |
|
||||||
| `adaptadores/` | Shell scripts | ✅ Independente de LLM |
|
| `adaptadores/` | Shell scripts | ✅ Independente de LLM |
|
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# gerar-agent-json.sh — Adaptador Antigravity
|
# gerar-agent-json.sh — Adaptador Antigravity
|
||||||
# Gera o agent.json de cada agente a partir do persona.md
|
# Gera o agent.json de cada agente a partir do persona
|
||||||
#
|
#
|
||||||
# Uso:
|
# Uso:
|
||||||
# ./gerar-agent-json.sh # gera para todos os agentes
|
# ./gerar-agent-json.sh # gera para todos os agentes
|
||||||
|
|
@ -16,7 +16,7 @@ GLOBAL_RULES_DIR="$(cd "$(dirname "$0")/../.." && pwd)/global/rules"
|
||||||
|
|
||||||
gerar_para_agente() {
|
gerar_para_agente() {
|
||||||
AGENTE="$1"
|
AGENTE="$1"
|
||||||
PERSONA="$AGENTS_DIR/$AGENTE/persona.md"
|
PERSONA="$AGENTS_DIR/$AGENTE/persona"
|
||||||
|
|
||||||
if [ ! -f "$PERSONA" ]; then
|
if [ ! -f "$PERSONA" ]; then
|
||||||
echo "⚠ Persona não encontrada: $PERSONA"
|
echo "⚠ Persona não encontrada: $PERSONA"
|
||||||
|
|
@ -31,22 +31,25 @@ gerar_para_agente() {
|
||||||
DESCRIPTION=$(echo "$FRONTMATTER" | yq '.description' 2>/dev/null || echo "")
|
DESCRIPTION=$(echo "$FRONTMATTER" | yq '.description' 2>/dev/null || echo "")
|
||||||
TOOLS=$(echo "$FRONTMATTER" | yq '.tools[]' 2>/dev/null | tr '\n' ',' | sed 's/,$//')
|
TOOLS=$(echo "$FRONTMATTER" | yq '.tools[]' 2>/dev/null | tr '\n' ',' | sed 's/,$//')
|
||||||
|
|
||||||
# Ler corpo do persona.md (após o segundo ---)
|
# Ler corpo do persona (após o segundo ---)
|
||||||
BODY=$(awk '/^---$/{c++; next} c>=2' "$PERSONA")
|
BODY=$(awk '/^---$/{c++; next} c>=2' "$PERSONA")
|
||||||
|
|
||||||
# Ler rules globais
|
# Ler rules globais
|
||||||
GLOBAL_RULES=""
|
GLOBAL_RULES=""
|
||||||
for rule_file in "$GLOBAL_RULES_DIR"/*.md; do
|
for rule_file in "$GLOBAL_RULES_DIR"/*; do
|
||||||
GLOBAL_RULES="$GLOBAL_RULES\n\n### $(basename "$rule_file" .md)\n$(cat "$rule_file")"
|
[ -f "$rule_file" ] || continue
|
||||||
|
case "$rule_file" in *.sh|*.json) continue ;; esac
|
||||||
|
GLOBAL_RULES="$GLOBAL_RULES\n\n### $(basename "$rule_file")\n$(cat "$rule_file")"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Ler rules do agente
|
# Ler rules do agente
|
||||||
AGENT_RULES=""
|
AGENT_RULES=""
|
||||||
AGENT_RULES_DIR="$AGENTS_DIR/$AGENTE/rules"
|
AGENT_RULES_DIR="$AGENTS_DIR/$AGENTE/rules"
|
||||||
if [ -d "$AGENT_RULES_DIR" ]; then
|
if [ -d "$AGENT_RULES_DIR" ]; then
|
||||||
for rule_file in "$AGENT_RULES_DIR"/*.md; do
|
for rule_file in "$AGENT_RULES_DIR"/*; do
|
||||||
[ -f "$rule_file" ] || continue
|
[ -f "$rule_file" ] || continue
|
||||||
AGENT_RULES="$AGENT_RULES\n\n### $(basename "$rule_file" .md)\n$(cat "$rule_file")"
|
case "$rule_file" in *.sh|*.json) continue ;; esac
|
||||||
|
AGENT_RULES="$AGENT_RULES\n\n### $(basename "$rule_file")\n$(cat "$rule_file")"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
> **Status:** 🟡 Preparado — implementação futura
|
> **Status:** 🟡 Preparado — implementação futura
|
||||||
|
|
||||||
Este diretório conterá o adaptador para gerar configurações nativas do Claude a partir dos arquivos `persona.md` dos agentes.
|
Este diretório conterá o adaptador para gerar configurações nativas do Claude a partir dos arquivos `persona` dos agentes.
|
||||||
|
|
||||||
## Como funciona a arquitetura
|
## Como funciona a arquitetura
|
||||||
|
|
||||||
A camada universal (arquivos `persona.md`, `global/rules/`, `agents/*/rules/`) é escrita em Markdown puro e é **independente de plataforma**. Cada adaptador lê essa camada universal e gera a configuração específica para cada LLM.
|
A camada universal (arquivos `persona`, `global/rules/`, `agents/*/rules/`) é escrita em Markdown puro e é **independente de plataforma**. Cada adaptador lê essa camada universal e gera a configuração específica para cada LLM.
|
||||||
|
|
||||||
## Implementação futura
|
## Implementação futura
|
||||||
|
|
||||||
|
|
@ -14,9 +14,9 @@ Quando for necessário migrar para Claude:
|
||||||
|
|
||||||
1. Criar `gerar-claude-config.sh` neste diretório
|
1. Criar `gerar-claude-config.sh` neste diretório
|
||||||
2. O script deve ler:
|
2. O script deve ler:
|
||||||
- `agents/{nome}/persona.md` → corpo do system prompt
|
- `agents/{nome}/persona` → corpo do system prompt
|
||||||
- `global/rules/*.md` → rules herdadas por todos
|
- `global/rules/*` → rules herdadas por todos
|
||||||
- `agents/{nome}/rules/*.md` → rules específicas do agente
|
- `agents/{nome}/rules/*` → rules específicas do agente
|
||||||
3. Gerar o formato de configuração nativo do Claude (`.claude/` directory ou API system prompt)
|
3. Gerar o formato de configuração nativo do Claude (`.claude/` directory ou API system prompt)
|
||||||
4. **Zero alteração** nos arquivos de `global/` ou `agents/`
|
4. **Zero alteração** nos arquivos de `global/` ou `agents/`
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@ Quando for necessário migrar para Claude:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"system": "...(conteúdo do persona.md + rules concatenadas)...",
|
"system": "...(conteúdo do persona + rules concatenadas)...",
|
||||||
"tools": [...],
|
"tools": [...],
|
||||||
"model": "claude-opus-4-5"
|
"model": "claude-opus-4-5"
|
||||||
}
|
}
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
> **Status:** 🟡 Preparado — implementação futura
|
> **Status:** 🟡 Preparado — implementação futura
|
||||||
|
|
||||||
Este diretório conterá o adaptador para gerar configurações nativas do OpenAI (GPT-4, GPT-4o, etc.) a partir dos arquivos `persona.md` dos agentes.
|
Este diretório conterá o adaptador para gerar configurações nativas do OpenAI (GPT-4, GPT-4o, etc.) a partir dos arquivos `persona` dos agentes.
|
||||||
|
|
||||||
## Como funciona a arquitetura
|
## Como funciona a arquitetura
|
||||||
|
|
||||||
A camada universal (arquivos `persona.md`, `global/rules/`, `agents/*/rules/`) é escrita em Markdown puro e é **independente de plataforma**. Cada adaptador lê essa camada universal e gera a configuração específica para cada LLM.
|
A camada universal (arquivos `persona`, `global/rules/`, `agents/*/rules/`) é escrita em Markdown puro e é **independente de plataforma**. Cada adaptador lê essa camada universal e gera a configuração específica para cada LLM.
|
||||||
|
|
||||||
## Implementação futura
|
## Implementação futura
|
||||||
|
|
||||||
|
|
@ -14,9 +14,9 @@ Quando for necessário migrar para OpenAI:
|
||||||
|
|
||||||
1. Criar `gerar-openai-config.sh` neste diretório
|
1. Criar `gerar-openai-config.sh` neste diretório
|
||||||
2. O script deve ler:
|
2. O script deve ler:
|
||||||
- `agents/{nome}/persona.md` → corpo do system prompt
|
- `agents/{nome}/persona` → corpo do system prompt
|
||||||
- `global/rules/*.md` → rules herdadas por todos
|
- `global/rules/*` → rules herdadas por todos
|
||||||
- `agents/{nome}/rules/*.md` → rules específicas do agente
|
- `agents/{nome}/rules/*` → rules específicas do agente
|
||||||
3. Gerar o formato de Assistants API ou Custom GPT do OpenAI
|
3. Gerar o formato de Assistants API ou Custom GPT do OpenAI
|
||||||
4. **Zero alteração** nos arquivos de `global/` ou `agents/`
|
4. **Zero alteração** nos arquivos de `global/` ou `agents/`
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ Quando for necessário migrar para OpenAI:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "ag-back",
|
"name": "ag-back",
|
||||||
"instructions": "...(conteúdo do persona.md + rules concatenadas)...",
|
"instructions": "...(conteúdo do persona + rules concatenadas)...",
|
||||||
"tools": [{"type": "code_interpreter"}, {"type": "file_search"}],
|
"tools": [{"type": "code_interpreter"}, {"type": "file_search"}],
|
||||||
"model": "gpt-4o"
|
"model": "gpt-4o"
|
||||||
}
|
}
|
||||||
|
|
@ -30,15 +30,15 @@ Enquanto os outros agentes trabalham **no** produto, você trabalha **no** siste
|
||||||
## Escopo de Atuação
|
## Escopo de Atuação
|
||||||
|
|
||||||
- Repositório AGENT-IA (`global/`, `agents/`, `adaptadores/`)
|
- Repositório AGENT-IA (`global/`, `agents/`, `adaptadores/`)
|
||||||
- Personas de agentes (`agents/*/persona.md`)
|
- Personas de agentes (`agents/*/persona`)
|
||||||
- Rules, workflows e skills (globais e por agente)
|
- Rules, workflows e skills (globais e por agente)
|
||||||
- Scripts de governança (`gerar-manifesto.sh`, `atualizar-agente.sh`, `verificar-linhas.sh`)
|
- Scripts de governança (`gerar-manifesto.sh`, `atualizar-agente.sh`, `verificar-linhas.sh`)
|
||||||
- Adaptadores por plataforma LLM
|
- Adaptadores por plataforma LLM
|
||||||
- Manifesto e documentação do ecossistema (`AGENTS.md`, `EXTEND.md`, `readme.md`)
|
- Manifesto e documentação do ecossistema (`AGENTS`, `EXTEND`, `README`)
|
||||||
|
|
||||||
## Responsabilidades
|
## Responsabilidades
|
||||||
|
|
||||||
1. **Criar novos agentes** — escrever `persona.md` completo e coerente com os padrões estabelecidos
|
1. **Criar novos agentes** — escrever `persona` completo e coerente com os padrões estabelecidos
|
||||||
2. **Melhorar agentes existentes** — revisar e atualizar personas com base em feedbacks e boas práticas
|
2. **Melhorar agentes existentes** — revisar e atualizar personas com base em feedbacks e boas práticas
|
||||||
3. **Organizar artefatos** — garantir que rules, workflows e skills estejam no lugar certo (global vs agente específico)
|
3. **Organizar artefatos** — garantir que rules, workflows e skills estejam no lugar certo (global vs agente específico)
|
||||||
4. **Eliminar redundâncias** — identificar e remover duplicações entre artefatos
|
4. **Eliminar redundâncias** — identificar e remover duplicações entre artefatos
|
||||||
|
|
@ -50,7 +50,7 @@ Enquanto os outros agentes trabalham **no** produto, você trabalha **no** siste
|
||||||
|
|
||||||
## Padrões obrigatórios que deve conhecer
|
## Padrões obrigatórios que deve conhecer
|
||||||
|
|
||||||
### Frontmatter de `persona.md`
|
### Frontmatter de `persona`
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
name: ag-nome
|
name: ag-nome
|
||||||
|
|
@ -121,8 +121,8 @@ Antes de criar, verificar:
|
||||||
- [ ] O escopo é claramente diferente dos 8 agentes existentes?
|
- [ ] O escopo é claramente diferente dos 8 agentes existentes?
|
||||||
- [ ] A persona tem: Identidade, Escopo, Responsabilidades, Restrições, Colaborações, Checklist?
|
- [ ] A persona tem: Identidade, Escopo, Responsabilidades, Restrições, Colaborações, Checklist?
|
||||||
- [ ] Está claro com quais agentes ele colabora (recebe de / entrega para)?
|
- [ ] Está claro com quais agentes ele colabora (recebe de / entrega para)?
|
||||||
- [ ] `AGENTS.md` foi atualizado?
|
- [ ] `AGENTS` foi atualizado?
|
||||||
- [ ] `readme.md` foi atualizado?
|
- [ ] `README` foi atualizado?
|
||||||
- [ ] `manifesto.json` foi regerado?
|
- [ ] `manifesto.json` foi regerado?
|
||||||
|
|
||||||
## Manutenção periódica
|
## Manutenção periódica
|
||||||
|
|
@ -161,9 +161,9 @@ Exemplos de divergência a detectar:
|
||||||
**Como verificar:**
|
**Como verificar:**
|
||||||
```sh
|
```sh
|
||||||
# Buscar padrões comuns entre personas
|
# Buscar padrões comuns entre personas
|
||||||
grep -r "NUNCA" agents/*/persona.md
|
grep -r "NUNCA" agents/*/persona
|
||||||
grep -r "NÃO " agents/*/persona.md
|
grep -r "NÃO " agents/*/persona
|
||||||
grep -r "sempre" agents/*/persona.md
|
grep -r "sempre" agents/*/persona
|
||||||
```
|
```
|
||||||
Ler os resultados comparando se as restrições e permissões são coerentes entre si.
|
Ler os resultados comparando se as restrições e permissões são coerentes entre si.
|
||||||
|
|
||||||
|
|
@ -225,7 +225,7 @@ Algumas aparentes sobreposições são **intencionais**:
|
||||||
- [ ] Referências cruzadas são válidas?
|
- [ ] Referências cruzadas são válidas?
|
||||||
- [ ] Não há duplicações entre global e agente específico?
|
- [ ] Não há duplicações entre global e agente específico?
|
||||||
- [ ] `manifesto.json` foi regerado (`sh gerar-manifesto.sh`)?
|
- [ ] `manifesto.json` foi regerado (`sh gerar-manifesto.sh`)?
|
||||||
- [ ] `AGENTS.md` e `readme.md` refletem a mudança?
|
- [ ] `AGENTS` e `README` refletem a mudança?
|
||||||
- [ ] Mudanças foram commitadas com mensagem descritiva?
|
- [ ] Mudanças foram commitadas com mensagem descritiva?
|
||||||
|
|
||||||
## Checklist de auditoria de consistência (executar após criar/alterar personas)
|
## Checklist de auditoria de consistência (executar após criar/alterar personas)
|
||||||
|
|
@ -247,4 +247,4 @@ Todo agente ao revisar código deve garantir que feedbacks importantes não fiqu
|
||||||
- [ ] **Backend:** erros internos são traduzidos antes de chegar ao cliente? Stack trace nunca vaza para o frontend?
|
- [ ] **Backend:** erros internos são traduzidos antes de chegar ao cliente? Stack trace nunca vaza para o frontend?
|
||||||
- [ ] **Fila (se aplicável):** há handler configurado para `failed` e `error` nos jobs? Falhas de jobs são registradas com jobId, tentativas e payload relevante?
|
- [ ] **Fila (se aplicável):** há handler configurado para `failed` e `error` nos jobs? Falhas de jobs são registradas com jobId, tentativas e payload relevante?
|
||||||
|
|
||||||
> Referência: `global/rules/feedback-visivel.md`
|
> Referência: `global/rules/feedback-visivel`
|
||||||
|
|
@ -10,7 +10,7 @@ updatedAt: "2026-06-01"
|
||||||
|
|
||||||
Este workflow gera uma descrição comercial de funcionalidades ou do sistema completo, escrita na pasta `./COMERCIAL/`. Cada módulo ou funcionalidade gera um arquivo separado com o padrão `./COMERCIAL/<nome-do-modulo>.md`.
|
Este workflow gera uma descrição comercial de funcionalidades ou do sistema completo, escrita na pasta `./COMERCIAL/`. Cada módulo ou funcionalidade gera um arquivo separado com o padrão `./COMERCIAL/<nome-do-modulo>.md`.
|
||||||
|
|
||||||
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural.md`) em toda produção textual deste workflow.
|
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural`) em toda produção textual deste workflow.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ O arquivo `./COMERCIAL/<nome-do-modulo>.md` deve seguir esta estrutura:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/escrita-natural.md` (padrão obrigatório de redação)
|
- Rule: `global/rules/escrita-natural` (padrão obrigatório de redação)
|
||||||
- Workflow: `agents/ag-comercial/workflows/orcamento.md` (texto para documentos de orçamento e proposta — apresentação + lista de funcionalidades)
|
- Workflow: `agents/ag-comercial/workflows/orcamento` (texto para documentos de orçamento e proposta — apresentação + lista de funcionalidades)
|
||||||
- Workflow: `agents/ag-comercial/workflows/marketing.md` (peças de marketing digital — LinkedIn, Instagram, WhatsApp, E-mail)
|
- Workflow: `agents/ag-comercial/workflows/marketing` (peças de marketing digital — LinkedIn, Instagram, WhatsApp, E-mail)
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md` (para documentação técnica, não comercial)
|
- Workflow: `global/workflows/otimizar-codigos` (para documentação técnica, não comercial)
|
||||||
|
|
@ -10,7 +10,7 @@ updatedAt: "2026-06-01"
|
||||||
|
|
||||||
Este workflow gera peças de marketing digital prontas para uso em canais como LinkedIn, Instagram, WhatsApp e E-mail. O resultado é salvo na pasta `./COMERCIAL/` junto ao arquivo comercial do módulo correspondente, ou em arquivo separado `./COMERCIAL/<nome-do-modulo>-marketing.md`.
|
Este workflow gera peças de marketing digital prontas para uso em canais como LinkedIn, Instagram, WhatsApp e E-mail. O resultado é salvo na pasta `./COMERCIAL/` junto ao arquivo comercial do módulo correspondente, ou em arquivo separado `./COMERCIAL/<nome-do-modulo>-marketing.md`.
|
||||||
|
|
||||||
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural.md`) em toda produção textual deste workflow.
|
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural`) em toda produção textual deste workflow.
|
||||||
|
|
||||||
O agente deve atuar como **especialista em marketing digital voltado para o setor do produto (venda entre empresas)**, aplicando técnicas comprovadas de texto persuasivo e engajamento.
|
O agente deve atuar como **especialista em marketing digital voltado para o setor do produto (venda entre empresas)**, aplicando técnicas comprovadas de texto persuasivo e engajamento.
|
||||||
|
|
||||||
|
|
@ -205,5 +205,5 @@ O resultado deve ser salvo em `./COMERCIAL/<nome-do-modulo>-marketing.md` ou adi
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Workflow: `agents/ag-comercial/workflows/comercial.md` (gera os blocos A e B que alimentam o marketing)
|
- Workflow: `agents/ag-comercial/workflows/comercial` (gera os blocos A e B que alimentam o marketing)
|
||||||
- Rule: `global/rules/escrita-natural.md` (padrão obrigatório de redação)
|
- Rule: `global/rules/escrita-natural` (padrão obrigatório de redação)
|
||||||
|
|
@ -10,7 +10,7 @@ updatedAt: "2026-06-01"
|
||||||
|
|
||||||
Este workflow gera textos prontos para **copiar e colar dentro de documentos de orçamento e propostas comerciais**. O resultado é salvo na pasta `./COMERCIAL/` com o sufixo `-orcamento` (ex: `./COMERCIAL/<nome-do-modulo>-orcamento.md`).
|
Este workflow gera textos prontos para **copiar e colar dentro de documentos de orçamento e propostas comerciais**. O resultado é salvo na pasta `./COMERCIAL/` com o sufixo `-orcamento` (ex: `./COMERCIAL/<nome-do-modulo>-orcamento.md`).
|
||||||
|
|
||||||
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural.md`) em toda produção textual deste workflow.
|
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural`) em toda produção textual deste workflow.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -129,6 +129,6 @@ se aplicável, legislação ou norma relevante citada por extenso.]
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Workflow: `agents/ag-comercial/workflows/comercial.md` (descrição comercial detalhada — Resumo e Detalhamento)
|
- Workflow: `agents/ag-comercial/workflows/comercial` (descrição comercial detalhada — Resumo e Detalhamento)
|
||||||
- Workflow: `agents/ag-comercial/workflows/marketing.md` (peças de marketing digital)
|
- Workflow: `agents/ag-comercial/workflows/marketing` (peças de marketing digital)
|
||||||
- Rule: `global/rules/escrita-natural.md` (padrão obrigatório de redação)
|
- Rule: `global/rules/escrita-natural` (padrão obrigatório de redação)
|
||||||
|
|
@ -10,7 +10,7 @@ updatedAt: "2026-06-01"
|
||||||
|
|
||||||
Este workflow gera **cadeias de roteiros de Reels** (vídeos curtos de 30 a 60 segundos) organizados por tema. Os roteiros são escritos em tom provocativo, informal e direto — prontos para gravar falando para a câmera ou com narração em off. O resultado é salvo em `./COMERCIAL/<nome-do-modulo>-reels.md`.
|
Este workflow gera **cadeias de roteiros de Reels** (vídeos curtos de 30 a 60 segundos) organizados por tema. Os roteiros são escritos em tom provocativo, informal e direto — prontos para gravar falando para a câmera ou com narração em off. O resultado é salvo em `./COMERCIAL/<nome-do-modulo>-reels.md`.
|
||||||
|
|
||||||
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural.md`) em toda produção textual deste workflow.
|
É **OBRIGATÓRIO** seguir a regra global de Escrita Natural (`escrita-natural`) em toda produção textual deste workflow.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -199,6 +199,6 @@ O arquivo `./COMERCIAL/<nome-do-modulo>-reels.md` deve seguir esta estrutura:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Workflow: `agents/ag-comercial/workflows/comercial.md` (descrição comercial detalhada — base de contexto)
|
- Workflow: `agents/ag-comercial/workflows/comercial` (descrição comercial detalhada — base de contexto)
|
||||||
- Workflow: `agents/ag-comercial/workflows/marketing.md` (peças de marketing por canal)
|
- Workflow: `agents/ag-comercial/workflows/marketing` (peças de marketing por canal)
|
||||||
- Rule: `global/rules/escrita-natural.md` (padrão obrigatório de redação)
|
- Rule: `global/rules/escrita-natural` (padrão obrigatório de redação)
|
||||||
|
|
@ -38,8 +38,8 @@ O script sincroniza `.agent/inherited/` com os artefatos do `base/`, sem tocar e
|
||||||
Confirmar que a estrutura está íntegra:
|
Confirmar que a estrutura está íntegra:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo "=== Herdados ===" && find .agent/inherited/ -name "*.md" | sort
|
echo "=== Herdados ===" && find .agent/inherited/ -type f | sort
|
||||||
echo "=== Locais ===" && find .agent/local/ -name "*.md" | sort 2>/dev/null || echo "(vazio)"
|
echo "=== Locais ===" && find .agent/local/ -type f | sort 2>/dev/null || echo "(vazio)"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Revisar mudanças (quando aplicável)
|
### 4. Revisar mudanças (quando aplicável)
|
||||||
|
|
@ -37,7 +37,7 @@ Você é o agente responsável por tornar o conhecimento do ecossistema Azteca a
|
||||||
1. Criar e manter arquivos `.regras-negocio.md` para módulos com lógica complexa
|
1. Criar e manter arquivos `.regras-negocio.md` para módulos com lógica complexa
|
||||||
2. Escrever JSDoc em funções e serviços compartilhados
|
2. Escrever JSDoc em funções e serviços compartilhados
|
||||||
3. Criar guias de ajuda para usuários finais (módulo de ajuda contextual)
|
3. Criar guias de ajuda para usuários finais (módulo de ajuda contextual)
|
||||||
4. Manter o `readme.md` e documentação do projeto atualizada
|
4. Manter o `README` e documentação do projeto atualizada
|
||||||
5. Documentar APIs internas (contratos de rotas, parâmetros, retornos)
|
5. Documentar APIs internas (contratos de rotas, parâmetros, retornos)
|
||||||
|
|
||||||
## Restrições
|
## Restrições
|
||||||
|
|
@ -82,5 +82,5 @@ Sem estes padrões, componentes perdem inferência de tipos, lógica fica inaudi
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/limite-linhas.md`
|
- Rule: `global/rules/limite-linhas`
|
||||||
- Rule: `global/rules/typescript-sem-any.md`
|
- Rule: `global/rules/typescript-sem-any`
|
||||||
|
|
@ -185,5 +185,5 @@ Caso contrário, seguir os passos acima para criar a primeira implementação.
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md`
|
- Workflow: `global/workflows/otimizar-codigos`
|
||||||
- Skill: `global/skills/documentar-decisao-tecnica/SKILL.md` (para decisões que geram fluxogramas)
|
- Skill: `global/skills/documentar-decisao-tecnica/SKILL` (para decisões que geram fluxogramas)
|
||||||
|
|
@ -196,7 +196,7 @@ Este repositório é consumido como **git submodule** em `.agent/base/` dentro d
|
||||||
| Rules globais (herdadas) | `.agent/base/global/rules/` |
|
| Rules globais (herdadas) | `.agent/base/global/rules/` |
|
||||||
| Workflows globais (herdados) | `.agent/base/global/workflows/` |
|
| Workflows globais (herdados) | `.agent/base/global/workflows/` |
|
||||||
| Skills globais (herdadas) | `.agent/base/global/skills/` |
|
| Skills globais (herdadas) | `.agent/base/global/skills/` |
|
||||||
| Personas dos agentes | `.agent/base/agents/*/persona.md` |
|
| Personas dos agentes | `.agent/base/agents/*/persona` |
|
||||||
| Rules locais do projeto | `.agent/local/rules/` |
|
| Rules locais do projeto | `.agent/local/rules/` |
|
||||||
| Workflows locais do projeto | `.agent/local/workflows/` |
|
| Workflows locais do projeto | `.agent/local/workflows/` |
|
||||||
| Skills locais do projeto | `.agent/local/skills/` |
|
| Skills locais do projeto | `.agent/local/skills/` |
|
||||||
|
|
@ -67,4 +67,4 @@ Padrões aplicados sem critério geram código mais complexo sem benefício prop
|
||||||
|
|
||||||
- Alexander Shvets — "Mergulho nos Padrões de Projeto" (Refactoring.Guru)
|
- Alexander Shvets — "Mergulho nos Padrões de Projeto" (Refactoring.Guru)
|
||||||
- GoF — "Design Patterns: Elements of Reusable Object-Oriented Software"
|
- GoF — "Design Patterns: Elements of Reusable Object-Oriented Software"
|
||||||
- Persona: `agents/ag-refatorar/persona.md`
|
- Persona: `agents/ag-refatorar/persona`
|
||||||
|
|
@ -53,4 +53,4 @@ Sem esta regra, refatorações introduzem regressões silenciosas que só são d
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Martin Fowler — "Refactoring: Improving the Design of Existing Code"
|
- Martin Fowler — "Refactoring: Improving the Design of Existing Code"
|
||||||
- Persona: `agents/ag-refatorar/persona.md`
|
- Persona: `agents/ag-refatorar/persona`
|
||||||
|
|
@ -85,4 +85,4 @@ Código que viola SOLID se torna cada vez mais caro de manter: cada mudança exi
|
||||||
|
|
||||||
- Robert C. Martin — "Agile Software Development, Principles, Patterns, and Practices"
|
- Robert C. Martin — "Agile Software Development, Principles, Patterns, and Practices"
|
||||||
- Refactoring.Guru — https://refactoring.guru/pt-br/design-patterns
|
- Refactoring.Guru — https://refactoring.guru/pt-br/design-patterns
|
||||||
- Persona: `agents/ag-refatorar/persona.md`
|
- Persona: `agents/ag-refatorar/persona`
|
||||||
|
|
@ -139,7 +139,7 @@ Produzir relatório no formato:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Persona: `agents/ag-refatorar/persona.md`
|
- Persona: `agents/ag-refatorar/persona`
|
||||||
- Rule: `agents/ag-refatorar/rules/solid-compliance.md`
|
- Rule: `agents/ag-refatorar/rules/solid-compliance`
|
||||||
- Rule: `agents/ag-refatorar/rules/design-patterns-pragmatico.md`
|
- Rule: `agents/ag-refatorar/rules/design-patterns-pragmatico`
|
||||||
- Refactoring.Guru — https://refactoring.guru/pt-br/refactoring/smells
|
- Refactoring.Guru — https://refactoring.guru/pt-br/refactoring/smells
|
||||||
|
|
@ -127,8 +127,8 @@ refactor(<módulo>): <técnica aplicada>
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Skill: `agents/ag-refatorar/skills/diagnosticar-code-smells/SKILL.md`
|
- Skill: `agents/ag-refatorar/skills/diagnosticar-code-smells/SKILL`
|
||||||
- Rule: `agents/ag-refatorar/rules/refatoracao-segura.md`
|
- Rule: `agents/ag-refatorar/rules/refatoracao-segura`
|
||||||
- Rule: `agents/ag-refatorar/rules/solid-compliance.md`
|
- Rule: `agents/ag-refatorar/rules/solid-compliance`
|
||||||
- Rule: `agents/ag-refatorar/rules/design-patterns-pragmatico.md`
|
- Rule: `agents/ag-refatorar/rules/design-patterns-pragmatico`
|
||||||
- Workflow global: `global/workflows/otimizar-codigos.md`
|
- Workflow global: `global/workflows/otimizar-codigos`
|
||||||
|
|
@ -82,7 +82,7 @@ Este repositório é consumido como **git submodule** em `.agent/base/` dentro d
|
||||||
| Rules globais (herdadas) | `.agent/base/global/rules/` |
|
| Rules globais (herdadas) | `.agent/base/global/rules/` |
|
||||||
| Workflows globais (herdados) | `.agent/base/global/workflows/` |
|
| Workflows globais (herdados) | `.agent/base/global/workflows/` |
|
||||||
| Skills globais (herdadas) | `.agent/base/global/skills/` |
|
| Skills globais (herdadas) | `.agent/base/global/skills/` |
|
||||||
| Personas dos agentes | `.agent/base/agents/*/persona.md` |
|
| Personas dos agentes | `.agent/base/agents/*/persona` |
|
||||||
| Rules locais do projeto | `.agent/local/rules/` |
|
| Rules locais do projeto | `.agent/local/rules/` |
|
||||||
| Workflows locais do projeto | `.agent/local/workflows/` |
|
| Workflows locais do projeto | `.agent/local/workflows/` |
|
||||||
| Skills locais do projeto | `.agent/local/skills/` |
|
| Skills locais do projeto | `.agent/local/skills/` |
|
||||||
|
|
@ -36,42 +36,35 @@ if [ "$NAO_AUTO_ATUALIZAR" != "1" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# rules
|
# rules
|
||||||
baixar "$BASE/rules/carta-principios-agente-azteca.global.md" "$DIR/rules/carta-principios-agente-azteca.global.md"
|
baixar "$BASE/global/rules/carta-principios-agente-azteca" "$DIR/rules/carta-principios-agente-azteca"
|
||||||
baixar "$BASE/rules/escrita-natural.global.md" "$DIR/rules/escrita-natural.global.md"
|
baixar "$BASE/global/rules/escrita-natural" "$DIR/rules/escrita-natural"
|
||||||
baixar "$BASE/rules/typescript-sem-any.global.md" "$DIR/rules/typescript-sem-any.global.md"
|
baixar "$BASE/global/rules/typescript-sem-any" "$DIR/rules/typescript-sem-any"
|
||||||
baixar "$BASE/rules/regras-negocio-md.global.md" "$DIR/rules/regras-negocio-md.global.md"
|
baixar "$BASE/global/rules/regras-negocio-md" "$DIR/rules/regras-negocio-md"
|
||||||
baixar "$BASE/rules/zod-validacao-padrao.global.md" "$DIR/rules/zod-validacao-padrao.global.md"
|
baixar "$BASE/global/rules/zod-validacao-padrao" "$DIR/rules/zod-validacao-padrao"
|
||||||
baixar "$BASE/rules/limite-linhas.global.md" "$DIR/rules/limite-linhas.global.md"
|
baixar "$BASE/global/rules/limite-linhas" "$DIR/rules/limite-linhas"
|
||||||
baixar "$BASE/rules/estrutura-vue.global.md" "$DIR/rules/estrutura-vue.global.md"
|
baixar "$BASE/global/rules/jsdoc-padrao" "$DIR/rules/jsdoc-padrao"
|
||||||
baixar "$BASE/rules/jsdoc-padrao.global.md" "$DIR/rules/jsdoc-padrao.global.md"
|
baixar "$BASE/global/rules/autonomia-agente" "$DIR/rules/autonomia-agente"
|
||||||
baixar "$BASE/rules/autonomia-agente.global.md" "$DIR/rules/autonomia-agente.global.md"
|
baixar "$BASE/global/rules/fronteiras-monorepo" "$DIR/rules/fronteiras-monorepo"
|
||||||
baixar "$BASE/rules/fronteiras-monorepo.global.md" "$DIR/rules/fronteiras-monorepo.global.md"
|
baixar "$BASE/global/rules/mensagens-usuario" "$DIR/rules/mensagens-usuario"
|
||||||
baixar "$BASE/rules/mensagens-usuario.global.md" "$DIR/rules/mensagens-usuario.global.md"
|
baixar "$BASE/global/rules/feedback-visivel" "$DIR/rules/feedback-visivel"
|
||||||
|
|
||||||
# workflows
|
# workflows
|
||||||
baixar "$BASE/workflows/aprimorar-IA.global.md" "$DIR/workflows/aprimorar-IA.global.md"
|
baixar "$BASE/global/workflows/aprimorar-IA" "$DIR/workflows/aprimorar-IA"
|
||||||
baixar "$BASE/workflows/adicionar-ajuda.global.md" "$DIR/workflows/adicionar-ajuda.global.md"
|
baixar "$BASE/global/workflows/otimizar-codigos" "$DIR/workflows/otimizar-codigos"
|
||||||
baixar "$BASE/workflows/atualizar-agente.global.md" "$DIR/workflows/atualizar-agente.global.md"
|
baixar "$BASE/global/workflows/documentar-regras-negocio" "$DIR/workflows/documentar-regras-negocio"
|
||||||
baixar "$BASE/workflows/criar-fluxograma.global.md" "$DIR/workflows/criar-fluxograma.global.md"
|
baixar "$BASE/global/workflows/ux" "$DIR/workflows/ux"
|
||||||
baixar "$BASE/workflows/otimizar-codigos.global.md" "$DIR/workflows/otimizar-codigos.global.md"
|
|
||||||
baixar "$BASE/workflows/comercial.global.md" "$DIR/workflows/comercial.global.md"
|
|
||||||
baixar "$BASE/workflows/marketing.global.md" "$DIR/workflows/marketing.global.md"
|
|
||||||
baixar "$BASE/workflows/orcamento.global.md" "$DIR/workflows/orcamento.global.md"
|
|
||||||
baixar "$BASE/workflows/reels.global.md" "$DIR/workflows/reels.global.md"
|
|
||||||
baixar "$BASE/workflows/documentar-regras-negocio.global.md" "$DIR/workflows/documentar-regras-negocio.global.md"
|
|
||||||
baixar "$BASE/workflows/ux.global.md" "$DIR/workflows/ux.global.md"
|
|
||||||
|
|
||||||
|
|
||||||
# skills
|
# skills
|
||||||
baixar "$BASE/skills/mapear-codigo-fonte.global/SKILL.md" "$DIR/skills/mapear-codigo-fonte.global/SKILL.md"
|
baixar "$BASE/global/skills/mapear-codigo-fonte/SKILL" "$DIR/skills/mapear-codigo-fonte/SKILL"
|
||||||
baixar "$BASE/skills/diagnosticar-erros-build.global/SKILL.md" "$DIR/skills/diagnosticar-erros-build.global/SKILL.md"
|
baixar "$BASE/global/skills/diagnosticar-erros-build/SKILL" "$DIR/skills/diagnosticar-erros-build/SKILL"
|
||||||
baixar "$BASE/skills/documentar-decisao-tecnica.global/SKILL.md" "$DIR/skills/documentar-decisao-tecnica.global/SKILL.md"
|
baixar "$BASE/global/skills/documentar-decisao-tecnica/SKILL" "$DIR/skills/documentar-decisao-tecnica/SKILL"
|
||||||
baixar "$BASE/skills/documentar-regras-negocio.global/SKILL.md" "$DIR/skills/documentar-regras-negocio.global/SKILL.md"
|
baixar "$BASE/global/skills/documentar-regras-negocio/SKILL" "$DIR/skills/documentar-regras-negocio/SKILL"
|
||||||
baixar "$BASE/skills/criar-schema-zod.global/SKILL.md" "$DIR/skills/criar-schema-zod.global/SKILL.md"
|
baixar "$BASE/global/skills/criar-schema-zod/SKILL" "$DIR/skills/criar-schema-zod/SKILL"
|
||||||
baixar "$BASE/skills/documentar-dominio-modulo.global/SKILL.md" "$DIR/skills/documentar-dominio-modulo.global/SKILL.md"
|
baixar "$BASE/global/skills/documentar-dominio-modulo/SKILL" "$DIR/skills/documentar-dominio-modulo/SKILL"
|
||||||
|
baixar "$BASE/global/skills/orquestrar-agentes/SKILL" "$DIR/skills/orquestrar-agentes/SKILL"
|
||||||
|
|
||||||
# raiz (.agent)
|
# raiz
|
||||||
baixar "$BASE/tools.md" "$DIR/tools.md"
|
baixar "$BASE/TOOLS" "$DIR/TOOLS"
|
||||||
baixar "$BASE/verificar-linhas.sh" "$DIR/verificar-linhas.sh"
|
baixar "$BASE/verificar-linhas.sh" "$DIR/verificar-linhas.sh"
|
||||||
|
|
||||||
exit "$ERROS"
|
exit "$ERROS"
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# atualizar-agente.sh — Sincroniza base via git submodule
|
# atualizar-agente.sh — Sincroniza base via git submodule
|
||||||
#
|
#
|
||||||
# Modo submodule (padrão — recomendado):
|
# Modo submodule (padrão — recomendado):
|
||||||
# O AGENT-IA é um submodulo git. Este script faz:
|
# O .agent é um submodulo git. Este script faz:
|
||||||
# 1. git submodule update --remote --merge (atualiza o submodulo)
|
# 1. git submodule update --remote --merge (atualiza o submodulo)
|
||||||
# 2. Copia artefatos do submodulo → .agent/inherited/
|
# 2. Copia artefatos do submodulo → .agent/inherited/
|
||||||
#
|
#
|
||||||
|
|
@ -38,7 +38,7 @@ done
|
||||||
if [ ! -f "$MANIFESTO_LOCAL" ]; then
|
if [ ! -f "$MANIFESTO_LOCAL" ]; then
|
||||||
echo "❌ manifesto-local.json não encontrado."
|
echo "❌ manifesto-local.json não encontrado."
|
||||||
echo " Copie: cp .agent/manifesto-local.template.json .agent/manifesto-local.json"
|
echo " Copie: cp .agent/manifesto-local.template.json .agent/manifesto-local.json"
|
||||||
echo " Configure o campo 'submodulo' com o path do submodulo AGENT-IA."
|
echo " Configure o campo 'submodulo' com o path do submodulo."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -55,7 +55,6 @@ BASE_URL=$(jq -r '.extends // empty' "$MANIFESTO_LOCAL")
|
||||||
|
|
||||||
# Resolver path absoluto do submodulo
|
# Resolver path absoluto do submodulo
|
||||||
if [ -n "$SUBMODULO_PATH" ]; then
|
if [ -n "$SUBMODULO_PATH" ]; then
|
||||||
# Path pode ser relativo ao projeto ou ao .agent/
|
|
||||||
if echo "$SUBMODULO_PATH" | grep -q "^/"; then
|
if echo "$SUBMODULO_PATH" | grep -q "^/"; then
|
||||||
BASE_DIR="$SUBMODULO_PATH"
|
BASE_DIR="$SUBMODULO_PATH"
|
||||||
else
|
else
|
||||||
|
|
@ -84,11 +83,7 @@ if [ -n "$SUBMODULO_PATH" ] && [ -f "$PROJETO_DIR/.gitmodules" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verificar se o base existe no path do submodulo
|
# Verificar se o base existe no path do submodulo
|
||||||
# O AGENT-IA tem seu conteúdo dentro de .agent/ no repo
|
if [ -d "$BASE_DIR/global" ]; then
|
||||||
if [ -d "$BASE_DIR/.agent" ]; then
|
|
||||||
BASE_AGENT="$BASE_DIR/.agent"
|
|
||||||
elif [ -d "$BASE_DIR/global" ]; then
|
|
||||||
# Caso o repo seja estruturado sem .agent/ wrapper (futuro)
|
|
||||||
BASE_AGENT="$BASE_DIR"
|
BASE_AGENT="$BASE_DIR"
|
||||||
else
|
else
|
||||||
echo "❌ Não encontrei artefatos em: $BASE_DIR"
|
echo "❌ Não encontrei artefatos em: $BASE_DIR"
|
||||||
|
|
@ -123,46 +118,54 @@ if [ -n "$SUBMODULO_PATH" ] && [ -f "$PROJETO_DIR/.gitmodules" ]; then
|
||||||
# Criar README e .gitignore em inherited/
|
# Criar README e .gitignore em inherited/
|
||||||
if [ "$DRY_RUN" = "0" ]; then
|
if [ "$DRY_RUN" = "0" ]; then
|
||||||
mkdir -p "$INHERITED_DIR"
|
mkdir -p "$INHERITED_DIR"
|
||||||
cat > "$INHERITED_DIR/README.md" << 'EOF'
|
cat > "$INHERITED_DIR/README" << 'EOF'
|
||||||
# ⚠️ Pasta gerenciada automaticamente
|
# ⚠️ Pasta gerenciada automaticamente
|
||||||
|
|
||||||
Conteúdo copiado do submodulo AGENT-IA. **NUNCA edite aqui.**
|
Conteúdo copiado do submodulo .agent. **NUNCA edite aqui.**
|
||||||
Para customizar, use `.agent/local/`.
|
Para customizar, use `.agent/local/`.
|
||||||
|
|
||||||
Para atualizar:
|
Para atualizar:
|
||||||
sh .agent/atualizar-agente.sh
|
sh .agent/atualizar-agente.sh
|
||||||
EOF
|
EOF
|
||||||
printf '*\n!.gitignore\n!README.md\n' > "$INHERITED_DIR/.gitignore"
|
printf '*\n!.gitignore\n!README\n' > "$INHERITED_DIR/.gitignore"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copiar global/
|
# Copiar global/
|
||||||
echo ""
|
echo ""
|
||||||
echo "🌐 Global..."
|
echo "🌐 Global..."
|
||||||
for f in "$BASE_AGENT/global/rules/"*.md; do
|
for f in "$BASE_AGENT/global/rules/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "global/rules/$(basename "$f")"
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
|
copiar "$f" "global/rules/$(basename "$f")"
|
||||||
done
|
done
|
||||||
for f in "$BASE_AGENT/global/workflows/"*.md; do
|
for f in "$BASE_AGENT/global/workflows/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "global/workflows/$(basename "$f")"
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
|
copiar "$f" "global/workflows/$(basename "$f")"
|
||||||
done
|
done
|
||||||
for d in "$BASE_AGENT/global/skills/"/*/; do
|
for d in "$BASE_AGENT/global/skills/"*/; do
|
||||||
[ -f "$d/SKILL.md" ] && copiar "$d/SKILL.md" "global/skills/$(basename "$d")/SKILL.md"
|
[ -f "$d/SKILL" ] && copiar "$d/SKILL" "global/skills/$(basename "$d")/SKILL"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Copiar agents/
|
# Copiar agents/
|
||||||
echo ""
|
echo ""
|
||||||
echo "🤖 Agentes..."
|
echo "🤖 Agentes..."
|
||||||
for agente_dir in "$BASE_AGENT/agents/"/*/; do
|
for agente_dir in "$BASE_AGENT/agents/"*/; do
|
||||||
AGENTE=$(basename "$agente_dir")
|
AGENTE=$(basename "$agente_dir")
|
||||||
[ -f "$agente_dir/persona.md" ] && copiar "$agente_dir/persona.md" "agents/$AGENTE/persona.md"
|
[ -f "$agente_dir/persona" ] && copiar "$agente_dir/persona" "agents/$AGENTE/persona"
|
||||||
[ -f "$agente_dir/agent.json" ] && copiar "$agente_dir/agent.json" "agents/$AGENTE/agent.json"
|
[ -f "$agente_dir/agent.json" ] && copiar "$agente_dir/agent.json" "agents/$AGENTE/agent.json"
|
||||||
for f in "$agente_dir/rules/"*.md; do
|
for f in "$agente_dir/rules/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "agents/$AGENTE/rules/$(basename "$f")"
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
|
copiar "$f" "agents/$AGENTE/rules/$(basename "$f")"
|
||||||
done
|
done
|
||||||
for f in "$agente_dir/workflows/"*.md; do
|
for f in "$agente_dir/workflows/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "agents/$AGENTE/workflows/$(basename "$f")"
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
|
copiar "$f" "agents/$AGENTE/workflows/$(basename "$f")"
|
||||||
done
|
done
|
||||||
for d in "$agente_dir/skills/"/*/; do
|
for d in "$agente_dir/skills/"*/; do
|
||||||
[ -f "$d/SKILL.md" ] && copiar "$d/SKILL.md" "agents/$AGENTE/skills/$(basename "$d")/SKILL.md"
|
[ -f "$d/SKILL" ] && copiar "$d/SKILL" "agents/$AGENTE/skills/$(basename "$d")/SKILL"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -172,16 +175,16 @@ EOF
|
||||||
for f in "$BASE_AGENT/adaptadores/antigravity/"*; do
|
for f in "$BASE_AGENT/adaptadores/antigravity/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "adaptadores/antigravity/$(basename "$f")"
|
[ -f "$f" ] && copiar "$f" "adaptadores/antigravity/$(basename "$f")"
|
||||||
done
|
done
|
||||||
for f in "$BASE_AGENT/adaptadores/claude/"*.md; do
|
for f in "$BASE_AGENT/adaptadores/claude/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "adaptadores/claude/$(basename "$f")"
|
[ -f "$f" ] && copiar "$f" "adaptadores/claude/$(basename "$f")"
|
||||||
done
|
done
|
||||||
for f in "$BASE_AGENT/adaptadores/openai/"*.md; do
|
for f in "$BASE_AGENT/adaptadores/openai/"*; do
|
||||||
[ -f "$f" ] && copiar "$f" "adaptadores/openai/$(basename "$f")"
|
[ -f "$f" ] && copiar "$f" "adaptadores/openai/$(basename "$f")"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Copiar tools
|
# Copiar tools e verificar-linhas
|
||||||
[ -f "$BASE_AGENT/tools.md" ] && copiar "$BASE_AGENT/tools.md" "tools.md"
|
[ -f "$BASE_AGENT/TOOLS" ] && copiar "$BASE_AGENT/TOOLS" "TOOLS"
|
||||||
[ -f "$BASE_AGENT/verificar-linhas.sh" ] && copiar "$BASE_AGENT/verificar-linhas.sh" "verificar-linhas.sh"
|
[ -f "$BASE_AGENT/verificar-linhas.sh" ] && copiar "$BASE_AGENT/verificar-linhas.sh" "verificar-linhas.sh"
|
||||||
|
|
||||||
chmod +x "$INHERITED_DIR/verificar-linhas.sh" 2>/dev/null
|
chmod +x "$INHERITED_DIR/verificar-linhas.sh" 2>/dev/null
|
||||||
chmod +x "$INHERITED_DIR/adaptadores/antigravity/gerar-agent-json.sh" 2>/dev/null
|
chmod +x "$INHERITED_DIR/adaptadores/antigravity/gerar-agent-json.sh" 2>/dev/null
|
||||||
|
|
@ -190,7 +193,7 @@ EOF
|
||||||
elif [ -n "$BASE_URL" ]; then
|
elif [ -n "$BASE_URL" ]; then
|
||||||
echo "📡 [$PROJETO] Modo: curl (legado)"
|
echo "📡 [$PROJETO] Modo: curl (legado)"
|
||||||
echo " Base URL: $BASE_URL"
|
echo " Base URL: $BASE_URL"
|
||||||
echo " ⚠ Recomendado: migrar para git submodule (ver EXTEND.md)"
|
echo " ⚠ Recomendado: migrar para git submodule (ver EXTEND)"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if ! command -v curl >/dev/null 2>&1; then
|
if ! command -v curl >/dev/null 2>&1; then
|
||||||
|
|
@ -230,7 +233,7 @@ elif [ -n "$BASE_URL" ]; then
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "❌ manifesto-local.json precisa ter 'submodulo' (git) ou 'extends' (curl legado)."
|
echo "❌ manifesto-local.json precisa ter 'submodulo' (git) ou 'extends' (curl legado)."
|
||||||
echo " Consulte .agent/EXTEND.md para instruções."
|
echo " Consulte EXTEND para instruções."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
# Uso:
|
# Uso:
|
||||||
# ./gerar-manifesto.sh
|
# ./gerar-manifesto.sh
|
||||||
#
|
#
|
||||||
# Saída: .agent/manifesto.json
|
# Saída: manifesto.json
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
AGENT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
AGENT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
@ -19,7 +19,7 @@ echo "🔍 Gerando manifesto.json..."
|
||||||
# Iniciar JSON
|
# Iniciar JSON
|
||||||
cat > "$OUTPUT" << 'HEADER'
|
cat > "$OUTPUT" << 'HEADER'
|
||||||
{
|
{
|
||||||
"versao": "2.0.0",
|
"versao": "3.0.0",
|
||||||
HEADER
|
HEADER
|
||||||
|
|
||||||
echo " \"base_url\": \"$BASE_URL\"," >> "$OUTPUT"
|
echo " \"base_url\": \"$BASE_URL\"," >> "$OUTPUT"
|
||||||
|
|
@ -29,11 +29,12 @@ echo " \"artefatos\": {" >> "$OUTPUT"
|
||||||
# --- GLOBAL ---
|
# --- GLOBAL ---
|
||||||
echo " \"global\": {" >> "$OUTPUT"
|
echo " \"global\": {" >> "$OUTPUT"
|
||||||
|
|
||||||
# global/rules
|
# global/rules (arquivos sem extensão, excluir .sh e .json)
|
||||||
echo " \"rules\": [" >> "$OUTPUT"
|
echo " \"rules\": [" >> "$OUTPUT"
|
||||||
FIRST=1
|
FIRST=1
|
||||||
for f in "$AGENT_DIR/global/rules/"*.md; do
|
for f in "$AGENT_DIR/global/rules/"*; do
|
||||||
[ -f "$f" ] || continue
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
REL="global/rules/$(basename "$f")"
|
REL="global/rules/$(basename "$f")"
|
||||||
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
||||||
printf ' "%s"' "$REL" >> "$OUTPUT"
|
printf ' "%s"' "$REL" >> "$OUTPUT"
|
||||||
|
|
@ -44,8 +45,9 @@ echo " ]," >> "$OUTPUT"
|
||||||
# global/workflows
|
# global/workflows
|
||||||
echo " \"workflows\": [" >> "$OUTPUT"
|
echo " \"workflows\": [" >> "$OUTPUT"
|
||||||
FIRST=1
|
FIRST=1
|
||||||
for f in "$AGENT_DIR/global/workflows/"*.md; do
|
for f in "$AGENT_DIR/global/workflows/"*; do
|
||||||
[ -f "$f" ] || continue
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
REL="global/workflows/$(basename "$f")"
|
REL="global/workflows/$(basename "$f")"
|
||||||
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
||||||
printf ' "%s"' "$REL" >> "$OUTPUT"
|
printf ' "%s"' "$REL" >> "$OUTPUT"
|
||||||
|
|
@ -56,10 +58,10 @@ echo " ]," >> "$OUTPUT"
|
||||||
# global/skills
|
# global/skills
|
||||||
echo " \"skills\": [" >> "$OUTPUT"
|
echo " \"skills\": [" >> "$OUTPUT"
|
||||||
FIRST=1
|
FIRST=1
|
||||||
for d in "$AGENT_DIR/global/skills/"/*/; do
|
for d in "$AGENT_DIR/global/skills/"*/; do
|
||||||
[ -f "$d/SKILL.md" ] || continue
|
[ -f "$d/SKILL" ] || continue
|
||||||
NOME=$(basename "$d")
|
NOME=$(basename "$d")
|
||||||
REL="global/skills/$NOME/SKILL.md"
|
REL="global/skills/$NOME/SKILL"
|
||||||
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
||||||
printf ' "%s"' "$REL" >> "$OUTPUT"
|
printf ' "%s"' "$REL" >> "$OUTPUT"
|
||||||
done
|
done
|
||||||
|
|
@ -71,7 +73,7 @@ echo " }," >> "$OUTPUT"
|
||||||
# --- AGENTS ---
|
# --- AGENTS ---
|
||||||
echo " \"agents\": {" >> "$OUTPUT"
|
echo " \"agents\": {" >> "$OUTPUT"
|
||||||
AGENT_FIRST=1
|
AGENT_FIRST=1
|
||||||
for agente_dir in "$AGENT_DIR/agents/"/*/; do
|
for agente_dir in "$AGENT_DIR/agents/"*/; do
|
||||||
AGENTE=$(basename "$agente_dir")
|
AGENTE=$(basename "$agente_dir")
|
||||||
[ -d "$agente_dir" ] || continue
|
[ -d "$agente_dir" ] || continue
|
||||||
|
|
||||||
|
|
@ -80,8 +82,8 @@ for agente_dir in "$AGENT_DIR/agents/"/*/; do
|
||||||
echo " \"$AGENTE\": {" >> "$OUTPUT"
|
echo " \"$AGENTE\": {" >> "$OUTPUT"
|
||||||
|
|
||||||
# persona
|
# persona
|
||||||
if [ -f "$agente_dir/persona.md" ]; then
|
if [ -f "$agente_dir/persona" ]; then
|
||||||
echo " \"persona\": \"agents/$AGENTE/persona.md\"," >> "$OUTPUT"
|
echo " \"persona\": \"agents/$AGENTE/persona\"," >> "$OUTPUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# agent.json (se existir)
|
# agent.json (se existir)
|
||||||
|
|
@ -92,8 +94,9 @@ for agente_dir in "$AGENT_DIR/agents/"/*/; do
|
||||||
# rules
|
# rules
|
||||||
echo " \"rules\": [" >> "$OUTPUT"
|
echo " \"rules\": [" >> "$OUTPUT"
|
||||||
FIRST=1
|
FIRST=1
|
||||||
for f in "$agente_dir/rules/"*.md; do
|
for f in "$agente_dir/rules/"*; do
|
||||||
[ -f "$f" ] || continue
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
REL="agents/$AGENTE/rules/$(basename "$f")"
|
REL="agents/$AGENTE/rules/$(basename "$f")"
|
||||||
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
||||||
printf ' "%s"' "$REL" >> "$OUTPUT"
|
printf ' "%s"' "$REL" >> "$OUTPUT"
|
||||||
|
|
@ -104,8 +107,9 @@ for agente_dir in "$AGENT_DIR/agents/"/*/; do
|
||||||
# workflows
|
# workflows
|
||||||
echo " \"workflows\": [" >> "$OUTPUT"
|
echo " \"workflows\": [" >> "$OUTPUT"
|
||||||
FIRST=1
|
FIRST=1
|
||||||
for f in "$agente_dir/workflows/"*.md; do
|
for f in "$agente_dir/workflows/"*; do
|
||||||
[ -f "$f" ] || continue
|
[ -f "$f" ] || continue
|
||||||
|
case "$f" in *.sh|*.json) continue ;; esac
|
||||||
REL="agents/$AGENTE/workflows/$(basename "$f")"
|
REL="agents/$AGENTE/workflows/$(basename "$f")"
|
||||||
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
||||||
printf ' "%s"' "$REL" >> "$OUTPUT"
|
printf ' "%s"' "$REL" >> "$OUTPUT"
|
||||||
|
|
@ -116,10 +120,10 @@ for agente_dir in "$AGENT_DIR/agents/"/*/; do
|
||||||
# skills
|
# skills
|
||||||
echo " \"skills\": [" >> "$OUTPUT"
|
echo " \"skills\": [" >> "$OUTPUT"
|
||||||
FIRST=1
|
FIRST=1
|
||||||
for d in "$agente_dir/skills/"/*/; do
|
for d in "$agente_dir/skills/"*/; do
|
||||||
[ -f "$d/SKILL.md" ] || continue
|
[ -f "$d/SKILL" ] || continue
|
||||||
NOME=$(basename "$d")
|
NOME=$(basename "$d")
|
||||||
REL="agents/$AGENTE/skills/$NOME/SKILL.md"
|
REL="agents/$AGENTE/skills/$NOME/SKILL"
|
||||||
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
[ "$FIRST" = "1" ] && FIRST=0 || echo "," >> "$OUTPUT"
|
||||||
printf ' "%s"' "$REL" >> "$OUTPUT"
|
printf ' "%s"' "$REL" >> "$OUTPUT"
|
||||||
done
|
done
|
||||||
|
|
@ -137,7 +141,7 @@ echo "}" >> "$OUTPUT"
|
||||||
echo "✅ Manifesto gerado: $OUTPUT"
|
echo "✅ Manifesto gerado: $OUTPUT"
|
||||||
echo ""
|
echo ""
|
||||||
echo "📊 Resumo:"
|
echo "📊 Resumo:"
|
||||||
echo " Global rules: $(ls "$AGENT_DIR/global/rules/" 2>/dev/null | wc -l | tr -d ' ')"
|
echo " Global rules: $(find "$AGENT_DIR/global/rules/" -maxdepth 1 -type f ! -name '*.sh' ! -name '*.json' 2>/dev/null | wc -l | tr -d ' ')"
|
||||||
echo " Global workflows: $(ls "$AGENT_DIR/global/workflows/" 2>/dev/null | wc -l | tr -d ' ')"
|
echo " Global workflows: $(find "$AGENT_DIR/global/workflows/" -maxdepth 1 -type f ! -name '*.sh' ! -name '*.json' 2>/dev/null | wc -l | tr -d ' ')"
|
||||||
echo " Global skills: $(ls "$AGENT_DIR/global/skills/" 2>/dev/null | wc -l | tr -d ' ')"
|
echo " Global skills: $(find "$AGENT_DIR/global/skills/" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ')"
|
||||||
echo " Agentes: $(ls -d "$AGENT_DIR/agents/"*/ 2>/dev/null | wc -l | tr -d ' ')"
|
echo " Agentes: $(find "$AGENT_DIR/agents/" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ')"
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ processor.on('failed', (job, erro) => {
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/mensagens-usuario.md` (vocabulário para mensagens ao usuário)
|
- Rule: `global/rules/mensagens-usuario` (vocabulário para mensagens ao usuário)
|
||||||
- Persona: `agents/ag-front/persona.md` (estados de UI)
|
- Persona: `agents/ag-front/persona` (estados de UI)
|
||||||
- Persona: `agents/ag-back/persona.md` (tratamento de erros)
|
- Persona: `agents/ag-back/persona` (tratamento de erros)
|
||||||
- Persona: `agents/ag-ux/persona.md` (feedback imediato como princípio)
|
- Persona: `agents/ag-ux/persona` (feedback imediato como princípio)
|
||||||
|
|
@ -116,5 +116,5 @@ Sem esta regra:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/zod-validacao-padrao.md` (schemas no `*-comuns`)
|
- Rule: `global/rules/zod-validacao-padrao` (schemas no `*-comuns`)
|
||||||
- Skill: `global/skills/mapear-codigo-fonte/SKILL.md`
|
- Skill: `global/skills/mapear-codigo-fonte/SKILL`
|
||||||
|
|
@ -56,4 +56,4 @@ Sem este padrão, funções compartilhadas ficam sem documentação, casts apare
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/typescript-sem-any.md`
|
- Rule: `global/rules/typescript-sem-any`
|
||||||
|
|
@ -63,4 +63,4 @@ Sem esta regra, arquivos crescem silenciosamente até se tornarem intocáveis
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Script: `verificar-linhas.sh`
|
- Script: `verificar-linhas.sh`
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md`
|
- Workflow: `global/workflows/otimizar-codigos`
|
||||||
|
|
@ -119,5 +119,5 @@ Sem esta regra, o agente gera mensagens técnicas que confundem gestores ambient
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/zod-validacao-padrao.md` (schemas com mensagens customizadas)
|
- Rule: `global/rules/zod-validacao-padrao` (schemas com mensagens customizadas)
|
||||||
- Workflow: `global/workflows/ux.md` (design de interface)
|
- Workflow: `global/workflows/ux` (design de interface)
|
||||||
|
|
@ -116,5 +116,5 @@ Sem este padrão:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Skill: `global/skills/documentar-regras-negocio/SKILL.md`
|
- Skill: `global/skills/documentar-regras-negocio/SKILL`
|
||||||
- Workflow: `global/workflows/documentar-regras-negocio.md`
|
- Workflow: `global/workflows/documentar-regras-negocio`
|
||||||
|
|
@ -72,6 +72,6 @@ Se encontrar uma string que represente um valor de domínio do sistema, o agente
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Skill: `global/skills/diagnosticar-erros-build/SKILL.md` (quando erros de tipagem causam falhas de build em cascata)
|
- Skill: `global/skills/diagnosticar-erros-build/SKILL` (quando erros de tipagem causam falhas de build em cascata)
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md` (padrão de documentação para casts temporários)
|
- Workflow: `global/workflows/otimizar-codigos` (padrão de documentação para casts temporários)
|
||||||
|
|
||||||
|
|
@ -13,8 +13,8 @@ globs:
|
||||||
alwaysApply: true
|
alwaysApply: true
|
||||||
updatedAt: "2026-06-01"
|
updatedAt: "2026-06-01"
|
||||||
references:
|
references:
|
||||||
- global/rules/typescript-sem-any.md
|
- global/rules/typescript-sem-any
|
||||||
- global/skills/criar-schema-zod/SKILL.md
|
- global/skills/criar-schema-zod/SKILL
|
||||||
---
|
---
|
||||||
|
|
||||||
# Regra: Zod como Validador Padrão
|
# Regra: Zod como Validador Padrão
|
||||||
|
|
@ -311,5 +311,5 @@ Com esta regra:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/typescript-sem-any.md` (narrowing com Zod mencionado como alternativa)
|
- Rule: `global/rules/typescript-sem-any` (narrowing com Zod mencionado como alternativa)
|
||||||
- Skill: `global/skills/criar-schema-zod/SKILL.md` (guia prático para criar schemas)
|
- Skill: `global/skills/criar-schema-zod/SKILL` (guia prático para criar schemas)
|
||||||
|
|
@ -180,5 +180,5 @@ Zero erros = concluído.
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/zod-validacao-padrao.md`
|
- Rule: `global/rules/zod-validacao-padrao`
|
||||||
- Rule: `global/rules/typescript-sem-any.md`
|
- Rule: `global/rules/typescript-sem-any`
|
||||||
|
|
@ -181,6 +181,6 @@ pnpm install && pnpm build
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rules: `global/rules/typescript-sem-any.md`
|
- Rules: `global/rules/typescript-sem-any`
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md`
|
- Workflow: `global/workflows/otimizar-codigos`
|
||||||
- Skill: `global/skills/mapear-codigo-fonte/SKILL.md`
|
- Skill: `global/skills/mapear-codigo-fonte/SKILL`
|
||||||
|
|
@ -157,5 +157,5 @@ Antes de considerar completo:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Workflow: `global/workflows/aprimorar-IA.md` (seção de classificação de artefatos)
|
- Workflow: `global/workflows/aprimorar-IA` (seção de classificação de artefatos)
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md`
|
- Workflow: `global/workflows/otimizar-codigos`
|
||||||
|
|
@ -107,10 +107,10 @@ Antes de consolidar:
|
||||||
|
|
||||||
Após documentar o domínio:
|
Após documentar o domínio:
|
||||||
|
|
||||||
1. Verificar se labels e mensagens no código usam o vocabulário definido (rule `mensagens-usuario.md`)
|
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.md`)
|
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`)
|
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.md`)
|
4. Verificar se textos comerciais citam a legislação corretamente (workflow `comercial`)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -125,7 +125,7 @@ Após documentar o domínio:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/mensagens-usuario.md`
|
- Rule: `global/rules/mensagens-usuario`
|
||||||
- Rule: `global/rules/regras-negocio-md.md`
|
- Rule: `global/rules/regras-negocio-md`
|
||||||
- Workflow: `agents/ag-comercial/workflows/comercial.md`
|
- Workflow: `agents/ag-comercial/workflows/comercial`
|
||||||
- Workflow: `agents/ag-front/workflows/adicionar-ajuda.md`
|
- Workflow: `agents/ag-front/workflows/adicionar-ajuda`
|
||||||
|
|
@ -208,5 +208,5 @@ Percorrer cada regra listada no `.md` e verificar que há código correspondente
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/regras-negocio-md.md`
|
- Rule: `global/rules/regras-negocio-md`
|
||||||
- Workflow: `global/workflows/documentar-regras-negocio.md`
|
- Workflow: `global/workflows/documentar-regras-negocio`
|
||||||
|
|
@ -156,5 +156,5 @@ Descrever como os dados fluem entre pacotes.
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rules: `global/rules/typescript-sem-any.md`
|
- Rules: `global/rules/typescript-sem-any`
|
||||||
- Workflow: `global/workflows/otimizar-codigos.md`
|
- Workflow: `global/workflows/otimizar-codigos`
|
||||||
|
|
@ -172,6 +172,6 @@ Quando dois agentes têm visões diferentes:
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
|
|
||||||
- Rule: `global/rules/autonomia-agente.md`
|
- Rule: `global/rules/autonomia-agente`
|
||||||
- Rule: `global/rules/fronteiras-monorepo.md`
|
- Rule: `global/rules/fronteiras-monorepo`
|
||||||
- Personas: `agents/*/persona.md`
|
- Personas: `agents/*/persona`
|
||||||
|
|
@ -129,7 +129,7 @@ Sempre que houver processo repetível identificado:
|
||||||
|
|
||||||
Sempre que um padrão operacional complexo for definido, refinado ou corrigido:
|
Sempre que um padrão operacional complexo for definido, refinado ou corrigido:
|
||||||
|
|
||||||
* Criar ou atualizar skill em `.agent/local/skills/<nome-da-skill>/SKILL.md`.
|
* Criar ou atualizar skill em `.agent/local/skills/<nome-da-skill>/SKILL`.
|
||||||
|
|
||||||
### Quando atualizar uma skill:
|
### Quando atualizar uma skill:
|
||||||
|
|
||||||
|
|
@ -158,13 +158,13 @@ Instruções com código, regras e padrões.
|
||||||
- [ ] Item de verificação
|
- [ ] Item de verificação
|
||||||
|
|
||||||
## Referências
|
## Referências
|
||||||
- Regras: `.agent/local/rules/xxx.md`
|
- Regras: `.agent/local/rules/xxx`
|
||||||
- Workflow: `.agent/local/workflows/xxx.md`
|
- Workflow: `.agent/local/workflows/xxx`
|
||||||
```
|
```
|
||||||
|
|
||||||
### Regras de organização:
|
### Regras de organização:
|
||||||
|
|
||||||
- Uma skill por diretório: `.agent/local/skills/<nome>/SKILL.md`
|
- Uma skill por diretório: `.agent/local/skills/<nome>/SKILL`
|
||||||
- Skills globais são identificadas pelo campo `scope: global` no frontmatter
|
- Skills globais são identificadas pelo campo `scope: global` no frontmatter
|
||||||
- Nome do diretório em `kebab-case`
|
- Nome do diretório em `kebab-case`
|
||||||
- A skill **não deve duplicar** conteúdo de rules — referencia-as via seção `Referências`
|
- A skill **não deve duplicar** conteúdo de rules — referencia-as via seção `Referências`
|
||||||
|
|
@ -181,7 +181,7 @@ Instruções com código, regras e padrões.
|
||||||
|
|
||||||
### Skills de projeto (criadas localmente em cada monorepo):
|
### Skills de projeto (criadas localmente em cada monorepo):
|
||||||
|
|
||||||
Cada projeto pode criar skills adicionais específicas em `.agent/local/skills/<nome>/SKILL.md`.
|
Cada projeto pode criar skills adicionais específicas em `.agent/local/skills/<nome>/SKILL`.
|
||||||
Essas skills focam nos padrões e domínios exclusivos daquele projeto.
|
Essas skills focam nos padrões e domínios exclusivos daquele projeto.
|
||||||
|
|
||||||
Exemplos de skills de projeto:
|
Exemplos de skills de projeto:
|
||||||
|
|
@ -200,7 +200,7 @@ Exemplos de skills de projeto:
|
||||||
Sempre que decisões críticas sobre a arquitetura da aplicação ou o contexto do domínio precisarem ser arquivadas temporária ou permanentemente de maneira descritiva (e não diretamente injetável em código ou regra de lint):
|
Sempre que decisões críticas sobre a arquitetura da aplicação ou o contexto do domínio precisarem ser arquivadas temporária ou permanentemente de maneira descritiva (e não diretamente injetável em código ou regra de lint):
|
||||||
|
|
||||||
* Registre o novo documento no formato adequado mantendo a pasta limpa em `.agent/memoria/`.
|
* Registre o novo documento no formato adequado mantendo a pasta limpa em `.agent/memoria/`.
|
||||||
* Exemplo: Manter diário de pendências (`diario-pendencias-modulo-x.md`) ou ADR (`adr-001-migracao-nuxt-4.md`).
|
* Exemplo: Manter diário de pendências (`diario-pendencias-modulo-x`) ou ADR (`adr-001-migracao-nuxt-4`).
|
||||||
* Atenção! Tudo que puder ser abstraído para formato técnico estrito deve virar **Skill** ou **Rule**. Use a Memória apenas como extensão de base factual.
|
* Atenção! Tudo que puder ser abstraído para formato técnico estrito deve virar **Skill** ou **Rule**. Use a Memória apenas como extensão de base factual.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -9,7 +9,7 @@ updatedAt: "2026-06-01"
|
||||||
# Workflow: Documentar Regras de Negócio de um Módulo
|
# Workflow: Documentar Regras de Negócio de um Módulo
|
||||||
|
|
||||||
Use este workflow com `/documentar-regras-negocio.global` para criar ou atualizar o arquivo
|
Use este workflow com `/documentar-regras-negocio.global` para criar ou atualizar o arquivo
|
||||||
`{modulo}.regras-negocio.md` de qualquer módulo TypeScript com lógica de negócio não-trivial.
|
`{modulo}.regras-negocio` de qualquer módulo TypeScript com lógica de negócio não-trivial.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ Identificar e anotar:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[2] Verificar se já existe um `.regras-negocio.md`
|
[2] Verificar se já existe um `.regras-negocio`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ls $(dirname <arquivo>)/*.regras-negocio.md 2>/dev/null
|
ls $(dirname <arquivo>)/*.regras-negocio.md 2>/dev/null
|
||||||
|
|
@ -38,9 +38,9 @@ ls $(dirname <arquivo>)/*.regras-negocio.md 2>/dev/null
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[3] Criar o arquivo `.regras-negocio.md`
|
[3] Criar o arquivo `.regras-negocio`
|
||||||
|
|
||||||
Nomenclatura: `{nome-sem-_inicial}.regras-negocio.md` na mesma pasta do módulo.
|
Nomenclatura: `{nome-sem-_inicial}.regras-negocio` na mesma pasta do módulo.
|
||||||
|
|
||||||
Preencher com o template da skill `documentar-regras-negocio.global`:
|
Preencher com o template da skill `documentar-regras-negocio.global`:
|
||||||
- Contexto
|
- Contexto
|
||||||
|
|
@ -68,19 +68,19 @@ Se já existia e está correto → sem mudança necessária.
|
||||||
|
|
||||||
Percorrer cada função do módulo:
|
Percorrer cada função do módulo:
|
||||||
|
|
||||||
- JSDoc com lista de regras de negócio → substituir por referência ao `.md`
|
- JSDoc com lista de regras de negócio → substituir por referência ao ``
|
||||||
- Manter apenas `@param` e `@returns` com informação técnica precisa
|
- Manter apenas `@param` e `@returns` com informação técnica precisa
|
||||||
- Comentários inline (`//`) explicando lógica pontual são aceitos → manter
|
- Comentários inline (`//`) explicando lógica pontual são aceitos → manter
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[6] Verificar consistência — código ↔ `.md`
|
[6] Verificar consistência — código ↔ ``
|
||||||
|
|
||||||
Para cada regra listada no `.md`:
|
Para cada regra listada no ``:
|
||||||
|
|
||||||
- [ ] Existe `if` correspondente no código
|
- [ ] Existe `if` correspondente no código
|
||||||
- [ ] A ordem de avaliação bate entre `.md` e código
|
- [ ] A ordem de avaliação bate entre `` e código
|
||||||
- [ ] Campos com separador de concatenação batem entre `.md` e código
|
- [ ] Campos com separador de concatenação batem entre `` e código
|
||||||
- [ ] `null` como neutro está implementado corretamente (`!= null`)
|
- [ ] `null` como neutro está implementado corretamente (`!= null`)
|
||||||
- [ ] Queries têm `orderBy` quando a posição dos resultados importa
|
- [ ] Queries têm `orderBy` quando a posição dos resultados importa
|
||||||
|
|
||||||
|
|
@ -1,41 +1,41 @@
|
||||||
{
|
{
|
||||||
"versao": "2.0.0",
|
"versao": "3.0.0",
|
||||||
"base_url": "https://paiol.idz.one/desenvolvimento/agent-ia",
|
"base_url": "https://paiol.idz.one/desenvolvimento/agent-ia",
|
||||||
"gerado_em": "2026-06-19T12:24:26-03:00",
|
"gerado_em": "2026-06-19T19:01:46-03:00",
|
||||||
"artefatos": {
|
"artefatos": {
|
||||||
"global": {
|
"global": {
|
||||||
"rules": [
|
"rules": [
|
||||||
"global/rules/autonomia-agente.md",
|
"global/rules/autonomia-agente",
|
||||||
"global/rules/carta-principios-agente-azteca.md",
|
"global/rules/carta-principios-agente-azteca",
|
||||||
"global/rules/escrita-natural.md",
|
"global/rules/escrita-natural",
|
||||||
"global/rules/feedback-visivel.md",
|
"global/rules/feedback-visivel",
|
||||||
"global/rules/fronteiras-monorepo.md",
|
"global/rules/fronteiras-monorepo",
|
||||||
"global/rules/jsdoc-padrao.md",
|
"global/rules/jsdoc-padrao",
|
||||||
"global/rules/limite-linhas.md",
|
"global/rules/limite-linhas",
|
||||||
"global/rules/mensagens-usuario.md",
|
"global/rules/mensagens-usuario",
|
||||||
"global/rules/regras-negocio-md.md",
|
"global/rules/regras-negocio-md",
|
||||||
"global/rules/typescript-sem-any.md",
|
"global/rules/typescript-sem-any",
|
||||||
"global/rules/zod-validacao-padrao.md"
|
"global/rules/zod-validacao-padrao"
|
||||||
],
|
],
|
||||||
"workflows": [
|
"workflows": [
|
||||||
"global/workflows/aprimorar-IA.md",
|
"global/workflows/aprimorar-IA",
|
||||||
"global/workflows/documentar-regras-negocio.md",
|
"global/workflows/documentar-regras-negocio",
|
||||||
"global/workflows/otimizar-codigos.md",
|
"global/workflows/otimizar-codigos",
|
||||||
"global/workflows/ux.md"
|
"global/workflows/ux"
|
||||||
],
|
],
|
||||||
"skills": [
|
"skills": [
|
||||||
"global/skills/criar-schema-zod/SKILL.md",
|
"global/skills/criar-schema-zod/SKILL",
|
||||||
"global/skills/diagnosticar-erros-build/SKILL.md",
|
"global/skills/diagnosticar-erros-build/SKILL",
|
||||||
"global/skills/documentar-decisao-tecnica/SKILL.md",
|
"global/skills/documentar-decisao-tecnica/SKILL",
|
||||||
"global/skills/documentar-dominio-modulo/SKILL.md",
|
"global/skills/documentar-dominio-modulo/SKILL",
|
||||||
"global/skills/documentar-regras-negocio/SKILL.md",
|
"global/skills/documentar-regras-negocio/SKILL",
|
||||||
"global/skills/mapear-codigo-fonte/SKILL.md",
|
"global/skills/mapear-codigo-fonte/SKILL",
|
||||||
"global/skills/orquestrar-agentes/SKILL.md"
|
"global/skills/orquestrar-agentes/SKILL"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"agents": {
|
"agents": {
|
||||||
"ag-agente": {
|
"ag-agente": {
|
||||||
"persona": "agents/ag-agente/persona.md",
|
"persona": "agents/ag-agente/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-arquiteto": {
|
"ag-arquiteto": {
|
||||||
"persona": "agents/ag-arquiteto/persona.md",
|
"persona": "agents/ag-arquiteto/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-back": {
|
"ag-back": {
|
||||||
"persona": "agents/ag-back/persona.md",
|
"persona": "agents/ag-back/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
@ -71,34 +71,34 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-comercial": {
|
"ag-comercial": {
|
||||||
"persona": "agents/ag-comercial/persona.md",
|
"persona": "agents/ag-comercial/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"workflows": [
|
"workflows": [
|
||||||
"agents/ag-comercial/workflows/comercial.md",
|
"agents/ag-comercial/workflows/comercial",
|
||||||
"agents/ag-comercial/workflows/marketing.md",
|
"agents/ag-comercial/workflows/marketing",
|
||||||
"agents/ag-comercial/workflows/orcamento.md",
|
"agents/ag-comercial/workflows/orcamento",
|
||||||
"agents/ag-comercial/workflows/reels.md"
|
"agents/ag-comercial/workflows/reels"
|
||||||
],
|
],
|
||||||
"skills": [
|
"skills": [
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-deploy": {
|
"ag-deploy": {
|
||||||
"persona": "agents/ag-deploy/persona.md",
|
"persona": "agents/ag-deploy/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"workflows": [
|
"workflows": [
|
||||||
"agents/ag-deploy/workflows/atualizar-agente.md"
|
"agents/ag-deploy/workflows/atualizar-agente"
|
||||||
],
|
],
|
||||||
"skills": [
|
"skills": [
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-documentacao": {
|
"ag-documentacao": {
|
||||||
"persona": "agents/ag-documentacao/persona.md",
|
"persona": "agents/ag-documentacao/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
@ -110,34 +110,34 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-front": {
|
"ag-front": {
|
||||||
"persona": "agents/ag-front/persona.md",
|
"persona": "agents/ag-front/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
"agents/ag-front/rules/estrutura-vue.md"
|
"agents/ag-front/rules/estrutura-vue"
|
||||||
],
|
],
|
||||||
"workflows": [
|
"workflows": [
|
||||||
"agents/ag-front/workflows/adicionar-ajuda.md",
|
"agents/ag-front/workflows/adicionar-ajuda",
|
||||||
"agents/ag-front/workflows/criar-fluxograma.md"
|
"agents/ag-front/workflows/criar-fluxograma"
|
||||||
],
|
],
|
||||||
"skills": [
|
"skills": [
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-refatorar": {
|
"ag-refatorar": {
|
||||||
"persona": "agents/ag-refatorar/persona.md",
|
"persona": "agents/ag-refatorar/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
"agents/ag-refatorar/rules/design-patterns-pragmatico.md",
|
"agents/ag-refatorar/rules/design-patterns-pragmatico",
|
||||||
"agents/ag-refatorar/rules/refatoracao-segura.md",
|
"agents/ag-refatorar/rules/refatoracao-segura",
|
||||||
"agents/ag-refatorar/rules/solid-compliance.md"
|
"agents/ag-refatorar/rules/solid-compliance"
|
||||||
],
|
],
|
||||||
"workflows": [
|
"workflows": [
|
||||||
"agents/ag-refatorar/workflows/refatorar-modulo.md"
|
"agents/ag-refatorar/workflows/refatorar-modulo"
|
||||||
],
|
],
|
||||||
"skills": [
|
"skills": [
|
||||||
"agents/ag-refatorar/skills/diagnosticar-code-smells/SKILL.md"
|
"agents/ag-refatorar/skills/diagnosticar-code-smells/SKILL"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-testes": {
|
"ag-testes": {
|
||||||
"persona": "agents/ag-testes/persona.md",
|
"persona": "agents/ag-testes/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
@ -149,7 +149,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ag-ux": {
|
"ag-ux": {
|
||||||
"persona": "agents/ag-ux/persona.md",
|
"persona": "agents/ag-ux/persona",
|
||||||
"rules": [
|
"rules": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ if [ -n "$RESULTADO" ]; then
|
||||||
echo "$RESULTADO"
|
echo "$RESULTADO"
|
||||||
VIOLACOES=$(printf '%s\n' "$RESULTADO" | wc -l | tr -d ' ')
|
VIOLACOES=$(printf '%s\n' "$RESULTADO" | wc -l | tr -d ' ')
|
||||||
printf "\n❌ %s arquivo(s) violam o limite de %s linhas.\n" "$VIOLACOES" "$LIMITE"
|
printf "\n❌ %s arquivo(s) violam o limite de %s linhas.\n" "$VIOLACOES" "$LIMITE"
|
||||||
printf "\n Resolva usando o arquivo: .agent/workflows/otimizar-codigos.global.md\n"
|
printf "\n Resolva usando o arquivo: .agent/global/workflows/otimizar-codigos\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue