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.
@@ -44,7 +44,7 @@ Este comando cria a **branch, commita as alterações e abre um Merge Request**.
44
44
  | Skills recomendados | `/eng-global-docs-write` | Se houver necessidade de atualizar documentação junto do PR |
45
45
  | Agentes recomendados (opcional) | `eng.qa.test-planner` (agente) | Se houver dúvidas sobre cobertura de testes ou mudanças significativas |
46
46
  | Fase 4 › 4.4 Criar MR/PR via adapter | `jarvis vcs create-merge` (CLI do Jarvis) | Só se o usuário responder **Sim** na Fase 4.3: abre o MR/PR conforme `VERSION_CONTROL` ou o host do `origin` |
47
- | Fase 6 › 6.2 Link do MR | `/eng-global-task-comment` | Depois de o MR ser criado (só com o Sim da 4.3): um único comentário no card com o link do MR, seguindo o Passo 6 do skill `eng-global-pr` (freelance pula) |
47
+ | Fase 5 › 5.2 Link do MR | `/eng-global-task-comment` | Depois de o MR ser criado (só com o Sim da 4.3): um único comentário no card com o link do MR, seguindo o Passo 6 do skill `eng-global-pr` (freelance pula) |
48
48
 
49
49
  ---
50
50
 
@@ -134,7 +134,7 @@ Branch de destino: a **`Branch base:`** do `architecture.md` (`{BRANCH_BASE}`).
134
134
  git checkout {TASK_MANAGER_KEY}-{titulo-em-kebab-case}
135
135
  ```
136
136
 
137
- ### 2.2 Verificar Commits da Branch
137
+ ### 2.3 Verificar Commits da Branch
138
138
 
139
139
  ```bash
140
140
  git log {BRANCH_BASE}..HEAD --oneline
