jarvis-ai-framework 3.0.0 → 3.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/README.md CHANGED
@@ -9,6 +9,7 @@ Este diretório contém **agentes especializados** organizados por domínio, usa
9
9
  ```
10
10
  agents/
11
11
  ├── engineering/ # ⚙️ Agentes do domínio de Engenharia
12
+ │ ├── eng.advisor.agent.md # Advisor opcional das questões em aberto (eng.start)
12
13
  │ ├── eng.agent.md # Agent principal de engenharia
13
14
  │ ├── eng.bug-hunter.md # Caça e análise de bugs
14
15
  │ ├── eng.dev-code-reviewer.md # Code reviewer
@@ -44,6 +45,7 @@ Agentes específicos para fluxos e regras do domínio de Engenharia.
44
45
  - `eng.rpa.agent.md` - `@eng.rpa` - Automação e scraping RPA (ARACHNE)
45
46
  - `eng.frontend.agent.md` - `@eng.frontend` - Especialista frontend (neutro de stack): UI, estado, performance, a11y
46
47
  - `eng.ux-designer.agent.md` - `@eng.ux-designer` - Especialista UX/UI: heurísticas Nielsen, jornada, microcopy
48
+ - `eng.advisor.agent.md` - `@eng.advisor.agent` - Advisor opcional: orienta as questões em aberto do `eng.start` (modelo escolhido pelo usuário)
47
49
 
48
50
 
49
51
  ### Data Agents (1)
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: eng.advisor.agent
3
+ description: >
4
+ Advisor opcional do eng.start: recebe as questões em aberto do architecture.md, uma por vez,
5
+ analisa o contexto da tarefa (card, documentos de especificação, sessão e repositório, só leitura)
6
+ e devolve a sugestão mais adequada, que é adotada como decisão. Não escreve, não executa.
7
+ Trigger: o usuário escolheu usar o Advisor no início do eng.start e o architecture.md tem questões em aberto.
8
+ tools: Read, Glob, Grep, Bash
9
+ ---
10
+
11
+ # Advisor (eng.advisor.agent)
12
+
13
+ ## Papel
14
+
15
+ Você esclarece as dúvidas do agente principal. Recebe uma questão em aberto, entende, analisa o repositório **só se precisar para ter certeza (sem chutar)** e devolve a sugestão mais adequada, que é adotada como decisão final daquela questão. Você **não** escreve documentos, **não** executa mudanças, **não** edita arquivos, **não** troca de branch e **não** faz commit. No GitHub, **só consulta** (`gh issue view`, `gh issue list`, `gh pr view`): nunca cria, edita, comenta nem fecha nada. A análise do card, a documentação, a execução e os registros são do agente principal.
16
+
17
+ > O modelo é escolhido pelo usuário no `eng.start` e passado na invocação; por isso este arquivo não declara `model:`.
18
+
19
+ ## Fluxo
20
+
21
+ Os textos dos dois passos estão em `$IDE/templates/engineering/advisor-template.md`; o agente principal os preenche e envia.
22
+
23
+ 1. **Carga inicial** (uma vez por tarefa, na primeira questão em aberto): leia as fontes de contexto abaixo e responda **só** "Contexto lido" + os caminhos que leu + uma frase de até 20 palavras sobre o objetivo da tarefa. Se o contexto for **insuficiente para orientar** (por exemplo, o card cita um PRD que você não achou), responda "Preciso de ajuda para localizar o contexto", dizendo onde procurou e o que precisa; o agente principal pergunta ao usuário e reenvia. Se o card bastar, siga sem perguntar.
24
+ 2. **Questão em aberto** (uma mensagem por questão, nesta mesma instância): responda no formato de "Saída".
25
+
26
+ ## Fontes de contexto
27
+
28
+ Use só o que existir, nesta ordem:
29
+
30
+ 1. **O card** (`TASK_MANAGER_KEY`) e o que ele referencia; com `TASK_MANAGER=github`, leia a issue e as issues e PRs citados com `gh` (só leitura).
31
+ 2. **Os documentos de especificação** no formato de `$IDE/templates/product/`: a partir da história, tarefa, bug ou épico em `$PROD_DOCS` cujo `task_link`, id ou nome corresponda ao card, siga `related_prd`, `related_frd`, `related_epic` e `related_discovery`.
32
+ 3. **As pastas de sessão** `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` e `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`: `architecture.md`, `context.md` e qualquer relatório ou rascunho.
33
+ 4. **O repositório**, em modo somente leitura, para confirmar fatos.
34
+
35
+ ## Saída
36
+
37
+ Até ~250 palavras, nesta ordem:
38
+
39
+ 1. **SUGESTÃO DO ADVISOR:** opção 1, 2 ou 3, ou a **4 — Outra** detalhada (como funciona, vantagens, desvantagens, impacto).
40
+ 2. **DIVERGÊNCIA:** se discordar da sugestão do agente principal, o motivo técnico; senão "sem divergência".
41
+ 3. **BASE:** em que documento, card ou sessão você se apoia.
42
+ 4. **ANÁLISE NO REPOSITÓRIO:** arquivos e linhas que leu, ou "não foi necessário".
43
+ 5. **RELAÇÃO COM OUTRAS TAREFAS:** algo que outra issue cubra e mude a sugestão.
44
+ 6. **CERTEZA:** alta, média ou baixa, separando o que está **escrito** nos documentos, o que foi **confirmado** no código e o que é **inferência**. Se os documentos não cobrirem a questão, diga isso.
45
+
46
+ Se uma opção for destrutiva ou fugir do que o card pede, aponte o risco.
47
+
48
+ ## Skills Disponíveis
49
+
50
+ Nenhuma — agente autocontido, não depende de skill
51
+
52
+ ## Workflows e Agentes Relacionados
53
+
54
+ - **eng.start**: abre este agente quando o usuário escolhe usar o Advisor e há questões em aberto
55
+ - **eng.plan**: consulta por exceção, se surgir questão nova em aberto
56
+ - **eng.work**: consulta por exceção, se surgir questão nova em aberto
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jarvis-ai-framework",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "Jarvis framework",
5
5
  "type": "module",
6
6
  "bin": {
@@ -34,7 +34,9 @@ Com board definido, se o key não veio nos argumentos, perguntar o id do card na
34
34
 
35
35
  ## Comentário no card
36
36
 
37
- Só se `TASK_MANAGER` estiver preenchido com um vendor. Freelance → pular.
37
+ Só se `TASK_MANAGER` estiver preenchido com um vendor. Freelance → pular. Falha no comentário não bloqueia o workflow.
38
+
39
+ Comentar **somente** em eventos relevantes: (a) **desvio do plano** (mudança de direção, fase bloqueada), (b) **auditoria do Advisor** (as questões do `architecture.md` com as opções junto da escolha), (c) **bloqueio** com valor de rastreabilidade (ex.: pré-PR reprovado), (d) **link do MR**, uma única vez. **Nunca** comentar início ou fim de etapa ("Iniciando…", "concluído…"): o acompanhamento fica no fluxo e no PR.
38
40
 
39
41
  ```
