jarvis-ai-framework 3.0.0 → 4.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 (59) hide show
  1. package/agents/README.md +2 -0
  2. package/agents/engineering/eng.advisor.agent.md +56 -0
  3. package/agents/product/prod.discovery-interviewer.md +1 -1
  4. package/bin/README.md +14 -14
  5. package/bin/commands/docs-publish.js +50 -92
  6. package/bin/commands/docs-sync.js +30 -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 +89 -161
  10. package/bin/lib/docs/storage/build-index.js +87 -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 +14 -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.integrations-rules.md +5 -2
  18. package/rules/product/prod-rules.md +4 -5
  19. package/rules-on-demand/engineering/eng.pre-pr-rules.md +1 -1
  20. package/rules-on-demand/engineering/eng.start-rules.md +2 -0
  21. package/rules-on-demand/product/prod.guided-rules.md +104 -0
  22. package/skills/eng-global-task-comment/SKILL.md +1 -1
  23. package/skills/jarvis-docs-central/README.md +57 -269
  24. package/skills/jarvis-docs-central/SKILL.md +126 -296
  25. package/skills/jarvis-init/SKILL.md +47 -7
  26. package/templates/AGENTS.md +2 -0
  27. package/templates/ENV-template.md +30 -5
  28. package/templates/engineering/ARD-template.md +39 -6
  29. package/templates/engineering/advisor-template.md +65 -0
  30. package/templates/engineering/architecture-template.md +53 -4
  31. package/templates/product/prod-breakdown-template.md +20 -2
  32. package/templates/product/prod-discovery-template.md +24 -1
  33. package/templates/product/prod-epic-template.md +32 -1
  34. package/templates/product/prod-frd-template.md +29 -2
  35. package/templates/product/prod-issue-template.md +36 -1
  36. package/templates/product/prod-prd-template.md +33 -2
  37. package/workflows/engineering/eng.build-tech-spec.md +2 -2
  38. package/workflows/engineering/eng.create-ard-from-code.md +9 -11
  39. package/workflows/engineering/eng.create-ard.md +15 -13
  40. package/workflows/engineering/eng.create-rfc.md +8 -10
  41. package/workflows/engineering/eng.plan.md +4 -26
  42. package/workflows/engineering/eng.pr.md +7 -39
  43. package/workflows/engineering/eng.pre-pr.md +7 -36
  44. package/workflows/engineering/eng.rpa.robot.md +4 -2
  45. package/workflows/engineering/eng.start.md +38 -37
  46. package/workflows/engineering/eng.work.md +7 -22
  47. package/workflows/product/prod.roadmap.preview.md +4 -1
  48. package/workflows/product/prod.spec.ard.md +7 -3
  49. package/workflows/product/prod.spec.breakdown.md +7 -3
  50. package/workflows/product/prod.spec.clarify.md +5 -1
  51. package/workflows/product/prod.spec.discovery.md +7 -3
  52. package/workflows/product/prod.spec.epic.md +13 -11
  53. package/workflows/product/prod.spec.frd.md +15 -13
  54. package/workflows/product/prod.spec.issue.md +5 -1
  55. package/workflows/product/prod.spec.md +3 -1
  56. package/workflows/product/prod.spec.prd.md +15 -13
  57. package/workflows/warm-up.md +3 -3
  58. package/bin/lib/docs/redis-cache.js +0 -49
  59. package/bin/lib/vcs/fetch-raw.js +0 -42
@@ -16,6 +16,7 @@ A pasta `templates/` contem **modelos de documentos** usados pelo framework para
16
16
  templates/
17
17
  ├── engineering/ # Templates tecnicos
18
18
  │ ├── architecture-template.md # Template de arquitetura
19
+ │ ├── advisor-template.md # Prompts e auditoria do Advisor
19
20
  │ ├── ARD-template.md # Architecture Review Document
20
21
  │ ├── RFC-template.md # Request For Comments
21
22
  │ ├── RFC-Playbook@1.0.0.md # Playbook para RFCs
@@ -105,6 +106,7 @@ Use chaves `{...}` para indicar campos a serem preenchidos:
105
106
  | Template | Uso | Comando |
106
107
  |----------|-----|---------|
107
108
  | `architecture-template.md` | Design arquitetural | `/eng.start` |
109
+ | `advisor-template.md` | Prompts do Advisor e modelo de auditoria | `/eng.start` |
108
110
  | `ARD-template.md` | Revisao de arquitetura | `/eng.create-ard` |
109
111
  | `RFC-template.md` | Proposta de mudanca | `/eng.create-rfc` |
110
112
  | `tech-spec-template.md` | Especificacao tecnica | `/eng.build-tech-spec` |
@@ -58,12 +58,20 @@ RULES_FOLDER=.$IDE/rules
58
58
  SESSIONS_DIR=.jarvis/sessions
59
59
 
60
60
  # Pastas de produto (derivadas das de cima — em geral não precisa mexer)
61
+ # PROD_DOCS: no projeto único (sem workspace), o /jarvis-init grava docs/jarvis/product
62
+ # (com docs/jarvis/* no .gitignore); no modo workspace, $DOCS_FOLDER/$PROD_FOLDER_NAME.
61
63
  PROD_FOLDER_NAME=product
