jarvis-ai-framework 5.0.0 → 5.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.
@@ -1,538 +1,123 @@
1
1
  ---
2
- description: Fluxo para preparar a sessão com contexto personalizado por perfil
3
- version: "1.7"
2
+ description: Prepara o contexto de uma tarefa nova carregando só o que é relevante (mapa de tecnologias do workspace, repositórios, especialidades, recorte do Central docs, entregas recentes e versões) e o guarda por apelido para o /eng.start ou o /prod.spec usar.
3
+ version: "2.0"
4
4
  auto_execution_mode: 1
5
5
  env_file: "@/ENV.md"
6
6
  model_tier: low
7
- model_justification: Leitura seletiva de contexto e apresentação de menu — não requer raciocínio complexo
7
+ model_justification: Leitura seletiva e perguntas de escopo — não requer raciocínio complexo
8
8
  ---
9
9
 
10
- # warm-up — Contexto Personalizado por Perfil
10
+ # warm-up — preparação de contexto da tarefa
11
11
 
12
12
  ## Objetivo
13
13
 
14
- Preparar a sessão carregando **somente o contexto necessário** para o perfil do usuário,
15
- evitando leitura desnecessária de arquivos e economizando tokens.
14
+ Antes de uma tarefa nova, carregar e guardar **só o contexto estritamente relevante**, para os comandos seguintes não reprocessarem nada. O resultado fica em `$SESSIONS_DIR/warm-ups/{apelido}/warm-up.md`; quem o usa (`/eng.start`, `/prod.spec*`) o leva para o `context.md` da sessão e apaga a pasta.
15
+
16
+ As rules já estão no contexto da sessão: **não as releia**. Perfil de comunicação e autonomia ficam com o CDD (`/jarvis-context-detect`), que o comando da tarefa chama.
16
17
 
17
18
  ### Skills invocados durante o workflow
18
19
 
19
20
  | Passo | Skill | Condição |
20
21
  |-------|-------|----------|
21
- | Passo 0.5 › 2. Para cada tecnologia identificada | `context7` (MCP: `resolve-library-id`, `query-docs`) | Se houver variável de stack com valor no ENV.md (uma consulta por tecnologia identificada); sem variável de stack, pula silenciosamente |
22
- | Passo 2 — Sincronizar Documentação Central | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md (Modo 1: Buscar Docs, via Skill tool) |
23
- | Passo 4 › Menu TECH LEAD › opções A a H | `/eng.start`, `/eng.debug`, `/eng.create-ard`, `/eng.create-ard-from-code`, `/eng.create-rfc`, `/eng.build-tech-spec`, `/eng.review`, `/eng.docs` | Se `POSITION=TECH LEAD` e `AREA=ENGINEERING` (menu dedicado) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
24
- | Passo 4 › Menu CTO › opções A a D | `/eng.review`, `/eng.create-ard`, `/eng.create-rfc`, `/eng.build-tech-spec` | Se `POSITION` for CTO ou equivalente (menu dedicado, para qualquer `AREA`) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
25
- | Passo 4 › Menu ENGINEERING + DATA › opções A a C | `/data.new-pipeline`, `/eng-data`, `/data.contract` | Se `AREA=ENGINEERING` e `HUB=DATA` e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
26
- | Passo 4 › Menu ENGINEERING + QA › opções A a C | `/eng.qa-refinement-entry`, `/eng.qa-sprint-planning`, `/eng.qa-release-signoff` | Se `AREA=ENGINEERING` e (`HUB=QA` ou Quality Champion) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
27
- | Passo 4 › Menu ENGINEERING (qualquer HUB) › opções A a I | `/eng.start`, `/eng.debug`, `/eng.create-ard`, `/eng.create-ard-from-code`, `/eng.create-rfc`, `/eng.build-tech-spec`, `/eng.review`, `/eng.docs`, `/eng.rpa.robot` | Se `AREA=ENGINEERING` (qualquer HUB, sem menu mais específico) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
28
- | Passo 4 › Menu PRODUCT › opções A a D | `/prod.spec.prd`, `/prod.spec.frd`, `/prod.spec.issue`, `/prod.spec.epic` | Se `AREA=PRODUCT` (ou `POSITION` PM/TPM/GPM em `AREA=ENGINEERING`) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
29
- | Passo 4 › Menu genérico › opção B | `/eng.docs` | Se `AREA` não tiver menu próprio (menu genérico) e o usuário escolher a opção B (se existir; senão criar diretamente) |
30
- | Integração com CDD | `/jarvis-context-detect` | Se `ENABLE_CDD=true` no ENV.md, depois de o usuário selecionar a opção do menu e antes de iniciar o workflow escolhido |
22
+ | Passo 5 — Central docs | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md (Modo 1: Buscar Docs, só o recorte escolhido) |
23
+ | Passo 7 — Versões das ferramentas | `context7` (MCP: `resolve-library-id`, `query-docs`) | Se o MCP `context7` estiver disponível na sessão (até 5 ferramentas principais dos repositórios ativos); sem o MCP, pula em silêncio |
24
+ | Passo 9 — Resumo e próximos comandos | `/eng.start`, `/prod.spec` | Só sugeridos ao usuário no fim (não são executados pelo warm-up) |
31
25
 
