jarvis-ai-framework 7.0.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +11 -34
  3. package/agents/engineering/data/eng.data-engineer.agent.md +3 -3
  4. package/agents/engineering/eng.agent.md +13 -11
  5. package/agents/engineering/eng.dev-code-reviewer.md +19 -4
  6. package/agents/engineering/eng.docs-consolidator.agent.md +2 -2
  7. package/agents/engineering/eng.docs-writer.md +17 -2
  8. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +2 -2
  9. package/agents/engineering/qa/eng.qa.test-planner.md +20 -5
  10. package/agents/product/prod.pm-checker.md +16 -1
  11. package/bin/README.md +4 -4
  12. package/bin/commands/init.js +237 -29
  13. package/bin/lib/cli/program.js +7 -11
  14. package/bin/lib/core/sync-engine.js +8 -4
  15. package/bin/lib/utils/frontmatter.js +1 -1
  16. package/bin/lib/utils/paths.js +2 -1
  17. package/bin/lib/utils/version.js +65 -0
  18. package/bin/postinstall.js +7 -31
  19. package/package.json +2 -2
  20. package/rules/AGENTS.md +1 -1
  21. package/rules/engineering/data/data-rules.md +2 -2
  22. package/rules/engineering/eng-rules.md +1 -1
  23. package/rules/engineering/eng-security-rules.md +1 -1
  24. package/rules/engineering/eng.integrations-rules.md +6 -2
  25. package/rules/rtk-rules.md +1 -1
  26. package/rules-on-demand/doc-links-rules.md +2 -2
  27. package/rules-on-demand/engineering/eng.breakdown-subtasks-rules.md +1 -1
  28. package/rules-on-demand/engineering/eng.plan-rules.md +2 -0
  29. package/rules-on-demand/engineering/eng.pr-rules.md +8 -6
  30. package/rules-on-demand/engineering/eng.pre-pr-rules.md +10 -3
  31. package/rules-on-demand/engineering/eng.start-rules.md +7 -5
  32. package/rules-on-demand/engineering/eng.tech-spec-rules.md +9 -7
  33. package/rules-on-demand/engineering/eng.transitions-rules.md +7 -6
  34. package/skills/AGENTS.md +2 -2
  35. package/skills/SKILLS-ROADMAP.md +3 -3
  36. package/skills/eng-backend-arch-c4/assets/example-container.md +4 -4
  37. package/skills/eng-backend-arch-c4/assets/example-context.md +6 -6
  38. package/skills/eng-backend-microservices-trace/SKILL.md +1 -1
  39. package/skills/eng-global-investigation/SKILL.md +4 -0
  40. package/skills/eng-global-pr/SKILL.md +15 -12
  41. package/skills/eng-global-task-comment/SKILL.md +11 -3
  42. package/skills/eng-global-tech-spec/references/delivery-spec.md +28 -21
  43. package/skills/jarvis-docs-central/README.md +4 -4
  44. package/skills/jarvis-docs-central/SKILL.md +5 -3
  45. package/skills/jarvis-evolution-architect/references/exemplos.md +3 -3
  46. package/skills/jarvis-init/SKILL.md +89 -24
  47. package/skills/jarvis-init/assets/setup-guide.md +1 -1
  48. package/skills/jarvis-report-issue/SKILL.md +37 -24
  49. package/skills/product-roadmap-report/SKILL.md +2 -2
  50. package/skills/product-roadmap-report/commands/status.memory.md +1 -1
  51. package/skills/product-roadmap-report/commands/status.roadmap.preview.md +2 -2
  52. package/skills/product-specs/SKILL.md +1 -1
  53. package/skills/product-specs-update/SKILL.md +138 -121
  54. package/templates/ENV-template.md +57 -27
  55. package/templates/cdd-aplicado-a-prompts.md +1 -1
  56. package/templates/engineering/AGENTS-template.md +2 -2
  57. package/templates/engineering/CONTACTS-template.md +1 -1
  58. package/templates/engineering/advisor-template.md +2 -2
  59. package/templates/engineering/architecture-template.md +14 -1
  60. package/templates/engineering/data-contract-template.md +1 -1
  61. package/templates/engineering/plan-template.md +2 -0
  62. package/templates/engineering/tech-spec-delivery-template.md +8 -8
  63. package/templates/engineering/tech-spec-template.md +3 -3
  64. package/templates/product/prod-frd-template.md +1 -1
  65. package/templates/product/prod-prd-template.md +1 -1
  66. package/workflows/AGENTS.md +1 -1
  67. package/workflows/README.md +1 -1
  68. package/workflows/engineering/data/data.contract.md +12 -8
  69. package/workflows/engineering/eng.breakdown-subtasks.md +2 -2
  70. package/workflows/engineering/eng.build-tech-spec.md +1 -1
  71. package/workflows/engineering/eng.create-ard-from-code.md +3 -5
  72. package/workflows/engineering/eng.create-ard.md +3 -5
  73. package/workflows/engineering/eng.create-rfc.md +5 -5
  74. package/workflows/engineering/eng.light-arch.md +1 -1
  75. package/workflows/engineering/eng.plan.md +10 -7
  76. package/workflows/engineering/eng.pr.md +26 -19
  77. package/workflows/engineering/eng.pre-pr.md +126 -27
  78. package/workflows/engineering/eng.spec-consolidate.md +5 -5
  79. package/workflows/engineering/eng.start.md +23 -9
  80. package/workflows/engineering/eng.work.md +4 -4
  81. package/workflows/engineering/qa/eng.qa-release-signoff.md +1 -66
  82. package/workflows/product/prod.roadmap.preview.md +10 -14
  83. package/workflows/product/prod.spec.ard.md +2 -2
  84. package/workflows/product/prod.spec.breakdown.md +2 -2
  85. package/workflows/product/prod.spec.epic.md +4 -4
  86. package/workflows/product/prod.spec.frd.md +3 -3
  87. package/workflows/product/prod.spec.issue.md +3 -3
  88. package/workflows/product/prod.spec.prd.md +5 -5
  89. package/bin/commands/qa-signoff.js +0 -115
@@ -9,7 +9,7 @@ O Jarvis não assume Jira, GitLab ou Slack. Leia `$IDE/ENV.md` e siga a cadeia d
9
9
  | Variável | Vendors | Como |
10
10
  |----------|---------|------|
11
11
  | `TASK_MANAGER` (+ `TASK_MANAGER_ACCESS`, `TASK_MANAGER_URL_BASE`) | jira (`acli`, só Cloud), github (`gh`), gitlab (`glab`) | `jarvis tasks comment` |
12
- | `VERSION_CONTROL` (+ `VERSION_CONTROL_ACCESS`) | github (`gh`), gitlab (`glab`); repo vem do `git remote` | `jarvis vcs create-merge` / `create-issue` |
12
+ | `VERSION_CONTROL` (+ `VERSION_CONTROL_ACCESS`) | github (`gh`), gitlab (`glab`); no `create-merge` o repo vem do `git remote`, no `create-issue` vai em `--repo` | `jarvis vcs create-merge` / `create-issue` |
13
13
  | `CENTRAL_DOCS_STORAGE` | filesystem (s3 e gdrive no futuro) | `jarvis docs fetch` / `sync` / `publish` |
14
14
  | `MESSAGE_COMUNICATOR` | slack, discord, teams | runtime `communicator/` |
15
15
 
