jarvis-ai-framework 4.0.0 → 5.0.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.
Files changed (45) hide show
  1. package/agents/engineering/eng.docs-consolidator.agent.md +81 -0
  2. package/agents/engineering/qa/eng.qa.test-planner.md +7 -7
  3. package/agents/product/prod.discovery-interviewer.md +1 -1
  4. package/bin/commands/docs-publish.js +18 -8
  5. package/bin/commands/docs-sync.js +3 -2
  6. package/bin/lib/cli/program.js +3 -3
  7. package/bin/lib/docs/publish-file.js +35 -24
  8. package/bin/lib/docs/storage/build-index.js +29 -8
  9. package/bin/lib/docs/validate-frontmatter.js +4 -0
  10. package/package.json +1 -1
  11. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  12. package/rules/engineering/eng.integrations-rules.md +1 -1
  13. package/rules/engineering/rpa/eng.rpa-rules.md +1 -1
  14. package/rules/product/prod-rules.md +3 -3
  15. package/rules-on-demand/engineering/eng.pr-rules.md +9 -31
  16. package/rules-on-demand/engineering/eng.pre-pr-rules.md +12 -19
  17. package/skills/eng-backend-arch-c4/SKILL.md +3 -3
  18. package/skills/eng-global-docs-write/SKILL.md +1 -1
  19. package/skills/eng-qa-planner/SKILL.md +5 -5
  20. package/skills/jarvis-docs-central/README.md +18 -30
  21. package/skills/jarvis-docs-central/SKILL.md +80 -97
  22. package/skills/jarvis-init/SKILL.md +60 -26
  23. package/templates/ENV-template.md +15 -9
  24. package/templates/engineering/ARD-template.md +1 -1
  25. package/templates/engineering/central-delivery-template.md +65 -0
  26. package/templates/engineering/central-feature-template.md +86 -0
  27. package/workflows/engineering/eng.build-tech-spec.md +3 -3
  28. package/workflows/engineering/eng.create-ard-from-code.md +12 -36
  29. package/workflows/engineering/eng.create-ard.md +14 -38
  30. package/workflows/engineering/eng.create-rfc.md +8 -32
  31. package/workflows/engineering/eng.pr.md +31 -62
  32. package/workflows/engineering/eng.pre-pr.md +52 -89
  33. package/workflows/engineering/eng.rpa.robot.md +5 -5
  34. package/workflows/engineering/eng.spec-consolidate.md +140 -0
  35. package/workflows/engineering/eng.start.md +6 -6
  36. package/workflows/engineering/eng.work.md +1 -1
  37. package/workflows/engineering/qa/eng.qa-refinement-entry.md +1 -1
  38. package/workflows/engineering/qa/eng.qa-release-signoff.md +3 -3
  39. package/workflows/engineering/qa/eng.qa-sprint-planning.md +2 -2
  40. package/workflows/product/prod.spec.ard.md +4 -4
  41. package/workflows/product/prod.spec.breakdown.md +1 -1
  42. package/workflows/product/prod.spec.epic.md +5 -35
  43. package/workflows/product/prod.spec.frd.md +6 -34
  44. package/workflows/product/prod.spec.prd.md +6 -35
  45. package/workflows/warm-up.md +8 -10
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Criação de branch, commit e merge request (MR)
2
+ description: Gera o pull-request.md na sessão e, com o Sim do usuário, faz o push e abre o merge request (MR)
3
3
  auto_execution_mode: 3
4
4
  agent: "$IDE/agents/engineering/eng.agent.md"
5
5
  rules_file: "$IDE/rules-on-demand/engineering/eng.pr-rules.md"
@@ -43,8 +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 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` |
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) |
46
+ | Fase 4 › 4.4 Criar MR/PR via adapter | `jarvis vcs create-merge` (CLI do Jarvis) | Só se o usuário responder **Sim** na Fase 4.3: abre o MR/PR conforme `VERSION_CONTROL` ou o host do `origin` |
47
+ | Fase 6 › 6.2 Link do MR | `/eng-global-task-comment` | Depois de o MR ser criado (só com o Sim da 4.3): um único comentário no card com o link do MR, seguindo o Passo 6 do skill `eng-global-pr` (freelance pula) |
48
48
 
49
49
  ---
50
50
 
@@ -156,6 +156,8 @@ Refs: {TASK_MANAGER_KEY}"
156
156
 
157
157
  ## Fase 3: Push
158
158
 
159
+ > ⚠️ O push só acontece **depois do Sim** da Fase 4.3. Esta fase descreve o comando; ele roda dentro da publicação.
160
+
159
161
  ### 3.1 Enviar para Remote
160
162
 
161
163
  ```bash
@@ -175,7 +177,9 @@ git log --oneline -3
175
177
  Ler `VERSION_CONTROL` do `$IDE/ENV.md` (`gitlab` | `github` | `bitbucket`).
176
178
  Use **MR** se GitLab, **PR** se GitHub/Bitbucket.
177
179
 
178
- ### 4.1 Preparar descrição
180
+ ### 4.1 Gerar `pull-request.md` na sessão
181
+
182
+ Escreva o título e a descrição do PR em **`$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/pull-request.md`** (primeira linha `# {título}`, depois o corpo). Se a sessão tiver o `gate-checklist.md` do `eng.pre-pr`, use o PR Brief e as decisões dele.
179
183
 
180
184
  Template, nesta ordem (o primeiro que existir):
181
185
 
@@ -199,21 +203,32 @@ Preencher com a tarefa. Link do card:
199
203
 
200
204
  > ⚠️ Não mencione AI, Claude ou assistentes no MR/PR.
201
205
 