32
26
  ---
33
27
 
34
- ## Passo 0 — Ler ENV.md (silenciosamente)
35
-
36
- Leia o arquivo `$IDE/ENV.md` e extraia as seguintes variáveis:
28
+ ## Passo 1 — Perfil (silencioso)
37
29
 
38
30
  ```bash
39
- grep -E "^(POSITION|SQUAD|HUB|AREA|WORKSPACE|WORKSPACE_REPOS|DOCS_FOLDER|RULES_FOLDER|FLOWS_FOLDER|TEMPLATES_FOLDER|MAX_AI_EXECUTION_PERCENTAGE|ENABLE_CDD)=" $IDE/ENV.md
40
- ```
41
-
42
- Variáveis que guiam o carregamento de contexto:
43
-
44
- | Variável | Uso |
45
- |----------|-----|
46
- | `POSITION` | Define profundidade e foco do contexto |
47
- | `HUB` | Define especialidade técnica prioritária |
48
- | `AREA` | Define domínio (ENGINEERING vs PRODUCT vs outros) |
49
- | `SQUAD` | Referência de squad para contexto do time |
50
- | `WORKSPACE` | Pasta do `$IDE/`. Vazio = nome dessa pasta |
51
- | `WORKSPACE_REPOS` | Allowlist. Vazio = todas as subpastas com `.git/` |
52
- | `DOCS_FOLDER` | Caminho base dos documentos do workspace |
53
- | `RULES_FOLDER` | Caminho base das regras |
54
- | `FLOWS_FOLDER` | Caminho base dos workflows |
55
- | `MAX_AI_EXECUTION_PERCENTAGE` | Calibra nível de autonomia |
56
- | `ENABLE_CDD` | Ativa/desativa calibração contextual |
57
-
58
- > **Não invente valores ausentes.** Se uma variável crítica não estiver definida, continue com o comportamento padrão indicado abaixo.
59
- >
60
- > `$IDE/ENV.md` pode estar num ancestral do cwd (workspace acima do repo aberto).
61
- > Se `WORKSPACE` estiver vazio, usar o nome da pasta que contém `$IDE/`.
62
- > Repos = `WORKSPACE_REPOS` ou scan de subpastas com `.git/`. Se houver mais de um, perguntar quais carregar nesta sessão (`ACTIVE_REPOS`). Um git na raiz = fluxo atual.
63
-
64
- ---
65
-
66
- ## Passo 0.5 — Reconhecimento do Stack Técnico (silenciosamente)
67
-
68
- Objetivo: garantir contexto completo do stack **antes** de qualquer workflow,
69
- para nunca inventar ou sugerir tecnologias fora do que o projeto usa.
70
-
71
- ### 1. Extrair variáveis de stack do ENV.md
72
-
73
- Além das variáveis de perfil (Passo 0), extrair todas as variáveis de tecnologia
74
- definidas no ENV.md — qualquer variável não relacionada a perfil de usuário com
75
- valor não vazio. Exemplos de padrões comuns:
76
-
77
- - Mensageria : `MESSAGE_BROKER`, `MESSAGE_BROKER_URL_API`, `MESSAGE_BROKER_API_AUTH`
78
- - Banco : `DB_*`, `DATABASE_*`
79
- - Cache : `CACHE_*`, `REDIS_*`
80
- - Outros serviços: qualquer var com `_URL`, `_HOST`, `_API` no nome
81
-
82
- > Não hardcode nomes de tecnologias. Leia o que está definido e infira a tech
83
- > pelo valor da variável (ex: `MESSAGE_BROKER=rabbitmq` → tech = RabbitMQ).
84
-
85
- ### 2. Para cada tecnologia identificada
86
-
87
- **a) Carregar documentação via context7:**
31
+ grep -E "^(POSITION|AREA|HUB|SQUAD|WORKSPACE|WORKSPACE_REPOS|PROD_MODE|ENABLE_CDD|CENTRAL_DOCS_STORAGE|[A-Z]+_SPECIALIZATIONS)=" $IDE/ENV.md
88
32
  ```
89
- mcp__context7__resolve-library-id → query: {nome da tecnologia}
90
- mcp__context7__query-docs → carregar docs relevantes
91
- ```
92
- → Usar a documentação como referência para toda a sessão.
93
-
94
- **b) Se houver URL de API de gerenciamento + credenciais:**
95
- - Consultar a API para entender a topologia real do serviço
96
- (ex: exchanges, filas e bindings ativos para RabbitMQ via management API)
97
- - Usar as variáveis `*_URL_API` + `*_API_AUTH` correspondentes
98
- - Registrar o que foi encontrado como contexto da sessão
99
33
 
100
- ### 3. Invariante de sessão — crítica
34
+ `$IDE/ENV.md` pode estar num ancestral do cwd. `WORKSPACE` vazio = nome da pasta que contém `$IDE/`. Não invente valores ausentes; não pergunte o que está no ENV.
101
35
 
