jarvis-ai-framework 7.0.0 → 8.1.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 (78) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +8 -33
  3. package/agents/engineering/data/eng.data-engineer.agent.md +3 -3
  4. package/agents/engineering/eng.docs-consolidator.agent.md +2 -2
  5. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +2 -2
  6. package/bin/README.md +3 -3
  7. package/bin/commands/init.js +75 -2
  8. package/bin/lib/cli/program.js +4 -8
  9. package/bin/lib/core/sync-engine.js +1 -1
  10. package/bin/lib/utils/frontmatter.js +1 -1
  11. package/bin/lib/utils/paths.js +2 -1
  12. package/bin/lib/utils/version.js +65 -0
  13. package/bin/postinstall.js +7 -31
  14. package/package.json +2 -2
  15. package/rules/AGENTS.md +1 -1
  16. package/rules/engineering/data/data-rules.md +2 -2
  17. package/rules/engineering/eng-rules.md +1 -1
  18. package/rules/engineering/eng-security-rules.md +1 -1
  19. package/rules/engineering/eng.integrations-rules.md +6 -2
  20. package/rules/rtk-rules.md +1 -1
  21. package/rules-on-demand/doc-links-rules.md +2 -2
  22. package/rules-on-demand/engineering/eng.breakdown-subtasks-rules.md +1 -1
  23. package/rules-on-demand/engineering/eng.pr-rules.md +8 -6
  24. package/rules-on-demand/engineering/eng.pre-pr-rules.md +3 -1
  25. package/rules-on-demand/engineering/eng.tech-spec-rules.md +9 -7
  26. package/rules-on-demand/engineering/eng.transitions-rules.md +3 -3
  27. package/skills/AGENTS.md +2 -2
  28. package/skills/SKILLS-ROADMAP.md +1 -1
  29. package/skills/eng-backend-arch-c4/assets/example-container.md +4 -4
  30. package/skills/eng-backend-arch-c4/assets/example-context.md +6 -6
  31. package/skills/eng-backend-microservices-trace/SKILL.md +1 -1
  32. package/skills/eng-global-investigation/SKILL.md +4 -0
  33. package/skills/eng-global-pr/SKILL.md +15 -12
  34. package/skills/eng-global-task-comment/SKILL.md +11 -3
  35. package/skills/eng-global-tech-spec/references/delivery-spec.md +28 -21
  36. package/skills/jarvis-docs-central/README.md +4 -4
  37. package/skills/jarvis-docs-central/SKILL.md +4 -2
  38. package/skills/jarvis-init/SKILL.md +18 -1
  39. package/skills/jarvis-init/assets/setup-guide.md +1 -1
  40. package/skills/jarvis-report-issue/SKILL.md +37 -24
  41. package/skills/product-roadmap-report/SKILL.md +2 -2
  42. package/skills/product-roadmap-report/commands/status.memory.md +1 -1
  43. package/skills/product-roadmap-report/commands/status.roadmap.preview.md +2 -2
  44. package/skills/product-specs/SKILL.md +1 -1
  45. package/templates/ENV-template.md +0 -8
  46. package/templates/cdd-aplicado-a-prompts.md +1 -1
  47. package/templates/engineering/AGENTS-template.md +2 -2
  48. package/templates/engineering/CONTACTS-template.md +1 -1
  49. package/templates/engineering/advisor-template.md +2 -2
  50. package/templates/engineering/data-contract-template.md +1 -1
  51. package/templates/engineering/tech-spec-delivery-template.md +8 -8
  52. package/templates/engineering/tech-spec-template.md +3 -3
  53. package/templates/product/prod-frd-template.md +1 -1
  54. package/templates/product/prod-prd-template.md +1 -1
  55. package/workflows/AGENTS.md +1 -1
  56. package/workflows/README.md +1 -1
  57. package/workflows/engineering/data/data.contract.md +12 -8
  58. package/workflows/engineering/eng.breakdown-subtasks.md +2 -2
  59. package/workflows/engineering/eng.build-tech-spec.md +1 -1
  60. package/workflows/engineering/eng.create-ard-from-code.md +3 -5
  61. package/workflows/engineering/eng.create-ard.md +3 -5
  62. package/workflows/engineering/eng.create-rfc.md +5 -5
  63. package/workflows/engineering/eng.light-arch.md +1 -1
  64. package/workflows/engineering/eng.plan.md +2 -2
  65. package/workflows/engineering/eng.pr.md +26 -19
  66. package/workflows/engineering/eng.pre-pr.md +46 -13
  67. package/workflows/engineering/eng.spec-consolidate.md +4 -4
  68. package/workflows/engineering/eng.start.md +10 -8
  69. package/workflows/engineering/eng.work.md +4 -4
  70. package/workflows/engineering/qa/eng.qa-release-signoff.md +1 -66
  71. package/workflows/product/prod.roadmap.preview.md +10 -14
  72. package/workflows/product/prod.spec.ard.md +2 -2
  73. package/workflows/product/prod.spec.breakdown.md +2 -2
  74. package/workflows/product/prod.spec.epic.md +4 -4
  75. package/workflows/product/prod.spec.frd.md +3 -3
  76. package/workflows/product/prod.spec.issue.md +3 -3
  77. package/workflows/product/prod.spec.prd.md +5 -5
  78. package/bin/commands/qa-signoff.js +0 -115