202
- ### 4.2 Criar MR/PR via adapter
206
+ ### 4.2 Revisão do texto
207
+
208
+ Mostre o `pull-request.md` (título e resumo das seções) e pergunte com `AskUserQuestion`: `[Aprovar]` / `[Ajustar]`. Ajuste até a aprovação.
209
+
210
+ ### 4.3 Publicar? (Sim / Não)
211
+
212
+ Pergunte com `AskUserQuestion` (**Sim / Não**): **"Publicar o PR agora?"**
213
+
214
+ - **Não:** nada é enviado. O `pull-request.md` fica na sessão para você publicar quando quiser (à mão ou rodando o `/eng.pr` de novo). Pule para a Fase 7, com a mensagem "PR não publicado".
215
+ - **Sim:** faça o push (Fase 3) e crie o MR/PR (4.4).
216
+
217
+ ### 4.4 Criar MR/PR via adapter
203
218
 
204
219
  - **Título**: `{TASK_MANAGER_KEY}: {Título da tarefa}`
205
220
  - **Branch origem**: `{NOME_DA_BRANCH}`
206
221
  - **Branch destino**: `{BRANCH_BASE}` (a `Branch base:` do `architecture.md`)
207
- - **Descrição**: template preenchido, gravado em arquivo temporário
222
+ - **Descrição**: o corpo do `pull-request.md` aprovado (sem a linha do título)
208
223
 
209
224
  ```bash
210
225
  BODY_FILE=$(mktemp)
211
- # gravar a descrição preenchida em $BODY_FILE
226
+ tail -n +2 $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/pull-request.md > "$BODY_FILE"
212
227
 
213
228
  jarvis vcs create-merge \
214
229
  --source "${NOME_DA_BRANCH}" \
215
- --target "${TARGET_BRANCH}" \
216
- --title "${TASK_MANAGER_KEY}: ${TITULO_DA_TAREFA}" \
230
+ --target "${BRANCH_BASE}" \
231
+ --title "${TITULO_DO_PULL_REQUEST_MD}" \
217
232
  --body-file "$BODY_FILE"
218
233
 
219
234
  rm -f "$BODY_FILE"
@@ -326,65 +341,18 @@ fi
326
341
  {LEAD_TIME_MSG}
327
342
 
328
343
  📌 Próximos passos:
329
- 1. Aguardar revisão do time
330
- 2. Processar comentários do code review
344
+ 1. /eng.spec-consolidate {TASK_MANAGER_KEY} → registrar no Central docs o que esta entrega implementou
345
+ 2. Aguardar revisão do time e processar os comentários do code review
331
346
  3. Merge após aprovação
332
347
 
348
+ 🗂️ A sessão $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/ não é apagada (o /eng.spec-consolidate precisa dela).
349
+ Remova à mão quando quiser.
350
+
333
351
  🔗 Links:
334
352
  - MR: {LINK_DO_MR}
335
353
  - Jira: {TASK_MANAGER_URL_BASE}/browse/{TASK_MANAGER_KEY}
336
354
  ```
337
355
 
338
- ## Fase 8: Limpeza da Sessão
339
-
340
- ### 9.1 Solicitar Confirmação
341
-
342
- Após o MR ser criado com sucesso, **solicitar confirmação do usuário**:
343
-
344
- ```
345
- 🧹 Deseja limpar a sessão?
346
-
347
- A pasta $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/ será removida.
348
- A documentação permanece no Jira e no MR.
349
-
350
- Confirmar? (s/n)
351
- ```
352
-
353
- > ⚠️ **IMPORTANTE**: Sempre pedir confirmação antes de executar comandos destrutivos.
354
-
355
- ### 9.2 Remover Pasta da Sessão
356
-
357
- Se confirmado:
358
-
359
- ```bash
360
- rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
361
- ```
362
-
363
- **Exemplo:**
364
-
365
- ```bash
366
- rm -rf $SESSIONS_DIR/eng/task-123/
367
- ```
368
-
369
- ### 9.3 Confirmar Limpeza
370
-
371
- ```
372
- 🧹 SESSÃO LIMPA!
373
-
374
- 📁 Removido: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
375
- - architecture.md ✅
376
- - plan.md ✅
377
- - context.md ✅ (se existia)
378
-
379
- ℹ️ A documentação permanece no:
380
- - Card do Jira: {TASK_MANAGER_KEY}
381
- - Merge Request: {LINK_DO_MR}
382
- ```
383
-
384
- > ⚠️ **NOTA**: A documentação não é perdida! Ela está anexada no Jira e registrada no MR.
385
-
386
- ---
387
-
388
356
  ## Regras Importantes
389
357
 
390
358
  ### ⛔ NÃO FAÇA
@@ -403,7 +371,8 @@ rm -rf $SESSIONS_DIR/eng/task-123/
403
371
  - ✅ Criar branch no padrão `{TASK_MANAGER_KEY}-{titulo}`
404
372
  - ✅ Preencher template do MR completamente
405
373
  - ✅ Mover card para "In Review"
406
- - ✅ **Limpar sessão após criar MR** (`rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/`)
374
+ - ✅ Gerar o `pull-request.md` na sessão e só publicar com o **Sim** (Fase 4.3)
375
+ - ✅ **Nunca apagar a sessão:** o `/eng.spec-consolidate` precisa dela
407
376
 
408
377
  ---
409
378
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Validação de segurança para realizar um pull request ou merge request
2
+ description: Revisão de lacunas antes de abrir o PR/MR, com o relatório gate-checklist.md na sessão
3
3
  auto_execution_mode: 3
4
4
  env_file: "@/ENV.md"
5
5
  rules_file: "$IDE/rules-on-demand/engineering/eng.pre-pr-rules.md"
@@ -10,7 +10,9 @@ model_justification: Revisão multi-agente requer coordenação, análise de có
10
10
 
11
11
  # pre-pr
12
12
 