40
42
  /eng-global-task-comment {TASK_MANAGER_KEY} {mensagem}
@@ -94,6 +94,6 @@ O workflow **deve sempre** terminar com:
94
94
  - 🟡 Yellow: pode abrir PR com ressalvas documentadas
95
95
  - 🔴 Red: bloqueado — listar o que impede o PR
96
96
 
97
- 2. **Comentário no card** com o status final (via `/eng-global-task-comment`) — pular se freelance
97
+ 2. **Comentário no card só se a validação reprovar** (🔴 RED, bloqueio), com o motivo (via `/eng-global-task-comment`) — pular se freelance; GREEN e YELLOW não comentam
98
98
 
99
99
  3. **Aguardar permissão explícita** do usuário para prosseguir para `/eng.pr`
@@ -44,6 +44,8 @@ O workflow **só é considerado completo** após:
44
44
  2. O usuário revisar o documento
45
45
  3. O usuário **aprovar explicitamente** para prosseguir
46
46
 
47
+ **Exceção (Advisor):** se o usuário escolheu usar o Advisor no início do `eng.start`, as questões em aberto são decididas pela sugestão dele e o gate segue a autonomia do `context.md`: com `autonomia: alta` o `start` apresenta o resumo e segue para o `eng.plan` sem aguardar; com `média` ou `baixa`, a aprovação explícita continua obrigatória.
48
+
47
49
  ---
48
50
 
49
51
  ## Comportamento Esperado
@@ -2,7 +2,7 @@
2
2
  name: eng-global-task-comment
3
3
  description: >
4
4
  Adiciona um comentário no card do TASK_MANAGER (Jira, Linear, GitHub Issues ou Asana).
5
- Trigger: registrar progresso, início ou fim de etapa em um card.
5
+ Trigger: registrar no card um evento relevante: desvio do plano, auditoria do Advisor, bloqueio ou o link do MR (nunca início ou fim de etapa).
6
6
  argument-hint: "{TASK_MANAGER_KEY} {mensagem}"
7
7
  disable-model-invocation: false
8
8
  allowed-tools: Read Bash MCP
@@ -588,6 +588,7 @@ Nunca grave TOKEN_VERSION_CONTROL (chave removida do template).
588
588
  | `CENTRAL_DOCS_REPO` / `_REF` / `_TARGET_BRANCH` / `_REVIEWERS` / `_CACHE_TTL` | *(opcional)* | Docs centrais |
589
589
  | `SESSIONS_DIR` | `.jarvis/sessions` | Não perguntar — gravar fixo |
590
590
  | `RTK_ENABLED` | `false` (ou true se detectar `rtk`) | Token Killer |
591
+ | `ADVISOR_MODELS` | `"Sonnet 5.5,Opus 5.5,Opus 5,Fable 5.1"` | Advisor do `eng.start` — não perguntar, gravar o padrão |
591
592
 
592
593
  #### 4.1 Detecção do RTK (Token Killer)
593
594
 
@@ -16,6 +16,7 @@ A pasta `templates/` contem **modelos de documentos** usados pelo framework para
16
16
  templates/
17
17
  ├── engineering/ # Templates tecnicos
18
18
  │ ├── architecture-template.md # Template de arquitetura
19
+ │ ├── advisor-template.md # Prompts e auditoria do Advisor
19
20
  │ ├── ARD-template.md # Architecture Review Document
20
21
  │ ├── RFC-template.md # Request For Comments
21
22
  │ ├── RFC-Playbook@1.0.0.md # Playbook para RFCs
@@ -105,6 +106,7 @@ Use chaves `{...}` para indicar campos a serem preenchidos:
105
106
  | Template | Uso | Comando |
106
107
  |----------|-----|---------|
107
108
  | `architecture-template.md` | Design arquitetural | `/eng.start` |
109
+ | `advisor-template.md` | Prompts do Advisor e modelo de auditoria | `/eng.start` |
108
110
  | `ARD-template.md` | Revisao de arquitetura | `/eng.create-ard` |
109
111
  | `RFC-template.md` | Proposta de mudanca | `/eng.create-rfc` |
110
112
  | `tech-spec-template.md` | Especificacao tecnica | `/eng.build-tech-spec` |
@@ -144,6 +144,16 @@ SMTP=[google, ses, sendgrid]
144
144
  RTK_ENABLED=false
145
145
 
146
146
 
147
+ # --- Advisor (opcional) ------------------------------------------------------
148
+ # Modelos oferecidos quando o usuário escolhe usar o Advisor no início do eng.start,
149
+ # separados por vírgula. Até 4 viram opções da pergunta; o resto fica em "Outro".
150
+ # Vazio ou ausente = o Advisor usa "Sonnet 5.5" (fallback).
151
+ # Tradução para a IDE pela família (primeira palavra, em minúsculas: Sonnet → sonnet,
152
+ # Opus → opus, Fable → fable). No Claude Code só a família é respeitada: "Opus 5.5"
153
+ # e "Opus 5" abrem o mesmo modelo; remova um deles se quiser só opções distintas.
154
+ ADVISOR_MODELS="Sonnet 5.5,Opus 5.5,Opus 5,Fable 5.1"
155
+
156
+
147
157
  # --- Data Engineering (só se HUB=DATA) ---------------------------------------