@@ -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):**
@@ -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
 
@@ -87,6 +87,8 @@ O workflow **deve sempre** terminar com:
87
87
 
88
88
  1. **`gate-checklist.md`** em `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/`:
89
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").
90
+ - `Rodada` e `Commit` no cabeçalho, as rodadas anteriores e, da rodada 2 em diante, a resolução das lacunas da rodada anterior.
91
+ - É 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.
92
+ 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).
91
93
  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
94
  4. **Aguardar permissão explícita** do usuário para prosseguir para `/eng.pr`.
@@ -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`.
@@ -44,7 +44,7 @@ Lida pelos workflows `eng.start`, `eng.plan`, `eng.work`, `eng.pre-pr` e `eng.pr
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.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
48
  | `eng.pr` | Fim | "O PR já foi aprovado e mergeado?" | Ainda não (como hoje) · Sim, rodar o `/eng.spec-consolidate` |
49
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.
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` |
@@ -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
 
@@ -44,7 +44,7 @@ B: História / Task — implementação específica, pronta para desenvolvimento
44
44
 
45
45
  **Se recebeu URL/ID do $TASK_MANAGER:**
46
46
 
47
- - Busque o card usando a API ou ferramenta disponível
47
+ - Leia o card pela CLI oficial do `$TASK_MANAGER` (ação `view` do catálogo, `eng.integrations-rules.md`), sem REST nem MCP; sem acesso, peça para colar o conteúdo
48
48
  - **Épico**: extraia título, descrição, objetivo de negócio, escopo e iniciativa relacionada
49
49
  - **História**: extraia título, descrição, critérios de aceitação, épico relacionado, comentários relevantes
50
50
 
@@ -322,8 +322,8 @@ Use as ferramentas de busca para identificar:
322
322
 
323
323
  Verifique se há documentação relevante:
324
324
 
325
- - **PRD relacionada**: `$DOCS_FOLDER/**/*prd*.md` ou anexos no Jira
326
- - **FRD relacionada**: `$DOCS_FOLDER/**/*frd*.md` ou anexos no Jira
325
+ - **PRD relacionada**: `$DOCS_FOLDER/**/*prd*.md` ou anexos no card (lidos pela CLI ou colados pelo usuário)
326
+ - **FRD relacionada**: `$DOCS_FOLDER/**/*frd*.md` ou anexos no card (lidos pela CLI ou colados pelo usuário)
327
327
  - **ADRs (Architecture Decision Records)**: `$DOCS_FOLDER/ARD/*.md` ou `./sessions/**/adr.md`
328
328
  - **README e documentação técnica**: `README.md`, `ARCHITECTURE.md`, `API.md`
329
329
 
@@ -671,7 +671,7 @@ Para cada caso extremo/erro:
671
671
 
672
672
  Exemplo: `$SESSIONS_DIR/eng/story-123/tech-spec.md`
673
673
 
674
- > **IMPORTANTE**: A tech spec é salva na sessão e anexada no Jira. O Jira é a fonte da verdade, não o repositório.
674
+ > **IMPORTANTE**: A tech spec é salva na sessão. O anexo na issue é opcional e só sai na 6.4, depois da aprovação final e da pergunta.
675
675
 
676
676
  #### 6.2 Revisão de Qualidade
677
677
 
@@ -707,17 +707,23 @@ Apresente ao usuário:
707
707
 
708
708
  **Aguarde aprovação final do usuário.**
709
709
 
710
+ #### 6.4 Anexo da tech spec na issue (opcional, com pergunta)
711
+
712
+ Só com board configurado (no freelance não há issue: pule este passo). Só há pergunta quando o anexo vai sair: no Jira, com a `acli` logada que anexa arquivo (confira no `--help`) e `TASK_MANAGER_ACCESS=cli` (ou vazio). Nesse caso: para anexá-la na issue do board, depois da aprovação da 6.3, mostre o que vai e pergunte com `AskUserQuestion` (regra de ouro, `eng.integrations-rules.md`): **Sim, anexar** / **Não, manter só na sessão**; com o Sim, anexe pela `acli`; sem o Sim, a tech spec fica só na sessão. Nos demais casos (Jira sem a `acli` logada, `acli` que não anexa, acesso manual, GitHub ou GitLab, cuja CLI não anexa arquivo à issue) não há envio e, portanto, nenhuma pergunta: oriente a pessoa a anexar à mão. A mensagem da 8.2 diz o que aconteceu.
713
+
710
714
  ---
711
715
 
712
716
  ### ═══════════════════════════════════════════════
713
717
 
714
- ### FASE 7: Criação de Subtarefas no Jira
718
+ ### FASE 7: Criação de Subtarefas (automática só no Jira)
715
719
 
716
720
  ### ═══════════════════════════════════════════════
717
721
 
722
+ > **Escopo:** a criação automática de subtarefas é só no Jira, pela `acli`. Em GitHub ou GitLab, ou no Jira sem a `acli` logada ou com `TASK_MANAGER_ACCESS=manual`, esta fase entrega o template formatado e as instruções para a pessoa criar as subtarefas à mão; como não há envio, a 7.3 não faz a pergunta nesse caso. A generalização para `gh`/`glab` fica para uma issue à parte.
723
+
718
724
  #### 7.1 Preparação para Criação
719
725
 
720
- **Se o projeto usa Jira e a `acli` está logada (`acli jira workitem create`, conferindo os flags no `--help`), ou há uma ferramenta MCP do Jira configurada à mão:**
726
+ **Se o projeto usa Jira, a `acli` está logada e `TASK_MANAGER_ACCESS=cli` ou vazio (vazio vale como `cli`, com o aviso do `/jarvis-init`), com `acli jira workitem create` (conferindo os flags no `--help`; a criação só sai na 7.3, depois da pergunta, regra de ouro):**
721
727
 
722
728
  Para cada subtarefa no plano:
723
729
 
@@ -729,26 +735,27 @@ Para cada subtarefa no plano:
729
735
  - Estimativa: {X horas}
730
736
  - Labels: `tech-spec`, `{área}` (ex: backend, frontend)
731
737
 
732
- #### 7.2 Estrutura da Descrição no Jira
738
+ #### 7.2 Estrutura da Descrição no board
739
+
740
+ Use o formato **Descrição da subtarefa no board** de `$IDE/templates/engineering/tech-spec-delivery-template.md` (seções: Descrição, Arquivos a Modificar/Criar, Critérios de Aceitação, Testes Requeridos, Dependências, Referência).
733
741
 
734
- Use o formato **Descrição da subtarefa no Jira** de `$IDE/templates/engineering/tech-spec-delivery-template.md` (seções: Descrição, Arquivos a Modificar/Criar, Critérios de Aceitação, Testes Requeridos, Dependências, Referência).
742
+ #### 7.3 Criação (Jira pela `acli`; outros boards, template)
735
743
 
736
- #### 7.3 Criação no Jira
744
+ Só há pergunta quando a criação vai sair: no Jira, com a `acli` logada e `TASK_MANAGER_ACCESS=cli` (ou vazio). Nos demais casos (fora do Jira, sem a `acli` ou com acesso manual) não há envio e, portanto, nenhuma pergunta: entregue o template formatado direto. Quando a criação vai sair, antes de criar as subtarefas, mostre o texto e pergunte com `AskUserQuestion` (**Sim, publicar** / **Não, manter só na sessão**), regra de ouro de `eng.integrations-rules.md`; sem o Sim, entregue só o template formatado e deixe o texto na sessão. O comentário da 7.4 tem a sua própria pergunta, feita pelo `/eng-global-task-comment`.
737
745
 
738
- **Se houver API/ferramenta disponível:**
746
+ **No Jira, com a `acli` logada, `TASK_MANAGER_ACCESS=cli` (ou vazio) e o Sim:**
739
747
 
740
- - Use para criar subtarefas automaticamente
741
- - Vincule à história pai
742
- - Configure dependências entre subtarefas
748
+ - Crie as subtarefas com `acli jira workitem create` (flags no `--help`)
749
+ - Vincule à história pai e configure as dependências entre subtarefas no que a `acli` permitir (com o Sim acima); o resto vai no template manual abaixo
743
750
 
744
- **Se não houver ferramenta:**
751
+ **Em GitHub/GitLab, sem a `acli` logada (ou com `TASK_MANAGER_ACCESS=manual`), ou sem o Sim:**
745
752
 
746
- - Forneça ao usuário **template formatado** para copiar/colar no Jira
753
+ - Forneça ao usuário **template formatado** para copiar/colar no board (Jira, GitHub ou GitLab)
747
754
  - Forneça **instruções passo-a-passo** para criação manual
748
755
 
749
756
  #### 7.4 Atualização da História Original
750
757
 
751
- Adicione comentário na história original (STORY-XXX) com:
758
+ Publique o comentário na história original (STORY-XXX) com o `/eng-global-task-comment`, que mostra o texto e pergunta (regra de ouro). O comentário segue este formato:
752
759
 
753
760
  Use o formato **Comentário na história original** de `$IDE/templates/engineering/tech-spec-delivery-template.md`.
754
761
 
@@ -766,10 +773,10 @@ Valide que:
766
773
 
767
774
  - [ ] Tech Spec completa e aprovada pelo usuário
768
775
  - [ ] Arquivo salvo na sessão: `$SESSIONS_DIR/eng/{feature-name}/tech-spec.md`
769
- - [ ] Tech Spec anexada na issue do Jira
776
+ - [ ] Tech Spec anexada na issue (com o Sim), a anexar pela pessoa (orientado) ou deixada na sessão
770
777
  - [ ] Subtarefas documentadas com critérios claros
771
- - [ ] Subtarefas criadas no Jira (ou template fornecido)
772
- - [ ] História original atualizada com link para tech spec
778
+ - [ ] Subtarefas criadas no Jira pela `acli`, ou template fornecido (outros boards, sem a CLI, com acesso manual, sem o Sim ou sem board)
779
+ - [ ] História original atualizada com link para tech spec (com o Sim do comentário da 7.4) ou texto deixado na sessão
773
780
  - [ ] Decisões arquiteturais documentadas
774
781
  - [ ] Riscos identificados e mitigados
775
782
  - [ ] Dependências mapeadas
@@ -800,7 +807,7 @@ Use o formato **Mensagem de entrega** de `$IDE/templates/engineering/tech-spec-d
800
807
  - `$SESSIONS_DIR/eng/**/*.md` - Tech specs e ADRs de sessões anteriores