13
- Estamos nos aproximando de finalizar o trabalho nesta branch e nos preparar para um solicitação de integração. Agora, é hora de fazer verificações finais e limpezas para assegurar que estamos alinhados com nossos convenções e objetivos.
13
+ Antes de abrir o PR/MR, este comando **revê a branch atrás de possíveis lacunas** (produto, código, testes, requisitos não funcionais, interface, segurança, documentação) e gera um relatório, o **`gate-checklist.md`**, na pasta da sessão. Ele é estruturado e explicativo, para você decidir o que ajustar e o que não ajustar.
14
+
15
+ > ⚠️ **Só revisa.** O `eng.pre-pr` não corrige código, não escreve testes, não atualiza documentação e não publica nada no Central docs. Ele aponta; quem decide e ajusta é você (ou o `eng.work`, se pedir).
14
16
 
15
17
  > 📋 **Rules**: `$IDE/rules-on-demand/engineering/eng.pre-pr-rules.md` — **antes de começar, leia esse arquivo e siga-o**: ele não é carregado automaticamente no início da sessão.
16
18
 
@@ -18,7 +20,7 @@ Estamos nos aproximando de finalizar o trabalho nesta branch e nos preparar para
18
20
 
19
21
  - **eng-qa-planner**: para avaliar cobertura de testes e identificar gaps antes do PR — se a especialização estiver registrada em `QA_SPECIALIZATIONS` (ver `$IDE/rules/engineering/eng.specializations-rules.md`). Sem ela, use a base `eng-qa` diretamente.
20
22
  - Arquivo: `$IDE/skills/eng-qa-planner/SKILL.md`
21
- - **eng-global-docs-write**: para atualizar documentação baseada nas mudanças da branch.
23
+ - **eng-global-docs-write**: para identificar documentação que ficou desatualizada com as mudanças da branch.
22
24
  - Arquivo: `$IDE/skills/eng-global-docs-write/SKILL.md`
23
25
  - **jarvis-docs-index**: para atualizar o índice de documentação quando necessário.
24
26
  - Arquivo: `$IDE/skills/jarvis-docs-index/SKILL.md`
@@ -36,117 +38,78 @@ Estamos nos aproximando de finalizar o trabalho nesta branch e nos preparar para
36
38
  | Passo | Skill | Condição |
37
39
  |-------|-------|----------|
38
40
  | Skills recomendados | `/eng-qa-planner` | Se a especialização estiver registrada em `QA_SPECIALIZATIONS`; sem ela, usar a base `/eng-qa` diretamente |
39
- | Skills recomendados | `/eng-global-docs-write` | Para atualizar a documentação com base nas mudanças da branch |
41
+ | Skills recomendados | `/eng-global-docs-write` | Para identificar documentação desatualizada pelas mudanças da branch |
40
42
  | Skills recomendados | `/jarvis-docs-index` | Se for necessário atualizar o índice de documentação |
41
43
  | Skills recomendados | `/eng-platform` + `PLATFORM_SPECIALIZATIONS` | Se a feature tiver requisitos não-funcionais de latência, throughput ou escalabilidade |
42
44
  | 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
- | Gate 0: Verificar Documentação Central | `/jarvis-docs-central` (via `jarvis docs publish --tipo ard`) | Se `CENTRAL_DOCS_STORAGE` estiver configurado, houver mudança arquitetural, o ARD estiver desatualizado ou novo e o usuário aceitar publicar |
44
45
  | Gates › item 1 | `prod.pm-checker` (agente) | Sempre — verificar alinhamento da branch com os docs de produto e engenharia |
45
46
  | Gates › item 2 | `eng.dev-code-reviewer` (agente) | Sempre — revisar o código antes de lançar |
46
47
  | Gates › item 3 | `eng.qa.test-planner` (agente) | Sempre — identificar gaps de cobertura de testes na branch |
47
- | Gates › item 4 | `eng.qa.testing-engineer` (agente) | Se o test-planner identificar gaps críticos (escrever os testes faltantes) |
48
48
  | Gates › item 5 | `eng.qa.test-architect` (agente) | Se a feature tiver requisitos não-funcionais (no `architecture.md` ou explícitos na task) |
49
49
  | Gates › item 6 | `/eng-qa` + `QA_SPECIALIZATIONS` | Sempre — frontend e/ou backend conforme o projeto |
50
50
  | Gates › item 7 | `eng.frontend.agent` (agente) | Se a branch tiver mudanças de interface (componentes, estilos, estado) |
51
51
  | Gates › item 8 | `eng.ux-designer.agent` (agente) | Se a branch introduzir nova feature de UI ou alterar fluxo de usuário |
52
- | Gates › item 9 | `eng.docs-writer` (agente) | Sempre — atualizar a documentação do projeto |
52
+ | Gates › item 9 | `eng.docs-writer` (agente) | Sempre — apontar documentação do projeto desatualizada (sem editar) |
53
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 |
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) |
54
+ | Publicação do relatório | `/eng-global-task-comment` | Só se o usuário responder **Sim** no fim: o `gate-checklist.md` com as decisões vira um comentário na issue/card (freelance pula) |
55
55
 
56
56
  ## Regras de Execução
57
57
 
58
- - **Escopo**: avalie apenas as mudanças desta branch em relação ao branch base (ex.: `main`/`master`).
59
- - **Evidências**: sempre que mencionar “testes/validações passando”, inclua quais comandos foram usados e o resultado (ou descreva smoke tests manuais quando não houver suíte).
60
- - **Revalidação**: se qualquer gate levar a mudanças no código, reexecute no mínimo:
61
- - Gate 2 (revisão técnica)
62
- - Gate 3 (testes/validações)
58
+ - **Escopo**: avalie apenas as mudanças desta branch em relação à **branch base** (`Branch base:` do `architecture.md`; sem ele, pergunte).
59
+ - **Só apontar**: cada agente/gate devolve lacunas, não correções. Nenhum arquivo do projeto é alterado por este comando.
60
+ - **Evidências**: cite o comando rodado e o resultado, ou `arquivo:linha`, para cada lacuna.
63
61
 
64
- ## Gates
62
+ ## Gates (revisão)
65
63
 
