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.
- 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/engineering/eng.pr-rules.md +15 -0
- 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/engineering/daily-template.md +55 -0
- package/templates/product/prod-discovery-template.md +39 -71
- package/templates/warm-up-template.md +45 -0
- package/workflows/engineering/eng.pr.md +42 -11
- 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
|
@@ -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
|
|
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.
|
|
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
|
|
251
|
+
## Fase 5: Atualizar Board
|
|
252
252
|
|
|
253
253
|
Pular se `TASK_MANAGER` estiver vazio (freelance).
|
|
254
254
|
|
|
255
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
267
|
+
### 6.1 Aguardar Comentários
|
|
268
268
|
|
|
269
269
|
Aguarde 3-5 minutos para a ferramenta de code review processar.
|
|
270
270
|
|
|
271
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
|
51
|
-
| Passo
|
|
52
|
-
| Passo
|
|
53
|
-
| Passo
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
44
|
+
## Passo 2 — Entendimento (uma confirmação)
|
|
74
45
|
|
|
75
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
62
|
+
## Passo 3 — Perguntas de alto impacto
|
|
94
63
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
72
|
+
## Passo 4 — Abordagens
|
|
104
73
|
|
|
105
|
-
|
|
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 —
|
|
76
|
+
## Passo 5 — Scorecard, veredito e próximo passo
|
|
114
77
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
82
|
+
4. Linha no **Histórico** (data, "N de até M" perguntas, lacunas pendentes).
|
|
122
83
|
|
|
123
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
|
155
|
-
| Ideia grande demais
|
|
156
|
-
| Viabilidade técnica
|
|
157
|
-
|
|
|
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
|