62
64
  PROD_RULES=$RULES_FOLDER/$PROD_FOLDER_NAME
63
65
  PROD_FLOWS=.$IDE/$FLOWS_FOLDER
64
66
  PROD_TEMPLATES=.$IDE/$TEMPLATES_FOLDER/$PROD_FOLDER_NAME
65
67
  PROD_DOCS=$DOCS_FOLDER/$PROD_FOLDER_NAME
66
68
 
69
+ # Modo de condução dos comandos de produto (prod.*) e do eng.create-ard.
70
+ # product-led = para PMs: fluxo direto, sem explicações extras (padrão se vazio)
71
+ # developer-guided = para devs e futuros PMs: uma pergunta por vez, explica cada termo e etapa
72
+ # Perguntado sempre pelo /jarvis-init. Para trocar, rode o /jarvis-init ou edite aqui.
73
+ PROD_MODE=
74
+
67
75
 
68
76
  # --- Especializações por área -------------------------------------------------
69
77
  # Skills especializados que o Jarvis carrega junto com o skill base de cada área.
@@ -144,6 +152,16 @@ SMTP=[google, ses, sendgrid]
144
152
  RTK_ENABLED=false
145
153
 
146
154
 
155
+ # --- Advisor (opcional) ------------------------------------------------------
156
+ # Modelos oferecidos quando o usuário escolhe usar o Advisor no início do eng.start,
157
+ # separados por vírgula. Até 4 viram opções da pergunta; o resto fica em "Outro".
158
+ # Vazio ou ausente = o Advisor usa "Sonnet 5.5" (fallback).
159
+ # Tradução para a IDE pela família (primeira palavra, em minúsculas: Sonnet → sonnet,
160
+ # Opus → opus, Fable → fable). No Claude Code só a família é respeitada: "Opus 5.5"
161
+ # e "Opus 5" abrem o mesmo modelo; remova um deles se quiser só opções distintas.
162
+ ADVISOR_MODELS="Sonnet 5.5,Opus 5.5,Opus 5,Fable 5.1"
163
+
164
+
147
165
  # --- Data Engineering (só se HUB=DATA) ---------------------------------------
148
166
  # Obrigatório quando HUB=DATA. Omitir o bloco inteiro se o HUB for outro.
149
167
  DATA_ORCHESTRATOR=[airflow, prefect, dagster, glue-scheduler]
@@ -188,11 +206,18 @@ JARVIS_PROJECT=https://github.com/phelipperibeiro/jarvis-framework
188
206
 
189
207
 
190
208
  # --- Central docs (opcional) -------------------------------------------------
191
- # Repo de documentação canônica (PRD, FRD, ARD, RFC). Em branco = desligado.
192
- CENTRAL_DOCS_REPO=
209
+ # Onde fica a documentação canônica (PRD, FRD, épicos, ARD, RFC). Em branco = desligado.
210
+ # Nunca dentro do versionamento de um repositório de código.
211
+ # CENTRAL_DOCS_STORAGE: filesystem (s3 e gdrive virão nas issues #144 e #145)
212
+ # CENTRAL_DOCS_LOCATION: pasta do Central docs, relativa à pasta do workspace ou absoluta.
213
+ # Padrão do /jarvis-init: ./central-docs (modo workspace, no .gitignore do workspace)
214
+ # ou docs/jarvis/central-docs (projeto único, com docs/jarvis/* no .gitignore).
215
+ # Se a pasta for um clone de um repositório de documentação (tem .git): git pull antes
216
+ # de ler e branch + commit + push + PR ao publicar. Sem .git: grava direto na pasta.
217
+ CENTRAL_DOCS_STORAGE=
218
+ CENTRAL_DOCS_LOCATION=
219
+ # Só quando a pasta tem .git: branch lida no pull e branch base dos PRs.
193
220
  CENTRAL_DOCS_REF=main
194
221
  CENTRAL_DOCS_TARGET_BRANCH=main
195
- # Revisores padrão dos MRs (separados por vírgula).
222
+ # Revisores padrão dos PRs (separados por vírgula; vão na descrição).
196
223
  CENTRAL_DOCS_REVIEWERS=
197
- # TTL do cache opcional (redis-cli, se existir). 3600 = 1 hora.
198
- CENTRAL_DOCS_CACHE_TTL=3600
@@ -1,3 +1,39 @@
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
+ # Identificador único do ARD, em sequência (ex.: ARD-001). Vai no nome do arquivo.
7
+ id: [ARD-xxx]
8
+
9
+ # Título da arquitetura. Vai no título e, em kebab-case, no nome do arquivo.
10
+ name: [Título da Arquitetura]
11
+
12
+ # Versão do documento (X.Y.Z). Atualize a cada alteração.
13
+ version: [1.0.0]
14
+
15
+ # Em que ponto este ARD está no ciclo de vida.
16
+ # Opções: proposed | in_progress | in_review | approved
17
+ # proposed = proposta, ainda em discussão | in_progress = arquitetura em desenvolvimento
18
+ # in_review = em validação com os revisores | approved = finalizada e aprovada
19
+ status: [um dos valores acima]
20
+
21
+ # Documentos relacionados: RFC (proposta técnica), FRD (requisitos funcionais), PRD (requisitos de produto).
22
+ related: [RFC-xxx, FRD-xxx, PRD-xxx]
23
+
24
+ # Data de criação (YYYY-MM-DD).
25
+ created_at: [YYYY-MM-DD]
26
+
27
+ # Data da última alteração (YYYY-MM-DD).
28
+ updated_at: [YYYY-MM-DD]
29
+
30
+ # Quem criou o documento (Tech Lead ou arquiteto responsável).
31
+ created_by: [nome]
32
+
33
+ # Quem editou o documento por último.
34
+ last_editor: [nome]
35
+ ---
36
+
1
37
  # 🧱 ARD Template — Architecture Requirement Document