66
- ### Gate 0: Verificar Documentação Central (condicional)
64
+ 1. Invoque o agente [prod.pm-checker]($IDE/agents/product/prod.pm-checker.md) para apontar desalinhamentos entre a branch e os documentos de produto e de engenharia (em `$PROD_DOCS`, `$ENG_DOCS` e no Central docs).
65
+ 2. Invoque o agente [eng.dev-code-reviewer]($IDE/agents/engineering/eng.dev-code-reviewer.md) para apontar problemas de código (bugs, legibilidade, padrões do projeto).
66
+ 3. Invoque o agente [eng.qa.test-planner]($IDE/agents/engineering/qa/eng.qa.test-planner.md) para apontar lacunas de cobertura de testes. Lacunas críticas: funções públicas sem teste, lógica de negócio descoberta, tratamento de erro não validado.
67
+ 4. **Se a feature tiver requisitos não funcionais** (no `architecture.md` ou explícitos na task), invoque o agente [eng.qa.test-architect]($IDE/agents/engineering/qa/eng.qa.test-architect.md) para apontar o que falta validar (performance, segurança, quality gates).
68
+ 5. Use a base [eng-qa]($IDE/skills/eng-qa/SKILL.md) (ou a especialização registrada em `QA_SPECIALIZATIONS`) para rodar os testes automatizados da branch e registrar o resultado.
69
+ 6. **Se a branch tiver mudanças de interface**, invoque o agente [eng.frontend.agent]($IDE/agents/engineering/eng.frontend.agent.md) para apontar problemas de tipagem, tokens de design e acessibilidade (WCAG 2.1 AA), aplicando as especializações de frontend registradas.
70
+ 7. **Se a branch introduzir nova feature de UI ou alterar fluxo de usuário**, invoque o agente [eng.ux-designer.agent]($IDE/agents/engineering/eng.ux-designer.agent.md) para apontar empty states, loading, mensagens de erro e consistência visual.
71
+ 8. **Se a branch tocar em auth, sessions, inputs de usuário, CORS, CSP, permissões ou adicionar endpoints públicos**, aplique o checklist de segurança (padrões da base [eng-backend]($IDE/skills/eng-backend/SKILL.md) + `BACKEND_SPECIALIZATIONS`, [eng-frontend]($IDE/skills/eng-frontend/SKILL.md) + `FRONTEND_SPECIALIZATIONS` e, para infraestrutura, [eng-platform]($IDE/skills/eng-platform/SKILL.md) + `PLATFORM_SPECIALIZATIONS`): sanitização de inputs e queries parametrizadas, auth guards, headers e CORS, secrets no diff, `npm audit` sem HIGH/CRITICAL.
72
+ 9. Invoque o agente [eng.docs-writer]($IDE/agents/engineering/eng.docs-writer.md) para apontar documentação do projeto que ficou desatualizada (sem editar).
67
73
 
68
- Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md:
74
+ ## Relatório: `gate-checklist.md` (obrigatório)
69
75
 
70
- **Passo 1:** Detectar mudanças arquiteturais no diff da branch
71
- ```bash
72
- git diff main...HEAD | grep -E "(class|interface|schema|migration|config)" || true
73
- ```
76
+ Grave em `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/gate-checklist.md`:
74
77
 
