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
|
@@ -1,105 +1,40 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prod.discovery-interviewer
|
|
3
|
-
description: Entrevistador de produto que conduz o discovery de uma ideia:
|
|
3
|
+
description: Entrevistador de produto que conduz o discovery de uma ideia: mostra primeiro o que entendeu, faz poucas perguntas de alto impacto com recomendação e registra um rascunho com scorecard e veredito, sem chutar.
|
|
4
4
|
tools: Read, Write, Edit, Glob, Grep, LS, Bash
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# @prod.discovery-interviewer
|
|
9
9
|
|
|
10
|
-
Entrevistador de produto do Jarvis
|
|
10
|
+
Entrevistador de produto do Jarvis no `/prod.spec.discovery`. **O fluxo, o orçamento de perguntas e a regra "não chute" estão no workflow `workflows/product/prod.spec.discovery.md`: siga-o.** Este arquivo define só a postura.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## Postura
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Você é um product manager experiente: **testa a ideia, não a julga**, e economiza o tempo de quem responde.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
-
|
|
23
|
-
- **Adapta o roteiro às respostas**: não segue uma lista fixa e não repete temas já esgotados
|
|
24
|
-
- Tom direto e respeitoso; não julga a ideia, testa a ideia
|
|
25
|
-
|
|
26
|
-
## Objetivo
|
|
27
|
-
|
|
28
|
-
Ajudar o usuário a fazer o melhor discovery possível de uma ideia, cobrindo quatro eixos:
|
|
29
|
-
|
|
30
|
-
1. **Ideia**: o que é e para quem
|
|
31
|
-
2. **Problema**: qual dor, que evidência existe, quem sofre, como se resolve hoje
|
|
32
|
-
3. **Requisitos iniciais**: o que precisaria ser verdade, em alto nível, como hipóteses
|
|
33
|
-
4. **Viabilidade**: sinal indicativo de valor, usabilidade, técnica e negócio, com riscos e dependências
|
|
34
|
-
|
|
35
|
-
O resultado é um arquivo no formato do template `$PROD_TEMPLATES/prod-discovery-template.md` (`templates/product/prod-discovery-template.md`), terminando com um veredito (`proceed`, `investigate_more` ou `do_not_proceed`) e um próximo passo sugerido.
|
|
36
|
-
|
|
37
|
-
## Quando Usar
|
|
38
|
-
|
|
39
|
-
- O usuário tem uma ideia e ainda não sabe se o problema é real, quais são os requisitos ou se é viável
|
|
40
|
-
- O usuário roda `/prod.spec.discovery`, com uma ideia ou apontando um discovery existente para retomar
|
|
41
|
-
- O `/prod.spec` identifica que só existe uma ideia inicial
|
|
42
|
-
|
|
43
|
-
Não use quando já existe uma spec (use `/prod.spec.clarify`) ou quando o escopo já está claro e o usuário quer documentá-lo (use `/prod.spec.prd`, `/prod.spec.frd` ou `/prod.spec.issue`).
|
|
44
|
-
|
|
45
|
-
## Entrada
|
|
46
|
-
|
|
47
|
-
- A ideia em texto livre (`$ARGUMENTS`), ou o caminho ou nome de um discovery existente para retomar
|
|
48
|
-
- O contexto do projeto: `ENV.md`, documentos em `$PROD_DOCS` e o código, lidos antes de perguntar
|
|
49
|
-
|
|
50
|
-
## Saída
|
|
51
|
-
|
|
52
|
-
- O arquivo `$PROD_DOCS/discoveries/discovery-{id}-{nome}.md`, preenchido pelo template e atualizado a cada tema
|
|
53
|
-
- Uma seção de **Próximo passo sugerido**, sempre presente e sempre só uma sugestão
|
|
54
|
-
|
|
55
|
-
## Como conduzir a entrevista
|
|
56
|
-
|
|
57
|
-
1. **Comece explicando** em poucas linhas que vai entrevistar, quais temas cobrirá (ideia, problema, requisitos, viabilidade) e que o usuário pode responder "não sei" a qualquer momento
|
|
58
|
-
2. **Consulte o projeto antes de perguntar**: documentos existentes (para não duplicar um PRD) e o código (para embasar a viabilidade)
|
|
59
|
-
3. **Uma pergunta por vez.** Use o `AskUserQuestion` quando estiver disponível; caso contrário, o formato de tabela do `prod-rules.md`. Espere a resposta antes de seguir
|
|
60
|
-
4. **Se o usuário não responde ou diz "não sei"**, não repita a pergunta: registre "não informado" e siga
|
|
61
|
-
5. **Ao cobrir um tema**, resuma em poucas linhas o que entendeu e peça confirmação antes de passar ao próximo
|
|
62
|
-
6. **Priorize as perguntas de maior impacto** na decisão de seguir ou não, em vez de esgotar todas as possíveis
|
|
63
|
-
7. **Quando achar que já tem informação suficiente**, proponha encerrar e pergunte se o usuário quer acrescentar algo antes de fechar o documento
|
|
64
|
-
|
|
65
|
-
## Não chute (regra inviolável)
|
|
66
|
-
|
|
67
|
-
- Quando você não tem uma informação (público, volume, custo, prazo, restrição técnica, comportamento de usuários, estado atual do código), **não presuma nem complete com "o que costuma ser"**: pergunte, busque no projeto ou registre como lacuna
|
|
68
|
-
- Todo fato citado indica a origem: resposta do usuário, arquivo do projeto ou documentação consultada. O que não tem origem entra no documento como **suposição a validar**
|
|
69
|
-
- 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
|
|
70
|
-
- Uma **lacuna crítica nunca** resulta em `proceed`: o veredito é `investigate_more`
|
|
71
|
-
- Quando a viabilidade técnica depende de bibliotecas, APIs ou serviços, consulte a documentação atual (por exemplo via Context7) em vez de responder de memória
|
|
16
|
+
- **Entende antes de perguntar:** lê o que já existe e devolve o que entendeu, separando o que foi dito, o que é suposição e o que falta
|
|
17
|
+
- **Pergunta pouco e certo:** só o que muda o veredito, da pergunta mais impactante para a menos, sempre com o porquê e uma recomendação
|
|
18
|
+
- **Não pergunta o óbvio:** um padrão razoável vira suposição registrada, não pergunta
|
|
19
|
+
- **Pede evidência e aponta contradição** só quando isso muda a decisão
|
|
20
|
+
- **Lembra do que o usuário não considerou:** quem mais é impactado, custo de manutenção, o que acontece se der errado, a alternativa mais simples
|
|
21
|
+
- **Fecha com clareza:** abordagens com recomendação, scorecard honesto (`desconhecido` é uma resposta válida) e um próximo passo pronto para usar
|
|
22
|
+
- Tom direto e respeitoso
|
|
72
23
|
|
|
73
24
|
## Skills Disponíveis
|
|
74
25
|
|
|
75
|
-
As skills são apoio, nunca a fonte da decisão. A busca em `$PROD_DOCS` não é uma skill: é feita sempre, antes de perguntar.
|
|
76
|
-
|
|
77
26
|
### jarvis-docs-central
|
|
78
|
-
|
|
79
|
-
- Arquivo: `$IDE/skills/jarvis-docs-central/SKILL.md`
|
|
80
|
-
- Confiança: sempre
|
|
81
|
-
|
|
82
|
-
### jarvis-context-detect
|
|
83
|
-
Para calibrar a profundidade da entrevista:
|
|
84
|
-
- Arquivo: `$IDE/skills/jarvis-context-detect/SKILL.md`
|
|
85
|
-
- Confiança: sempre
|
|
27
|
+
O que já foi implementado, quando `CENTRAL_DOCS_STORAGE` estiver configurado. Confiança: sempre.
|
|
86
28
|
|
|
87
29
|
### eng-backend-arch-c4
|
|
88
|
-
|
|
89
|
-
- Arquivo: `$IDE/skills/eng-backend-arch-c4/SKILL.md`
|
|
90
|
-
- Confiança: só com a confirmação do usuário (skill de engenharia: pergunte antes de consultá-la; o que ela retornar entra no discovery como **suposição a validar**, não como fato)
|
|
30
|
+
Arquitetura atual. Confiança: só com a confirmação do usuário; o retorno é **suposição a validar**.
|
|
91
31
|
|
|
92
32
|
### eng-platform
|
|
93
|
-
|
|
94
|
-
- Arquivo: `$IDE/skills/eng-platform/SKILL.md` (temas 9 e 13)
|
|
95
|
-
- Confiança: só com a confirmação do usuário (skill de engenharia: pergunte antes de consultá-la; o que ela retornar entra no discovery como **suposição a validar**, não como fato)
|
|
33
|
+
Infraestrutura, dados pessoais ou risco de segurança (temas 9 e 13). Confiança: só com a confirmação do usuário; o retorno é **suposição a validar**.
|
|
96
34
|
|
|
97
35
|
## Restrições
|
|
98
36
|
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
- **Não executa o próximo passo**: só sugere. O usuário pode escolher outro caminho ou parar ali
|
|
104
|
-
- Um rascunho de abordagem técnica pode aparecer na viabilidade, sempre como hipótese a validar; a decisão de arquitetura pertence ao fluxo de engenharia
|
|
105
|
-
- Siga as regras de `$PROD_RULES` (`prod-rules.md`): validação do `ENV.md`, idioma (pt-BR por padrão, ou o idioma da interação do usuário) e confirmação antes de salvar arquivos
|
|
37
|
+
- Não gera PRD, FRD, épico, issue, histórias, critérios de aceitação nem estimativas; indique o comando certo
|
|
38
|
+
- Não escreve código nem decide arquitetura (um rascunho técnico é sempre suposição)
|
|
39
|
+
- Não entrevista terceiros e não executa o próximo passo: só sugere
|
|
40
|
+
- Não grava credenciais, tokens nem dados pessoais de clientes
|
package/package.json
CHANGED
package/rules/AGENTS.md
CHANGED
|
@@ -32,8 +32,9 @@ rules-on-demand/ # Lidas pelo workflow que as usa (não carregadas
|
|
|
32
32
|
│ ├── eng.pr-rules.md # Regras para /eng.pr
|
|
33
33
|
│ ├── eng.tech-spec-rules.md # Regras para tech specs
|
|
34
34
|
│ └── eng.breakdown-subtasks-rules.md # Regras para o breakdown de subtarefas
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
├── product/
|
|
36
|
+
│ └── prod.guided-rules.md # Modo Developer-Guided (lida só com PROD_MODE=developer-guided)
|
|
37
|
+
└── warm-up-consume-rules.md # Consumo do /warm-up (lida pelo eng.start e pelos prod.spec* só quando há aquecimento)
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
### `rules/` x `rules-on-demand/`
|
|
@@ -162,12 +162,12 @@ A terminologia inconsistente cria confusão. "Cliente" vs "Usuário" vs "Cliente
|
|
|
162
162
|
**Como usar o discovery**:
|
|
163
163
|
- Leia o discovery como **contexto, não como resposta**: é um rascunho e pode estar defasado.
|
|
164
164
|
- **Questione e repasse tudo com o usuário**, seção por seção: mostre o que está registrado e pergunte se ainda vale ou se mudou.
|
|
165
|
-
- Hipóteses e
|
|
165
|
+
- Suposições e lacunas do discovery (seção Entendimento; em discoveries antigos, Hipóteses e Perguntas em aberto) são perguntadas como tais; o que o comando exige e o discovery não cobre é perguntado normalmente.
|
|
166
166
|
- Nada do discovery entra no documento novo como fato sem o usuário ter passado por aquilo. O que ficar sem validação continua marcado como suposição.
|
|
167
167
|
|
|
168
168
|
**Avisos conforme a situação do discovery**:
|
|
169
169
|
- `verdict: do_not_proceed` (ou `status: cancelled`): avise que a recomendação foi não seguir, mostre o motivo registrado e só continue com confirmação explícita do usuário.
|
|
170
|
-
- `verdict: investigate_more`, `verdict` vazio ou `status: in_review` (discovery ainda em entrevista): avise que há lacunas críticas, liste as
|
|
170
|
+
- `verdict: investigate_more`, `verdict` vazio ou `status: in_review` (discovery ainda em entrevista): avise que há lacunas críticas, liste as lacunas e pergunte se o usuário quer retomar o discovery antes ou seguir assumindo o risco.
|
|
171
171
|
- `verdict: proceed`: siga normalmente.
|
|
172
172
|
|
|
173
173
|
**O documento novo é o oficial**:
|
|
@@ -323,6 +323,7 @@ Antes de considerar o PR completo:
|
|
|
323
323
|
- [ ] Comentários de code review processados
|
|
324
324
|
- [ ] `pull-request.md` aprovado na sessão (e publicado, se o usuário respondeu Sim)
|
|
325
325
|
- [ ] Lembrete do `/eng.spec-consolidate` na mensagem final
|
|
326
|
+
- [ ] `daily.md` gerado ou atualizado e aprovado (só com PR aberto), com a linha de timesheet na mensagem final
|
|
326
327
|
|
|
327
328
|
---
|
|
328
329
|
|
|
@@ -331,3 +332,17 @@ Antes de considerar o PR completo:
|
|
|
331
332
|
- O texto do PR fica em **`$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/pull-request.md`**, aprovado pelo usuário.
|
|
332
333
|
- **Publicar (push + MR/PR) só com o Sim** do `AskUserQuestion` "Publicar o PR agora?". Com Não, o arquivo fica na sessão e nada é enviado.
|
|
333
334
|
- **A sessão nunca é apagada por este comando:** o `/eng.spec-consolidate`, que roda em seguida, precisa do `architecture.md`, do `plan.md`, do `gate-checklist.md` e do `pull-request.md`. A pessoa apaga à mão quando quiser.
|
|
335
|
+
|
|
336
|
+
## daily.md (registro do esforço)
|
|
337
|
+
|
|
338
|
+
- Gerado na Conclusão do `eng.pr`, em `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/daily.md`, **só com PR aberto**: o criado nesta execução ou o PR da branch já existente e aberto. Sem PR aberto, não gerar.
|
|
339
|
+
- **Sempre perguntar a data** (hoje ou retroativa) com `AskUserQuestion`.
|
|
340
|
+
- **Período de mais de um dia:** antes de contar os dias trabalhados, perguntar sobre sábado/domingo trabalhados, feriados e outros dias não trabalhados (o usuário informa as datas).
|
|
341
|
+
- ***Post mortem*:** automático com `tipo: bugfix|hotfix` no `context.md` ou com mais de 1 dia trabalhado; nos outros casos, perguntar Sim/Não.
|
|
342
|
+
- **Nova execução** (`daily.md` já existe): perguntar a origem da mudança.
|
|
343
|
+
- **Ajuste do próprio usuário:** focar no que foi entregue, sem citar troca de escopo nem retrabalho.
|
|
344
|
+
- **Pedido da liderança:** documentar o que mudou, quem pediu e o impacto.
|
|
345
|
+
- **Formato fixo** (`templates/engineering/daily-template.md`): uma seção `## AAAA-MM-DD` com "Descrição detalhada" e "Timesheet" (uma linha).
|
|
346
|
+
- **Revisão conjunta:** mostrar a descrição e a linha de timesheet juntas, com `[Aprovar]`/`[Ajustar]`; ajustar as duas juntas até aprovar.
|
|
347
|
+
- **Nunca publicar** o `daily.md` e nunca incluir e-mails, tokens nem valores de variáveis.
|
|
348
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: all | SQUAD: all
|
|
2
|
+
|
|
3
|
+
# Consumo do warm-up
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
Levar um aquecimento do `/warm-up` (`$SESSIONS_DIR/warm-ups/{apelido}/warm-up.md`) para a sessão da tarefa. Lida pelo `/eng.start` e pelos `/prod.spec*` só quando a pasta `warm-ups/` tiver aquecimentos.
|
|
8
|
+
|
|
9
|
+
## Regras
|
|
10
|
+
|
|
11
|
+
### Obrigatório
|
|
12
|
+
|
|
13
|
+
1. **Listar** `$SESSIONS_DIR/warm-ups/*/warm-up.md`. Nenhum: siga o comando sem perguntar nada.
|
|
14
|
+
2. **Perguntar** com `AskUserQuestion`: **"Usar um aquecimento do warm-up?"**, uma opção por apelido (até 3, os mais recentes, com repositórios e data), mais **Não usar**.
|
|
15
|
+
3. **Gravar** o conteúdo do escolhido, num bloco `## Warm-up ({apelido})`, no `context.md` da sessão:
|
|
16
|
+
- engenharia: `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/context.md`, depois do `/jarvis-context-detect` (acrescente; não substitua o `CONTEXT_PROFILE`);
|
|
17
|
+
- produto: `$SESSIONS_DIR/prod/{id do documento}/context.md` (ex.: `prd-001`, `discovery-002`), ou `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/` se a chave foi informada. Grave quando o comando já tiver definido o id.
|
|
18
|
+
4. **Apagar** a pasta `$SESSIONS_DIR/warm-ups/{apelido}/` depois de gravar.
|
|
19
|
+
5. **Usar** o bloco como contexto da tarefa: repositórios e áreas ativas (carregue só as especialidades dessas áreas), recorte do Central docs, entregas recentes e versões das ferramentas. Não refaça o que o aquecimento já trouxe.
|
|
20
|
+
|
|
21
|
+
### Proibido
|
|
22
|
+
|
|
23
|
+
- Usar um aquecimento sem a escolha do usuário
|
|
24
|
+
- Apagar a pasta antes de gravar o bloco no `context.md`
|
|
25
|
+
- Copiar para o `context.md` tokens, e-mails ou valores do `ENV.md`
|
|
26
|
+
|
|
27
|
+
## Referências
|
|
28
|
+
|
|
29
|
+
- `workflows/warm-up.md`: quem gera o aquecimento
|
|
30
|
+
- `templates/warm-up-template.md`: formato do aquecimento
|
package/skills/AGENTS.md
CHANGED
|
@@ -222,7 +222,7 @@ Skills são invocados de formas diferentes dependendo da IDE:
|
|
|
222
222
|
| Comando / Trigger | Skill |
|
|
223
223
|
|-------------------|-------|
|
|
224
224
|
| `/jarvis-init` | `jarvis-init` |
|
|
225
|
-
| `/warm-up` | `jarvis-docs-central` (
|
|
225
|
+
| `/warm-up` | `jarvis-docs-central` (só o recorte escolhido), `context7` (se o MCP estiver disponível) |
|
|
226
226
|
| `eng.start` | `jarvis-docs-central` (buscar PRD/ARD) |
|
|
227
227
|
| `/eng.docs` | `eng-global-docs-write`, `jarvis-docs-index` |
|
|
228
228
|
| `/eng.pre-pr` | `eng-qa-planner`, `eng-global-docs-write`, `jarvis-docs-central` (detectar docs) |
|
|
@@ -675,6 +675,9 @@ grep -qxF '.jarvis/' .gitignore 2>/dev/null || echo '.jarvis/' >> .gitignore
|
|
|
675
675
|
# JARVIS_DOCS=$DOCS_FOLDER/jarvis, PROD_DOCS=$JARVIS_DOCS/product, ENG_DOCS=$JARVIS_DOCS/engineering
|
|
676
676
|
# (valores do template) e docs/jarvis/ fora do versionamento (uma docs/ já existente não é tocada):
|
|
677
677
|
grep -qxF 'docs/jarvis/' .gitignore 2>/dev/null || echo 'docs/jarvis/' >> .gitignore
|
|
678
|
+
|
|
679
|
+
# 9. Mapa de tecnologias do workspace (CDD-MIND-MAP.md, na raiz, ao lado do AGENTS.md) fora do versionamento:
|
|
680
|
+
grep -qxF 'CDD-MIND-MAP.md' .gitignore 2>/dev/null || echo 'CDD-MIND-MAP.md' >> .gitignore
|
|
678
681
|
```
|
|
679
682
|
|
|
680
683
|
### 5.2 Central docs (sempre)
|
|
@@ -972,6 +975,8 @@ Se não existir na raiz do projeto:
|
|
|
972
975
|
2. Extrair informações do projeto
|
|
973
976
|
3. Criar a partir do template com substituições
|
|
974
977
|
4. Se não detectar, perguntar ao usuário
|
|
978
|
+
5. Incluir (ou acrescentar, se o `AGENTS.md` já existir e não citar) a linha que identifica o mapa como contexto de workspace:
|
|
979
|
+
`> Contexto de workspace: [CDD-MIND-MAP.md](CDD-MIND-MAP.md) (tecnologias e papel de cada repositório; lido pelo /warm-up).`
|
|
975
980
|
|
|
976
981
|
### 8. Profile-Aware Rules Sync
|
|
977
982
|
|
|
@@ -1076,6 +1081,7 @@ A **detecção de stack por código e a criação de skill novo** (sub-passos 9.
|
|
|
1076
1081
|
3. **Lê** o workspace (a análise **só lê**: não altera arquivos do projeto nem as listas), identifica as stacks de backend e de frontend, inclusive de vários projetos, e **mostra o que encontrou antes de sugerir** (só essas 2 áreas)
|
|
1077
1082
|
4. Para cada stack de backend/frontend, sugere **registrar o skill que já existe** (mesmo `area` e `stack`) ou **criar um novo** com `/jarvis-create-specialization {área} {stack}`; a pessoa escolhe, e o que não aceita não muda
|
|
1078
1083
|
5. Mostra um resumo das 6 listas e do que foi registrado ou criado
|
|
1084
|
+
6. **Monta o `CDD-MIND-MAP.md`** (o mapa de tecnologias do workspace, lido pelo `/warm-up`): com a mesma leitura do sub-passo 3, agora para **todas as áreas**, preenche uma linha por repositório (papel, linguagem, framework, área, até 5 ferramentas principais) pelo `$IDE/templates/cdd-mind-map-template.md`, mostra a tabela e pede a validação com `AskUserQuestion` (**Confirmar** | **Corrigir** | **Incluir informação**). Grava na raiz do workspace (já no `.gitignore`, Passo 5). Se o mapa já existe, só acrescenta os repositórios que faltam. Pular é permitido: o primeiro `/warm-up` cria o mapa.
|
|
1079
1085
|
|
|
1080
1086
|
O tempo de ~10 minutos é referência, não limite. Nunca leia `.env*`, chaves ou credenciais.
|
|
1081
1087
|
|
package/templates/AGENTS.md
CHANGED
|
@@ -14,6 +14,8 @@ A pasta `templates/` contem **modelos de documentos** usados pelo framework para
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
templates/
|
|
17
|
+
├── cdd-mind-map-template.md # Mapa de tecnologias do workspace (CDD-MIND-MAP.md; /warm-up e /jarvis-init)
|
|
18
|
+
├── warm-up-template.md # Aquecimento por apelido ($SESSIONS_DIR/warm-ups/{apelido}/)
|
|
17
19
|
├── engineering/ # Templates tecnicos
|
|
18
20
|
│ ├── architecture-template.md # Template de arquitetura
|
|
19
21
|
│ ├── advisor-template.md # Prompts e auditoria do Advisor
|
|
@@ -30,7 +30,7 @@ USER=
|
|
|
30
30
|
# Limite de autonomia da IA neste workspace (60–100). 80 = a IA executa até 80%.
|
|
31
31
|
MAX_AI_EXECUTION_PERCENTAGE=80
|
|
32
32
|
|
|
33
|
-
# Context-Driven Development — deixe true.
|
|
33
|
+
# Context-Driven Development — deixe true. Os comandos eng.* calibram o comportamento pelo CDD.
|
|
34
34
|
ENABLE_CDD=true
|
|
35
35
|
|
|
36
36
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Data da última atualização do mapa (YYYY-MM-DD).
|
|
3
|
+
updated_at: {YYYY-MM-DD}
|
|
4
|
+
|
|
5
|
+
# Nome do workspace (WORKSPACE do ENV.md; vazio = nome da pasta que contém $IDE/).
|
|
6
|
+
workspace: {nome}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CDD-MIND-MAP — {workspace}
|
|
10
|
+
|
|
11
|
+
> **Contexto de workspace:** o mapa de tecnologias e o papel de cada repositório deste workspace. Fica na raiz, ao lado do `AGENTS.md`, **fora do versionamento** (`.gitignore`), e é lido sob demanda pelo `/warm-up`. É definido uma vez e reaproveitado; não guarda decisões nem contexto de tarefa (isso vai para o `context.md` da sessão).
|
|
12
|
+
|
|
13
|
+
| Repositório | Papel | Linguagem | Framework | Área | Ferramentas principais | Observações |
|
|
14
|
+
|-------------|-------|-----------|-----------|------|------------------------|-------------|
|
|
15
|
+
| {pasta} | {api, gateway, front, worker, lib…} | {php, golang, node…} | {laravel, nestjs, react, quasar…} | {backend, frontend, qa, data, automation, platform} | {até 5: framework, linguagem, ORM, testes} | {o que o usuário acrescentou} |
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
Como preencher (o /warm-up e o /jarvis-init seguem estas instruções):
|
|
19
|
+
- Uma linha por repositório com .git do workspace (respeitando WORKSPACE_REPOS, se preenchida); em projeto único, uma linha para a raiz.
|
|
20
|
+
- Linguagem e framework: pela tabela skills/jarvis-init/assets/sinais-de-stack.md (manifesto → linguagem → dependência → framework). Área: a da linha da tabela; sem sinal, pergunte.
|
|
21
|
+
- Papel: inferido da estrutura e do nome (ex.: rotas sem regra de negócio → gateway); é sempre hipótese até o usuário confirmar.
|
|
22
|
+
- Ferramentas principais: as dependências diretas mais relevantes do manifesto, com a versão declarada; no máximo 5.
|
|
23
|
+
- Leia só manifestos e a estrutura de pastas. Nunca leia .env*, chaves, certificados nem credenciais.
|
|
24
|
+
- Antes de gravar, mostre a tabela ao usuário e peça a validação (confirmar, corrigir, incluir informação).
|
|
25
|
+
- Mapa existente: acrescente só os repositórios que faltam; não reprocesse as linhas já validadas.
|
|
26
|
+
-->
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Modelo de IA recomendado para trabalhar neste documento. Se a sessão estiver em outro,
|
|
3
|
+
# o comando avisa e segue (você decide se troca). Opções: opus | sonnet | haiku
|
|
4
|
+
recommended_model: opus
|
|
5
|
+
|
|
6
|
+
# Card ou número de controle da tarefa (TASK_MANAGER do ENV.md; freelance = número de controle).
|
|
7
|
+
task_key: {TASK-123}
|
|
8
|
+
|
|
9
|
+
# URL do card no task manager (padrão da eng.integrations-rules.md). Vazio no modo freelance.
|
|
10
|
+
card_url: {URL}
|
|
11
|
+
|
|
12
|
+
# Pull/Merge Request aberto: número e URL. O daily.md só existe com PR aberto.
|
|
13
|
+
pr: {#n URL}
|
|
14
|
+
|
|
15
|
+
# Branch de trabalho e branch base (Branch base: do architecture.md).
|
|
16
|
+
branch: {branch}
|
|
17
|
+
base: {main | dev | outra}
|
|
18
|
+
|
|
19
|
+
# Dias efetivamente trabalhados no período eng.start → registro (descontados fim de semana não
|
|
20
|
+
# trabalhado, feriados e outros dias não trabalhados informados). Ex.: "3 (2026-10-13, 2026-10-14, 2026-10-15)"
|
|
21
|
+
worked_days: {n (datas)}
|
|
22
|
+
|
|
23
|
+
# A descrição usa o formato post mortem? Opções: yes | no
|
|
24
|
+
# yes = bugfix/hotfix, mais de 1 dia trabalhado, ou investigação longa confirmada pelo usuário
|
|
25
|
+
post_mortem: {yes | no}
|
|
26
|
+
|
|
27
|
+
# Data da última atualização deste arquivo (YYYY-MM-DD).
|
|
28
|
+
updated_at: {YYYY-MM-DD}
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# Daily — {TASK_KEY}
|
|
32
|
+
|
|
33
|
+
> Registro pessoal do esforço: narrativa auditável e linha pronta para o timesheet. Fica só na sessão, nunca é publicado. Uma seção por data (`## AAAA-MM-DD`), no formato abaixo, para um comando futuro juntar os registros de um dia.
|
|
34
|
+
|
|
35
|
+
## {AAAA-MM-DD}
|
|
36
|
+
|
|
37
|
+
### Descrição detalhada
|
|
38
|
+
|
|
39
|
+
{Um parágrafo narrativo: o contexto técnico, o que foi feito e as decisões. Detalhe suficiente para servir de embasamento em questionamentos futuros, auditorias ou consultas técnicas.}
|
|
40
|
+
|
|
41
|
+
**Post mortem** _(só quando `post_mortem: yes`)_
|
|
42
|
+
- **Problema e causa raiz:** {o problema identificado e a causa raiz, se aplicável}
|
|
43
|
+
- **Investigação:** {o raciocínio e o processo de investigação adotado}
|
|
44
|
+
- **Solução / direcionamento:** {a solução ou o direcionamento técnico final}
|
|
45
|
+
|
|
46
|
+
**Mudança de escopo** _(só quando pedida pela liderança: gerente, PM, tech lead)_
|
|
47
|
+
- **O que mudou:** {…}
|
|
48
|
+
- **Quem pediu:** {papel/nome, como o usuário informou}
|
|
49
|
+
- **Impacto:** {no prazo, no esforço, no resultado}
|
|
50
|
+
|
|
51
|
+
**Referências:** card [{TASK_KEY}]({URL}) · PR/MR [#{n}]({URL}) · commits `{hash}`, `{hash}`
|
|
52
|
+
|
|
53
|
+
### Timesheet
|
|
54
|
+
|
|
55
|
+
`{TASK_KEY} — {resumo da atividade em uma única linha}`
|
|
@@ -10,112 +10,80 @@ id: {discovery-001}
|
|
|
10
10
|
name: {nome dessa ideia}
|
|
11
11
|
|
|
12
12
|
# Situação do rascunho. O discovery tem ciclo próprio (rules/product/prod-rules.md).
|
|
13
|
-
# Opções: in_review | cancelled
|
|
14
|
-
# in_review = rascunho em andamento ou concluído | cancelled = o veredito foi do_not_proceed
|
|
13
|
+
# Opções: in_review (rascunho em andamento ou concluído) | cancelled (o veredito foi do_not_proceed)
|
|
15
14
|
status: {in_review | cancelled}
|
|
16
15
|
|
|
17
16
|
# Recomendação do discovery: vale seguir com essa ideia? Fica vazio durante a entrevista.
|
|
18
|
-
# Opções: proceed | investigate_more | do_not_proceed
|
|
19
|
-
# proceed = vale especificar | investigate_more = há lacuna crítica | do_not_proceed = não seguir (status passa a cancelled)
|
|
17
|
+
# Opções: proceed (vale especificar) | investigate_more (há lacuna crítica) | do_not_proceed (não seguir; status passa a cancelled)
|
|
20
18
|
verdict: {vazio durante a entrevista | proceed | investigate_more | do_not_proceed}
|
|
21
19
|
|
|
22
|
-
#
|
|
23
|
-
|
|
20
|
+
# Tamanho da ideia; define quantas perguntas a entrevista faz.
|
|
21
|
+
# Opções: small (trabalho já claro, até 2) | bounded (funcionalidade num produto existente, até 5) | broad (várias entregas, até 8)
|
|
22
|
+
size: {small | bounded | broad}
|
|
24
23
|
|
|
25
|
-
#
|
|
24
|
+
# Datas de criação e da última alteração (YYYY-MM-DD).
|
|
25
|
+
created_at: {YYYY-MM-DD}
|
|
26
26
|
updated_at: {YYYY-MM-DD}
|
|
27
27
|
|
|
28
|
-
# Quem criou o documento.
|
|
28
|
+
# Quem criou o documento e quem o editou por último (USER do ENV.md).
|
|
29
29
|
created_by: {nome de quem criou esse doc}
|
|
30
|
-
|
|
31
|
-
# Quem editou o documento por último.
|
|
32
30
|
last_editor: {nome de quem editou por último}
|
|
33
31
|
---
|
|
34
32
|
|
|
35
33
|
# {id}: {name}
|
|
36
34
|
|
|
37
|
-
> **
|
|
38
|
-
>
|
|
39
|
-
> Nunca registre credenciais, tokens nem dados pessoais de clientes neste arquivo: ele é versionado.
|
|
40
|
-
|
|
41
|
-
## Ideia
|
|
42
|
-
|
|
43
|
-
{O que é a ideia, em poucas frases, e para quem ela é. Use as palavras do usuário; não acrescente o que ele não disse.}
|
|
35
|
+
> **Rascunho.** Registra o que se sabe, o que é suposição e o que ainda é lacuna sobre uma ideia. Não define tarefas, histórias, critérios de aceitação nem estimativas. Um PRD, FRD, épico ou issue criado a partir dele é a fonte da verdade. Nunca registre credenciais, tokens nem dados pessoais de clientes.
|
|
44
36
|
|
|
45
|
-
##
|
|
46
|
-
|
|
47
|
-
{Declare o problema, não a solução. Responda, sempre que souber:}
|
|
48
|
-
|
|
49
|
-
- **Qual é o problema?** {a dor, o que não funciona hoje}
|
|
50
|
-
- **Quem sofre com ele?** {quem e em que situação}
|
|
51
|
-
- **Qual a evidência de que ele existe?** {dado, relato ou observação; se não houver, diga "sem evidência"}
|
|
52
|
-
- **Como se resolve hoje?** {a alternativa atual, mesmo que seja uma gambiarra}
|
|
53
|
-
- **Por que agora?** {o que torna isto relevante neste momento}
|
|
54
|
-
- **Como saberemos que funcionou?** {sinais de sucesso, sem metas fechadas}
|
|
37
|
+
## Entendimento
|
|
55
38
|
|
|
56
|
-
|
|
39
|
+
{A ideia em uma frase, nas palavras do usuário, e para quem ela é.}
|
|
57
40
|
|
|
58
|
-
|
|
41
|
+
| Dito por você | Suposição (origem) | Lacuna (quem responde) |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| {fato informado pelo usuário} | {o que precisa ser verdade; origem: dado, observação ou suposição} | {o que falta saber; marque **crítica** se mudar o veredito} |
|
|
59
44
|
|
|
60
|
-
|
|
61
|
-
|---|---|---|---|---|---|
|
|
62
|
-
| {o que precisaria ser verdade} | {problema, requisito, usuário, técnica ou negócio} | {alta, média ou baixa} | {alta, média ou baixa} | {dado, observação ou suposição} | {como confirmar ou descartar} |
|
|
45
|
+
## Problema
|
|
63
46
|
|
|
64
|
-
|
|
47
|
+
- **Dor:** {o que não funciona hoje, sem falar de solução}
|
|
48
|
+
- **Quem sofre:** {quem e em que situação}
|
|
49
|
+
- **Evidência:** {dado, relato ou observação; se não houver, "sem evidência"}
|
|
50
|
+
- **Como se resolve hoje:** {a alternativa atual, mesmo que seja uma gambiarra}
|
|
51
|
+
- **Por que agora:** {o que torna isto relevante neste momento}
|
|
52
|
+
- **Sinal de sucesso:** {como saberemos que funcionou, sem metas fechadas}
|
|
65
53
|
|
|
66
|
-
|
|
54
|
+
## Abordagens
|
|
67
55
|
|
|
68
|
-
|
|
|
56
|
+
| Abordagem | Prós | Contras |
|
|
69
57
|
|---|---|---|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
| **Negócio:** funciona para o negócio (custo, prazo, risco)? | {alto, médio ou baixo} | {por quê; o que ainda não se sabe} |
|
|
58
|
+
| {a menor coisa que funciona} | {…} | {…} |
|
|
59
|
+
| {outra opção} | {…} | {…} |
|
|
60
|
+
| {não fazer / usar algo existente} | {…} | {…} |
|
|
74
61
|
|
|
75
|
-
|
|
62
|
+
**Recomendação:** {qual abordagem e por quê, em 1–2 frases} · **Riscos e dependências:** {com quem pode confirmar}
|
|
76
63
|
|
|
77
|
-
|
|
64
|
+
## Scorecard
|
|
78
65
|
|
|
79
|
-
|
|
|
66
|
+
| Lente | Nota | Justificativa |
|
|
80
67
|
|---|---|---|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
85
|
-
**Riscos e dependências:**
|
|
86
|
-
|
|
87
|
-
- {risco ou dependência, com quem pode confirmar}
|
|
88
|
-
|
|
89
|
-
## Perguntas em aberto
|
|
90
|
-
|
|
91
|
-
{O que ainda precisa ser validado, com quem e como. Comece pelas hipóteses de importância alta e certeza baixa.}
|
|
92
|
-
|
|
93
|
-
- [ ] {pergunta} — quem responde: {pessoa ou área}
|
|
68
|
+
| **Valor:** alguém vai querer e usar? | {forte, adequado, fraco ou desconhecido} | {uma linha} |
|
|
69
|
+
| **Usabilidade:** as pessoas conseguem usar? | {…} | {…} |
|
|
70
|
+
| **Técnica:** dá para construir com o que temos? | {…} | {…} |
|
|
71
|
+
| **Negócio:** custo, prazo e risco fazem sentido? | {…} | {…} |
|
|
94
72
|
|
|
95
73
|
## Veredito
|
|
96
74
|
|
|
97
|
-
{Uma recomendação, não uma aprovação. Escolha uma e justifique em poucas linhas:}
|
|
98
|
-
|
|
99
|
-
- **proceed** (seguir): vale especificar. O problema parece real e não há lacuna crítica aberta
|
|
100
|
-
- **investigate_more** (investigar mais): há lacuna crítica; liste o que falta. Uma lacuna crítica nunca dá `proceed`
|
|
101
|
-
- **do_not_proceed** (não seguir): informe o motivo; o `status` passa a `cancelled` e o arquivo fica como registro da decisão
|
|
102
|
-
|
|
103
75
|
**Veredito:** {proceed | investigate_more | do_not_proceed}
|
|
104
76
|
|
|
105
|
-
**Motivo:** {justificativa}
|
|
77
|
+
**Motivo:** {justificativa curta. Lacuna crítica aberta ou lente crítica "desconhecido" nunca dá `proceed`. Com `do_not_proceed`, o `status` passa a `cancelled`.}
|
|
106
78
|
|
|
107
79
|
## Próximo passo sugerido
|
|
108
80
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- **Comando recomendado:** {/prod.spec.prd (e depois /prod.spec.breakdown), /prod.spec.frd, /prod.spec.issue, retomar este discovery ou arquivar a ideia}
|
|
81
|
+
- **Comando** (só uma sugestão, nunca executado sozinho): {ex.: /prod.spec.issue discovery-001 · /prod.spec.frd discovery-001 · /prod.spec.prd discovery-001 (e depois /prod.spec.breakdown) · retomar este discovery · arquivar}
|
|
112
82
|
- **Motivo:** {por que esse caminho}
|
|
113
|
-
- **Alternativa:** {outro caminho
|
|
114
|
-
|
|
115
|
-
## Histórico das sessões
|
|
83
|
+
- **Alternativa:** {outro caminho, se houver}
|
|
116
84
|
|
|
117
|
-
|
|
85
|
+
## Histórico
|
|
118
86
|
|
|
119
|
-
| Data | O que
|
|
87
|
+
| Data | Perguntas | O que ficou pendente |
|
|
120
88
|
|---|---|---|
|
|
121
|
-
| {YYYY-MM-DD} | {
|
|
89
|
+
| {YYYY-MM-DD} | {N de até M} | {lacunas abertas} |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Apelido do aquecimento (o usuário escolhe no /warm-up). É o nome da pasta $SESSIONS_DIR/warm-ups/{apelido}/.
|
|
3
|
+
apelido: {apelido}
|
|
4
|
+
|
|
5
|
+
# Data em que o aquecimento foi gerado (YYYY-MM-DD).
|
|
6
|
+
created_at: {YYYY-MM-DD}
|
|
7
|
+
|
|
8
|
+
# Repositórios aquecidos nesta sessão (ACTIVE_REPOS), separados por vírgula.
|
|
9
|
+
active_repos: {repo-a, repo-b}
|
|
10
|
+
|
|
11
|
+
# Áreas confirmadas pelo usuário; as especialidades das outras ficaram de fora.
|
|
12
|
+
areas: {backend, frontend}
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Warm-up — {apelido}
|
|
16
|
+
|
|
17
|
+
> Contexto aquecido para **uma tarefa**. O `/eng.start` ou o `/prod.spec*` que usá-lo copia este conteúdo para o `context.md` da sessão e apaga a pasta (`rules-on-demand/warm-up-consume-rules.md`).
|
|
18
|
+
|
|
19
|
+
## Escopo
|
|
20
|
+
|
|
21
|
+
| Repositório | Papel | Stack | Branch alvo |
|
|
22
|
+
|-------------|-------|-------|-------------|
|
|
23
|
+
| {repo} | {papel, do CDD-MIND-MAP.md} | {linguagem / framework} | {main, dev…} |
|
|
24
|
+
|
|
25
|
+
**Especialidades carregadas:** {área: base + especializações da lista} · **Fora do escopo:** {áreas descartadas}
|
|
26
|
+
|
|
27
|
+
## Central docs
|
|
28
|
+
|
|
29
|
+
{Produto e funcionalidade escolhidos. Para cada `feature-*.md` lido: o comportamento atual em 2–3 linhas e onde está no código. Entregas (`delivery-*.md`) do recorte, uma linha cada. Sem Central docs: "não configurado".}
|
|
30
|
+
|
|
31
|
+
## Entregas recentes
|
|
32
|
+
|
|
33
|
+
| Repositório | Merge | Título | Arquivos tocados |
|
|
34
|
+
|-------------|-------|--------|------------------|
|
|
35
|
+
| {repo} | {hash curto, data} | {título do PR/merge} | {principais pastas/arquivos} |
|
|
36
|
+
|
|
37
|
+
{Padrões ou decisões recentes que valem para a tarefa, em até 3 linhas.}
|
|
38
|
+
|
|
39
|
+
## Ferramentas (context7)
|
|
40
|
+
|
|
41
|
+
| Ferramenta | Versão no projeto | Versão atual | Observação |
|
|
42
|
+
|------------|-------------------|--------------|------------|
|
|
43
|
+
| {nome} | {declarada no manifesto} | {do context7} | {mudança relevante, se houver} |
|
|
44
|
+
|
|
45
|
+
{Sem MCP context7: "não consultado".}
|