102
- > 🔒 A partir deste passo, para toda a sessão:
103
- > - Trabalhar **somente** com as tecnologias identificadas aqui
104
- > - **Nunca sugerir alternativas tecnológicas** não presentes no stack identificado
105
- > - **Nunca inventar** configurações, topologias ou comportamentos não confirmados
106
- > via ENV, API ou codebase
107
- > - Exceção: **somente se o usuário solicitar explicitamente**
36
+ ## Passo 2 — Mapa de tecnologias (`CDD-MIND-MAP.md`)
108
37
 
109
- > Se nenhuma variável de stack for encontrada no ENV.md, pular silenciosamente.
38
+ O mapa é o **contexto de workspace**: stack e papel de cada repositório. Fica na raiz do workspace (ao lado do `AGENTS.md`), fora do versionamento. Formato e instruções de preenchimento: `$IDE/templates/cdd-mind-map-template.md`.
110
39
 
111
- ---
112
-
113
- ## Passo 1 — Determinar Perfil de Comunicação
114
-
115
- O perfil de comunicação é derivado de `POSITION` (conforme definido no `$IDE/taxonomy.md`).
116
- **Não use a lista abaixo como hardcode** — use-a como referência de interpretação semântica:
117
-
118
- | Categoria semântica | Exemplos de POSITION | Perfil de comunicação |
119
- |---------------------|---------------------|----------------------|
120
- | Técnico iniciante | JUNIOR, PLENO | `didático` — explicar decisões, incluir contexto |
121
- | Técnico sênior | SENIOR, TECH LEAD, SPECIALIST | `direto` — foco em trade-offs e riscos |
122
- | Gestão de produto | PM, TPM, GPM | `estratégico` — impacto e visão de produto |
123
- | Executivo | CTO e equivalentes | `estratégico` — visão de alto nível |
124
- | Não definido | — | `didático` (padrão conservador) |
40
+ 1. **Repositórios do workspace:** os de `WORKSPACE_REPOS` ou, se vazia, as subpastas com `.git/`; só a raiz com `.git` = projeto único (uma linha).
41
+ 2. **Mapa não existe:** infira cada repositório pela tabela `$IDE/skills/jarvis-init/assets/sinais-de-stack.md` e pela estrutura (papel), mostre a tabela e pergunte com `AskUserQuestion`: **Confirmar** | **Corrigir** | **Incluir informação**. Repita até confirmar. Então:
42
+ - grave `CDD-MIND-MAP.md` na raiz do workspace;
43
+ - garanta a linha no `.gitignore`: `grep -qxF 'CDD-MIND-MAP.md' .gitignore 2>/dev/null || echo 'CDD-MIND-MAP.md' >> .gitignore`;
44
+ - se o `AGENTS.md` da raiz não citar o mapa, acrescente uma linha:
45
+ `> Contexto de workspace: [CDD-MIND-MAP.md](CDD-MIND-MAP.md) (tecnologias e papel de cada repositório; lido pelo /warm-up).`
46
+ 3. **Mapa existe:** leia-o. Repositório com `.git` que não está no mapa → infira, valide com o usuário e acrescente só ele. Não reprocesse as linhas existentes.
125
47
 
126
- > O mapeamento exato de quais POSITIONs existem vem do `$IDE/taxonomy.md` — não assuma valores fora desse arquivo.
48
+ Nunca leia `.env*`, chaves nem credenciais.
127
49
 
128
- ---
129
-
130
- ## Passo 2 — Sincronizar Documentação Central (condicional)
50
+ ## Passo 3 — Repositórios ativos
131
51
 
132
- Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md, invocar o skill `jarvis-docs-central` via Skill tool para carregar **o que já foi implementado** no produto (funcionalidades `feature-*` e entregas recentes `delivery-*`). Os documentos de trabalho (PRD, FRD, ARD, RFC) ficam em `docs/jarvis/` e não estão no Central docs.
52
+ - Projeto único: segue sem perguntar.
53
+ - Workspace com vários: `AskUserQuestion` (multiSelect) **"Quais repositórios aquecer nesta sessão?"**, com papel e stack do mapa em cada opção → `ACTIVE_REPOS`.
133
54
 
134
- > ⚠️ **IMPORTANTE**: NÃO executar `jarvis docs sync` diretamente via Bash.
135
- > Usar sempre: **Skill tool → jarvis-docs-central (Modo 1: Buscar Docs)**
55
+ ## Passo 4 — Especialidades (em memória)
136
56
 
137
- O skill `jarvis-docs-central` gerencia:
138
- - O adaptador de `CENTRAL_DOCS_STORAGE` (pasta, com `git pull` quando a pasta é um clone)
139
- - Índice ausente (o squad ainda não tem consolidação)
140
- - Tratamento de erros
141
-
142
- **Invocação:**
143
- ```
144
- Skill tool: jarvis-docs-central
145
- Modo: 1 (Buscar Docs)
146
- Contexto: warm-up - sincronização inicial
147
- ```
57
+ 1. Áreas dos `ACTIVE_REPOS` pela coluna **Área** do mapa.
58
+ 2. `AskUserQuestion` (multiSelect) **"Quais áreas a tarefa envolve?"**, com as inferidas já marcadas.
59
+ 3. Aplique a regra de especializações (`eng.specializations-rules`) **só** nas áreas confirmadas: skill base + lista `{ÁREA}_SPECIALIZATIONS`. As das outras áreas não são carregadas.
148
60
 