@@ -211,7 +211,7 @@ Mostre o `pull-request.md` (título e resumo das seções) e pergunte com `AskUs
211
211
 
212
212
  Pergunte com `AskUserQuestion` (**Sim / Não**): **"Publicar o PR agora?"**
213
213
 
214
- - **Não:** nada é enviado. O `pull-request.md` fica na sessão para você publicar quando quiser (à mão ou rodando o `/eng.pr` de novo). Pule para a Fase 7, com a mensagem "PR não publicado".
214
+ - **Não:** nada é enviado. O `pull-request.md` fica na sessão para você publicar quando quiser (à mão ou rodando o `/eng.pr` de novo). Pule para a Fase 7 (sem `daily.md`, que só existe com PR aberto), com a mensagem "PR não publicado".
215
215
  - **Sim:** faça o push (Fase 3) e crie o MR/PR (4.4).
216
216
 
217
217
  ### 4.4 Criar MR/PR via adapter
@@ -248,15 +248,15 @@ Se o CLI `jarvis` não estiver instalado no repo alvo, usar `node {caminho-do-cl
248
248
 
249
249
  ---
250
250
 
251
- ## Fase 6: Atualizar Board
251
+ ## Fase 5: Atualizar Board
252
252
 
253
253
  Pular se `TASK_MANAGER` estiver vazio (freelance).
254
254
 
255
- ### 6.1 Mover Card
255
+ ### 5.1 Mover Card
256
256
 
257
257
  Mova o card para a etapa equivalente a "em revisão" no seu board. Quem assumiu o card o move; não é preciso esperar o TECH LEAD ou o PM.
258
258
 
259
- ### 6.2 Link do MR no card
259
+ ### 5.2 Link do MR no card
260
260
 
261
261
  Siga o Passo 6 do skill `eng-global-pr`: um único comentário no card, com o link e a branch. É o único comentário do `eng.pr` no card.
262
262
 
@@ -264,11 +264,11 @@ Siga o Passo 6 do skill `eng-global-pr`: um único comentário no card, com o li
264
264
 
265
265
  ## Fase 6: Processar Code Review
266
266
 
267
- ### 7.1 Aguardar Comentários
267
+ ### 6.1 Aguardar Comentários
268
268
 
269
269
  Aguarde 3-5 minutos para a ferramenta de code review processar.
270
270
 
271
- ### 7.2 Analisar Comentários
271
+ ### 6.2 Analisar Comentários
272
272
 
273
273
  Para cada comentário:
274
274
 
@@ -276,7 +276,7 @@ Para cada comentário:
276
276
  2. Avaliar se pode ser explicado/ignorado
277
277
  3. Apresentar ao usuário
278
278
 
279
- ### 7.3 Aplicar Correções
279
+ ### 6.3 Aplicar Correções
280
280
 
281
281
  Se necessário:
282
282
 
@@ -291,7 +291,7 @@ git push
291
291
 
292
292
  ## Fase 7: Conclusão
293
293
 
294
- ### 8.1 Registrar Métricas de Lead Time
294
+ ### 7.1 Registrar Métricas de Lead Time
295
295
 
296
296
  Calcule e registre o lead time (tempo desde eng.start até PR criado):
297
297
 
@@ -323,7 +323,34 @@ else
323
323
  fi
324
324
  ```
325
325
 
326
- ### 8.2 Mensagem Final
326
+ ### 7.2 Registrar o esforço em `daily.md`
327
+
328
+ Regras em `$IDE/rules-on-demand/engineering/eng.pr-rules.md` (seção "daily.md"); template em `$IDE/templates/engineering/daily-template.md`. Arquivo: `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/daily.md`, **só na sessão, nunca publicado**.
329
+
330
+ 1. **Há PR aberto?** Vale o criado na 4.4 ou o PR da branch que já existe e está aberto (CLI/adapter do vendor, ex.: `gh pr view --json state,number,url`). Sem PR aberto (Não na 4.3 e nenhum PR existente), **não gere** o `daily.md` e siga para a 7.3. Se não for possível confirmar, pergunte.
331
+ 2. **Data:** pergunte com `AskUserQuestion`: **"Registrar o esforço com qual data?"** → `Hoje ({AAAA-MM-DD})` | `Outra data` (o usuário digita `AAAA-MM-DD`).
332
+ 3. **Dias trabalhados** (só se o período entre a data do `.timestamp_start` e a data do registro tiver mais de um dia), uma pergunta por vez:
333
+ - se o período tiver sábado ou domingo: **"Você trabalhou em {datas de sábado/domingo}?"** (Sim / Não; com várias datas, pode responder por data);
334
+ - **"Houve feriado no período?"** → Não | Sim (o usuário informa as datas);
335
+ - **"Teve algum dia em que você não trabalhou no período?"** → Não | Sim (o usuário informa as datas).
336
+
337
+ Dias trabalhados = datas do período − fim de semana não trabalhado − feriados − dias não trabalhados. Registre no `worked_days` do frontmatter.
338
+ 4. ***Post mortem*:**
339
+ - **automático** se o `context.md` tiver `tipo: bugfix` ou `hotfix`, ou se houver **mais de 1 dia trabalhado**;
340
+ - nos outros casos, pergunte (**Sim / Não**): **"A tarefa exigiu investigação ou análise longa?"**
341
+ 5. **Nova execução** (o `daily.md` já existe): entenda o contexto e pergunte com `AskUserQuestion`: **"De onde veio a mudança desde o último registro?"**
342
+ - **Ajuste meu:** reescreva o registro **focando no que foi entregue**, sem mencionar troca de escopo nem retrabalho.
343
+ - **Pedido da liderança** (gerente, PM, tech lead): documente na seção "Mudança de escopo" o que mudou, quem pediu (como o usuário informar) e o impacto.
344
+
345
+ Atualize a seção da data escolhida. Se a data for nova, acrescente uma seção `## AAAA-MM-DD`.
346
+ 6. **Gerar** a descrição detalhada **e** a linha de timesheet, juntas.
347
+ - **Fontes:** `architecture.md`, `plan.md`, `gate-checklist.md`, `pull-request.md`, `git log {BRANCH_BASE}..HEAD`, o PR/MR e o card.
348
+ - **Descrição:** um parágrafo narrativo (contexto técnico, trabalho realizado, decisões), mais o *post mortem* quando couber (problema e causa raiz, investigação, solução/direcionamento), com detalhe suficiente para embasar questionamentos futuros.
349
+ - **Timesheet:** **uma única linha** (`{TASK_KEY} — {resumo}`).
350
+ - Sem e-mails, tokens nem valores de variáveis.
351
+ 7. **Revisão conjunta:** mostre a descrição e a linha de timesheet **juntas** e pergunte com `AskUserQuestion`: `[Aprovar]` / `[Ajustar]`. Com Ajustar, aplique os ajustes pontuais **nas duas** e mostre de novo, até aprovar.
352
+
353
+ ### 7.3 Mensagem Final
327
354
 
328
355
  ```
329
356
  ✅ MERGE REQUEST CRIADO COM SUCESSO!
@@ -340,6 +367,9 @@ fi
340
367
 
341
368
  {LEAD_TIME_MSG}
342
369
 
370
+ 📝 Daily: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/daily.md
371
+ 🕒 Timesheet: {LINHA_DE_TIMESHEET_APROVADA}
372
+
343
373
  📌 Próximos passos:
344
374
  1. /eng.spec-consolidate {TASK_MANAGER_KEY} → registrar no Central docs o que esta entrega implementou
345
375
  2. Aguardar revisão do time e processar os comentários do code review
@@ -372,6 +402,7 @@ fi
372
402
  - ✅ Preencher template do MR completamente
373
403
  - ✅ Mover card para "In Review"
374
404
  - ✅ Gerar o `pull-request.md` na sessão e só publicar com o **Sim** (Fase 4.3)
405
+ - ✅ Com PR aberto, registrar o esforço no `daily.md` (7.2), com revisão conjunta da descrição e do timesheet
375
406
  - ✅ **Nunca apagar a sessão:** o `/eng.spec-consolidate` precisa dela
376
407
 
377
408
  ---
@@ -121,6 +121,10 @@ CONTEXT_PROFILE:
121
121
  O perfil detectado será apresentado automaticamente pelo skill.
122
122
  Se o usuário solicitar ajustes, re-execute com `--override`.
123
123
 
124
+ ### Warm-up (se houver)
125
+
126
+ Se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o: o aquecimento escolhido entra no `context.md` gerado acima e a pasta dele é apagada. Sem aquecimentos, siga sem perguntar.
127
+
124
128
  ---
125
129
 
126
130
  ## Fase 0.5: Advisor (opcional)
@@ -25,6 +25,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
25
25
  #$ARGUMENTS
26
26
  </requirement>
27
27
 
28
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
29
+
28
30
  ## Quando usar
29
31
  - Depois de um PRD ou FRD aprovado, quando falta registrar os requisitos arquiteturais da iniciativa
30
32
  - Quando o PM precisa deixar claro para a engenharia o que a arquitetura precisa atender (volumes, prazos, integrações, regras de negócio com impacto técnico)
@@ -26,6 +26,8 @@ Utilize o `$ARGUMENTS` como ponto de partida (caminho da spec, nome da feature o
26
26
  #$ARGUMENTS
27
27
  </requirement>
28
28
 
29
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
30
+
29
31
  ## Quando usar
30
32
 
31
33
  - Documento de Requisitos de Produto ou Documento de Requisitos Funcionais monolítico
@@ -8,6 +8,8 @@ model_tier: medium
8
8
  model_justification: Esclarecimento de specs requer análise estruturada e formulação de perguntas, mas segue processo bem definido
9
9
  ---
10
10
 
11
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
12
+
11
13
  ## Clarify workflow
12
14
 
13
15
  > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
@@ -1,166 +1,106 @@
1
1
  ---
2
2
  name: prod.spec.discovery
3
- description: Investigação inicial de uma ideia: entrevista o usuário sobre a ideia, o problema, os requisitos iniciais e a viabilidade, sem chutar, e registra um rascunho estruturado com veredito e próximo passo sugerido.
3
+ description: Investigação inicial de uma ideia: mostra primeiro o que entendeu, faz poucas perguntas de alto impacto (com recomendação), propõe abordagens e registra um rascunho com scorecard, veredito e próximo passo sugerido, sem chutar.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
6
  recommended_model: opus
7
7
  model_tier: high
8
- model_justification: Discovery exige conduzir uma entrevista adaptativa, julgar evidências e registrar hipóteses sem presumir dados
8
+ model_justification: Discovery exige separar fatos de suposições, escolher as perguntas de maior impacto e julgar evidências sem presumir dados
9
9
  ---
10
10
 
11
11
  # Discovery (investigação inicial de uma ideia)
12
12
 
13
- > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. `[Explicar melhor]` e `[Dúvida]` **não contam** no orçamento de perguntas. Vazio ou `product-led`: siga este fluxo como está.
14
14
  >
15
15
  > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
16
 
17
- Este comando conduz uma **entrevista** para investigar uma ideia ainda crua e registrar o resultado em um **rascunho estruturado**: o problema, o que precisaria ser verdade e se parece viável.
17
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
18
18
 
19
- Antes de iniciar, revise as regras invioláveis em `$PROD_RULES/**/*`.
20
-
21
- - **Agente:** `$IDE/agents/product/prod.discovery-interviewer.md` conduz a entrevista; siga a postura dele.
22
- - **Template:** `$PROD_TEMPLATES/prod-discovery-template.md` define a estrutura do arquivo. Siga a estrutura exata do template.
23
- - **Guia humano (termos por extenso):** `docs/produto/prod.spec.discovery.md`.
24
-
25
- Utilize o `$ARGUMENTS` como ponto de partida (a ideia, ou o caminho ou nome de um discovery existente para retomar):
19
+ Investiga uma ideia crua com **poucas perguntas certas** e grava um **rascunho** em `$PROD_DOCS/discoveries/discovery-{id}-{nome}.md`, pelo template `$PROD_TEMPLATES/prod-discovery-template.md`. Postura: agente `$IDE/agents/product/prod.discovery-interviewer.md`. Guia humano: `docs/produto/prod.spec.discovery.md`. Siga `$PROD_RULES` (ENV, idioma, `AskUserQuestion` uma pergunta por vez).
26
20
 
27
21
  <requirement>
28
22
  #$ARGUMENTS
29
23
  </requirement>
30
24
 
31
- ## O que este comando é e o que não é
32
-
33
- O discovery é um **rascunho**: registra o que se sabe, o que é hipótese e o que ainda é lacuna. Nada nele é verdade absoluta.
34
-
35
- Ele **não** gera PRD, FRD, épico, issue, tarefas, histórias, critérios de aceitação nem estimativas, e **não** escreve código. Se o usuário pedir qualquer uma dessas coisas, explique que é outra etapa e indique o comando certo (`$PROD_FLOWS/prod.spec.prd.md`, `prod.spec.frd.md`, `prod.spec.epic.md`, `prod.spec.issue.md`; para implementar, o fluxo `/eng.start`).
36
-
37
- ## Regras do framework
38
-
39
- O comando e o agente seguem obrigatoriamente `$PROD_RULES` (`prod-rules.md`):
40
-
41
- - Validar o `$IDE/ENV.md` antes de começar (se estiver ausente ou incompleto, aplicar o fluxo do `prod-rules.md`)
42
- - Idioma: português do Brasil por padrão, ou o idioma da interação do usuário
43
- - Perguntas: use o `AskUserQuestion` se estiver disponível; senão, o formato de tabela do `prod-rules.md`. **Uma pergunta por vez**
44
- - Confirmar com o usuário o caminho e o nome antes de salvar arquivo
25
+ **Não é** PRD, FRD, épico, issue, histórias, critérios de aceitação, estimativa nem código. Pedido disso: diga que é outra etapa e indique o comando (`/prod.spec.prd`, `frd`, `epic`, `issue`; para implementar, `/eng.start`).
45
26
 
46
27
  ### Skills invocados durante o workflow
47
28
 
48
29
  | Passo | Skill | Condição |
49
30
  |-------|-------|----------|
50
- | Regras do framework / Passo 4 — A entrevista | `prod.discovery-interviewer` (agente) | Sempre — conduz a entrevista, e o comando segue a postura dele |
51
- | Passo 2 — Reconhecer o projeto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado |
52
- | Passo 2 — Reconhecer o projeto | `/jarvis-context-detect` | Para calibrar a profundidade da entrevista |
53
- | Passo 2 — Reconhecer o projeto | `/eng-backend-arch-c4` | Só com a confirmação do usuário; o retorno é tratado como suposição a validar |
54
- | Passo 2 — Reconhecer o projeto | `/eng-platform` + `PLATFORM_SPECIALIZATIONS` | Só com a confirmação do usuário; o retorno é tratado como suposição a validar |
55
-
56
- ## Passo 0 — Entender o que foi pedido
31
+ | Passo 1 — Ler em silêncio | `prod.discovery-interviewer` (agente) | Sempre — a postura da entrevista |
32
+ | Passo 1 — Ler em silêncio | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado (o que já foi implementado) |
33
+ | Passo 1 — Ler em silêncio | `/eng-backend-arch-c4` | Só com a confirmação do usuário; o retorno é suposição a validar |
34
+ | Passo 1 — Ler em silêncio | `/eng-platform` + `PLATFORM_SPECIALIZATIONS` | Só com a confirmação do usuário; o retorno é suposição a validar |
57
35
 
58
- 1. **Sem `$ARGUMENTS`:** pergunte qual é a ideia antes de qualquer outra coisa.
59
- 2. **Com `$ARGUMENTS` apontando um discovery existente** (caminho ou nome): vá para a **Retomada** (Passo 1).
60
- 3. **Com uma ideia em `$ARGUMENTS`:** use esse texto como ponto de partida e **não repita perguntas** cuja resposta já está nele. Antes de criar um arquivo novo, procure em `$PROD_DOCS/discoveries/` um discovery **parecido** (leia só o título e a seção Ideia). Se achar, avise e pergunte se o usuário quer retomar aquele ou começar um novo, sem sobrescrever nada em silêncio.
61
- 4. Se já existir PRD ou FRD em `$PROD_DOCS` que cubra a ideia, avise qual é e pergunte se o usuário quer seguir com o discovery (por exemplo, para reavaliar) ou ir para `$PROD_FLOWS/prod.spec.clarify.md`.
36
+ ## Passo 0 — Entrada
62
37
 
63
- ## Passo 1 — Retomada de um discovery existente
38
+ Sem ideia: pergunte qual é, antes de tudo. Caminho, nome ou id de um discovery existente: vá para a **Retomada**. Uma ideia: siga para o Passo 1.
64
39
 
65
- 1. Leia o arquivo inteiro.
66
- 2. **Resuma onde parou:** temas cobertos, hipóteses de importância alta e certeza baixa, perguntas em aberto e o histórico das sessões.
67
- 3. Continue a entrevista pelos **temas incompletos** e pelas **perguntas em aberto**, sem repetir o que já foi respondido.
68
- 4. Acrescente uma linha ao **Histórico das sessões** e atualize `updated_at` e `last_editor`.
69
- 5. Se o discovery está `cancelled` ou com `verdict: do_not_proceed`, avise o motivo registrado e só reabra com confirmação do usuário.
40
+ ## Passo 1 — Ler em silêncio
70
41
 
71
- ## Passo 2 — Reconhecer o projeto
42
+ Antes de perguntar qualquer coisa, leia: o `$ARGUMENTS`; em `$PROD_DOCS`, os PRD/FRD que já cobrem a ideia e os discoveries parecidos (só título e Entendimento/Ideia); o código e os commits, se ajudarem a viabilidade; o Central docs, se configurado. Não repita perguntas cuja resposta já está em algum desses.
72
43
 
73
- Antes de perguntar, consulte o que já existe:
44
+ ## Passo 2 — Entendimento (uma confirmação)
74
45
 
75
- - Documentos em `$PROD_DOCS` (PRDs, FRDs e discoveries), para não duplicar o que já está especificado
76
- - O código e os últimos commits, quando ajudarem a embasar a viabilidade
77
- - `jarvis-docs-central`, se `CENTRAL_DOCS_STORAGE` estiver configurado
78
- - `jarvis-context-detect`, para calibrar a profundidade da entrevista
79
- - `eng-backend-arch-c4` e `eng-platform` (+ `PLATFORM_SPECIALIZATIONS`) são skills de engenharia: só consulte **com a confirmação do usuário**, e trate o retorno como **suposição a validar**, não como fato
46
+ Mostre **"O que entendi"** e peça **uma** confirmação:
80
47
 
81
- ## Passo 3 — Criar o arquivo
48
+ - **Dito por você** | **Suposição minha** (com a origem) | **Lacuna** (marque as críticas: mudam o veredito)
49
+ - **Tamanho** e orçamento de perguntas:
82
50
 
83
- Crie o arquivo **logo no início** da entrevista, para que uma conversa interrompida possa ser retomada:
51
+ | `size` | Quando | Perguntas | Próximo passo típico |
52
+ |---|---|---|---|
53
+ | `small` | Trabalho pequeno e já claro | 0–2 | `/prod.spec.issue` |
54
+ | `bounded` | Funcionalidade delimitada num produto existente | até 5 | `/prod.spec.frd` |
55
+ | `broad` | Ideia ampla, com várias entregas | até 8 | `/prod.spec.prd` e depois `/prod.spec.breakdown` |
84
56
 
85
- 1. **Pasta:** `$PROD_DOCS/discoveries/`. Se não existir, crie-a e comece no `001`, confirmando o caminho com o usuário.
86
- 2. **Id:** sequencial, pela listagem dos arquivos `discovery-*.md` da pasta (maior número + 1, com 3 dígitos).
87
- 3. **Nome:** `{nome}` em kebab-case, sem acentos, derivado da ideia. Proponha e peça a confirmação do usuário.
88
- 4. **Arquivo:** `$PROD_DOCS/discoveries/discovery-{id}-{nome}.md`, pelo template, com `status: in_review` e `verdict` vazio.
89
- 5. **Metadados:** `created_at`, `updated_at`, `created_by` e `last_editor` (do `ENV.md`: `USER`).
57
+ - **Arquivo:** `discovery-{id}-{nome}.md` (id = maior número da pasta + 1, 3 dígitos; nome em kebab-case, sem acentos). Pasta inexistente: crie e comece no `001`.
58
+ - **Avisos:** PRD/FRD que já cobre a ideia (sugira `/prod.spec.clarify`); discovery parecido.
90
59
 
91
- ## Passo 4 — A entrevista
60
+ `AskUserQuestion`: **Confirmar (Recomendada)** | **Corrigir** | **Retomar o parecido** (só se houver). Ao confirmar, crie o arquivo pelo template (`status: in_review`, `verdict` vazio, `size`, datas, `created_by`/`last_editor` = `USER`) com o Entendimento e o Problema já preenchidos.
92
61
 
93
- Conduza como o agente `prod.discovery-interviewer`:
62
+ ## Passo 3 — Perguntas de alto impacto
94
63
 
95
- 1. Explique em poucas linhas que vai entrevistar, quais temas serão cobertos (ideia, problema, requisitos, viabilidade) e que o usuário pode responder "não sei" a qualquer momento.
96
- 2. **Uma pergunta por vez.** Se o usuário não responde ou diz "não sei", não repita a pergunta: registre "não informado" e siga.
97
- 3. Trate o roteiro abaixo como **perguntas-semente**, não como lista fixa: adapte a próxima pergunta ao que já foi respondido e priorize as de maior impacto na decisão de seguir ou não.
98
- 4. **Aprofunde** respostas rasas ("por quê?", "para quem?", "com que frequência?", "me dá um exemplo real", "o que acontece hoje?"). Diante de uma afirmação sem evidência ("todo mundo quer"), pergunte qual é a evidência e registre se é dado, observação ou suposição.
99
- 5. **Aponte contradições**, entre respostas ou com o que foi encontrado no projeto, e peça que o usuário resolva.
100
- 6. **Levante o que o usuário provavelmente não considerou**: quem mais é impactado, custo de manutenção, o que acontece se der errado, a alternativa mais simples.
101
- 7. Ao cobrir um tema, **resuma** o que entendeu e peça confirmação antes de seguir. Em seguida, **atualize o arquivo** (Passo 5).
64
+ - Pergunte **só lacunas que mudam o veredito**, da mais para a menos impactante. Nada de roteiro fixo.
65
+ - Cada pergunta, com `AskUserQuestion`: **"Pergunta N de até M"**, **Por que importa** (uma frase), opções com a **(Recomendada)** primeiro e o motivo da recomendação.
66
+ - **"Não sei"**: registre como lacuna e siga, sem repetir.
67
+ - **Default razoável** (formato, padrão de mercado, comportamento comum): não pergunte; registre como **suposição explícita**.
68
+ - Peça evidência ou aponte contradição **só** quando a resposta mudar o veredito.
69
+ - **Teto atingido:** `AskUserQuestion` **Encerrar (Recomendada)** | **Mais perguntas**.
70
+ - Atualize o arquivo ao fim do bloco (Entendimento, Problema, `updated_at`).
102
71
 
103
- ### Temas e perguntas-semente
72
+ ## Passo 4 — Abordagens
104
73
 
105
- | Tema | Perguntas-semente |
106
- |---|---|
107
- | **Ideia** | O que é, em uma frase? Para quem? |
108
- | **Problema** | Qual é o problema (sem falar de solução)? Quem sofre com ele e em que situação? Como se resolve hoje? Que evidência existe? Por que agora? Como saberemos que funcionou? |
109
- | **Hipóteses** | O que precisaria ser verdade para isso funcionar? Quais dessas coisas você tem certeza e quais são palpite? Como confirmaríamos cada uma? |
110
- | **Viabilidade** | Valor: alguém vai querer e usar? Usabilidade: as pessoas conseguem usar? Técnica: o que já existe no projeto ajuda ou atrapalha? Negócio: custo, prazo e risco fazem sentido? |
111
- | **Alternativas e riscos** | E se não fizéssemos nada? Existe algo pronto que resolva? O que pode dar errado? Do que isso depende? |
74
+ Proponha **2–3** abordagens, sempre com **a menor coisa que funciona** e **não fazer / usar algo existente**, com prós, contras, riscos e dependências. Indique a **recomendada** e peça a confirmação numa pergunta (Concordo (Recomendada) | Prefiro outra | Ajustar).
112
75
 
113
- ## Passo 5 — Manter o arquivo
76
+ ## Passo 5 — Scorecard, veredito e próximo passo
114
77
 
115
- - Ao fim de **cada tema**, atualize as seções correspondentes do arquivo e o `updated_at`.
116
- - Registre cada sessão no **Histórico das sessões** (data e o que foi coberto).
117
- - Na tabela de **Hipóteses**, registre sempre a **origem** (dado, observação do usuário ou suposição).
118
- - **Nunca** grave credenciais, tokens nem dados pessoais de clientes: o arquivo é versionado.
119
- - Uma entrevista interrompida deixa o arquivo com `status: in_review` e `verdict` vazio, com os temas já cobertos.
78
+ 1. **Scorecard:** Valor, Usabilidade, Técnica e Negócio → `forte`, `adequado`, `fraco` ou `desconhecido`, com uma linha de justificativa.
79
+ 2. **Veredito** (recomendação, não aprovação): `proceed` (sem lacuna crítica) · `investigate_more` (lacuna crítica aberta ou lente crítica `desconhecido`) · `do_not_proceed` (motivo; `status: cancelled`).
80
+ 3. **Próximo passo**, sempre, com o **comando pronto com o id** (ex.: `/prod.spec.frd discovery-002`). **Nunca** o execute: o usuário pode escolher outro caminho ou parar. Pelo tamanho (tabela do Passo 2); `investigate_more` → retomar este discovery pelas lacunas; lacuna crítica técnica → `/eng.light-arch` ou `/eng.create-rfc` (só sugerir); `do_not_proceed` → arquivar, mantendo o registro.
120
81
 
121
- ## Passo 6 — Não chute (regra inviolável)
82
+ 4. Linha no **Histórico** (data, "N de até M" perguntas, lacunas pendentes).
122
83
 
123
- - Quando faltar uma informação (público, volume, custo, prazo, restrição técnica, comportamento de usuários, estado atual do código), **não presuma**: pergunte, busque no projeto ou registre como **lacuna**.
124
- - Todo fato citado indica a origem (resposta do usuário, arquivo do projeto ou documentação consultada). O que não tem origem entra como **suposição a validar**.
125
- - Se o usuário pedir "preencha o que faltar" ou "assuma o padrão", registre o item como **suposição explícita**, nunca como fato, e não a use para sustentar o veredito.
126
- - Quando a viabilidade técnica depender de bibliotecas, APIs ou serviços, consulte a documentação atual (por exemplo, Context7), não a memória.
127
- - Uma **lacuna crítica nunca** resulta em `proceed`.
84
+ ## Retomada
128
85
 
129
- ## Passo 7 — Encerrar
86
+ 1. Leia o arquivo **inteiro** e resuma onde parou: lacunas abertas, perguntas já usadas, veredito.
87
+ 2. `cancelled` ou `do_not_proceed`: mostre o motivo e só reabra com confirmação.
88
+ 3. **Formato antigo** (tem as seções "Hipóteses" ou "Perguntas em aberto"): converta para o template novo **no mesmo caminho** (mesmo id e nome, para os `related_discovery` continuarem válidos) e avise em uma linha. Mapeamento: Ideia → Entendimento (frase); Hipóteses → suposições (com a origem); Perguntas em aberto → lacunas; Alternativas e riscos → Abordagens; Viabilidade → Scorecard (alto/médio/baixo → forte/adequado/fraco); Histórico das sessões → Histórico. Defina o `size` no Entendimento.
89
+ 4. Siga pelo Passo 3 com o orçamento restante, depois os Passos 4 e 5.
130
90
 
131
- 1. Quando achar que tem informação suficiente, **proponha encerrar** e pergunte se o usuário quer acrescentar algo.
132
- 2. Complete o documento: viabilidade por lente (sinal alto, médio ou baixo, com justificativa), alternativas e riscos, perguntas em aberto e o histórico.
133
- 3. **Veredito** (em `verdict`), sempre como **recomendação**, nunca como aprovação:
134
- - `proceed`: vale especificar; sem lacuna crítica aberta
135
- - `investigate_more`: há lacuna crítica; liste o que falta
136
- - `do_not_proceed`: informe o motivo; mude o `status` para `cancelled`
137
- 4. **Próximo passo sugerido**, **sempre**, qualquer que seja o veredito (comando recomendado, motivo e, se houver, alternativa). É **só uma sugestão**: mostre o **comando pronto com o id deste discovery** (por exemplo `/prod.spec.prd discovery-002`) para o usuário usá-lo como insumo, **nunca execute o comando sozinho**, e deixe claro que o usuário pode escolher outro caminho ou parar ali.
91
+ ## Não chute (regra inviolável)
138
92
 
139
- ### Mapa de escolha do próximo passo
140
-
141
- | O que o discovery revelou | Próximo passo sugerido |
142
- |---|---|
143
- | Ideia ampla, com várias entregas | `/prod.spec.prd` e depois `/prod.spec.breakdown` |
144
- | Funcionalidade delimitada dentro de um produto existente | `/prod.spec.frd` |
145
- | Trabalho pequeno e já claro | `/prod.spec.issue` |
146
- | Lacunas críticas ou veredito `investigate_more` | Retomar este discovery, com as perguntas em aberto |
147
- | Lacuna crítica na viabilidade técnica | Investigação técnica no fluxo de engenharia (`/eng.light-arch` ou `/eng.create-rfc`), sugerida sem acioná-la |
148
- | Veredito `do_not_proceed` | Arquivar a ideia, mantendo o registro |
93
+ - Faltou informação (público, volume, custo, prazo, restrição técnica, estado do código): pergunte, busque no projeto ou registre como **lacuna**. Nunca complete com "o que costuma ser".
94
+ - Todo fato tem origem (usuário, arquivo do projeto ou documentação). Sem origem, é **suposição**.
95
+ - "Preencha o que faltar" ou "assuma o padrão": registre como **suposição explícita**; ela nunca sustenta o veredito.
96
+ - Bibliotecas, APIs e serviços: consulte a documentação atual (`context7`, se o MCP estiver disponível), não a memória.
97
+ - **Lacuna crítica nunca dá `proceed`.** Nunca grave credenciais, tokens nem dados pessoais de clientes.
149
98
 
150
99
  ## Casos extremos
151
100
 
152
101
  | Situação | O que fazer |
153
102
  |---|---|
154
- | Ideia vaga demais ("melhorar o sistema") | Peça um recorte mínimo (quem, qual dor, em qual fluxo); se o usuário não conseguir, o veredito é `investigate_more` |
155
- | Ideia grande demais (várias funcionalidades) | Sinalize no documento e recomende, no próximo passo, a decomposição (`/prod.spec.prd` e `/prod.spec.breakdown`) ou separar em discoveries menores, sem forçar |
156
- | Viabilidade técnica depende de conhecimento que você não tem | Registre como lacuna nas perguntas em aberto, indicando quem pode responder, sem afirmar viabilidade |
157
- | Pasta `discoveries/` inexistente | Crie a pasta e o arquivo `001`, confirmando o caminho |
158
- | Ideia já coberta por PRD ou FRD existente | Avise qual documento cobre e pergunte como seguir |
159
- | Discovery com `do_not_proceed` | Mantenha o arquivo como registro da decisão |
160
-
161
- ## Limites
162
-
163
- - Pedido de PRD, FRD, épico ou issue: indique o comando correto, sem gerar o documento
164
- - Pedido de tarefas, histórias, critérios de aceitação ou estimativas: recuse, por ser outra etapa
165
- - Pedido de implementação: recuse; o discovery só investiga e não escreve código
166
- - A entrevista é sempre com o usuário que executou o comando (não entrevista terceiros)
103
+ | Ideia vaga ("melhorar o sistema") | Peça um recorte mínimo (quem, qual dor, em qual fluxo); sem recorte, `investigate_more` |
104
+ | Ideia grande demais | `size: broad`; sugira `/prod.spec.prd` + `/prod.spec.breakdown` ou discoveries menores |
105
+ | Viabilidade técnica fora do seu conhecimento | Lacuna crítica, com quem pode responder; não afirme viabilidade |
106
+ | Entrevista interrompida | O arquivo fica `in_review`, `verdict` vazio; a Retomada continua dali. A entrevista é só com quem executou o comando |
@@ -23,6 +23,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
23
23
  #$ARGUMENTS
24
24
  </requirement>
25
25
 
26
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
27
+
26
28
  ## Quando usar
27
29
  - Ao dividir grandes recursos ou PRDs em partes gerenciáveis
28
30
  - Quando o trabalho abrange vários sprints ou iterações
@@ -23,6 +23,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
23
23
  #$ARGUMENTS
24
24
  </requirement>
25
25
 
26
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
27
+
26
28
  ## Quando usar
27
29
  - Quando é necessário documentar requisitos funcionais detalhados para uma feature
28
30
  - Antes do desenvolvimento para garantir clareza sobre o que deve ser construído
@@ -22,6 +22,8 @@ Uma issue é a menor unidade de trabalho que pode ser feita. Ela deve entregar v
22
22
 
23
23
  Um grupo de histórias de um mesmo assunto podem formar um épico.
24
24
 
25
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
26
+
25
27
  ## Quando Usar
26
28
  - Ao decompor épicos em histórias de usuário implementáveis
27
29
  - Criar tarefas técnicas
@@ -14,6 +14,8 @@ model_justification: Especificações de produto requerem compreensão de requis
14
14
 
15
15
  Estas instruções ajudam a orientar o usuário que deseja começar a construir uma especificação. Esta especificação pode variar desde um PRD, história de usuário até tarefas. Devemos orientá-lo nessa construção de forma que a especificação, seja ela macro ou micro seja criada de acordo com as instruções e padrões do projeto.
16
16
 
17
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
18
+
17
19
  ## Quando usar
18
20
  - Esse comando serve para unificar a criação de todos os tipos de especificações do projeto.
19
21
  - Ao iniciar uma nova especificação de projeto ou modificar um PRD existente
@@ -23,6 +23,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
23
23
  #$ARGUMENTS
24
24
  </requirement>
25
25
 
26
+ > 🔥 **Warm-up**: se `$SESSIONS_DIR/warm-ups/` tiver aquecimentos, leia `$IDE/rules-on-demand/warm-up-consume-rules.md` e siga-o antes de começar (grava em `$SESSIONS_DIR/prod/{id do documento}/context.md`).
27
+
26
28
  ## Quando usar
27
29
  - Ao iniciar uma nova especificação de PRD (Product Requirment Document)
28
30
  - Precisar modificar um PRD existente