75
- **Passo 2:** Se mudanças arquiteturais detectadas:
76
- - Verificar se ARD local existe em `./docs/engineering/`
77
- - Comparar com ARD do central-docs (se existir)
78
- - Se desatualizado ou novo:
79
- - Perguntar: "Publicar ARD atualizado no central-docs?"
80
- - Se sim: executar `jarvis docs publish --file <path> --tipo ard`
78
+ ```markdown
79
+ # Gate checklist — {TASK_MANAGER_KEY}
81
80
 
82
- **Passo 3:** Se novos contratos/APIs criados:
83
- - Verificar se há RFC relacionado
84
- - Se não: sugerir criar RFC para decisões arquiteturais
81
+ > Branch: {branch} → {branch base} · Data: {AAAA-MM-DD}
82
+ > **Semáforo:** 🟢 pronto para PR | 🟡 pode abrir com notas | 🔴 há bloqueadores
85
83
 
86
- **Comportamento:**
87
- - Se `CENTRAL_DOCS_STORAGE` vazio → pular silenciosamente
88
- - Não bloquear PR por docs desatualizados (apenas avisar)
84
+ ## Resumo
85
+ {3 a 5 frases: o que a branch faz, quantas lacunas por severidade e o principal risco.}
89
86
 
90
- ---
87
+ ## Lacunas
88
+
89
+ ### {Área: Produto e documentação | Código | Testes | Não funcionais | Interface e UX | Segurança | Documentação do projeto}
90
+
91
+ | # | Lacuna | Onde | Por que importa | Sugestão | Severidade | Decisão |
92
+ |---|---|---|---|---|---|---|
93
+ | 1 | {o que falta ou está errado} | `{arquivo:linha}` | {impacto, em linguagem simples} | {como resolver} | 🔴 Bloqueador / 🟡 Importante / ⚪ Menor | {Ajustar \| Não ajustar: motivo} |
91
94
 
92
- 1. Invoque o agente [prod.pm-checker]($IDE/agents/product/prod.pm-checker.md) para verificar se a branch está alinhada com os docs do projeto, documentação de produto e de engenharia.
93
- 2. Invoque o agente [eng.dev-code-reviewer]($IDE/agents/engineering/eng.dev-code-reviewer.md) para revisar o código e assegurar que está bom para lançar.
94
- 3. Invoque o agente [eng.qa.test-planner]($IDE/agents/engineering/qa/eng.qa.test-planner.md) para identificar gaps de cobertura de testes na branch.
95
- 4. **Se o test-planner identificar gaps críticos**, invoque o agente [eng.qa.testing-engineer]($IDE/agents/engineering/qa/eng.qa.testing-engineer.md) para escrever os testes faltantes antes de prosseguir.
96
- - Gaps críticos: funções públicas sem teste, lógica de negócio descoberta, tratamento de erros não validado
97
- - Gaps aceitáveis (com justificativa): código de infraestrutura, integrações já cobertas por e2e
98
- 5. **Se a feature tiver requisitos não-funcionais** (definidos no `architecture.md` ou explícitos na task), invoque o agente [eng.qa.test-architect]($IDE/agents/engineering/qa/eng.qa.test-architect.md) para validar:
99
- - Testes de performance executados e dentro dos thresholds
100
- - Testes de segurança passando (RBAC, injection, etc.)
101
- - Quality gates configurados corretamente
102
- 6. Use a base [eng-qa]($IDE/skills/eng-qa/SKILL.md) (ou a especialização registrada em `QA_SPECIALIZATIONS`, se houver uma) para validar testes automatizados nas mudanças da branch, frontend e/ou backend conforme o projeto.
103
- 7. **Se a branch tiver mudanças de interface** (componentes, estilos, estado), invoque o agente [eng.frontend.agent]($IDE/agents/engineering/eng.frontend.agent.md) para validar:
104
- - Tipagem forte (quando a linguagem tem), tokens de design do projeto usados, acessibilidade WCAG 2.1 AA
105
- - Aplicar as exigências das especializações de frontend registradas (ver `eng.specializations-rules.md`)
106
- 8. **Se a branch introduzir nova feature de UI ou alterar fluxo de usuário**, invoque o agente [eng.ux-designer.agent]($IDE/agents/engineering/eng.ux-designer.agent.md) para verificar:
107
- - Empty states, loading states e mensagens de erro em linguagem humana
108
- - Consistência com padrões visuais existentes no produto
109
- 9. Invoque o agente [eng.docs-writer]($IDE/agents/engineering/eng.docs-writer.md) para atualizar a documentação do projeto.
110
- 10. **Se a branch tocar em auth, sessions, inputs de usuário, CORS, CSP, permissões ou adicionar endpoints públicos**, aplicar o gate de segurança (os padrões de segurança da base [eng-backend]($IDE/skills/eng-backend/SKILL.md) + `BACKEND_SPECIALIZATIONS` / [eng-frontend]($IDE/skills/eng-frontend/SKILL.md) + `FRONTEND_SPECIALIZATIONS` e, para infraestrutura, do [eng-platform]($IDE/skills/eng-platform/SKILL.md) + `PLATFORM_SPECIALIZATIONS` servem de referência):
111
- - Revisar sanitização de inputs e queries parametrizadas
112
- - Verificar auth guards em endpoints novos
113
- - Validar headers de segurança e configurações de CORS
114
- - Escanear secrets no diff (`grep` por patterns de tokens/senhas)
115
- - Verificar `npm audit` sem vulnerabilidades HIGH/CRITICAL
116
- - Se achados CRITICAL: status **Red** (bloqueador)
117
-
118
- Você também precisará lidar com todo o feedback que esses agentes fornecerem e fazer mudanças e correções conforme necessário.
119
-
120
- ## Checklist final (obrigatório)
121
-
122
- - [ ] Não existem bloqueadores abertos (segurança/bugs críticos).
123
- - [ ] Testes e validações relevantes foram executados e passaram (com evidências automatizadas ou manuais).
124
- - [ ] Cobertura de testes para mudanças da branch foi avaliada (e gaps críticos tratados ou justificados).
125
- - [ ] Documentação foi revisada/atualizada (listar arquivos alterados) ou foi explicitado por que não foi necessário.
126
- - [ ] Riscos conhecidos e trade-offs foram registrados (e follow-ups criados quando aplicável).
127
-
128
- ## Saída final (obrigatória)
129
-
130
- ### 1) Status Pre-PR (Semáforo)
131
-
132
- - Green: pronto para PR
133
- - Yellow: pode abrir PR com notas e follow-ups
134
- - Red: não pode abrir PR (listar bloqueadores)
135
-
136
- ### 2) Bloqueadores e pendências
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
-
140
- - Bloqueadores:
141
- - Pendências aceitas (com justificativa):
142
- - Follow-ups (links/IDs):
143
-
144
- ### 3) PR Brief (para colar no PR)
95
+ (uma tabela por área; área sem lacuna: "Nenhuma lacuna encontrada.")
145
96
 
97
+ ## Evidências
98
+ {Comandos rodados (testes, lint, build, audit) e resultados.}
99
+
100
+ ## PR Brief
146
101
  - Resumo do que mudou:
147
102
  - Como testar:
148
- - Evidências de testes/validações:
149
- - Docs atualizadas:
150
103
  - Riscos / trade-offs:
104
+ ```
105
+
106
+ A coluna **Decisão** nasce vazia: quem preenche é o usuário.
107
+
108
+ ## Fechamento
151
109
 
152
- Uma vez terminado, me avise e peça minha permissão para abrir o Pull Request.
110
+ 1. Mostre o semáforo, o resumo e a lista de lacunas por severidade, com o caminho do `gate-checklist.md`.
111
+ 2. Peça as decisões: para cada lacuna 🔴 e 🟡, "Ajustar" ou "Não ajustar" (com o motivo). Use `AskUserQuestion` por lacuna quando houver poucas; com muitas, deixe a pessoa responder em texto ou editar o arquivo. Grave as decisões na coluna **Decisão**.
112
+ 3. Pergunte com `AskUserQuestion` (**Sim / Não**, sempre, nunca publicar sem a resposta): **"Publicar o gate-checklist.md (com as decisões) como comentário na issue/card?"**
113
+ - **Sim** (e `TASK_MANAGER` preenchido): `/eng-global-task-comment {TASK_MANAGER_KEY}` com o conteúdo do arquivo.
114
+ - **Não**, ou modo freelance: fica só na sessão.
115
+ 4. Próximo passo: ajustar o que foi marcado "Ajustar" (à mão ou com o `/eng.work`) e rodar o `/eng.pr`, que usa o PR Brief deste relatório.
@@ -47,7 +47,7 @@ Formato esperado: `new {TASK_MANAGER_KEY}` ou `update {TASK_MANAGER_KEY}`
47
47
  3. **[se `new`]** Qual o tag do serviço? (ex: `consulta-orgao`, `extrator-dados`) — será usado como `{robot-tag}`
