jarvis-ai-framework 3.2.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 (66) 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/README.md +14 -14
  5. package/bin/commands/docs-publish.js +61 -93
  6. package/bin/commands/docs-sync.js +31 -63
  7. package/bin/lib/cli/program.js +23 -25
  8. package/bin/lib/docs/fetch-file.js +29 -26
  9. package/bin/lib/docs/publish-file.js +98 -159
  10. package/bin/lib/docs/storage/build-index.js +108 -0
  11. package/bin/lib/docs/storage/filesystem.js +203 -0
  12. package/bin/lib/docs/storage/index.js +75 -0
  13. package/bin/lib/docs/validate-frontmatter.js +18 -4
  14. package/bin/lib/vcs/api.js +0 -125
  15. package/package.json +2 -2
  16. package/rules/AGENTS.md +12 -9
  17. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  18. package/rules/engineering/eng.integrations-rules.md +3 -2
  19. package/rules/engineering/rpa/eng.rpa-rules.md +1 -1
  20. package/rules/product/prod-rules.md +5 -6
  21. package/rules-on-demand/engineering/eng.pr-rules.md +9 -31
  22. package/rules-on-demand/engineering/eng.pre-pr-rules.md +12 -19
  23. package/rules-on-demand/product/prod.guided-rules.md +104 -0
  24. package/skills/eng-backend-arch-c4/SKILL.md +3 -3
  25. package/skills/eng-global-docs-write/SKILL.md +1 -1
  26. package/skills/eng-qa-planner/SKILL.md +5 -5
  27. package/skills/jarvis-docs-central/README.md +51 -275
  28. package/skills/jarvis-docs-central/SKILL.md +114 -301
  29. package/skills/jarvis-init/SKILL.md +81 -8
  30. package/templates/ENV-template.md +28 -7
  31. package/templates/engineering/ARD-template.md +40 -7
  32. package/templates/engineering/architecture-template.md +1 -0
  33. package/templates/engineering/central-delivery-template.md +65 -0
  34. package/templates/engineering/central-feature-template.md +86 -0
  35. package/templates/product/prod-breakdown-template.md +20 -2
  36. package/templates/product/prod-discovery-template.md +24 -1
  37. package/templates/product/prod-epic-template.md +32 -1
  38. package/templates/product/prod-frd-template.md +29 -2
  39. package/templates/product/prod-issue-template.md +36 -1
  40. package/templates/product/prod-prd-template.md +33 -2
  41. package/workflows/engineering/eng.build-tech-spec.md +4 -4
  42. package/workflows/engineering/eng.create-ard-from-code.md +15 -41
  43. package/workflows/engineering/eng.create-ard.md +22 -44
  44. package/workflows/engineering/eng.create-rfc.md +10 -36
  45. package/workflows/engineering/eng.pr.md +35 -66
  46. package/workflows/engineering/eng.pre-pr.md +52 -89
  47. package/workflows/engineering/eng.rpa.robot.md +9 -7
  48. package/workflows/engineering/eng.spec-consolidate.md +140 -0
  49. package/workflows/engineering/eng.start.md +23 -22
  50. package/workflows/engineering/eng.work.md +1 -1
  51. package/workflows/engineering/qa/eng.qa-refinement-entry.md +1 -1
  52. package/workflows/engineering/qa/eng.qa-release-signoff.md +3 -3
  53. package/workflows/engineering/qa/eng.qa-sprint-planning.md +2 -2
  54. package/workflows/product/prod.roadmap.preview.md +4 -1
  55. package/workflows/product/prod.spec.ard.md +9 -5
  56. package/workflows/product/prod.spec.breakdown.md +8 -4
  57. package/workflows/product/prod.spec.clarify.md +5 -1
  58. package/workflows/product/prod.spec.discovery.md +7 -3
  59. package/workflows/product/prod.spec.epic.md +12 -40
  60. package/workflows/product/prod.spec.frd.md +13 -39
  61. package/workflows/product/prod.spec.issue.md +5 -1
  62. package/workflows/product/prod.spec.md +3 -1
  63. package/workflows/product/prod.spec.prd.md +13 -40
  64. package/workflows/warm-up.md +10 -12
  65. package/bin/lib/docs/redis-cache.js +0 -49
  66. package/bin/lib/vcs/fetch-raw.js +0 -42