148
158
  # Obrigatório quando HUB=DATA. Omitir o bloco inteiro se o HUB for outro.
149
159
  DATA_ORCHESTRATOR=[airflow, prefect, dagster, glue-scheduler]
@@ -0,0 +1,65 @@
1
+ # Advisor — prompts e auditoria
2
+
3
+ > Usado pelo `eng.start` (e, por exceção, pelo `eng.plan` e pelo `eng.work`) com o agente `eng.advisor.agent`. Os campos `{...}` são preenchidos pelo agente principal.
4
+
5
+ ## Prompt 1 — Carga inicial (uma vez por tarefa, na primeira questão em aberto)
6
+
7
+ ```
8
+ Você é o Advisor desta tarefa ({TASK_MANAGER_KEY}). Você esclarece as questões em aberto que eu enviar, uma por vez, e devolve a sugestão mais adequada; ela é adotada como decisão final. Eu (agente principal) faço a análise do card, a documentação, a execução e os registros.
9
+
10
+ Agora, somente leitura (não edite, não troque de branch, não faça commit; no GitHub, só consulta): leia as fontes de contexto do seu arquivo de agente — card, documentos de especificação ($PROD_DOCS, seguindo task_link e related_*), pastas de sessão ({SESSAO_ENG} e {SESSAO_PROD}) e, se preciso, o repositório {REPO}.
11
+
12
+ Etapas da tarefa:
13
+ | Etapa | O que acontece | Onde o Advisor entra |
14
+ | Alerta no início do eng.start | O usuário escolhe usar o Advisor e o modelo | Ainda não existe |
15
+ | eng.start | Escrevo o architecture.md; o que diverge do código ou é ambíguo vira "Questões em Aberto" | Aqui: você orienta cada questão |
16
+ | Orientação acatada | Atualizo o architecture.md e registro | Não |
17
+ | Registro da auditoria | Posto um comentário na issue com as questões e as suas sugestões (sem TASK_MANAGER, só no architecture.md) | Não |
18
+ | eng.plan / eng.work | Plano e implementação | Só por exceção: questão nova em aberto |
19
+ | Commit e PR | Um commit; o usuário valida em "Files changed" | Não |
20
+ | Merge e fechamento | O usuário faz o merge | Não |
21
+
22
+ Responda SOMENTE com "Contexto lido" + os caminhos que leu + uma frase de até 20 palavras sobre o objetivo da tarefa. Se o contexto for insuficiente para orientar, responda "Preciso de ajuda para localizar o contexto", dizendo onde procurou e o que precisa.
23
+ ```
24
+
25
+ ## Prompt 2 — Questão em aberto (uma mensagem por questão)
26
+
27
+ ```
28
+ Questão {QN} de {TOTAL} ({TASK_MANAGER_KEY}). Texto completo na seção 8 do architecture.md ({CAMINHO}).
29
+
30
+ Contexto: {por que a dúvida existe e o impacto na implementação}
31
+ Arquivos/componentes envolvidos: {arquivo — relação}
32
+ Dúvida: {o que precisa ser decidido}
33
+ Opções:
34
+ 1. {opção} — como funciona, vantagens, desvantagens, impacto
35
+ 2. {opção} — ...
36
+ 3. {opção} — ...
37
+ 4. Outra (sua, se houver)
38
+ Sugestão do agente principal: {N}, porque {motivo}
39
+
40
+ Analise o repositório só se precisar para ter certeza (sem chutar). Responda (até ~250 palavras):
41
+ 1. SUGESTÃO DO ADVISOR (opção 1-3 ou a 4 detalhada) · 2. DIVERGÊNCIA · 3. BASE · 4. ANÁLISE NO REPOSITÓRIO · 5. RELAÇÃO COM OUTRAS TAREFAS · 6. CERTEZA (escrito / confirmado no código / inferência). Não altere arquivos; aponte o risco se uma opção for destrutiva ou fugir do card.
42
+ ```
43
+
44
+ ## Modelo do comentário de auditoria (postado pelo agente principal)
45
+
46
+ ```
47
+ ## Auditoria — questões do architecture.md
48
+
49
+ Questões levantadas no `architecture.md` desta issue e a sugestão do Advisor ({modelo}). **A sugestão do Advisor prevalece e é a decisão adotada.** Análise, documentação, execução e este registro são do agente principal.
50
+
51
+ ### {QN} — {título}
52
+ - **Contexto:** {...}
53
+ - **Arquivos envolvidos:** {...}
54
+ - **Opções:** 1 — {...} · 2 — {...} · 3 — {...} · 4 — Outra
55
+ - **Sugestão do agente principal:** {N}
56
+ - **Sugestão do Advisor (decisão adotada):** **{N}**
57
+ - **Divergência:** {motivo técnico, ou "sem divergência"}
58
+ - **Base:** {...}
59
+ - **Análise no repositório:** {arquivos e linhas, ou "não foi necessário"}
60
+ - **Certeza:** {alta|média|baixa} — escrito: {...}; confirmado no código: {...}; inferência: {...}
61
+ - **Impacto da decisão:** {...}
62
+ - **Levantada em:** {eng.start | eng.plan | eng.work} (fora do eng.start, é lacuna a citar no PR)
63
+
64
+ Link do PR: {#PR} (preenchido quando existir; se a decisão for revista na execução, atualizar este mesmo comentário)
65
+ ```
@@ -5,7 +5,8 @@
5
5
 
6
6
  > **Criado em:** {DATA}
7
7
  > **Issue:** {JIRA_ISSUE_KEY}