801
808
  - `README.md` - Visão geral do projeto
802
809
  - `ARCHITECTURE.md` - Arquitetura do sistema (se existir)
803
- - Anexos no Jira - PRD, FRD, ARD, RFC
810
+ - Anexos no card (lidos pela CLI ou colados) - PRD, FRD, ARD, RFC
804
811
 
805
812
  ### Templates
806
813
 
@@ -821,7 +828,7 @@ O diagrama do fluxo (épico x história, fases 0 a 8) está na seção **Fluxo r
821
828
 
822
829
  → Liste o que falta e peça ao usuário para completar
823
830
 
824
- ### Se não conseguir acessar o Jira:
831
+ ### Se não conseguir acessar o card no board:
825
832
 
826
833
  → Peça ao usuário para copiar/colar o conteúdo da história
827
834
 
@@ -5,7 +5,7 @@ Integração com o **Central docs**: o registro do que **foi implementado** em c
5
5
  ## Visão Geral
6
6
 
7
7
  - **Buscar** o que já foi implementado (`jarvis docs sync`, `jarvis docs fetch`)
8
- - **Publicar** a consolidação de cada entrega (`jarvis docs publish`, pelo `/eng.spec-consolidate`)
8
+ - **Publicar** a consolidação de cada entrega (`jarvis docs publish`, pelo `/eng.spec-consolidate`, depois da pergunta)
9
9
  - **Índice** regenerado a cada publicação (`{SQUAD}/index.md`)