149
- **Output esperado:**
150
- ```
151
- 🔄 Sincronizando docs de {SQUAD}/{WORKSPACE}...
152
- ✅ Docs sincronizados
153
- 📊 7 documentos disponíveis:
154
- - 4 funcionalidade(s)
155
- - 3 entrega(s) recente(s)
156
- ```
61
+ Tudo em memória: o `ENV.md` e qualquer configuração persistente **nunca** são alterados.
157
62
 
158
- **Comportamento:**
159
- - Se `CENTRAL_DOCS_STORAGE` vazio → pula silenciosamente
160
- - Se o `git pull` falhar (pasta com git) → avisa e lê a cópia local
161
- - Se `index.md` não existe → avisa que o squad ainda não tem consolidação (sugere `/eng.spec-consolidate --inicial`)
162
- - Se erro genérico → exibe mensagem clara e continua sem bloquear
63
+ ## Passo 5 — Central docs (condicional)
163
64
 
164
- Após sincronizar, exibir resumo dos documentos disponíveis:
165
- - PRDs compartilhados do produto
166
- - ARDs gerais e específicos do repo atual
167
- - RFCs relevantes
168
- - Dependências externas (outros produtos/squads)
65
+ Se `CENTRAL_DOCS_STORAGE` estiver vazio, pule. Senão, via Skill tool `jarvis-docs-central` (Modo 1):
169
66
 
170
- ---
67
+ 1. Leia só o índice `{SQUAD}/index.md`.
68
+ 2. `AskUserQuestion`: **"Qual produto ou funcionalidade a tarefa vai impactar?"** (opções do índice; "Nenhuma / tarefa nova").
69
+ 3. Leia **só** os `feature-*.md` escolhidos e os `delivery-*.md` desse recorte. Resuma em poucas linhas o comportamento atual e onde está no código.
171
70
 
172
- ## Passo 3 — Carregar Contexto Seletivo por AREA e HUB
71
+ Sem índice: avise que o squad ainda não tem consolidação (`/eng.spec-consolidate --inicial`) e siga. Erro: avise e siga, sem bloquear.
173
72
 
174
- **Regra fundamental**: os caminhos são construídos **dinamicamente** a partir dos valores lidos do ENV.md.
175
- Não use caminhos hardcoded. Não escaneie pastas inteiras.
73
+ ## Passo 6 — Entregas recentes
176
74
 
177
- ### 3.1 — Construir caminhos base a partir do ENV e taxonomy
75
+ Por repositório ativo, na branch alvo (`main`, `dev` ou a padrão do remoto):
178
76
 
179
77
  ```bash
180
- # 1. Ler AREA e HUB do ENV
181
- AREA=$(grep "^AREA=" $IDE/ENV.md | cut -d= -f2)
182
- HUB=$(grep "^HUB=" $IDE/ENV.md | cut -d= -f2)
183
-
184
- # 2. Ler prefixo da AREA no taxonomy (linha "prefix: xxx" abaixo do ### AREA)
185
- {prefix} = valor de "prefix:" definido sob ### {AREA} em $IDE/taxonomy.md
186
- {area} = lowercase(AREA)
187
-
188
- ex: AREA=ENGINEERING → prefix="eng", area="engineering"
189
- AREA=PRODUCT → prefix="prod", area="product"
190
- ```
191
-
192
- > Se o prefixo não estiver definido no taxonomy, usar `lowercase(AREA)` como fallback.
193
-
194
- ### 2.2 — Sequência de leitura (executar nessa ordem)
195
-
196
- **Sempre leia:**
197
- ```
198
- git log --oneline -3 ← commits recentes (independente de perfil)
199
- git status --short ← estado atual do repositório
200
- ```
201
-
202
- **Docs da área (tentar em ordem, parar no primeiro encontrado):**
203
- ```
204
- 1. $DOCS_FOLDER/{area}/index.md ← índice de docs da área (ex: docs/engineering/index.md)
205
- 2. $DOCS_FOLDER/index.md ← índice geral (fallback)
206
- 2. $DOCS_FOLDER/AGENTS.md ← resumo para agents geral (fallback)
207
- (não ler os docs em si — apenas o índice para mapear o que existe)
208
- ```
209
-
210
- **Regras da área:**
211
- ```
212
- $RULES_FOLDER/{area}/{prefix}-rules.md
213
- ex: $RULES_FOLDER/engineering/eng-rules.md
214
- $RULES_FOLDER/product/prod-rules.md
215
- ```
216
-
217
- **Regras do hub (adicionar ao contexto base, se existir):**
218
- ```
219
- $RULES_FOLDER/{area}/{hub}/{hub}-rules.md
220
- ex: $RULES_FOLDER/engineering/qa/qa-rules.md
221
- $RULES_FOLDER/engineering/ai/ai-rules.md
78
+ git -C {repo} log --merges -5 --format='%h %ad %s%n%b' --date=short {branch}
79
+ git -C {repo} show --stat --format= {hash} # só os arquivos tocados, sem diff
222
80
  ```