2
38
 
3
39
  **Arquivo:** /docs/engineering/ARD/ARD-xxx-nome-da-arquitetura.md
@@ -6,12 +42,9 @@
6
42
 
7
43
  ## 🏗️ ARD-[número] — [Título da Arquitetura]
8
44
 
9
- **Status:** Proposta / Em desenvolvimento / Em validação / Finalizada
10
- **Data:** [dd/mm/yyyy]
11
- **Autor:** [Tech Lead / Arquiteto responsável]
12
- **Revisores:** [Chapter Leads, Eng. de Plataforma, etc.]
13
- **Relacionado a:** [RFC-xxx], [FRD-xxx], [PRD-xxx]
14
- **Versão:** [1.0]
45
+ **Revisores:** [Chapter Leads, Eng. de Plataforma, etc.]
46
+
47
+ > Status, versão, datas, autor e documentos relacionados ficam no frontmatter (topo do arquivo).
15
48
 
16
49
  ---
17
50
 
@@ -0,0 +1,65 @@
1
+ # Advisor — prompts e auditoria
2
+
3
+ > Usado pelo `eng.start` (e, por exceção, pelo `eng.plan` e pelo `eng.work`) com o agente `eng.advisor.agent`. Os campos `{...}` são preenchidos pelo agente principal.
4
+
5
+ ## Prompt 1 — Carga inicial (uma vez por tarefa, na primeira questão em aberto)
6
+
7
+ ```
8
+ Você é o Advisor desta tarefa ({TASK_MANAGER_KEY}). Você esclarece as questões em aberto que eu enviar, uma por vez, e devolve a sugestão mais adequada; ela é adotada como decisão final. Eu (agente principal) faço a análise do card, a documentação, a execução e os registros.
9
+
10
+ Agora, somente leitura (não edite, não troque de branch, não faça commit; no GitHub, só consulta): leia as fontes de contexto do seu arquivo de agente — card, documentos de especificação ($PROD_DOCS, seguindo task_link e related_*), pastas de sessão ({SESSAO_ENG} e {SESSAO_PROD}) e, se preciso, o repositório {REPO}.
11
+
12
+ Etapas da tarefa:
13
+ | Etapa | O que acontece | Onde o Advisor entra |
14
+ | Alerta no início do eng.start | O usuário escolhe usar o Advisor e o modelo | Ainda não existe |
15
+ | eng.start | Escrevo o architecture.md; o que diverge do código ou é ambíguo vira "Questões em Aberto" | Aqui: você orienta cada questão |
16
+ | Orientação acatada | Atualizo o architecture.md e registro | Não |
17
+ | Registro da auditoria | Posto um comentário na issue com as questões e as suas sugestões (sem TASK_MANAGER, só no architecture.md) | Não |
18
+ | eng.plan / eng.work | Plano e implementação | Só por exceção: questão nova em aberto |
19
+ | Commit e PR | Um commit; o usuário valida em "Files changed" | Não |
20
+ | Merge e fechamento | O usuário faz o merge | Não |
21
+
22
+ Responda SOMENTE com "Contexto lido" + os caminhos que leu + uma frase de até 20 palavras sobre o objetivo da tarefa. Se o contexto for insuficiente para orientar, responda "Preciso de ajuda para localizar o contexto", dizendo onde procurou e o que precisa.
23
+ ```
24
+
25
+ ## Prompt 2 — Questão em aberto (uma mensagem por questão)
26
+
27
+ ```
28
+ Questão {QN} de {TOTAL} ({TASK_MANAGER_KEY}). Texto completo na seção 8 do architecture.md ({CAMINHO}).
29
+
30
+ Contexto: {por que a dúvida existe e o impacto na implementação}
31
+ Arquivos/componentes envolvidos: {arquivo — relação}
32
+ Dúvida: {o que precisa ser decidido}
33
+ Opções:
34
+ 1. {opção} — como funciona, vantagens, desvantagens, impacto
35
+ 2. {opção} — ...
36
+ 3. {opção} — ...
37
+ 4. Outra (sua, se houver)
38
+ Sugestão do agente principal: {N}, porque {motivo}
39
+
40
+ Analise o repositório só se precisar para ter certeza (sem chutar). Responda (até ~250 palavras):
41
+ 1. SUGESTÃO DO ADVISOR (opção 1-3 ou a 4 detalhada) · 2. DIVERGÊNCIA · 3. BASE · 4. ANÁLISE NO REPOSITÓRIO · 5. RELAÇÃO COM OUTRAS TAREFAS · 6. CERTEZA (escrito / confirmado no código / inferência). Não altere arquivos; aponte o risco se uma opção for destrutiva ou fugir do card.
42
+ ```
43
+
44
+ ## Modelo do comentário de auditoria (postado pelo agente principal)
45
+
46
+ ```
47
+ ## Auditoria — questões do architecture.md
48
+
49
+ Questões levantadas no `architecture.md` desta issue e a sugestão do Advisor ({modelo}). **A sugestão do Advisor prevalece e é a decisão adotada.** Análise, documentação, execução e este registro são do agente principal.
50
+
51
+ ### {QN} — {título}
52
+ - **Contexto:** {...}
53
+ - **Arquivos envolvidos:** {...}
54
+ - **Opções:** 1 — {...} · 2 — {...} · 3 — {...} · 4 — Outra
55
+ - **Sugestão do agente principal:** {N}
56
+ - **Sugestão do Advisor (decisão adotada):** **{N}**
57
+ - **Divergência:** {motivo técnico, ou "sem divergência"}
58
+ - **Base:** {...}
59
+ - **Análise no repositório:** {arquivos e linhas, ou "não foi necessário"}
60
+ - **Certeza:** {alta|média|baixa} — escrito: {...}; confirmado no código: {...}; inferência: {...}
61
+ - **Impacto da decisão:** {...}
62
+ - **Levantada em:** {eng.start | eng.plan | eng.work} (fora do eng.start, é lacuna a citar no PR)
63
+
64
+ Link do PR: {#PR} (preenchido quando existir; se a decisão for revista na execução, atualizar este mesmo comentário)
65
+ ```
@@ -5,7 +5,9 @@
5
5
 