8
- > **Status:** 🔄 Em Revisão | ✅ Aprovado | ❌ Rejeitado
8
+ > **Status:** 🔄 Em Revisão | ✅ Aprovado | ❌ Rejeitado
9
+ > **Advisor:** {modelo escolhido no início do eng.start} | não utilizado
9
10
 
10
11
  ---
11
12
 
@@ -245,9 +246,56 @@ graph TD
245
246
 
246
247
  ## 8. Questões em Aberto
247
248
 
248
- | ID | Questão | Responsável | Deadline | Status |
249
- | --- | ------------------------------ | ----------- | -------- | -------- |
250
- | Q1 | {questão ainda não respondida} | {quem} | {data} | 🔄 Aberta |
249
+ > Tudo que for **diferente do código ou ambíguo no card** vira uma questão aqui, detalhada a ponto de outro agente entendê-la sem reconstruir a análise. No mínimo 3 opções, mais a **4 — Outra**.
250
+ > **Com Advisor** (cabeçalho), a sugestão do Advisor prevalece e é a decisão adotada; o agente principal não a substitui nem contesta. **Sem Advisor**, "Sugestão do Sub-Agent (Advisor)" e "Divergência" ficam "N/A (Advisor não utilizado)", a regra em destaque é omitida e a decisão é a do usuário ao revisar o documento.
251
+ > Questão levantada depois do `eng.start` (consulta por exceção) entra aqui, numerada em sequência, marcada "levantada no `eng.plan`" ou "no `eng.work`". Sem questão em aberto, escreva "Nenhuma" e o motivo em uma frase.
252
+
253
+ | ID | Questão | Responsável | Deadline | Status |
254
+ | -- | ---------------------------- | --------------------------- | -------- | -------------------------- |
255
+ | Q1 | {resumo objetivo da questão} | {Advisor \| nome do usuário} | {— \| data} | {✅ Decidida \| 🔄 Aberta} |
256
+
257
+ ### Q1 — {Título da questão}
258
+
259
+ **Contexto:**
260
+ {Explicação detalhada do problema e por que a decisão é necessária.}
261
+
262
+ **Arquivos/componentes envolvidos:**
263
+ * `{arquivo/caminho}` — {relação com a questão}
264
+
265
+ **Dúvida:**
266
+ {Descrição clara e inequívoca do que precisa ser decidido.}
267
+
268
+ **Opções:**
269
+
270
+ **1. {Opção 1}**
271
+ * Como funciona: {descrição}
272
+ * Vantagens: {vantagens}
273
+ * Desvantagens: {desvantagens}
274
+ * Impacto: {impacto}
275
+
276
+ **2. {Opção 2}** (mesmo formato)
277
+
278
+ **3. {Opção 3}** (mesmo formato)
279
+
280
+ **4. Outra**
281
+ * Alternativa adicional identificada pelo Sub-Agent/Advisor, detalhada caso ele entenda que nenhuma das opções anteriores é a melhor abordagem.
282
+
283
+ **Sugestão do Agente Principal (Architect):**
284
+ {recomendação do agente principal + justificativa técnica}
285
+
286
+ **Sugestão do Sub-Agent (Advisor):**
287
+ {recomendação independente do Advisor + justificativa técnica}
288
+
289
+ **Decisão adotada:**
290
+ **{recomendação do Sub-Agent/Advisor}**
291
+
292
+ > **Regra:** a recomendação do Advisor sempre prevalece e deve ser adotada na implementação, independentemente de ser igual ou diferente da recomendação do Agente Principal.
293
+
294
+ **Divergência:**
295
+ {se houver diferença entre as recomendações, explicar objetivamente por que o Advisor escolheu uma abordagem diferente.}
296
+
297
+ **Impacto da decisão:**
298
+ {consequências da decisão adotada para a arquitetura e implementação.}
251
299
 
252
300
  ---
253
301
 
@@ -41,25 +41,11 @@ Antes de executar este workflow:
41
41
  | Passo | Skill | Condição |
42
42
  |-------|-------|----------|
43
43
  | Cabeçalho (agente) | `eng.agent` (agente) | Sempre — identidade do workflow |
44
- | Fase 0.5: Comentário no card — Início | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula) |
45
44
  | Fase 0 › 0.1 Herdar Contexto da Sessão | `/jarvis-context-detect` | Se `ENABLE_CDD=true` e o `context.md` não existir |
46
45
  | Fase 2: Pesquisa no Codebase | `repoprompt` (MCP: `search`, `read_selected_files`) | Para buscar e ler arquivos relevantes do codebase |
47
46
  | Fase 2: Pesquisa no Codebase (se necessário) | `context7` (MCP) | Se for preciso consultar a documentação de bibliotecas |
48
- | Comentário no card — Conclusão | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido, após validar o plano com o usuário (freelance pula) |
49
-
50
- ---
51
-
52
- ## Fase 0.5: Comentário no card — Início
53
-
54
- Pular se `TASK_MANAGER` estiver vazio (freelance).
55
-
56
- Após confirmar que o `architecture.md` existe, registrar início do planejamento:
57
-
58
- ```
59
- /eng-global-task-comment {TASK_MANAGER_KEY} 📋 [Jarvis] Iniciando criação do plano de execução
60
- ```
61
-
62
- > Usa o skill `/eng-global-task-comment`. Não bloquear se falhar.
47
+ | Fase 3: Criação do Plano (exceção) | `eng.advisor.agent` (agente) | Só por exceção: questão nova em aberto, com o Advisor habilitado no `eng.start` (cabeçalho do `architecture.md`) |
48
+ | Fase 3: Criação do Plano (exceção) | `/eng-global-task-comment` | Só por exceção: comentário de auditoria da questão nova consultada ao Advisor (freelance pula) |
63
49
 
64
50
  ---
65
51
 
@@ -174,6 +160,8 @@ CONTEXT_PROFILE:
174
160
 
175
161
  4. **Usar** o template em `$IDE/templates/engineering/plan-template.md`
176
162
 