223
81
 
224
- **README (apenas para perfil didático ou quando não há docs/index.md):**
225
- ```
226
- README.md (raiz do projeto) ← visão geral do projeto
227
- ```
82
+ Sem merges (squash/rebase): use os 5 últimos commits e avise em uma linha. Registre título, descrição e arquivos tocados; destaque padrões ou decisões recentes que valem para a tarefa.
228
83
 
229
- ### 2.3 — Exemplos de caminhos gerados (ilustrativo)
84
+ ## Passo 7 — Versões das ferramentas (só com o MCP `context7`)
230
85
 
231
- | AREA | prefix | HUB | Caminhos tentados |
232
- |------|--------|-----|-------------------|
233
- | ENGINEERING | eng | QA | `docs/engineering/index.md` → `rules/engineering/eng-rules.md` → `rules/engineering/qa/qa-rules.md` |
234
- | ENGINEERING | eng | AI | `docs/engineering/index.md` → `rules/engineering/eng-rules.md` → `rules/engineering/ai/ai-rules.md` |
235
- | PRODUCT | prod | — | `docs/product/index.md` → `rules/product/prod-rules.md` |
86
+ Sem o MCP disponível, pule em silêncio. Com ele: para até **5** ferramentas principais dos repositórios ativos (coluna do mapa), `resolve-library-id` + `query-docs` só para a versão atual e mudanças relevantes. Uma linha por ferramenta: versão no projeto × atual.
236
87
 
237
- > **Importante**: Se um arquivo ou pasta não existir, ignore silenciosamente — não errar, não inventar.
238
- > Novos valores de AREA ou HUB adicionados ao taxonomy.md funcionam automaticamente sem alterar este workflow.
239
-
240
- ---
88
+ ## Passo 8 — Apelido e gravação
241
89
 
242
- ## Passo 3 — Resumo de Contexto Carregado
90
+ 1. `AskUserQuestion`: **"Qual apelido para este aquecimento?"**, com uma sugestão derivada dos repositórios e do recorte (ex.: `api-2-checkout`) e a opção de digitar. Kebab-case, sem acentos.
91
+ 2. Apelido já existe em `$SESSIONS_DIR/warm-ups/`: pergunte se sobrescreve ou escolhe outro.
92
+ 3. Grave `$SESSIONS_DIR/warm-ups/{apelido}/warm-up.md` pelo template `$IDE/templates/warm-up-template.md`. Sem tokens, e-mails nem valores do ENV.
243
93
 
244
- Após as leituras, exiba **somente** um resumo compacto:
94
+ ## Passo 9 — Resumo e próximos comandos
245
95
 
246
96
  ```
247
- ── Sessão iniciada ──────────────────────────────────────
248
- Workspace: {WORKSPACE}
249
- Perfil : {POSITION} · {HUB} · {SQUAD}
250
- Autonomia: {MAX_AI_EXECUTION_PERCENTAGE}%
251
- Stack : {lista das techs identificadas no ENV}
252
- Docs : {context7 carregado para cada tech + docs de área}
253
- Topologia: {resumo da consulta à API de gerenciamento, se disponível}
254
- Commits : {N} commits recentes carregados
255
- ─────────────────────────────────────────────────────────
256
- ```
257
-
258
- ---
259
-
260
- ## Passo 4 — Menu Adaptado por AREA
261
-
262
- O menu é determinado pelos valores de `POSITION`, `AREA` e `HUB` lidos do ENV.md.
263
-
264
- > ⚠️ **Ordem de precedência — verificar SEMPRE nesta sequência:**
265
- > 1. **POSITION** — se houver menu dedicado para o POSITION, usá-lo diretamente (ignora AREA+HUB)
266
- > 2. **AREA + HUB** — combinações específicas (DATA, QA, RPA)
267
- > 3. **AREA** — menu genérico da área
268
- > 4. **Genérico** — fallback para AREAs sem menu próprio
269
- >
270
- > **Nunca avaliar menus de AREA antes de verificar se o POSITION tem menu dedicado.**
271
-
272
- > Se o valor de AREA não tiver menu definido abaixo, use o **menu genérico**.
273
- > Novos valores de AREA adicionados ao taxonomy.md devem ganhar um menu correspondente aqui.
274
-
275
- ---
276
-
277
- ### Menu para POSITION=TECH LEAD (sobrepõe menu genérico de ENGINEERING)
97
+ 🔥 Warm-up "{apelido}" pronto
278
98
 
279
- > ℹ️ Usar este menu quando `POSITION=TECH LEAD` e `AREA=ENGINEERING`.
280
- > O Tech Lead é responsável pelos gates de qualidade do time.
99
+ 🗺️ Mapa: {n} repositórios ({criado | atualizado: +{repos} | sem mudança})
100
+ 📦 Ativos: {repo (papel, stack)} …
101
+ 🧩 Áreas: {áreas} · fora: {áreas descartadas}
102
+ 📚 Central docs: {recorte | não configurado}
103
+ 🔀 Entregas: {n} merges lidos
104
+ 🔧 Versões: {ferramenta x.y → atual} … | não consultado
281
105
 