6
6
  > **Criado em:** {DATA}
7
7
  > **Issue:** {JIRA_ISSUE_KEY}
8
- > **Status:** 🔄 Em Revisão | ✅ Aprovado | ❌ Rejeitado
8
+ > **Branch base:** {main | dev | outra — perguntada no eng.start; destino do PR no eng.pr}
9
+ > **Status:** 🔄 Em Revisão | ✅ Aprovado | ❌ Rejeitado
10
+ > **Advisor:** {modelo escolhido no início do eng.start} | não utilizado
9
11
 
10
12
  ---
11
13
 
@@ -245,9 +247,56 @@ graph TD
245
247
 
246
248
  ## 8. Questões em Aberto
247
249
 
248
- | ID | Questão | Responsável | Deadline | Status |
249
- | --- | ------------------------------ | ----------- | -------- | -------- |
250
- | Q1 | {questão ainda não respondida} | {quem} | {data} | 🔄 Aberta |
250
+ > Tudo que for **diferente do código ou ambíguo no card** vira uma questão aqui, detalhada a ponto de outro agente entendê-la sem reconstruir a análise. No mínimo 3 opções, mais a **4 — Outra**.
251
+ > **Com Advisor** (cabeçalho), a sugestão do Advisor prevalece e é a decisão adotada; o agente principal não a substitui nem contesta. **Sem Advisor**, "Sugestão do Sub-Agent (Advisor)" e "Divergência" ficam "N/A (Advisor não utilizado)", a regra em destaque é omitida e a decisão é a do usuário ao revisar o documento.
252
+ > Questão levantada depois do `eng.start` (consulta por exceção) entra aqui, numerada em sequência, marcada "levantada no `eng.plan`" ou "no `eng.work`". Sem questão em aberto, escreva "Nenhuma" e o motivo em uma frase.
253
+
254
+ | ID | Questão | Responsável | Deadline | Status |
255
+ | -- | ---------------------------- | --------------------------- | -------- | -------------------------- |
256
+ | Q1 | {resumo objetivo da questão} | {Advisor \| nome do usuário} | {— \| data} | {✅ Decidida \| 🔄 Aberta} |
257
+
258
+ ### Q1 — {Título da questão}
259
+
260
+ **Contexto:**
261
+ {Explicação detalhada do problema e por que a decisão é necessária.}
262
+
263
+ **Arquivos/componentes envolvidos:**
264
+ * `{arquivo/caminho}` — {relação com a questão}
265
+
266
+ **Dúvida:**
267
+ {Descrição clara e inequívoca do que precisa ser decidido.}
268
+
269
+ **Opções:**
270
+
271
+ **1. {Opção 1}**
272
+ * Como funciona: {descrição}
273
+ * Vantagens: {vantagens}
274
+ * Desvantagens: {desvantagens}
275
+ * Impacto: {impacto}
276
+
277
+ **2. {Opção 2}** (mesmo formato)
278
+
279
+ **3. {Opção 3}** (mesmo formato)
280
+
281
+ **4. Outra**
282
+ * Alternativa adicional identificada pelo Sub-Agent/Advisor, detalhada caso ele entenda que nenhuma das opções anteriores é a melhor abordagem.
283
+
284
+ **Sugestão do Agente Principal (Architect):**
285
+ {recomendação do agente principal + justificativa técnica}
286
+
287
+ **Sugestão do Sub-Agent (Advisor):**
288
+ {recomendação independente do Advisor + justificativa técnica}
289
+
290
+ **Decisão adotada:**
291
+ **{recomendação do Sub-Agent/Advisor}**
292
+
293
+ > **Regra:** a recomendação do Advisor sempre prevalece e deve ser adotada na implementação, independentemente de ser igual ou diferente da recomendação do Agente Principal.
294
+
295
+ **Divergência:**
296
+ {se houver diferença entre as recomendações, explicar objetivamente por que o Advisor escolheu uma abordagem diferente.}
297
+
298
+ **Impacto da decisão:**
299
+ {consequências da decisão adotada para a arquitetura e implementação.}
251
300
 
