jarvis-ai-framework 4.0.0 → 5.0.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.
Files changed (45) hide show
  1. package/agents/engineering/eng.docs-consolidator.agent.md +81 -0
  2. package/agents/engineering/qa/eng.qa.test-planner.md +7 -7
  3. package/agents/product/prod.discovery-interviewer.md +1 -1
  4. package/bin/commands/docs-publish.js +18 -8
  5. package/bin/commands/docs-sync.js +3 -2
  6. package/bin/lib/cli/program.js +3 -3
  7. package/bin/lib/docs/publish-file.js +35 -24
  8. package/bin/lib/docs/storage/build-index.js +29 -8
  9. package/bin/lib/docs/validate-frontmatter.js +4 -0
  10. package/package.json +1 -1
  11. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  12. package/rules/engineering/eng.integrations-rules.md +1 -1
  13. package/rules/engineering/rpa/eng.rpa-rules.md +1 -1
  14. package/rules/product/prod-rules.md +3 -3
  15. package/rules-on-demand/engineering/eng.pr-rules.md +9 -31
  16. package/rules-on-demand/engineering/eng.pre-pr-rules.md +12 -19
  17. package/skills/eng-backend-arch-c4/SKILL.md +3 -3
  18. package/skills/eng-global-docs-write/SKILL.md +1 -1
  19. package/skills/eng-qa-planner/SKILL.md +5 -5
  20. package/skills/jarvis-docs-central/README.md +18 -30
  21. package/skills/jarvis-docs-central/SKILL.md +80 -97
  22. package/skills/jarvis-init/SKILL.md +60 -26
  23. package/templates/ENV-template.md +15 -9
  24. package/templates/engineering/ARD-template.md +1 -1
  25. package/templates/engineering/central-delivery-template.md +65 -0
  26. package/templates/engineering/central-feature-template.md +86 -0
  27. package/workflows/engineering/eng.build-tech-spec.md +3 -3
  28. package/workflows/engineering/eng.create-ard-from-code.md +12 -36
  29. package/workflows/engineering/eng.create-ard.md +14 -38
  30. package/workflows/engineering/eng.create-rfc.md +8 -32
  31. package/workflows/engineering/eng.pr.md +31 -62
  32. package/workflows/engineering/eng.pre-pr.md +52 -89
  33. package/workflows/engineering/eng.rpa.robot.md +5 -5
  34. package/workflows/engineering/eng.spec-consolidate.md +140 -0
  35. package/workflows/engineering/eng.start.md +6 -6
  36. package/workflows/engineering/eng.work.md +1 -1
  37. package/workflows/engineering/qa/eng.qa-refinement-entry.md +1 -1
  38. package/workflows/engineering/qa/eng.qa-release-signoff.md +3 -3
  39. package/workflows/engineering/qa/eng.qa-sprint-planning.md +2 -2
  40. package/workflows/product/prod.spec.ard.md +4 -4
  41. package/workflows/product/prod.spec.breakdown.md +1 -1
  42. package/workflows/product/prod.spec.epic.md +5 -35
  43. package/workflows/product/prod.spec.frd.md +6 -34
  44. package/workflows/product/prod.spec.prd.md +6 -35
  45. package/workflows/warm-up.md +8 -10