163
+ **Questão nova em aberto (exceção).** O ideal é que todas as questões tenham sido levantadas no `eng.start`. Se surgir uma nova e o cabeçalho do `architecture.md` indicar um Advisor, consulte `eng.advisor.agent` com o Prompt 2 de `$IDE/templates/engineering/advisor-template.md` (refaça o Prompt 1 se o subagente não existir mais), acrescente a questão à seção 8 marcada "levantada no `eng.plan`", adote a sugestão do Advisor e poste o comentário de auditoria com `/eng-global-task-comment` (é desvio do plano; cite-o no PR como lacuna do `eng.start`). Sem Advisor, pergunte ao usuário.
164
+
177
165
  ### Fase 4: Validação
178
166
 
179
167
  1. **Apresentar** o plano ao humano
@@ -200,16 +188,6 @@ Com:
200
188
 
201
189
  ---
202
190
 
203
- ## Comentário no card — Conclusão
204
-
205
- Pular se `TASK_MANAGER` estiver vazio (freelance).
206
-
207
- Após validação do plano com o usuário, registrar conclusão:
208
-
209
- ```
210
- /eng-global-task-comment {TASK_MANAGER_KEY} ✅ [Jarvis] Plano de execução criado e validado - {N} fases definidas. Pronto para implementação.
211
- ```
212
-
213
191
  ## Próximo Passo
214
192
 
215
193
  Após a validação do plano com o humano, informar:
@@ -43,9 +43,8 @@ Este comando cria a **branch, commita as alterações e abre um Merge Request**.
43
43
  | Fase 1 › 1.4 Executar Testes Automatizados (Opcional) | `/eng-qa` + `QA_SPECIALIZATIONS` | Passo opcional, recomendado em mudanças significativas |
44
44
  | Skills recomendados | `/eng-global-docs-write` | Se houver necessidade de atualizar documentação junto do PR |
45
45
  | Agentes recomendados (opcional) | `eng.qa.test-planner` (agente) | Se houver dúvidas sobre cobertura de testes ou mudanças significativas |
46
- | Fase 0.5: Comentário no card — Início | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula) |
47
46
  | Fase 4 › 4.2 Criar MR/PR via adapter | `jarvis vcs create-merge` (CLI do Jarvis) | Sempre — abre o MR/PR conforme `VERSION_CONTROL` ou o host do `origin` |
48
- | Fase 5: Comentário no card — Conclusão | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido, depois de o MR ser criado (freelance pula) |
47
+ | Fase 6 › 6.2 Link do MR | `/eng-global-task-comment` | Depois de o MR ser criado: um único comentário no card com o link do MR, seguindo o Passo 6 do skill `eng-global-pr` (freelance pula) |
49
48
 
50
49
  ---
51
50
 
@@ -67,20 +66,6 @@ Ler `TASK_MANAGER` do `$IDE/ENV.md`. Seguir `$IDE/rules/engineering/eng.integrat
67
66
 
68
67
  ---
69
68
 
70
- ## Fase 0.5: Comentário no card — Início
71
-
72
- Pular se `TASK_MANAGER` estiver vazio (freelance).
73
-
74
- Registrar início da criação do MR:
75
-
76
- ```
77
- /eng-global-task-comment {TASK_MANAGER_KEY} 🔀 [Jarvis] Iniciando criação do Merge Request para {TARGET_BRANCH}
78
- ```
79
-
80
- > Usa o skill `/eng-global-task-comment`. Não bloquear se falhar.
81
-
82
- ---
83
-
84
69
  ## Fase 1: Validação Pré-PR
85
70
 
86
71
  ### 1.1 Executar Testes Unitários
@@ -248,18 +233,6 @@ Se o CLI `jarvis` não estiver instalado no repo alvo, usar `node {caminho-do-cl
248
233
 
249
234
  ---
250
235
 
251
- ## Fase 5: Comentário no card — Conclusão
252
-
253
- Pular se `TASK_MANAGER` estiver vazio (freelance).
254
-
255
- Após MR criado com sucesso, registrar:
256
-
257
- ```
258
- /eng-global-task-comment {TASK_MANAGER_KEY} ✅ [Jarvis] MR criado: {TITULO_DO_MR} → {TARGET_BRANCH} | Link: {LINK_DO_MR}
259
- ```
260
-
261
- ---
262
-
263
236
  ## Fase 6: Atualizar Board
264
237
 
265
238
  Pular se `TASK_MANAGER` estiver vazio (freelance).
@@ -268,14 +241,9 @@ Pular se `TASK_MANAGER` estiver vazio (freelance).
268
241
 
269
242
  Mova o card para a etapa equivalente a "em revisão" no seu board. Quem assumiu o card o move; não é preciso esperar o TECH LEAD ou o PM.
270
243
 
271
- ### 6.2 Adicionar Comentário
272
-
273
- Adicione um comentário no card com o link do MR:
244
+ ### 6.2 Link do MR no card
274
245
 
275
- ```
276
- MR aberto: {LINK_DO_MR}
277
- Branch: {NOME_DA_BRANCH}
278
- ```
246
+ Siga o Passo 6 do skill `eng-global-pr`: um único comentário no card, com o link e a branch. É o único comentário do `eng.pr` no card.
279
247
 
280
248
  ---
281
249
 
@@ -40,7 +40,6 @@ Estamos nos aproximando de finalizar o trabalho nesta branch e nos preparar para
40
40
  | Skills recomendados | `/jarvis-docs-index` | Se for necessário atualizar o índice de documentação |
41
41
  | Skills recomendados | `/eng-platform` + `PLATFORM_SPECIALIZATIONS` | Se a feature tiver requisitos não-funcionais de latência, throughput ou escalabilidade |
42
42
  | Skills recomendados | `/eng-backend` e `/eng-frontend` (via `eng.specializations-rules.md`) | Para validar código de backend (endpoints, autenticação, workers) ou de frontend (componentes, performance de UI, WCAG 2.1 AA); a regra também carrega as especializações registradas no ENV.md |
43
- | Fase 0.5: Comentário no card — Início | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula) |
44
43
  | Gate 0: Verificar Documentação Central | `/jarvis-docs-central` (via `jarvis docs publish --tipo ard`) | Se `CENTRAL_DOCS_REPO` estiver configurado, houver mudança arquitetural, o ARD estiver desatualizado ou novo e o usuário aceitar publicar |
