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:
Luiz Silva 2026-06-19 16:04:37 -03:00
parent 22023df81e
commit bf9be375e2
58 changed files with 506 additions and 514 deletions

View file

@ -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
View 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
View file

@ -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}/`

View file

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

View file

View file

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

View file

@ -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"
} }

View file

@ -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"
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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/` |

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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/` |

View file

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

View file

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

View file

@ -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 ' ')"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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": [
], ],

View file

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