@@ -3,18 +3,22 @@ name: prod.spec.ard
3
3
  description: Ponto de entrada de produto para o ARD (Architecture Requirements Document): levanta com o PM os requisitos arquiteturais em termos de produto e conduz o ARD pelo fluxo de engenharia.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: gpt-4o
6
+ recommended_model: opus
7
7
  model_tier: medium
8
8
  model_justification: Levantamento estruturado de requisitos arquiteturais a partir de PRD e FRD, seguido da condução do fluxo de engenharia existente
9
9
  ---
10
10
 
11
11
  # ARD a partir do produto (Architecture Requirements Document)
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
14
18
 
15
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.
16
20
 
17
- > ⚠️ **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.
18
22
 
19
23
  Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entender o contexto do que foi pedido.
20
24
  <requirement>
@@ -41,12 +45,12 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
41
45
 
42
46
  | Passo | Skill | Condição |
43
47
  |-------|-------|----------|
44
- | Gate 1: Reconhecer o contexto | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_REPO` 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 |
45
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) |
46
50
 
47
51
  ## Resultado final
48
52
  - Um **resumo dos requisitos arquiteturais** confirmado pelo usuário (Gate 3), entregue como insumo ao `eng.create-ard`
49
- - 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`)
50
54
  - Rascunhos WIP, se houver, em `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`; o documento canônico é o ARD
51
55
  - O arquivo final no mesmo idioma da interação do usuário
52
56
 
@@ -60,7 +64,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
60
64
 
61
65
  ### Gate 1: Reconhecer o contexto
62
66
  1. Valide o `ENV.md` (regra geral de produto) e avise que o ARD é um documento de engenharia.
63
- 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_REPO` 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`).
64
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.
65
69
 
66
70
  ### Gate 2: Levantar os requisitos arquiteturais em termos de produto
@@ -3,13 +3,17 @@ name: prod.spec.breakdown
3
3
  description: Quebra uma especificação de produto grande (Documento de Requisitos de Produto ou Documento de Requisitos Funcionais) em fatias gerenciáveis — versões, épicos e histórias — sem perder o objetivo de valor.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: claude-sonnet-4-20250514
6
+ recommended_model: opus
7
7
  model_tier: high
8
8
  model_justification: Breakdown de produto exige julgamento de valor, sequenciamento e decomposição em entregas incrementais
9
9
  ---
10
10
 
11
11
  # Quebra de especificação (breakdown)
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Este comando transforma uma especificação **grande demais para executar de uma vez** em um **plano detalhado (breakdown)**: versões / releases, épicos e esboço de histórias ou tarefas — com foco em **valor perceptível ao usuário**, não só em camadas técnicas.
14
18
 
15
19
  Antes de iniciar, revise as regras invioláveis em `$PROD_RULES/**/*`. Se a variável for desconhecida, leia `.$IDE/rules/product/**/*.*`.