106
+ ➡️ Próximos: /eng.start {KEY} · /prod.spec … (eles usam este aquecimento)
282
107
  ```
283
- Como você quer continuar?
284
-
285
- A: Iniciar sessão para codar (eng.start)
286
- B: Debug / Investigar problema (eng.debug)
287
- C: Criar ou iterar ARD (eng.create-ard)
288
- D: Criar ou iterar ARD desde o codebase (eng.create-ard-from-code)
289
- E: Abrir ou iterar RFC (eng.create-rfc)
290
- F: Fazer tech spec (eng.build-tech-spec)
291
- G: Revisar código / PR (eng.review)
292
- H: Documentar (eng.docs)
293
- I: Outro
294
- ```
295
-
296
- Roteamento:
297
- - A → `$FLOWS_FOLDER/engineering/eng.start.md`
298
- - B → `$FLOWS_FOLDER/engineering/eng.debug.md`
299
- - C → `$FLOWS_FOLDER/engineering/eng.create-ard.md`
300
- - D → `$FLOWS_FOLDER/engineering/eng.create-ard-from-code.md`
301
- - E → `$FLOWS_FOLDER/engineering/eng.create-rfc.md`
302
- - F → `$FLOWS_FOLDER/engineering/eng.build-tech-spec.md`
303
- - G → `$FLOWS_FOLDER/engineering/eng.review.md`
304
- - H → `$FLOWS_FOLDER/engineering/eng.docs.md`
305
- - I → perguntar e rotear dinamicamente
306
108
 
307
109
  ---
308
110
 
309
- ### Menu para POSITION=CTO (sobrepõe AREA)
111
+ ## Regras
310
112
 