45
44
  | Gates › item 1 | `prod.pm-checker` (agente) | Sempre — verificar alinhamento da branch com os docs de produto e engenharia |
46
45
  | Gates › item 2 | `eng.dev-code-reviewer` (agente) | Sempre — revisar o código antes de lançar |
@@ -52,21 +51,7 @@ Estamos nos aproximando de finalizar o trabalho nesta branch e nos preparar para
52
51
  | Gates › item 8 | `eng.ux-designer.agent` (agente) | Se a branch introduzir nova feature de UI ou alterar fluxo de usuário |
53
52
  | Gates › item 9 | `eng.docs-writer` (agente) | Sempre — atualizar a documentação do projeto |
54
53
  | Gates › item 10 | Nenhuma — checklist inline | Se a branch tocar em auth, sessions, inputs de usuário, CORS, CSP, permissões ou adicionar endpoints públicos |
55
- | Comentário no card — Conclusão | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido, com o status final (freelance pula) |
56
-
57
- ## Fase 0.5: Comentário no card — Início
58
-
59
- Pular se `TASK_MANAGER` estiver vazio (freelance).
60
-
61
- Ao iniciar o pre-PR, registrar:
62
-
63
- ```
64
- /eng-global-task-comment {TASK_MANAGER_KEY} 🔍 [Jarvis] Iniciando validação pre-PR - bateria de testes e revisão de código
65
- ```
66
-
67
- > Usa o skill `/eng-global-task-comment`. Não bloquear se falhar.
68
-
69
- ---
54
+ | Saída final › 2) Bloqueadores e pendências | `/eng-global-task-comment` | Só se a validação reprovar (status RED): um comentário com o motivo (freelance pula) |
70
55
 
71
56
  ## Regras de Execução
72
57
 
@@ -150,6 +135,8 @@ Você também precisará lidar com todo o feedback que esses agentes fornecerem
150
135
 
151
136
  ### 2) Bloqueadores e pendências
152
137
 
138
+ Se o status for **RED** (bloqueado), comente o bloqueio e o motivo no card com `/eng-global-task-comment` (freelance pula). GREEN e YELLOW não geram comentário.
139
+
153
140
  - Bloqueadores:
154
141
  - Pendências aceitas (com justificativa):
155
142
  - Follow-ups (links/IDs):
@@ -162,20 +149,4 @@ Você também precisará lidar com todo o feedback que esses agentes fornecerem
162
149
  - Docs atualizadas:
163
150
  - Riscos / trade-offs:
164
151
 
165
- ## Comentário no card — Conclusão
166
-
167
- Pular se `TASK_MANAGER` estiver vazio (freelance).
168
-
169
- Após apresentar o resultado final, registrar:
170
-
171
- - Se **Green**: `✅ [Jarvis] Pre-PR concluído com status GREEN - pronto para abrir MR`
172
- - Se **Yellow**: `⚠️ [Jarvis] Pre-PR concluído com status YELLOW - pode abrir MR com ressalvas`
173
- - Se **Red**: `🚫 [Jarvis] Pre-PR concluído com status RED - bloqueadores encontrados, não abrir MR`
174
-
175
- ```
176
- /eng-global-task-comment {TASK_MANAGER_KEY} {mensagem_status}
177
- ```
178
-
179
- ---
180
-
181
152
  Uma vez terminado, me avise e peça minha permissão para abrir o Pull Request.
@@ -26,7 +26,7 @@ Este comando inicia o **planejamento** de uma nova feature.
26
26
  |-------|-------|----------|
27
27
  | Cabeçalho (agente) | `eng.agent` (agente) | Sempre — identidade do workflow |
28
28
  | Fase 0.1: Análise de Contexto (CDD) | `/jarvis-context-detect` | Se `ENABLE_CDD=true` no ENV.md (execução obrigatória antes da Fase 1); `ENABLE_CDD=false` pula |
29
- | Fase 0.5: Comentário no card — Início | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula) |
29
+ | Fase 0.5: Advisor (opcional) | `eng.advisor.agent` (agente) | Se o usuário escolher usar o Advisor no alerta e o `architecture.md` tiver questões em aberto (aberto só na primeira questão) |
30
30
  | Fase 2.2: Buscar Documentação Central | `/jarvis-docs-central` | Se `CENTRAL_DOCS_REPO` estiver configurado no ENV.md (buscar PRD, ARD e RFCs relacionados) |
31
31
  | Fase 3.4: Estratégia de Testes | `eng.qa.test-architect` (agente) | Se a feature tiver requisitos de performance ou segurança (APIs públicas, dados sensíveis, alta carga ou requisitos não-funcionais explícitos) |
32
32
  | Fase 3.4: Estratégia de Testes | `/eng-platform` | Se a feature tiver requisitos de performance (latência, throughput, escalabilidade) |
@@ -36,7 +36,7 @@ Este comando inicia o **planejamento** de uma nova feature.
36
36
  | Fase 3.4: Estratégia de Testes | `/eng-data` (via `eng.specializations-rules.md`) | Se a feature envolver engenharia de dados (pipelines ETL/ELT, Glue, Airflow, contratos de dados, camadas bronze/silver/gold); a regra também carrega as especializações de `DATA_SPECIALIZATIONS` |
37
37
  | Fase 3.4: Estratégia de Testes | `/eng-automation` (via `eng.specializations-rules.md`) | Se a feature envolver RPA ou extração de dados/scraping; a regra também carrega as especializações de `AUTOMATION_SPECIALIZATIONS` |