@@ -48,7 +52,7 @@ Utilize o `$ARGUMENTS` como ponto de partida (caminho da spec, nome da feature o
48
52
  |-------|-------|----------|
49
53
  | Pré-requisitos (item 2) | `/prod.spec.prd` | Se não houver spec pai e o usuário aceitar criar o PRD |
50
54
  | Pré-requisitos (item 2) | `/prod.spec.frd` | Se não houver spec pai e o usuário aceitar criar o FRD |
51
- | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_REPO` estiver no ENV.md (best-effort) |
55
+ | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver no ENV.md (best-effort) |
52
56
  | Resultado esperado (materialização) | `/prod.spec.epic` | Se o usuário aprovar criar os arquivos de épico a partir do breakdown (nunca automaticamente) |
53
57
  | Resultado esperado (materialização) | `/prod.spec.issue` | Se o usuário aprovar criar os arquivos de história ou tarefa a partir do breakdown (nunca automaticamente) |
54
58
 
@@ -58,10 +62,10 @@ O artefato de breakdown segue o template `$PROD_TEMPLATES/prod-breakdown-templat
58
62
 
59
63
  ## Busca no Central Docs (condicional)
60
64
 
61
- Se `CENTRAL_DOCS_REPO` estiver no `ENV.md`:
65
+ Se `CENTRAL_DOCS_STORAGE` estiver no `ENV.md`:
62
66
 
63
67
  1. `jarvis docs sync --silent` (best-effort)
64
- 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`
65
69
  3. Usar como contexto; se não achar, seguir com arquivos locais em `$PROD_DOCS`
66
70
 
67
71
  ## Sessões
@@ -3,13 +3,17 @@ name: prod.spec.clarify
3
3
  description: Identificar áreas subespecificadas na especificação da feature atual fazendo até 5 perguntas de esclarecimento altamente direcionadas e incorporando as respostas de volta na spec.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: gpt-4o
6
+ recommended_model: opus
7
7
  model_tier: medium
8
8
  model_justification: Esclarecimento de specs requer análise estruturada e formulação de perguntas, mas segue processo bem definido
9
9
  ---
10
10
 
11
11
  ## Clarify workflow
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Detectar e reduzir ambiguidades ou pontos de decisão ausentes na especificação da feature ativa e registrar os esclarecimentos diretamente no arquivo da spec.
14
18
 
15
19
  Rascunhos WIP (se houver) em `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`. O heading `### Session YYYY-MM-DD` é um log **dentro da spec canônica** — não é a pasta `$SESSIONS_DIR`.
@@ -3,13 +3,17 @@ name: prod.spec.discovery
3
3
  description: Investigação inicial de uma ideia: entrevista o usuário sobre a ideia, o problema, os requisitos iniciais e a viabilidade, sem chutar, e registra um rascunho estruturado com veredito e próximo passo sugerido.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: claude-sonnet-4-20250514
6
+ recommended_model: opus
7
7
  model_tier: high
8
8
  model_justification: Discovery exige conduzir uma entrevista adaptativa, julgar evidências e registrar hipóteses sem presumir dados
9
9
  ---
10
10
 
11
11
  # Discovery (investigação inicial de uma ideia)
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Este comando conduz uma **entrevista** para investigar uma ideia ainda crua e registrar o resultado em um **rascunho estruturado**: o problema, o que precisaria ser verdade e se parece viável.
14
18
 
15
19
  Antes de iniciar, revise as regras invioláveis em `$PROD_RULES/**/*`.
@@ -44,7 +48,7 @@ O comando e o agente seguem obrigatoriamente `$PROD_RULES` (`prod-rules.md`):
44
48
  | Passo | Skill | Condição |
45
49
  |-------|-------|----------|
46
50
  | Regras do framework / Passo 4 — A entrevista | `prod.discovery-interviewer` (agente) | Sempre — conduz a entrevista, e o comando segue a postura dele |
47
- | Passo 2 — Reconhecer o projeto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_REPO` estiver configurado |
51
+ | Passo 2 — Reconhecer o projeto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado |
48
52
  | Passo 2 — Reconhecer o projeto | `/jarvis-context-detect` | Para calibrar a profundidade da entrevista |
49
53
  | Passo 2 — Reconhecer o projeto | `/eng-backend-arch-c4` | Só com a confirmação do usuário; o retorno é tratado como suposição a validar |
50
54
  | Passo 2 — Reconhecer o projeto | `/eng-platform` + `PLATFORM_SPECIALIZATIONS` | Só com a confirmação do usuário; o retorno é tratado como suposição a validar |
@@ -70,7 +74,7 @@ Antes de perguntar, consulte o que já existe:
70
74
 
71
75
  - Documentos em `$PROD_DOCS` (PRDs, FRDs e discoveries), para não duplicar o que já está especificado
72
76
  - O código e os últimos commits, quando ajudarem a embasar a viabilidade
73
- - `jarvis-docs-central`, se `CENTRAL_DOCS_REPO` estiver configurado
77
+ - `jarvis-docs-central`, se `CENTRAL_DOCS_STORAGE` estiver configurado
74
78
  - `jarvis-context-detect`, para calibrar a profundidade da entrevista
75
79
  - `eng-backend-arch-c4` e `eng-platform` (+ `PLATFORM_SPECIALIZATIONS`) são skills de engenharia: só consulte **com a confirmação do usuário**, e trate o retorno como **suposição a validar**, não como fato
76
80
 
@@ -3,13 +3,17 @@ name: prod.spec.epic
3
3
  description: Fluxo de trabalho para criação de épicos que agrupam histórias de usuários e tarefas relacionadas seguindo as diretrizes do Product Spec Kit.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: gpt-4o
6
+ recommended_model: opus
7
7
  model_tier: medium
8
8
  model_justification: Criação de épicos segue templates estruturados e requer compreensão de contexto de produto
9
9
  ---
10
10
 
11
11
  # Crie um fluxo de trabalho épico
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
14
18
 
15
19
  Este fluxo de trabalho orienta você na criação de um épico usando `$PROD_TEMPLATES/prod-epic-template.md`. épicos agrupam histórias de usuários relacionadas que oferecem uma funcionalidade significativa.
@@ -37,9 +41,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
37
41
 
38
42
  | Passo | Skill | Condição |
39
43
  |-------|-------|----------|
40
- | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_REPO` estiver definido no ENV.md, antes de criar o épico |
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 |
41
45
  | Próximas etapas | `/prod.spec.issue` | Depois de criar o épico, se o usuário quiser escrever as histórias ou tarefas relacionadas |
42
- | Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo epic`) | Se `CENTRAL_DOCS_REPO` estiver definido, o épico estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
43
46
 
44
47
  ## Resultado final
45
48
  - Por padrão, use o modelo `$PROD_TEMPLATES/prod-epic-template.md` integralmente
@@ -118,48 +121,17 @@ Após a aprovação do usuário:
118
121
 
119
122
  ## Busca no Central Docs (condicional)
120
123
 
121
- Se `CENTRAL_DOCS_REPO` definido no ENV.md, antes de criar o épico:
124
+ Se `CENTRAL_DOCS_STORAGE` definido no ENV.md, antes de criar o épico:
122
125
 
123
- - Executar busca automática no central-docs:
126
+ - Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
124
127
  ```bash
125
128
  jarvis docs sync --silent
126
129
  ```
127
- - Buscar PRD e épicos existentes relacionados usando o contexto do usuário
128
- - 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
129
132
  - Se não encontrado: continuar com fluxo normal
130
133
 
131
- ## Publicação no Central Docs (condicional)
132
-
133
- Após salvar o épico localmente e obter aprovação do usuário:
134
-
135
- 1. Se `CENTRAL_DOCS_REPO` definido no ENV.md:
136
- - Perguntar ao usuário:
137
- ```
138
- Deseja publicar este épico no repositório central de documentação?
139
- - ( ) Sim, publicar agora
140
- - ( ) Não, vou publicar depois manualmente
141
- ```
142
-
143
- 2. Se **Sim**:
144
- - Extrair o slug do nome do arquivo (ex: `epic-123-checkout.md` → `checkout`)
145
- - Executar:
146
- ```bash
147
- jarvis docs publish \
148
- --file {caminho_do_epico} \
149
- --tipo epic \
150
- --feature {slug}
151
- ```
134
+ ## Central docs
152
135
 
153
- 3. Informar resultado:
154
- - ✅ Sucesso: "Épico publicado no central-docs. MR criado: [URL]"
155
- - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
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.
156
137
 
157
- 4. Se **Não**:
158
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo epic --feature {slug}`"
159
-
160
- > **Nota**: A publicação cria um Merge Request no GitLab. O épico só será visível no central-docs após aprovação e merge do MR.
161
-
162
- Utilize o que o usuário fornecer analisar em:
163
- <requirement>
164
- #$ARGUMENTS
165
- </requirement>
@@ -3,13 +3,17 @@ name: prod.spec.frd
3
3
  description: Fluxo para criação de FRD (Functional Requirements Document), que auxilia na definição detalhada dos requisitos funcionais de uma feature
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: claude-sonnet-4-20250514
6
+ recommended_model: opus
7
7
  model_tier: high
8
8
  model_justification: FRDs requerem análise detalhada de requisitos funcionais, comportamento de usuário e especificações técnicas
9
9
  ---
10
10
 
11
11
  # FRD - Functional Requirements Document
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Este comando tem como objetivo criar, atualizar ou editar uma FRD seguindo o template especificado e as instruções.
14
18
 
15
19
  Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
@@ -30,8 +34,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
30
34
 
31
35
  | Passo | Skill | Condição |
32
36
  |-------|-------|----------|
33
- | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_REPO` estiver definido no ENV.md |
34
- | Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo frd`) | Se `CENTRAL_DOCS_REPO` estiver definido, o FRD estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
37
+ | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md |
35
38
 