48
48
  4. **[se `update`]** Qual robô será mantido? Listar opções:
49
49
  ```bash
50
- ls docs/engineering/robots/
50
+ ls $ENG_DOCS/robots/
51
51
  ```
52
52
  Apresentar a lista e pedir que o dev escolha.
53
53
 
@@ -204,7 +204,7 @@ Garantir durante a implementação:
204
204
 
205
205
  ### Fase N4 — Documentação
206
206
 
207
- Criar `docs/engineering/robots/{robot-tag}-robot.md`.
207
+ Criar `$ENG_DOCS/robots/{robot-tag}-robot.md`.
208
208
 
209
209
  Seguir `$IDE/rules/engineering/eng.docs-scraping-rules.md`:
210
210
 
@@ -239,7 +239,7 @@ No corpo do PR incluir: link para `{robot-tag}-robot.md`, variáveis de ambiente
239
239
  Ler o documento existente do robô:
240
240
 
241
241
  ```bash
242
- cat docs/engineering/robots/{robot-tag}-robot.md
242
+ cat $ENG_DOCS/robots/{robot-tag}-robot.md
243
243
  ```
244
244
 
245
245
  Extrair e apresentar ao usuário:
@@ -304,7 +304,7 @@ Para bug fixes estruturais (seletor quebrado, campo mudou de posição):
304
304
 
305
305
  ### Fase U4 — Atualizar Documentação
306
306
 
307
- Atualizar `docs/engineering/robots/{robot-tag}-robot.md`:
307
+ Atualizar `$ENG_DOCS/robots/{robot-tag}-robot.md`:
308
308
 
309
309
  - **Sempre**: Histórico de Bugs (toda correção estrutural entra aqui com referência ao card)
310
310
  - **Se campos mudaram**: atualizar Fontes de Dados e Campos Extraídos
@@ -331,7 +331,7 @@ Chamar `/jarvis-docs-index` após atualizar.
331
331
  Modo : {new | update}
332
332
  Robô : {robot-tag}-robot
333
333
  Classe : {RobotTag}Robot
334
- Docs : docs/engineering/robots/{robot-tag}-robot.md
334
+ Docs : $ENG_DOCS/robots/{robot-tag}-robot.md
335
335
  Branch : {TASK_MANAGER_KEY}-{robot-tag}
336
336
  PR : (link do MR criado pelo eng.pr)
337
337
  ─────────────────────────────────────────────────────────────
