jarvis-ai-framework 5.0.0 → 5.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jarvis-ai-framework",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "Jarvis framework",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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,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}`
@@ -44,7 +44,7 @@ Este comando cria a **branch, commita as alterações e abre um Merge Request**.
44
44
  | Skills recomendados | `/eng-global-docs-write` | Se houver necessidade de atualizar documentação junto do PR |
45
45
  | Agentes recomendados (opcional) | `eng.qa.test-planner` (agente) | Se houver dúvidas sobre cobertura de testes ou mudanças significativas |
46
46
  | Fase 4 › 4.4 Criar MR/PR via adapter | `jarvis vcs create-merge` (CLI do Jarvis) | Só se o usuário responder **Sim** na Fase 4.3: abre o MR/PR conforme `VERSION_CONTROL` ou o host do `origin` |
47
- | Fase 6 › 6.2 Link do MR | `/eng-global-task-comment` | Depois de o MR ser criado (só com o Sim da 4.3): um único comentário no card com o link do MR, seguindo o Passo 6 do skill `eng-global-pr` (freelance pula) |
47
+ | Fase 5 › 5.2 Link do MR | `/eng-global-task-comment` | Depois de o MR ser criado (só com o Sim da 4.3): um único comentário no card com o link do MR, seguindo o Passo 6 do skill `eng-global-pr` (freelance pula) |
48
48
 
49
49
  ---
50
50
 
@@ -134,7 +134,7 @@ Branch de destino: a **`Branch base:`** do `architecture.md` (`{BRANCH_BASE}`).
134
134
  git checkout {TASK_MANAGER_KEY}-{titulo-em-kebab-case}
135
135
  ```
136
136
 
137
- ### 2.2 Verificar Commits da Branch
137
+ ### 2.3 Verificar Commits da Branch
138
138
 
139
139
  ```bash
140
140
  git log {BRANCH_BASE}..HEAD --oneline