36
39
  ## Princípios Fundamentais
37
40
  1. **Sempre use o template** `$PROD_TEMPLATES/prod-frd-template.md` para o output final
@@ -56,20 +59,20 @@ A FRD não é um épico, história ou task: ela serve como documento de detalham
56
59
 
57
60
  ## Busca no Central Docs (condicional)
58
61
 
59
- Se `CENTRAL_DOCS_REPO` definido no ENV.md:
62
+ Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
60
63
 
61
64
  1. **Buscar PRD correspondente:**
62
- - Executar busca automática no central-docs:
65
+ - Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
63
66
  ```bash
64
67
  jarvis docs sync --silent
65
68
  ```
66
- - Buscar PRD relacionado usando:
69
+ - Buscar o PRD relacionado em `$PROD_DOCS` (documento de trabalho; o Central docs não guarda PRD) usando:
67
70
  - Nome/contexto fornecido pelo usuário
68
71
  - Jira ID (se disponível)
69
72
  - Tags semânticas
70
- - Se PRD encontrado no central-docs:
73
+ - Se o PRD for encontrado em `$PROD_DOCS`:
71
74
  - Carregar automaticamente como base para o FRD
72
- - Informar ao usuário: "✅ PRD encontrado no central-docs: [nome]"
75
+ - Informar ao usuário: "✅ PRD encontrado: [caminho]"
73
76
  - Passar como contexto para o Gate 1 (Fluxo de Trabalho, abaixo)