252
301
  ---
253
302
 
@@ -1,8 +1,26 @@
1
1
  ---
2
- name: [Name from PRD]
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
+ # Nome do breakdown (o mesmo do PRD ou FRD que está sendo fatiado).
7
+ name: [Name from PRD]
8
+
9
+ # Time (squad) responsável pela entrega.
3
10
  team: [Team Name]
11
+
12
+ # Em que ponto este documento está no ciclo de vida (lista em rules/product/prod-rules.md).
13
+ # Opções: icebox | in_review | backlog | in_progress | in_production | cancelled | deprecated
14
+ # icebox = ideia aguardando priorização | in_review = sendo estudado ou revisado | backlog = definido, aguardando implementação
15
+ # in_progress = em desenvolvimento | in_production = em produção
16
+ # cancelled = cancelado antes de ser entregue | deprecated = esteve em produção e foi descontinuado
17
+ status: [um dos valores acima]
18
+
19
+ # Data de criação (YYYY-MM-DD).
4
20
  created_at: [YYYY-MM-DD]
5
- last_updated: [YYYY-MM-DD]
21
+
22
+ # Data da última alteração (YYYY-MM-DD).
23
+ updated_at: [YYYY-MM-DD]
6
24
  ---
7
25
 
8
26
  ## Resumo do plano detalhado (breakdown)
@@ -1,11 +1,34 @@
1
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
+ # Identificador único, em sequência (ex.: discovery-001). Vai no nome do arquivo e nos campos related_* de outros documentos.
2
7
  id: {discovery-001}
8
+
9
+ # Nome curto do documento. Vai no título e, em kebab-case, no nome do arquivo.
3
10
  name: {nome dessa ideia}
4
- status: {in_review enquanto o rascunho existe | cancelled se o veredito for do_not_proceed}
11
+
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
15
+ status: {in_review | cancelled}
16
+
17
+ # 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)
5
20
  verdict: {vazio durante a entrevista | proceed | investigate_more | do_not_proceed}
21
+
22
+ # Data de criação (YYYY-MM-DD).
6
23
  created_at: {YYYY-MM-DD}
24
+
25
+ # Data da última alteração (YYYY-MM-DD).
7
26
  updated_at: {YYYY-MM-DD}
27
+
28
+ # Quem criou o documento.
8
29
  created_by: {nome de quem criou esse doc}
30
+
31
+ # Quem editou o documento por último.
9
32
  last_editor: {nome de quem editou por último}
10
33
  ---
11
34
 
@@ -1,15 +1,46 @@
1
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
+ # Identificador único, em sequência (ex.: EPIC-001). Vai no nome do arquivo e nos campos related_* de outros documentos.
2
7
  id: {EPIC-001}
8
+
9
+ # Nome curto do documento. Vai no título e, em kebab-case, no nome do arquivo.
3
10
  name: {nome desse épico}
11
+
12
+ # Versão do documento (X.Y.Z). Atualize a cada alteração.
4
13
  version: {X.Y.Z - atualizar sempre que houver alteração}
5
- status: {icebox|in_review|in_progress|in_production|deprecated}
14
+
15
+ # Em que ponto este documento está no ciclo de vida (lista em rules/product/prod-rules.md).
16
+ # Opções: icebox | in_review | backlog | in_progress | in_production | cancelled | deprecated
17
+ # icebox = ideia aguardando priorização | in_review = sendo estudado ou revisado | backlog = definido, aguardando implementação
18
+ # in_progress = em desenvolvimento | in_production = em produção
19
+ # cancelled = cancelado antes de ser entregue | deprecated = esteve em produção e foi descontinuado
20
+ status: {um dos valores acima}
21
+
22
+ # Link do card no task manager do projeto (TASK_MANAGER no ENV.md). Remova a linha se não houver.
6
23
  task_link: {URL referêncial no $TASK_MANAGER - se existir. Se não, ignore essa linha}
24
+
25
+ # PRD relacionado (Product Requirements Document: o problema e o que vamos construir).
7
26
  related_prd: {path PRD relacionado, exemplo /master-docs/product/prd-001.md}
27
+
28
+ # FRD relacionado (Functional Requirements Document: o comportamento detalhado de uma funcionalidade).
8
29
  related_frd: {path FRD relacionado, exemplo /master-docs/product/frds/frd-001.md}
30
+
31
+ # Discovery de origem (o rascunho da ideia, anterior ao PRD). Remova a linha se não houver.
9
32
  related_discovery: {path do discovery de origem, exemplo $PROD_DOCS/discoveries/discovery-001-nome.md. Se não existir, ignore essa linha}