@@ -0,0 +1,140 @@
1
+ ---
2
+ description: Consolida o que a entrega implementou no Central docs (documento da funcionalidade + registro da entrega)
3
+ auto_execution_mode: 3
4
+ agent: "$IDE/agents/engineering/eng.docs-consolidator.agent.md"
5
+ template_file: "$IDE/templates/engineering/central-feature-template.md"
6
+ recommended_model: opus
7
+ model_tier: high
8
+ model_justification: Consolidar exige ler e cruzar muitas fontes (documentos, decisões, diff e commits) e escrever um registro completo e sem ambiguidade
9
+ ---
10
+
11
+ # Consolidar no Central docs
12
+
13
+ Este comando registra no **Central docs** o que a entrega **de fato implementou**. Ele roda **logo depois do PR aberto** (`/eng.pr`) e gera dois documentos completos e autossuficientes:
14
+ - o **documento da funcionalidade** (`feature-{slug}.md`), com o estado atual, novo ou atualizado;
15
+ - o **registro da entrega** (`delivery-{AAAA-MM-DD}-{task_key}.md`), com o PR, os commits e os autores.
16
+
17
+ Os documentos de trabalho (PRD, FRD, ARD, RFC…) continuam em `docs/jarvis/` e **não** vão para o Central docs: lá fica só o que foi implementado.
18
+
19
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
20
+ > 📤 **Templates**: `$IDE/templates/engineering/central-feature-template.md` e `$IDE/templates/engineering/central-delivery-template.md`
21
+
22
+ ### Skills invocados durante o workflow
23
+
24
+ | Passo | Skill | Condição |
25
+ |-------|-------|----------|
26
+ | Cabeçalho (agente) | `eng.docs-consolidator.agent` (agente) | Sempre: escreve a consolidação na sessão |
27
+ | Passo 3 (funcionalidade) e Passo 6 (publicação) | `/jarvis-docs-central` (via `jarvis docs fetch` / `jarvis docs publish`) | Sempre: lê o índice e o documento atual e publica depois do Sim |
28
+
29
+ ---
30
+
31
+ ## Entrada
32
+
33
+ <arguments>
34
+ #$ARGUMENTS
35
+ </arguments>
36
+
37
+ - `{TASK_MANAGER_KEY}` (obrigatório no modo normal): a mesma chave do `eng.start`/`eng.pr`. Sem ela, pergunte e aguarde (`eng.integrations-rules.md`; no modo freelance, o número de controle).
38
+ - `{slug}` (opcional): slug da funcionalidade, se você já souber qual atualizar.
39
+ - `--inicial`: carga inicial a partir dos documentos de trabalho que já existem (chamado pelo `/jarvis-init`). Não precisa de chave nem de PR.
40
+
41
+ ---
42
+
43
+ ## Passo 0: Pré-condições
44
+
45
+ 1. **Central docs ligado:** `CENTRAL_DOCS_STORAGE` preenchido no `$IDE/ENV.md`. Se estiver vazio, pare: "O Central docs está desligado. Ligue-o no `/jarvis-init` (Passo 5.2) para registrar o que foi implementado."
46
+ 2. **Modo normal:** a sessão `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` existe com o `architecture.md`. Sem ela, avise que a consolidação perde as decisões e pergunte se segue só com o diff e os documentos de trabalho.
47
+ 3. **Branch base:** o `Branch base:` do `architecture.md`. Sem ele, pergunte com `AskUserQuestion` (`main`, `dev` ou Outro).
48
+
49
+ ## Passo 1: Coleta (modo normal)
50
+
51
+ O agente `eng.docs-consolidator` lê **todas** as fontes, na ordem do agente:
52
+ 1. `architecture.md` e `plan.md` da sessão.
53
+ 2. Documentos de trabalho ligados à tarefa em `$PROD_DOCS` e `$ENG_DOCS` (PRD, FRD, épicos, histórias, ARD, RFC, swagger, QA).
54
+ 3. Commits e arquivos:
55
+ ```bash
56
+ git log {base}..HEAD --format='%h|%an|%ad|%s' --date=short
57
+ git diff --stat {base}...HEAD
58
+ ```
59
+ 4. **PR/MR:** número e URL (`pull-request.md` da sessão, `gh pr view`/equivalente do vendor, ou pergunte).
60
+ 5. **Card:** URL no padrão do `TASK_MANAGER` (`eng.integrations-rules.md`); no modo freelance, só o número de controle.
61
+ 6. `gate-checklist.md` e `pull-request.md` da sessão, se existirem.
62
+
63
+ ## Passo 2: Coleta (modo `--inicial`)
64
+
65
+ 1. Liste os PRD, FRD, ARD e RFC em `$PROD_DOCS` e `$ENG_DOCS/{ARD,RFC}` (e nos caminhos antigos, se o `/jarvis-init` não os moveu).
66
+ 2. Sugira o agrupamento por funcionalidade (um PRD/FRD e os ARD/RFC ligados a ele) e confirme com `AskUserQuestion` (aceitar / ajustar).
67
+ 3. Para cada grupo, o agente lê os documentos e o código relacionado (só leitura), para descrever o que **está implementado**. O que estiver só especificado vai para "Fora do escopo", e o status reflete isso.
68
+
69
+ ## Passo 3: Qual funcionalidade
70
+
71
+ 1. `jarvis docs fetch {SQUAD}/index.md` e liste as funcionalidades existentes do produto (`WORKSPACE`).
72
+ 2. Sugira uma, pelo PRD/FRD de origem, pelo título do `architecture.md` e pelos arquivos do diff, e um slug novo bem nomeado (kebab-case, pelo nome que o negócio usa).
73
+ 3. Pergunte com `AskUserQuestion`:
74
+ - "Atualizar `feature-{x}`" (sugerida);
75
+ - "Criar `feature-{slug sugerido}`";
76
+ - Outro (digitar).
77
+
78
+ Se o slug veio como argumento, confirme com a mesma pergunta.
79
+ 4. Na atualização, `jarvis docs fetch {SQUAD}/product/{produto}/feature-{x}.md` é o ponto de partida.
80
+
81
+ ## Passo 4: Escrever na sessão
82
+
83
+ O agente gera em `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/consolidation/` (no `--inicial`, em `$SESSIONS_DIR/eng/inicial-{AAAA-MM-DD}/consolidation/`):
84
+ - `feature-{slug}.md`: todas as 11 seções do template, com o estado atual e a linha nova no Histórico de entregas;
85
+ - `delivery-{AAAA-MM-DD}-{task_key}.md`: as 7 seções (não existe no `--inicial`).
86
+
87
+ O frontmatter segue o template, com os comentários `#`. `product` = `WORKSPACE` (ou o produto confirmado).
88
+
89
+ ## Passo 5: Revisão
90
+
91
+ Mostre o resumo dos dois arquivos (seções, tamanho, referências) e o caminho deles. Pergunte com `AskUserQuestion`:
92
+ - `[Aprovar]`
93
+ - `[Ajustar]`: diga o que mudar; o agente ajusta e você revisa de novo.
94
+
95
+ Confira antes de aprovar:
96
+ - [ ] card e PR/MR com URL;
97
+ - [ ] commits com autor (sem e-mail);
98
+ - [ ] nenhum segredo nem valor de variável;
99
+ - [ ] nenhuma frase depende de um documento de origem.
100
+
101
+ ## Passo 6: Publicar
102
+
103
+ Pergunte com `AskUserQuestion` (**Sim / Não**): **"Publicar no Central docs?"**
104
+
105
+ - **Sim:**
106
+ ```bash
107
+ jarvis docs publish --file .../consolidation/delivery-{AAAA-MM-DD}-{task_key}.md --tipo delivery
108
+ jarvis docs publish --file .../consolidation/feature-{slug}.md --tipo feature
109
+ ```
110
+ (no `--inicial`, só os `feature-*`). Com o Central docs num repositório git, cada publicação abre um PR no repositório de documentação: informe as URLs.
111
+ - **Não:** os arquivos ficam na sessão. Para publicar depois, use os mesmos comandos.
112
+
113
+ ## Passo 7: Mensagem final
114
+
115
+ ```
116
+ ✅ Consolidação {publicada | salva na sessão}
117
+
118
+ 📄 Funcionalidade: {SQUAD}/product/{produto}/feature-{slug}.md
119
+ 🧾 Entrega: {SQUAD}/engineering/{produto}/delivery-{AAAA-MM-DD}-{task_key}.md
120
+ 🔗 PR/MR: {URL} · Card: {URL ou número}
121
+
122
+ 🧹 A sessão $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/ não é apagada automaticamente: remova à mão quando quiser.
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Regras
128
+
129
+ ### ⛔ Nunca
130
+ - Publicar sem o **Sim** do Passo 6
131
+ - Publicar PRD, FRD, ARD ou RFC no Central docs (só `feature` e `delivery`)
132
+ - Incluir e-mails, tokens, senhas, valores de variáveis ou dados pessoais de clientes
133
+ - Inventar informação: sem fonte, pergunte ou registre "não informado"
134
+ - Alterar o código, os documentos de trabalho ou a sessão fora de `consolidation/`
135
+
136
+ ### ✅ Sempre
137
+ - Ler todas as fontes antes de escrever
138
+ - Citar o card e o PR/MR com URL (ou o número de controle no freelance)
139
+ - Descrever o implementado, não o pretendido
140
+ - Português do Brasil
@@ -221,17 +221,17 @@ Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md, buscar docs relacionado
221
221
 
222
222
  **Passo 1:** Identificar docs relevantes com base no Jira ID e tags do card
223
223
 
224
- **Passo 2:** Buscar documentos via skill jarvis-docs-central:
225
- - PRD relacionado (contexto de produto)
226
- - ARD geral do produto (arquitetura macro)
227
- - ARD específico do repo (se existir)
228
- - RFCs relevantes
224
+ **Passo 2:** Buscar via skill jarvis-docs-central **o que já foi implementado**:
225
+ - funcionalidades relacionadas (`feature-*`): comportamento atual, decisões, onde está no código;
226
+ - entregas recentes dessas funcionalidades (`delivery-*`), se ajudarem.
227
+
228
+ Os documentos de trabalho da tarefa (PRD, FRD, ARD, RFC) ficam em `$PROD_DOCS`/`$ENG_DOCS` (`docs/jarvis/`): leia-os de lá.
229
229
 
230
230
  **Passo 3:** Incorporar ao contexto antes de prosseguir para análise
231
231
 
232
232
  **Comportamento:**
233
233
  - Se docs encontrados → carregar e exibir resumo
234
- - Se não encontrados → perguntar se tem docs localmente
234
+ - Se não encontrados → seguir com os documentos de trabalho em `docs/jarvis/` e o card
235
235
  - Se `CENTRAL_DOCS_STORAGE` vazio → pular silenciosamente
236
236
 
237
237
  ### 2.3 Análise do Requisito
@@ -264,7 +264,7 @@ Invoque o agente [eng.qa.test-planner]($IDE/agents/engineering/qa/eng.qa.test-pl
264
264
  - Analisar o código implementado na fase
265
265
  - Identificar funções/métodos sem cobertura de teste
266
266
  - Mapear casos de borda não cobertos
267
- - Gerar relatório de gaps em `$DOCS_FOLDER/engineering/qa/{task-id}-test_coverage_branch_report.md`
267
+ - Gerar relatório de gaps em `$ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md`
268
268
 
269
269
  #### 3.3.2 Implementar Testes Faltantes
270
270
 
@@ -67,7 +67,7 @@ O código ainda não existe neste momento do fluxo.
67
67
  ## Output
68
68
 
69
69
  Documento de estratégia de testes salvo em:
70
- `$DOCS_FOLDER/engineering/qa/strategies/{task-id}-test-strategy.md`
70
+ `$ENG_DOCS/qa/strategies/{task-id}-test-strategy.md`
71
71
 
72
72
  Estrutura do documento:
73
73
  ```