@@ -41,11 +41,15 @@ Qual o seu número de controle para esta tarefa?
41
41
 
42
42
  Com board definido, se o key não veio nos argumentos, perguntar o id do card naquele vendor (ex: Jira `TASK-123`, GitHub `#42`).
43
43
 
44
+ ## Nada é publicado sem perguntar
45
+
46
+ É a **regra de ouro**: comentário, PR/MR, issue, push e publicação no Central docs só saem depois de mostrar o texto e perguntar, na hora do envio, com `AskUserQuestion` (sem a ferramenta, a tabela de `prod-rules.md`): **Sim, publicar** / **Não, manter só na sessão** (rótulos equivalentes por contexto). A pergunta vale para cada envio; uma aprovação não vale para o próximo. **Exceção:** documentos aprovados juntos (como a consolidação do `eng.spec-consolidate`) são um envio; e a escolha da Fase 0 do `eng.pr` vale como a pergunta do push e do PR e, conforme a opção, como a revisão do texto. Sem o Sim, o texto fica na sessão (`task-comment-{YYYYMMDD-HHMM}.md`, `pull-request.md`) ou em `.jarvis/issues/`, e o push fica só local.
47
+
44
48
  ## Comentário no card
45
49
 
46
50
  Falha no comentário não bloqueia o workflow.
47
51
 
48
- 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, (d) **link do MR**, uma única vez, (e) o **`gate-checklist.md` do `eng.pre-pr`**, só se o usuário escolher registrar (resumo ou relatório completo). **Nunca** comentar início ou fim de etapa ("Iniciando…", "concluído…"): o acompanhamento fica no fluxo e no PR.
52
+ Comentar **somente** em eventos relevantes, **cada um depois da pergunta acima**: (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, (d) **link do MR**, uma única vez, (e) o **`gate-checklist.md` do `eng.pre-pr`**, só se o usuário escolher registrar (resumo ou relatório completo), (f) a arquitetura do **`eng.light-arch`**, depois de aprovada, (g) outro comentário que o fluxo peça e você aprove (como o de refinamento do agente de QA e o da 7.4 do `delivery-spec`). **Nunca** comentar início ou fim de etapa ("Iniciando…", "concluído…"): o acompanhamento fica no fluxo e no PR.
49
53
 
50
54
  ```
51
55
  /eng-global-task-comment {TASK_MANAGER_KEY} {mensagem}
@@ -60,7 +60,7 @@ cargo install brokk-rtk
60
60
  cargo install rtk # ❌ Isso instala Rust Type Kit, não Token Killer
61
61
  ```
62
62
 
63
- Use o comando `npx jarvis install-rtk` que valida e instala a ferramenta correta automaticamente.
63
+ Use o comando `jarvis install-rtk` que valida e instala a ferramenta correta automaticamente.
64
64
 
65
65
  ---
66
66
 
@@ -12,7 +12,7 @@ Lida pelo comando antes de escrever o documento. A tabela mostra quem lê:
12
12
 
13
13
  | Documento | Comando |
14
14
  |---|---|
15
- | `architecture.md`, `plan.md` (inclusive os comentários de fase), `gate-checklist.md`, `pull-request.md` | `eng.start`, `eng.plan`, `eng.work`, `eng.pre-pr`, `eng.pr` |
15
+ | `architecture.md`, `plan.md` (inclusive os comentários de fase), `gate-checklist.md` (e as rodadas anteriores `gate-checklist-rodada-{N}.md`), `pull-request.md` | `eng.start`, `eng.plan`, `eng.work`, `eng.pre-pr`, `eng.pr` |
16
16
  | PRD, FRD, épico, história/tarefa, discovery, breakdown | `prod.spec.prd`, `prod.spec.frd`, `prod.spec.epic`, `prod.spec.issue`, `prod.spec.discovery`, `prod.spec.breakdown`, `prod.spec.clarify` |
17
17
  | ARD, RFC, SPEC | `prod.spec.ard`, `eng.create-ard`, `eng.create-ard-from-code`, `eng.create-rfc`, `eng.build-tech-spec` |
18
18
  | Outros documentos gravados por comando (subtarefas, arquitetura leve, relatório de investigação, documentação do repositório (regra 7), revisão, robô, Central docs) | `eng.breakdown-subtasks`, `eng.light-arch`, `eng.debug`, `eng.docs`, `eng.review`, `eng.rpa.robot`, `eng.spec-consolidate` |
@@ -52,7 +52,7 @@ Lida pelo comando antes de escrever o documento. A tabela mostra quem lê:
52
52
  - Issue, PR e card como URL.
53
53
  - Código como `{remote}/blob/{sha}/{caminho}#L{n}` (GitLab: `{remote}/-/blob/{sha}/…`). O trecho é `#L{a}-L{b}` no GitHub e `#L{a}-{b}` no GitLab.
54
54
  - Sessão e `docs/jarvis/` em texto, sem link: quem lê fora do workspace não abre esses arquivos.
55
- - O `{sha}` é o `HEAD` no momento em que o `eng.pr` escreve o `pull-request.md` (Fase 4.1). Se a conferência de marcas (Fase 3.0) reescrever commits, atualize o sha dos links. Com "Só gerar os arquivos", os links valem quando o push for feito sem rebase.
55
+ - O `{sha}` é o `HEAD` no momento em que o `eng.pr` escreve o `pull-request.md` (Fase 4.1). Se a conferência de marcas (Fase 3.0) reescrever commits, atualize o sha dos links. Com "Só gerar os arquivos" (na Fase 0 ou na revisão da 4.2), os links valem quando o push for feito sem rebase.
56
56
  - No Central docs, o `{sha}` é o do merge na branch base (a consolidação roda depois do merge).
57
57
  - No `.public.md` (gerado no fim do próprio comando, muitas vezes sem push), o `{sha}` é o último commit já enviado ao remoto (`git rev-parse @{u}`), ou o sha do cabeçalho se ele já estiver no remoto. Sem nenhum dos dois, o código fica em texto.
58
58
  7. **Documento versionado no repositório** (`README.md`, `docs/` do projeto, gravados por exemplo pelo `eng.docs`): o caminho é relativo dentro do próprio repositório (nada de subir até o workspace com `../../{repo}/…`), porque ele é lido no GitHub/GitLab. A sessão e o `docs/jarvis/` ficam em texto, sem link.
@@ -11,7 +11,7 @@ O workflow `breakdown-subtasks` tem como objetivo **quebrar uma Tech Spec em sub
11
11
  ## ⚠️ REGRA INVIOLÁVEL: PRINCÍPIO DE INDEPENDÊNCIA
12
12
 
13
13
  > **Cada subtarefa é uma unidade de entrega completa e independente.**
14
- > Cada subtarefa será um card no `$TASK_MANAGER` com **sua própria branch, seu próprio commit e seu próprio deploy**.
14
+ > Cada subtarefa será um card no `$TASK_MANAGER` (criado pela pessoa a partir do Markdown que este comando entrega) com **sua própria branch, seu próprio commit e seu próprio deploy**.
15
15
  > Por isso, a subtarefa precisa ser **mergeável isoladamente sem quebrar o sistema**.
16
16
 
17
17
  **Toda subtarefa deve ser uma fatia vertical completa (vertical slice):**
@@ -211,6 +211,7 @@ Para cada tarefa, incluir:
211
211
 
212
212
  ### Fase 5: Validação
213
213
 
214
+ 0. **Executar** o Checklist de Conclusão (abaixo) item a item contra o `plan.md` e corrigir o plano antes de apresentar (passe crítico, Fase 4 do workflow)
214
215
  1. **Apresentar** o plano ao humano
215
216
  2. **Discutir** ajustes necessários
216
217
  3. **Atualizar** `architecture.md` se houver mudanças arquiteturais
@@ -300,6 +301,7 @@ Antes de considerar o plano completo:
300
301
  - [ ] Dependências estão claras (sequencial/paralelo)
301
302
  - [ ] Status iniciais definidos (todos ⏳)
302
303
  - [ ] Conteúdo em português (pt-BR)
304
+ - [ ] Passe crítico executado (este checklist conferido item a item) e "Ajustes antes da aprovação" atualizado no cabeçalho a cada "Ajustar o plano"
303
305
  - [ ] Validado com o humano
304
306
  - [ ] `plan.md` criado em `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/`
305
307
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Propósito
6
6
 
7
- O workflow `pr` tem como objetivo **criar a branch, commitar as alterações e abrir um Merge Request** seguindo os padrões do time.
7
+ O workflow `pr` tem como objetivo **gerar o `pull-request.md` e, depois da pergunta (regra de ouro), fazer o push e abrir um Merge Request** seguindo os padrões do time.
8
8
 
9
9
  ---
10
10
 
@@ -137,11 +137,11 @@ sempre utiliza a branch main)
137
137
  │ ↓ │