311
- > ℹ️ Usar este menu para qualquer `AREA` quando `POSITION` é equivalente a CTO.
312
- > Foco estratégico: arquitetura, risco e decisões de alto impacto — sem granularidade operacional.
313
-
314
- ```
315
- Como você quer continuar?
316
-
317
- A: Revisar código / PR estratégico (eng.review)
318
- B: Criar ou iterar ARD (eng.create-ard)
319
- C: Abrir ou iterar RFC (eng.create-rfc)
320
- D: Fazer tech spec (eng.build-tech-spec)
321
- E: Outro
322
- ```
323
-
324
- Roteamento:
325
- - A → `$FLOWS_FOLDER/engineering/eng.review.md`
326
- - B → `$FLOWS_FOLDER/engineering/eng.create-ard.md`
327
- - C → `$FLOWS_FOLDER/engineering/eng.create-rfc.md`
328
- - D → `$FLOWS_FOLDER/engineering/eng.build-tech-spec.md`
329
- - E → perguntar e rotear dinamicamente
330
-
331
- ---
332
-
333
- ### Menu para AREA=ENGINEERING e HUB=DATA
334
-
335
- > ℹ️ Usar este menu quando `AREA=ENGINEERING` **e** `HUB=DATA`.
336
-
337
- ```
338
- Como você quer continuar?
339
-
340
- A: Criar pipeline novo (data.new-pipeline)
341
- B: Trabalhar com dados — onboarding de fonte, debug, dashboard/BI ou orquestração (eng-data)
342
- C: Criar contrato de dados (data.contract)
343
- D: Outro
344
- ```
345
-
346
- Roteamento:
347
- - A → `$FLOWS_FOLDER/engineering/data/data.new-pipeline.md`
348
- - B → skill `eng-data`
349
- - C → `$FLOWS_FOLDER/engineering/data/data.contract.md`
350
- - D → perguntar e rotear dinamicamente
351
-
352
- ---
353
-
354
- ### Menu para AREA=ENGINEERING e (HUB=QA ou Quality Champion)
355
-
356
- > ℹ️ Usar este menu quando `AREA=ENGINEERING` **e** uma das condições:
357
- > - `HUB=QA`
358
- > - O usuário atual (`USER` do ENV.md) constar em `members.md` com `Quality Champion` no campo Posição
359
- >
360
- > Para verificar se o usuário é Quality Champion:
361
- > ```bash
362
- > grep -i "$USER" members.md | grep -i "Quality Champion"
363
- > ```
364
- > Se retornar resultado → usuário é Quality Champion → usar este menu.
365
-
366
- ```
367
- Como você quer continuar?
368
-
369
- A: Mapear estratégia de testes para uma feature (qa.refinement-entry)
370
- B: Planejar capacidade QA da sprint (qa.sprint-planning)
371
- C: Sign-off de release (qa.release-signoff)
372
- D: Outro
373
- ```
374
-
375
- Roteamento:
376
- - A → `$FLOWS_FOLDER/engineering/qa/eng.qa-refinement-entry.md`
377
- - B → `$FLOWS_FOLDER/engineering/qa/eng.qa-sprint-planning.md`
378
- - C → `$FLOWS_FOLDER/engineering/qa/eng.qa-release-signoff.md`
379
- - D → perguntar e rotear dinamicamente
380
-
381
- ---
382
-
383
- ### Menu para AREA=ENGINEERING (qualquer HUB)
384
-
385
- ```
386
- Como você quer continuar?
387
-
388
- A: Iniciar sessão para codar (eng.start)
389
- B: Debug / Investigar problema (eng.debug)
390
- C: Criar ou iterar um ARD do zero ou desde um PRD (eng.create-ard)
391
- D: Criar ou iterar um ARD desde o codebase (eng.create-ard-from-code)
392
- E: Abrir ou iterar um RFC (eng.create-rfc)
393
- F: Fazer uma tech spec (eng.build-tech-spec)
394
- G: Revisar código / PR (eng.review)
395
- H: Documentar (eng.docs)
396
- I: Criar ou manter robô RPA (eng.rpa.robot) — skill técnica, não depende de squad
397
- J: Outro
398
- ```
399
-
400
- Roteamento:
401
- - A → `$FLOWS_FOLDER/engineering/eng.start.md`
402
- - B → `$FLOWS_FOLDER/engineering/eng.debug.md`
403
- - C → `$FLOWS_FOLDER/engineering/eng.create-ard.md`
404
- - D → `$FLOWS_FOLDER/engineering/eng.create-ard-from-code.md`
405
- - E → `$FLOWS_FOLDER/engineering/eng.create-rfc.md`
406
- - F → `$FLOWS_FOLDER/engineering/eng.build-tech-spec.md`
407
- - G → `$FLOWS_FOLDER/engineering/eng.review.md`
408
- - H → `$FLOWS_FOLDER/engineering/eng.docs.md`
409
- - I → `$FLOWS_FOLDER/engineering/eng.rpa.robot.md`
410
- - J → perguntar e rotear dinamicamente
411
-
412
- ### Menu para AREA=PRODUCT
413
-
414
- ```
415
- Como você quer continuar?
416
-
417
- A: Criar nova PRD (prod.spec.prd)
418
- B: Criar novo FRD (prod.spec.frd)
419
- C: Criar story, task ou issue (prod.spec.issue)
420
- D: Detalhar épico (prod.spec.epic)
421
- E: Outro
422
- ```
423
-
424
- Roteamento:
425
- - A → `$FLOWS_FOLDER/product/prod.spec.prd.md`
426
- - B → `$FLOWS_FOLDER/product/prod.spec.frd.md`
427
- - C → `$FLOWS_FOLDER/product/prod.spec.issue.md`
428
- - D → `$FLOWS_FOLDER/product/prod.spec.epic.md`
429
- - E → perguntar e rotear dinamicamente
430
-
431
- ### Menu genérico (qualquer AREA além de ENGINEERING/PRODUCT)
432
-
433
- ```
434
- Como você quer continuar?
435
-
436
- A: Perguntar algo sobre o projeto
437
- B: Criar documentação
438
- C: Outro
439
- ```
440
-
441
- Roteamento:
442
- - A → responder com base no contexto carregado
443
- - B → `$FLOWS_FOLDER/engineering/eng.docs.md` (se existir) ou criar diretamente
444
- - C → perguntar qual atividade e rotear dinamicamente
445
-
446
- ### Ajuste de menu por POSITION (sobrepõe AREA quando aplicável)
447
-
448
- | POSITION semântico | Ajuste no menu |
449
- |-------------------|----------------|
450
- | CTO e equivalentes | Menu estratégico (arquitetura e risco) — ver seção "Menu para POSITION=CTO" acima |
451
- | TECH LEAD em AREA=ENGINEERING | Menu completo de engenharia — ver seção "Menu para POSITION=TECH LEAD" acima |
452
- | PM, TPM, GPM em AREA=ENGINEERING | Mostrar menu PRODUCT mesmo estando na área ENGINEERING |
453
-
454
- ---
455
-
456
- ## Passo 5 — Limite de Execução (MAX_AI_EXECUTION_PERCENTAGE)
457
-
458
- `MAX_AI_EXECUTION_PERCENTAGE` é um **limite hard de execução** — a IA para obrigatoriamente quando atinge esse percentual do plano e **sempre pergunta** antes de continuar, mesmo com valores altos.
459
-
460
- **Regra de cálculo:**
461
- ```
462
- tarefas_executáveis = floor(total_tarefas × (MAX_AI_EXECUTION_PERCENTAGE / 100))
463
-
464
- ex: 10 tarefas, MAX=70 → IA executa 7, para, pergunta ao usuário
465
- ex: 10 tarefas, MAX=90 → IA executa 9, para, pergunta ao usuário
466
- ex: 10 tarefas, MAX=100 → IA executa todas, mas ainda reporta e pergunta ao final
467
- ```
468
-
469
- **Ao atingir o limite — sempre, sem exceção:**
470
- 1. Parar a execução imediatamente
471
- 2. Reportar o que foi feito
472
- 3. Listar o que resta com sugestões de como o humano pode executar
473
- 4. Perguntar explicitamente como o usuário deseja prosseguir
474
- 5. Nunca continuar sem resposta explícita do usuário
475
-
476
- **Tarefas restantes (acima do limite):**
477
- - A IA **nunca executa** as tarefas restantes de forma autônoma — nem que o usuário peça "continua tudo"
478
- - A IA **pode assistir**: explicar, sugerir comandos, preparar código para revisão
479
- - Quem executa é o humano
480
-
481
- **O nível de autonomia calibra o comportamento *dentro* do limite, mas não o substitui:**
482
-
483
- | Valor | Nível | O que muda dentro do limite |
484
- |-------|-------|-----------------------------|
485
- | ≥ 90% | alto | Executa sem pedir confirmação a cada passo |
486
- | 70–89% | médio | Pausa em decisões críticas antes de continuar |
487
- | 60–69% | baixo | Apresenta opções e aguarda aprovação a cada passo |
488
- | Não definido | médio | Usa 80% como padrão |
489
-
490
- Declare ao usuário: limite configurado, quantas tarefas isso representa e o que ficará para execução humana.
491
-
492
- ---
493
-
494
- ## Regras do Warm-up
495
-
496
- ### Nunca faça
497
- - Ler uma pasta inteira para mapear contexto — use o índice ou leia arquivos específicos
498
- - Inventar valores de ENV não definidos
499
- - Recusar contexto de outra área: Dev/TL/PM podem carregar rules de engenharia **e** de produto (autonomia ponta-a-ponta)
500
- - Perguntar informações que já constam no ENV.md
501
- - Sugerir tecnologia alternativa não presente no stack identificado no Passo 0.5
502
- - Assumir topologia de serviços sem consultar ENV ou API de gerenciamento
503
-
504
- ### Sempre faça
505
- - Ler ENV.md primeiro, antes de qualquer outra coisa
506
- - Carregar stack técnico do ENV antes de qualquer workflow (Passo 0.5)
507
- - Usar context7 para documentação das tecnologias identificadas no stack
508
- - Consultar API de gerenciamento quando disponível (`*_URL_API` + `*_API_AUTH` no ENV)
509
- - Usar `$RULES_FOLDER`, `$DOCS_FOLDER`, `$FLOWS_FOLDER` em vez de caminhos hardcoded
510
- - Exibir o resumo de contexto antes do menu
511
- - Rotear para o workflow correto sem repetir perguntas já respondidas
512
- - Ignorar silenciosamente arquivos que não existem
513
-
514
- ---
515
-
516
- ## Integração com CDD
517
-
518
- Se `ENABLE_CDD=true` no ENV.md, **após o usuário selecionar a opção do menu**,
519
- execute `/jarvis-context-detect` antes de iniciar o workflow escolhido.
520
-
521
- Se `ENABLE_CDD=false` ou não definido, prossiga diretamente para o workflow.
522
-
523
- ---
113
+ ### Nunca
114
+ - Reler rules (já estão no contexto) ou ler uma pasta inteira
115
+ - Alterar o `ENV.md` ou qualquer configuração persistente
116
+ - Ler `.env*`, chaves ou credenciais
117
+ - Inventar stack, papel ou versão: inferência sempre passa pela validação do usuário
118
+ - Consultar o `context7` sem o MCP ou para mais de 5 ferramentas
524
119
 