38
38
  | Fase 3.4: Estratégia de Testes | `/eng-platform` (via `eng.specializations-rules.md`) | Se a feature envolver infraestrutura (IaC, contêineres, CI/CD, observabilidade, SRE, custo); a regra também carrega as especializações de `PLATFORM_SPECIALIZATIONS` |
39
- | Fase 5.4: Comentário no card — Conclusão | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido, após o usuário aprovar o `architecture.md` (freelance pula) |
39
+ | Fase 4.3: Questões em Aberto | `/eng-global-task-comment` | Se o Advisor foi usado e houve questões em aberto: **um** comentário de auditoria (freelance pula; o registro fica só no `architecture.md`) |
40
40
 
41
41
  ---
42
42
 
@@ -123,17 +123,13 @@ Se o usuário solicitar ajustes, re-execute com `--override`.
123
123
 
124
124
  ---
125
125
 
126
- ## Fase 0.5: Comentário no card — Início
126
+ ## Fase 0.5: Advisor (opcional)
127
127
 
128
- Pular se `TASK_MANAGER` estiver vazio (freelance).
129
-
130
- Após obter o `TASK_MANAGER_KEY`, registrar o início do planejamento:
128
+ Logo depois de obter o `TASK_MANAGER_KEY`, pergunte com `AskUserQuestion` (sem a ferramenta, use a tabela de `prod-rules.md`): **"Usar o Advisor nas questões em aberto desta tarefa?"** (**Não**, padrão / **Sim**). Com **Não**, siga como sempre e não mencione mais o Advisor.
131
129
 
132
- ```
133
- /eng-global-task-comment {TASK_MANAGER_KEY} 🚀 [Jarvis] Iniciando planejamento - architecture.md sendo criado
134
- ```
130
+ Com **Sim**, pergunte **"Qual modelo para o Advisor?"** com os itens de `ADVISOR_MODELS` do `ENV.md` (até 4 opções; o resto em "Outro"). Lista vazia ou ausente: use `Sonnet 5.5` sem perguntar; lista de um item: use-o sem perguntar. Traduza o nome pela família (primeira palavra em minúsculas: `sonnet`, `opus`, `fable`, `haiku`); se o modelo não for aceito pela IDE, use `sonnet` e avise em uma linha. Se a IDE não permitir escolher o modelo do subagente, avise e não faça a segunda pergunta.
135
131
 
136
- > Usa o skill `/eng-global-task-comment` (MCP Atlassian → fallback curl). Não bloquear se falhar.
132
+ Registre a escolha no cabeçalho do `architecture.md` (`Advisor:`). O agente `eng.advisor.agent` só é aberto na primeira questão em aberto (Fase 4.3).
137
133
 
138
134
  ---
139
135
 
@@ -382,6 +378,18 @@ Preencha **TODAS** as seções com as informações coletadas nas fases anterior
382
378
  - Use nomes de classes/funções existentes
383
379
  - Referencie código encontrado na investigação
384
380
 
381
+ ### 4.3 Questões em Aberto
382
+
383
+ Levante na seção 8 **tudo** que for diferente do código ou ambíguo no card, no formato do template (é aqui que as questões devem aparecer; levantá-las depois é exceção).
384
+
385
+ **Com Advisor** (Fase 0.5), use os textos de `$IDE/templates/engineering/advisor-template.md`:
386
+ 1. Na primeira questão, abra `eng.advisor.agent` em segundo plano com o modelo escolhido e envie o **Prompt 1** (carga inicial). Se ele responder que precisa de ajuda para localizar o contexto, pergunte ao usuário com `AskUserQuestion` (opção "Não há documento: siga só com o card e o código") e reenvie.
387
+ 2. Envie cada questão com o **Prompt 2**, uma por mensagem, para a mesma instância.
388
+ 3. Preencha "Sugestão do Sub-Agent (Advisor)", **"Decisão adotada" (a sugestão do Advisor, que prevalece; não a substitua nem a conteste)**, "Divergência" e "Impacto da decisão". Confira no código os fatos em que a sugestão se apoia antes de registrar.
389
+ 4. Poste **um** comentário de auditoria na issue com `/eng-global-task-comment`, no modelo do template (freelance pula).
390
+
391
+ **Sem Advisor:** apresente as questões ao usuário, como sempre.
392
+
385
393
  ---
386
394
 
387
395
  ## Fase 5: Revisão e Aprovação
@@ -403,23 +411,15 @@ Se o usuário tiver feedback:
403
411
  - Apresente novamente
404
412
  - Continue até aprovação explícita
405
413
 
414
+ **Com Advisor**, o gate segue a autonomia do `context.md` (CDD): `alta` → apresente o resumo e siga para o `eng.plan` sem aguardar; `média` ou `baixa` → aguarde a aprovação explícita. Sem `context.md`, use a tabela "Autonomia por POSITION" de `eng-rules.md`. Sem Advisor, nada muda.
415
+
406
416
  ### 5.3 Atualizar Board
407
417
 
408
418
  Pular se `TASK_MANAGER` estiver vazio (freelance).
409
419
 
410
420
  Se estiver preenchido, mova o card para a etapa equivalente a "em andamento" no seu board. Quem assumiu o card conduz a entrega; ninguém precisa liberar a transição.
411
421
 
412
- ### 5.4 Comentário no card — Conclusão
413
-
414
- Pular se `TASK_MANAGER` estiver vazio (freelance).
415
-
416
- Registrar conclusão do planejamento:
417
-
418
- ```
419
- /eng-global-task-comment {TASK_MANAGER_KEY} ✅ [Jarvis] Planejamento concluído - architecture.md criado. Branch: {NOME_DA_BRANCH}
420
- ```
421
-
422
- ### 5.5 Finalização
422
+ ### 5.4 Finalização
423
423
 
424
424
  Quando o usuário aprovar, informe:
425
425
 
@@ -25,7 +25,6 @@ Este comando executa a **implementação de código** seguindo o plano de execu
25
25
  |-------|-------|----------|
26
26
  | Cabeçalho (agente) | `eng.agent` (agente) | Sempre — identidade do workflow |