74
77
  - Se não encontrado:
75
78
  - Perguntar ao usuário se tem PRD localmente
@@ -183,36 +186,7 @@ O sistema deve validar os dados do formulário.
183
186
  - Se for uma spec nova:
184
187
  - Salve na pasta `$PROD_DOCS` seguindo todos os padrões de nomenclatura e estrutura de pastas já estabelecidos em `$PROD_RULES/**/*`
185
188
 
186
- ## Publicação no Central Docs (condicional)
187
-
188
- Após salvar o FRD localmente e obter aprovação do usuário:
189
-
190
- 1. Se `CENTRAL_DOCS_REPO` definido no ENV.md:
191
- - Perguntar ao usuário:
192
- ```
193
- Deseja publicar este FRD no repositório central de documentação?
194
- - ( ) Sim, publicar agora
195
- - ( ) Não, vou publicar depois manualmente
196
- ```
197
-
198
- 2. Se **Sim**:
199
- - Extrair o slug do nome do arquivo (ex: `frd-wallet-saque.md` → `wallet-saque`)
200
- - Executar:
201
- ```bash
202
- jarvis docs publish \
203
- --file {caminho_do_frd} \
204
- --tipo frd \
205
- --feature {slug}
206
- ```
207
-
208
- 3. Informar resultado:
209
- - ✅ Sucesso: "FRD publicado no central-docs. MR criado: [URL]"
210
- - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
211
-
212
- 4. Se **Não**:
213
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo frd --feature {slug}`"
189
+ ## Central docs
214
190
 
215
- 5. Se `CENTRAL_DOCS_REPO` não estiver definido:
216
- - Informar: "Para habilitar publicação automática, configure `CENTRAL_DOCS_REPO` no ENV.md"
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.
217
192
 
218
- > **Nota**: A publicação cria um Merge Request no GitLab. O FRD só será visível no central-docs após aprovação e merge do MR.
@@ -3,13 +3,17 @@ name: prod.spec.issue
3
3
  description: Criar um especificação de issues como Histórias de Usuário, Tarefas técnicas e bugs, seguindo as melhores práticas de gestão de produto e projeto.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: gpt-4o
6
+ recommended_model: opus
7
7
  model_tier: medium
8
8
  model_justification: Criação de issues é estruturada e segue templates, requer boa compreensão mas não raciocínio extremamente complexo
9
9
  ---
10
10
 
11
11
  # Fluxo de Criação de Issues
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*.*`.
14
18
 