10
10
 
11
11
  O Central docs funciona por **adaptador de armazenamento**: hoje uma pasta do disco (`filesystem`). Se essa pasta for um clone de um repositório de documentação (tem `.git`), a publicação vira branch + commit + push + Pull/Merge Request. S3 e Google Drive são as issues #144 e #145.
@@ -27,7 +27,7 @@ WORKSPACE=loja # vira a pasta do produto
27
27
 
28
28
  A pasta padrão é `docs/jarvis/central-docs` nos dois modos de trabalho, junto dos documentos de trabalho. No projeto único, `docs/jarvis/` no `.gitignore` a deixa fora do versionamento; no workspace (vários repositórios) a raiz não é versionada. Quem já usa `./central-docs` continua funcionando, e o Upgrade do `/jarvis-init` oferece mover a pasta.
29
29
 
30
- > Com `.git`, o PR é aberto pela CLI do host (`gh pr create` / `glab mr create`), com o login dela (`gh auth login`, `glab auth login`). Sem a CLI, ou com `VERSION_CONTROL_ACCESS` `manual`/inválido no `ENV.md` do projeto, a branch fica no remote e a publicação mostra o link para abrir o MR à mão. Nenhum token vai no chat nem no `ENV.md`.
30
+ > Com `.git` (e só depois da pergunta do `/eng.spec-consolidate`, regra de ouro), o PR é aberto pela CLI do host (`gh pr create` / `glab mr create`), com o login dela (`gh auth login`, `glab auth login`). Sem a CLI, ou com `VERSION_CONTROL_ACCESS` `manual`/inválido no `ENV.md` do projeto, a branch fica no remote e a publicação mostra o link para abrir o MR à mão. Nenhum token vai no chat nem no `ENV.md`.
31
31
 
