agim-orchestrator 0.0.0-stage → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.opencode/skills/analise-de-legado/SKILL.md +173 -0
  2. package/.opencode/skills/auditoria-de-seguranca/SKILL.md +291 -0
  3. package/.opencode/skills/bible-rag-search/SKILL.md +190 -0
  4. package/.opencode/skills/code-review-and-quality/SKILL.md +302 -0
  5. package/.opencode/skills/code-simplification/SKILL.md +144 -0
  6. package/.opencode/skills/entrevista-orquestradora/SKILL.md +391 -0
  7. package/.opencode/skills/graphify-integration/SKILL.md +206 -0
  8. package/.opencode/skills/planejamento-de-tarefas/SKILL.md +156 -0
  9. package/.opencode/skills/revisao-de-interface/SKILL.md +201 -0
  10. package/.opencode/skills/revisao-final/SKILL.md +223 -0
  11. package/.opencode/skills/seguranca-continua/SKILL.md +296 -0
  12. package/.opencode/skills/spec-driven-development/SKILL.md +236 -0
  13. package/.opencode/skills/systematic-debugging/SKILL.md +176 -0
  14. package/.opencode/skills/testes-com-roteiro/SKILL.md +291 -0
  15. package/.opencode/skills/verification-before-completion/SKILL.md +264 -0
  16. package/AGENTS.en.md +346 -0
  17. package/AGENTS.md +346 -0
  18. package/ARCHITECTURE.md +761 -0
  19. package/CHANGELOG.md +138 -0
  20. package/CONTRIBUTING.md +423 -0
  21. package/INDEX.md +235 -0
  22. package/INOVACOES-AGIM.md +223 -0
  23. package/INTERVIEW.md +290 -0
  24. package/LICENSE +21 -0
  25. package/ORCHESTRATOR.md +228 -0
  26. package/README.en.md +374 -0
  27. package/README.md +373 -2
  28. package/SECURITY.md +50 -0
  29. package/SKILLS-CATALOG.md +295 -0
  30. package/SKILLS-SELECTION-MATRIX.md +182 -0
  31. package/SUB-AGENTES-AGIM.md +328 -0
  32. package/TOOLS-AND-MCP.md +365 -0
  33. package/checklists/DESENVOLVIMENTO.md +282 -0
  34. package/checklists/ENTREGA.md +272 -0
  35. package/checklists/INICIO.md +135 -0
  36. package/checklists/PUBLICACAO.md +299 -0
  37. package/checklists/REVISAO-DE-CODIGO.md +190 -0
  38. package/checklists/ROTEIRO-DE-TESTES.md +694 -0
  39. package/checklists/SEGURANCA.md +231 -0
  40. package/checklists/TESTES.md +215 -0
  41. package/checklists/USO-DE-IA.md +223 -0
  42. package/docs/ARQUITETURA.md +1414 -0
  43. package/docs/BOOTSTRAP-AMBIENTE.md +348 -0
  44. package/docs/CODIGO-LIMPO.md +708 -0
  45. package/docs/CONFIGURATION.md +226 -0
  46. package/docs/DECISOES-TECNICAS.md +518 -0
  47. package/docs/FERRAMENTAS-IA.md +406 -0
  48. package/docs/GITHUB.md +189 -0
  49. package/docs/IA-E-CONTEXTO.md +419 -0
  50. package/docs/QUICKSTART.md +198 -0
  51. package/docs/SEGURANCA.md +788 -0
  52. package/docs/SKILL-SYNERGY-TESTS.md +292 -0
  53. package/docs/SKILLS-REFERENCE.md +194 -0
  54. package/docs/TESTES.md +871 -0
  55. package/docs/TROUBLESHOOTING.md +377 -0
  56. package/docs/VALIDACAO-DO-REPOSITORIO.md +327 -0
  57. package/docs/VALIDACAO-USABILIDADE-4-CAMADAS.md +261 -0
  58. package/exemplos/arquitetura-modular/backend/prisma/schema.prisma +124 -0
  59. package/exemplos/arquitetura-modular/backend/src/controllers/usuarios.controller.ts +68 -0
  60. package/exemplos/arquitetura-modular/backend/src/repositories/usuarios.repository.ts +101 -0
  61. package/exemplos/arquitetura-modular/backend/src/routes/usuarios.routes.ts +58 -0
  62. package/exemplos/arquitetura-modular/backend/src/services/usuarios.service.ts +86 -0
  63. package/exemplos/arquitetura-modular/backend/src/types/usuario.types.ts +55 -0
  64. package/exemplos/arquitetura-modular/backend/src/validators/usuarios.validator.ts +61 -0
  65. package/exemplos/arquitetura-modular/frontend/src/hooks/useUsuarios.ts +63 -0
  66. package/exemplos/arquitetura-modular/frontend/src/pages/Usuarios/Lista.tsx +327 -0
  67. package/exemplos/arquitetura-modular/frontend/src/services/usuarios.api.ts +28 -0
  68. package/exemplos/arquitetura-modular/frontend/src/types/usuario.types.ts +63 -0
  69. package/package.json +67 -6
  70. package/scripts/agim-cli.cjs +332 -0
  71. package/scripts/auto-flow.cjs +395 -0
  72. package/scripts/bible-rag-index.js +169 -0
  73. package/scripts/bible-rag-search.js +162 -0
  74. package/scripts/bootstrap-detect.cjs +264 -0
  75. package/scripts/bootstrap-init.cjs +442 -0
  76. package/scripts/bootstrap-validate.cjs +302 -0
  77. package/scripts/check-content.mjs +236 -0
  78. package/scripts/config-schema.cjs +219 -0
  79. package/scripts/core-link.cjs +199 -0
  80. package/scripts/detect-resources.cjs +71 -0
  81. package/scripts/doctor.cjs +231 -0
  82. package/scripts/entrevista-orquestradora.cjs +317 -0
  83. package/scripts/lib/agents-md.cjs +279 -0
  84. package/scripts/lib/fs-utils.cjs +142 -0
  85. package/scripts/security-audit.cjs +168 -0
  86. package/scripts/status.cjs +86 -0
  87. package/scripts/sync-agents-md.cjs +109 -0
  88. package/scripts/teste-definitivo-1-ci.cjs +83 -0
  89. package/scripts/teste-definitivo-2-auditoria.cjs +240 -0
  90. package/scripts/teste-definitivo-3-ciclo.cjs +230 -0
  91. package/scripts/validar-estrutura.cjs +209 -0
  92. package/scripts/validar-exemplos.cjs +53 -0
  93. package/scripts/validar-links.cjs +111 -0
  94. package/scripts/validate-package.cjs +141 -0
  95. package/templates/AGENTS.md +290 -0
  96. package/templates/ARQUITETURA.md +363 -0
  97. package/templates/AUDITORIA-SEGURANCA.md +202 -0
  98. package/templates/DECISAO-TECNICA.md +161 -0
  99. package/templates/DIVIDA-TECNICA.md +322 -0
  100. package/templates/ESPECIFICACAO-FUNCIONAL.md +331 -0
  101. package/templates/PLANO-IMPLEMENTACAO.md +317 -0
  102. package/templates/PLANO-TESTES.md +180 -0
  103. package/templates/README.md +390 -0
  104. package/templates/REGISTRO-INCIDENTE.md +226 -0
  105. package/templates/RELATORIO-ENTREGA.md +284 -0
  106. package/templates/REVISAO-CODIGO.md +196 -0
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: analise-de-legado
3
+ description: "Inspeciona arquitetura, módulos, dependências e riscos antes de refatorações. Preserva funcionalidades e NÃO modifica código quando a solicitação for somente de análise. Baseada em reverse-engineer-anything, code-simplification e graphify."
4
+ argument-hint: "[caminho-projeto] [foco-opcional]"
5
+ license: MIT
6
+ metadata:
7
+ author: meu-padrao-de-desenvolvimento
8
+ version: "1.0.0"
9
+ domains: ["analise-legado", "engenharia-reversa", "refatoracao", "arquitetura"]
10
+ triggers: ["analisar legado", "entender código existente", "riscos refatoração", "mapear dependências", "documentar arquitetura"]
11
+ ---
12
+
13
+ # Skill: Análise de Legado
14
+
15
+ ## Objetivo
16
+ Compreender profundamente um código existente (legado ou não) antes de propor mudanças, identificando arquitetura, módulos, dependências, dívida técnica, riscos e oportunidades - **sem modificar o código** a menos que explicitamente solicitado para correção pontual.
17
+
18
+ ## Quando Ativar
19
+ - Antes de refatorar/migrar sistema existente
20
+ - Onboarding em código desconhecido
21
+ - Auditoria técnica ou due diligence
22
+ - Documentação de arquitetura atual
23
+ - Investigação de bugs recorrentes
24
+ - Planejamento de migração/strangler fig
25
+
26
+ ## Pré-condições
27
+ - Acesso ao código fonte (repositório local)
28
+ - `graphify` disponível (se instalado) para grafo de dependências
29
+ - Permissão de leitura em todo o projeto
30
+ - AGENTS.md e docs/ARQUITETURA.md lidos
31
+
32
+ ## Procedimento de Execução
33
+
34
+ ### Passo 1: Reconhecimento Inicial
35
+ 1. **Estrutura geral**: `ls -la`, `tree` ou `glob` para mapear diretórios
36
+ 2. **Arquivos de configuração**: package.json, tsconfig, prisma/schema, docker, CI/CD
37
+ 3. **Entry points**: main, server, app, routes, index
38
+ 3. **Documentação existente**: README, ARCHITECTURE, ADRs, comentários de arquitetura
39
+
40
+ ### Passo 2: Mapear Arquitetura (Graphify + Inspeção)
41
+ **Se graphify disponível:**
42
+ - `graphify build` (se não existe `graphify-out/`)
43
+ - `graphify query "arquitetura geral do projeto"`
44
+ - `graphify query "módulos principais e dependências"`
45
+ - `graphify query "fluxo de dados: request → response"`
46
+
47
+ **Inspeção manual complementar:**
48
+ - Identificar camadas: routes → controllers → services → repositories → DB
49
+ - Padrões: modular, layered, feature-based, clean architecture
50
+ - Convenções: naming, estrutura pastas, imports, exports
51
+
52
+ ### Passo 3: Analisar Módulos e Dependências
53
+ Para cada módulo principal:
54
+ | Módulo | Responsabilidade | Arquivos-chave | Dependências Internas | Dependências Externas | Acoplamento |
55
+ |--------|-----------------|----------------|----------------------|----------------------|-------------|
56
+
57
+ **Métricas de acoplamento:**
58
+ - Import fan-in/out
59
+ - Dependências circulares (`madge --circular` ou similar)
60
+ - Uso de `any`, `unknown`, type assertions excessivas
61
+ - God classes/modules (arquivos > 500 linhas, muitas responsabilidades)
62
+
63
+ ### Passo 4: Identificar Dívida Técnica e Riscos
64
+ **Checklist sistemático:**
65
+ - [ ] **Arquivos grandes** (>300 linhas) sem separação clara
66
+ - [ ] **Dependências circulares** entre módulos
67
+ - [ ] **Duplicação de código** (funções, validações, tipos)
68
+ - [ ] **`any` excessivo** / tipagem fraca
69
+ - [ ] **Testes ausentes** ou insuficientes (cobertura < 70%)
70
+ - [ ] **Segredos no código** / `.env` commitado
71
+ - [ ] **Logs de debug** em produção
72
+ - [ ] **Tratamento de erro inconsistente** / `try/catch` vazio
73
+ - [ ] **Validação apenas no frontend** (sem backend)
74
+ - [ ] **Queries N+1** / performance suspeita
75
+ - [ ] **Migrações perigosas** (drop column, rename sem expand/contract)
76
+ - [ ] **Dependências desatualizadas/vulneráveis** (`npm audit`)
77
+ - [ ] **Código morto** / imports não utilizados / feature flags órfãs
78
+ - [ ] **Segurança**: authZ ausente, SQL injection, XSS, CSRF
79
+
80
+ ### Passo 5: Analisar Fluxos Críticos
81
+ Para cada fluxo principal (ex: login, criar pedido, pagamento):
82
+ 1. Rastrear: Route → Controller → Service → Repository → DB → Response
83
+ 2. Identificar: validações, transações, eventos, side effects
84
+ 3. Verificar: idempotência, rollback, observabilidade, timeouts
85
+
86
+ ### Passo 6: Avaliar Testabilidade
87
+ - Cobertura atual (unit, integration, e2e)
88
+ - Mocks necessários vs dependências reais
89
+ - Fixtures/factories existentes
90
+ - CI/CD pipeline funcionando
91
+
92
+ ### Passo 7: Documentar Achados
93
+ **Relatório de Análise:**
94
+ ```
95
+ ## Análise de Legado: [Projeto/Sistema]
96
+
97
+ ### Visão Geral
98
+ - Stack: ...
99
+ - Tamanho: X arquivos, Y linhas, Z módulos
100
+ - Arquitetura: [modular/layered/monolito/outro]
101
+
102
+ ### Módulos Principais
103
+ | Módulo | Arquivos | Responsabilidade | Riscos |
104
+
105
+ ### Dependências Críticas
106
+ - Circulares: ...
107
+ - Externas desatualizadas: ...
108
+ - Acoplamento forte: ...
109
+
110
+ ### Dívida Técnica (Priorizada)
111
+ 1. [Crítico] ...
112
+ 2. [Alto] ...
113
+ 3. [Médio] ...
114
+ 4. [Baixo] ...
115
+
116
+ ### Riscos de Refatoração
117
+ | Risco | Probabilidade | Impacto | Mitigação |
118
+
119
+ ### Oportunidades de Melhoria
120
+ - Quick wins: ...
121
+ - Médio prazo: ...
122
+ - Arquitetural: ...
123
+
124
+ ### Recomendações
125
+ 1. Não tocar em: [módulos estáveis]
126
+ 2. Refatorar primeiro: [módulos de alto risco/valor]
127
+ 3. Testes necessários antes: ...
128
+ 4. Estrangulamento sugerido: ...
129
+ ```
130
+
131
+ ### Passo 8: Entregar (Somente Análise)
132
+ **Se solicitação for "apenas analisar":** Entregar relatório acima, **não modificar código**.
133
+ **Se solicitação incluir correção:** Aplicar apenas correções pontuais acordadas (ex: remover `console.log`, corrigir typo em comentário, ajustar import), documentando cada mudança.
134
+
135
+ ## Ferramentas Necessárias
136
+ - `graphify` (grafo conhecimento)
137
+ - `madge` / `depcruise` (dependências circulares)
138
+ - `grep`/`rg` (busca padrões)
139
+ - `cloc` / `tokei` (estatísticas código)
140
+ - `npm audit` / `pnpm audit` (vulnerabilidades)
141
+ - `tools.context7` (docs libs externas encontradas)
142
+
143
+ ## Limites de Responsabilidade
144
+ - **NÃO** refatora código (skill `code-simplification` ou implementação)
145
+ - **NÃO** escreve testes (skill `testes-com-roteiro` + `test-driven-development`)
146
+ - **NÃO** decide migração de stack (requer decisão arquitetural)
147
+ - **SIM** identifica o que precisa ser feito, em que ordem, com que riscos
148
+ - **SIM** preserva funcionalidades existentes como regra absoluta
149
+
150
+ ## Critérios de Aceitação
151
+ - [ ] Arquitetura mapeada com módulos e responsabilidades
152
+ - [ ] Dependências (internas/externas) documentadas
153
+ - [ ] Dívida técnica priorizada com evidências
154
+ - [ ] Riscos de refatoração identificados com mitigações
155
+ - [ ] Recomendações acionáveis e priorizadas
156
+ - [ ] Código **não modificado** (salvo correções pontuais acordadas)
157
+ - [ ] Relatório salvo em `memoria/` ou `docs/` conforme acordado
158
+
159
+ ## Tratamento de Falhas
160
+ | Falha | Ação |
161
+ |-------|------|
162
+ | Código muito grande para análise completa | Amostragem representativa + foco em áreas de mudança |
163
+ | Graphify não disponível | Inspeção manual + `madge` + documentação existente |
164
+ | Dependências circulares massivas | Documentar como risco crítico, sugerir estrangulamento gradual |
165
+ | Código sem testes e alta complexidade | Recomendar testes de caracterização antes de qualquer mudança |
166
+ | Segredos encontrados | Reportar imediatamente, não expor no relatório, sugerir rotação |
167
+
168
+ ## Formato de Entrega
169
+ Relatório em Markdown salvo em `docs/ANALISE-LEGADO-[projeto]-[data].md` ou `memoria/ANALISE-LEGADO-[timestamp].md`
170
+
171
+ ## Referências
172
+ - `docs/ARQUITETURA.md`, `docs/CODIGO-LIMPO.md`, `docs/SEGURANCA.md`
173
+ - `graphify` plugin, `madge`, `depcruise`, `code-simplification` skill
@@ -0,0 +1,291 @@
1
+ ---
2
+ name: auditoria-de-seguranca
3
+ description: "Examina autenticação, autorização, validações, exposição de segredos, configuração, dependências e riscos relevantes. Baseada em security-and-hardening, code-review-and-quality e docs/SEGURANCA.md."
4
+ argument-hint: "[caminho-projeto] [escopo: completa|auth|api|infra|deps]"
5
+ license: MIT
6
+ metadata:
7
+ author: meu-padrao-de-desenvolvimento
8
+ version: "1.0.0"
9
+ domains: ["seguranca", "auditoria", "auth", "autorizacao", "validacao", "secrets", "dependencias"]
10
+ triggers: ["auditoria segurança", "revisão segurança", "vulnerabilidades", "auth authorization", "secrets", "dependências"]
11
+ ---
12
+
13
+ # Skill: Auditoria de Segurança
14
+
15
+ ## Objetivo
16
+ Realizar auditoria sistemática de segurança em aplicações, identificando vulnerabilidades reais, classificando por severidade, apresentando evidências e recomendações de mitigação - **sem executar ações destrutivas ou não autorizadas**.
17
+
18
+ ## Quando Ativar
19
+ - Pré-deploy / release candidato
20
+ - Auditoria periódica (trimestral/semestral)
21
+ - Implementação de auth/autorização/dados sensíveis
22
+ - Code review com foco em segurança
23
+ - Investigação de incidente suspeito
24
+ - Compliance (LGPD, PCI-DSS, etc.)
25
+
26
+ ## Pré-condições
27
+ - Acesso ao código fonte completo
28
+ - `docs/SEGURANCA.md` e `checklists/SEGURANCA.md` lidos
29
+ - `npm audit` / `pnpm audit` disponível
30
+ - Permissão apenas de **leitura e análise** (não execução de exploits)
31
+
32
+ ## Procedimento de Execução
33
+
34
+ ### Passo 1: Definir Escopo e Limites
35
+ | Escopo | Inclui |
36
+ |--------|--------|
37
+ | **completa** | Auth, AuthZ, Validação, Secrets, Config, Deps, Infra, Logs |
38
+ | **auth** | Login, registro, tokens, sessões, MFA, recuperação senha |
39
+ | **api** | Rate limit, CORS, headers, validação, authZ por endpoint |
40
+ | **infra** | Headers, TLS, CSP, HSTS, cookies, deploy, secrets management |
41
+ | **deps** | `npm audit`, Snyk, licenças, supply chain |
42
+
43
+ **Limites obrigatórios:**
44
+ - **NÃO** executar exploits, fuzzing, SQL injection real
45
+ - **NÃO** acessar dados de produção/reais
46
+ - **NÃO** modificar código (apenas relatar)
47
+ - **NÃO** expor segredos encontrados no relatório (referenciar apenas)
48
+
49
+ ### Passo 2: Autenticação e Autorização (Auth/AuthZ)
50
+ **Verificar com evidências (código + config):**
51
+
52
+ | Item | Verificação | Evidência Esperada |
53
+ |------|-------------|-------------------|
54
+ | Hash senhas | Argon2id (preferencial) ou bcrypt ≥12 rounds | `argon2` ou `bcrypt` import, parâmetros |
55
+ | Senhas texto puro | **NENHUMA** | Grep por `password`/`senha` em logs/DB/code |
56
+ | JWT | RS256 (assimétrico) preferencial, expiração ≤15min | `jsonwebtoken` config, `JWT_PRIVATE_KEY` |
57
+ | Refresh token | Rotação a cada uso, hash no DB, expiração ≤7d | Schema DB, rota `/refresh` |
58
+ | Cookies | HttpOnly, Secure, SameSite=lax/strict | `cookieOptions` no código |
59
+ | Rate limit auth | 5 tent/15min por IP + conta | `express-rate-limit` config |
60
+ | MFA/2FA | TOTP ou WebAuthn (opcional mas recomendado) | `otplib`/`@simplewebauthn` |
61
+ | Tentativas login | Bloqueio progressivo, reset após janela | Contador + timestamp no Redis/memória |
62
+
63
+ **AuthZ (Autorização) - CRÍTICO:**
64
+ - [ ] Middleware `autorizar` em **TODAS** rotas protegidas
65
+ - [ ] RBAC: roles/permissions granulares (não apenas "admin/user")
66
+ - [ ] Verificação propriedade recurso (IDOR prevention): `userId === resource.ownerId`
67
+ - [ ] Admin bypass auditado (logs de ações admin)
68
+ - [ ] Matriz permissão × endpoint documentada
69
+
70
+ ### Passo 3: Validação e Sanitização de Entrada
71
+ | Vetor | Verificação | Ferramenta/Evidência |
72
+ |-------|-------------|---------------------|
73
+ | SQL Injection | Apenas Prisma/parameterized queries | Grep: `$queryRaw`, `$executeRaw`, string concat |
74
+ | XSS (Reflected/Stored) | Zod validation + DOMPurify output | Zod schemas + `isomorphic-dompurify` |
75
+ | CSRF | SameSite cookies + double-submit token | `csurf` ou custom token |
76
+ | SSRF | Allowlist domínios fetch externo | Config fetch, validação URL |
77
+ | Path Traversal | Validação path, `path.resolve()` + prefix check | Upload/download handlers |
78
+ | Prototype Pollution | `Object.freeze()` config, validação keys | `lodash.merge`/`defaultsDeep` usage |
79
+ | XXE | Parser XML seguro (se aplica) | `libxmljs` config |
80
+ | File Upload | MIME real (magic bytes) + allowlist + sanitização | `file-type`, `sharp`, antivirus |
81
+
82
+ **Validação backend = barreira obrigatória:**
83
+ - [ ] Zod schemas em **TODOS** endpoints (body, params, query)
84
+ - [ ] Rejeição campos extras (`strict()` ou `passthrough()` controlado)
85
+ - [ ] Unicidade verificada no service **antes** de persistir
86
+ - [ ] Integridade referencial (FKs) verificada no service
87
+
88
+ ### Passo 4: Proteção da Aplicação
89
+ | Camada | Verificação | Config Esperada |
90
+ |--------|-------------|----------------|
91
+ | Rate Limiting | Global API + endpoints sensíveis | `express-rate-limit`: 100req/min global, 5/15min auth |
92
+ | CORS | Allowlist explícita (não `*`) | `origin: ['https://app.dominio.com']` |
93
+ | Headers Segurança | Helmet.js configurado | CSP, HSTS, X-Frame-Options, Referrer-Policy |
94
+ | TLS | Apenas HTTPS em produção | `sslmode=require`, certificado válido |
95
+ | Error Handling | Sem stack trace em produção | `NODE_ENV=production` → generic 500 |
96
+ | Logging | Estruturado, sem segredos | Pino/Winston + sanitização (senhas, tokens, PII) |
97
+
98
+ ### Passo 5: Gestão de Segredos e Configuração
99
+ | Item | Verificação | Evidência |
100
+ |------|-------------|-----------|
101
+ | `.env` no `.gitignore` | Sim | `git check-ignore .env` |
102
+ | `.env.example` no Git | Sim, valores fictícios | Arquivo existe, sem valores reais |
103
+ | Validação startup | Zod schema + fail fast | `getEnv()` com `safeParse` |
104
+ | Segredos no frontend | **NENHUM** em `VITE_*` | Build analysis: `grep -r "VITE_" dist/` |
105
+ | Chaves JWT | Assimétricas (RS256) | `JWT_PRIVATE_KEY`, `JWT_PUBLIC_KEY` env |
106
+ | Secrets em logs | Sanitização automática | Pino/Winston + `serializers` deny list |
107
+
108
+ ### Passo 6: Banco de Dados (PostgreSQL + Prisma)
109
+ | Item | Verificação |
110
+ |-------|-------------|
111
+ | Usuário DB | Role dedicada (`app_user`), **NÃO** superuser |
112
+ | Permissões | Grants mínimos: SELECT/INSERT/UPDATE/DELETE apenas tabelas app |
113
+ | Soft delete | `deletedAt` em tabelas sensíveis |
114
+ | Constraints | `@unique`, `@relation(onDelete: Cascade/SetNull)`, `@@index` |
115
+ | Transações | `$transaction` para operações multi-tabela atômicas |
116
+ | Migrations | Versionadas no Git, revisadas antes de deploy |
117
+ | Backup | Automático diário + PITR ≥ 7 dias + teste restore mensal |
118
+ | Criptografia | Em repouso (AES-256) + trânsito (TLS 1.3) |
119
+
120
+ ### Passo 7: Dependências e Supply Chain
121
+ - [ ] `npm audit --audit-level=high` → **0 high/critical**
122
+ - [ ] Dependabot/Renovate configurado (PRs automáticos)
123
+ - [ ] `package-lock.json` / `pnpm-lock.yaml` commitado
124
+ - [ ] Lockfile versionado, sem `*` ou `^` em deps críticas
125
+ - [ ] Auditoria mensal: `npm outdated`, revisar CHANGELOGS
126
+ - [ ] Pacotes suspeitos: verificar mantenedores, downloads, última atualização
127
+
128
+ ### Passo 8: Infraestrutura e Deploy
129
+ | Item | Verificação |
130
+ |-------|-------------|
131
+ | Variáveis produção | Validadas, separadas de dev/staging |
132
+ | Segredos em CI/CD | GitHub Secrets / Vercel Env / Doppler (não no código) |
133
+ | Deploy | Preview automático + aprovação manual para prod |
134
+ | Rollback | Documentado, testado, < 5 min |
135
+ | Monitoramento | Alertas: 5xx spike, auth failures, rate limit hits, latency p95 |
136
+ | Logs agregados | Structured JSON, retenção ≥ 1 ano (segurança) |
137
+
138
+ ### Passo 9: Matriz de Riscos (Obrigatória)
139
+ Para cada achado, preencher:
140
+ | ID | Risco | Severidade | Impacto | Evidência (arquivo:linha) | Mitigação | Status |
141
+ |----|-------|------------|---------|---------------------------|-----------|--------|
142
+ | SEC-001 | JWT secret fraco | Crítico | Total conta compromise | `config/jwt.ts:12` (HS256) | Migrar RS256 + rotação | ABERTO |
143
+
144
+ **Severidade:** Crítico > Alto > Médio > Baixo > Informativo
145
+ **Status:** ABERTO | MITIGADO | ACEITO (com justificativa) | FALSO POSITIVO
146
+
147
+ ### Passo 10: Relatório de Auditoria
148
+ ```
149
+ # Auditoria de Segurança: [Projeto] - [Data]
150
+
151
+ ## Escopo
152
+ - Tipo: [completa|auth|api|infra|deps]
153
+ - Arquivos analisados: X
154
+ - Linhas de código: Y
155
+ - Ferramentas: npm audit, grep, inspeção manual, Context7
156
+
157
+ ## Sumário Executivo
158
+ - Total achados: X (Crítico: Y, Alto: Z, Médio: W, Baixo: V)
159
+ - Riscos críticos não mitigados: [lista]
160
+ - Conformidade geral: [Aprovado | Condicional | Reprovado]
161
+
162
+ ## Achados por Categoria
163
+ ### Autenticação/Autorização (Crítico: Y, Alto: Z)
164
+ | ID | Achado | Severidade | Arquivo:Linha | Mitigação |
165
+
166
+ ### Validação Entrada
167
+ ...
168
+
169
+ ### Segredos/Config
170
+ ...
171
+
172
+ ### Dependências
173
+ - npm audit: X high, Y critical
174
+ - Dependabot: [configurado|não]
175
+
176
+ ### Infra/Deploy
177
+ ...
178
+
179
+ ## Riscos Críticos Não Mitigados
180
+ [Lista - bloqueiam deploy se houver]
181
+
182
+ ## Recomendações Priorizadas
183
+ 1. **Imediato (Críticos)**: ...
184
+ 2. **Esta Sprint (Altos)**: ...
185
+ 3. **Backlog (Médios/Baixos)**: ...
186
+
187
+ ## Checklist de Conformidade (Anexo)
188
+ - [ ] checklists/SEGURANCA.md completo
189
+ ```
190
+
191
+ ### Passo 11: Entregar
192
+ **Somente relatório.** Não modificar código, não executar exploits, não expor segredos.
193
+
194
+ ## Ferramentas Necessárias
195
+ - `npm audit` / `pnpm audit` / `yarn audit`
196
+ - `grep`/`rg` para busca padrões inseguros
197
+ - `tools.context7` para docs de libs (ex: configuração segura Prisma, Express)
198
+ - `checklists/SEGURANCA.md` como guia
199
+ - `docs/SEGURANCA.md` como referência técnica
200
+
201
+ ---
202
+
203
+ ## EXECUCAO OBRIGATORIA COM SUB-AGENTES (Shift-Left)
204
+
205
+ > **REGRA AGIM:** 5 areas independentes + ganho >75% = **SUB-AGENTES OBRIGATORIOS**
206
+
207
+ ### Procedimento Padrao (SEMPRE usar quando escopo = "completa")
208
+
209
+ ```javascript
210
+ // Em vez de sequencial (20s+):
211
+ // Lance 5 sub-agentes PARALELOS (um por area)
212
+
213
+ const AREAS = [
214
+ "Auth/AuthZ - middleware, RBAC, IDOR, tokens, rate limit, MFA, cookies",
215
+ "Validacao - Zod schemas, sanitizacao, SQLi, XSS, CSRF, SSRF, path traversal, prototype pollution, upload",
216
+ "Secrets/Config - .env, VITE_*, JWT keys, startup validation Zod, .gitignore, TLS",
217
+ "Dependencias - npm audit, Snyk, licencas, supply chain, versoes desatualizadas",
218
+ "Infra - Headers (CSP/HSTS/X-Frame), TLS, rate limit global, CORS, logs sanitizados, error handling"
219
+ ];
220
+
221
+ const results = await Promise.all(
222
+ AREAS.map(area => subagent({
223
+ agent: "general",
224
+ description: `Security audit ${area.split("-")[0]}`,
225
+ prompt: `[AGIM SUB-AGENT PROTOCOL]
226
+ Before starting: Read AGENTS.md (project root) → memoria/ESTADO-ATUAL.md → memoria/PROXIMO-PASSO.md
227
+ Follow AGIM protocol: Use memoria/ for continuity, checklists/ for validation, docs/ for standards.
228
+
229
+ Audit security for: ${area}. Use checklists/SEGURANCA.md, docs/SEGURANCA.md.
230
+ Return findings with file:line evidence, severity (CRITICAL/HIGH/MEDIUM/LOW), mitigation.
231
+ Log results to memoria/HISTORICO-DE-EXECUCAO.md when done.`
232
+ }))
233
+ );
234
+
235
+ // Agregue resultados
236
+ const aggregated = aggregateSecurityResults(results);
237
+
238
+ // LOG OBRIGATORIO
239
+ await logToHistory("auditoria-de-seguranca", {
240
+ subAgents: 5,
241
+ timeTotal: "~5s",
242
+ estimatedSequential: "~20s",
243
+ savings: "75%",
244
+ findings: aggregated
245
+ });
246
+
247
+ return aggregated;
248
+ ```
249
+
250
+ ### Checklist de Execucao (OBRIGATORIO)
251
+
252
+ - [ ] 5 sub-agentes lancados em paralelo (escopo = completa)
253
+ - [ ] Cada um com area especifica e prompt detalhado
254
+ - [ ] Timeout 60s configurado por sub-agente
255
+ - [ ] Resultados agregados com matriz de riscos consolidada
256
+ - [ ] Log no `memoria/HISTORICO-DE-EXECUCAO.md` com tempo economia
257
+
258
+ ---
259
+
260
+ ## Limites de Responsabilidade
261
+ - **NÃO** executa pentest/DAST real (ex: OWASP ZAP, Burp Suite)
262
+ - **NÃO** acessa ambiente de produção ou dados reais
263
+ - **NÃO** modifica código (skill `security-and-hardening` para implementar correções)
264
+ - **NÃO** decide aceitação de risco (apresenta, usuário decide)
265
+ - **SIM** identifica com evidência código:linha, classifica, recomenda mitigação
266
+
267
+ ## Critérios de Aceitação
268
+ - [ ] Escopo definido e comunicado
269
+ - [ ] Todas categorias no escopo auditadas com evidência código:linha
270
+ - [ ] Matriz de riscos preenchida com severidade, evidência, mitigação
271
+ - [ ] Relatório entregue sem segredos expostos
272
+ - [ ] Código **não modificado**
273
+ - [ ] Checklist `checklists/SEGURANCA.md` usado como guia
274
+
275
+ ## Tratamento de Falhas
276
+ | Falha | Ação |
277
+ |-------|------|
278
+ | Código muito grande para auditoria completa | Amostragem baseada em risco (auth, API, upload, payments) |
279
+ | Segredo encontrado em código | Reportar IMEDIATAMENTE ao usuário, não incluir no relatório escrito, sugerir rotação |
280
+ | Dependência crítica vulnerável sem patch | Documentar como risco aceito temporariamente, mitigação compensatória (WAF, monitoramento) |
281
+ | AuthZ ausente em endpoints | Classificar como Crítico, bloquear deploy até correção |
282
+ | Falso positivo `npm audit` | Verificar contexto, documentar como FALSO POSITIVO com justificativa |
283
+
284
+ ## Formato de Entrega
285
+ Relatório em `docs/AUDITORIA-SEGURANCA-[projeto]-[data].md` (sem segredos)
286
+
287
+ ## Referências
288
+ - `checklists/SEGURANCA.md` - Checklist executável completo
289
+ - `docs/SEGURANCA.md` - Referência técnica detalhada
290
+ - `security-and-hardening` skill (implementação correções)
291
+ - `code-review-and-quality` skill (revisão qualidade + segurança)
@@ -0,0 +1,190 @@
1
+ name: bible-rag-search
2
+ description: Busca semântica no AGENT-BIBLE via ChromaDB local. Retorna apenas trechos relevantes (~2KB vs 50KB full docs). Reduz tokens 90%+. Indexa docs/, checklists/, templates/, skills/ na inicialização.
3
+
4
+ ---
5
+
6
+ # Skill: bible-rag-search
7
+
8
+ ## Objetivo
9
+ **Busca semântica eficiente no AGENT-BIBLE.** Em vez de carregar docs inteiros (27KB cada), retorna apenas os 3-5 trechos mais relevantes (~2KB total). Reduz contexto de 50-80K para 5-15K tokens por sessão.
10
+
11
+ ## Quando Ativar
12
+ - **SEMPRE** que a IA precisar consultar o Bible para:
13
+ - "Como configurar X?"
14
+ - "Qual o padrão para Y?"
15
+ - "Exemplo de Z?"
16
+ - Qualquer dúvida técnica sobre padrões do Bible
17
+ - Substitui leitura completa de `docs/*.md`, `checklists/*.md`, `templates/*.md`
18
+
19
+ ## Pré-condições
20
+ - ChromaDB local em `~/.agent-bible/rag_index/`
21
+ - Índice construído na primeira execução (auto)
22
+ - `@xenova/transformers` para embeddings (local, sem API key)
23
+
24
+ ---
25
+
26
+ ## ARQUITETURA
27
+
28
+ ```
29
+ ~/.agent-bible/
30
+ ├── rag_index/ # ChromaDB persistente
31
+ │ ├── chroma.sqlite3
32
+ │ └── <collection_bible>/
33
+ ├── bible_cache/ # Cache de textos originais (opcional)
34
+ │ └── <hash>.txt
35
+ ```
36
+
37
+ **Fluxo:**
38
+ 1. **Indexação** (primeira vez / quando Bible atualiza):
39
+ - Varre `docs/`, `checklists/`, `templates/`, `.opencode/skills/*/SKILL.md`
40
+ - Chunk: 500 chars, overlap 50
41
+ - Embedding: `Xenova/all-MiniLM-L6-v2` (384 dim, ~80MB, CPU)
42
+ - Upsert no Chroma collection `agent-bible`
43
+ 2. **Busca** (cada query):
44
+ - Embedding da query
45
+ - `collection.query(query_embedding, n_results=5)`
46
+ - Retorna: trechos + metadados (arquivo, seção, score)
47
+
48
+ ---
49
+
50
+ ## API DA SKILL
51
+
52
+ ### `search(query, options?)`
53
+ ```javascript
54
+ // Entrada
55
+ {
56
+ query: "como configurar argon2id",
57
+ options: {
58
+ n_results: 5, // default 5
59
+ min_score: 0.3, // threshold relevância
60
+ sources: ["docs", "checklists", "templates", "skills"] // filter
61
+ }
62
+ }
63
+
64
+ // Saída
65
+ {
66
+ results: [
67
+ {
68
+ text: "trecho relevante...",
69
+ metadata: {
70
+ file: "docs/SEGURANCA.md",
71
+ section: "Hash de senhas",
72
+ source: "docs",
73
+ score: 0.87
74
+ }
75
+ },
76
+ ...
77
+ ],
78
+ total_chunks_searched: 1247,
79
+ query_time_ms: 12
80
+ }
81
+ ```
82
+
83
+ ### `rebuild_index()`
84
+ Força reconstrução completa do índice.
85
+
86
+ ### `get_stats()`
87
+ Retorna: total chunks, tamanho índice, última atualização.
88
+
89
+ ---
90
+
91
+ ## INTEGRAÇÃO NO BOOTSTRAP
92
+
93
+ 1. **Primeira execução**: detecta índice vazio → indexa Bible completo (~30s primeira vez)
94
+ 2. **Execuções subsequentes**: verifica `git status` do Bible → reindexa só mudanças (<5s)
95
+ 3. **Cache de embeddings**: modelo `Xenova/all-MiniLM-L6-v2` cacheado em `~/.cache/@xenova/transformers/`
96
+
97
+ ---
98
+
99
+ ## COMANDOS DISPONÍVEIS
100
+
101
+ | Comando | Descrição |
102
+ |---------|-----------|
103
+ | `skill bible-rag-search "sua pergunta"` | Busca semântica |
104
+ | `skill bible-rag-search --rebuild` | Reconstrói índice completo |
105
+ | `skill bible-rag-search --stats` | Mostra estatísticas do índice |
106
+
107
+ ---
108
+
109
+ ## EXEMPLOS DE USO
110
+
111
+ ```bash
112
+ # IA precisa saber como configurar rate limiting
113
+ skill bible-rag-search "rate limiting configuração"
114
+
115
+ # Retorna trechos de:
116
+ # - docs/SEGURANCA.md (seção Rate Limiting)
117
+ # - checklists/SEGURANCA.md (checklist rate limit)
118
+ # - templates/PLANO-IMPLEMENTACAO.md (exemplo config)
119
+
120
+ # IA precisa de template ADR
121
+ skill bible-rag-search "template decisão técnica ADR"
122
+
123
+ # Retorna:
124
+ # - templates/DECISAO-TECNICA.md (template completo)
125
+ # - docs/DECISOES-TECNICAS.md (exemplos)
126
+ ```
127
+
128
+ ---
129
+
130
+ ## MÉTRICAS DE ECONOMIA
131
+
132
+ | Métrica | Sem RAG | Com RAG | Economia |
133
+ |---------|---------|---------|----------|
134
+ | Contexto "como configurar X" | 27KB (doc inteiro) | 2KB (trechos) | **93%** |
135
+ | Contexto "nova feature" | 50KB (5 skills) | 5KB (trechos) | **90%** |
136
+ | Tokens por sessão típica | 50-80K | 5-15K | **80-85%** |
137
+
138
+ ---
139
+
140
+ ## INTEGRAÇÃO COM OUTRAS SKILLS
141
+
142
+ | Skill | Como usa bible-rag-search |
143
+ |-------|---------------------------|
144
+ | `entrevista-orquestradora` | Busca padrões para classificar pedido |
145
+ | `planejamento-de-tarefas` | Busca templates/planos similares |
146
+ | `analise-de-legado` | Busca padrões legacy conhecidos |
147
+ | `auditoria-de-seguranca` | Busca checklists/riscos específicos |
148
+ | `spec-driven-development` | Busca specs/ADRs similares |
149
+
150
+ ---
151
+
152
+ ## COMANDOS DE MANUTENÇÃO
153
+
154
+ ```bash
155
+ # Reconstruir índice (após atualizar Bible)
156
+ skill bible-rag-search --rebuild
157
+
158
+ # Ver stats
159
+ skill bible-rag-search --stats
160
+
161
+ # Limpar cache (forçar rebuild)
162
+ rm -rf ~/.agent-bible/rag_index && skill bible-rag-search "teste"
163
+ ```
164
+
165
+ ---
166
+
167
+ ## REFERÊNCIAS TÉCNICAS
168
+
169
+ - **ChromaDB**: `chromadb` npm package (persistência local SQLite)
170
+ - **Embeddings**: `@xenova/transformers` com `Xenova/all-MiniLM-L6-v2` (384 dim, CPU, ~80MB)
171
+ - **Chunking**: 500 chars / 50 overlap (otimizado para docs técnicos)
172
+ - **Coleção Chroma**: `agent-bible` (metadata: file, section, source, hash)
173
+
174
+ ---
175
+
176
+ ## TRATAMENTO DE FALHAS
177
+
178
+ | Falha | Ação |
179
+ |-------|------|
180
+ | ChromaDB corrompido | `rm -rf ~/.agent-bible/rag_index && skill bible-rag-search --rebuild` |
181
+ | Modelo embeddings não baixa | Verificar conexão / `~/.cache/@xenova/transformers/` |
182
+ | Índice vazio | Auto-rebuild na primeira query |
183
+ | Score muito baixo (<0.3) | Retornar "não encontrado" + sugerir termos alternativos |
184
+
185
+ ---
186
+
187
+ ## IMPLEMENTAÇÃO (Referência)
188
+
189
+ Arquivo principal: `scripts/bible-rag-index.js` (indexação) + `scripts/bible-rag-search.js` (busca)
190
+ Chamado via: `skill bible-rag-search <query>`