15
19
  Este fluxo orienta você na criação de issues (histórias de usuários, tarefas, bugs etc) bem definidas usando o template `$PROD_TEMPLATES/prod-issue-template.md`. Cada issue deve ser uma unidade de trabalho autocontida que pode ser completada dentro de uma única sprint.
@@ -3,13 +3,15 @@ name: prod.spec
3
3
  description: Guia o usuário para construir especificações macro ou micro de produto, como PRDs, histórias, tarefas, RFDs e outros.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: claude-sonnet-4-20250514
6
+ recommended_model: opus
7
7
  model_tier: medium
8
8
  model_justification: Especificações de produto requerem compreensão de requisitos e estruturação de documentos
9
9
  ---
10
10
 
11
11
  # Iniciar uma especificação
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+
13
15
  Estas instruções ajudam a orientar o usuário que deseja começar a construir uma especificação. Esta especificação pode variar desde um PRD, história de usuário até tarefas. Devemos orientá-lo nessa construção de forma que a especificação, seja ela macro ou micro seja criada de acordo com as instruções e padrões do projeto.
14
16
 
15
17
  ## Quando usar
@@ -3,13 +3,17 @@ name: prod.spec.prd
3
3
  description: Alterar ou criar um especificação de produto PRD - Product Requirement Document seguindo o template especificado, regras invioláveis, possibilitando a utilização por agentes de IA e humanos.
4
4
  auto_execution_mode: 3
5
5
  env_file: "@/ENV.md"
6
- recommended_model: claude-sonnet-4-20250514
6
+ recommended_model: opus
7
7
  model_tier: high
8
8
  model_justification: PRDs requerem análise profunda de requisitos, estruturação de documentos complexos e compreensão de contexto de negócio
9
9
  ---
10
10
 
11
11
  # PRD - Product Requirement Document
12
12
 
13
+ > 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
14
+ >
15
+ > 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
16
+
13
17
  Este comando tem como objetivo criar, atualizar ou editar uma PRD seguindo o template especificado e as instruções.
14
18
 
15
19
  Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
@@ -29,8 +33,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
29
33
 
30
34
  | Passo | Skill | Condição |
31
35
  |-------|-------|----------|
32
- | Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_REPO` estiver definido no ENV.md (iteração de PRD existente) |
33
- | Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo prd`) | Se `CENTRAL_DOCS_REPO` estiver definido, o PRD estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
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) |
34
37
 
35
38
  ## Princípios Fundamentais
36
39
  1. **Sempre use o template** `$PROD_TEMPLATES/prod-prd-template.md` para o output final
@@ -41,20 +44,20 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
41
44
 
42
45
  ## Busca no Central Docs (condicional)
43
46
 
44
- Se `CENTRAL_DOCS_REPO` definido no ENV.md:
47
+ Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
45
48
 
46
49
  1. **Para iteração de PRD existente:**
47
- - Executar busca automática no central-docs:
50
+ - Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
48
51
  ```bash
49
52
  jarvis docs sync --silent
50
53
  ```
