jarvis-ai-framework 8.1.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/README.md +3 -1
- package/agents/engineering/eng.agent.md +13 -11
- package/agents/engineering/eng.dev-code-reviewer.md +19 -4
- package/agents/engineering/eng.docs-writer.md +17 -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 +1 -1
- package/bin/commands/init.js +166 -31
- package/bin/lib/cli/program.js +4 -4
- package/bin/lib/core/sync-engine.js +7 -3
- package/package.json +2 -2
- package/rules-on-demand/engineering/eng.plan-rules.md +2 -0
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +8 -3
- package/rules-on-demand/engineering/eng.start-rules.md +7 -5
- package/rules-on-demand/engineering/eng.transitions-rules.md +4 -3
- package/skills/SKILLS-ROADMAP.md +2 -2
- package/skills/jarvis-docs-central/SKILL.md +1 -1
- package/skills/jarvis-evolution-architect/references/exemplos.md +3 -3
- package/skills/jarvis-init/SKILL.md +71 -23
- package/skills/product-specs-update/SKILL.md +138 -121
- package/templates/ENV-template.md +57 -19
- package/templates/engineering/architecture-template.md +14 -1
- package/templates/engineering/plan-template.md +2 -0
- package/workflows/engineering/eng.plan.md +8 -5
- package/workflows/engineering/eng.pre-pr.md +84 -18
- package/workflows/engineering/eng.spec-consolidate.md +1 -1
- package/workflows/engineering/eng.start.md +13 -1
|
@@ -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
|
|
@@ -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.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) |
|
|
47
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/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` ✅
|
|
@@ -24,7 +24,7 @@ Integrar os comandos do framework com o **Central docs**: o registro do que **de
|
|
|
24
24
|
| Documentos de trabalho | PRD, FRD, épicos, histórias, ARD, RFC, SPEC, QA, swagger, robôs, C4: o que se pretende e se discute | `docs/jarvis/` (`$PROD_DOCS`, `$ENG_DOCS`), fora do versionamento |
|
|
25
25
|
| **Central docs** | O que foi implementado: um documento **completo e autossuficiente** por funcionalidade (estado atual) e um **registro por entrega** (PR, commits, autores) | Pasta do Central docs (adaptador) |
|
|
26
26
|
|
|
27
|
-
Quem escreve no Central docs é o **`/eng.spec-consolidate`** (agente `eng.docs-consolidator`), depois do merge do PR. Os documentos de trabalho nunca são publicados lá.
|
|
27
|
+
Quem escreve no Central docs é o **`/eng.spec-consolidate`** (agente `eng.docs-consolidator.agent`), depois do merge do PR. Os documentos de trabalho nunca são publicados lá.
|
|
28
28
|
|
|
29
29
|
**Modos deste skill:**
|
|
30
30
|
- buscar o que já foi implementado (Modo 1);
|
|
@@ -152,7 +152,7 @@ Consolidar skills **não é a resposta**. Problema é **organização e document
|
|
|
152
152
|
**O Que Eu Mudaria:**
|
|
153
153
|
1. Criar um **INDEX.md** principal que agrupa skills por contexto
|
|
154
154
|
2. Adicionar tags em metadatas das skills
|
|
155
|
-
3. Criar uma skill
|
|
155
|
+
3. Criar uma skill de busca de skills (hipotética; não existe no framework)
|
|
156
156
|
4. Melhorar `metadata.area` e `metadata.tags`
|
|
157
157
|
|
|
158
158
|
**O Que Eu Não Faria:**
|
|
@@ -263,7 +263,7 @@ Quando você invoca a skill:
|
|
|
263
263
|
```
|
|
264
264
|
"Qual skill devo usar para X?"
|
|
265
265
|
```
|
|
266
|
-
❌ Isso não é pergunta arquitetural.
|
|
266
|
+
❌ Isso não é pergunta arquitetural. Consulte o mapeamento comando → skill em `skills/AGENTS.md` em vez disso.
|
|
267
267
|
|
|
268
268
|
### ✅ Fazer isso:
|
|
269
269
|
```
|
|
@@ -286,7 +286,7 @@ Quando você invoca a skill:
|
|
|
286
286
|
| "Devo criar um novo agent?" | ✅ SIM |
|
|
287
287
|
| "Essa feature deveria ser skill ou workflow?" | ✅ SIM |
|
|
288
288
|
| "Acho que essa feature está complexa demais" | ✅ SIM |
|
|
289
|
-
| "Qual skill usa para X?" | ❌ NÃO (
|
|
289
|
+
| "Qual skill usa para X?" | ❌ NÃO (consulte `skills/AGENTS.md`) |
|
|
290
290
|
| "Como implement feature X?" | ❌ NÃO (use skill específica) |
|
|
291
291
|
| "Devemos adotar X tendência?" | ✅ SIM |
|
|
292
292
|
| "Qual a diferença entre SDD e CDD?" | ✅ SIM |
|
|
@@ -82,6 +82,8 @@ Regras que **substituem** qualquer trecho legado deste skill ou dos assets:
|
|
|
82
82
|
│ ↓ │
|
|
83
83
|
│ 9. STACKS → Adicionar as stacks (opcional, pulável) │
|
|
84
84
|
│ ↓ │
|
|
85
|
+
│ 9.5 VALIDAR ENV.md → Arquivo inteiro × template (sempre) │
|
|
86
|
+
│ ↓ │
|
|
85
87
|
│ 10. CONFIRMAR → Com usuário │
|
|
86
88
|
│ │
|
|
87
89
|
└─────────────────────────────────────────────────────────────┘
|
|
@@ -204,14 +206,15 @@ Identificar qual IDE o usuário está utilizando:
|
|
|
204
206
|
⚠️ O arquivo ENV.md já existe. O que deseja fazer?
|
|
205
207
|
A: Sobrescrever completamente
|
|
206
208
|
B: Atualizar apenas variáveis específicas
|
|
207
|
-
C: Upgrade — adicionar variáveis novas do template (não
|
|
209
|
+
C: Upgrade — adicionar variáveis novas do template (não troca valor existente sem a sua resposta)
|
|
208
210
|
D: Cancelar
|
|
209
211
|
```
|
|
212
|
+
A (que segue o fluxo completo), B e C terminam pelo **passo 9.5 (validar o ENV.md)**; D não toca no arquivo.
|
|
210
213
|
|
|
211
214
|
**Se opção C (Upgrade):**
|
|
212
215
|
|
|
213
216
|
> No terminal, rode antes `jarvis init --upgrade --ide {ide}`: ele atualiza os arquivos do framework, acrescenta as variáveis novas e move os documentos para as pastas novas (itens 1–8, 10 a 12). Aqui ficam o Central docs antigo (item 9), as pendências que ele listar e o passo das stacks.
|
|
214
|
-
> **O upgrade só acrescenta chaves novas:** nenhuma chave já existente, preenchida ou não, é alterada, salvo as exceções declaradas no item 9 (`CENTRAL_DOCS_LOCATION` e `TOKEN_TASK_MANAGER`, com confirmação; `JARVIS_PROJECT` vazio, automático).
|
|
217
|
+
> **O upgrade só acrescenta chaves novas:** nenhuma chave já existente, preenchida ou não, é alterada, salvo as exceções declaradas no item 9 (`CENTRAL_DOCS_LOCATION` e `TOKEN_TASK_MANAGER`, com confirmação; `JARVIS_PROJECT` vazio, automático). Depois, a validação final (passo 9.5) pode reorganizar o arquivo, mover chaves para o assunto delas e corrigir valores fora das opções, sempre perguntando: nenhum valor muda sem a resposta da pessoa.
|
|
215
218
|
> Trocou o `ARTIFACT_STYLE` (ou HUB, POSITION, AREA, SQUAD) à mão? O Passo 8 copia ou remove as rules desse perfil.
|
|
216
219
|
|
|
217
220
|
1. Ler todas as chaves do `templates/ENV-template.md`
|
|
@@ -223,14 +226,14 @@ Identificar qual IDE o usuário está utilizando:
|
|
|
223
226
|
```
|
|
224
227
|
✅ ENV.md já está atualizado. Nenhuma variável nova encontrada.
|
|
225
228
|
```
|
|
226
|
-
Oferecer o **passo 9 (adicionar as stacks)**, que a pessoa pode pular, e então encerrar.
|
|
229
|
+
Oferecer o **passo 9 (adicionar as stacks)**, que a pessoa pode pular, rodar o **passo 9.5 (validar o ENV.md)** e então encerrar.
|
|
227
230
|
7. Se houver diff, exibir prévia:
|
|
228
231
|
```
|
|
229
232
|
🔍 Variáveis novas encontradas no template:
|
|
230
233
|
+ NOVA_VAR_1=
|
|
231
234
|
+ NOVA_VAR_2=valor-padrão
|
|
232
235
|
|
|
233
|
-
Serão adicionadas
|
|
236
|
+
Serão adicionadas no assunto de cada uma, na posição do template, sem alterar os valores existentes.
|
|
234
237
|
```
|
|
235
238
|
8. **Exceção — documentos nos caminhos antigos:** procure documentos de trabalho em `$DOCS_FOLDER/product`, `$DOCS_FOLDER/engineering/{ARD,RFC,qa,swagger,openapi,robots,c4}`, `docs/engineering/{robots,swagger,openapi,c4}` e os discoveries em `$PROD_DOCS/discoveries/`.
|
|
236
239
|
- Se houver, liste o que encontrou e pergunte com `AskUserQuestion` (uma pergunta para todos) se move para `docs/jarvis/…` (`$PROD_DOCS`, `$ENG_DOCS/…` e, para os discoveries, `$DISCOVERIES_DOCS`). Use `git mv` quando o arquivo for versionado e `mv` quando não for e, só se a raiz do workspace tiver `.git`, garanta `docs/jarvis/` no `.gitignore`.
|
|
@@ -246,18 +249,13 @@ Identificar qual IDE o usuário está utilizando:
|
|
|
246
249
|
10. **Exceção — `PROD_MODE`:** se `PROD_MODE` estiver entre as chaves novas, grave pelo `AREA`: `ENGINEERING` → `developer-guided`, `PRODUCT` → `product-led`. Com outra `AREA` (ou vazia), faça a mesma pergunta do Passo 3 (Pergunta 8 — modo de condução) e grave a resposta. `PROD_MODE` que já existe, mesmo vazia, não muda. As demais chaves continuam sem pergunta.
|
|
247
250
|
- **`WORKSPACE_MODE`:** o `jarvis init --upgrade` já grava o modo detectado (raiz sem `.git` e 1+ subpastas com `.git/` = `workspace`; raiz com `.git` = `project`). Se a chave existir vazia, detecte do mesmo jeito e grave; se existir preenchida, não muda.
|
|
248
251
|
- **`.gitignore` numa raiz sem `.git` (ex.: `WORKSPACE_MODE=workspace`):** a raiz não é versionada, então esse arquivo não tem efeito. Não o apague; só avise: `ℹ️ O .gitignore da raiz do workspace não tem efeito (a raiz não é um repositório). Pode removê-lo se quiser.`
|
|
249
|
-
11.
|
|
250
|
-
```
|
|
251
|
-
# --- Upgrade YYYY-MM-DD ---
|
|
252
|
-
NOVA_VAR_1=
|
|
253
|
-
NOVA_VAR_2=valor-padrão
|
|
254
|
-
```
|
|
252
|
+
11. Acrescentar as novas variáveis no assunto de cada uma, na posição do template, junto das chaves do mesmo assunto (ex.: uma `DATA_*` nova vai para o bloco Data Engineering, ao lado das irmãs), com o comentário do template. Sem bloco datado no fim. O `jarvis init --upgrade` (terminal) acrescenta no fim, num bloco `# --- Upgrade ... ---`, por ser determinístico; o passo 9.5 põe essas chaves no lugar.
|
|
255
253
|
12. Confirmar:
|
|
256
254
|
```
|
|
257
255
|
✅ ENV.md atualizado! N variável(is) nova(s) adicionada(s).
|
|
258
256
|
⚠️ Preencha os valores em branco antes de usar os novos recursos.
|
|
259
257
|
```
|
|
260
|
-
13. Oferecer o **passo 9 (adicionar as stacks)**, que a pessoa pode pular, e então encerrar (não continuar para o fluxo de onboarding completo).
|
|
258
|
+
13. Oferecer o **passo 9 (adicionar as stacks)**, que a pessoa pode pular, rodar o **passo 9.5 (validar o ENV.md)** e então encerrar (não continuar para o fluxo de onboarding completo).
|
|
261
259
|
|
|
262
260
|
**⚠️ OBRIGATÓRIO - Criação do ENV.md**:
|
|
263
261
|
|
|
@@ -787,10 +785,12 @@ if (IDE === "claude") {
|
|
|
787
785
|
}
|
|
788
786
|
```
|
|
789
787
|
|
|
790
|
-
O arquivo `$IDE/ENV.md` deve seguir a **estrutura e ordem** de `templates/ENV-template.md` (não um dump reordenado). Blocos mínimos esperados após o init:
|
|
788
|
+
O arquivo `$IDE/ENV.md` deve seguir a **estrutura e ordem** de `templates/ENV-template.md` (não um dump reordenado), com cada assunto na moldura de `# ====` do template; o passo 9.5 confere no fim. Blocos mínimos esperados após o init (os títulos são os do template; os comentários de cada bloco foram omitidos):
|
|
791
789
|
|
|
792
790
|
```markdown
|
|
793
|
-
#
|
|
791
|
+
# =============================================================================
|
|
792
|
+
# Workspace e identidade
|
|
793
|
+
# =============================================================================
|
|
794
794
|
WORKSPACE=
|
|
795
795
|
WORKSPACE_REPOS=
|
|
796
796
|
WORKSPACE_MODE={workspace|project}
|
|
@@ -798,17 +798,17 @@ USER={resolvido}
|
|
|
798
798
|
MAX_AI_EXECUTION_PERCENTAGE={60-100}
|
|
799
799
|
ENABLE_CDD=true
|
|
800
800
|
|
|
801
|
-
#
|
|
801
|
+
# =============================================================================
|
|
802
|
+
# Organização (obrigatório — opções vêm do taxonomy.md)
|
|
803
|
+
# =============================================================================
|
|
802
804
|
SQUAD={valor}
|
|
803
805
|
HUB={valor}
|
|
804
806
|
AREA={valor}
|
|
805
807
|
POSITION={valor}
|
|
806
808
|
|
|
807
|
-
#
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
# --- IDE e pastas ---
|
|
809
|
+
# =============================================================================
|
|
810
|
+
# IDE e pastas
|
|
811
|
+
# =============================================================================
|
|
812
812
|
IDE={valor}
|
|
813
813
|
DOCS_FOLDER=docs
|
|
814
814
|
FLOWS_FOLDER={commands|workflows}
|
|
@@ -824,16 +824,22 @@ PROD_TEMPLATES=...
|
|
|
824
824
|
PROD_DOCS=...
|
|
825
825
|
DISCOVERIES_FOLDER_NAME=discoveries
|
|
826
826
|
DISCOVERIES_DOCS=...
|
|
827
|
+
PROD_MODE={product-led|developer-guided}
|
|
828
|
+
ARTIFACT_STYLE={ai-generated|human-generated}
|
|
827
829
|
|
|
828
|
-
#
|
|
830
|
+
# =============================================================================
|
|
831
|
+
# Task manager (opcional)
|
|
832
|
+
# =============================================================================
|
|
829
833
|
TASK_MANAGER=
|
|
830
834
|
TASK_MANAGER_ACCESS=
|
|
831
835
|
TASK_MANAGER_URL_BASE=
|
|
832
836
|
|
|
833
|
-
#
|
|
837
|
+
# =============================================================================
|
|
838
|
+
# Controle de versão (opcional)
|
|
839
|
+
# =============================================================================
|
|
834
840
|
VERSION_CONTROL=
|
|
835
841
|
VERSION_CONTROL_ACCESS=
|
|
836
|
-
# ... restante do template (MESSAGE_*, DATABASE, JARVIS_PROJECT, CENTRAL_DOCS_*, etc.)
|
|
842
|
+
# ... restante do template, cada assunto na sua moldura (MESSAGE_*, DATABASE, JARVIS_PROJECT, CENTRAL_DOCS_*, etc.)
|
|
837
843
|
JARVIS_PROJECT=https://github.com/phelipperibeiro/jarvis-framework
|
|
838
844
|
```
|
|
839
845
|
|
|
@@ -1159,6 +1165,47 @@ O tempo de ~10 minutos é referência, não limite. Nunca leia `.env*`, chaves o
|
|
|
1159
1165
|
|
|
1160
1166
|
---
|
|
1161
1167
|
|
|
1168
|
+
### 9.5 Validar o ENV.md (sempre, no fim)
|
|
1169
|
+
|
|
1170
|
+
Roda no fim de todo caminho que grava o `ENV.md`: criação (opção A ou ENV.md novo), atualização de variáveis (B) e Upgrade (C, inclusive "já atualizado"), depois do passo 9. Não roda ao cancelar (D). Objetivo: o arquivo fica **100% correto** e **separado por assunto**, na estrutura e na ordem de `templates/ENV-template.md`, com cada assunto na moldura de `# ====`:
|
|
1171
|
+
|
|
1172
|
+
```
|
|
1173
|
+
# =============================================================================
|
|
1174
|
+
# Workspace e identidade
|
|
1175
|
+
# =============================================================================
|
|
1176
|
+
```
|
|
1177
|
+
|
|
1178
|
+
**Nunca mostre valor de variável**: nas perguntas e na saída vão só o nome da chave e se a linha tem algo depois do `=`.
|
|
1179
|
+
|
|
1180
|
+
**1. Conferir o arquivo inteiro contra o template.** Cada item que falhar é um problema:
|
|
1181
|
+
|
|
1182
|
+
| Verificação | Exemplo | Correção sugerida (primeira opção, "(Recomendada)") |
|
|
1183
|
+
|---|---|---|
|
|
1184
|
+
| Chave do template ausente | falta `WORKSPACE_MODE` | Acrescentar no assunto dela, com o padrão do template. Não conta como ausente uma `DATA_*` (exceto `DATA_SPECIALIZATIONS`) quando o HUB não exige o bloco DATA (regra do bloco DATA, abaixo) |
|
|
1185
|
+
| Chave fora do template (saiu dele ou é do projeto) | `QA_SIGNOFF_BRANCHES`, `MINHA_VAR` | Mover para o bloco final "Variáveis fora do template", com `# (descontinuada)` numa linha própria logo acima da chave e o valor intacto |
|
|
1186
|
+
| Chave duplicada | `HUB=` duas vezes | Manter a preenchida (ou a última) |
|
|
1187
|
+
| Valor fora das opções | `HUB=BACKEN`, `MAX_AI_EXECUTION_PERCENTAGE=40`, `TASK_MANAGER_ACCESS=api` | Perguntar o valor, com as opções do template ou do `taxonomy.md` (as mesmas perguntas do passo 3) |
|
|
1188
|
+
| Obrigatória vazia | `SQUAD=` | A mesma pergunta do passo 3 |
|
|
1189
|
+
| Lista de exemplo não escolhida | `TASK_MANAGER=[jira, github, gitlab]` | Escolher uma ou esvaziar |
|
|
1190
|
+
| Fora da ordem ou do assunto | blocos `# --- Upgrade ... ---` no fim; uma `DATA_*` longe das irmãs | Regravar na ordem do template |
|
|
1191
|
+
| Comentários ou separadores diferentes dos do template | comentário antigo; `# --- Assunto ---` | Trocar pelos do template (a pergunta avisa que comentários próprios se perdem) |
|
|
1192
|
+
| Bloco DATA fora da regra do HUB | `DATA_*` com `HUB=BACKEND` | Regra do bloco DATA (sempre exceto `DATA_SPECIALIZATIONS`, obrigatória em qualquer HUB): `HUB=DATA` exige o bloco (as que faltarem contam como ausentes); `HUB=FULLCYCLE` o deixa opcional (nem ausente, nem a remover), como a criação (passo 5) e o Upgrade (item 4) já fazem; outro HUB: sugerir remover o bloco |
|
|
1193
|
+
|
|
1194
|
+
Não pergunte de novo o que as exceções 9 a 9.3 do Upgrade já resolveram nesta execução.
|
|
1195
|
+
|
|
1196
|
+
**2. Perguntar cada problema** com `AskUserQuestion`: **uma pergunta por problema**, em chamadas de até 4 abas, agrupadas por tipo de verificação. Cada pergunta tem a correção sugerida como primeira opção, marcada "(Recomendada)", e uma opção que mantém o arquivo como está (ex.: "Manter como está"). Nada é corrigido sem resposta. Sem problema nenhum, não pergunte: avise `✅ ENV.md conferido: nada a corrigir.`
|
|
1197
|
+
|
|
1198
|
+
**3. Regravar (só o que foi aceito).**
|
|
1199
|
+
- **Reorganização aceita:** use a estrutura do template (ordem, comentários e molduras), mas só com as chaves que o arquivo já tem mais as acrescentadas por resposta: chave que a pessoa recusou acrescentar não entra, e um bloco inteiro que o arquivo não tem (como o DATA, fora da regra do HUB) não volta. Ponha o valor atual de cada chave no lugar dela, cada uma no seu assunto e junto das irmãs, e desfaça os blocos datados. As chaves fora do template vão para o último bloco, "Variáveis fora do template", cada uma com `# (descontinuada)` logo acima. **Nenhuma chave é apagada**, salvo as que a pessoa mandou remover numa resposta (como o bloco DATA). O comentário fica numa linha própria: na mesma linha da chave, o CLI o leria como parte do valor.
|
|
1200
|
+
- **Reorganização recusada:** grave só as correções de conteúdo aceitas, no lugar em que cada chave está, sem mover o resto.
|
|
1201
|
+
- **Conferência antes de gravar:** o **conjunto de chaves** depois é o de antes, mais as acrescentadas e menos as removidas por resposta; e o mapa chave → valor das chaves mantidas é igual (só mudam as corrigidas por resposta). Se não for, não grave e avise: `⚠️ A regravação mudaria chaves ou valores que não foram respondidos: nada gravado.`
|
|
1202
|
+
|
|
1203
|
+
**4. Rules do perfil.** Se uma correção mudou `HUB`, `POSITION`, `AREA`, `SQUAD`, `ARTIFACT_STYLE` ou `RTK_ENABLED`, rode o **passo 8** de novo: ele já rodou com os valores antigos, e as rules em `$IDE/rules/` seriam de outro perfil.
|
|
1204
|
+
|
|
1205
|
+
**5. Resumo.** Liste o que foi corrigido e o que ficou pendente (respostas "Manter como está"), só com nomes de chave, e se o passo 8 rodou de novo.
|
|
1206
|
+
|
|
1207
|
+
---
|
|
1208
|
+
|
|
1162
1209
|
### 10. Confirmar Criação
|
|
1163
1210
|
|
|
1164
1211
|
```
|
|
@@ -1442,7 +1489,8 @@ Bem-vindo! 🎉
|
|
|
1442
1489
|
- [ ] Detectou IDE corretamente
|
|
1443
1490
|
- [ ] Verificou se ENV.md já existe
|
|
1444
1491
|
- [ ] Se ENV.md existe: ofereceu opção de Upgrade (C) além de Sobrescrever/Atualizar/Cancelar
|
|
1445
|
-
- [ ] Se Upgrade: calculou diff template vs ENV.md e
|
|
1492
|
+
- [ ] Se Upgrade: calculou diff template vs ENV.md e acrescentou apenas as variáveis faltantes, no assunto de cada uma (sem bloco datado)
|
|
1493
|
+
- [ ] **Validou o ENV.md inteiro no passo 9.5**: uma pergunta por problema, regravação na ordem do template com as molduras de `# ====`, chaves fora do template no fim com `# (descontinuada)`, nenhum valor exibido nem trocado sem resposta
|
|
1446
1494
|
- [ ] Coletou todas as variáveis obrigatórias
|
|
1447
1495
|
- [ ] USER gravado no ENV.md a partir da identidade local
|
|
1448
1496
|
- [ ] Validou MAX_AI_EXECUTION_PERCENTAGE (60-100) - para campos livres
|