138
138
  │ 4. COMMIT → Mensagem padronizada │
139
139
  │ ↓ │
140
- │ 5. PUSH → Enviar para remote │
140
+ │ 5. PUSH → Enviar para remote (depois da Fase 0) │
141
141
  │ ↓ │
142
- │ 6. CRIAR MR (desenvolvedor) → Com template preenchido │
142
+ │ 6. CRIAR MR (desenvolvedor) → Template, depois da Fase 0 │
143
143
  │ ↓ │
144
- │ 7. ATUALIZAR JIRA (desenvolvedor) → Mover para "In Review" │
144
+ │ 7. ORIENTAR (desenvolvedor) → Mover o card para "In Review"│
145
145
  │ │
146
146
  └─────────────────────────────────────────────────────────────┘
147
147
  ```
@@ -199,6 +199,8 @@ sempre utiliza a branch main)
199
199
 
200
200
  ### Fase 4: Push
201
201
 
202
+ O push só sai depois da escolha de publicar da Fase 0 do `eng.pr` (regra de ouro, `eng.integrations-rules.md`).
203
+
202
204
  1. **Enviar para remote**
203
205
  ```bash
204
206
  git push -u origin {nome-da-branch}
@@ -331,8 +333,8 @@ Antes de considerar o PR completo:
331
333
  ## Sessão e publicação
332
334
 
333
335
  - O texto do PR fica em **`$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/pull-request.md`**, aprovado pelo usuário.
334
- - **Publicar (push + MR/PR) só com a escolha "Revisar o texto e publicar" (depois da aprovação do texto) ou "Publicar sem revisar o texto"** da Fase 0 (`eng.transitions-rules.md`). Com "Só gerar os arquivos", o arquivo fica na sessão e nada é enviado.
335
- - **A sessão nunca é apagada por este comando:** o `/eng.spec-consolidate`, que roda depois do merge, precisa do `architecture.md`, do `plan.md`, do `gate-checklist.md` e do `pull-request.md`. A pessoa apaga à mão quando quiser.
336
+ - **Publicar (push + MR/PR) só com a escolha "Revisar o texto e publicar" (depois da aprovação do texto) ou "Publicar sem revisar o texto"** da Fase 0 (`eng.transitions-rules.md`). Com "Só gerar os arquivos" (na Fase 0 ou no `[Só gerar os arquivos]` da revisão do texto), o arquivo fica na sessão e nada é enviado.
337
+ - **A sessão nunca é apagada por este comando:** o `/eng.spec-consolidate`, que roda depois do merge, precisa do `architecture.md`, do `plan.md`, do `gate-checklist.md` (com as rodadas anteriores `gate-checklist-rodada-{N}.md`, se houver) e do `pull-request.md`. A pessoa apaga à mão quando quiser.
336
338
 
337
339
  ## daily.md (registro do esforço)
338
340
 