32
32
  **Vindo da versão anterior (Central docs como repositório remoto)?** Rode `/jarvis-init` → Upgrade (C). Ele propõe `CENTRAL_DOCS_STORAGE=filesystem`, a pasta padrão e o `git clone` do repositório antigo.
33
33
 
@@ -36,8 +36,8 @@ A pasta padrão é `docs/jarvis/central-docs` nos dois modos de trabalho, junto
36
36
  ```bash
37
37
  jarvis docs sync # resumo: funcionalidades e entregas recentes
38
38
  jarvis docs fetch CORE/index.md # conteúdo de um arquivo (exit 2 se não existir)
39
- jarvis docs publish --file .../consolidation/feature-checkout.md --tipo feature # pelo /eng.spec-consolidate
40
- jarvis docs publish --file .../consolidation/delivery-2026-10-15-task-123.md --tipo delivery
39
+ jarvis docs publish --file .../consolidation/feature-checkout.md --tipo feature # pelo /eng.spec-consolidate, depois do Sim (regra de ouro)
40
+ jarvis docs publish --file .../consolidation/delivery-2026-10-15-task-123.md --tipo delivery # idem
41
41
  ```
42
42
 
43
43
  - **Tipos:** só `feature` (vai para `product/`) e `delivery` (vai para `engineering/`). PRD, ARD, SPEC e os outros documentos de trabalho são recusados, com a explicação de que ficam em `docs/jarvis/`.
@@ -56,6 +56,8 @@ Ler do `$IDE/ENV.md`:
56
56
  - `CENTRAL_DOCS_REF`, `CENTRAL_DOCS_TARGET_BRANCH`, `CENTRAL_DOCS_REVIEWERS` (só com `.git`)
57
57
  - `SQUAD` (ALL-CAPS-COM-HIFEN) e `WORKSPACE` (vira a pasta do produto)
58
58
 
59
+ O `jarvis docs publish` só roda depois da pergunta do `/eng.spec-consolidate` (regra de ouro, `rules/engineering/eng.integrations-rules.md`).
60
+
59
61
  Com `.git`, o PR é aberto pela CLI do host (`gh pr create` / `glab mr create`), com o login dela, respeitando o `VERSION_CONTROL_ACCESS` do `ENV.md` do projeto (não do repositório do Central docs). Sem a CLI, sem login, ou com `manual`/valor inválido/ENV.md ilegível, a branch fica no remote e a publicação mostra o link para abrir o MR à mão. ❌ **Nunca** colar token no chat nem gravar no `ENV.md`.
60
62
 
61
63
  ---
@@ -157,12 +159,12 @@ jarvis docs publish --file .../consolidation/feature-checkout.md --tipo feature
157
159
  1. Validar o frontmatter.
158
160
  2. Calcular o destino.
159
161
  3. Sem `.git`: copiar e regenerar o índice.
160
- 4. Com `.git`: branch, cópia, índice, commit, push e PR.
162
+ 4. Com `.git`: branch, cópia, índice, commit, push e PR (só depois da pergunta, regra de ouro).
161
163
 
162
164
  ### Modo 3: Reparar o índice
163
165
 
164
166
  - **Sem `.git`:** a próxima publicação regenera o índice.
165
- - **Com `.git`:** no clone, rodar `bash scripts/build-index.sh` (se existir) e abrir um PR `repair/index-{SQUAD}-{data}`.
167
+ - **Com `.git`:** no clone, rodar `bash scripts/build-index.sh` (se existir) e abrir um PR `repair/index-{SQUAD}-{data}` (só depois de mostrar o que será enviado e perguntar, regra de ouro).
166
168
 
167
169
  ### Skills invocados durante a execução do skill
168
170