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.
- package/AGENTS.md +2 -2
- package/README.md +11 -34
- package/agents/engineering/data/eng.data-engineer.agent.md +3 -3
- package/agents/engineering/eng.agent.md +13 -11
- package/agents/engineering/eng.dev-code-reviewer.md +19 -4
- package/agents/engineering/eng.docs-consolidator.agent.md +2 -2
- package/agents/engineering/eng.docs-writer.md +17 -2
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +2 -2
- package/agents/engineering/qa/eng.qa.test-planner.md +20 -5
- package/agents/product/prod.pm-checker.md +16 -1
- package/bin/README.md +4 -4
- package/bin/commands/init.js +237 -29
- package/bin/lib/cli/program.js +7 -11
- package/bin/lib/core/sync-engine.js +8 -4
- package/bin/lib/utils/frontmatter.js +1 -1
- package/bin/lib/utils/paths.js +2 -1
- package/bin/lib/utils/version.js +65 -0
- package/bin/postinstall.js +7 -31
- package/package.json +2 -2
- package/rules/AGENTS.md +1 -1
- package/rules/engineering/data/data-rules.md +2 -2
- package/rules/engineering/eng-rules.md +1 -1
- package/rules/engineering/eng-security-rules.md +1 -1
- package/rules/engineering/eng.integrations-rules.md +6 -2
- package/rules/rtk-rules.md +1 -1
- package/rules-on-demand/doc-links-rules.md +2 -2
- package/rules-on-demand/engineering/eng.breakdown-subtasks-rules.md +1 -1
- package/rules-on-demand/engineering/eng.plan-rules.md +2 -0
- package/rules-on-demand/engineering/eng.pr-rules.md +8 -6
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +10 -3
- package/rules-on-demand/engineering/eng.start-rules.md +7 -5
- package/rules-on-demand/engineering/eng.tech-spec-rules.md +9 -7
- package/rules-on-demand/engineering/eng.transitions-rules.md +7 -6
- package/skills/AGENTS.md +2 -2
- package/skills/SKILLS-ROADMAP.md +3 -3
- package/skills/eng-backend-arch-c4/assets/example-container.md +4 -4
- package/skills/eng-backend-arch-c4/assets/example-context.md +6 -6
- package/skills/eng-backend-microservices-trace/SKILL.md +1 -1
- package/skills/eng-global-investigation/SKILL.md +4 -0
- package/skills/eng-global-pr/SKILL.md +15 -12
- package/skills/eng-global-task-comment/SKILL.md +11 -3
- package/skills/eng-global-tech-spec/references/delivery-spec.md +28 -21
- package/skills/jarvis-docs-central/README.md +4 -4
- package/skills/jarvis-docs-central/SKILL.md +5 -3
- package/skills/jarvis-evolution-architect/references/exemplos.md +3 -3
- package/skills/jarvis-init/SKILL.md +89 -24
- package/skills/jarvis-init/assets/setup-guide.md +1 -1
- package/skills/jarvis-report-issue/SKILL.md +37 -24
- package/skills/product-roadmap-report/SKILL.md +2 -2
- package/skills/product-roadmap-report/commands/status.memory.md +1 -1
- package/skills/product-roadmap-report/commands/status.roadmap.preview.md +2 -2
- package/skills/product-specs/SKILL.md +1 -1
- package/skills/product-specs-update/SKILL.md +138 -121
- package/templates/ENV-template.md +57 -27
- package/templates/cdd-aplicado-a-prompts.md +1 -1
- package/templates/engineering/AGENTS-template.md +2 -2
- package/templates/engineering/CONTACTS-template.md +1 -1
- package/templates/engineering/advisor-template.md +2 -2
- package/templates/engineering/architecture-template.md +14 -1
- package/templates/engineering/data-contract-template.md +1 -1
- package/templates/engineering/plan-template.md +2 -0
- package/templates/engineering/tech-spec-delivery-template.md +8 -8
- package/templates/engineering/tech-spec-template.md +3 -3
- package/templates/product/prod-frd-template.md +1 -1
- package/templates/product/prod-prd-template.md +1 -1
- package/workflows/AGENTS.md +1 -1
- package/workflows/README.md +1 -1
- package/workflows/engineering/data/data.contract.md +12 -8
- package/workflows/engineering/eng.breakdown-subtasks.md +2 -2
- package/workflows/engineering/eng.build-tech-spec.md +1 -1
- package/workflows/engineering/eng.create-ard-from-code.md +3 -5
- package/workflows/engineering/eng.create-ard.md +3 -5
- package/workflows/engineering/eng.create-rfc.md +5 -5
- package/workflows/engineering/eng.light-arch.md +1 -1
- package/workflows/engineering/eng.plan.md +10 -7
- package/workflows/engineering/eng.pr.md +26 -19
- package/workflows/engineering/eng.pre-pr.md +126 -27
- package/workflows/engineering/eng.spec-consolidate.md +5 -5
- package/workflows/engineering/eng.start.md +23 -9
- package/workflows/engineering/eng.work.md +4 -4
- package/workflows/engineering/qa/eng.qa-release-signoff.md +1 -66
- package/workflows/product/prod.roadmap.preview.md +10 -14
- package/workflows/product/prod.spec.ard.md +2 -2
- package/workflows/product/prod.spec.breakdown.md +2 -2
- package/workflows/product/prod.spec.epic.md +4 -4
- package/workflows/product/prod.spec.frd.md +3 -3
- package/workflows/product/prod.spec.issue.md +3 -3
- package/workflows/product/prod.spec.prd.md +5 -5
- 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
|
|
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}
|
package/rules/rtk-rules.md
CHANGED
|
@@ -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 `
|
|
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
|
|
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 **
|
|
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) →
|
|
142
|
+
│ 6. CRIAR MR (desenvolvedor) → Template, depois da Fase 0 │
|
|
143
143
|
│ ↓ │
|
|
144
|
-
│ 7.
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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**:
|
|
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
|
|
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
|
|
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
|
|
619
|
+
related_story: { STORY-XXX do board }
|
|
620
620
|
epic_related: { EPIC-XXX se existir }
|
|
621
|
-
link_task: { URL da história no
|
|
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,
|
|
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` |
|
|
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"
|
|
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` (
|
|
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
|
|
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` |
|
package/skills/SKILLS-ROADMAP.md
CHANGED
|
@@ -114,8 +114,8 @@ Skills existentes e planejadas do framework Jarvis.
|
|
|
114
114
|
- **Status**: `criado`
|
|
115
115
|
|
|
116
116
|
### `product-specs-update` ✅
|
|
117
|
-
- **Trigger**:
|
|
118
|
-
- **Escopo**:
|
|
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
|
|
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", "
|
|
60
|
-
Rel(workflows, gitlab, "Cria MR", "
|
|
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 |
|
|
91
|
-
| Workflow Engine | GitLab | Cria MR |
|
|
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", "
|
|
38
|
-
Rel(jarvis, gitlab, "Cria branches e MRs", "
|
|
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 |
|
|
54
|
-
| GitLab | Sistema Externo | Controle de versão |
|
|
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 |
|
|
66
|
-
| JARVIS | GitLab | Cria branches e MRs |
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
219
|
-
2.
|
|
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
|
-
|
|
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` |
|
|
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
|
-
- ✅
|
|
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
|
-
- [ ]
|
|
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}
|
|
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
|
|
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
|
|
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
|
|