jarvis-ai-framework 7.0.0 → 8.2.0
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.
- package/AGENTS.md +2 -2
- package/README.md +11 -34
- package/agents/engineering/data/eng.data-engineer.agent.md +3 -3
- package/agents/engineering/eng.agent.md +13 -11
- package/agents/engineering/eng.dev-code-reviewer.md +19 -4
- package/agents/engineering/eng.docs-consolidator.agent.md +2 -2
- package/agents/engineering/eng.docs-writer.md +17 -2
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +2 -2
- package/agents/engineering/qa/eng.qa.test-planner.md +20 -5
- package/agents/product/prod.pm-checker.md +16 -1
- package/bin/README.md +4 -4
- package/bin/commands/init.js +237 -29
- package/bin/lib/cli/program.js +7 -11
- package/bin/lib/core/sync-engine.js +8 -4
- package/bin/lib/utils/frontmatter.js +1 -1
- package/bin/lib/utils/paths.js +2 -1
- package/bin/lib/utils/version.js +65 -0
- package/bin/postinstall.js +7 -31
- package/package.json +2 -2
- package/rules/AGENTS.md +1 -1
- package/rules/engineering/data/data-rules.md +2 -2
- package/rules/engineering/eng-rules.md +1 -1
- package/rules/engineering/eng-security-rules.md +1 -1
- package/rules/engineering/eng.integrations-rules.md +6 -2
- package/rules/rtk-rules.md +1 -1
- package/rules-on-demand/doc-links-rules.md +2 -2
- package/rules-on-demand/engineering/eng.breakdown-subtasks-rules.md +1 -1
- package/rules-on-demand/engineering/eng.plan-rules.md +2 -0
- package/rules-on-demand/engineering/eng.pr-rules.md +8 -6
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +10 -3
- package/rules-on-demand/engineering/eng.start-rules.md +7 -5
- package/rules-on-demand/engineering/eng.tech-spec-rules.md +9 -7
- package/rules-on-demand/engineering/eng.transitions-rules.md +7 -6
- package/skills/AGENTS.md +2 -2
- package/skills/SKILLS-ROADMAP.md +3 -3
- package/skills/eng-backend-arch-c4/assets/example-container.md +4 -4
- package/skills/eng-backend-arch-c4/assets/example-context.md +6 -6
- package/skills/eng-backend-microservices-trace/SKILL.md +1 -1
- package/skills/eng-global-investigation/SKILL.md +4 -0
- package/skills/eng-global-pr/SKILL.md +15 -12
- package/skills/eng-global-task-comment/SKILL.md +11 -3
- package/skills/eng-global-tech-spec/references/delivery-spec.md +28 -21
- package/skills/jarvis-docs-central/README.md +4 -4
- package/skills/jarvis-docs-central/SKILL.md +5 -3
- package/skills/jarvis-evolution-architect/references/exemplos.md +3 -3
- package/skills/jarvis-init/SKILL.md +89 -24
- package/skills/jarvis-init/assets/setup-guide.md +1 -1
- package/skills/jarvis-report-issue/SKILL.md +37 -24
- package/skills/product-roadmap-report/SKILL.md +2 -2
- package/skills/product-roadmap-report/commands/status.memory.md +1 -1
- package/skills/product-roadmap-report/commands/status.roadmap.preview.md +2 -2
- package/skills/product-specs/SKILL.md +1 -1
- package/skills/product-specs-update/SKILL.md +138 -121
- package/templates/ENV-template.md +57 -27
- package/templates/cdd-aplicado-a-prompts.md +1 -1
- package/templates/engineering/AGENTS-template.md +2 -2
- package/templates/engineering/CONTACTS-template.md +1 -1
- package/templates/engineering/advisor-template.md +2 -2
- package/templates/engineering/architecture-template.md +14 -1
- package/templates/engineering/data-contract-template.md +1 -1
- package/templates/engineering/plan-template.md +2 -0
- package/templates/engineering/tech-spec-delivery-template.md +8 -8
- package/templates/engineering/tech-spec-template.md +3 -3
- package/templates/product/prod-frd-template.md +1 -1
- package/templates/product/prod-prd-template.md +1 -1
- package/workflows/AGENTS.md +1 -1
- package/workflows/README.md +1 -1
- package/workflows/engineering/data/data.contract.md +12 -8
- package/workflows/engineering/eng.breakdown-subtasks.md +2 -2
- package/workflows/engineering/eng.build-tech-spec.md +1 -1
- package/workflows/engineering/eng.create-ard-from-code.md +3 -5
- package/workflows/engineering/eng.create-ard.md +3 -5
- package/workflows/engineering/eng.create-rfc.md +5 -5
- package/workflows/engineering/eng.light-arch.md +1 -1
- package/workflows/engineering/eng.plan.md +10 -7
- package/workflows/engineering/eng.pr.md +26 -19
- package/workflows/engineering/eng.pre-pr.md +126 -27
- package/workflows/engineering/eng.spec-consolidate.md +5 -5
- package/workflows/engineering/eng.start.md +23 -9
- package/workflows/engineering/eng.work.md +4 -4
- package/workflows/engineering/qa/eng.qa-release-signoff.md +1 -66
- package/workflows/product/prod.roadmap.preview.md +10 -14
- package/workflows/product/prod.spec.ard.md +2 -2
- package/workflows/product/prod.spec.breakdown.md +2 -2
- package/workflows/product/prod.spec.epic.md +4 -4
- package/workflows/product/prod.spec.frd.md +3 -3
- package/workflows/product/prod.spec.issue.md +3 -3
- package/workflows/product/prod.spec.prd.md +5 -5
- package/bin/commands/qa-signoff.js +0 -115
package/AGENTS.md
CHANGED
|
@@ -255,7 +255,7 @@ Cada pasta pode ter seu proprio AGENTS.md com instrucoes especificas:
|
|
|
255
255
|
/eng.plan "feature" # Plano de execucao faseado (somente planejamento)
|
|
256
256
|
/eng.work "feature" # Implementacao e testes (commit por fase, sem push/PR)
|
|
257
257
|
/eng.pre-pr # Validacao pre-PR
|
|
258
|
-
/eng.pr #
|
|
258
|
+
/eng.pr # Push e PR, depois da pergunta (regra de ouro)
|
|
259
259
|
```
|
|
260
260
|
|
|
261
261
|
### Documentacao
|
|
@@ -285,7 +285,7 @@ Tabela completa de mapeamento comando/trigger → skill: ver `$IDE/skills/AGENTS
|
|
|
285
285
|
|------|---------|-----------|
|
|
286
286
|
| Planejamento | `eng.start`, `eng.plan` | Somente analise, sem codigo |
|
|
287
287
|
| Implementacao | `eng.work` | Codigo e testes, commit por fase, sem push nem PR |
|
|
288
|
-
| Entrega | `eng.pr` |
|
|
288
|
+
| Entrega | `eng.pr` | Push e PR, depois da pergunta (regra de ouro) |
|
|
289
289
|
|
|
290
290
|
---
|
|
291
291
|
|
package/README.md
CHANGED
|
@@ -14,18 +14,13 @@
|
|
|
14
14
|
|
|
15
15
|
### 1. Instale
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
O Jarvis é instalado **só global** (comando `jarvis` no PATH):
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
npm install -g jarvis-ai-framework
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
**
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
cd workspace-squad/
|
|
27
|
-
npm install jarvis-ai-framework --save-dev
|
|
28
|
-
```
|
|
23
|
+
Não instale o pacote dentro do projeto: o `jarvis init` roda **dentro do projeto** e copia os assets do Jarvis global para a pasta da IDE. Se ele achar uma cópia local (`node_modules` ou dependência no `package.json`), avisa que ela é ignorada.
|
|
29
24
|
|
|
30
25
|
Confira **onde** o binário ficou no PATH (útil se houver mais de uma instalação):
|
|
31
26
|
|
|
@@ -42,8 +37,6 @@ jarvis --version
|
|
|
42
37
|
jarvis init --ide cursor
|
|
43
38
|
```
|
|
44
39
|
|
|
45
|
-
Se instalou só com `--save-dev`, use `npx jarvis init --ide cursor`.
|
|
46
|
-
|
|
47
40
|
IDEs: `windsurf` · `claude` · `cursor` · `codex` · `opencode` · `gemini` · `kiro`
|
|
48
41
|
|
|
49
42
|
### 3. No chat da IDE
|
|
@@ -76,13 +69,6 @@ Global (comando `jarvis` no PATH):
|
|
|
76
69
|
npm install -g /caminho/para/jarvis
|
|
77
70
|
```
|
|
78
71
|
|
|
79
|
-
**Só neste workspace** (não sobe no PATH):
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
cd workspace-squad/
|
|
83
|
-
npm install /caminho/para/jarvis --save-dev
|
|
84
|
-
```
|
|
85
|
-
|
|
86
72
|
**`npm link`** (útil se você altera o clone e quer refletir na hora):
|
|
87
73
|
|
|
88
74
|
```bash
|
|
@@ -90,12 +76,7 @@ cd /caminho/para/jarvis
|
|
|
90
76
|
npm link
|
|
91
77
|
```
|
|
92
78
|
|
|
93
|
-
Isso já registra o comando `jarvis` no global.
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
cd workspace-squad/
|
|
97
|
-
npm link jarvis-ai-framework
|
|
98
|
-
```
|
|
79
|
+
Isso já registra o comando `jarvis` no global. Não rode `npm link jarvis-ai-framework` dentro do workspace: isso cria uma cópia local em `node_modules`, que o `jarvis init` ignora (e avisa).
|
|
99
80
|
|
|
100
81
|
Confira **onde** o binário ficou no PATH (útil se houver mais de uma instalação):
|
|
101
82
|
|
|
@@ -119,7 +100,9 @@ npm install -g jarvis-ai-framework@latest
|
|
|
119
100
|
jarvis init --upgrade --ide {ide} # assets + variáveis novas do ENV.md + documentos para as pastas novas
|
|
120
101
|
```
|
|
121
102
|
|
|
122
|
-
|
|
103
|
+
`jarvis init --ide {ide}` numa pasta já instalada mostra o menu **Atualizar** (Enter, o mesmo que o `--upgrade`) / **Reinstalar** (o mesmo que o `--force`) / **Cancelar**, com a versão instalada e a do pacote. No fim, ele só manda rodar o `/jarvis-init upgrade` quando há pendência.
|
|
104
|
+
|
|
105
|
+
Na IDE, o `/jarvis-init upgrade` vai direto ao Upgrade (C), cuida do que precisa de conversa (Central docs antigo e o passo das stacks) e, no fim, valida o `ENV.md` inteiro: pergunta cada problema e regrava o arquivo separado por assunto, na ordem do template. O `--upgrade` só **acrescenta** chaves ao `ENV.md`, no fim do arquivo: nenhuma chave existente muda. Ele mostra os documentos que estão em caminhos antigos e pergunta antes de movê-los (`--yes` move sem perguntar; sem terminal interativo, não move). Também lista os skills instalados que saíram do framework e pergunta antes de removê-los (`--remove-stale` remove sem perguntar só os listados; skills registrados em `*_SPECIALIZATIONS` nunca são listados).
|
|
123
106
|
|
|
124
107
|
**Instalou via clone local** (fluxo de [Desenvolvendo o Jarvis localmente](#desenvolvendo-o-jarvis-localmente)) — quando o repo no GitHub ganhar commits novos, sincronize assim:
|
|
125
108
|
|
|
@@ -137,12 +120,6 @@ git pull
|
|
|
137
120
|
npm install -g /caminho/para/jarvis
|
|
138
121
|
```
|
|
139
122
|
|
|
140
|
-
**Só no workspace (`--save-dev`):**
|
|
141
|
-
```bash
|
|
142
|
-
cd workspace-squad/
|
|
143
|
-
npm install /caminho/para/jarvis --save-dev
|
|
144
|
-
```
|
|
145
|
-
|
|
146
123
|
**Com `npm link`:** o `git pull` no clone já basta — o link aponta para a pasta.
|
|
147
124
|
|
|
148
125
|
Antes de seguir, confira se o `jarvis` do PATH é o que você acabou de atualizar:
|
|
@@ -164,7 +141,7 @@ jarvis init --ide cursor
|
|
|
164
141
|
|
|
165
142
|
Isso copia de novo `agents/`, `skills/`, `workflows/`, `rules/`, `templates/` para `.$IDE/` e atualiza o `jarvis-lock.json`.
|
|
166
143
|
|
|
167
|
-
|
|
144
|
+
Esse é o único caminho de atualização dos assets: o `npm install -g` não sincroniza nenhum projeto sozinho. Quando os assets do projeto estão atrás do Jarvis global, o `/jarvis-init` avisa no início e oferece o `jarvis init --upgrade`.
|
|
168
145
|
|
|
169
146
|
### 4. ENV.md (só se houver variáveis novas)
|
|
170
147
|
|
|
@@ -183,8 +160,8 @@ Escolha **Upgrade (C)** — adiciona chaves novas do template sem apagar os valo
|
|
|
183
160
|
| Passo | O que muda |
|
|
184
161
|
|-------|------------|
|
|
185
162
|
| `git pull` | Código do framework no clone |
|
|
186
|
-
| `npm install -g`
|
|
187
|
-
| `jarvis init`
|
|
163
|
+
| `npm install -g` | Binário `jarvis` + pacote que o `init` lê |
|
|
164
|
+
| `jarvis init` | Arquivos em `.$IDE/` (skills, agents, workflows…) e o Context7 no arquivo de MCP da IDE (ex.: `.mcp.json` no Claude Code; só acrescenta, sem apagar outros servidores) |
|
|
188
165
|
| `/jarvis-init` Upgrade | Só `$IDE/ENV.md` (variáveis faltantes) e, se você aceitar o passo opcional "adicionar as stacks", as listas de especializações |
|
|
189
166
|
|
|
190
167
|
`ENV.md`, `.jarvis/sessions/` e o `.gitignore` do workspace **não** são sobrescritos pelo sync de assets. O `.gitignore` só é criado ou alterado quando a raiz tem `.git`; sem `.git` (como no modo workspace) a raiz não é versionada e o init não o toca.
|
|
@@ -212,7 +189,7 @@ O `/jarvis-init` pergunta o `ARTIFACT_STYLE` (variável do `ENV.md`):
|
|
|
212
189
|
| Valor | O que acontece |
|
|
213
190
|
|---|---|
|
|
214
191
|
| `ai-generated` (padrão) | Como sempre: metadados, links de rastreabilidade e padrões da ferramenta |
|
|
215
|
-
| `human-generated` | Nada do que o Jarvis publica (commit, PR/MR, comentário no card, issue) leva marca de IA ou da IDE: o `/eng.pr` confere e limpa antes do push. Todo documento gerado pergunta, no fim, se você quer a versão humanizada, gravada ao lado como `{nome}.public.md` para repassar a clientes ou stakeholders |
|
|
192
|
+
| `human-generated` | Nada do que o Jarvis publica (commit, PR/MR, comentário no card, issue; sempre depois da pergunta) leva marca de IA ou da IDE: o `/eng.pr` confere e limpa antes do push. Todo documento gerado pergunta, no fim, se você quer a versão humanizada, gravada ao lado como `{nome}.public.md` para repassar a clientes ou stakeholders |
|
|
216
193
|
|
|
217
194
|
Com `human-generated`, o `/jarvis-init` copia a rule `rules/artifact-style-rules.md` (eixo `ARTIFACT_STYLE` do `Applies to`); com `ai-generated`, ela nem existe na sessão. Trocou o valor à mão? Rode `/jarvis-init upgrade`.
|
|
218
195
|
|
|
@@ -253,6 +230,6 @@ Precisa de ajuda?
|
|
|
253
230
|
- **Engenharia (um guia por comando `eng.*`)** — [`docs/engenharia/`](docs/engenharia/README.md)
|
|
254
231
|
- **Indice de docs/** — [`docs/README.md`](docs/README.md)
|
|
255
232
|
- **Instrucoes para agentes / mapa de skills** — `AGENTS.md`
|
|
256
|
-
- **Issues/Feedback** — skill `jarvis-report-issue` (sem a CLI do host (`gh`), sem login
|
|
233
|
+
- **Issues/Feedback** — skill `jarvis-report-issue` (pergunta antes de abrir; sem a CLI do host (`gh`), sem login, sem rede ou com o seu Não, a issue fica em `.jarvis/issues/issue-{desc}.md` para abrir à mão)
|
|
257
234
|
- **Duvidas sobre comandos** — Pergunte diretamente ao agent:
|
|
258
235
|
`"Como funciona /eng.start?"` | `"Qual a diferenca entre /eng.work e /pr?"` | `"O que e CDD?"`
|
|
@@ -66,7 +66,7 @@ Ativado quando há suspeita de dado incorreto, queda de volume ou falha de pipel
|
|
|
66
66
|
- Identificar causa raiz: fonte, transformação ou carga
|
|
67
67
|
- Verificar logs de execução e checks de qualidade
|
|
68
68
|
- Propor correção e plano de reprocessamento idempotente
|
|
69
|
-
- Alertar squads afetadas com contexto claro
|
|
69
|
+
- Alertar squads afetadas com contexto claro (mostrando a mensagem e perguntando antes de enviar, regra de ouro)
|
|
70
70
|
|
|
71
71
|
**Skill integrada**: `$IDE/skills/eng-data/SKILL.md` + `DATA_SPECIALIZATIONS`
|
|
72
72
|
|
|
@@ -126,7 +126,7 @@ CONTEXT_PROFILE:
|
|
|
126
126
|
|
|
127
127
|
| Sinal | Urgência | Comportamento |
|
|
128
128
|
|-------|----------|---------------|
|
|
129
|
-
| `dado errado em produção`, `dashboard parado`, `pipeline falhou` | **CRÍTICA** | Fast track: diagnóstico imediato, isolar causa, comunicar squads afetadas |
|
|
129
|
+
| `dado errado em produção`, `dashboard parado`, `pipeline falhou` | **CRÍTICA** | Fast track: diagnóstico imediato, isolar causa, comunicar squads afetadas (texto pronto; o envio só depois da pergunta, regra de ouro) |
|
|
130
130
|
| `atraso`, `dado desatualizado`, `queda de volume` | **ALTA** | Investigação ágil, reprocessar com idempotência |
|
|
131
131
|
| `nova feature`, `novo pipeline`, `contrato de dados` | **NORMAL** | Fluxo completo: documentar antes, implementar, validar |
|
|
132
132
|
| `melhoria`, `refactoring de query`, `otimização` | **BAIXA** | Análise cuidadosa de impacto antes de qualquer mudança |
|
|
@@ -226,7 +226,7 @@ Para detecção automática de contexto de tarefas:
|
|
|
226
226
|
### 3. Qualidade e Monitoramento
|
|
227
227
|
|
|
228
228
|
- Bloquear promoção de camada quando falha de qualidade ocorre
|
|
229
|
-
- Alertar no canal do time de Data quando falha afeta `gold`
|
|
229
|
+
- Alertar no canal do time de Data quando falha afeta `gold` (depois da pergunta, regra de ouro; o alerta automático de pipeline é do runtime)
|
|
230
230
|
- Manter tabela `gold.pipeline_audit` com metadados de execução
|
|
231
231
|
|
|
232
232
|
### 4. Política de Dados Sensíveis
|
|
@@ -175,20 +175,26 @@ Para detecção automática de contexto de tarefas:
|
|
|
175
175
|
- Uso: `/jarvis-context-detect [jira-key]` ou `/jarvis-context-detect --override tipo=hotfix`
|
|
176
176
|
- Chamado automaticamente pelo workflow `eng.start`
|
|
177
177
|
|
|
178
|
-
### eng-platform
|
|
179
|
-
Quando a tarefa envolver
|
|
178
|
+
### eng-platform
|
|
179
|
+
Quando a tarefa envolver infraestrutura, performance ou segurança de infraestrutura — base de platform, complementada pela especialização registrada em `PLATFORM_SPECIALIZATIONS`:
|
|
180
180
|
- Arquivo: `$IDE/skills/eng-platform/SKILL.md`
|
|
181
|
+
- Performance: análise ou otimização de performance, observabilidade, gargalos, latência, load testing, chaos engineering ou cache multi-camada (temas 7, 14, 15 e 16)
|
|
182
|
+
- Segurança: segurança de infraestrutura, fundamentos de segurança da informação (risco, ameaças, identidade, resposta a incidente, GRC, privacidade) ou auditoria de dependências/supply chain (temas 9 e 13)
|
|
183
|
+
- Segurança de código de aplicação (OWASP, inputs, auth) já é padrão embutido em `eng-backend`/`eng-frontend`
|
|
181
184
|
|
|
182
185
|
### eng-ai
|
|
183
186
|
Quando a tarefa envolver features com LLM, sistemas RAG, agentes de IA, chatbots, embeddings, busca vetorial ou integrações com modelos de IA:
|
|
184
187
|
- Arquivo: `$IDE/skills/eng-ai/SKILL.md`
|
|
185
188
|
|
|
186
|
-
###
|
|
187
|
-
Quando a tarefa envolver
|
|
188
|
-
-
|
|
189
|
-
- Frontend: `$IDE/skills/eng-frontend/SKILL.md` + itens de `FRONTEND_SPECIALIZATIONS`
|
|
189
|
+
### eng-backend
|
|
190
|
+
Quando a tarefa envolver backend (APIs, autenticação, workers e jobs assíncronos, filas e mensageria, integrações externas, cache, banco de dados). Não escolha o skill por nome: aplique a regra `$IDE/rules/engineering/eng.specializations-rules.md` para a área backend, que carrega o skill base e as especializações de `BACKEND_SPECIALIZATIONS` do `ENV.md`:
|
|
191
|
+
- Arquivo: `$IDE/skills/eng-backend/SKILL.md`
|
|
190
192
|
- Workflows relacionados: `eng.start` (arquitetura), `eng.work` (implementação), `eng.debug` (troubleshooting)
|
|
191
|
-
|
|
193
|
+
|
|
194
|
+
### eng-frontend
|
|
195
|
+
Quando a tarefa envolver frontend (componentes, estado, estilos, performance de UI, acessibilidade, testes de interface). Não escolha o skill por nome: aplique a regra `$IDE/rules/engineering/eng.specializations-rules.md` para a área frontend, que carrega o skill base e as especializações de `FRONTEND_SPECIALIZATIONS` do `ENV.md`:
|
|
196
|
+
- Arquivo: `$IDE/skills/eng-frontend/SKILL.md`
|
|
197
|
+
- Para ver o que está instalado e registrado (backend e frontend): `/jarvis-list-specializations`
|
|
192
198
|
|
|
193
199
|
### eng-automation
|
|
194
200
|
Quando a tarefa envolver web scraping, extração de dados de páginas web, automação de browser com Puppeteer, parsing de HTML/XML/PDF, pipelines ETL leves ou monitoramento de mudanças em sites:
|
|
@@ -200,10 +206,6 @@ Quando precisar planejar estratégia de testes, validar fluxos completos de usu
|
|
|
200
206
|
- Arquivo: `$IDE/skills/eng-qa/SKILL.md`
|
|
201
207
|
- Workflows relacionados: `eng.pr` (validação pré-PR), `eng.pre-pr` (cobertura de testes E2E)
|
|
202
208
|
|
|
203
|
-
### eng-platform
|
|
204
|
-
Quando a tarefa envolver segurança de infraestrutura, fundamentos de segurança da informação (risco, ameaças, identidade, resposta a incidente, GRC, privacidade) ou auditoria de dependências/supply chain — base de platform, complementada pela especialização registrada em `PLATFORM_SPECIALIZATIONS`:
|
|
205
|
-
- Arquivo: `$IDE/skills/eng-platform/SKILL.md` (temas 9 e 13)
|
|
206
|
-
- Segurança de código de aplicação (OWASP, inputs, auth) já é padrão embutido em `eng-backend`/`eng-frontend`
|
|
207
209
|
|
|
208
210
|
---
|
|
209
211
|
|
|
@@ -6,18 +6,18 @@ model: opus
|
|
|
6
6
|
color: green
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# code-
|
|
9
|
+
# code-reviewer
|
|
10
10
|
Você é um especialista em revisão de código responsável por analisar mudanças de código em preparação para a abertura de um Pull Request.
|
|
11
11
|
Seu objetivo é fornecer feedback abrangente e acionável, ajudando a garantir qualidade de código e prontidão para PR.
|
|
12
12
|
|
|
13
13
|
Processo de Revisão
|
|
14
14
|
1. Coleta de Informações sobre as Mudanças
|
|
15
|
-
Primeiro, entenda exatamente o que foi alterado:
|
|
15
|
+
Primeiro, entenda exatamente o que foi alterado (`{BRANCH_BASE}` é a branch base recebida de quem chama (o `/eng.pre-pr` passa a `Branch base:` do `architecture.md`); sem ela, `origin/main`.):
|
|
16
16
|
- Execute git status para verificar mudanças não commitadas
|
|
17
17
|
- Execute git diff para visualizar mudanças não staged
|
|
18
18
|
- Execute git diff --staged para visualizar mudanças staged
|
|
19
|
-
- Execute git log
|
|
20
|
-
- Execute git diff
|
|
19
|
+
- Execute git log {BRANCH_BASE}..HEAD --oneline para ver os commits da branch atual
|
|
20
|
+
- Execute git diff {BRANCH_BASE}...HEAD para ver todas as mudanças comparadas com a branch base
|
|
21
21
|
|
|
22
22
|
2. Análise das Mudanças de Código
|
|
23
23
|
Para cada arquivo alterado, avalie:
|
|
@@ -71,6 +71,21 @@ Avalie os testes:
|
|
|
71
71
|
|
|
72
72
|
Nenhuma — agente autocontido, não depende de skill
|
|
73
73
|
|
|
74
|
+
## Quando chamado pelo `/eng.pre-pr`
|
|
75
|
+
|
|
76
|
+
O `/eng.pre-pr` passa a branch base (a `Branch base:` do `architecture.md`) e, da rodada 2 em diante, o diff incremental desde a rodada anterior. Use essa base no lugar de `origin/main` nos comandos de diff e log. Só aponte: não edite nem grave arquivos.
|
|
77
|
+
|
|
78
|
+
Devolva uma lista de lacunas, uma por item, com os campos da tabela de lacunas do `gate-checklist.md`:
|
|
79
|
+
|
|
80
|
+
- **Lacuna**: o que falta ou está errado, terminando com "(item 2)", o número deste gate na lista do `/eng.pre-pr`.
|
|
81
|
+
- **Onde**: `arquivo:linha` com o trecho, ou o comando que a revelou e o resultado.
|
|
82
|
+
- **Por que importa**: o impacto, em linguagem simples.
|
|
83
|
+
- **Refutação**: o que derrubaria esta lacuna, com o lugar a conferir.
|
|
84
|
+
- **Sugestão**: como resolver.
|
|
85
|
+
- **Severidade**: 🔴 Bloqueador, 🟡 Importante ou ⚪ Menor (redação é ⚪).
|
|
86
|
+
|
|
87
|
+
Lista vazia é uma resposta válida. Fora do `/eng.pre-pr`, vale o formato de resposta deste arquivo.
|
|
88
|
+
|
|
74
89
|
## Formato da Resposta
|
|
75
90
|
Forneça uma revisão estruturada no seguinte formato:
|
|
76
91
|
|
|
@@ -15,7 +15,7 @@ tools: Read, Glob, Grep, Bash, Write, Edit
|
|
|
15
15
|
|
|
16
16
|
Você transforma o que foi **implementado** num registro que dure. Duas pessoas vão ler o que você escreve:
|
|
17
17
|
- **humanos:** outro squad, alguém novo no time, a própria pessoa daqui a seis meses;
|
|
18
|
-
- **IAs:** o `/warm-up`, o `/eng.start` e os `/prod.spec.*` consultam o Central docs como verdade sobre o
|
|
18
|
+
- **IAs:** o `/warm-up`, o `/eng.start` e os `/prod.spec.*` consultam o Central docs como verdade sobre o que está implementado.
|
|
19
19
|
|
|
20
20
|
Por isso o texto tem de ser **completo, autossuficiente e sem ambiguidade**.
|
|
21
21
|
|
|
@@ -46,7 +46,7 @@ Por isso o texto tem de ser **completo, autossuficiente e sem ambiguidade**.
|
|
|
46
46
|
4. `git log {base}..HEAD --format='%h|%an|%ad|%s' --date=short` e `git diff --stat {base}...HEAD`.
|
|
47
47
|
5. O código alterado, só leitura, para confirmar o comportamento real.
|
|
48
48
|
6. O documento atual da funcionalidade no Central docs (`jarvis docs fetch`), quando for atualização.
|
|
49
|
-
7. O `gate-checklist.md` e o `pull-request.md` da sessão, se existirem.
|
|
49
|
+
7. O `gate-checklist.md` (a rodada mais recente; as anteriores, `gate-checklist-rodada-{N}.md`, são histórico) e o `pull-request.md` da sessão, se existirem.
|
|
50
50
|
|
|
51
51
|
## O que você produz
|
|
52
52
|
|
|
@@ -17,6 +17,21 @@ Fonte de verdade do processo e do formato de entrega da documentação:
|
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
+
## Quando chamado pelo `/eng.pre-pr`
|
|
21
|
+
|
|
22
|
+
O `/eng.pre-pr` passa a branch base (a `Branch base:` do `architecture.md`) e, da rodada 2 em diante, o diff incremental desde a rodada anterior. Use essa base no lugar de `origin/main` nos comandos de diff e log. Só aponte: não edite nem grave arquivos. Não proponha aplicar as atualizações nem pergunte se deve aplicá-las: cada documentação desatualizada vira uma lacuna.
|
|
23
|
+
|
|
24
|
+
Devolva uma lista de lacunas, uma por item, com os campos da tabela de lacunas do `gate-checklist.md`:
|
|
25
|
+
|
|
26
|
+
- **Lacuna**: o que falta ou está errado, terminando com "(item 9)", o número deste gate na lista do `/eng.pre-pr`.
|
|
27
|
+
- **Onde**: `arquivo:linha` com o trecho, ou o comando que a revelou e o resultado.
|
|
28
|
+
- **Por que importa**: o impacto, em linguagem simples.
|
|
29
|
+
- **Refutação**: o que derrubaria esta lacuna, com o lugar a conferir.
|
|
30
|
+
- **Sugestão**: como resolver.
|
|
31
|
+
- **Severidade**: 🔴 Bloqueador, 🟡 Importante ou ⚪ Menor (redação é ⚪).
|
|
32
|
+
|
|
33
|
+
Lista vazia é uma resposta válida. Fora do `/eng.pre-pr`, vale o formato de resposta deste arquivo.
|
|
34
|
+
|
|
20
35
|
## Fluxo de Trabalho
|
|
21
36
|
|
|
22
37
|
### 1. Analisar Mudanças de Código
|
|
@@ -26,8 +41,8 @@ Comece entendendo exatamente o que mudou:
|
|
|
26
41
|
- Execute `git status` para verificar mudanças não commitadas
|
|
27
42
|
- Execute `git diff` para visualizar mudanças não staged
|
|
28
43
|
- Execute `git diff --staged` para visualizar mudanças staged
|
|
29
|
-
- Execute `git log
|
|
30
|
-
- Execute `git diff
|
|
44
|
+
- Execute `git log {BRANCH_BASE}..HEAD --oneline` para ver os commits da branch
|
|
45
|
+
- Execute `git diff {BRANCH_BASE}...HEAD` para ver todas as mudanças da branch (`{BRANCH_BASE}` é a branch base recebida de quem chama (o `/eng.pre-pr` passa a `Branch base:` do `architecture.md`); sem ela, `origin/main`.)
|
|
31
46
|
|
|
32
47
|
Foque especialmente em:
|
|
33
48
|
- Novas funcionalidades
|
|
@@ -39,7 +39,7 @@ Você opera estritamente dentro do **contexto de tarefas Jira e especificações
|
|
|
39
39
|
- Casos extremos não cobertos
|
|
40
40
|
- Riscos potenciais, ambiguidades ou complexidade oculta
|
|
41
41
|
|
|
42
|
-
5. Comentar melhorias
|
|
42
|
+
5. Comentar melhorias no Jira pelo `/eng-global-task-comment`, que mostra o texto e pergunta antes de enviar (regra de ouro, `eng.integrations-rules.md`):
|
|
43
43
|
- Sugerir redação mais clara
|
|
44
44
|
- Propor critérios de aceitação faltantes
|
|
45
45
|
- Recomendar cenários de teste adicionais
|
|
@@ -54,7 +54,7 @@ Você opera estritamente dentro do **contexto de tarefas Jira e especificações
|
|
|
54
54
|
|
|
55
55
|
### Formato de Saída (Sempre Estruturado)
|
|
56
56
|
|
|
57
|
-
Use o seguinte formato
|
|
57
|
+
Use o seguinte formato nos comentários Jira (eles só saem depois da pergunta, regra de ouro):
|
|
58
58
|
|
|
59
59
|
**Resumo da Revisão de Qualidade**
|
|
60
60
|
|
|
@@ -21,10 +21,25 @@ Aplicar quando invocado via `eng.qa-refinement-entry` ou quando o argumento rece
|
|
|
21
21
|
|
|
22
22
|
**Modo B — Análise de Cobertura (pós-código)**
|
|
23
23
|
Aplicar quando invocado via `eng-qa`, `eng-qa-planner` ou quando houver código implementado na branch (git diff retorna resultados).
|
|
24
|
-
- Fonte de dados: `git diff origin/main
|
|
24
|
+
- Fonte de dados: `git diff {BRANCH_BASE}...HEAD` (`{BRANCH_BASE}` é a branch base recebida de quem chama (o `/eng.pre-pr` passa a `Branch base:` do `architecture.md`); sem ela, `origin/main`.)
|
|
25
25
|
- Saída: `$ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md`
|
|
26
26
|
|
|
27
|
-
Regra de decisão: se `git diff
|
|
27
|
+
Regra de decisão: se `git diff {BRANCH_BASE}...HEAD` retornar vazio, operar em Modo A. Se retornar código, operar em Modo B.
|
|
28
|
+
|
|
29
|
+
## Quando chamado pelo `/eng.pre-pr`
|
|
30
|
+
|
|
31
|
+
O `/eng.pre-pr` passa a branch base (a `Branch base:` do `architecture.md`) e, da rodada 2 em diante, o diff incremental desde a rodada anterior. Use essa base no lugar de `origin/main` nos comandos de diff e log. Só aponte: não edite nem grave arquivos. É o Modo B, mas sem gravar o relatório em `$ENG_DOCS/qa/`: as lacunas voltam só na resposta.
|
|
32
|
+
|
|
33
|
+
Devolva uma lista de lacunas, uma por item, com os campos da tabela de lacunas do `gate-checklist.md`:
|
|
34
|
+
|
|
35
|
+
- **Lacuna**: o que falta ou está errado, terminando com "(item 3)", o número deste gate na lista do `/eng.pre-pr`.
|
|
36
|
+
- **Onde**: `arquivo:linha` com o trecho, ou o comando que a revelou e o resultado.
|
|
37
|
+
- **Por que importa**: o impacto, em linguagem simples.
|
|
38
|
+
- **Refutação**: o que derrubaria esta lacuna, com o lugar a conferir.
|
|
39
|
+
- **Sugestão**: como resolver.
|
|
40
|
+
- **Severidade**: 🔴 Bloqueador, 🟡 Importante ou ⚪ Menor (redação é ⚪).
|
|
41
|
+
|
|
42
|
+
Lista vazia é uma resposta válida. Fora do `/eng.pre-pr`, vale o formato de resposta deste arquivo.
|
|
28
43
|
|
|
29
44
|
## Skills Disponíveis
|
|
30
45
|
|
|
@@ -290,9 +305,9 @@ Usar quando: invocado via `eng-qa` ou `eng-qa-planner`, ou quando git diff retor
|
|
|
290
305
|
|
|
291
306
|
Comece entendendo o que mudou na branch atual:
|
|
292
307
|
|
|
293
|
-
- Execute `git diff
|
|
294
|
-
- Execute `git diff
|
|
295
|
-
- Execute `git log
|
|
308
|
+
- Execute `git diff {BRANCH_BASE}...HEAD --name-only` para listar todos os arquivos alterados
|
|
309
|
+
- Execute `git diff {BRANCH_BASE}...HEAD` para ver as mudanças em detalhe
|
|
310
|
+
- Execute `git log {BRANCH_BASE}..HEAD --oneline` para entender o histórico de commits
|
|
296
311
|
- Foque especialmente em:
|
|
297
312
|
- Novas funções/métodos/classes
|
|
298
313
|
- Lógica modificada em código existente
|
|
@@ -28,7 +28,7 @@ Em seguida, você deve:
|
|
|
28
28
|
- quais mudanças não estão alinhadas.
|
|
29
29
|
|
|
30
30
|
Formato da Resposta
|
|
31
|
-
Você deve fornecer sua resposta exatamente no seguinte formato:
|
|
31
|
+
Você deve fornecer sua resposta exatamente no seguinte formato (quando chamado pelo `/eng.pre-pr`, use o formato da seção "Quando chamado pelo `/eng.pre-pr`"):
|
|
32
32
|
|
|
33
33
|
```
|
|
34
34
|
[nome da branch]
|
|
@@ -51,6 +51,21 @@ Você deve fornecer sua resposta exatamente no seguinte formato:
|
|
|
51
51
|
Regras Importantes
|
|
52
52
|
Não faça nenhuma alteração no código ou nos requisitos, a menos que o usuário solicite explicitamente. Seu papel é avaliar e reportar, não corrigir.
|
|
53
53
|
|
|
54
|
+
## Quando chamado pelo `/eng.pre-pr`
|
|
55
|
+
|
|
56
|
+
O `/eng.pre-pr` passa a branch base (a `Branch base:` do `architecture.md`) e, da rodada 2 em diante, o diff incremental desde a rodada anterior. Use essa base no lugar de `origin/main` nos comandos de diff e log. Só aponte: não edite nem grave arquivos. Compare as mudanças com os documentos do projeto (os "Master Docs") como descrito acima.
|
|
57
|
+
|
|
58
|
+
Devolva uma lista de lacunas, uma por item, com os campos da tabela de lacunas do `gate-checklist.md`:
|
|
59
|
+
|
|
60
|
+
- **Lacuna**: o que falta ou está errado, terminando com "(item 1)", o número deste gate na lista do `/eng.pre-pr`.
|
|
61
|
+
- **Onde**: `arquivo:linha` com o trecho, ou o comando que a revelou e o resultado.
|
|
62
|
+
- **Por que importa**: o impacto, em linguagem simples.
|
|
63
|
+
- **Refutação**: o que derrubaria esta lacuna, com o lugar a conferir.
|
|
64
|
+
- **Sugestão**: como resolver.
|
|
65
|
+
- **Severidade**: 🔴 Bloqueador, 🟡 Importante ou ⚪ Menor (redação é ⚪).
|
|
66
|
+
|
|
67
|
+
Lista vazia é uma resposta válida. Fora do `/eng.pre-pr`, vale o formato de resposta deste arquivo.
|
|
68
|
+
|
|
54
69
|
## Skills Disponíveis
|
|
55
70
|
|
|
56
71
|
Nenhuma — agente autocontido, não depende de skill
|
package/bin/README.md
CHANGED
|
@@ -7,11 +7,11 @@ Fonte do binário `jarvis` (instalado via `npm install -g jarvis-ai-framework`,
|
|
|
7
7
|
```
|
|
8
8
|
bin/
|
|
9
9
|
├── jarvis.js # Entrypoint (shebang). ~10 linhas, não cresce.
|
|
10
|
-
├── postinstall.js # Roda no `npm install` (
|
|
10
|
+
├── postinstall.js # Roda no `npm install` (só imprime as dicas de uso)
|
|
11
11
|
├── commands/ # Um arquivo por comando. Lógica pura, zero commander.
|
|
12
12
|
│ ├── init.js, list.js, info.js, whoami.js, ...
|
|
13
13
|
│ ├── docs-sync.js, docs-publish.js
|
|
14
|
-
│ └──
|
|
14
|
+
│ └── install-rtk.js, tokens.js, map.js
|
|
15
15
|
└── lib/
|
|
16
16
|
├── cli/
|
|
17
17
|
│ ├── program.js # Único lugar que monta o commander — ver "Arquitetura"
|
|
@@ -119,12 +119,12 @@ if (fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
|
119
119
|
|
|
120
120
|
## Variáveis de ambiente lidas diretamente (fora do ENV.md)
|
|
121
121
|
|
|
122
|
-
`bin/lib/tasks/comment.js` e `bin/lib/vcs/*.js` leem `process.env` direto (`TASK_MANAGER`, `TASK_MANAGER_ACCESS`, `TASK_MANAGER_URL_BASE`, `VERSION_CONTROL`, etc.; nenhum token: o login é o da CLI do vendor) — não passam pelo `env-loader.js`/ENV.md. O `jarvis tasks comment` e o `jarvis vcs create-merge` completam o que faltar no ambiente lendo o `$IDE/ENV.md` do workspace (`readFileEnv`/`resolveFileEnv` em `integrations/cli-runner.js`, com `--ide`/`--env-file`; o ambiente do processo vence; `setting` tira aspas e comentário de fim de linha), então os skills não precisam exportar nada nem usar `eval`. O `accessGate` decide antes de qualquer envio: só `cli` (ou vazio, com aviso) segue; `manual`, valor inválido e ENV.md ilegível saem com 3. O ENV.md lido é repassado ao `createMergeRequest` (`fileEnvResult`), inclusive pelo Central docs. Se um comando novo precisar ler o `ENV.md` diretamente, use `env-loader.js#resolveEnvPath`/`loadEnv` (ver `whoami.js
|
|
122
|
+
`bin/lib/tasks/comment.js` e `bin/lib/vcs/*.js` leem `process.env` direto (`TASK_MANAGER`, `TASK_MANAGER_ACCESS`, `TASK_MANAGER_URL_BASE`, `VERSION_CONTROL`, etc.; nenhum token: o login é o da CLI do vendor) — não passam pelo `env-loader.js`/ENV.md. O `jarvis tasks comment` e o `jarvis vcs create-merge` completam o que faltar no ambiente lendo o `$IDE/ENV.md` do workspace (`readFileEnv`/`resolveFileEnv` em `integrations/cli-runner.js`, com `--ide`/`--env-file`; o ambiente do processo vence; `setting` tira aspas e comentário de fim de linha), então os skills não precisam exportar nada nem usar `eval`. O `accessGate` decide antes de qualquer envio: só `cli` (ou vazio, com aviso) segue; `manual`, valor inválido e ENV.md ilegível saem com 3. O ENV.md lido é repassado ao `createMergeRequest` (`fileEnvResult`), inclusive pelo Central docs. Se um comando novo precisar ler o `ENV.md` diretamente, use `env-loader.js#resolveEnvPath`/`loadEnv` (ver `whoami.js` e `tokens.js` como exemplo) em vez de `process.env`.
|
|
123
123
|
|
|
124
124
|
## Testes
|
|
125
125
|
|
|
126
126
|
- `npm run test:comandos` — valida que toda referência a comando/skill nos workflows e skills existe de fato (não testa o CLI em runtime).
|
|
127
|
-
- `npm run test:filtro` — testes unitários de `profile-filter.js`, `token-report.js`, `flow-map`, `env-loader.js`, `sync-engine.js`, `vcs/api.js`, `tasks/comment.js`, `integrations/` (catálogo e runner) e do upgrade.
|
|
127
|
+
- `npm run test:filtro` — testes unitários de `profile-filter.js`, `token-report.js`, `flow-map`, `env-loader.js`, `sync-engine.js`, `vcs/api.js`, `tasks/comment.js`, `integrations/` (catálogo e runner) e do upgrade, além dos testes que guardam o texto de workflows e rules (por exemplo, `gate-checklist-rodadas`, `publish-comments-rules` e `pre-pr-criterio`). A lista completa é o script `test:filtro` do `package.json`.
|
|
128
128
|
- Não há teste automatizado de ponta a ponta do CLI (`jarvis <comando>` real) — a camada de dispatch (`program.js`, `bin/commands/*.js`) não é cobrida pelos testes unitários. Qualquer mudança ali precisa de validação manual dos comandos afetados.
|
|
129
129
|
|
|
130
130
|
### Como testar código que lê `fs`/rede sem mockar módulo
|