27
27
  | Fase 0 › 0.1 Verificar ou Gerar Contexto da Sessão | `/jarvis-context-detect` | Se `ENABLE_CDD=true` e o `context.md` não existir (obrigatório antes da Fase 1) |
28
- | Fase 0.5: Comentário no card — Início | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula) |
29
28
  | Fase 3 › 3.1 Implementar Código (skill de domínio) | `/eng-frontend` (via `eng.specializations-rules.md`) | Se o domínio da feature for frontend (componentes, UI, estado, estilos, bundle, a11y); a regra também carrega `FRONTEND_SPECIALIZATIONS` |
30
29
  | Fase 3 › 3.1 Implementar Código (skill de domínio) | `/eng-backend` (via `eng.specializations-rules.md`) | Se o domínio da feature for backend (endpoints, auth, workers, filas, cache, banco, integrações); a regra também carrega `BACKEND_SPECIALIZATIONS` |
31
30
  | Fase 3 › 3.1 Implementar Código (skill de domínio) | `/eng-automation` (via `eng.specializations-rules.md`) | Se o domínio da feature for RPA, scraping, extração de dados, ETL ou parsing; a regra também carrega `AUTOMATION_SPECIALIZATIONS` |
@@ -33,7 +32,8 @@ Este comando executa a **implementação de código** seguindo o plano de execu
33
32
  | Fase 3 › 3.3.1 Identificar Gaps de Teste | `eng.qa.test-planner` (agente) | Sempre, depois de implementar o código da fase |
34
33
  | Fase 3 › 3.3.2 Implementar Testes Faltantes (Opção A) | `eng.qa.testing-engineer` (agente) | Se o test-planner identificar gaps e a estratégia do `architecture.md` seção 6.5 indicar testes manuais (unitário/integração) |
35
34
  | Fase 3 › 3.3.2 Implementar Testes Faltantes (Opção B) | `/eng-qa` | Se a estratégia do `architecture.md` seção 6.5 indicar uma especialização registrada em `QA_SPECIALIZATIONS` |
36
- | Fase 6 › 6.2 Se Todas as Fases Foram Concluídas | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido e todas as fases estiverem concluídas (freelance pula) |
35
+ | Fase 3 › 3.1 Implementar Código (exceção) | `eng.advisor.agent` (agente) | Só por exceção: questão nova em aberto, com o Advisor habilitado no `eng.start` (cabeçalho do `architecture.md`) |
36
+ | Fase 5 › 5.4 e "Se houver bloqueio técnico" | `/eng-global-task-comment` | Se houver desvio do plano: mudança de direção, fase bloqueada ou questão nova consultada ao Advisor (freelance pula) |
37
37
 
38
38
  ---
39
39
 
@@ -152,20 +152,6 @@ Use as características do projeto detectadas:
152
152
 
153
153
  ---
154
154
 
155
- ## Fase 0.5: Comentário no card — Início
156
-
157
- Pular se `TASK_MANAGER` estiver vazio (freelance).
158
-
159
- Antes de iniciar a implementação, registrar início:
160
-
161
- ```
162
- /eng-global-task-comment {TASK_MANAGER_KEY} ⚙️ [Jarvis] Iniciando implementação - Fase {N} do plano
163
- ```
164
-
165
- > Usa o skill `/eng-global-task-comment`. Não bloquear se falhar.
166
-
167
- ---
168
-
169
155
  ## Fase 1: Leitura da Sessão
170
156
 
171
157
  ### 1.1 Carregar Arquivos
@@ -250,6 +236,8 @@ Para cada tarefa da fase:
250
236
  - Testes unitários para cada função/método
251
237
  - Cobrir casos de sucesso e erro
252
238
 
239
+ **Questão nova em aberto (exceção).** O ideal é que todas as questões tenham sido levantadas no `eng.start`. Se surgir uma nova e o cabeçalho do `architecture.md` indicar um Advisor, consulte `eng.advisor.agent` com o Prompt 2 de `$IDE/templates/engineering/advisor-template.md` (refaça o Prompt 1 se o subagente não existir mais), acrescente a questão à seção 8 marcada "levantada no `eng.work`", adote a sugestão do Advisor e poste o comentário de auditoria com `/eng-global-task-comment` (é desvio do plano; cite-o no PR como lacuna do `eng.start`). Sem Advisor, pergunte ao usuário.
240
+
253
241
  ### 3.2 Executar Validações Locais
254
242
 
255
243
  Após implementar:
@@ -429,6 +417,8 @@ Atualize o `plan.md`:
429
417
  - **Atenção**: {ponto importante para próximas fases}
430
418
  ```
431
419
 
420
+ Se o comentário registrar uma **mudança de direção** (desvio do plano), comente também no card com `/eng-global-task-comment`, dizendo o que mudou e por quê (freelance pula).
421
+
432
422
  ### 5.3 Commit da Fase (GitFlow)
433
423
 
434
424
  Após validação do usuário e atualização do `plan.md`, commitar a fase na branch atual:
@@ -494,12 +484,6 @@ Refs: TASK-123"
494
484
 
495
485
  ### 6.2 Se Todas as Fases Foram Concluídas
496
486
 
497
- **Comentário no card — Conclusão** (pular se freelance):
498
-
499
- ```
500
- /eng-global-task-comment {TASK_MANAGER_KEY} ✅ [Jarvis] Implementação concluída - todas as {N} fases completadas. Commits realizados por fase.
501
- ```
502
-
503
487
  ```
504
488
  🎉 TODAS AS FASES CONCLUÍDAS!
505
489
 
@@ -559,5 +543,6 @@ Refs: TASK-123"
559
543
  ### Se houver bloqueio técnico:
560
544
 
561
545
  → Documente no plan.md como `[Bloqueada 🚫]`
546
+ → Comente o bloqueio no card com `/eng-global-task-comment` (desvio do plano; freelance pula)
562
547
  → Explique o bloqueio ao usuário
563
548
  → Sugira alternativas se possível