525
- ## Notas de Versão
526
-
527
- | Versão | Mudança |
528
- |--------|---------|
529
- | 1.0 | Leitura genérica de `$RULES_FOLDER/` e `$DOCS_FOLDER/` — sem filtro por perfil |
530
- | 1.1 | Carregamento seletivo por `POSITION` + `HUB`; menu adaptado; integração com CDD |
531
- | 1.2 | Menu específico para `AREA=ENGINEERING` + `HUB=QA` com roteamento para workflows `eng-qa-*` |
532
- | 1.3 | Menu QA expandido: sprint planning (G) + release sign-off (H); condição estendida para `POSITION=QUALITY_CHAMPION` |
533
- | 1.4 | Menu específico para `AREA=ENGINEERING` + `HUB=DATA`: pipeline novo, onboarding de fonte, debug, dashboard, contrato |
534
- | 1.5 | Opção de robô RPA no menu de ENGINEERING (skill técnica, sem squad dedicado) |
535
- | 1.6 | Menu específico para `POSITION=TECH LEAD`: engenharia completa + workflows de segurança em destaque; Menu para `POSITION=CTO`: foco estratégico em segurança, arquitetura e risco |
536
- | 1.7 | **Bugfix**: menus de POSITION movidos para antes dos menus de AREA — corrige TL recebendo menu genérico sem opções de segurança; bloco de precedência explícita no início do Passo 4 |
537
- | 1.8 | Removidas as opções de workflow de segurança dos menus de TECH LEAD e CTO (eng.security-audit/review/incident foram descontinuados — ver `skills/security-skills-deleted.md`) |
538
- | 1.9 | Menu de `HUB=DATA` consolidado: `eng-data-onboard`/`eng-data-debug`/`eng-data-bi`/`eng-data-orchestrator` foram descontinuados — virou uma única opção (`eng-data`, a base nova) — ver `skills/data-skills-deleted.md` |
120
+ ### Sempre
121
+ - Uma pergunta por decisão, com `AskUserQuestion` (sem a ferramenta, a tabela de `prod-rules`)
122
+ - Ignorar em silêncio arquivos e passos opcionais que não existem
123
+ - Terminar com o resumo e os próximos comandos