33
+
34
+ # Data de criação (YYYY-MM-DD).
10
35
  created_at: {YYYY-MM-DD}
36
+
37
+ # Data da última alteração (YYYY-MM-DD).
11
38
  updated_at: {YYYY-MM-DD}
39
+
40
+ # Quem criou o documento.
12
41
  created_by: {nome de quem criou esse doc}
42
+
43
+ # Quem editou o documento por último.
13
44
  last_editor: {nome de quem editou por último}
14
45
  ---
15
46
 
@@ -1,13 +1,40 @@
1
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
+ # Identificador único, em sequência (ex.: FRD-001). Vai no nome do arquivo e nos campos related_* de outros documentos.
2
7
  id: {FRD-001}
8
+
9
+ # Nome curto do documento. Vai no título e, em kebab-case, no nome do arquivo.
3
10
  name: {nome desse frd}
11
+
12
+ # Versão do documento (X.Y.Z). Atualize a cada alteração.
4
13
  version: {X.Y.Z - atualizar sempre que houver alteração}
5
- status: {$ITEM_STATUS}
14
+
15
+ # Em que ponto este documento está no ciclo de vida (lista em rules/product/prod-rules.md).
16
+ # Opções: icebox | in_review | backlog | in_progress | in_production | cancelled | deprecated
17
+ # icebox = ideia aguardando priorização | in_review = sendo estudado ou revisado | backlog = definido, aguardando implementação
18
+ # in_progress = em desenvolvimento | in_production = em produção
19
+ # cancelled = cancelado antes de ser entregue | deprecated = esteve em produção e foi descontinuado
20
+ status: {um dos valores acima}
21
+
22
+ # Quem editou o documento por último.
6
23
  last_editor: {nome de quem editou por último}
24
+
25
+ # Data da última alteração (YYYY-MM-DD).
7
26
  updated_at: {YYYY-MM-DD}
27
+
28
+ # PRD relacionado (Product Requirements Document: o problema e o que vamos construir).
8
29
  related_prd: {Lista de PRDs que são relacionadas a esse PRD, se forem vários, utilize sintaxe compatível com YAML}
30
+
31
+ # Discovery de origem (o rascunho da ideia, anterior ao PRD). Remova a linha se não houver.
9
32
  related_discovery: {path do discovery de origem, exemplo $PROD_DOCS/discoveries/discovery-001-nome.md. Se não existir, ignore essa linha}
33
+
34
+ # Data de criação (YYYY-MM-DD).
10
35
  created_at: {YYYY-MM-DD}
36
+
37
+ # Quem criou o documento.
11
38
  created_by: {nome de quem criou esse doc}
12
39
  ---
13
40
 
@@ -138,7 +165,7 @@ Ele é um sistema de gestão de dados pessoais de saúde, que agrega informaçõ
138
165
  - {Exclusão adicional}
139
166
 
140
167
  ## Especificações relacionadas
141
- {liste todos os PRDs, FRDs ou outros documentos relacionados a este FRD fazendo uma análise prévia do projeto e das especificações existentes no `$CENTRAL_DOCS_REPO`. Pergunte para o usuário se existe outras relações que ele conheça. Antes de adicionar as sugestões, confirme com o usuário se elas estão corretas.}
168
+ {liste todos os PRDs, FRDs ou outros documentos relacionados a este FRD fazendo uma análise prévia do projeto e das especificações existentes no Central docs (`jarvis docs sync`). Pergunte para o usuário se existe outras relações que ele conheça. Antes de adicionar as sugestões, confirme com o usuário se elas estão corretas.}
142
169
 
143
170
  **PRDs relacionadas**:
144
171
  | ID | Título | Descrição |
@@ -1,16 +1,51 @@
1
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
+ # Identificador único, em sequência (ex.: STORY-001, TASK-001, BUG-001). Vai no nome do arquivo e nos campos related_* de outros documentos.
2
7
  id: {issue_type-001}
8
+
9
+ # Nome curto do documento. Vai no título e, em kebab-case, no nome do arquivo.
3
10
  name: {nome dessa issue}
11
+
12
+ # Tipo da issue.
13
+ # Opções: Story | Task | Bug
14
+ # Story = história de usuário (valor para quem usa) | Task = tarefa técnica | Bug = defeito a corrigir
4
15
  type: {Story, Task, Bug}
16
+
17
+ # PRD relacionado (Product Requirements Document: o problema e o que vamos construir).
5
18
  related_prd: {path PRD relacionado, exemplo /master-docs/product/prd-001.md}
19
+
20
+ # Épico ao qual esta issue pertence (o agrupador de histórias e tarefas). Remova a linha se não houver.
6
21
  related_epic: {nome do Epico relacionado, exemplo /master-docs/product/epics/epic-001.md. Se não existir, ignore essa linha}
22
+
23
+ # FRD relacionado (Functional Requirements Document: o comportamento detalhado de uma funcionalidade).
7
24
  related_frd: {path FRD relacionado, exemplo /master-docs/product/frds/frd-001.md}
