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.
- package/agents/README.md +2 -0
- package/agents/engineering/eng.advisor.agent.md +56 -0
- package/agents/product/prod.discovery-interviewer.md +1 -1
- package/bin/README.md +14 -14
- package/bin/commands/docs-publish.js +50 -92
- package/bin/commands/docs-sync.js +30 -63
- package/bin/lib/cli/program.js +23 -25
- package/bin/lib/docs/fetch-file.js +29 -26
- package/bin/lib/docs/publish-file.js +89 -161
- package/bin/lib/docs/storage/build-index.js +87 -0
- package/bin/lib/docs/storage/filesystem.js +203 -0
- package/bin/lib/docs/storage/index.js +75 -0
- package/bin/lib/docs/validate-frontmatter.js +14 -4
- package/bin/lib/vcs/api.js +0 -125
- package/package.json +2 -2
- package/rules/AGENTS.md +12 -9
- package/rules/engineering/eng.integrations-rules.md +5 -2
- package/rules/product/prod-rules.md +4 -5
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +1 -1
- package/rules-on-demand/engineering/eng.start-rules.md +2 -0
- package/rules-on-demand/product/prod.guided-rules.md +104 -0
- package/skills/eng-global-task-comment/SKILL.md +1 -1
- package/skills/jarvis-docs-central/README.md +57 -269
- package/skills/jarvis-docs-central/SKILL.md +126 -296
- package/skills/jarvis-init/SKILL.md +47 -7
- package/templates/AGENTS.md +2 -0
- package/templates/ENV-template.md +30 -5
- package/templates/engineering/ARD-template.md +39 -6
- package/templates/engineering/advisor-template.md +65 -0
- package/templates/engineering/architecture-template.md +53 -4
- package/templates/product/prod-breakdown-template.md +20 -2
- package/templates/product/prod-discovery-template.md +24 -1
- package/templates/product/prod-epic-template.md +32 -1
- package/templates/product/prod-frd-template.md +29 -2
- package/templates/product/prod-issue-template.md +36 -1
- package/templates/product/prod-prd-template.md +33 -2
- package/workflows/engineering/eng.build-tech-spec.md +2 -2
- package/workflows/engineering/eng.create-ard-from-code.md +9 -11
- package/workflows/engineering/eng.create-ard.md +15 -13
- package/workflows/engineering/eng.create-rfc.md +8 -10
- package/workflows/engineering/eng.plan.md +4 -26
- package/workflows/engineering/eng.pr.md +7 -39
- package/workflows/engineering/eng.pre-pr.md +7 -36
- package/workflows/engineering/eng.rpa.robot.md +4 -2
- package/workflows/engineering/eng.start.md +38 -37
- package/workflows/engineering/eng.work.md +7 -22
- package/workflows/product/prod.roadmap.preview.md +4 -1
- package/workflows/product/prod.spec.ard.md +7 -3
- package/workflows/product/prod.spec.breakdown.md +7 -3
- package/workflows/product/prod.spec.clarify.md +5 -1
- package/workflows/product/prod.spec.discovery.md +7 -3
- package/workflows/product/prod.spec.epic.md +13 -11
- package/workflows/product/prod.spec.frd.md +15 -13
- package/workflows/product/prod.spec.issue.md +5 -1
- package/workflows/product/prod.spec.md +3 -1
- package/workflows/product/prod.spec.prd.md +15 -13
- package/workflows/warm-up.md +3 -3
- package/bin/lib/docs/redis-cache.js +0 -49
- package/bin/lib/vcs/fetch-raw.js +0 -42
package/templates/AGENTS.md
CHANGED
|
@@ -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
|
-
#
|
|
192
|
-
|
|
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
|
|
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
|
-
**
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
> **
|
|
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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 `
|
|
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 `
|
|
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 `
|
|
26
|
-
| Passo 7 – Publicar no Central Docs | `/jarvis-docs-central` (via `jarvis docs publish --tipo ard`) | Se `
|
|
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 `
|
|
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 `
|
|
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
|
|
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
|
|
263
|
+
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo ard`"
|
|
266
264
|
|
|
267
|
-
> **Nota**:
|
|
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.
|