@@ -18,7 +18,7 @@ Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`.
18
18
 
19
19
  Este fluxo é a **porta de entrada de produto** para o ARD. Ele levanta com o PM, em linguagem de produto, o que a arquitetura precisa atender (restrições, requisitos não funcionais, integrações, volumes e riscos) e, com isso, **conduz o ARD pelo fluxo de engenharia** (`eng.create-ard`), sem duplicá-lo.
20
20
 
21
- > ⚠️ **O ARD é um documento de engenharia.** O arquivo resultante fica em `$DOCS_FOLDER/engineering/ARD/` (como no `eng.create-ard`), e as decisões de arquitetura pertencem à engenharia. Este comando só levanta os requisitos e abre o fluxo. Diga isso ao usuário no início.
21
+ > ⚠️ **O ARD é um documento de engenharia.** O arquivo resultante fica em `$ENG_DOCS/ARD/` (como no `eng.create-ard`), e as decisões de arquitetura pertencem à engenharia. Este comando só levanta os requisitos e abre o fluxo. Diga isso ao usuário no início.
22
22
 
23
23
  Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entender o contexto do que foi pedido.
24
24
  <requirement>
@@ -45,12 +45,12 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
45
45
 
46
46
  | Passo | Skill | Condição |
47
47
  |-------|-------|----------|
48
- | Gate 1: Reconhecer o contexto | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md e for preciso buscar o PRD ou FRD relacionado |
48
+ | Gate 1: Reconhecer o contexto | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md e for preciso conhecer as funcionalidades já implementadas relacionadas |
49
49
  | Gate 4: Conduzir o ARD | `/eng.create-ard` | Sempre, depois de os requisitos serem confirmados: modo `new`, com `--prd` quando houver PRD (workflow de engenharia; o aviso de transição de domínio é dado antes) |
50
50
 
51
51
  ## Resultado final
52
52
  - Um **resumo dos requisitos arquiteturais** confirmado pelo usuário (Gate 3), entregue como insumo ao `eng.create-ard`
53
- - O **ARD** gerado pelo `eng.create-ard` (numeração `ARD-###`, versão `1.0.0`, template `$IDE/templates/engineering/ARD-template.md` e caminho `$DOCS_FOLDER/engineering/ARD/{ARD-ID}-{slug}.md`)
53
+ - O **ARD** gerado pelo `eng.create-ard` (numeração `ARD-###`, versão `1.0.0`, template `$IDE/templates/engineering/ARD-template.md` e caminho `$ENG_DOCS/ARD/{ARD-ID}-{slug}.md`)
54
54
  - Rascunhos WIP, se houver, em `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`; o documento canônico é o ARD
55
55
  - O arquivo final no mesmo idioma da interação do usuário
56
56
 
@@ -64,7 +64,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
64
64
 
65
65
  ### Gate 1: Reconhecer o contexto
66
66
  1. Valide o `ENV.md` (regra geral de produto) e avise que o ARD é um documento de engenharia.
67
- 2. Identifique o PRD ou FRD de origem em `$PROD_DOCS` (ou o caminho que o usuário informar) e leia-o. Se `CENTRAL_DOCS_STORAGE` estiver definido, busque no central docs o PRD ou FRD relacionado.
67
+ 2. Identifique o PRD ou FRD de origem em `$PROD_DOCS` (ou o caminho que o usuário informar) e leia-o. Se `CENTRAL_DOCS_STORAGE` estiver definido, consulte também no Central docs as funcionalidades já implementadas relacionadas (o PRD e o FRD ficam em `$PROD_DOCS`).
68
68
  3. Resuma em poucas linhas o que a especificação pede e confirme com o usuário que é essa a origem. Se `AREA` do usuário não for `ENGINEERING`, avise que o ARD seguirá o fluxo de engenharia e deve ser revisado por alguém da engenharia.
69
69
 
70
70
  ### Gate 2: Levantar os requisitos arquiteturais em termos de produto
@@ -65,7 +65,7 @@ O artefato de breakdown segue o template `$PROD_TEMPLATES/prod-breakdown-templat
65
65
  Se `CENTRAL_DOCS_STORAGE` estiver no `ENV.md`:
66
66
 
67
67
  1. `jarvis docs sync --silent` (best-effort)
68
- 2. Localizar Documento de Requisitos de Produto / funcional relacionado (nome, tags, `TASK_MANAGER_KEY`)
68
+ 2. Localizar no Central docs as funcionalidades já implementadas relacionadas (nome, tags, `TASK_MANAGER_KEY`); o Documento de Requisitos de Produto / funcional vem de `$PROD_DOCS`
69
69
  3. Usar como contexto; se não achar, seguir com arquivos locais em `$PROD_DOCS`
70
70
 
71
71
  ## Sessões
@@ -43,7 +43,6 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
43
43
  |-------|-------|----------|
44
44
  | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md, antes de criar o épico |
45
45
  | Próximas etapas | `/prod.spec.issue` | Depois de criar o épico, se o usuário quiser escrever as histórias ou tarefas relacionadas |
46
- | Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo epic`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o épico estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
47
46
 
