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.
@@ -40,11 +40,11 @@ Além dele, o `start` pode criar apenas os arquivos de apoio da própria sessão
40
40
 
41
41
  O workflow **só é considerado completo** após:
42
42
 
43
- 1. O `architecture.md` estar preenchido
43
+ 1. O `architecture.md` estar preenchido, com o passe crítico feito (Fase 4.4 do workflow: seção 2.5 "Premissas e Passe Crítico", com o lido separado do presumido e a premissa que derrubaria o documento)
44
44
  2. O usuário revisar o documento
45
- 3. O usuário **aprovar explicitamente** para prosseguir — sem Advisor, pela pergunta de transição "Aprovar o architecture.md?" (`eng.transitions-rules.md`)
45
+ 3. O usuário **aprovar explicitamente** para prosseguir, pela pergunta de transição "Aprovar o architecture.md?" (`eng.transitions-rules.md`): sempre sem Advisor e, com Advisor, sempre que a aprovação for obrigatória (autonomia `média` ou `baixa`, ou questão nova do passe crítico)
46
46
 
47
- **Exceção (Advisor):** se o usuário escolheu usar o Advisor no início do `eng.start`, as questões em aberto são decididas pela sugestão dele e o gate segue a autonomia do `context.md`: com `autonomia: alta` o `start` apresenta o resumo e segue para o `eng.plan` sem aguardar; com `média` ou `baixa`, a aprovação explícita continua obrigatória.
47
+ **Exceção (Advisor):** se o usuário escolheu usar o Advisor no início do `eng.start`, as questões em aberto são decididas pela sugestão dele e o gate segue a autonomia do `context.md`: com `autonomia: alta` o `start` apresenta o resumo e segue para o `eng.plan` sem aguardar, salvo se o passe crítico (Fase 4.4) abriu questão nova: nesse caso, a aprovação explícita da pessoa é obrigatória; com `média` ou `baixa`, a aprovação explícita continua obrigatória.
48
48
 
49
49
  ---
50
50
 
@@ -91,8 +91,8 @@ O workflow **só é considerado completo** após:
91
91
 
92
92
  7. **Aguardar aprovação**
93
93
  - Se aprovado → Informar próximos passos
94
- - Se rejeitado → Iterar no documento
95
- - NUNCA prosseguir sem a resposta: "Aprovar e seguir para o `/eng.plan`" (pergunta de transição, `eng.transitions-rules.md`) é a aprovação para seguir; a exceção do Advisor continua valendo
94
+ - Se rejeitado → Iterar no documento, somar 1 em "Ajustes antes da aprovação" no cabeçalho e refazer o passe crítico no que mudou
95
+ - NUNCA prosseguir sem a resposta: "Aprovar e seguir para o `/eng.plan`" (pergunta de transição, `eng.transitions-rules.md`) é a aprovação para seguir; a exceção do Advisor continua valendo, sem questão nova aberta pelo passe crítico
96
96
 
97
97
  ---
98
98
 
@@ -238,6 +238,8 @@ Antes de considerar o `start` completo:
238
238
  - [ ] Decisões têm justificativas
239
239
  - [ ] Riscos têm mitigações
240
240
  - [ ] Componentes impactados listados com caminhos reais
241
+ - [ ] Passe crítico feito: seção 2.5 preenchida, presumidas que mudam o plano lidas ou viradas questão
242
+ - [ ] "Ajustes antes da aprovação" atualizado no cabeçalho
241
243
  - [ ] Usuário revisou o documento
242
244
  - [ ] Usuário aprovou explicitamente
243
245
  - [ ] Nenhum código foi executado/criado
