jarvis-ai-framework 3.2.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/README.md +14 -14
- package/bin/commands/docs-publish.js +61 -93
- package/bin/commands/docs-sync.js +31 -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 +98 -159
- package/bin/lib/docs/storage/build-index.js +108 -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 +18 -4
- package/bin/lib/vcs/api.js +0 -125
- package/package.json +2 -2
- package/rules/AGENTS.md +12 -9
- package/rules/engineering/eng.docs-scraping-rules.md +4 -4
- package/rules/engineering/eng.integrations-rules.md +3 -2
- package/rules/engineering/rpa/eng.rpa-rules.md +1 -1
- package/rules/product/prod-rules.md +5 -6
- package/rules-on-demand/engineering/eng.pr-rules.md +9 -31
- package/rules-on-demand/engineering/eng.pre-pr-rules.md +12 -19
- package/rules-on-demand/product/prod.guided-rules.md +104 -0
- 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 +51 -275
- package/skills/jarvis-docs-central/SKILL.md +114 -301
- package/skills/jarvis-init/SKILL.md +81 -8
- package/templates/ENV-template.md +28 -7
- package/templates/engineering/ARD-template.md +40 -7
- package/templates/engineering/architecture-template.md +1 -0
- package/templates/engineering/central-delivery-template.md +65 -0
- package/templates/engineering/central-feature-template.md +86 -0
- 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 +4 -4
- package/workflows/engineering/eng.create-ard-from-code.md +15 -41
- package/workflows/engineering/eng.create-ard.md +22 -44
- package/workflows/engineering/eng.create-rfc.md +10 -36
- package/workflows/engineering/eng.pr.md +35 -66
- package/workflows/engineering/eng.pre-pr.md +52 -89
- package/workflows/engineering/eng.rpa.robot.md +9 -7
- package/workflows/engineering/eng.spec-consolidate.md +140 -0
- package/workflows/engineering/eng.start.md +23 -22
- 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.roadmap.preview.md +4 -1
- package/workflows/product/prod.spec.ard.md +9 -5
- package/workflows/product/prod.spec.breakdown.md +8 -4
- 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 +12 -40
- package/workflows/product/prod.spec.frd.md +13 -39
- package/workflows/product/prod.spec.issue.md +5 -1
- package/workflows/product/prod.spec.md +3 -1
- package/workflows/product/prod.spec.prd.md +13 -40
- package/workflows/warm-up.md +10 -12
- package/bin/lib/docs/redis-cache.js +0 -49
- package/bin/lib/vcs/fetch-raw.js +0 -42
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jarvis-docs-central
|
|
3
|
-
description: Integração com
|
|
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,274 +15,154 @@ metadata:
|
|
|
15
15
|
|
|
16
16
|
## Objetivo
|
|
17
17
|
|
|
18
|
-
Integrar
|
|
19
|
-
- Buscar docs relevantes automaticamente durante workflows
|
|
20
|
-
- Publicar docs aprovados via MR com git flow seguro
|
|
21
|
-
- Sincronização automática em /warm-up
|
|
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.
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
**Duas camadas de documentação:**
|
|
24
21
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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) |
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Ler do `$IDE/ENV.md`:
|
|
32
|
-
- `CENTRAL_DOCS_REPO` — URL do repo (GitLab, GitHub ou Bitbucket; se vazio: encerrar silenciosamente)
|
|
33
|
-
- `CENTRAL_DOCS_REF` — branch para leitura (padrão: `main`)
|
|
34
|
-
- `VERSION_CONTROL` — fallback se o hostname da URL não identificar o vendor
|
|
35
|
-
- `SQUAD` — squad do usuário (formato: ALL-CAPS-COM-HIFEN)
|
|
36
|
-
- `WORKSPACE` — nome do workspace em kebab-case
|
|
37
|
-
- `AREA` — define quais tipos de doc buscar
|
|
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á.
|
|
38
28
|
|
|
39
|
-
**
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
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).
|
|
43
33
|
|
|
44
|
-
|
|
34
|
+
## Adaptadores de armazenamento
|
|
45
35
|
|
|
46
|
-
|
|
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`).
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
| `CENTRAL_DOCS_STORAGE` | `CENTRAL_DOCS_LOCATION` | Situação |
|
|
39
|
+
|---|---|---|
|
|
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) |
|
|
49
43
|
|
|
50
|
-
|
|
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`.
|
|
51
47
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
{SQUAD}/
|
|
56
|
-
├── index.md # GERADO — não editar à mão
|
|
57
|
-
├── product/
|
|
58
|
-
│ └── {produto-em-kebab}/
|
|
59
|
-
│ ├── prd-{id}-{nome}.md
|
|
60
|
-
│ ├── frd-{id}-{nome}.md
|
|
61
|
-
│ ├── feat-{id}-{nome}.md
|
|
62
|
-
│ ├── epic-{id}-{nome}.md
|
|
63
|
-
│ ├── story-{id}-{nome}.md
|
|
64
|
-
│ └── task-{id}-{nome}.md
|
|
65
|
-
├── engineering/
|
|
66
|
-
│ └── {produto-em-kebab}/
|
|
67
|
-
│ ├── ard-{id}-{nome}.md
|
|
68
|
-
│ └── rfc-{id}-{nome}.md
|
|
69
|
-
└── context/ # opcional — só nasce com conteúdo
|
|
70
|
-
├── CLAUDE.md
|
|
71
|
-
└── (pesquisas, dados, assets — formato livre)
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
**Squads válidos** (pastas raiz ALL-CAPS): detectados dinamicamente pelo script.
|
|
75
|
-
Fonte de verdade: `taxonomy.md` na raiz do repo.
|
|
76
|
-
|
|
77
|
-
### Naming de arquivos
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
{tipo}-{id}-{nome-em-kebab}.md
|
|
81
|
-
```
|
|
48
|
+
Sem `.git`, grava direto na pasta.
|
|
82
49
|
|
|
83
|
-
|
|
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.
|
|
84
51
|
|
|
85
|
-
|
|
86
|
-
- Pasta de produto: `kebab-case`, um produto = uma pasta
|
|
52
|
+
## Pré-condição
|
|
87
53
|
|
|
88
|
-
|
|
54
|
+
Ler do `$IDE/ENV.md`:
|
|
55
|
+
- `CENTRAL_DOCS_STORAGE` e `CENTRAL_DOCS_LOCATION` (vazio: encerrar em silêncio)
|
|
56
|
+
- `CENTRAL_DOCS_REF`, `CENTRAL_DOCS_TARGET_BRANCH`, `CENTRAL_DOCS_REVIEWERS` (só com `.git`)
|
|
57
|
+
- `SQUAD` (ALL-CAPS-COM-HIFEN) e `WORKSPACE` (vira a pasta do produto)
|
|
89
58
|
|
|
90
|
-
|
|
91
|
-
|-------|-----|----------------|------|------|---------|
|
|
92
|
-
| `id` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
93
|
-
| `name` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
94
|
-
| `version` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
95
|
-
| `status` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
96
|
-
| `created` / `updated` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
97
|
-
| `created_by` / `last_editor` | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
98
|
-
| `related_prd` | – | ✓ | ✓ | – | – |
|
|
99
|
-
| `related_epic` | – | – | – | ✓ | – |
|
|
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.
|
|
100
60
|
|
|
101
|
-
|
|
61
|
+
---
|
|
102
62
|
|
|
103
|
-
|
|
104
|
-
```yaml
|
|
105
|
-
# ✅ Certo
|
|
106
|
-
related_prd: prd-001-minha-feature.md
|
|
63
|
+
## Estrutura do Central docs
|
|
107
64
|
|
|
108
|
-
# ❌ Errado
|
|
109
|
-
related_prd: ./prd-001-minha-feature.md
|
|
110
|
-
related_prd: ../minha-feature/prd-001-minha-feature.md
|
|
111
65
|
```
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
66
|
+
{SQUAD}/
|
|
67
|
+
├── index.md # GERADO a cada publicação — não editar à mão
|
|
68
|
+
├── product/
|
|
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)
|
|
120
74
|
```
|
|
121
75
|
|
|
122
|
-
|
|
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**.
|
|
123
78
|
|
|
124
|
-
|
|
79
|
+
### Frontmatter obrigatório (validado no `publish`)
|
|
125
80
|
|
|
126
|
-
|
|
81
|
+
| Tipo | Campos |
|
|
82
|
+
|------|--------|
|
|
83
|
+
| `feature` | `id`, `name`, `status`, `product`, `updated_at` |
|
|
84
|
+
| `delivery` | `id`, `feature`, `task_key`, `pr`, `date` |
|
|
127
85
|
|
|
128
|
-
|
|
86
|
+
Status da funcionalidade: a lista de produto (`icebox`, `in_review`, `backlog`, `in_progress`, `in_production`, `cancelled`, `deprecated`).
|
|
129
87
|
|
|
130
|
-
|
|
131
|
-
- `/eng.start` — buscar PRD/ARD antes de iniciar feature (Modo 1)
|
|
132
|
-
- `/eng.create-ard` — buscar PRD relacionado (Modo 1)
|
|
133
|
-
- `/eng.pre-pr` — detectar docs desatualizados (Modo 1)
|
|
134
|
-
- Publicação de doc aprovado (Modo 2)
|
|
135
|
-
- Reparo de índices inconsistentes ou ausentes (Modo 3)
|
|
88
|
+
### Índice
|
|
136
89
|
|
|
137
|
-
|
|
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.
|
|
138
93
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
### Modo 1: Buscar Docs (usado em warm-up, eng.start)
|
|
142
|
-
|
|
143
|
-
**Passo 1 — Buscar índice do squad**
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
jarvis docs sync
|
|
147
|
-
|
|
148
|
-
# Internamente chama fetchFile() de bin/lib/docs/fetch-file.js, equivalente a:
|
|
149
|
-
jarvis docs fetch "${SQUAD}/index.md" "${CENTRAL_DOCS_REF}"
|
|
150
|
-
```
|
|
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`).
|
|
151
95
|
|
|
152
|
-
|
|
96
|
+
Com `.git` e um `scripts/build-index.sh` no repositório de documentação, o adaptador usa o script dele.
|
|
153
97
|
|
|
154
|
-
|
|
98
|
+
```markdown
|
|
99
|
+
# CORE
|
|
155
100
|
|
|
156
|
-
|
|
157
|
-
# Fallback: clonar o CENTRAL_DOCS_REPO e listar arquivos locais
|
|
158
|
-
# (funciona igual em GitLab, GitHub e Bitbucket)
|
|
159
|
-
git ls-tree -r --name-only "${CENTRAL_DOCS_REF}" -- "${SQUAD}/product/${WORKSPACE}" "${SQUAD}/engineering/${WORKSPACE}"
|
|
160
|
-
```
|
|
101
|
+
## product
|
|
161
102
|
|
|
162
|
-
|
|
163
|
-
- `engineering/{produto}/ard-*.md` → ARD
|
|
164
|
-
- `engineering/{produto}/rfc-*.md` → RFC
|
|
165
|
-
- `product/{produto}/prd-*.md` → PRD
|
|
166
|
-
- `product/{produto}/frd-*.md` → FRD
|
|
167
|
-
- `product/{produto}/feat-*.md` → FEAT
|
|
168
|
-
- `product/{produto}/story-*.md` → STORY
|
|
169
|
-
- `context/` → artefatos de contexto (pesquisas, dados, assets)
|
|
103
|
+
> Funcionalidades (estado atual)
|
|
170
104
|
|
|
171
|
-
|
|
105
|
+
### loja
|
|
106
|
+
- [feature-checkout.md](product/loja/feature-checkout.md) | in_production | Checkout | 2026-10-15
|
|
172
107
|
|
|
173
|
-
|
|
174
|
-
- Buscar no `index.md` por `TASK_MANAGER_KEY` matching
|
|
175
|
-
- Se não encontrar, buscar por tags semânticas
|
|
176
|
-
- Filtrar por AREA:
|
|
177
|
-
- `PRODUCT` → PRDs e FRDs
|
|
178
|
-
- `ENGINEERING` → PRD (contexto) + ARDs + RFCs
|
|
108
|
+
## engineering
|
|
179
109
|
|
|
180
|
-
|
|
110
|
+
> Entregas recentes
|
|
181
111
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
jarvis docs fetch "${SQUAD}/engineering/${WORKSPACE}/ard-feature.md" "main"
|
|
112
|
+
### loja
|
|
113
|
+
- [delivery-2026-10-15-task-123.md](engineering/loja/delivery-2026-10-15-task-123.md) | TASK-123 | 2026-10-15
|
|
185
114
|
```
|
|
186
115
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
```markdown
|
|
190
|
-
# Contexto Carregado do Central Docs
|
|
191
|
-
|
|
192
|
-
## Squad: MEU-SQUAD / Produto: meu-produto
|
|
116
|
+
---
|
|
193
117
|
|
|
194
|
-
|
|
195
|
-
[conteúdo do PRD]
|
|
118
|
+
## Quando Usar
|
|
196
119
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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)
|
|
122
|
+
- Índice ausente ou divergente (Modo 3)
|
|
200
123
|
|
|
201
124
|
---
|
|
202
125
|
|
|
203
|
-
|
|
126
|
+
## Fluxo de Trabalho
|
|
204
127
|
|
|
205
|
-
|
|
128
|
+
### Modo 1: Buscar o que foi implementado
|
|
206
129
|
|
|
207
130
|
```bash
|
|
208
|
-
jarvis docs
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
--produto meu-produto \
|
|
212
|
-
--tipo ard
|
|
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
|
|
213
134
|
```
|
|
214
135
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
3. Validar que `related_*` usam apenas basename
|
|
220
|
-
4. Determinar destino: `{SQUAD}/engineering/{produto}/` ou `{SQUAD}/product/{produto}/`
|
|
221
|
-
5. Criar branch `docs/{SQUAD}/{area}/{produto}/{tipo}-{id}-{nome}`
|
|
222
|
-
6. Commit via API do vendor (GitLab / GitHub / Bitbucket) com o doc
|
|
223
|
-
7. Rodar `bash scripts/build-index.sh` localmente no clone e incluir o `{SQUAD}/index.md` atualizado no mesmo commit atômico
|
|
224
|
-
8. Criar MR → main
|
|
225
|
-
9. Retornar URL do MR
|
|
136
|
+
1. Buscar o índice do squad.
|
|
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.
|
|
226
140
|
|
|
227
|
-
|
|
141
|
+
Os documentos de trabalho da tarefa (PRD, FRD, ARD, RFC) **não** estão aqui: leia-os em `$PROD_DOCS`/`$ENG_DOCS`.
|
|
228
142
|
|
|
229
|
-
|
|
230
|
-
actions:
|
|
231
|
-
- { action: "create_or_update", file_path: "{SQUAD}/engineering/{produto}/ard-001-feature.md", content: "..." }
|
|
232
|
-
- { action: "create_or_update", file_path: "{SQUAD}/index.md", content: "..." }
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
> Usar `POST /repository/commits` com array `actions`.
|
|
236
|
-
> O `index.md` é o output de `build-index.sh` — nunca construído manualmente.
|
|
143
|
+
### Modo 2: Publicar a consolidação
|
|
237
144
|
|
|
238
|
-
**
|
|
145
|
+
Feito pelo `/eng.spec-consolidate`, depois do **Sim** do usuário:
|
|
239
146
|
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
|
|
147
|
+
```bash
|
|
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
|
|
243
150
|
```
|
|
244
151
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
> Detecta `{SQUAD}/index.md` ausente ou divergente e abre MR de reparo.
|
|
250
|
-
|
|
251
|
-
**Quando ativar:**
|
|
252
|
-
|
|
253
|
-
- Durante Modo 1, se o fallback de árvore encontrar docs que não aparecem no `index.md`
|
|
254
|
-
- Durante warm-up, se `index.md` não existir
|
|
255
|
-
- Quando o usuário pedir explicitamente
|
|
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`.
|
|
256
155
|
|
|
257
156
|
**Fluxo:**
|
|
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.
|
|
258
161
|
|
|
259
|
-
|
|
260
|
-
1. Clonar ou usar clone local de central-docs
|
|
261
|
-
2. Rodar: bash scripts/build-index.sh
|
|
262
|
-
3. Comparar output com os index.md commitados (git diff)
|
|
263
|
-
4. Se há divergência:
|
|
264
|
-
a. Criar branch: repair/index-{SQUAD}-{timestamp}
|
|
265
|
-
b. Commitar os index.md atualizados
|
|
266
|
-
c. Abrir MR → main
|
|
267
|
-
5. Reportar ao usuário
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
> O `build-index.sh` detecta squads dinamicamente — não é necessário listar squads manualmente.
|
|
162
|
+
### Modo 3: Reparar o índice
|
|
271
163
|
|
|
272
|
-
**
|
|
273
|
-
|
|
274
|
-
```
|
|
275
|
-
🔍 Verificando índices do central-docs (MEU-SQUAD)...
|
|
276
|
-
|
|
277
|
-
⚠️ MEU-SQUAD/index.md divergente — 3 docs ausentes no índice
|
|
278
|
-
|
|
279
|
-
📋 Abrindo MR de reparo...
|
|
280
|
-
Branch: repair/index-MEU-SQUAD-20260510
|
|
281
|
-
Arquivo: MEU-SQUAD/index.md
|
|
282
|
-
|
|
283
|
-
✅ MR aberto:
|
|
284
|
-
URL: {CENTRAL_DOCS_REPO}/-/merge_requests/44
|
|
285
|
-
```
|
|
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}`.
|
|
286
166
|
|
|
287
167
|
### Skills invocados durante a execução do skill
|
|
288
168
|
|
|
@@ -296,97 +176,30 @@ URL: {url do MR/PR retornada pelo adapter}
|
|
|
296
176
|
|
|
297
177
|
### Nunca
|
|
298
178
|
|
|
299
|
-
- Publicar
|
|
300
|
-
-
|
|
301
|
-
-
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
-
|
|
305
|
-
- Usar squad em minúsculas (ex: `core`) — sempre ALL-CAPS-COM-HIFEN: `MEU-SQUAD`
|
|
306
|
-
- Criar subpastas `engineering/index.md` ou `product/index.md` (não existem neste repo)
|
|
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`)
|
|
181
|
+
- Editar `{SQUAD}/index.md` à mão
|
|
182
|
+
- Push direto para a branch base quando a pasta tem `.git` (sempre por PR)
|
|
183
|
+
- Inventar metadados; incluir e-mails, tokens ou valores de variáveis
|
|
184
|
+
- Colocar o Central docs no versionamento de um repositório de código
|
|
307
185
|
|
|
308
186
|
### Sempre
|
|
309
187
|
|
|
310
|
-
- Ler
|
|
311
|
-
-
|
|
312
|
-
-
|
|
313
|
-
- Seguir git flow (branch → MR → main)
|
|
314
|
-
- Extrair token do `.npmrc` automaticamente
|
|
315
|
-
- Validar naming do arquivo antes de publicar
|
|
316
|
-
- Incluir `{SQUAD}/index.md` (gerado por `build-index.sh`) em todo commit de publicação
|
|
188
|
+
- Ler e publicar só pelo CLI (`jarvis docs fetch | sync | publish`)
|
|
189
|
+
- Se o Central docs tiver `AGENTS.md` na raiz, lê-lo antes de operar
|
|
190
|
+
- Usar `SQUAD` em ALL-CAPS-COM-HIFEN
|
|
317
191
|
|
|
318
192
|
---
|
|
319
193
|
|
|
320
194
|
## Troubleshooting
|
|
321
195
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
**Causa:** Squad ainda sem docs publicados. Índice só existe após o primeiro `publish`.
|
|
335
|
-
|
|
336
|
-
**Solução:** Publicar ao menos um doc via `jarvis docs publish`. O MR já incluirá o `index.md`.
|
|
337
|
-
|
|
338
|
-
### Erro: Frontmatter inválido
|
|
339
|
-
|
|
340
|
-
```
|
|
341
|
-
❌ Campos obrigatórios ausentes: name, version, created_by
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
**Solução:** Adicionar campos conforme tabela de frontmatter obrigatório acima.
|
|
345
|
-
|
|
346
|
-
### Erro: Naming inválido
|
|
347
|
-
|
|
348
|
-
```
|
|
349
|
-
❌ Nome do arquivo não segue o padrão: {tipo}-{id}-{nome-em-kebab}.md
|
|
350
|
-
Recebido: ARD-001-MinhaFeature.md
|
|
351
|
-
Esperado: ard-001-minha-feature.md
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**Solução:** Renomear o arquivo seguindo o padrão lowercase com hífens.
|
|
355
|
-
|
|
356
|
-
### CI falha com "Índices stale"
|
|
357
|
-
|
|
358
|
-
```
|
|
359
|
-
❌ Índices stale. Rode 'bash scripts/build-index.sh' localmente,
|
|
360
|
-
commita o resultado e empurre de novo.
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
**Solução:** O `{SQUAD}/index.md` no commit diverge do que o script geraria. Sempre incluir o output de `build-index.sh` no mesmo commit do doc.
|
|
364
|
-
|
|
365
|
-
---
|
|
366
|
-
|
|
367
|
-
## Integração com Workflows
|
|
368
|
-
|
|
369
|
-
### /warm-up
|
|
370
|
-
|
|
371
|
-
```markdown
|
|
372
|
-
Se CENTRAL_DOCS_REPO configurado:
|
|
373
|
-
1. jarvis docs sync
|
|
374
|
-
2. Exibir resumo de docs disponíveis do squad/produto
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
### /eng.start
|
|
378
|
-
|
|
379
|
-
```markdown
|
|
380
|
-
Se CENTRAL_DOCS_REPO definido:
|
|
381
|
-
- Buscar docs relacionados ao `TASK_MANAGER_KEY` no index.md do squad
|
|
382
|
-
- Carregar PRD + ARDs relevantes antes de criar architecture.md
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
### /eng.pre-pr
|
|
386
|
-
|
|
387
|
-
```markdown
|
|
388
|
-
1. Detectar mudanças arquiteturais no diff
|
|
389
|
-
2. Verificar se ARD local existe e está atualizado vs central-docs
|
|
390
|
-
3. Se desatualizado ou novo: perguntar "Publicar no central-docs?"
|
|
391
|
-
4. Se sim: jarvis docs publish
|
|
392
|
-
```
|
|
196
|
+
| Mensagem | Causa | O que fazer |
|
|
197
|
+
|---|---|---|
|
|
198
|
+
| `Central docs desligado (CENTRAL_DOCS_STORAGE vazio)` | Desligado no ENV | `/jarvis-init` → Passo 5.2 |
|
|
199
|
+
| `… não é mais usado. Rode o /jarvis-init e escolha Upgrade (C)` | `ENV.md` da versão anterior | `/jarvis-init` → Upgrade (C) |
|
|
200
|
+
| `Armazenamento "s3" ainda não suportado` | Valor de `STORAGE` sem adaptador | Use `filesystem` |
|
|
201
|
+
| `Pasta do Central docs não encontrada` | `LOCATION` errado ou pasta não criada | Criar a pasta ou ajustar `LOCATION` |
|
|
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` |
|
|
204
|
+
| `Campos obrigatórios ausentes` | Frontmatter incompleto | Completar conforme a tabela |
|
|
205
|
+
| `git pull`/`push` falhou (com `.git`) | Rede, permissão ou pasta suja | `git status` na pasta; o commit local fica para repetir |
|