48
47
  ## Resultado final
49
48
  - Por padrão, use o modelo `$PROD_TEMPLATES/prod-epic-template.md` integralmente
@@ -124,44 +123,15 @@ Após a aprovação do usuário:
124
123
 
125
124
  Se `CENTRAL_DOCS_STORAGE` definido no ENV.md, antes de criar o épico:
126
125
 
127
- - Executar busca automática no central-docs:
126
+ - Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
128
127
  ```bash
129
128
  jarvis docs sync --silent
130
129
  ```
131
- - Buscar PRD e épicos existentes relacionados usando o contexto do usuário
132
- - Se PRD ou épico encontrado: carregar como contexto e informar o usuário
130
+ - Buscar PRD e épicos existentes em `$PROD_DOCS` e, no Central docs, as funcionalidades já implementadas relacionadas
131
+ - Se encontrar: carregar como contexto e informar o usuário
133
132
  - Se não encontrado: continuar com fluxo normal
134
133
 
135
- ## Publicação no Central Docs (condicional)
134
+ ## Central docs
136
135
 
137
- Após salvar o épico localmente e obter aprovação do usuário:
136
+ Este documento é um **documento de trabalho**: fica em `$PROD_DOCS`/`$ENG_DOCS` (`docs/jarvis/`) e **não** é publicado no Central docs. O Central docs registra só o que foi implementado, e quem o atualiza é o `/eng.spec-consolidate`, depois do PR da entrega.
138
137
 
139
- 1. Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
140
- - Perguntar ao usuário:
141
- ```
142
- Deseja publicar este épico no repositório central de documentação?
143
- - ( ) Sim, publicar agora
144
- - ( ) Não, vou publicar depois manualmente
145
- ```
146
-
147
- 2. Se **Sim**:
148
- - Executar:
149
- ```bash
150
- jarvis docs publish \
151
- --file {caminho_do_epico} \
152
- --tipo epic
153
- ```
154
-
155
- 3. Informar resultado:
156
- - ✅ Sucesso: "Épico publicado no Central docs." (com git: "PR aberto: [URL]")
157
- - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
158
-
159
- 4. Se **Não**:
160
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo epic`"
161
-
162
- > **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o épico só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
163
-
164
- Utilize o que o usuário fornecer analisar em:
165
- <requirement>
166
- #$ARGUMENTS
167
- </requirement>
@@ -35,7 +35,6 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
35
35
  | Passo | Skill | Condição |
36
36
  |-------|-------|----------|
37
37
  | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md |
38
- | Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo frd`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o FRD estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
39
38
 
40
39
  ## Princípios Fundamentais
41
40
  1. **Sempre use o template** `$PROD_TEMPLATES/prod-frd-template.md` para o output final
@@ -63,17 +62,17 @@ A FRD não é um épico, história ou task: ela serve como documento de detalham
63
62
  Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
64
63
 
65
64
  1. **Buscar PRD correspondente:**
66
- - Executar busca automática no central-docs:
65
+ - Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
67
66
  ```bash
68
67
  jarvis docs sync --silent
69
68
  ```
70
- - Buscar PRD relacionado usando:
69
+ - Buscar o PRD relacionado em `$PROD_DOCS` (documento de trabalho; o Central docs não guarda PRD) usando:
71
70
  - Nome/contexto fornecido pelo usuário
72
71
  - Jira ID (se disponível)
73
72
  - Tags semânticas
74
- - Se PRD encontrado no central-docs:
73
+ - Se o PRD for encontrado em `$PROD_DOCS`:
75
74
  - Carregar automaticamente como base para o FRD
76
- - Informar ao usuário: "✅ PRD encontrado no central-docs: [nome]"
75
+ - Informar ao usuário: "✅ PRD encontrado: [caminho]"
77
76
  - Passar como contexto para o Gate 1 (Fluxo de Trabalho, abaixo)
