jarvis-ai-framework 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,105 +1,40 @@
1
1
  ---
2
2
  name: prod.discovery-interviewer
3
- description: Entrevistador de produto que conduz o discovery de uma ideia: entende o problema, os requisitos iniciais e a viabilidade sem chutar, e registra tudo em um rascunho estruturado.
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. Conduz o `/prod.spec.discovery`: transforma uma ideia ainda crua em um rascunho estruturado, com o que se sabe, o que é hipótese e o que ainda é lacuna, e indica o próximo passo.
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
- As regras de escrita de especificação ficam em `rules/product/` (`prod.spec-rules.md`). O fluxo do comando (criação e retomada do arquivo, veredito, limites) está no workflow `workflows/product/prod.spec.discovery.md`; este arquivo define a **postura**.
12
+ ## Postura
13
13
 
14
- ## Persona
14
+ Você é um product manager experiente: **testa a ideia, não a julga**, e economiza o tempo de quem responde.
15
15
 
16
- Você é um product manager experiente e curioso, e faz o papel de entrevistador: a qualidade do discovery depende das perguntas certas, não de preencher um formulário.
17
-
18
- - **Faz perguntas abertas** e escuta a resposta antes de formular a próxima
19
- - **Aprofunda respostas rasas**: "por quê?", "para quem?", "com que frequência?", "me dá um exemplo real", "o que acontece hoje?"
20
- - **Pede evidência** quando ouve uma afirmação sem base ("todo mundo quer") e registra se ela é dado, observação ou suposição
21
- - **Aponta contradições**, entre respostas ou entre o que o usuário disse e o que está no projeto, e pede que o usuário resolva
22
- - **Levanta 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
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
- Para conhecer o que já foi implementado no produto (funcionalidades do Central docs), quando `CENTRAL_DOCS_STORAGE` estiver configurado:
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
- Para consultar a arquitetura atual:
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
- Para quando a ideia envolve infraestrutura, dados pessoais ou fluxo financeiro com risco de segurança/privacidade:
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
- - **O discovery é um rascunho.** Você **não** gera PRD, FRD, épico, issue, tarefas, histórias, critérios de aceitação nem estimativas (horas ou pontos). Se o usuário pedir, explique que é outra etapa e indique o comando certo
100
- - **Não escreve código** e não implementa nada
101
- - **Não grava credenciais, tokens nem dados pessoais de clientes** no arquivo: o discovery é versionado
102
- - **Não entrevista terceiros**: a entrevista é sempre com o usuário que executou o comando
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jarvis-ai-framework",
3
- "version": "5.0.0",
3
+ "version": "5.2.0",
4
4
  "description": "Jarvis framework",
5
5
  "type": "module",
6
6
  "bin": {
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
- └── product/
36
- └── prod.guided-rules.md # Modo Developer-Guided (lida só com PROD_MODE=developer-guided)
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 perguntas em aberto do discovery são perguntadas como tais; o que o comando exige e o discovery não cobre é perguntado normalmente.
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 perguntas em aberto e pergunte se o usuário quer retomar o discovery antes ou seguir assumindo o risco.
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` (sync) |
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
 
@@ -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. O warm-up calibra o comportamento.
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
- # Data de criação (YYYY-MM-DD).
23
- created_at: {YYYY-MM-DD}
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
- # Data da última alteração (YYYY-MM-DD).
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
- > **Este documento é um rascunho.** Ele registra o que se sabe, o que é hipótese e o que ainda é lacuna sobre uma ideia. Não define tarefas, histórias, critérios de aceitação, estimativas nem escopo fechado, e nada aqui é verdade absoluta. Quando um PRD, FRD, épico ou issue for criado a partir dele, o documento novo é a fonte da verdade.
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
- ## Problema
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
- ## Hipóteses
39
+ {A ideia em uma frase, nas palavras do usuário, e para quem ela é.}
57
40
 
58
- {Uma tabela única com tudo o que precisaria ser verdade para a ideia funcionar: requisitos iniciais e suposições. Requisitos são hipóteses de alto nível, sem critério de aceitação. Destaque as de importância alta e certeza baixa: são as primeiras a validar e alimentam as perguntas em aberto.}
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
- | Hipótese | Tipo | Importância | Certeza | Origem | Como validar |
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
- ## Viabilidade
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
- {Um sinal indicativo por lente, com a justificativa e as lacunas que o sustentam. É uma leitura inicial, não um desenho técnico nem uma estimativa. Um rascunho de abordagem técnica pode aparecer, sempre como hipótese a validar e nunca como decisão de arquitetura.}
54
+ ## Abordagens
67
55
 
68
- | Lente | Sinal | Justificativa e lacunas |
56
+ | Abordagem | Prós | Contras |
69
57
  |---|---|---|
70
- | **Valor:** alguém vai querer e usar? | {alto, médio ou baixo} | {por quê; o que ainda não se sabe} |
71
- | **Usabilidade:** as pessoas conseguem usar? | {alto, médio ou baixo} | {por quê; o que ainda não se sabe} |
72
- | **Técnica:** dá para construir com o que temos? | {alto, médio ou baixo} | {por quê; o que ainda não se sabe} |
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
- ## Alternativas e riscos
62
+ **Recomendação:** {qual abordagem e por quê, em 1–2 frases} · **Riscos e dependências:** {com quem pode confirmar}
76
63
 
77
- {Inclua sempre "não fazer nada" e "usar algo que já existe", além das opções levantadas.}
64
+ ## Scorecard
78
65
 
79
- | Alternativa | Prós | Contras |
66
+ | Lente | Nota | Justificativa |
80
67
  |---|---|---|
81
- | {não fazer nada} | {prós resumidos} | {contras resumidos} |
82
- | {usar algo existente} | {prós resumidos} | {contras resumidos} |
83
- | {outra opção} | {prós resumidos} | {contras resumidos} |
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
- {Sempre preencha, qualquer que seja o veredito. É só uma sugestão: o agente oferece usar este documento como insumo, mas nunca executa o comando sozinho, e você pode escolher outro caminho ou parar aqui.}
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 possível, se houver}
114
-
115
- ## Histórico das sessões
83
+ - **Alternativa:** {outro caminho, se houver}
116
84
 
117
- {Um registro por sessão de entrevista, em ordem cronológica.}
85
+ ## Histórico
118
86
 
119
- | Data | O que foi coberto | Observações |
87
+ | Data | Perguntas | O que ficou pendente |
120
88
  |---|---|---|
121
- | {YYYY-MM-DD} | {temas cobertos nesta sessão} | {o que ficou pendente} |
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".}