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
|
@@ -100,7 +100,7 @@ ls -la docs/ 2>/dev/null || echo "Pasta docs/ não encontrada"
|
|
|
100
100
|
- Comentários inline no código
|
|
101
101
|
- Documentação de APIs
|
|
102
102
|
- Exemplos e tutoriais
|
|
103
|
-
-
|
|
103
|
+
- `$ENG_DOCS/c4/` - Diagramas de arquitetura
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
@@ -28,7 +28,7 @@ Garantir que todo código novo ou modificado possua cobertura de testes adequada
|
|
|
28
28
|
## Recursos
|
|
29
29
|
|
|
30
30
|
- **Base**: [eng-qa](../eng-qa/SKILL.md) — princípios de risco e priorização usados aqui vêm da base
|
|
31
|
-
- **Saída**: `$
|
|
31
|
+
- **Saída**: `$ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md`
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -126,7 +126,7 @@ Determinar quais testes estão faltando:
|
|
|
126
126
|
|
|
127
127
|
### 5. Gerar o relatório
|
|
128
128
|
|
|
129
|
-
Gerar arquivo `$
|
|
129
|
+
Gerar arquivo `$ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md`:
|
|
130
130
|
|
|
131
131
|
```markdown
|
|
132
132
|
# Análise de Cobertura de Testes da Branch
|
|
@@ -232,7 +232,7 @@ describe('[Funcionalidade]', () => {
|
|
|
232
232
|
- [ ] Diff da branch analisado (`git diff origin/main...HEAD`)
|
|
233
233
|
- [ ] Cada arquivo alterado mapeado para seu teste correspondente (ou marcado como ausente)
|
|
234
234
|
- [ ] Lacunas priorizadas por criticidade (alta/média/baixa)
|
|
235
|
-
- [ ] Relatório gerado em `$
|
|
235
|
+
- [ ] Relatório gerado em `$ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md`
|
|
236
236
|
|
|
237
237
|
---
|
|
238
238
|
|
|
@@ -240,7 +240,7 @@ describe('[Funcionalidade]', () => {
|
|
|
240
240
|
|
|
241
241
|
| Artefato | Descrição |
|
|
242
242
|
|----------|-----------|
|
|
243
|
-
| `$
|
|
243
|
+
| `$ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md` | Relatório de cobertura com plano de implementação priorizado |
|
|
244
244
|
|
|
245
245
|
> O artefato é gerado na raiz do projeto ou no diretório especificado em `$ARGUMENTS`.
|
|
246
246
|
|
|
@@ -259,6 +259,6 @@ Prioridade alta: {N} cenários
|
|
|
259
259
|
Prioridade média: {N} cenários
|
|
260
260
|
Prioridade baixa: {N} cenários
|
|
261
261
|
|
|
262
|
-
Relatório: $
|
|
262
|
+
Relatório: $ENG_DOCS/qa/{task-id}-test_coverage_branch_report.md
|
|
263
263
|
Próximo passo: implementar os testes do plano ou registrar uma especialização de execução em QA_SPECIALIZATIONS
|
|
264
264
|
```
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# jarvis-docs-central
|
|
2
2
|
|
|
3
|
-
Integração com o **Central docs**:
|
|
3
|
+
Integração com o **Central docs**: o registro do que **foi implementado** em cada produto do squad (um documento completo por funcionalidade e um registro por entrega), com um índice que os outros comandos consultam. Os documentos de trabalho (PRD, FRD, ARD, RFC) ficam em `docs/jarvis/` e não vão para lá.
|
|
4
4
|
|
|
5
5
|
## Visão Geral
|
|
6
6
|
|
|
7
|
-
- **Buscar**
|
|
8
|
-
- **Publicar**
|
|
7
|
+
- **Buscar** o que já foi implementado (`jarvis docs sync`, `jarvis docs fetch`)
|
|
8
|
+
- **Publicar** a consolidação de cada entrega (`jarvis docs publish`, pelo `/eng.spec-consolidate`)
|
|
9
9
|
- **Índice** regenerado a cada publicação (`{SQUAD}/index.md`)
|
|
10
10
|
|
|
11
11
|
O Central docs funciona por **adaptador de armazenamento**: hoje uma pasta do disco (`filesystem`). Se essa pasta for um clone de um repositório de documentação (tem `.git`), a publicação vira branch + commit + push + Pull/Merge Request. S3 e Google Drive são as issues #144 e #145.
|
|
12
12
|
|
|
13
13
|
## Configuração
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Ligado por padrão. O `/jarvis-init` (Passo 5.2) pergunta "Onde fica o Central docs?" (pasta local, repositório git ou desligar). À mão, no `ENV.md`:
|
|
16
16
|
|
|
17
17
|
```ini
|
|
18
18
|
CENTRAL_DOCS_STORAGE=filesystem
|
|
@@ -28,7 +28,7 @@ WORKSPACE=loja # vira a pasta do produto
|
|
|
28
28
|
| Modo de trabalho | Pasta padrão | Fora do versionamento por |
|
|
29
29
|
|---|---|---|
|
|
30
30
|
| Workspace (vários repositórios) | `./central-docs` | `central-docs/` no `.gitignore` do workspace |
|
|
31
|
-
| Projeto único | `docs/jarvis/central-docs` | `docs/jarvis
|
|
31
|
+
| Projeto único | `docs/jarvis/central-docs` | `docs/jarvis/` no `.gitignore` do projeto |
|
|
32
32
|
|
|
33
33
|
> Com `.git`, o PR usa o token do vendor (GitLab `.npmrc`, GitHub `gh auth`/`GITHUB_TOKEN`, Bitbucket `BITBUCKET_TOKEN`). O token **nunca** vai no chat nem no `ENV.md`.
|
|
34
34
|
|
|
@@ -37,45 +37,33 @@ WORKSPACE=loja # vira a pasta do produto
|
|
|
37
37
|
## Comandos
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
jarvis docs sync # resumo
|
|
40
|
+
jarvis docs sync # resumo: funcionalidades e entregas recentes
|
|
41
41
|
jarvis docs fetch CORE/index.md # conteúdo de um arquivo (exit 2 se não existir)
|
|
42
|
-
jarvis docs publish --file
|
|
43
|
-
jarvis docs publish --file
|
|
44
|
-
jarvis docs publish --file ./openapi.yaml --tipo swagger --feature api-wallet
|
|
42
|
+
jarvis docs publish --file .../consolidation/feature-checkout.md --tipo feature # pelo /eng.spec-consolidate
|
|
43
|
+
jarvis docs publish --file .../consolidation/delivery-2026-10-15-task-123.md --tipo delivery
|
|
45
44
|
```
|
|
46
45
|
|
|
47
|
-
- **Tipos:**
|
|
48
|
-
-
|
|
46
|
+
- **Tipos:** só `feature` (vai para `product/`) e `delivery` (vai para `engineering/`). PRD, ARD e os outros documentos de trabalho são recusados.
|
|
47
|
+
- Quem gera e publica é o [`/eng.spec-consolidate`](../../workflows/engineering/eng.spec-consolidate.md), depois do PR e do seu Sim.
|
|
49
48
|
|
|
50
49
|
## Estrutura e índice
|
|
51
50
|
|
|
52
51
|
```
|
|
53
52
|
{SQUAD}/
|
|
54
|
-
├── index.md
|
|
55
|
-
├── product/{produto}/
|
|
56
|
-
|
|
57
|
-
└── context/ # opcional
|
|
53
|
+
├── index.md # gerado; não editar
|
|
54
|
+
├── product/{produto}/feature-{slug}.md # funcionalidade: estado atual, completo
|
|
55
|
+
└── engineering/{produto}/delivery-{data}-{key}.md # registro de uma entrega
|
|
58
56
|
```
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
# CORE
|
|
62
|
-
|
|
63
|
-
## product
|
|
64
|
-
|
|
65
|
-
### loja
|
|
66
|
-
- [prd-001-checkout.md](product/loja/prd-001-checkout.md) | v1.0.0 | backlog | Checkout
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Com `.git` e `scripts/build-index.sh` no repositório de documentação, o índice vem do script dele.
|
|
58
|
+
O índice lista as funcionalidades e as 10 entregas mais recentes de cada produto. Com `.git` e `scripts/build-index.sh` no repositório de documentação, o índice vem do script dele.
|
|
70
59
|
|
|
71
60
|
## Integração com Workflows
|
|
72
61
|
|
|
73
62
|
| Comando | Uso |
|
|
74
63
|
|---|---|
|
|
75
|
-
| `/
|
|
76
|
-
| `/
|
|
77
|
-
| `/prod.spec
|
|
78
|
-
| `/eng.pre-pr` | Oferecer a publicação de um ARD novo ou atualizado |
|
|
64
|
+
| `/eng.spec-consolidate` | Gera e publica a funcionalidade e a entrega (e a carga inicial, `--inicial`) |
|
|
65
|
+
| `/jarvis-init` | Liga o Central docs (Passo 5.2) e oferece a carga inicial |
|
|
66
|
+
| `/warm-up`, `/eng.start`, `/prod.spec.*`, `/eng.create-ard`, `/eng.create-rfc`, `/eng.build-tech-spec` | Consultam as funcionalidades já implementadas |
|
|
79
67
|
|
|
80
68
|
## Arquitetura
|
|
81
69
|
|
|
@@ -86,7 +74,7 @@ bin/
|
|
|
86
74
|
│ └── docs-publish.js # jarvis docs publish
|
|
87
75
|
└── lib/docs/
|
|
88
76
|
├── fetch-file.js # openStorageFromEnv + fetchFile (jarvis docs fetch)
|
|
89
|
-
├── publish-file.js # tipos, destino e publicação
|
|
77
|
+
├── publish-file.js # tipos (feature, delivery), destino e publicação
|
|
90
78
|
├── validate-frontmatter.js
|
|
91
79
|
└── storage/
|
|
92
80
|
├── index.js # getStorage(env): escolhe o adaptador pelo CENTRAL_DOCS_STORAGE
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jarvis-docs-central
|
|
3
|
-
description: Integração com o Central docs,
|
|
3
|
+
description: Integração com o Central docs, o registro do que foi implementado (um documento completo por funcionalidade e um registro por entrega, gerados pelo /eng.spec-consolidate), guardado por um adaptador de armazenamento (hoje uma pasta do disco, com git opcional). Busca, publica e indexa pelo CLI jarvis docs.
|
|
4
4
|
argument-hint: "[contexto da tarefa]"
|
|
5
5
|
allowed-tools: Bash Read Write
|
|
6
6
|
disable-model-invocation: false
|
|
7
7
|
license: AGPL-3.0
|
|
8
8
|
metadata:
|
|
9
9
|
author: jarvis-team
|
|
10
|
-
version: "
|
|
10
|
+
version: "5.0"
|
|
11
11
|
area: global
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -15,38 +15,46 @@ metadata:
|
|
|
15
15
|
|
|
16
16
|
## Objetivo
|
|
17
17
|
|
|
18
|
-
Integrar os comandos do framework com o **Central docs**: o
|
|
18
|
+
Integrar os comandos do framework com o **Central docs**: o registro do que **de fato foi implementado** em cada produto do squad, com um índice (`{SQUAD}/index.md`) que os outros comandos consultam.
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
**Duas camadas de documentação:**
|
|
21
|
+
|
|
22
|
+
| Camada | O que é | Onde fica |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Documentos de trabalho | PRD, FRD, épicos, histórias, ARD, RFC, QA, swagger, robôs, C4: o que se pretende e se discute | `docs/jarvis/` (`$PROD_DOCS`, `$ENG_DOCS`), fora do versionamento |
|
|
25
|
+
| **Central docs** | O que foi implementado: um documento **completo e autossuficiente** por funcionalidade (estado atual) e um **registro por entrega** (PR, commits, autores) | Pasta do Central docs (adaptador) |
|
|
26
|
+
|
|
27
|
+
Quem escreve no Central docs é o **`/eng.spec-consolidate`** (agente `eng.docs-consolidator`), logo depois do PR. Os documentos de trabalho nunca são publicados lá.
|
|
28
|
+
|
|
29
|
+
**Modos deste skill:**
|
|
30
|
+
- buscar o que já foi implementado (Modo 1);
|
|
31
|
+
- publicar a consolidação (Modo 2);
|
|
32
|
+
- reparar o índice (Modo 3).
|
|
23
33
|
|
|
24
34
|
## Adaptadores de armazenamento
|
|
25
35
|
|
|
26
|
-
|
|
36
|
+
`CENTRAL_DOCS_STORAGE` escolhe o adaptador e `CENTRAL_DOCS_LOCATION` diz onde ele guarda. Os comandos são sempre os mesmos (`jarvis docs fetch | sync | publish`).
|
|
27
37
|
|
|
28
38
|
| `CENTRAL_DOCS_STORAGE` | `CENTRAL_DOCS_LOCATION` | Situação |
|
|
29
39
|
|---|---|---|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
| `s3`, `gdrive` | — | Ainda não suportados (
|
|
40
|
+
| `filesystem` (**padrão**) | Pasta (relativa à pasta do workspace ou absoluta) | Disponível |
|
|
41
|
+
| *(vazio)* | — | Desligado: os comandos pulam em silêncio; o `/eng.spec-consolidate` orienta ligar |
|
|
42
|
+
| `s3`, `gdrive` | — | Ainda não suportados (#144, #145) |
|
|
33
43
|
|
|
34
|
-
**Camada git do `filesystem`:** se a pasta tiver `.git` (clone de um repositório de documentação)
|
|
35
|
-
-
|
|
36
|
-
- ao publicar: branch
|
|
44
|
+
**Camada git do `filesystem`:** se a pasta tiver `.git` (clone de um repositório de documentação):
|
|
45
|
+
- antes de ler: `git pull --ff-only` em `CENTRAL_DOCS_REF` (se falhar, avisa e lê a cópia local);
|
|
46
|
+
- ao publicar: branch → cópia → índice → commit → push → PR para `CENTRAL_DOCS_TARGET_BRANCH`.
|
|
37
47
|
|
|
38
48
|
Sem `.git`, grava direto na pasta.
|
|
39
49
|
|
|
40
|
-
**Onde fica a pasta** (o `/jarvis-init`
|
|
50
|
+
**Onde fica a pasta** (o `/jarvis-init` configura no Passo 5.2): no modo workspace, `./central-docs` (no `.gitignore` do workspace); no projeto único, `docs/jarvis/central-docs` (coberto por `docs/jarvis/` no `.gitignore`). Nunca no versionamento de um repositório de código.
|
|
41
51
|
|
|
42
52
|
## Pré-condição
|
|
43
53
|
|
|
44
54
|
Ler do `$IDE/ENV.md`:
|
|
45
55
|
- `CENTRAL_DOCS_STORAGE` e `CENTRAL_DOCS_LOCATION` (vazio: encerrar em silêncio)
|
|
46
56
|
- `CENTRAL_DOCS_REF`, `CENTRAL_DOCS_TARGET_BRANCH`, `CENTRAL_DOCS_REVIEWERS` (só com `.git`)
|
|
47
|
-
- `SQUAD` (ALL-CAPS-COM-HIFEN)
|
|
48
|
-
|
|
49
|
-
`ENV.md` da versão anterior (com a variável do repositório remoto e sem `CENTRAL_DOCS_STORAGE`): os comandos pedem o Upgrade do `/jarvis-init`, que faz a migração.
|
|
57
|
+
- `SQUAD` (ALL-CAPS-COM-HIFEN) e `WORKSPACE` (vira a pasta do produto)
|
|
50
58
|
|
|
51
59
|
Com `.git`, o PR usa o token do vendor pelo adaptador de VCS (GitLab `.npmrc`; GitHub `gh auth`/`GITHUB_TOKEN`; Bitbucket `BITBUCKET_TOKEN`). ❌ **Nunca** colar token no chat.
|
|
52
60
|
|
|
@@ -56,128 +64,105 @@ Com `.git`, o PR usa o token do vendor pelo adaptador de VCS (GitLab `.npmrc`; G
|
|
|
56
64
|
|
|
57
65
|
```
|
|
58
66
|
{SQUAD}/
|
|
59
|
-
├── index.md
|
|
67
|
+
├── index.md # GERADO a cada publicação — não editar à mão
|
|
60
68
|
├── product/
|
|
61
|
-
│ └── {produto}/
|
|
62
|
-
│
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
│ ├── story-{id}-{nome}.md
|
|
67
|
-
│ └── task-{id}-{nome}.md
|
|
68
|
-
├── engineering/
|
|
69
|
-
│ └── {produto}/
|
|
70
|
-
│ ├── ard-{id}-{nome}.md
|
|
71
|
-
│ ├── rfc-{id}-{nome}.md
|
|
72
|
-
│ ├── swagger-{nome}.{md|yaml|json}
|
|
73
|
-
│ └── qa-report-{nome}.md
|
|
74
|
-
└── context/ # opcional — formato livre
|
|
69
|
+
│ └── {produto}/ # WORKSPACE do ENV.md (ou --produto)
|
|
70
|
+
│ └── feature-{slug}.md # funcionalidade: estado atual, completo
|
|
71
|
+
└── engineering/
|
|
72
|
+
└── {produto}/
|
|
73
|
+
└── delivery-{AAAA-MM-DD}-{task_key}.md # registro de uma entrega (PR)
|
|
75
74
|
```
|
|
76
75
|
|
|
77
|
-
-
|
|
78
|
-
-
|
|
76
|
+
- Templates: `templates/engineering/central-feature-template.md` (11 seções) e `central-delivery-template.md` (7 seções).
|
|
77
|
+
- `related_docs`/`feature` citam só o **basename**.
|
|
79
78
|
|
|
80
79
|
### Frontmatter obrigatório (validado no `publish`)
|
|
81
80
|
|
|
82
81
|
| Tipo | Campos |
|
|
83
82
|
|------|--------|
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `story` | `id`, `name`, `status`, `related_prd` |
|
|
87
|
-
| `task` | `id`, `name`, `status` |
|
|
88
|
-
| `ard` | `id`, `name`, `version`, `status` |
|
|
89
|
-
| `rfc` | `Status`, `Criado em`, `Proponente` |
|
|
90
|
-
| `qa-report` | `period`, `squad`, `version` |
|
|
83
|
+
| `feature` | `id`, `name`, `status`, `product`, `updated_at` |
|
|
84
|
+
| `delivery` | `id`, `feature`, `task_key`, `pr`, `date` |
|
|
91
85
|
|
|
92
|
-
|
|
93
|
-
- produto: `icebox`, `in_review`, `backlog`, `in_progress`, `in_production`, `cancelled`, `deprecated`;
|
|
94
|
-
- ARD: `proposed`, `in_progress`, `in_review`, `approved`;
|
|
95
|
-
- RFC: `Draft`, `In Review`, `Ready for Decision`, `Accepted`, `Rejected`, `Superseded`.
|
|
86
|
+
Status da funcionalidade: a lista de produto (`icebox`, `in_review`, `backlog`, `in_progress`, `in_production`, `cancelled`, `deprecated`).
|
|
96
87
|
|
|
97
|
-
|
|
88
|
+
### Índice
|
|
98
89
|
|
|
99
|
-
|
|
90
|
+
O `{SQUAD}/index.md` é **regenerado** a cada publicação, a partir do frontmatter:
|
|
91
|
+
- **`## product`:** as funcionalidades de cada produto (status, nome, data da última atualização);
|
|
92
|
+
- **`## engineering`:** as **10 entregas mais recentes** de cada produto.
|
|
100
93
|
|
|
101
|
-
|
|
94
|
+
Arquivos que não são `feature-*`/`delivery-*` ficam **fora** do índice. Exemplo: PRD e ARD publicados inteiros na versão 4.0.0, que podem ser apagados à mão ou transformados em funcionalidades pela carga inicial (`/eng.spec-consolidate --inicial`).
|
|
102
95
|
|
|
103
|
-
|
|
96
|
+
Com `.git` e um `scripts/build-index.sh` no repositório de documentação, o adaptador usa o script dele.
|
|
104
97
|
|
|
105
98
|
```markdown
|
|
106
99
|
# CORE
|
|
107
100
|
|
|
108
101
|
## product
|
|
109
102
|
|
|
103
|
+
> Funcionalidades (estado atual)
|
|
104
|
+
|
|
110
105
|
### loja
|
|
111
|
-
- [
|
|
106
|
+
- [feature-checkout.md](product/loja/feature-checkout.md) | in_production | Checkout | 2026-10-15
|
|
112
107
|
|
|
113
108
|
## engineering
|
|
114
109
|
|
|
110
|
+
> Entregas recentes
|
|
111
|
+
|
|
115
112
|
### loja
|
|
116
|
-
- [
|
|
113
|
+
- [delivery-2026-10-15-task-123.md](engineering/loja/delivery-2026-10-15-task-123.md) | TASK-123 | 2026-10-15
|
|
117
114
|
```
|
|
118
115
|
|
|
119
116
|
---
|
|
120
117
|
|
|
121
118
|
## Quando Usar
|
|
122
119
|
|
|
123
|
-
- `/warm-up`:
|
|
124
|
-
- `/eng.
|
|
125
|
-
- `/prod.spec.*`: buscar specs existentes e publicar a aprovada (Modos 1 e 2)
|
|
126
|
-
- `/eng.pre-pr`: detectar ARD novo ou desatualizado e oferecer a publicação (Modo 2)
|
|
120
|
+
- `/warm-up`, `/eng.start`, `/prod.spec.*`, `/eng.create-ard*`, `/eng.create-rfc`, `/eng.build-tech-spec`: conhecer o que **já foi implementado** (Modo 1)
|
|
121
|
+
- `/eng.spec-consolidate`: publicar a consolidação de uma entrega ou a carga inicial (Modo 2)
|
|
127
122
|
- Índice ausente ou divergente (Modo 3)
|
|
128
123
|
|
|
129
124
|
---
|
|
130
125
|
|
|
131
126
|
## Fluxo de Trabalho
|
|
132
127
|
|
|
133
|
-
### Modo 1: Buscar
|
|
128
|
+
### Modo 1: Buscar o que foi implementado
|
|
134
129
|
|
|
135
130
|
```bash
|
|
136
|
-
jarvis docs sync
|
|
137
|
-
jarvis docs fetch {SQUAD}/index.md
|
|
138
|
-
jarvis docs fetch {SQUAD}/product/{produto}/
|
|
131
|
+
jarvis docs sync # resumo: funcionalidades e entregas recentes
|
|
132
|
+
jarvis docs fetch {SQUAD}/index.md
|
|
133
|
+
jarvis docs fetch {SQUAD}/product/{produto}/feature-checkout.md
|
|
139
134
|
```
|
|
140
135
|
|
|
141
|
-
- Com `.git`, o primeiro acesso faz `pull`.
|
|
142
|
-
- `docs fetch` sai com código **2** quando o arquivo não existe.
|
|
143
|
-
|
|
144
136
|
1. Buscar o índice do squad.
|
|
145
|
-
2. Identificar
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
137
|
+
2. Identificar as funcionalidades relacionadas à tarefa (nome, produto, card citado no histórico).
|
|
138
|
+
3. Buscar cada `feature-*` com `jarvis docs fetch` (e um `delivery-*`, se o detalhe de uma entrega importar).
|
|
139
|
+
4. Devolver o resumo: funcionalidades, status e o que cada uma faz hoje.
|
|
140
|
+
|
|
141
|
+
Os documentos de trabalho da tarefa (PRD, FRD, ARD, RFC) **não** estão aqui: leia-os em `$PROD_DOCS`/`$ENG_DOCS`.
|
|
142
|
+
|
|
143
|
+
### Modo 2: Publicar a consolidação
|
|
150
144
|
|
|
151
|
-
|
|
145
|
+
Feito pelo `/eng.spec-consolidate`, depois do **Sim** do usuário:
|
|
152
146
|
|
|
153
147
|
```bash
|
|
154
|
-
jarvis docs publish --file
|
|
155
|
-
jarvis docs publish --file
|
|
156
|
-
jarvis docs publish --file ./openapi.yaml --tipo swagger --feature api-wallet
|
|
148
|
+
jarvis docs publish --file .../consolidation/delivery-2026-10-15-task-123.md --tipo delivery
|
|
149
|
+
jarvis docs publish --file .../consolidation/feature-checkout.md --tipo feature
|
|
157
150
|
```
|
|
158
151
|
|
|
159
|
-
Tipos:
|
|
152
|
+
- Tipos aceitos: **`feature`** e **`delivery`**.
|
|
153
|
+
- `prd`, `frd`, `ard`, `rfc` e os outros documentos de trabalho são recusados com a explicação.
|
|
154
|
+
- `--produto` troca o `WORKSPACE`.
|
|
160
155
|
|
|
161
156
|
**Fluxo:**
|
|
162
|
-
1. Validar o frontmatter
|
|
163
|
-
2. Calcular o destino
|
|
164
|
-
3. Sem `.git`: copiar
|
|
165
|
-
4. Com `.git`:
|
|
166
|
-
1. `checkout` + `pull` de `CENTRAL_DOCS_TARGET_BRANCH`;
|
|
167
|
-
2. branch `docs/{SQUAD}/{área}/{produto}/{nome}`;
|
|
168
|
-
3. cópia + índice;
|
|
169
|
-
4. commit e push;
|
|
170
|
-
5. PR para `CENTRAL_DOCS_TARGET_BRANCH`;
|
|
171
|
-
6. voltar para a branch base.
|
|
172
|
-
5. Mostrar o destino, o índice e a URL do PR (com `.git`).
|
|
173
|
-
|
|
174
|
-
Antes de publicar, **confirmar com o usuário**. Sem `.git` não há PR: a confirmação é a única revisão.
|
|
157
|
+
1. Validar o frontmatter.
|
|
158
|
+
2. Calcular o destino.
|
|
159
|
+
3. Sem `.git`: copiar e regenerar o índice.
|
|
160
|
+
4. Com `.git`: branch, cópia, índice, commit, push e PR.
|
|
175
161
|
|
|
176
162
|
### Modo 3: Reparar o índice
|
|
177
163
|
|
|
178
|
-
|
|
179
|
-
- **
|
|
180
|
-
- **Com `.git`:** no clone, rodar `bash scripts/build-index.sh` (se existir) e abrir um PR `repair/index-{SQUAD}-{data}` com o índice atualizado.
|
|
164
|
+
- **Sem `.git`:** a próxima publicação regenera o índice.
|
|
165
|
+
- **Com `.git`:** no clone, rodar `bash scripts/build-index.sh` (se existir) e abrir um PR `repair/index-{SQUAD}-{data}`.
|
|
181
166
|
|
|
182
167
|
### Skills invocados durante a execução do skill
|
|
183
168
|
|
|
@@ -191,19 +176,17 @@ Quando o índice não existe ou não lista todos os documentos:
|
|
|
191
176
|
|
|
192
177
|
### Nunca
|
|
193
178
|
|
|
194
|
-
- Publicar documento
|
|
179
|
+
- Publicar documento de trabalho (PRD, FRD, ARD, RFC…) no Central docs
|
|
180
|
+
- Publicar sem o Sim do usuário (Modo 2 é sempre pelo `/eng.spec-consolidate`)
|
|
195
181
|
- Editar `{SQUAD}/index.md` à mão
|
|
196
182
|
- Push direto para a branch base quando a pasta tem `.git` (sempre por PR)
|
|
197
|
-
-
|
|
198
|
-
- Inventar metadados (`version`, `status`, `id`)
|
|
199
|
-
- Usar path em campos `related_*`
|
|
183
|
+
- Inventar metadados; incluir e-mails, tokens ou valores de variáveis
|
|
200
184
|
- Colocar o Central docs no versionamento de um repositório de código
|
|
201
185
|
|
|
202
186
|
### Sempre
|
|
203
187
|
|
|
204
|
-
- Ler e publicar só pelo CLI (`jarvis docs fetch | sync | publish`)
|
|
188
|
+
- Ler e publicar só pelo CLI (`jarvis docs fetch | sync | publish`)
|
|
205
189
|
- Se o Central docs tiver `AGENTS.md` na raiz, lê-lo antes de operar
|
|
206
|
-
- Confirmar com o usuário antes de publicar
|
|
207
190
|
- Usar `SQUAD` em ALL-CAPS-COM-HIFEN
|
|
208
191
|
|
|
209
192
|
---
|
|
@@ -212,11 +195,11 @@ Quando o índice não existe ou não lista todos os documentos:
|
|
|
212
195
|
|
|
213
196
|
| Mensagem | Causa | O que fazer |
|
|
214
197
|
|---|---|---|
|
|
215
|
-
| `Central docs desligado (CENTRAL_DOCS_STORAGE vazio)` |
|
|
198
|
+
| `Central docs desligado (CENTRAL_DOCS_STORAGE vazio)` | Desligado no ENV | `/jarvis-init` → Passo 5.2 |
|
|
216
199
|
| `… não é mais usado. Rode o /jarvis-init e escolha Upgrade (C)` | `ENV.md` da versão anterior | `/jarvis-init` → Upgrade (C) |
|
|
217
200
|
| `Armazenamento "s3" ainda não suportado` | Valor de `STORAGE` sem adaptador | Use `filesystem` |
|
|
218
201
|
| `Pasta do Central docs não encontrada` | `LOCATION` errado ou pasta não criada | Criar a pasta ou ajustar `LOCATION` |
|
|
219
|
-
| `Arquivo não encontrado no Central docs: {SQUAD}/index.md` | Squad sem
|
|
202
|
+
| `Arquivo não encontrado no Central docs: {SQUAD}/index.md` | Squad sem consolidação ainda | `/eng.spec-consolidate --inicial` ou consolidar a próxima entrega |
|
|
203
|
+
| `O Central docs guarda só o que foi implementado` | Tentativa de publicar PRD/ARD/… | Gere a consolidação com `/eng.spec-consolidate` |
|
|
220
204
|
| `Campos obrigatórios ausentes` | Frontmatter incompleto | Completar conforme a tabela |
|
|
221
|
-
| `O arquivo "…" não segue o padrão` | Nome fora de `{tipo}-{id}-{nome}` | Renomear ou usar `--feature` |
|
|
222
205
|
| `git pull`/`push` falhou (com `.git`) | Rede, permissão ou pasta suja | `git status` na pasta; o commit local fica para repetir |
|
|
@@ -208,20 +208,24 @@ Identificar qual IDE o usuário está utilizando:
|
|
|
208
208
|
|
|
209
209
|
Serão adicionadas ao final do ENV.md sem alterar os valores existentes.
|
|
210
210
|
```
|
|
211
|
-
8. **Exceção —
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
8. **Exceção — documentos nos caminhos antigos:** procure documentos de trabalho em `$DOCS_FOLDER/product`, `$DOCS_FOLDER/engineering/{ARD,RFC,qa,swagger,openapi,robots,c4}` e `docs/engineering/{robots,swagger,openapi,c4}`.
|
|
212
|
+
- Se houver, liste o que encontrou e pergunte com `AskUserQuestion` se move para `docs/jarvis/…` (`$PROD_DOCS` e `$ENG_DOCS/…`). Use `git mv` quando o arquivo for versionado e `mv` quando não for, e garanta `docs/jarvis/` no `.gitignore`.
|
|
213
|
+
- **Sem confirmação, não mova nada:** grave `PROD_DOCS`/`ENG_DOCS` apontando para os caminhos antigos.
|
|
214
|
+
- Depois, ofereça a carga inicial do Central docs (Passo 5.3).
|
|
215
|
+
9. **Exceção — Central docs antigo:** se o `ENV.md` tiver `CENTRAL_DOCS_REPO` preenchido e não tiver `CENTRAL_DOCS_STORAGE`, propor a migração (só com confirmação): `CENTRAL_DOCS_STORAGE=filesystem`, `CENTRAL_DOCS_LOCATION` com o padrão do modo de trabalho (Passo 4, "Central docs") e `git clone {CENTRAL_DOCS_REPO} {LOCATION}`. Depois, comentar a linha antiga (`# CENTRAL_DOCS_REPO=… (migrado em YYYY-MM-DD)`) e `CENTRAL_DOCS_CACHE_TTL`. Sem confirmação, não mexe e avisa que os comandos de docs vão pedir o Upgrade.
|
|
216
|
+
10. **Exceção — `PROD_MODE`:** se `PROD_MODE` estiver entre as chaves novas, faça a mesma pergunta do Passo 3 (Pergunta 8 — modo de condução) e grave a resposta no lugar do valor vazio. As demais chaves continuam sem pergunta.
|
|
217
|
+
11. Appender as novas variáveis ao final do `ENV.md` com comentário de data:
|
|
214
218
|
```
|
|
215
219
|
# --- Upgrade YYYY-MM-DD ---
|
|
216
220
|
NOVA_VAR_1=
|
|
217
221
|
NOVA_VAR_2=valor-padrão
|
|
218
222
|
```
|
|
219
|
-
|
|
223
|
+
12. Confirmar:
|
|
220
224
|
```
|
|
221
225
|
✅ ENV.md atualizado! N variável(is) nova(s) adicionada(s).
|
|
222
226
|
⚠️ Preencha os valores em branco antes de usar os novos recursos.
|
|
223
227
|
```
|
|
224
|
-
|
|
228
|
+
13. Oferecer o **passo 9 (adicionar as stacks)**, que a pessoa pode pular, e então encerrar (não continuar para o fluxo de onboarding completo).
|
|
225
229
|
|
|
226
230
|
**⚠️ OBRIGATÓRIO - Criação do ENV.md**:
|
|
227
231
|
|
|
@@ -573,19 +577,7 @@ Token NÃO vai no ENV.md:
|
|
|
573
577
|
Nunca grave TOKEN_VERSION_CONTROL (chave removida do template).
|
|
574
578
|
```
|
|
575
579
|
|
|
576
|
-
**Central docs
|
|
577
|
-
```
|
|
578
|
-
Onde fica a documentação central?
|
|
579
|
-
A. Pasta local
|
|
580
|
-
B. Repositório de documentação (git)
|
|
581
|
-
C. Não usar → CENTRAL_DOCS_STORAGE= vazio
|
|
582
|
-
```
|
|
583
|
-
- **A ou B** → `CENTRAL_DOCS_STORAGE=filesystem` e `CENTRAL_DOCS_LOCATION` com o padrão do **modo de trabalho** (a pessoa pode digitar outro caminho):
|
|
584
|
-
- **modo workspace** (2+ subpastas com `.git`): `./central-docs`, e `central-docs/` no `.gitignore` do workspace;
|
|
585
|
-
- **projeto único** (só a raiz tem `.git`): `docs/jarvis/central-docs` (já coberto por `docs/jarvis/*` no `.gitignore`, ver Passo 5).
|
|
586
|
-
- **A**: `mkdir -p {LOCATION}` e criar `{LOCATION}/AGENTS.md` mínimo explicando a estrutura `{SQUAD}/{product|engineering}/{produto}/` e que o `{SQUAD}/index.md` é gerado pelo `jarvis docs publish`.
|
|
587
|
-
- **B**: pedir a URL do repositório e rodar `git clone {URL} {LOCATION}`. Se `{LOCATION}` já existir com `.git`, só usar. Perguntar `CENTRAL_DOCS_TARGET_BRANCH` (padrão `main`).
|
|
588
|
-
- Nunca colocar o Central docs no versionamento de um repositório de código.
|
|
580
|
+
**Central docs:** não é perguntado aqui. Ele é ligado por padrão e configurado no **Passo 5.2**, que roda sempre.
|
|
589
581
|
|
|
590
582
|
#### Variáveis Opcionais (alinhar ao `templates/ENV-template.md`)
|
|
591
583
|
|
|
@@ -612,7 +604,8 @@ C. Não usar → CENTRAL_DOCS_STORAGE= vazio
|
|
|
612
604
|
| `TEST_FOLDER` | *(vazio)* | Pasta de testes |
|
|
613
605
|
| `QA_SIGNOFF_BRANCHES` / `QA_SIGNOFF_MAX_AGE` | `main,release/*` / `24` | Sign-off QA |
|
|
614
606
|
| `JARVIS_PROJECT` | `https://github.com/phelipperibeiro/jarvis-framework` | Repo do framework (`/jarvis-report-issue`) |
|
|
615
|
-
| `CENTRAL_DOCS_STORAGE` / `_LOCATION` |
|
|
607
|
+
| `CENTRAL_DOCS_STORAGE` / `_LOCATION` | `filesystem` / pasta padrão do modo de trabalho | Central docs (o que foi implementado), configurado no Passo 5.2; vazio = desligado |
|
|
608
|
+
| `JARVIS_DOCS` / `ENG_DOCS` | `$DOCS_FOLDER/jarvis` / `$JARVIS_DOCS/engineering` | Documentos de trabalho (não perguntar; `docs/jarvis/` no `.gitignore`) |
|
|
616
609
|
| `CENTRAL_DOCS_REF` / `_TARGET_BRANCH` / `_REVIEWERS` | `main` / `main` / *(vazio)* | Só quando a pasta do Central docs tem `.git` |
|
|
617
610
|
| `SESSIONS_DIR` | `.jarvis/sessions` | Não perguntar — gravar fixo |
|
|
618
611
|
| `RTK_ENABLED` | `false` (ou true se detectar `rtk`) | Token Killer |
|
|
@@ -678,14 +671,50 @@ mkdir -p .jarvis/sessions/eng .jarvis/sessions/prod .jarvis/sessions/qa
|
|
|
678
671
|
# Garantir .jarvis/ no .gitignore do workspace
|
|
679
672
|
grep -qxF '.jarvis/' .gitignore 2>/dev/null || echo '.jarvis/' >> .gitignore
|
|
680
673
|
|
|
681
|
-
# 8.
|
|
682
|
-
#
|
|
683
|
-
#
|
|
684
|
-
grep -qxF 'docs/jarvis
|
|
685
|
-
|
|
686
|
-
|
|
674
|
+
# 8. Documentos de trabalho em docs/jarvis/ — nos DOIS modos de trabalho:
|
|
675
|
+
# JARVIS_DOCS=$DOCS_FOLDER/jarvis, PROD_DOCS=$JARVIS_DOCS/product, ENG_DOCS=$JARVIS_DOCS/engineering
|
|
676
|
+
# (valores do template) e docs/jarvis/ fora do versionamento (uma docs/ já existente não é tocada):
|
|
677
|
+
grep -qxF 'docs/jarvis/' .gitignore 2>/dev/null || echo 'docs/jarvis/' >> .gitignore
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### 5.2 Central docs (sempre)
|
|
681
|
+
|
|
682
|
+
O Central docs é **ligado por padrão**: é onde fica o registro do que **foi implementado**, gerado pelo `/eng.spec-consolidate` depois de cada PR. Explique em uma frase ao usuário:
|
|
683
|
+
|
|
684
|
+
```
|
|
685
|
+
📚 Central docs: o registro do que foi implementado (um documento completo por funcionalidade
|
|
686
|
+
e um por entrega), consultado pela IA e por outros squads. Os rascunhos (PRD, FRD, ARD, RFC)
|
|
687
|
+
ficam em docs/jarvis/ e não vão para lá.
|
|
687
688
|
```
|
|
688
689
|
|
|
690
|
+
Pergunte com `AskUserQuestion`:
|
|
691
|
+
- **"Onde fica o Central docs?"**
|
|
692
|
+
- A) Pasta local (padrão)
|
|
693
|
+
- B) Repositório de documentação (git)
|
|
694
|
+
- C) Desligar
|
|
695
|
+
|
|
696
|
+
**A ou B:**
|
|
697
|
+
- `CENTRAL_DOCS_STORAGE=filesystem`.
|
|
698
|
+
- `CENTRAL_DOCS_LOCATION` com o padrão do **modo de trabalho** (a pessoa pode digitar outro caminho):
|
|
699
|
+
- **modo workspace** (2+ subpastas com `.git`): `./central-docs`, com `central-docs/` no `.gitignore` do workspace;
|
|
700
|
+
- **projeto único** (só a raiz tem `.git`): `docs/jarvis/central-docs`, já coberto por `docs/jarvis/` no `.gitignore`.
|
|
701
|
+
- **A:** `mkdir -p {LOCATION}` e criar `{LOCATION}/AGENTS.md` mínimo, explicando:
|
|
702
|
+
- a estrutura `{SQUAD}/product/{produto}/feature-*.md` e `{SQUAD}/engineering/{produto}/delivery-*.md`;
|
|
703
|
+
- que o `{SQUAD}/index.md` é gerado pelo `jarvis docs publish`.
|
|
704
|
+
- **B:** pedir a URL e rodar `git clone {URL} {LOCATION}`. Se `{LOCATION}` já existir com `.git`, só usar. Perguntar `CENTRAL_DOCS_TARGET_BRANCH` (padrão `main`).
|
|
705
|
+
|
|
706
|
+
**C:** `CENTRAL_DOCS_STORAGE=` vazio. O `/eng.spec-consolidate` fica indisponível até ligar.
|
|
707
|
+
|
|
708
|
+
Nunca coloque o Central docs no versionamento de um repositório de código.
|
|
709
|
+
|
|
710
|
+
### 5.3 Carga inicial do Central docs (se houver documentos)
|
|
711
|
+
|
|
712
|
+
Com o Central docs ligado:
|
|
713
|
+
1. Procure PRD, FRD, ARD e RFC em `$PROD_DOCS`, `$ENG_DOCS/{ARD,RFC}` (e nos caminhos antigos, se não foram movidos).
|
|
714
|
+
2. Se encontrar algum, mostre a contagem e pergunte com `AskUserQuestion` (**Sim / Não**): **"Gerar o Central docs agora a partir desses documentos?"**
|
|
715
|
+
3. Com **Sim**, chame `/eng.spec-consolidate --inicial`. Ele agrupa os documentos por funcionalidade, gera um `feature-*.md` por grupo (sem registro de entrega, porque não há PR) e só publica depois da revisão e do seu Sim.
|
|
716
|
+
4. Com **Não**, siga. Dá para rodar o `/eng.spec-consolidate --inicial` depois.
|
|
717
|
+
|
|
689
718
|
**⚠️ REGRA CRÍTICA — Bloco DATA:**
|
|
690
719
|
|
|
691
720
|
```javascript
|
|
@@ -729,6 +758,8 @@ FLOWS_FOLDER={commands|workflows}
|
|
|
729
758
|
TEMPLATES_FOLDER=templates
|
|
730
759
|
RULES_FOLDER=.$IDE/rules
|
|
731
760
|
SESSIONS_DIR=.jarvis/sessions
|
|
761
|
+
JARVIS_DOCS=$DOCS_FOLDER/jarvis
|
|
762
|
+
ENG_DOCS=$JARVIS_DOCS/engineering
|
|
732
763
|
PROD_FOLDER_NAME=product
|
|
733
764
|
PROD_RULES=...
|
|
734
765
|
PROD_FLOWS=...
|
|
@@ -756,11 +787,13 @@ RULES_FOLDER=.$IDE/rules
|
|
|
756
787
|
SESSIONS_DIR=.jarvis/sessions
|
|
757
788
|
ENABLE_CDD=true
|
|
758
789
|
|
|
790
|
+
JARVIS_DOCS=$DOCS_FOLDER/jarvis
|
|
791
|
+
ENG_DOCS=$JARVIS_DOCS/engineering
|
|
759
792
|
PROD_FOLDER_NAME=product
|
|
760
793
|
PROD_RULES=$RULES_FOLDER/$PROD_FOLDER_NAME
|
|
761
794
|
PROD_FLOWS=.$IDE/$FLOWS_FOLDER
|
|
762
795
|
PROD_TEMPLATES=.$IDE/$TEMPLATES_FOLDER/$PROD_FOLDER_NAME
|
|
763
|
-
PROD_DOCS=$
|
|
796
|
+
PROD_DOCS=$JARVIS_DOCS/$PROD_FOLDER_NAME
|
|
764
797
|
```
|
|
765
798
|
|
|
766
799
|
**⚠️ IMPORTANTE - FLOWS_FOLDER por IDE:**
|
|
@@ -1105,6 +1138,7 @@ Apresentar checklist de onboarding por período (Dia 1, Semana 1, Mês 1).
|
|
|
1105
1138
|
|
|
1106
1139
|
| Passo | Skill | Condição |
|
|
1107
1140
|
|-------|-------|----------|
|
|
1141
|
+
| Passo 5.3 — Carga inicial do Central docs | `/eng.spec-consolidate --inicial` | Se o Central docs estiver ligado, houver PRD/FRD/ARD/RFC e o usuário responder Sim (também no Upgrade, depois da migração) |
|
|
1108
1142
|
| Passo 9 — Adicionar as stacks (opcional) | `/jarvis-create-specialization {área} {stack}` | Se a pessoa escolher criar um skill novo para uma stack que ainda não tem especialização instalada (uma stack por vez; pular o passo não chama nada) |
|
|
1109
1143
|
|
|
1110
1144
|
---
|