78
77
  - Se não encontrado:
79
78
  - Perguntar ao usuário se tem PRD localmente
@@ -187,34 +186,7 @@ O sistema deve validar os dados do formulário.
187
186
  - Se for uma spec nova:
188
187
  - Salve na pasta `$PROD_DOCS` seguindo todos os padrões de nomenclatura e estrutura de pastas já estabelecidos em `$PROD_RULES/**/*`
189
188
 
190
- ## Publicação no Central Docs (condicional)
189
+ ## Central docs
191
190
 
192
- Após salvar o FRD localmente e obter aprovação do usuário:
191
+ Este documento é um **documento de trabalho**: fica em `$PROD_DOCS`/`$ENG_DOCS` (`docs/jarvis/`) e **não** é publicado no Central docs. O Central docs registra só o que foi implementado, e quem o atualiza é o `/eng.spec-consolidate`, depois do PR da entrega.
193
192
 
194
- 1. Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
195
- - Perguntar ao usuário:
196
- ```
197
- Deseja publicar este FRD no repositório central de documentação?
198
- - ( ) Sim, publicar agora
199
- - ( ) Não, vou publicar depois manualmente
200
- ```
201
-
202
- 2. Se **Sim**:
203
- - Executar:
204
- ```bash
205
- jarvis docs publish \
206
- --file {caminho_do_frd} \
207
- --tipo frd
208
- ```
209
-
210
- 3. Informar resultado:
211
- - ✅ Sucesso: "FRD publicado no Central docs." (com git: "PR aberto: [URL]")
212
- - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
213
-
214
- 4. Se **Não**:
215
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo frd`"
216
-
217
- 5. Se `CENTRAL_DOCS_STORAGE` não estiver definido:
218
- - Informar: "Para habilitar publicação automática, configure o Central docs no `/jarvis-init` (`CENTRAL_DOCS_STORAGE`)"
219
-
220
- > **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o FRD só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
@@ -34,7 +34,6 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
34
34
  | Passo | Skill | Condição |
35
35
  |-------|-------|----------|
36
36
  | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md (iteração de PRD existente) |
37
- | Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo prd`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o PRD estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
38
37
 
39
38
  ## Princípios Fundamentais
40
39
  1. **Sempre use o template** `$PROD_TEMPLATES/prod-prd-template.md` para o output final
@@ -48,17 +47,17 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
48
47
  Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
49
48
 
50
49
  1. **Para iteração de PRD existente:**
51
- - Executar busca automática no central-docs:
50
+ - Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
52
51
  ```bash
53
52
  jarvis docs sync --silent
54
53
  ```
55
- - Buscar PRD relacionado usando:
54
+ - Buscar o PRD relacionado em `$PROD_DOCS` (documento de trabalho; o Central docs não guarda PRD) usando:
56
55
  - Nome/contexto do PRD fornecido pelo usuário
57
56
  - Jira ID (se disponível)
58
57
  - Tags semânticas
59
- - Se PRD encontrado no central-docs:
58
+ - Se o PRD for encontrado em `$PROD_DOCS`:
60
59
  - Carregar automaticamente como base para iteração
61
- - Informar ao usuário: "✅ PRD encontrado no central-docs: [nome]"
60
+ - Informar ao usuário: "✅ PRD encontrado: [caminho]"
62
61
  - Usar como contexto para o Gate 1 (Fluxo de Trabalho, abaixo)
63
62
  - Se não encontrado:
64
63
  - Perguntar ao usuário se tem PRD localmente
@@ -174,35 +173,7 @@ Quais métricas? A) Engajamento B) Receita C) Outro
174
173
  - Se for uma spec nova:
175
174
  - Salve na pasta `$PROD_DOCS` seguindo todos os padrões de nomenclatura e estrutura de pastas já estabelecidos em `$PROD_RULES/**/*`
176
175
 
177
- ## Publicação no Central Docs (condicional)
176
+ ## Central docs
178
177
 