@@ -63,7 +63,7 @@ Verificar se foi realizada sessão para a feature.
63
63
 
64
64
  **3. Quality gate**
65
65
  ```bash
66
- ls $DOCS_FOLDER/engineering/qa/ 2>/dev/null | grep -i "quality-gate\|qg"
66
+ ls $ENG_DOCS/qa/ 2>/dev/null | grep -i "quality-gate\|qg"
67
67
  ```
68
68
  Verificar se a spec passou pelo quality gate antes da sprint.
69
69
 
@@ -102,7 +102,7 @@ Usar template `$TEMPLATES_FOLDER/engineering/qa/qa.release-signoff-template.md`.
102
102
 
103
103
  Salvar em:
104
104
  ```
105
- $DOCS_FOLDER/engineering/qa/signoffs/signoff-{branch-slug}-{YYYYMMDD}.md
105
+ $ENG_DOCS/qa/signoffs/signoff-{branch-slug}-{YYYYMMDD}.md
106
106
  ```
107
107
 
108
108
  > O frontmatter **deve** conter `status: GO` ou `status: NO-GO` — o CLI `jarvis qa-signoff` lê este campo.
@@ -172,5 +172,5 @@ Se $MESSAGE_COMUNICATOR não estiver configurado ou o TL não tiver Slack ID em
172
172
 
173
173
  ## Output
174
174
 
175
- - `$DOCS_FOLDER/engineering/qa/signoffs/signoff-{branch-slug}-{YYYYMMDD}.md` — documento de sign-off
175
+ - `$ENG_DOCS/qa/signoffs/signoff-{branch-slug}-{YYYYMMDD}.md` — documento de sign-off
176
176
  - Snippet CI (apenas na primeira execução, se pipeline ainda não configurado)
@@ -93,7 +93,7 @@ Com base no risco e na capacidade mapeada na Fase 0:
93
93
  Usando o template `$TEMPLATES_FOLDER/engineering/qa/qa.sprint-plan-template.md`, gerar o plano e salvar em:
94
94
 
95
95
  ```
96
- $DOCS_FOLDER/engineering/qa/sprints/sprint-plan-{sprint-slug}.md
96
+ $ENG_DOCS/qa/sprints/sprint-plan-{sprint-slug}.md
97
97
  ```
98
98
 
99
99
  Exibir o plano ao usuário e perguntar se há ajustes antes de salvar.
@@ -102,5 +102,5 @@ Exibir o plano ao usuário e perguntar se há ajustes antes de salvar.
102
102
 
103
103
  ## Output
104
104
 
105
- - `$DOCS_FOLDER/engineering/qa/sprints/sprint-plan-{sprint-slug}.md` — plano de alocação da sprint
105
+ - `$ENG_DOCS/qa/sprints/sprint-plan-{sprint-slug}.md` — plano de alocação da sprint
106
106
  - Pronto para compartilhar com o time ou colar no $TASK_MANAGER