@@ -37,19 +37,20 @@ Lida pelos workflows `eng.start`, `eng.plan`, `eng.work`, `eng.pre-pr` e `eng.pr
37
37
  | Comando | Quando | Pergunta | Opções (padrão primeiro) |
38
38
  |---|---|---|---|
39
39
  | `eng.start` | Início, só **sem Advisor** | "Como tratar as questões em aberto que surgirem?" | Tratar no architecture.md (como hoje) · Uma a uma, assim que surgirem |
40
- | `eng.start` | Fim, só **sem Advisor** | "Aprovar o architecture.md?" | Aprovar e parar aqui (como hoje) · Aprovar e seguir para o `/eng.plan` · Ajustar o documento |
40
+ | `eng.start` | Fim, **sem Advisor**, ou com Advisor quando a aprovação é obrigatória (autonomia `média`/`baixa`, ou questão nova do passe crítico) | "Aprovar o architecture.md?" | Aprovar e parar aqui (como hoje) · Aprovar e seguir para o `/eng.plan` · Ajustar o documento |
41
41
  | `eng.plan` | Fim | "O que fazer com o plano?" | Aprovar e implementar agora · Aprovar e seguir manualmente (como hoje) · Ajustar o plano |
42
42
  | `eng.work` | Início | Execução | Fase a fase, com aprovação (como hoje) · Todas de uma vez ("N de M tarefas", pelo limite) |
43
43
  | `eng.work` | Início | Commits | Um por fase (como hoje) · Um commit só ao final |
44
44
  | `eng.work` | Início | Depois do work | Rodar o `/eng.pre-pr` · Rodar o `/eng.pr` · Fluxo normal (como hoje: o usuário segue os próximos comandos manualmente) |
45
45
  | `eng.pre-pr` | Fim | Com lacunas: "Como seguir?" (depois da mensagem com o link do relatório) | Corrigir as lacunas agora · Parar aqui para corrigir à mão (como hoje) · Abrir o PR assim mesmo |
46
46
  | `eng.pre-pr` | Fim | Sem lacunas: "Como seguir?" | Abrir o PR agora · Parar aqui (como hoje) |
47
+ | `eng.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" e "O que fazer com o plano?", a opção "como hoje" não é a primeira (em "Depois do work" fica por último), por escolha de produto: as primeiras opções são as ações que o usuário mais quer. Mesmo assim, é o fluxo que vale quando o usuário não escolhe.
51
+ Nas perguntas "Depois do work", "O que fazer com o plano?" e na variante B do fechamento do `eng.pre-pr`, a opção "como hoje" não é a primeira (em "Depois do work" e na variante B fica por último), por escolha de produto: as primeiras opções são as ações que o usuário mais quer. Na variante B, a #191 pede "Aceitar as ⚪ e seguir para o PR" como primeira opção (a recomendada), para lacunas menores não gerarem mais uma rodada. Mesmo assim, é o fluxo que vale quando o usuário não escolhe.
51
52
 
52
- **Com Advisor**, o `eng.start` não ganha pergunta nova: o Advisor decide as questões em aberto e o gate do fim segue a autonomia do `context.md`, como já estava.
53
+ **Com Advisor**, o `eng.start` não ganha pergunta nova: o Advisor decide as questões em aberto e o gate do fim segue a autonomia do `context.md`, como já estava, salvo se o passe crítico (Fase 4.4 do `eng.start`) abriu questão nova: nesse caso, como com autonomia `média` ou `baixa`, a aprovação explícita é obrigatória e é pedida pela pergunta "Aprovar o architecture.md?" da tabela.
53
54
 
54
55
  ### Recomendado
55
56
 
@@ -114,8 +114,8 @@ Skills existentes e planejadas do framework Jarvis.
114
114
  - **Status**: `criado`
115
115
 
116
116
  ### `product-specs-update` ✅
117
- - **Trigger**: atualização de specs existentes
118
- - **Escopo**: revisão e evolução de requisitos
117
+ - **Trigger**: PRD ou FRD criado ou modificado; pedido para sincronizar ou indexar specs
118
+ - **Escopo**: sincroniza PRD/FRD em cascata e mantém o índice local de specs (`$PROD_DOCS/specs-index.md`)
119
119
  - **Status**: `criado`
120
120
 
121
121
  ### `product-roadmap-report` ✅
@@ -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 `/jarvis-find-skill` que busca
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. Use `/jarvis-find-skill` em vez disso.
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 (use `/jarvis-find-skill`) |
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 toca nos valores existentes)
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 ao final do ENV.md sem alterar os valores existentes.
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. Appender as novas variáveis ao final do `ENV.md` com comentário de data:
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
- # --- Workspace e identidade ---
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
- # --- Organização ---
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
- # --- Condução e estilo ---
808
- PROD_MODE={product-led|developer-guided}
809
- ARTIFACT_STYLE={ai-generated|human-generated}
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
- # --- Task manager (opcional; vazio = freelance) ---
830
+ # =============================================================================
831
+ # Task manager (opcional)
832
+ # =============================================================================
829
833
  TASK_MANAGER=
830
834
  TASK_MANAGER_ACCESS=
831
835
  TASK_MANAGER_URL_BASE=
832
836
 
833
- # --- Controle de versão / chat / demais opcionais do template ---
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 appendou apenas variáveis faltantes
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