25
+
26
+ # Discovery de origem (o rascunho da ideia, anterior ao PRD). Remova a linha se não houver.
8
27
  related_discovery: {path do discovery de origem, exemplo $PROD_DOCS/discoveries/discovery-001-nome.md. Se não existir, ignore essa linha}
28
+
29
+ # Data de criação (YYYY-MM-DD).
9
30
  created_at: {YYYY-MM-DD}
31
+
32
+ # Data da última alteração (YYYY-MM-DD).
10
33
  updated_at: {YYYY-MM-DD}
34
+
35
+ # Link do card no task manager do projeto (TASK_MANAGER no ENV.md). Remova a linha se não houver.
11
36
  task_link: {URL referêncial no $TASK_MANAGER - se existir. Se não, ignore essa linha}
12
- status: {icebox|in_review|in_progress|in_production|deprecated}
37
+
38
+ # Em que ponto este documento está no ciclo de vida (lista em rules/product/prod-rules.md).
39
+ # Opções: icebox | in_review | backlog | in_progress | in_production | cancelled | deprecated
40
+ # icebox = ideia aguardando priorização | in_review = sendo estudado ou revisado | backlog = definido, aguardando implementação
41
+ # in_progress = em desenvolvimento | in_production = em produção
42
+ # cancelled = cancelado antes de ser entregue | deprecated = esteve em produção e foi descontinuado
43
+ status: {um dos valores acima}
44
+
45
+ # Quem criou o documento.
13
46
  created_by: {nome de quem criou esse doc}
47
+
48
+ # Quem editou o documento por último.
14
49
  last_editor: {nome de quem editou por último}
15
50
  ---
16
51
 
@@ -1,15 +1,46 @@
1
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
+ # Identificador único, em sequência (ex.: PRD-001). Vai no nome do arquivo e nos campos related_* de outros documentos.
2
7
  id: {PRD-001}
8
+
9
+ # Nome curto do documento. Vai no título e, em kebab-case, no nome do arquivo.
3
10
  name: {nome desse prd}
11
+
12
+ # Versão do documento (X.Y.Z). Atualize a cada alteração.
4
13
  version: {X.Y.Z - atualizar sempre que houver alteração}
5
- status: {$ITEM_STATUS}
14
+
15
+ # Em que ponto este documento está no ciclo de vida (lista em rules/product/prod-rules.md).
16
+ # Opções: icebox | in_review | backlog | in_progress | in_production | cancelled | deprecated
17
+ # icebox = ideia aguardando priorização | in_review = sendo estudado ou revisado | backlog = definido, aguardando implementação
18
+ # in_progress = em desenvolvimento | in_production = em produção
19
+ # cancelled = cancelado antes de ser entregue | deprecated = esteve em produção e foi descontinuado
20
+ status: {um dos valores acima}
21
+
22
+ # Quem editou o documento por último.
6
23
  last_editor: {nome de quem editou por último}
24
+
25
+ # Data da última alteração (YYYY-MM-DD).
7
26
  updated_at: {YYYY-MM-DD}
27
+
28
+ # Repositórios de código onde este produto é implementado.
8
29
  related_repo: {URLs de repositórios relacionados, se forem vários, utilize sintaxe compatível com YAML}
30
+
31
+ # PRD relacionado (Product Requirements Document: o problema e o que vamos construir).
9
32
  related_prd: {Lista de PRDs que são relacionadas a esse PRD, se forem vários, utilize sintaxe compatível com YAML}
33
+
34
+ # FRD relacionado (Functional Requirements Document: o comportamento detalhado de uma funcionalidade).
10
35
  related_frd: {Lista de FRDs que são relacionadas a esse PRD, se forem vários, utilize sintaxe compatível com YAML}
36
+
37
+ # Discovery de origem (o rascunho da ideia, anterior ao PRD). Remova a linha se não houver.
11
38
  related_discovery: {path do discovery de origem, exemplo $PROD_DOCS/discoveries/discovery-001-nome.md. Se não existir, ignore essa linha}
39
+
40
+ # Data de criação (YYYY-MM-DD).
12
41
  created_at: {YYYY-MM-DD}
42
+
43
+ # Quem criou o documento.
13
44
  created_by: {nome de quem criou esse doc}
14
45
  ---
15
46
 
@@ -148,7 +179,7 @@ Estes são indicadores que podem ser usados para medir o sucesso dessa solução
148
179
 
149
180
 
150
181
  ## Especificações relacionadas
151
- {liste todos os PRDs, FRDs ou outros documentos relacionados a este FRD fazendo uma análise prévia do projeto e das especificações existentes no `$CENTRAL_DOCS_REPO`. Pergunte para o usuário se existe outras relações que ele conheça. Antes de adicionar as sugestões, confirme com o usuário se elas estão corretas.}
182
+ {liste todos os PRDs, FRDs ou outros documentos relacionados a este FRD fazendo uma análise prévia do projeto e das especificações existentes no Central docs (`jarvis docs sync`). Pergunte para o usuário se existe outras relações que ele conheça. Antes de adicionar as sugestões, confirme com o usuário se elas estão corretas.}
152
183
 
153
184
  **PRDs relacionadas**:
154
185
  | ID | Título | Descrição |
@@ -54,7 +54,7 @@ Transformar uma história de usuário (user story) do Jira em uma **Tech Spec co
54
54
  | Passo | Skill | Condição |