179
- Após salvar o PRD localmente e obter aprovação do usuário:
180
-
181
- 1. Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
182
- - Perguntar ao usuário:
183
- ```
184
- Deseja publicar este PRD no repositório central de documentação?
185
- - ( ) Sim, publicar agora
186
- - ( ) Não, vou publicar depois manualmente
187
- ```
188
-
189
- 2. Se **Sim**:
190
- - Executar:
191
- ```bash
192
- jarvis docs publish \
193
- --file {caminho_do_prd} \
194
- --tipo prd
195
- ```
196
-
197
- 3. Informar resultado:
198
- - ✅ Sucesso: "PRD publicado no Central docs." (com git: "PR aberto: [URL]")
199
- - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
200
-
201
- 4. Se **Não**:
202
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo prd`"
203
-
204
- 5. Se `CENTRAL_DOCS_STORAGE` não estiver definido:
205
- - Informar: "Para habilitar publicação automática, configure o Central docs no `/jarvis-init` (`CENTRAL_DOCS_STORAGE`)"
206
-
207
- > **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o PRD só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
178
+ Este documento é um **documento de trabalho**: fica em `$PROD_DOCS`/`$ENG_DOCS` (`docs/jarvis/`) e **não** é publicado no Central docs. O Central docs registra só o que foi implementado, e quem o atualiza é o `/eng.spec-consolidate`, depois do PR da entrega.
208
179
 
@@ -129,14 +129,14 @@ O perfil de comunicação é derivado de `POSITION` (conforme definido no `$IDE/
129
129
 
130
130
  ## Passo 2 — Sincronizar Documentação Central (condicional)
131
131
 
132
- Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md, invocar o skill `jarvis-docs-central` via Skill tool para carregar docs do produto.
132
+ Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md, invocar o skill `jarvis-docs-central` via Skill tool para carregar **o que já foi implementado** no produto (funcionalidades `feature-*` e entregas recentes `delivery-*`). Os documentos de trabalho (PRD, FRD, ARD, RFC) ficam em `docs/jarvis/` e não estão no Central docs.
133
133
 
134
134
  > ⚠️ **IMPORTANTE**: NÃO executar `jarvis docs sync` diretamente via Bash.
135
135
  > Usar sempre: **Skill tool → jarvis-docs-central (Modo 1: Buscar Docs)**
136
136
 
137
137
  O skill `jarvis-docs-central` gerencia:
138
- - Extração de token do `.npmrc`
139
- - Fallback quando `index.md` não existe (navegação por árvore)
138
+ - O adaptador de `CENTRAL_DOCS_STORAGE` (pasta, com `git pull` quando a pasta é um clone)
139
+ - Índice ausente (o squad ainda não tem consolidação)
140
140
  - Tratamento de erros
141
141
 
142
142
  **Invocação:**
@@ -150,17 +150,15 @@ Contexto: warm-up - sincronização inicial
150
150
  ```
151
151
  🔄 Sincronizando docs de {SQUAD}/{WORKSPACE}...
152
152
  ✅ Docs sincronizados
153
- 📊 5 documentos disponíveis:
154
- - 1 PRD(s)
155
- - 1 FRD(s)
156
- - 2 ARD(s)
157
- - 1 RFC(s)
153
+ 📊 7 documentos disponíveis:
154
+ - 4 funcionalidade(s)
155
+ - 3 entrega(s) recente(s)
158
156
  ```
159
157
 
160
158
  **Comportamento:**
161
159
  - Se `CENTRAL_DOCS_STORAGE` vazio → pula silenciosamente
162
- - Se erro de token → exibe aviso mas continua
163
- - Se `index.md` não existe → navega estrutura do repo e lista docs disponíveis
160
+ - Se o `git pull` falhar (pasta com git) → avisa e lê a cópia local
161
+ - Se `index.md` não existe → avisa que o squad ainda não tem consolidação (sugere `/eng.spec-consolidate --inicial`)
164
162
  - Se erro genérico → exibe mensagem clara e continua sem bloquear
165
163
 
166
164
  Após sincronizar, exibir resumo dos documentos disponíveis: