jarvis-ai-framework 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/engineering/eng.docs-consolidator.agent.md +81 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +7 -7
- package/agents/product/prod.discovery-interviewer.md +1 -1
- package/bin/commands/docs-publish.js +18 -8
- package/bin/commands/docs-sync.js +3 -2
- package/bin/lib/cli/program.js +3 -3
- package/bin/lib/docs/publish-file.js +35 -24
- package/bin/lib/docs/storage/build-index.js +29 -8
- package/bin/lib/docs/validate-frontmatter.js +4 -0
- package/package.json +1 -1
- package/rules/engineering/eng.docs-scraping-rules.md +4 -4
- package/rules/engineering/eng.integrations-rules.md +1 -1
- package/rules/engineering/rpa/eng.rpa-rules.md +1 -1
- package/rules/product/prod-rules.md +3 -3
- package/rules-on-demand/engineering/eng.pr-rules.md +9 -31
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +12 -19
- package/skills/eng-backend-arch-c4/SKILL.md +3 -3
- package/skills/eng-global-docs-write/SKILL.md +1 -1
- package/skills/eng-qa-planner/SKILL.md +5 -5
- package/skills/jarvis-docs-central/README.md +18 -30
- package/skills/jarvis-docs-central/SKILL.md +80 -97
- package/skills/jarvis-init/SKILL.md +60 -26
- package/templates/ENV-template.md +15 -9
- package/templates/engineering/ARD-template.md +1 -1
- package/templates/engineering/central-delivery-template.md +65 -0
- package/templates/engineering/central-feature-template.md +86 -0
- package/workflows/engineering/eng.build-tech-spec.md +3 -3
- package/workflows/engineering/eng.create-ard-from-code.md +12 -36
- package/workflows/engineering/eng.create-ard.md +14 -38
- package/workflows/engineering/eng.create-rfc.md +8 -32
- package/workflows/engineering/eng.pr.md +31 -62
- package/workflows/engineering/eng.pre-pr.md +52 -89
- package/workflows/engineering/eng.rpa.robot.md +5 -5
- package/workflows/engineering/eng.spec-consolidate.md +140 -0
- package/workflows/engineering/eng.start.md +6 -6
- package/workflows/engineering/eng.work.md +1 -1
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +1 -1
- package/workflows/engineering/qa/eng.qa-release-signoff.md +3 -3
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +2 -2
- package/workflows/product/prod.spec.ard.md +4 -4
- package/workflows/product/prod.spec.breakdown.md +1 -1
- package/workflows/product/prod.spec.epic.md +5 -35
- package/workflows/product/prod.spec.frd.md +6 -34
- package/workflows/product/prod.spec.prd.md +6 -35
- package/workflows/warm-up.md +8 -10
|
@@ -57,14 +57,19 @@ RULES_FOLDER=.$IDE/rules
|
|
|
57
57
|
# Cookie/HTTP session (auth) NÃO é esta pasta.
|
|
58
58
|
SESSIONS_DIR=.jarvis/sessions
|
|
59
59
|
|
|
60
|
+
# Documentos de trabalho gerados pelos comandos (PRD, FRD, épicos, ARD, RFC, QA, swagger,
|
|
61
|
+
# robôs, C4…): sempre em $DOCS_FOLDER/jarvis/, nos dois modos de trabalho, com docs/jarvis/
|
|
62
|
+
# no .gitignore (o /jarvis-init garante). O que foi implementado vai para o Central docs.
|
|
63
|
+
JARVIS_DOCS=$DOCS_FOLDER/jarvis
|
|
64
|
+
# Engenharia: ARD/, RFC/, qa/, swagger/, openapi/, robots/, c4/
|
|
65
|
+
ENG_DOCS=$JARVIS_DOCS/engineering
|
|
66
|
+
|
|
60
67
|
# 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.
|
|
63
68
|
PROD_FOLDER_NAME=product
|
|
64
69
|
PROD_RULES=$RULES_FOLDER/$PROD_FOLDER_NAME
|
|
65
70
|
PROD_FLOWS=.$IDE/$FLOWS_FOLDER
|
|
66
71
|
PROD_TEMPLATES=.$IDE/$TEMPLATES_FOLDER/$PROD_FOLDER_NAME
|
|
67
|
-
PROD_DOCS=$
|
|
72
|
+
PROD_DOCS=$JARVIS_DOCS/$PROD_FOLDER_NAME
|
|
68
73
|
|
|
69
74
|
# Modo de condução dos comandos de produto (prod.*) e do eng.create-ard.
|
|
70
75
|
# product-led = para PMs: fluxo direto, sem explicações extras (padrão se vazio)
|
|
@@ -205,17 +210,18 @@ QA_SIGNOFF_MAX_AGE=24
|
|
|
205
210
|
JARVIS_PROJECT=https://github.com/phelipperibeiro/jarvis-framework
|
|
206
211
|
|
|
207
212
|
|
|
208
|
-
# --- Central docs
|
|
209
|
-
#
|
|
213
|
+
# --- Central docs -------------------------------------------------------------
|
|
214
|
+
# O registro do que FOI IMPLEMENTADO: um documento completo por funcionalidade e um registro
|
|
215
|
+
# por entrega, gerados pelo /eng.spec-consolidate depois de cada PR. Ligado por padrão.
|
|
210
216
|
# 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)
|
|
217
|
+
# CENTRAL_DOCS_STORAGE: filesystem (s3 e gdrive virão nas issues #144 e #145); vazio = desligado
|
|
212
218
|
# CENTRAL_DOCS_LOCATION: pasta do Central docs, relativa à pasta do workspace ou absoluta.
|
|
213
219
|
# Padrão do /jarvis-init: ./central-docs (modo workspace, no .gitignore do workspace)
|
|
214
|
-
# ou docs/jarvis/central-docs (projeto único,
|
|
220
|
+
# ou docs/jarvis/central-docs (projeto único, coberto por docs/jarvis/ no .gitignore).
|
|
215
221
|
# Se a pasta for um clone de um repositório de documentação (tem .git): git pull antes
|
|
216
222
|
# de ler e branch + commit + push + PR ao publicar. Sem .git: grava direto na pasta.
|
|
217
|
-
CENTRAL_DOCS_STORAGE=
|
|
218
|
-
CENTRAL_DOCS_LOCATION
|
|
223
|
+
CENTRAL_DOCS_STORAGE=filesystem
|
|
224
|
+
CENTRAL_DOCS_LOCATION=./central-docs
|
|
219
225
|
# Só quando a pasta tem .git: branch lida no pull e branch base dos PRs.
|
|
220
226
|
CENTRAL_DOCS_REF=main
|
|
221
227
|
CENTRAL_DOCS_TARGET_BRANCH=main
|
|
@@ -0,0 +1,65 @@
|
|
|
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 da entrega. Padrão: DEL-{AAAA-MM-DD}-{task_key}
|
|
7
|
+
id: {DEL-AAAA-MM-DD-task_key}
|
|
8
|
+
|
|
9
|
+
# Documento da funcionalidade que esta entrega atualizou (basename).
|
|
10
|
+
feature: {feature-slug.md}
|
|
11
|
+
|
|
12
|
+
# Card ou número de controle da tarefa (TASK_MANAGER do ENV.md; freelance = número de controle).
|
|
13
|
+
task_key: {TASK-123}
|
|
14
|
+
|
|
15
|
+
# URL do card no task manager (padrão da eng.integrations-rules.md). Vazio no modo freelance.
|
|
16
|
+
card_url: {URL}
|
|
17
|
+
|
|
18
|
+
# Pull/Merge Request: número e URL (VERSION_CONTROL / remote origin).
|
|
19
|
+
pr: {#n URL}
|
|
20
|
+
|
|
21
|
+
# Branch de trabalho e branch base (Branch base: do architecture.md).
|
|
22
|
+
branch: {branch}
|
|
23
|
+
base: {main | dev | outra}
|
|
24
|
+
|
|
25
|
+
# Data da consolidação (YYYY-MM-DD).
|
|
26
|
+
date: {YYYY-MM-DD}
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Entrega {task_key}: {título}
|
|
30
|
+
|
|
31
|
+
> Registro **autossuficiente** do que esta entrega fez. O estado atual da funcionalidade fica em [{feature-slug.md}](../../product/{produto}/{feature-slug.md}).
|
|
32
|
+
|
|
33
|
+
## 1. O que a entrega fez
|
|
34
|
+
|
|
35
|
+
{Resumo completo em linguagem de produto e de engenharia: o que passou a existir ou mudou.}
|
|
36
|
+
|
|
37
|
+
## 2. Decisões tomadas
|
|
38
|
+
|
|
39
|
+
| Questão | Decisão | Por quê |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| {das Questões em Aberto do architecture.md e das decisões do card} | {…} | {…} |
|
|
42
|
+
|
|
43
|
+
## 3. Commits
|
|
44
|
+
|
|
45
|
+
| Commit | Autor | Data | Mensagem |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| `{hash curto}` | {nome (sem e-mail)} | {AAAA-MM-DD} | {mensagem} |
|
|
48
|
+
|
|
49
|
+
## 4. Arquivos alterados
|
|
50
|
+
|
|
51
|
+
{Resumo do `git diff --stat {base}...HEAD`, agrupado por área (código, testes, docs, config).}
|
|
52
|
+
|
|
53
|
+
## 5. Fora do escopo e follow-ups
|
|
54
|
+
|
|
55
|
+
{O que ficou para depois, com card quando existir.}
|
|
56
|
+
|
|
57
|
+
## 6. Testes e validação
|
|
58
|
+
|
|
59
|
+
{Comandos rodados e resultados; testes manuais; o que ficou para validar.}
|
|
60
|
+
|
|
61
|
+
## 7. Referências
|
|
62
|
+
|
|
63
|
+
- Card: [{TASK_KEY}]({URL})
|
|
64
|
+
- PR/MR: [#{n}]({URL})
|
|
65
|
+
- Documentos de trabalho de origem (referência): {basenames}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 da funcionalidade no Central docs (estável; não muda entre entregas). Ex.: FEAT-checkout
|
|
7
|
+
id: {FEAT-slug}
|
|
8
|
+
|
|
9
|
+
# Nome da funcionalidade, como as pessoas a chamam. Vai no título.
|
|
10
|
+
name: {Nome da funcionalidade}
|
|
11
|
+
|
|
12
|
+
# Em que ponto a funcionalidade está (lista em rules/product/prod-rules.md).
|
|
13
|
+
# Opções: icebox | in_review | backlog | in_progress | in_production | cancelled | deprecated
|
|
14
|
+
# in_progress = parte entregue, ainda em evolução | in_production = em produção
|
|
15
|
+
# deprecated = esteve em produção e foi descontinuada
|
|
16
|
+
status: {um dos valores acima}
|
|
17
|
+
|
|
18
|
+
# Produto (pasta do Central docs): o WORKSPACE do ENV.md, ou o informado no comando.
|
|
19
|
+
product: {produto}
|
|
20
|
+
|
|
21
|
+
# Data da última consolidação (YYYY-MM-DD).
|
|
22
|
+
updated_at: {YYYY-MM-DD}
|
|
23
|
+
|
|
24
|
+
# Registro da última entrega consolidada (nome do arquivo delivery-*.md). Vazio na carga inicial.
|
|
25
|
+
last_delivery: {delivery-AAAA-MM-DD-task_key.md}
|
|
26
|
+
|
|
27
|
+
# Documentos de trabalho de origem, só como referência (basename). O entendimento NÃO depende deles.
|
|
28
|
+
related_docs: {prd-001-nome.md, frd-001-nome.md, ARD-001-nome.md, RFC-001-nome.md}
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# {Nome da funcionalidade}
|
|
32
|
+
|
|
33
|
+
> Documento **autossuficiente**: descreve o que está implementado hoje. Se os documentos de origem (PRD, FRD, ARD, RFC) se perderem, este documento basta. Escrito para humanos e para IAs: frases completas, termos definidos, nada implícito.
|
|
34
|
+
|
|
35
|
+
## 1. Visão geral
|
|
36
|
+
|
|
37
|
+
{O problema que a funcionalidade resolve, para quem, e o valor entregue. 3 a 6 frases.}
|
|
38
|
+
|
|
39
|
+
## 2. Comportamento atual
|
|
40
|
+
|
|
41
|
+
{O que o sistema faz hoje, regra por regra, fluxo por fluxo. Use listas "Quando X, o sistema Y". Inclua os estados de erro e os casos de borda tratados. Critérios de aceite cumpridos.}
|
|
42
|
+
|
|
43
|
+
## 3. Requisitos não funcionais atendidos
|
|
44
|
+
|
|
45
|
+
| Requisito | Como foi atendido | Evidência |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| {desempenho, segurança, acessibilidade, limites…} | {…} | {teste, medição, arquivo} |
|
|
48
|
+
|
|
49
|
+
## 4. Arquitetura e decisões
|
|
50
|
+
|
|
51
|
+
{Componentes envolvidos e como conversam. Cada decisão relevante com o porquê e as alternativas descartadas (ex.: vindas do ARD, do RFC e das questões do architecture.md).}
|
|
52
|
+
|
|
53
|
+
## 5. Onde está no código
|
|
54
|
+
|
|
55
|
+
| Parte | Caminho | O que faz |
|
|
56
|
+
|---|---|---|
|
|
57
|
+
| {módulo, endpoint, comando, job} | `{caminho/arquivo}` | {…} |
|
|
58
|
+
|
|
59
|
+
## 6. Configuração e dependências
|
|
60
|
+
|
|
61
|
+
{Variáveis de ambiente (só nomes, nunca valores), flags, serviços externos, migrações, permissões.}
|
|
62
|
+
|
|
63
|
+
## 7. O que mudou em relação ao especificado
|
|
64
|
+
|
|
65
|
+
{Diferenças entre o que os documentos de trabalho pediam e o que foi implementado, e por quê. "Nenhuma" se não houver.}
|
|
66
|
+
|
|
67
|
+
## 8. Fora do escopo e limitações conhecidas
|
|
68
|
+
|
|
69
|
+
{O que a funcionalidade não faz (de propósito ou por limitação), com o motivo. Follow-ups abertos, com card.}
|
|
70
|
+
|
|
71
|
+
## 9. Testes e evidências
|
|
72
|
+
|
|
73
|
+
{Como a funcionalidade é verificada: suítes, cenários cobertos, testes manuais. Onde ficam.}
|
|
74
|
+
|
|
75
|
+
## 10. Histórico de entregas
|
|
76
|
+
|
|
77
|
+
| Data | Card | PR/MR | Autores | Resumo | Registro |
|
|
78
|
+
|---|---|---|---|---|---|
|
|
79
|
+
| {AAAA-MM-DD} | [{TASK_KEY}]({URL do card}) | [#{n}]({URL do PR/MR}) | {nomes} | {1 frase} | [delivery-…](../../engineering/{produto}/delivery-….md) |
|
|
80
|
+
|
|
81
|
+
## 11. Glossário e referências
|
|
82
|
+
|
|
83
|
+
- **{Termo}:** {definição}
|
|
84
|
+
- Cards: {TASK_KEY com URL}
|
|
85
|
+
- PRs/MRs: {números com URL}
|
|
86
|
+
- Documentos de origem (referência): {basenames}
|
|
@@ -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_STORAGE` estiver configurado (
|
|
57
|
+
| Caminho A › 2A.2 Análise de Documentação de Produto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado (funcionalidades já implementadas relacionadas ao épico; PRD/FRD vêm de `$PROD_DOCS`) |
|
|
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
|
---
|
|
@@ -418,8 +418,8 @@ Identifique:
|
|
|
418
418
|
>
|
|
419
419
|
> **1. Buscar contrato no repositório primeiro:**
|
|
420
420
|
> Procure por specs existentes nos seguintes locais:
|
|
421
|
-
> -
|
|
422
|
-
> -
|
|
421
|
+
> - `$ENG_DOCS/swagger/`
|
|
422
|
+
> - `$ENG_DOCS/openapi/`
|
|
423
423
|
> - `**/*swagger*.{yaml,yml,json}`
|
|
424
424
|
> - `**/*openapi*.{yaml,yml,json}`
|
|
425
425
|
> - `**/*api-spec*.{yaml,yml,json}`
|
|
@@ -23,7 +23,6 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
|
|
|
23
23
|
|-------|-------|----------|
|
|
24
24
|
| Objetivo | `eng.agent` (agente) | Sempre — identidade do workflow (alinhamento com `eng.agent.md`) |
|
|
25
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
26
|
|
|
28
27
|
---
|
|
29
28
|
|
|
@@ -43,7 +42,7 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
|
|
|
43
42
|
|
|
44
43
|
- Se o usuário tiver passado `edit <nome-ou-caminho>`, use isso como entrada inicial.
|
|
45
44
|
- Peça o **caminho do arquivo** do ARD existente (preferencial) ou o **nome** do ARD, se ainda não tiver.
|
|
46
|
-
- Se o usuário passar só o nome, confirme onde ele está (ex.: `$
|
|
45
|
+
- Se o usuário passar só o nome, confirme onde ele está (ex.: `$ENG_DOCS/ARD/...`).
|
|
47
46
|
- Leia o ARD atual e pergunte quais seções mudam (ou qual é o objetivo da iteração).
|
|
48
47
|
|
|
49
48
|
3. Se for **novo ARD**:
|
|
@@ -58,10 +57,10 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
|
|
|
58
57
|
- `Título`
|
|
59
58
|
- `Slug` para o nome do arquivo (kebab-case)
|
|
60
59
|
- Defina o `ARD-ID` automaticamente assim:
|
|
61
|
-
- Se a pasta `$
|
|
60
|
+
- Se a pasta `$ENG_DOCS/ARD/` existir e houver arquivos no padrão `ARD-###-*.md`, use o maior `###` + 1.
|
|
62
61
|
- Defina:
|
|
63
62
|
- `Status` (campo `status` no frontmatter: `proposed | in_progress | in_review | approved`)
|
|
64
|
-
- `Caminho do arquivo` (`$
|
|
63
|
+
- `Caminho do arquivo` (`$ENG_DOCS/ARD/{ARD-ID}-{slug}.md` ou caminho fornecido para iteração)
|
|
65
64
|
|
|
66
65
|
---
|
|
67
66
|
|
|
@@ -71,20 +70,20 @@ priorizando a **arquitetura observada no código do repositório**, usando o tem
|
|
|
71
70
|
|
|
72
71
|
Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
73
72
|
|
|
74
|
-
1.
|
|
73
|
+
1. Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
|
|
75
74
|
```bash
|
|
76
75
|
jarvis docs sync --silent
|
|
77
76
|
```
|
|
78
77
|
|
|
79
|
-
2. Buscar PRD relacionado usando:
|
|
78
|
+
2. Buscar o PRD relacionado em `$PROD_DOCS` (documento de trabalho; o Central docs não guarda PRD) usando:
|
|
80
79
|
- Título/objetivo do ARD
|
|
81
80
|
- Jira ID (se disponível)
|
|
82
81
|
- Tags semânticas
|
|
83
82
|
|
|
84
|
-
3. Se PRD encontrado
|
|
83
|
+
3. Se o PRD for encontrado em `$PROD_DOCS`:
|
|
85
84
|
- Carregar automaticamente como contexto
|
|
86
85
|
- Pular para item 2 (extração de requisitos)
|
|
87
|
-
- Informar ao usuário: "✅ PRD encontrado
|
|
86
|
+
- Informar ao usuário: "✅ PRD encontrado: [caminho]"
|
|
88
87
|
|
|
89
88
|
4. Se PRD não encontrado:
|
|
90
89
|
- Continuar com pergunta manual (item 1.2)
|
|
@@ -122,7 +121,7 @@ Objetivo: montar um retrato fiel do que o código revela hoje.
|
|
|
122
121
|
|
|
123
122
|
- `README.md`
|
|
124
123
|
- `ENV.md`
|
|
125
|
-
- `$DOCS_FOLDER/**` (especialmente `$
|
|
124
|
+
- `$DOCS_FOLDER/**` (especialmente `$ENG_DOCS/ARD/**` e docs de arquitetura existentes)
|
|
126
125
|
|
|
127
126
|
2. Identificar a stack e artefatos de build:
|
|
128
127
|
|
|
@@ -150,8 +149,8 @@ Objetivo: montar um retrato fiel do que o código revela hoje.
|
|
|
150
149
|
>
|
|
151
150
|
> **1. Buscar contrato no repositório primeiro:**
|
|
152
151
|
> Procure por specs existentes nos seguintes locais:
|
|
153
|
-
> -
|
|
154
|
-
> -
|
|
152
|
+
> - `$ENG_DOCS/swagger/`
|
|
153
|
+
> - `$ENG_DOCS/openapi/`
|
|
155
154
|
> - `**/*swagger*.{yaml,yml,json}`
|
|
156
155
|
> - `**/*openapi*.{yaml,yml,json}`
|
|
157
156
|
> - `**/*api-spec*.{yaml,yml,json}`
|
|
@@ -236,30 +235,7 @@ Entregar:
|
|
|
236
235
|
|
|
237
236
|
---
|
|
238
237
|
|
|
239
|
-
##
|
|
238
|
+
## Central docs
|
|
240
239
|
|
|
241
|
-
|
|
240
|
+
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.
|
|
242
241
|
|
|
243
|
-
1. Perguntar ao usuário:
|
|
244
|
-
```
|
|
245
|
-
Deseja publicar este ARD no repositório central de documentação?
|
|
246
|
-
- ( ) Sim, publicar agora
|
|
247
|
-
- ( ) Não, vou publicar depois manualmente
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
2. Se **Sim**:
|
|
251
|
-
- Executar:
|
|
252
|
-
```bash
|
|
253
|
-
jarvis docs publish \
|
|
254
|
-
--file {caminho_do_ard} \
|
|
255
|
-
--tipo ard
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
3. Informar resultado:
|
|
259
|
-
- ✅ Sucesso: "ARD publicado no Central docs." (com git: "PR aberto: [URL]")
|
|
260
|
-
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
261
|
-
|
|
262
|
-
4. Se **Não**:
|
|
263
|
-
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo ard`"
|
|
264
|
-
|
|
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.
|
|
@@ -29,8 +29,7 @@ usando o template `$IDE/templates/engineering/ARD-template.md`, sempre alinhado
|
|
|
29
29
|
| Passo | Skill | Condição |
|
|
30
30
|
|-------|-------|----------|
|
|
31
31
|
| Objetivo | `eng.agent` (agente) | Sempre — identidade do workflow (alinhamento com `eng.agent.md`) |
|
|
32
|
-
| Passo 1.1.1 –
|
|
33
|
-
| Passo 8 – 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 |
|
|
32
|
+
| Passo 1.1.1 – Consultar funcionalidades no Central Docs | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md |
|
|
34
33
|
|
|
35
34
|
---
|
|
36
35
|
|
|
@@ -50,7 +49,7 @@ usando o template `$IDE/templates/engineering/ARD-template.md`, sempre alinhado
|
|
|
50
49
|
|
|
51
50
|
- Se o usuário tiver passado `edit <nome-ou-caminho>`, use isso como entrada inicial.
|
|
52
51
|
- Peça o **caminho do arquivo** do ARD existente (preferencial) ou o **nome** do ARD, se ainda não tiver.
|
|
53
|
-
- Se o usuário passar só o nome, confirme onde ele está (ex.: `$
|
|
52
|
+
- Se o usuário passar só o nome, confirme onde ele está (ex.: `$ENG_DOCS/ARD/...`).
|
|
54
53
|
- Leia o ARD atual e pergunte quais seções mudam (ou qual é o objetivo da iteração).
|
|
55
54
|
|
|
56
55
|
3. Se for **novo ARD**:
|
|
@@ -65,11 +64,11 @@ usando o template `$IDE/templates/engineering/ARD-template.md`, sempre alinhado
|
|
|
65
64
|
- `Título`
|
|
66
65
|
- `Slug` para o nome do arquivo (kebab-case)
|
|
67
66
|
- Defina o `ARD-ID` automaticamente assim:
|
|
68
|
-
- Se a pasta `$
|
|
67
|
+
- Se a pasta `$ENG_DOCS/ARD/` existir e houver arquivos no padrão `ARD-###-*.md`, use o maior `###` + 1.
|
|
69
68
|
- Defina o `ARD-ID` automaticamente assim:
|
|
70
|
-
- Se a pasta `$
|
|
69
|
+
- Se a pasta `$ENG_DOCS/ARD/` existir e houver arquivos no padrão `ARD-###-*.md`, use o maior `###` + 1.
|
|
71
70
|
- `Status` (campo `status` no frontmatter: `proposed | in_progress | in_review | approved`)
|
|
72
|
-
- `Caminho do arquivo` (`$
|
|
71
|
+
- `Caminho do arquivo` (`$ENG_DOCS/ARD/{ARD-ID}-{slug}.md` ou caminho fornecido para iteração)
|
|
73
72
|
|
|
74
73
|
---
|
|
75
74
|
|
|
@@ -114,7 +113,7 @@ Regras:
|
|
|
114
113
|
- `ARD-ID`
|
|
115
114
|
- `Título`
|
|
116
115
|
- `Status` (campo `status` no frontmatter)
|
|
117
|
-
- `Caminho do arquivo` (`$
|
|
116
|
+
- `Caminho do arquivo` (`$ENG_DOCS/ARD/{ARD-ID}-{slug}.md` ou caminho fornecido para iteração)
|
|
118
117
|
|
|
119
118
|
---
|
|
120
119
|
|
|
@@ -124,20 +123,20 @@ Regras:
|
|
|
124
123
|
|
|
125
124
|
Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
126
125
|
|
|
127
|
-
1.
|
|
126
|
+
1. Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
|
|
128
127
|
```bash
|
|
129
128
|
jarvis docs sync --silent
|
|
130
129
|
```
|
|
131
130
|
|
|
132
|
-
2. Buscar PRD relacionado usando:
|
|
131
|
+
2. Buscar o PRD relacionado em `$PROD_DOCS` (documento de trabalho; o Central docs não guarda PRD) usando:
|
|
133
132
|
- Título/objetivo do ARD
|
|
134
133
|
- Jira ID (se disponível)
|
|
135
134
|
- Tags semânticas
|
|
136
135
|
|
|
137
|
-
3. Se PRD encontrado
|
|
136
|
+
3. Se o PRD for encontrado em `$PROD_DOCS`:
|
|
138
137
|
- Carregar automaticamente como contexto
|
|
139
138
|
- Pular para item 2 (extração de requisitos)
|
|
140
|
-
- Informar ao usuário: "✅ PRD encontrado
|
|
139
|
+
- Informar ao usuário: "✅ PRD encontrado: [caminho]"
|
|
141
140
|
|
|
142
141
|
4. Se PRD não encontrado:
|
|
143
142
|
- Continuar com pergunta manual (item 1.1.2)
|
|
@@ -264,8 +263,8 @@ Sempre que possível, destaque:
|
|
|
264
263
|
>
|
|
265
264
|
> **1. Buscar contrato no repositório primeiro:**
|
|
266
265
|
> Procure por specs existentes nos seguintes locais:
|
|
267
|
-
> -
|
|
268
|
-
> -
|
|
266
|
+
> - `$ENG_DOCS/swagger/`
|
|
267
|
+
> - `$ENG_DOCS/openapi/`
|
|
269
268
|
> - `**/*swagger*.{yaml,yml,json}`
|
|
270
269
|
> - `**/*openapi*.{yaml,yml,json}`
|
|
271
270
|
> - `**/*api-spec*.{yaml,yml,json}`
|
|
@@ -363,30 +362,7 @@ Peça explicitamente para o usuário:
|
|
|
363
362
|
|
|
364
363
|
---
|
|
365
364
|
|
|
366
|
-
##
|
|
365
|
+
## Central docs
|
|
367
366
|
|
|
368
|
-
|
|
367
|
+
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.
|
|
369
368
|
|
|
370
|
-
1. Perguntar ao usuário:
|
|
371
|
-
```
|
|
372
|
-
Deseja publicar este ARD no repositório central de documentação?
|
|
373
|
-
- ( ) Sim, publicar agora
|
|
374
|
-
- ( ) Não, vou publicar depois manualmente
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
2. Se **Sim**:
|
|
378
|
-
- Executar:
|
|
379
|
-
```bash
|
|
380
|
-
jarvis docs publish \
|
|
381
|
-
--file {caminho_do_ard} \
|
|
382
|
-
--tipo ard
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
3. Informar resultado:
|
|
386
|
-
- ✅ Sucesso: "ARD publicado no Central docs." (com git: "PR aberto: [URL]")
|
|
387
|
-
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
388
|
-
|
|
389
|
-
4. Se **Não**:
|
|
390
|
-
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo ard`"
|
|
391
|
-
|
|
392
|
-
> **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.
|
|
@@ -28,7 +28,6 @@ Além disso, quando houver campo `Versão` no RFC, aplicar obrigatoriamente:
|
|
|
28
28
|
| Passo | Skill | Condição |
|
|
29
29
|
|-------|-------|----------|
|
|
30
30
|
| Passo 0.6 – Buscar Documentação Relacionada no Central Docs | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md |
|
|
31
|
-
| Passo 7 – Publicar no Central Docs | `/jarvis-docs-central` (via `jarvis docs publish --tipo rfc`) | Se `CENTRAL_DOCS_STORAGE` estiver definido **e** o usuário aprovar o RFC e responder "Sim, publicar agora" |
|
|
32
31
|
|
|
33
32
|
---
|
|
34
33
|
|
|
@@ -59,11 +58,11 @@ Além disso, quando houver campo `Versão` no RFC, aplicar obrigatoriamente:
|
|
|
59
58
|
- `Owner`
|
|
60
59
|
- `Reviewers`
|
|
61
60
|
- Defina o `RFC-ID` automaticamente assim:
|
|
62
|
-
- Se a pasta `$
|
|
61
|
+
- Se a pasta `$ENG_DOCS/RFC/` existir e houver arquivos no padrão `RFC-###-*.md`, use o maior `###` + 1.
|
|
63
62
|
- Caso não exista ou não haja arquivos, iniciar em `RFC-001`.
|
|
64
63
|
- Defina:
|
|
65
64
|
- `Status` inicial = `Draft`
|
|
66
|
-
- `Caminho do arquivo` = `$
|
|
65
|
+
- `Caminho do arquivo` = `$ENG_DOCS/RFC/{RFC-ID}-{slug}.md`
|
|
67
66
|
|
|
68
67
|
---
|
|
69
68
|
|
|
@@ -94,7 +93,7 @@ Regras:
|
|
|
94
93
|
|
|
95
94
|
Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
96
95
|
|
|
97
|
-
1.
|
|
96
|
+
1. Consultar no Central docs as funcionalidades já implementadas relacionadas (o que existe hoje):
|
|
98
97
|
```bash
|
|
99
98
|
jarvis docs sync --silent
|
|
100
99
|
```
|
|
@@ -105,9 +104,9 @@ Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
|
105
104
|
- Tags semânticas
|
|
106
105
|
|
|
107
106
|
3. Documentos a buscar:
|
|
108
|
-
- **
|
|
109
|
-
- **
|
|
110
|
-
- **RFCs anteriores** relacionados ao tema
|
|
107
|
+
- **Funcionalidades já implementadas** relacionadas (Central docs: `feature-*`)
|
|
108
|
+
- **PRD relacionado** (em `$PROD_DOCS`, para rastreabilidade e contexto de negócio)
|
|
109
|
+
- **ARD existente** e **RFCs anteriores** relacionados ao tema (em `$ENG_DOCS/ARD` e `$ENG_DOCS/RFC`)
|
|
111
110
|
|
|
112
111
|
4. Se documentos encontrados:
|
|
113
112
|
- Carregar automaticamente como contexto
|
|
@@ -221,30 +220,7 @@ Entregar:
|
|
|
221
220
|
|
|
222
221
|
---
|
|
223
222
|
|
|
224
|
-
##
|
|
223
|
+
## Central docs
|
|
225
224
|
|
|
226
|
-
|
|
225
|
+
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.
|
|
227
226
|
|
|
228
|
-
1. Perguntar ao usuário:
|
|
229
|
-
```
|
|
230
|
-
Deseja publicar este RFC no repositório central de documentação?
|
|
231
|
-
- ( ) Sim, publicar agora
|
|
232
|
-
- ( ) Não, vou publicar depois manualmente
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
2. Se **Sim**:
|
|
236
|
-
- Executar:
|
|
237
|
-
```bash
|
|
238
|
-
jarvis docs publish \
|
|
239
|
-
--file {caminho_do_rfc} \
|
|
240
|
-
--tipo rfc
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
3. Informar resultado:
|
|
244
|
-
- ✅ Sucesso: "RFC publicado no Central docs." (com git: "PR aberto: [URL]")
|
|
245
|
-
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
246
|
-
|
|
247
|
-
4. Se **Não**:
|
|
248
|
-
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo rfc`"
|
|
249
|
-
|
|
250
|
-
> **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o RFC só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
|