jarvis-ai-framework 5.1.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.
- package/agents/product/prod.discovery-interviewer.md +18 -83
- package/package.json +1 -1
- package/rules/AGENTS.md +3 -2
- package/rules/product/prod.spec-rules.md +2 -2
- package/rules-on-demand/warm-up-consume-rules.md +30 -0
- package/skills/AGENTS.md +1 -1
- package/skills/jarvis-init/SKILL.md +6 -0
- package/templates/AGENTS.md +2 -0
- package/templates/ENV-template.md +1 -1
- package/templates/cdd-mind-map-template.md +26 -0
- package/templates/product/prod-discovery-template.md +39 -71
- package/templates/warm-up-template.md +45 -0
- package/workflows/engineering/eng.start.md +4 -0
- package/workflows/product/prod.spec.ard.md +2 -0
- package/workflows/product/prod.spec.breakdown.md +2 -0
- package/workflows/product/prod.spec.clarify.md +2 -0
- package/workflows/product/prod.spec.discovery.md +56 -116
- package/workflows/product/prod.spec.epic.md +2 -0
- package/workflows/product/prod.spec.frd.md +2 -0
- package/workflows/product/prod.spec.issue.md +2 -0
- package/workflows/product/prod.spec.md +2 -0
- package/workflows/product/prod.spec.prd.md +2 -0
- package/workflows/warm-up.md +68 -483
package/workflows/warm-up.md
CHANGED
|
@@ -1,538 +1,123 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
version: "
|
|
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
|
|
7
|
+
model_justification: Leitura seletiva e perguntas de escopo — não requer raciocínio complexo
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# warm-up —
|
|
10
|
+
# warm-up — preparação de contexto da tarefa
|
|
11
11
|
|
|
12
12
|
## Objetivo
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
22
|
-
| Passo
|
|
23
|
-
| Passo
|
|
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
|
|
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|
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
135
|
-
> Usar sempre: **Skill tool → jarvis-docs-central (Modo 1: Buscar Docs)**
|
|
55
|
+
## Passo 4 — Especialidades (em memória)
|
|
136
56
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
175
|
-
Não use caminhos hardcoded. Não escaneie pastas inteiras.
|
|
73
|
+
## Passo 6 — Entregas recentes
|
|
176
74
|
|
|
177
|
-
|
|
75
|
+
Por repositório ativo, na branch alvo (`main`, `dev` ou a padrão do remoto):
|
|
178
76
|
|
|
179
77
|
```bash
|
|
180
|
-
|
|
181
|
-
|
|
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
|
-
|
|
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
|
-
|
|
84
|
+
## Passo 7 — Versões das ferramentas (só com o MCP `context7`)
|
|
230
85
|
|
|
231
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
94
|
+
## Passo 9 — Resumo e próximos comandos
|
|
245
95
|
|
|
246
96
|
```
|
|
247
|
-
|
|
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
|
-
|
|
280
|
-
|
|
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
|
-
|
|
111
|
+
## Regras
|
|
310
112
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
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
|
-
|
|
526
|
-
|
|
527
|
-
|
|
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
|