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 +2 -0
- package/agents/engineering/eng.advisor.agent.md +56 -0
- package/package.json +1 -1
- package/rules/engineering/eng.integrations-rules.md +3 -1
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +1 -1
- package/rules-on-demand/engineering/eng.start-rules.md +2 -0
- package/skills/eng-global-task-comment/SKILL.md +1 -1
- package/skills/jarvis-init/SKILL.md +1 -0
- package/templates/AGENTS.md +2 -0
- package/templates/ENV-template.md +10 -0
- package/templates/engineering/advisor-template.md +65 -0
- package/templates/engineering/architecture-template.md +52 -4
- package/workflows/engineering/eng.plan.md +4 -26
- package/workflows/engineering/eng.pr.md +3 -35
- package/workflows/engineering/eng.pre-pr.md +3 -32
- package/workflows/engineering/eng.start.md +21 -21
- package/workflows/engineering/eng.work.md +7 -22
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
|
@@ -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
|
|
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
|
|
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
|
|
package/templates/AGENTS.md
CHANGED
|
@@ -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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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
|
-
|
|
|
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
|
|
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
|
|
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
|
-
|
|
|
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:
|
|
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
|
|
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:
|
|
126
|
+
## Fase 0.5: Advisor (opcional)
|
|
127
127
|
|
|
128
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|