@@ -211,7 +211,7 @@ Mostre o `pull-request.md` (título e resumo das seções) e pergunte com `AskUs
211
211
 
212
212
  Pergunte com `AskUserQuestion` (**Sim / Não**): **"Publicar o PR agora?"**
213
213
 
214
- - **Não:** nada é enviado. O `pull-request.md` fica na sessão para você publicar quando quiser (à mão ou rodando o `/eng.pr` de novo). Pule para a Fase 7, com a mensagem "PR não publicado".
214
+ - **Não:** nada é enviado. O `pull-request.md` fica na sessão para você publicar quando quiser (à mão ou rodando o `/eng.pr` de novo). Pule para a Fase 7 (sem `daily.md`, que só existe com PR aberto), com a mensagem "PR não publicado".
215
215
  - **Sim:** faça o push (Fase 3) e crie o MR/PR (4.4).
216
216
 
217
217
  ### 4.4 Criar MR/PR via adapter
@@ -248,15 +248,15 @@ Se o CLI `jarvis` não estiver instalado no repo alvo, usar `node {caminho-do-cl
248
248
 
249
249
  ---
250
250
 
251
- ## Fase 6: Atualizar Board
251
+ ## Fase 5: Atualizar Board
252
252
 
253
253
  Pular se `TASK_MANAGER` estiver vazio (freelance).
254
254
 
255
- ### 6.1 Mover Card
255
+ ### 5.1 Mover Card
256
256
 
257
257
  Mova o card para a etapa equivalente a "em revisão" no seu board. Quem assumiu o card o move; não é preciso esperar o TECH LEAD ou o PM.
258
258
 
259
- ### 6.2 Link do MR no card
259
+ ### 5.2 Link do MR no card
260
260
 
261
261
  Siga o Passo 6 do skill `eng-global-pr`: um único comentário no card, com o link e a branch. É o único comentário do `eng.pr` no card.
262
262
 
@@ -264,11 +264,11 @@ Siga o Passo 6 do skill `eng-global-pr`: um único comentário no card, com o li
264
264
 
265
265
  ## Fase 6: Processar Code Review
266
266
 
267
- ### 7.1 Aguardar Comentários
267
+ ### 6.1 Aguardar Comentários
268
268
 
269
269
  Aguarde 3-5 minutos para a ferramenta de code review processar.
270
270
 
271
- ### 7.2 Analisar Comentários
271
+ ### 6.2 Analisar Comentários
272
272
 
273
273
  Para cada comentário:
274
274
 
@@ -276,7 +276,7 @@ Para cada comentário:
276
276
  2. Avaliar se pode ser explicado/ignorado
277
277
  3. Apresentar ao usuário
278
278
 
279
- ### 7.3 Aplicar Correções
279
+ ### 6.3 Aplicar Correções
280
280
 
281
281
  Se necessário:
282
282
 
@@ -291,7 +291,7 @@ git push
291
291
 
292
292
  ## Fase 7: Conclusão
293
293
 
294
- ### 8.1 Registrar Métricas de Lead Time
294
+ ### 7.1 Registrar Métricas de Lead Time
295
295
 
296
296
  Calcule e registre o lead time (tempo desde eng.start até PR criado):
297
297
 
@@ -323,7 +323,34 @@ else
323
323
  fi
324
324
  ```
325
325
 
326
- ### 8.2 Mensagem Final
326
+ ### 7.2 Registrar o esforço em `daily.md`
327
+
328
+ Regras em `$IDE/rules-on-demand/engineering/eng.pr-rules.md` (seção "daily.md"); template em `$IDE/templates/engineering/daily-template.md`. Arquivo: `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/daily.md`, **só na sessão, nunca publicado**.
329
+
330
+ 1. **Há PR aberto?** Vale o criado na 4.4 ou o PR da branch que já existe e está aberto (CLI/adapter do vendor, ex.: `gh pr view --json state,number,url`). Sem PR aberto (Não na 4.3 e nenhum PR existente), **não gere** o `daily.md` e siga para a 7.3. Se não for possível confirmar, pergunte.
331
+ 2. **Data:** pergunte com `AskUserQuestion`: **"Registrar o esforço com qual data?"** → `Hoje ({AAAA-MM-DD})` | `Outra data` (o usuário digita `AAAA-MM-DD`).
332
+ 3. **Dias trabalhados** (só se o período entre a data do `.timestamp_start` e a data do registro tiver mais de um dia), uma pergunta por vez:
333
+ - se o período tiver sábado ou domingo: **"Você trabalhou em {datas de sábado/domingo}?"** (Sim / Não; com várias datas, pode responder por data);
334
+ - **"Houve feriado no período?"** → Não | Sim (o usuário informa as datas);
335
+ - **"Teve algum dia em que você não trabalhou no período?"** → Não | Sim (o usuário informa as datas).
336
+
337
+ Dias trabalhados = datas do período − fim de semana não trabalhado − feriados − dias não trabalhados. Registre no `worked_days` do frontmatter.
338
+ 4. ***Post mortem*:**
339
+ - **automático** se o `context.md` tiver `tipo: bugfix` ou `hotfix`, ou se houver **mais de 1 dia trabalhado**;
340
+ - nos outros casos, pergunte (**Sim / Não**): **"A tarefa exigiu investigação ou análise longa?"**
341
+ 5. **Nova execução** (o `daily.md` já existe): entenda o contexto e pergunte com `AskUserQuestion`: **"De onde veio a mudança desde o último registro?"**
342
+ - **Ajuste meu:** reescreva o registro **focando no que foi entregue**, sem mencionar troca de escopo nem retrabalho.
343
+ - **Pedido da liderança** (gerente, PM, tech lead): documente na seção "Mudança de escopo" o que mudou, quem pediu (como o usuário informar) e o impacto.
344
+
345
+ Atualize a seção da data escolhida. Se a data for nova, acrescente uma seção `## AAAA-MM-DD`.
346
+ 6. **Gerar** a descrição detalhada **e** a linha de timesheet, juntas.
347
+ - **Fontes:** `architecture.md`, `plan.md`, `gate-checklist.md`, `pull-request.md`, `git log {BRANCH_BASE}..HEAD`, o PR/MR e o card.
348
+ - **Descrição:** um parágrafo narrativo (contexto técnico, trabalho realizado, decisões), mais o *post mortem* quando couber (problema e causa raiz, investigação, solução/direcionamento), com detalhe suficiente para embasar questionamentos futuros.
349
+ - **Timesheet:** **uma única linha** (`{TASK_KEY} — {resumo}`).
350
+ - Sem e-mails, tokens nem valores de variáveis.
351
+ 7. **Revisão conjunta:** mostre a descrição e a linha de timesheet **juntas** e pergunte com `AskUserQuestion`: `[Aprovar]` / `[Ajustar]`. Com Ajustar, aplique os ajustes pontuais **nas duas** e mostre de novo, até aprovar.
352
+
353
+ ### 7.3 Mensagem Final
327
354
 
328
355
  ```
329
356
  ✅ MERGE REQUEST CRIADO COM SUCESSO!
@@ -340,6 +367,9 @@ fi
340
367
 
341
368
  {LEAD_TIME_MSG}
342
369
 
370
+ 📝 Daily: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/daily.md
371
+ 🕒 Timesheet: {LINHA_DE_TIMESHEET_APROVADA}
372
+
343
373
  📌 Próximos passos:
344
374
  1. /eng.spec-consolidate {TASK_MANAGER_KEY} → registrar no Central docs o que esta entrega implementou
345
375
  2. Aguardar revisão do time e processar os comentários do code review
@@ -372,6 +402,7 @@ fi
372
402
  - ✅ Preencher template do MR completamente
373
403
  - ✅ Mover card para "In Review"
374
404
  - ✅ Gerar o `pull-request.md` na sessão e só publicar com o **Sim** (Fase 4.3)
405
+ - ✅ Com PR aberto, registrar o esforço no `daily.md` (7.2), com revisão conjunta da descrição e do timesheet
375
406
  - ✅ **Nunca apagar a sessão:** o `/eng.spec-consolidate` precisa dela
376
407
 
377
408
  ---