51
- - Buscar PRD relacionado usando:
54
+ - Buscar o PRD relacionado em `$PROD_DOCS` (documento de trabalho; o Central docs não guarda PRD) usando:
52
55
  - Nome/contexto do PRD fornecido pelo usuário
53
56
  - Jira ID (se disponível)
54
57
  - Tags semânticas
55
- - Se PRD encontrado no central-docs:
58
+ - Se o PRD for encontrado em `$PROD_DOCS`:
56
59
  - Carregar automaticamente como base para iteração
57
- - Informar ao usuário: "✅ PRD encontrado no central-docs: [nome]"
60
+ - Informar ao usuário: "✅ PRD encontrado: [caminho]"
58
61
  - Usar como contexto para o Gate 1 (Fluxo de Trabalho, abaixo)
59
62
  - Se não encontrado:
60
63
  - Perguntar ao usuário se tem PRD localmente
@@ -170,37 +173,7 @@ Quais métricas? A) Engajamento B) Receita C) Outro
170
173
  - Se for uma spec nova:
171
174
  - Salve na pasta `$PROD_DOCS` seguindo todos os padrões de nomenclatura e estrutura de pastas já estabelecidos em `$PROD_RULES/**/*`
172
175
 
173
- ## Publicação no Central Docs (condicional)
174
-
175
- Após salvar o PRD localmente e obter aprovação do usuário:
176
-
177
- 1. Se `CENTRAL_DOCS_REPO` definido no ENV.md:
178
- - Perguntar ao usuário:
179
- ```
180
- Deseja publicar este PRD no repositório central de documentação?
181
- - ( ) Sim, publicar agora
182
- - ( ) Não, vou publicar depois manualmente
183
- ```
184
-
185
- 2. Se **Sim**:
186
- - Extrair o slug do nome do arquivo (ex: `prd-wallet.md` → `wallet`)
187
- - Executar:
188
- ```bash
189
- jarvis docs publish \
190
- --file {caminho_do_prd} \
191
- --tipo prd \
192
- --feature {slug}
193
- ```
194
-
195
- 3. Informar resultado:
196
- - ✅ Sucesso: "PRD publicado no central-docs. MR criado: [URL]"
197
- - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
198
-
199
- 4. Se **Não**:
200
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo prd --feature {slug}`"
201
-
202
- 5. Se `CENTRAL_DOCS_REPO` não estiver definido:
203
- - Informar: "Para habilitar publicação automática, configure `CENTRAL_DOCS_REPO` no ENV.md"
176
+ ## Central docs
204
177
 
205
- > **Nota**: A publicação cria um Merge Request no GitLab. O PRD só será visível no central-docs após aprovação e merge do MR.
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.
206
179
 
@@ -19,7 +19,7 @@ evitando leitura desnecessária de arquivos e economizando tokens.
19
19
  | Passo | Skill | Condição |
20
20
  |-------|-------|----------|
21
21
  | Passo 0.5 › 2. Para cada tecnologia identificada | `context7` (MCP: `resolve-library-id`, `query-docs`) | Se houver variável de stack com valor no ENV.md (uma consulta por tecnologia identificada); sem variável de stack, pula silenciosamente |
22
- | Passo 2 — Sincronizar Documentação Central | `/jarvis-docs-central` | Se `CENTRAL_DOCS_REPO` estiver configurado no ENV.md (Modo 1: Buscar Docs, via Skill tool) |
22
+ | Passo 2 — Sincronizar Documentação Central | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md (Modo 1: Buscar Docs, via Skill tool) |
23
23
  | Passo 4 › Menu TECH LEAD › opções A a H | `/eng.start`, `/eng.debug`, `/eng.create-ard`, `/eng.create-ard-from-code`, `/eng.create-rfc`, `/eng.build-tech-spec`, `/eng.review`, `/eng.docs` | Se `POSITION=TECH LEAD` e `AREA=ENGINEERING` (menu dedicado) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
24
24
  | Passo 4 › Menu CTO › opções A a D | `/eng.review`, `/eng.create-ard`, `/eng.create-rfc`, `/eng.build-tech-spec` | Se `POSITION` for CTO ou equivalente (menu dedicado, para qualquer `AREA`) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
25
25
  | Passo 4 › Menu ENGINEERING + DATA › opções A a C | `/data.new-pipeline`, `/eng-data`, `/data.contract` | Se `AREA=ENGINEERING` e `HUB=DATA` e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
@@ -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_REPO` 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
- - Se `CENTRAL_DOCS_REPO` 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
159
+ - Se `CENTRAL_DOCS_STORAGE` vazio → pula silenciosamente
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:
@@ -1,49 +0,0 @@
1
- /**
2
- * @fileoverview Cache best-effort via `redis-cli` para fetch-file.js/publish-file.js.
3
- * Nunca lança — falha de leitura/escrita no cache nunca quebra o fluxo principal
4
- * (mesmo contrato do `fetch-file.sh`/`publish-file.sh` originais, que faziam
5
- * `redis-cli ... 2>/dev/null || true`).
6
- * @module docs/redis-cache
7
- */
8
-
9
- import { execFileSync } from "node:child_process";
10
-
11
- /**
12
- * @param {string} key
13
- * @returns {string} valor em cache, ou "" se não houver (ou `redis-cli` falhar)
14
- */
15
- export function redisGet(key) {
16
- try {
17
- return execFileSync("redis-cli", ["GET", key], {
18
- encoding: "utf-8",
19
- stdio: ["ignore", "pipe", "ignore"],
20
- }).trim();
21
- } catch {
22
- return "";
23
- }
24
- }
25
-
26
- /**
27
- * @param {string} key
28
- * @param {string|number} ttlSeconds
29
- * @param {string} value
30
- */
31
- export function redisSetex(key, ttlSeconds, value) {
32
- try {
33
- execFileSync("redis-cli", ["-x", "SETEX", key, String(ttlSeconds)], {
34
- input: value,
35
- stdio: ["pipe", "ignore", "ignore"],
36
- });
37
- } catch {
38
- // best-effort
39
- }
40
- }
41
-
42
- /** @param {string} key */
43
- export function redisDel(key) {
44
- try {
45
- execFileSync("redis-cli", ["DEL", key], { stdio: "ignore" });
46
- } catch {
47
- // best-effort
48
- }
49
- }
@@ -1,42 +0,0 @@
1
- import { fileURLToPath } from "node:url";
2
- import { fetchRawFile } from "./api.js";
3
-
4
- /**
5
- * Busca o conteúdo bruto de um arquivo no central-docs via adapter.
6
- * Usada por `jarvis vcs fetch-raw`.
7
- * @param {string} filePath - Path do arquivo dentro do repo central-docs
8
- * @param {string} [ref] - Branch/ref (padrão: "main")
9
- */
10
- export async function runFetchRaw(filePath, ref = "main") {
11
- const repo = process.env.CENTRAL_DOCS_REPO;
12
-
13
- if (!filePath) {
14
- console.error("Uso: jarvis vcs fetch-raw <file-path> [ref]");
15
- process.exit(1);
16
- }
17
- if (!repo) {
18
- console.error("CENTRAL_DOCS_REPO não definido");
19
- process.exit(1);
20
- }
21
-
22
- try {
23
- const content = await fetchRawFile(repo, filePath, ref);
24
- process.stdout.write(content);
25
- } catch (err) {
26
- if (err.code === 404) {
27
- console.error(`⚠️ Arquivo não encontrado no central-docs: ${filePath}`);
28
- process.exit(2);
29
- }
30
- if (err.code === 401 || err.code === 403) {
31
- console.error("❌ Token sem permissão para acessar o repositório");
32
- process.exit(1);
33
- }
34
- console.error(err.message);
35
- process.exit(1);
36
- }
37
- }
38
-
39
- // Compatibilidade: continua funcionando como `node bin/lib/vcs/fetch-raw.js <file-path> [ref]`
40
- if (fileURLToPath(import.meta.url) === process.argv[1]) {
41
- await runFetchRaw(process.argv[2], process.argv[3] || "main");
42
- }