55
55
  |-------|-------|----------|
56
56
  | Processo de Criação › verificação de necessidade de RFC | `/eng.create-rfc` | Se a Tech Spec atender aos critérios que exigem RFC e o usuário escolher "A: Criar uma RFC agora" |
57
- | Caminho A › 2A.2 Análise de Documentação de Produto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_REPO` estiver configurado (buscar PRD/FRD relacionados do épico) |
57
+ | Caminho A › 2A.2 Análise de Documentação de Produto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado (buscar PRD/FRD relacionados do épico) |
58
58
  | FASE 7 › 7.3 Criação no Jira | `ferramenta MCP/API do Jira` (referência a confirmar) | Se o projeto usar Jira e houver ferramenta MCP ou API disponível; senão fornecer template para criação manual (o texto não nomeia a ferramenta) |
59
59
 
60
60
  ---
@@ -264,7 +264,7 @@ Foco em entender o sistema como um todo — não arquivos específicos, mas fron
264
264
  #### 2A.2 Análise de Documentação de Produto
265
265
 
266
266
  - Verifique se há PRD ou FRD relacionado ao épico em `$DOCS_FOLDER` ou no $TASK_MANAGER
267
- - Se `CENTRAL_DOCS_REPO` configurado: buscar docs via skill `jarvis-docs-central`
267
+ - Se `CENTRAL_DOCS_STORAGE` configurado: buscar docs via skill `jarvis-docs-central`
268
268
 
269
269
  #### 2A.3 Identificação de Restrições
270
270
 
@@ -22,8 +22,8 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
22
22
  | Passo | Skill | Condição |
23
23
  |-------|-------|----------|
24
24
  | Objetivo | `eng.agent` (agente) | Sempre — identidade do workflow (alinhamento com `eng.agent.md`) |
25
- | Passo 1 – Verificar PRD | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_REPO` estiver definido no ENV.md |
26
- | Passo 7 – Publicar no Central Docs | `/jarvis-docs-central` (via `jarvis docs publish --tipo ard`) | Se `CENTRAL_DOCS_REPO` estiver definido, o ARD estiver aprovado e o usuário aceitar publicar |
25
+ | Passo 1 – Verificar PRD | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md |
26
+ | Passo 7 – Publicar no Central Docs | `/jarvis-docs-central` (via `jarvis docs publish --tipo ard`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o ARD estiver aprovado e o usuário aceitar publicar |
27
27
 
28
28
  ---
29
29
 
@@ -60,7 +60,7 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
60
60
  - Defina o `ARD-ID` automaticamente assim:
61
61
  - Se a pasta `$DOCS_FOLDER/engineering/ARD/` existir e houver arquivos no padrão `ARD-###-*.md`, use o maior `###` + 1.
62
62
  - Defina:
63
- - `Status`
63
+ - `Status` (campo `status` no frontmatter: `proposed | in_progress | in_review | approved`)
64
64
  - `Caminho do arquivo` (`$DOCS_FOLDER/engineering/ARD/{ARD-ID}-{slug}.md` ou caminho fornecido para iteração)
65
65
 
66
66
  ---
@@ -69,7 +69,7 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
69
69
 
70
70
  ### 1.1 – Buscar PRD no Central Docs (condicional)
71
71
 
72
- Se `CENTRAL_DOCS_REPO` definido no ENV.md:
72
+ Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
73
73
 
74
74
  1. Executar busca automática no central-docs:
75
75
  ```bash
@@ -238,7 +238,7 @@ Entregar:
238
238
 
239
239
  ## Passo 7 – Publicar no Central Docs (condicional)
240
240
 
241
- Se `CENTRAL_DOCS_REPO` definido no ENV.md **E** o usuário aprovar o ARD:
241
+ Se `CENTRAL_DOCS_STORAGE` definido no ENV.md **E** o usuário aprovar o ARD:
242
242
 
243
243
  1. Perguntar ao usuário:
244
244
  ```
@@ -248,20 +248,18 @@ Se `CENTRAL_DOCS_REPO` definido no ENV.md **E** o usuário aprovar o ARD:
248
248
  ```
249
249
 
250
250
  2. Se **Sim**:
251
- - Extrair o slug do nome do arquivo (ex: `ARD-001-api-wallet-auth.md` → `api-wallet-auth`)
252
251
  - Executar:
253
252
  ```bash
254
253
  jarvis docs publish \
255
254
  --file {caminho_do_ard} \
256
- --tipo ard \
257
- --feature {slug}
255
+ --tipo ard
258
256
  ```
259
257
 
260
258
  3. Informar resultado:
261
- - ✅ Sucesso: "ARD publicado no central-docs. MR criado: [URL]"
259
+ - ✅ Sucesso: "ARD publicado no Central docs." (com git: "PR aberto: [URL]")
262
260
  - ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
263
261
 
264
262
  4. Se **Não**:
265
- - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo ard --feature {slug}`"
263
+ - Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo ard`"
266
264
 
267
- > **Nota**: A publicação cria um Merge Request no GitLab. O ARD só será visível no central-docs após aprovação e merge do MR.
265
+ > **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o ARD só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.