@@ -75,9 +75,11 @@ Avaliar **apenas** as mudanças da branch atual em relação à branch base (`Br
75
75
  git diff {BRANCH_BASE}...HEAD
76
76
  ```
77
77
 
78
+ Da rodada 2 em diante, cada gate roda só se o diff desde o `Commit:` da rodada anterior tocar o que ele lê (seção "Rodada incremental" do `eng.pre-pr.md`). O gate que roda continua revisando a branch inteira.
79
+
78
80
  ### Evidências Obrigatórias
79
81
 
80
- Cada lacuna cita onde está (`arquivo:linha`) ou o comando que a revelou e o resultado.
82
+ Cada lacuna cita onde está (`arquivo:linha` com o trecho) ou o comando que a revelou e o resultado, **e o que a derrubaria** (coluna Refutação). Antes de gravar, o passe crítico (seção "Passe crítico" do `eng.pre-pr.md`) remove a lacuna cuja refutação se sustenta e rebaixa a que pesa menos do que a severidade dada.
81
83
 
82
84
  ---
83
85
 
@@ -86,7 +88,12 @@ Cada lacuna cita onde está (`arquivo:linha`) ou o comando que a revelou e o res
86
88
  O workflow **deve sempre** terminar com:
87
89
 
88
90
  1. **`gate-checklist.md`** em `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/`:
89
- - semáforo (🟢 / 🟡 / 🔴), resumo, lacunas por área (o quê, onde, por que importa, sugestão, severidade, **Decisão**), evidências e PR Brief.
90
- 2. **Decisões do usuário** gravadas na coluna Decisão (Corrigir / Aceitar + motivo; vazia se o usuário escolheu "Só gerar o relatório").
91
+ - semáforo (🟢 / 🟡 / 🔴), resumo (com a linha `Critério de parada:`), lacunas por área (o quê, com o "(item N)" do gate que a achou no fim, onde, por que importa, refutação, sugestão, severidade, **Decisão**), evidências e PR Brief (com as rodadas por severidade, a rodada em que o critério de parada agiu, os ajustes do `architecture.md` e do `plan.md` antes da aprovação e as lições desta tarefa; guardar lições entre tarefas não é deste comando, é da #169).
92
+ - `Rodada` e `Commit` no cabeçalho, as rodadas anteriores e, da rodada 2 em diante, a resolução das lacunas da rodada anterior.
93
+ - Da rodada 2 em diante, as áreas cujos gates não rodaram na rodada incremental, marcadas como "Não reavaliada nesta rodada".
94
+ - É sempre a rodada mais recente: ao rodar de novo na mesma sessão, o relatório existente é preservado como `gate-checklist-rodada-{N}.md` (seção "Rodadas" do `eng.pre-pr.md`). **Nunca** sobrescrever nem apagar uma rodada; renomear imediatamente antes de gravar.
95
+ 2. **Decisões do usuário** gravadas na coluna Decisão (🔧 Corrigir / 👍 Aceitar + motivo; vazia se o usuário escolheu "Só gerar o relatório", exceto as decisões herdadas da rodada anterior). Na variante B do fechamento, as ⚪ aceitas levam `👍 Aceitar: aceito no fechamento da rodada {N}` e as 🟡 aceitas em bloco (só com o teto atingido) levam `👍 Aceitar: teto de rodadas atingido na rodada {N}`, e as decididas uma a uma levam o motivo dado pela pessoa; decisão herdada nunca é trocada.
96
+ - **Critério de parada** (seção "Fechamento" do `eng.pre-pr.md`): teto de rodadas pela urgência do `context.md` (`alta` 3 · `normal` 5 · `baixa` 8) ou rodada sem lacuna 🔴 ou 🟡 nova (com os itens 2 e 3 tendo rodado). Sem 🔴 pendente nem 🟡 herdada com `🔧 Corrigir`, e com só ⚪ sem decisão (ou também 🟡, com o critério de parada atingido), o fechamento usa a variante B. Na variante B, "Aceitar as ⚪ e seguir para o PR" é a primeira opção (a recomendada) e "Só gerar o relatório" mantém o fluxo de hoje. Só o teto aceita 🟡 em bloco; com o gatilho "sem lacuna nova", as 🟡 são decididas uma a uma. O critério nunca pula a revisão nem a gravação. Fora desses casos (por exemplo, com 🔴 pendente), o ciclo segue na variante A. Sempre que o teto for atingido e houver pendência, o fechamento avisa.
97
+ - **Pendentes não reavaliadas** (rodada incremental): a lacuna pendente da rodada anterior cujo gate de origem (o "(item N)" da coluna Lacuna) não rodou é copiada para a rodada nova, com a decisão herdada.
91
98
  3. **Pergunta** (`AskUserQuestion`) sobre registrar o resultado como comentário no card (`/eng-global-task-comment`): Não, manter só na sessão (como hoje) / Sim, só o resumo / Sim, o relatório completo. Nunca publicar sem a resposta. Freelance: não pergunta, só na sessão.
92
99
  4. **Aguardar permissão explícita** do usuário para prosseguir para `/eng.pr`.
@@ -40,11 +40,11 @@ Além dele, o `start` pode criar apenas os arquivos de apoio da própria sessão
40
40
 
41
41
  O workflow **só é considerado completo** após:
42
42
 
43
- 1. O `architecture.md` estar preenchido
43
+ 1. O `architecture.md` estar preenchido, com o passe crítico feito (Fase 4.4 do workflow: seção 2.5 "Premissas e Passe Crítico", com o lido separado do presumido e a premissa que derrubaria o documento)
44
44
  2. O usuário revisar o documento
45
- 3. O usuário **aprovar explicitamente** para prosseguir — sem Advisor, pela pergunta de transição "Aprovar o architecture.md?" (`eng.transitions-rules.md`)
45
+ 3. O usuário **aprovar explicitamente** para prosseguir, pela pergunta de transição "Aprovar o architecture.md?" (`eng.transitions-rules.md`): sempre sem Advisor e, com Advisor, sempre que a aprovação for obrigatória (autonomia `média` ou `baixa`, ou questão nova do passe crítico)
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.
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, salvo se o passe crítico (Fase 4.4) abriu questão nova: nesse caso, a aprovação explícita da pessoa é obrigatória; com `média` ou `baixa`, a aprovação explícita continua obrigatória.
48
48
 
49
49
  ---
50
50
 
@@ -91,8 +91,8 @@ O workflow **só é considerado completo** após:
91
91
 
92
92
  7. **Aguardar aprovação**
93
93
  - Se aprovado → Informar próximos passos
94
- - Se rejeitado → Iterar no documento
95
- - NUNCA prosseguir sem a resposta: "Aprovar e seguir para o `/eng.plan`" (pergunta de transição, `eng.transitions-rules.md`) é a aprovação para seguir; a exceção do Advisor continua valendo
94
+ - Se rejeitado → Iterar no documento, somar 1 em "Ajustes antes da aprovação" no cabeçalho e refazer o passe crítico no que mudou
95
+ - NUNCA prosseguir sem a resposta: "Aprovar e seguir para o `/eng.plan`" (pergunta de transição, `eng.transitions-rules.md`) é a aprovação para seguir; a exceção do Advisor continua valendo, sem questão nova aberta pelo passe crítico
96
96
 
97
97
  ---
98
98
 
@@ -238,6 +238,8 @@ Antes de considerar o `start` completo:
238
238
  - [ ] Decisões têm justificativas
239
239
  - [ ] Riscos têm mitigações
240
240
  - [ ] Componentes impactados listados com caminhos reais
241
+ - [ ] Passe crítico feito: seção 2.5 preenchida, presumidas que mudam o plano lidas ou viradas questão
242
+ - [ ] "Ajustes antes da aprovação" atualizado no cabeçalho
241
243
  - [ ] Usuário revisou o documento
242
244
  - [ ] Usuário aprovou explicitamente
243
245
  - [ ] Nenhum código foi executado/criado
@@ -34,7 +34,7 @@ O `/eng.build-tech-spec` tem dois modos, escolhidos na triagem do workflow:
34
34
 
35
35
  ## Localização de Arquivos
36
36
 
37
- > **NOTA**: Tech specs NÃO são salvas em `master-docs/`. São salvas na sessão do projeto e anexadas no Jira.
37
+ > **NOTA**: Tech specs NÃO são salvas em `master-docs/`. São salvas na sessão do projeto; o anexo na issue do board só sai depois da pergunta (regra de ouro; Jira pela `acli`, em GitHub/GitLab a pessoa anexa).
38
38
 
39
39
  Arquivos são referenciados usando `$IDE/` que resolve automaticamente para a pasta do IDE atual (`.windsurf/`, `.claude/`, `.cursor/`).
40
40
 
@@ -82,10 +82,10 @@ $SESSION_FOLDER/{TASK_MANAGER_KEY}/tech-spec.md
82
82
 
83
83
  ### Por que na sessão?
84
84
 
85
- 1. **Anexo no Jira**: A tech spec é anexada diretamente na issue do Jira como fonte da verdade
85
+ 1. **Anexo na issue**: a tech spec pode ser anexada na issue do board (Jira pela `acli`; em GitHub/GitLab a pessoa anexa, orientada), só depois de mostrar o que vai e perguntar (regra de ouro, `eng.integrations-rules.md`); sem o Sim, fica só na sessão
86
86
  2. **Sessão temporária**: A sessão é usada durante o desenvolvimento e pode ser limpa depois
87
87
  3. **Evita poluição**: Não cria arquivos permanentes no repositório de código
88
- 4. **Rastreabilidade**: O Jira é o sistema oficial de documentação de tasks
88
+ 4. **Rastreabilidade**: o board (`TASK_MANAGER`) é o sistema oficial das tarefas; a criação automática de subtarefas é só no Jira (`acli`), nos outros a pessoa cria pelo template
89
89
 
90
90
  ### Nomenclatura
91
91
 
@@ -106,14 +106,14 @@ $SESSION_FOLDER/{TASK_MANAGER_KEY}/tech-spec.md
106
106
 
107
107
  **O que isso significa:**
108
108
 
109
- - Link para história do Jira no topo do documento
109
+ - Link para a história (card do board) no topo do documento
110
110
  - Referência aos critérios de aceitação de produto
111
111
  - Conexão clara entre requisitos de negócio e decisões técnicas
112
112
  - IDs de subtarefas vinculadas à história pai
113
113
 
114
114
  **Validação:**
115
115
 
116
- - [ ] Link para Jira funciona
116
+ - [ ] Link para o card funciona
117
117
  - [ ] Critérios de aceitação de produto estão documentados
118
118
  - [ ] Cada subtarefa referencia a tech spec
119
119
  - [ ] Tech spec referencia PRD/FRD se existirem
@@ -616,9 +616,9 @@ Use formato YAML frontmatter:
616
616
  ---
617
617
  name: { nome descritivo da tech spec }
618
618
  id: { TECH-001 }
619
- related_story: { STORY-XXX do Jira }
619
+ related_story: { STORY-XXX do board }
620
620
  epic_related: { EPIC-XXX se existir }
621
- link_task: { URL da história no Jira }
621
+ link_task: { URL da história no board }
622
622
  created_at: { YYYY-MM-DD }
623
623
  updated_at: { YYYY-MM-DD }
624
624
  status: { Draft, In Review, Approved, Implemented }
@@ -772,6 +772,8 @@ Use este checklist antes de finalizar uma tech spec:
772
772
 
773
773
  ## Integração com Jira
774
774
 
775
+ > **Escopo:** a criação automática de subtarefas é só no Jira, pela `acli`, depois da pergunta (regra de ouro); em GitHub e GitLab a pessoa cria pelo template.
776
+
775
777
  ### Criação de Subtarefas
776
778
 
777
779
  **Formato de Descrição no Jira:**
@@ -19,8 +19,8 @@ Lida pelos workflows `eng.start`, `eng.plan`, `eng.work`, `eng.pre-pr` e `eng.pr
19
19
  3. **A resposta é a aprovação.** "Aprovar e seguir" ou "Aprovar e parar aqui" valem como a aprovação explícita que as rules de cada comando exigem. Sem uma dessas respostas, nada avança.
20
20
  4. **Seguir para o próximo comando:** se a IDE permite chamar outro comando (no Claude Code, pelo Skill tool), chame-o com o mesmo `{TASK_MANAGER_KEY}`; senão, mostre o comando pronto para colar.
21
21
  5. **Consolidado de links, acumulado a cada etapa.** Ao terminar e antes de **cada pergunta de transição** (todas as da tabela "Transições", inclusive as do início, como "O que fazer com o PR?", e mesmo quando a pergunta é repetida), cada comando mostra o bloco "📄 Arquivos da sessão" com **todos** os arquivos que já existem na sessão, e não só os da etapa, para que a lista fique sempre visível até o `eng.spec-consolidate`:
22
- - Ordem do ciclo: `context.md`, `architecture.md`, `plan.md`, `gate-checklist.md`, `pull-request.md`, `daily.md`, as versões `{nome}.public.md` (se houver) e os arquivos de `consolidation/` (do `eng.spec-consolidate`). Só entra o que existe.
23
- - Cada item é um link markdown com caminho relativo ao workspace (ex.: `[architecture.md](.jarvis/sessions/eng/TASK-123/architecture.md)`), seguido de uma **nota curta de estado** entre parênteses: `novo` ou `atualizado` quando foi gerado ou alterado nesta etapa, mais o que mudou ou o que o arquivo contém (ex.: `plan.md (atualizado, com comentários por fase)`, `architecture.md (aprovado; 5 questões decididas)`, `daily.md (novo; aprovado, com timesheet)`). Os arquivos que não mudaram na etapa aparecem sem nota ou com o estado em que ficaram.
22
+ - Ordem do ciclo: `context.md`, `architecture.md`, `plan.md`, as rodadas anteriores `gate-checklist-rodada-{N}.md` (uma por rodada, em ordem crescente do número do nome, se houver), `gate-checklist.md`, `pull-request.md`, `daily.md`, as versões `{nome}.public.md` (se houver) e os arquivos de `consolidation/` (do `eng.spec-consolidate`). Só entra o que existe.
23
+ - Cada item é um link markdown com caminho relativo ao workspace (ex.: `[architecture.md](.jarvis/sessions/eng/TASK-123/architecture.md)`), seguido de uma **nota curta de estado** entre parênteses: `novo` ou `atualizado` quando foi gerado ou alterado nesta etapa, mais o que mudou ou o que o arquivo contém (ex.: `plan.md (atualizado, com comentários por fase)`, `architecture.md (aprovado; 5 questões decididas)`, `daily.md (novo; aprovado, com timesheet)`, `gate-checklist-rodada-1.md (rodada 1; 27 lacunas)`, `gate-checklist.md (rodada 2, atual; 13 lacunas)`). Os arquivos que não mudaram na etapa aparecem sem nota ou com o estado em que ficaram.
24
24
  - A lista é **reimpressa inteira** a cada etapa, sem esconder os arquivos anteriores.
25
25
  - Logo abaixo, "🔗 Links" com o card/issue e, quando existir, o PR/MR.
26
26
  - **Antes de cada pergunta de transição**, escreva primeiro essa mensagem em markdown, com o resumo, e só então abra o `AskUserQuestion`. Isso vale também para as perguntas que não dependem de um arquivo: a lista é o mapa de onde a tarefa está no ponto de decisão. Na pergunta que depende de um arquivo (`architecture.md`, `plan.md`, `gate-checklist.md`, `pull-request.md`, `daily.md`), o resumo é o desse arquivo. A pergunta fica curta, só com a decisão e o nome do arquivo em texto simples; ela espera a resposta enquanto a pessoa abre e lê com calma. Não dependa do link dentro do `AskUserQuestion`.
@@ -37,19 +37,20 @@ Lida pelos workflows `eng.start`, `eng.plan`, `eng.work`, `eng.pre-pr` e `eng.pr
37
37
  | Comando | Quando | Pergunta | Opções (padrão primeiro) |
38
38
  |---|---|---|---|
39
39
  | `eng.start` | Início, só **sem Advisor** | "Como tratar as questões em aberto que surgirem?" | Tratar no architecture.md (como hoje) · Uma a uma, assim que surgirem |
40
- | `eng.start` | Fim, só **sem Advisor** | "Aprovar o architecture.md?" | Aprovar e parar aqui (como hoje) · Aprovar e seguir para o `/eng.plan` · Ajustar o documento |
40
+ | `eng.start` | Fim, **sem Advisor**, ou com Advisor quando a aprovação é obrigatória (autonomia `média`/`baixa`, ou questão nova do passe crítico) | "Aprovar o architecture.md?" | Aprovar e parar aqui (como hoje) · Aprovar e seguir para o `/eng.plan` · Ajustar o documento |
41
41
  | `eng.plan` | Fim | "O que fazer com o plano?" | Aprovar e implementar agora · Aprovar e seguir manualmente (como hoje) · Ajustar o plano |
42
42
  | `eng.work` | Início | Execução | Fase a fase, com aprovação (como hoje) · Todas de uma vez ("N de M tarefas", pelo limite) |
43
43
  | `eng.work` | Início | Commits | Um por fase (como hoje) · Um commit só ao final |
44
44
  | `eng.work` | Início | Depois do work | Rodar o `/eng.pre-pr` · Rodar o `/eng.pr` · Fluxo normal (como hoje: o usuário segue os próximos comandos manualmente) |
45
45
  | `eng.pre-pr` | Fim | Com lacunas: "Como seguir?" (depois da mensagem com o link do relatório) | Corrigir as lacunas agora · Parar aqui para corrigir à mão (como hoje) · Abrir o PR assim mesmo |
46
46
  | `eng.pre-pr` | Fim | Sem lacunas: "Como seguir?" | Abrir o PR agora · Parar aqui (como hoje) |
47
- | `eng.pr` | Início | "O que fazer com o PR?" | Revisar o texto e publicar (como hoje) · Publicar sem revisar o texto · Só gerar os arquivos (o usuário abre o PR à mão) |
47
+ | `eng.pre-pr` | Fim | Variante B do fechamento (sem 🔴 pendente nem 🟡 herdada com `🔧 Corrigir`; só ⚪ sem decisão, ou também 🟡 com o critério de parada atingido): "Restam {c} lacunas ⚪… Como seguir?" (substitui as perguntas 2 e 4 do fechamento; com 🟡 sem decisão, o rótulo da primeira opção varia conforme o gatilho: ver o "Fechamento" do `eng.pre-pr.md`) | Aceitar as ⚪ e seguir para o PR · Corrigir antes do PR · Só gerar o relatório (como hoje) |
48
+ | `eng.pr` | Início | "O que fazer com o PR?" | Revisar o texto e publicar (como hoje) · Publicar sem revisar o texto · Só gerar os arquivos (o usuário abre o PR à mão; quem escolheu revisar também tem o `[Só gerar os arquivos]` na revisão da 4.2) |
48
49
  | `eng.pr` | Fim | "O PR já foi aprovado e mergeado?" | Ainda não (como hoje) · Sim, rodar o `/eng.spec-consolidate` |
49
50
 
50
- Nas perguntas "Depois do work" e "O que fazer com o plano?", a opção "como hoje" não é a primeira (em "Depois do work" fica por último), por escolha de produto: as primeiras opções são as ações que o usuário mais quer. Mesmo assim, é o fluxo que vale quando o usuário não escolhe.
51
+ Nas perguntas "Depois do work", "O que fazer com o plano?" e na variante B do fechamento do `eng.pre-pr`, a opção "como hoje" não é a primeira (em "Depois do work" e na variante B fica por último), por escolha de produto: as primeiras opções são as ações que o usuário mais quer. Na variante B, a #191 pede "Aceitar as ⚪ e seguir para o PR" como primeira opção (a recomendada), para lacunas menores não gerarem mais uma rodada. Mesmo assim, é o fluxo que vale quando o usuário não escolhe.
51
52
 
52
- **Com Advisor**, o `eng.start` não ganha pergunta nova: o Advisor decide as questões em aberto e o gate do fim segue a autonomia do `context.md`, como já estava.
53
+ **Com Advisor**, o `eng.start` não ganha pergunta nova: o Advisor decide as questões em aberto e o gate do fim segue a autonomia do `context.md`, como já estava, salvo se o passe crítico (Fase 4.4 do `eng.start`) abriu questão nova: nesse caso, como com autonomia `média` ou `baixa`, a aprovação explícita é obrigatória e é pedida pela pergunta "Aprovar o architecture.md?" da tabela.
53
54
 
54
55
  ### Recomendado
55
56
 
package/skills/AGENTS.md CHANGED
@@ -229,7 +229,7 @@ Skills são invocados de formas diferentes dependendo da IDE:
229
229
  |-------------------|-------|
230
230
  | `/jarvis-init` | `jarvis-init` |
231
231
  | `/warm-up` | `jarvis-docs-central` (só o recorte escolhido), `context7` (se o MCP estiver disponível) |
232
- | `eng.start` | `jarvis-docs-central` (buscar PRD/ARD) |
232
+ | `eng.start` | `jarvis-docs-central` (funcionalidades implementadas; PRD/ARD vêm de `docs/jarvis/`) |
233
233
  | `/eng.docs` | `eng-global-docs-write`, `jarvis-docs-index` |
234
234
  | `/eng.pre-pr` | `eng-qa-planner`, `eng-global-docs-write`, `jarvis-docs-central` (detectar docs) |
235
235
  | `/eng.pr` | `eng-global-pr` |
@@ -254,7 +254,7 @@ Skills são invocados de formas diferentes dependendo da IDE:
254
254
  | RPA, web scraping, Puppeteer, extração de dados, parsing, ETL | `eng-automation` (base) + `AUTOMATION_SPECIALIZATIONS` |
255
255
  | Criar robô RPA novo ou manter existente (new|update + card) | `eng.rpa.robot` (workflow) |
256
256
  | Planejar capacidade QA da sprint: risco por task, alocação entre QAs e Quality Champions | workflow `eng.qa-sprint-planning` |
257
- | Sign-off QA pré-deploy: verifica cobertura, bugs abertos, produz GO/NO-GO + snippet CI para TL | workflow `eng.qa-release-signoff` |
257
+ | Sign-off QA pré-deploy: verifica cobertura, bugs abertos, produz GO/NO-GO | workflow `eng.qa-release-signoff` |
258
258
  | Pipelines ETL/ELT, modelagem, qualidade, BI/dashboards, governança, onboarding de fonte, orquestração | `eng-data` (base) + `DATA_SPECIALIZATIONS` |
259
259
  | Criar pipeline novo (docs, qualidade, idempotência, gold) | `data.new-pipeline` |
260
260
  | Criar contrato de dados para squad requisitante | `data.contract` |
@@ -114,8 +114,8 @@ Skills existentes e planejadas do framework Jarvis.
114
114
  - **Status**: `criado`
115
115
 
116
116
  ### `product-specs-update` ✅
117
- - **Trigger**: atualização de specs existentes
118
- - **Escopo**: revisão e evolução de requisitos
117
+ - **Trigger**: PRD ou FRD criado ou modificado; pedido para sincronizar ou indexar specs
118
+ - **Escopo**: sincroniza PRD/FRD em cascata e mantém o índice local de specs (`$PROD_DOCS/specs-index.md`)
119
119
  - **Status**: `criado`
120
120
 
121
121
  ### `product-roadmap-report` ✅
@@ -138,7 +138,7 @@ Removidas: `checkin`, `checkout`, `daily`, `task-log`, `send-priority`, `sent-pr
138
138
  - **Status**: `criado`
139
139
 
140
140
  ### `jarvis-report-issue` ✅
141
- - **Trigger**: auto-report de bugs no framework Jarvis via GitLab API
141
+ - **Trigger**: auto-report de bugs no framework Jarvis pela CLI do host (`gh`), depois da pergunta
142
142
  - **Status**: `criado`
143
143
 
144
144
  ### `jarvis-docs-index` / `jarvis-docs-central` / `jarvis-context-detect` ✅
@@ -56,8 +56,8 @@ Rel(workflows, sessions, "Cria/Atualiza", "Filesystem")
56
56
  Rel(workflows, docs, "Gera", "Filesystem")
57
57
 
58
58
  ' === RELACIONAMENTOS EXTERNOS ===
59
- Rel(workflows, jira, "Sincroniza", "REST API")
60
- Rel(workflows, gitlab, "Cria MR", "REST API")
59
+ Rel(workflows, jira, "Sincroniza", "CLI oficial")
60
+ Rel(workflows, gitlab, "Cria MR", "CLI oficial")
61
61
 
62
62
  @enduml
63
63
  ```
@@ -87,8 +87,8 @@ Rel(workflows, gitlab, "Cria MR", "REST API")
87
87
  | Skills Engine | ENV Config | Lê config | Filesystem |
88
88
  | Workflow Engine | Sessions | Cria/Atualiza | Filesystem |
89
89
  | Workflow Engine | Documentation | Gera | Filesystem |
90
- | Workflow Engine | Jira | Sincroniza | REST API |
91
- | Workflow Engine | GitLab | Cria MR | REST API |
90
+ | Workflow Engine | Jira | Sincroniza | CLI oficial |
91
+ | Workflow Engine | GitLab | Cria MR | CLI oficial |
92
92
 
93
93
  ## ADRs Relacionados
94
94
 
@@ -34,8 +34,8 @@ Rel(dev, jarvis, "Usa para criar specs e código", "CLI/IDE")
34
34
  Rel(tech_lead, jarvis, "Usa para documentar arquitetura", "CLI/IDE")
35
35
  Rel(pm, jarvis, "Usa para criar PRDs e histórias", "CLI/IDE")
36
36
 
37
- Rel(jarvis, jira, "Sincroniza tarefas", "REST API")
38
- Rel(jarvis, gitlab, "Cria branches e MRs", "REST API")
37
+ Rel(jarvis, jira, "Sincroniza tarefas", "CLI oficial")
38
+ Rel(jarvis, gitlab, "Cria branches e MRs", "CLI oficial")
39
39
  Rel(jarvis, slack, "Envia notificações", "Webhook")
40
40
  Rel_L(ide, jarvis, "Integra via extensões", "MCP")
41
41
 
@@ -50,8 +50,8 @@ Rel_L(ide, jarvis, "Integra via extensões", "MCP")
50
50
  | Desenvolvedor | Pessoa | Engenheiro que implementa features | - |
51
51
  | Tech Lead | Pessoa | Lidera decisões técnicas | - |
52
52
  | Product Manager | Pessoa | Define requisitos de produto | - |
53
- | Jira | Sistema Externo | Gerenciamento de tarefas | REST API |
54
- | GitLab | Sistema Externo | Controle de versão | REST API |
53
+ | Jira | Sistema Externo | Gerenciamento de tarefas | CLI oficial |
54
+ | GitLab | Sistema Externo | Controle de versão | CLI oficial |
55
55
  | Slack | Sistema Externo | Comunicação | Webhook |
56
56
  | IDE | Sistema Externo | Ambiente de desenvolvimento | MCP |
57
57
 
@@ -62,8 +62,8 @@ Rel_L(ide, jarvis, "Integra via extensões", "MCP")
62
62
  | Desenvolvedor | JARVIS | Usa para criar specs e código | CLI/IDE |
63
63
  | Tech Lead | JARVIS | Usa para documentar arquitetura | CLI/IDE |
64
64
  | Product Manager | JARVIS | Usa para criar PRDs e histórias | CLI/IDE |
65
- | JARVIS | Jira | Sincroniza tarefas | REST API |
66
- | JARVIS | GitLab | Cria branches e MRs | REST API |
65
+ | JARVIS | Jira | Sincroniza tarefas | CLI oficial |
66
+ | JARVIS | GitLab | Cria branches e MRs | CLI oficial |
67
67
  | JARVIS | Slack | Envia notificações | Webhook |
68
68
  | IDE | JARVIS | Integra via extensões | MCP |
69
69
 
@@ -154,7 +154,7 @@ Este skill é **exclusivamente de investigação**:
154
154
 
155
155
  **0.1 Buscar o card**
156
156
 
157
- Usar o MCP/`TASK_MANAGER` (se disponível) ou pedir ao usuário que cole o conteúdo:
157
+ Ler o card pela CLI oficial do `$TASK_MANAGER` (ação `view` do catálogo, `eng.integrations-rules.md`; sem REST nem MCP) ou pedir ao usuário que cole o conteúdo:
158
158
  - Título e descrição do bug
159
159
  - Passos para reproduzir
160
160
  - Comportamento esperado vs. observado
@@ -45,6 +45,8 @@ Método para investigar bugs sem chute. Vale para qualquer linguagem, framework
45
45
 
46
46
  ## Orçamento de etapas
47
47
 
48
+ > Parecido com o `ReAct` (investigar um passo por vez, com hipótese e evidência), mas sem o campo `raciocínio` obrigatório a cada passo. Ver #171.
49
+
48
50
  Você investiga sozinho, sem pedir confirmação a cada passo, dentro de um orçamento pela urgência do `context.md` (CDD):
49
51
 
50
52
  | Urgência | Etapas (leitura, busca ou verificação) |
@@ -61,6 +63,8 @@ Se **3 correções** já foram tentadas e nenhuma resolveu, pare: cada correçã
61
63
 
62
64
  ## Crítico antes de concluir
63
65
 
66
+ > Parecido com o `Reflection` (passe crítico antes de finalizar), mas sem nota de 0 a 100 nem rodadas de correção, e sem registro de lições. Ver #171 e #169.
67
+
64
68
  Antes de declarar a causa, faça um passe contra a sua própria conclusão: que evidência a derrubaria? A reprodução foi feita de fato, ou só lida? Há outra hipótese que explica o mesmo sintoma? Se a evidência for só indireta, rebaixe o veredito.
65
69
 
66
70
  ## Veredito
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: eng-global-pr
3
- description: Cria branch, commit e Merge Request seguindo os padrões do time. Use quando precisar submeter código para revisão após completar uma tarefa.
3
+ description: Cria a branch e o commit, gera o texto do Merge Request e, depois da pergunta (regra de ouro), faz o push e abre o MR, seguindo os padrões do time. Use quando precisar submeter código para revisão após completar uma tarefa.
4
4
  argument-hint: "{TASK_MANAGER_KEY} [branch-destino]"
5
5
  disable-model-invocation: false
6
- allowed-tools: Read Write Edit Grep Glob Bash MCP
6
+ allowed-tools: Read Write Edit Grep Glob Bash
7
7
  metadata:
8
8
  author: jarvis-team
9
9
  version: "1.0"
@@ -16,7 +16,7 @@ Você é um **especialista em Git e processos de code review** focado em criar P
16
16
 
17
17
  ## Objetivo
18
18
 
19
- Criar branch, commitar alterações e abrir um MR (GitLab) ou PR (GitHub) pela CLI do host (`glab`/`gh`), conforme o `origin` ou o `VERSION_CONTROL` no ENV.md, seguindo (o MR/PR sai pelo `jarvis vcs create-merge`, que respeita o `VERSION_CONTROL_ACCESS`: com `manual` sai com 3 sem abrir; saídas 0/1/3/4 da `rules/engineering/eng.integrations-rules.md`):
19
+ Criar a branch e o commit, gerar o texto do MR/PR e, só depois da pergunta (regra de ouro), fazer o push e abrir o MR (GitLab) ou PR (GitHub) pela CLI do host (`glab`/`gh`), conforme o `origin` ou o `VERSION_CONTROL` no ENV.md. O MR/PR sai pelo `jarvis vcs create-merge`, que respeita o `VERSION_CONTROL_ACCESS` (com `manual`, sai com 3 sem abrir; saídas 0/1/3/4 da `rules/engineering/eng.integrations-rules.md`). Segue:
20
20
  - Padrão de nomenclatura de branch
21
21
  - Convenção de commits (Conventional Commits)
22
22
  - Template de MR preenchido corretamente
@@ -180,6 +180,8 @@ Refs: TASK-123"
180
180
 
181
181
  ### 4. Push
182
182
 
183
+ Os Passos 4 e 5 só acontecem depois da pergunta (regra de ouro, `eng.integrations-rules.md`). Monte antes o texto do MR (preencher o template, Passo 5), mostre-o e pergunte com `AskUserQuestion` (**Sim, publicar** / **Não, manter só na sessão**). Sem o Sim, grave o `pull-request.md` na sessão e pare, sem push nem MR. Quando o skill é chamado pelo `/eng.pr`, a escolha da Fase 0 dele vale como essa pergunta (exceção da regra) e não se pergunta de novo.
184
+
183
185
  ```bash
184
186
  git push -u origin {NOME_DA_BRANCH}
185
187
  ```
@@ -213,19 +215,20 @@ Usar template oficial em `$IDE/templates/engineering/PR-template.md`.
213
215
 
214
216
  ### 6. Atualizar o card (`TASK_MANAGER`)
215
217
 
216
- Se `TASK_MANAGER` estiver vazio (freelance): pular este passo.
218
+ Se `TASK_MANAGER` estiver vazio (freelance): pule só o item 1; o item 2 registra o link no `task-log.md` pelo skill.
217
219
 
218
- 1. Mover card para **"In Review"** (ou equivalente do vendor)
219
- 2. Adicionar comentário com link do MR via `eng-global-task-comment`
220
+ 1. Orientar a pessoa a mover o card para **"In Review"** (ou equivalente do vendor); o Jarvis não move card
221
+ 2. Publicar o comentário com o link do MR via `eng-global-task-comment`, que mostra o texto e pergunta (regra de ouro, `eng.integrations-rules.md`)
220
222
 
221
223
  ### 7. Processar Code Review
222
224
 
223
225
  1. Aguardar comentários da ferramenta de code review
224
226
  2. Analisar cada comentário
225
- 3. Aplicar correções se necessário:
227
+ 3. Aplicar correções se necessário. O push das correções só sai depois da pergunta com `AskUserQuestion` (regra de ouro, `eng.integrations-rules.md`); sem o Sim, o commit fica local:
226
228
  ```bash
227
229
  git add {arquivos}
228
230
  git commit -m "fix: corrigir {problema} conforme code review"
231
+ # só com o Sim da pergunta acima
229
232
  git push
230
233
  ```
231
234
 
@@ -237,7 +240,7 @@ Após MR criado com sucesso, **solicitar confirmação do usuário**:
237
240
  🧹 Deseja limpar a sessão?
238
241
 
239
242
  A pasta $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/ será removida.
240
- A documentação permanece no card (`TASK_MANAGER`) e no MR.
243
+ O texto do PR permanece no MR e o que foi enviado ao card fica no card; o que você recusou (por exemplo, o `task-comment-*.md` do link do MR) só existe nesta pasta e será apagado junto; no freelance, o `task-log.md` e, com "Só gerar os arquivos", o `pull-request.md` também ficam só aqui.
241
244
 
242
245
  Confirmar? (s/n)
243
246
  ```
@@ -253,7 +256,7 @@ rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
253
256
 
254
257
  | Passo | Skill | Condição |
255
258
  |-------|-------|----------|
256
- | Passo 6 — Atualizar o card | `/eng-global-task-comment` | Sempre: comentário no card com o link do MR (freelance: registro no `task-log.md` da sessão) |
259
+ | Passo 6 — Atualizar o card | `/eng-global-task-comment` | Com o Sim da pergunta (regra de ouro): comentário no card com o link do MR (freelance: registro no `task-log.md` da sessão) |
257
260
 
258
261
  ---
259
262
 
@@ -275,7 +278,7 @@ rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
275
278
  - ✅ Usar mensagem de commit padronizada
276
279
  - ✅ Criar branch no padrão `{TASK_MANAGER_KEY}-{titulo}`
277
280
  - ✅ Preencher template do MR completamente
278
- - ✅ Mover card para "In Review"
281
+ - ✅ Orientar a pessoa a mover o card para "In Review" (o Jarvis não move card)
279
282
  - ✅ Limpar sessão após criar MR
280
283
 
281
284
  ---
@@ -294,7 +297,7 @@ rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
294
297
  - [ ] Push realizado
295
298
  - [ ] MR criado com template preenchido
296
299
  - [ ] Branch destino correta
297
- - [ ] Card movido para "In Review"
300
+ - [ ] Pessoa orientada a mover o card para "In Review"
298
301
  - [ ] Sessão limpa
299
302
 
300
303
  ---
@@ -307,7 +310,7 @@ rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
307
310
  📋 Resumo:
308
311
  - Branch: {NOME_DA_BRANCH}
309
312
  - MR: {LINK_DO_MR}
310
- - Card ({TASK_MANAGER}): {TASK_MANAGER_KEY} → "In Review"
313
+ - Card ({TASK_MANAGER}): {TASK_MANAGER_KEY} (mover para "In Review" é com a pessoa)
311
314
 
312
315
  📊 Validações:
313
316
  - Testes: ✅ Passando
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: eng-global-task-comment
3
3
  description: >
4
- Adiciona um comentário no card do TASK_MANAGER (Jira, GitHub Issues ou GitLab Issues) pela CLI oficial do vendor; sem board (freelance), registra no task-log.md da sessão.
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).
4
+ Adiciona um comentário no card do TASK_MANAGER (Jira, GitHub Issues ou GitLab Issues) pela CLI oficial do vendor, só depois de mostrar o texto e o usuário dizer Sim (regra de ouro); sem board (freelance), registra no task-log.md da sessão.
5
+ Trigger: registrar no card um evento relevante: desvio do plano, auditoria do Advisor, bloqueio, link do MR ou outro evento que você aprove (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 Write Bash
@@ -48,7 +48,15 @@ Formato (criar o arquivo se não existir; só acrescentar, nunca sobrescrever):
48
48
  ```
49
49
  ````
50
50
 
51
- A cada entrada nova: uma linha nova no fim da tabela do índice e a seção nova no fim do arquivo. `{evento}`: desvio do plano, auditoria do Advisor, bloqueio, link do MR ou gate do pre-pr.
51
+ A cada entrada nova: uma linha nova no fim da tabela do índice e a seção nova no fim do arquivo. `{evento}`: desvio do plano, auditoria do Advisor, bloqueio, link do MR, gate do pre-pr ou outro evento aprovado.
52
+
53
+ ### 0.5 Mostrar e perguntar (com board)
54
+
55
+ **Regra de ouro** (`rules/engineering/eng.integrations-rules.md`): nada é comentado sem perguntar. Antes de qualquer envio, mostre o texto da mensagem e pergunte com `AskUserQuestion`: **"Publicar este comentário no card {TASK_MANAGER_KEY}?"** → **Sim, publicar** / **Não, manter só na sessão (como hoje)**. A pergunta vale para cada comentário, mesmo quando o workflow que chamou o skill já perguntou algo parecido.
56
+
57
+ - **`TASK_MANAGER_ACCESS` `manual` ou inválido:** não há envio possível; pule a pergunta e faça o mesmo que no Não, avisando que o texto está no `.md`.
58
+ - **Sim:** siga para o passo 1.
59
+ - **Não:** não envie. Grave o `.md` do passo 3 (`task-comment-{YYYYMMDD-HHMM}.md`) e diga `Comentário não enviado; o texto está em {caminho do .md}`, sem o aviso de falha do passo 3. É lá que o texto recusado fica (na auditoria do Advisor, ele também já está no `architecture.md`). O fluxo principal segue.
52
60
 
53
61
  ### 1. `jarvis tasks comment`
54
62