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
|
@@ -25,7 +25,6 @@ Este comando executa a **implementação de código** seguindo o plano de execu
|
|
|
25
25
|
|-------|-------|----------|
|
|
26
26
|
| Cabeçalho (agente) | `eng.agent` (agente) | Sempre — identidade do workflow |
|
|
27
27
|
| Fase 0 › 0.1 Verificar ou Gerar Contexto da Sessão | `/jarvis-context-detect` | Se `ENABLE_CDD=true` e o `context.md` não existir (obrigatório antes da Fase 1) |
|
|
28
|
-
| Fase 0.5: Comentário no card — Início | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula) |
|
|
29
28
|
| Fase 3 › 3.1 Implementar Código (skill de domínio) | `/eng-frontend` (via `eng.specializations-rules.md`) | Se o domínio da feature for frontend (componentes, UI, estado, estilos, bundle, a11y); a regra também carrega `FRONTEND_SPECIALIZATIONS` |
|
|
30
29
|
| Fase 3 › 3.1 Implementar Código (skill de domínio) | `/eng-backend` (via `eng.specializations-rules.md`) | Se o domínio da feature for backend (endpoints, auth, workers, filas, cache, banco, integrações); a regra também carrega `BACKEND_SPECIALIZATIONS` |
|
|
31
30
|
| Fase 3 › 3.1 Implementar Código (skill de domínio) | `/eng-automation` (via `eng.specializations-rules.md`) | Se o domínio da feature for RPA, scraping, extração de dados, ETL ou parsing; a regra também carrega `AUTOMATION_SPECIALIZATIONS` |
|
|
@@ -33,7 +32,8 @@ Este comando executa a **implementação de código** seguindo o plano de execu
|
|
|
33
32
|
| Fase 3 › 3.3.1 Identificar Gaps de Teste | `eng.qa.test-planner` (agente) | Sempre, depois de implementar o código da fase |
|
|
34
33
|
| Fase 3 › 3.3.2 Implementar Testes Faltantes (Opção A) | `eng.qa.testing-engineer` (agente) | Se o test-planner identificar gaps e a estratégia do `architecture.md` seção 6.5 indicar testes manuais (unitário/integração) |
|
|
35
34
|
| Fase 3 › 3.3.2 Implementar Testes Faltantes (Opção B) | `/eng-qa` | Se a estratégia do `architecture.md` seção 6.5 indicar uma especialização registrada em `QA_SPECIALIZATIONS` |
|
|
36
|
-
| Fase
|
|
35
|
+
| Fase 3 › 3.1 Implementar Código (exceção) | `eng.advisor.agent` (agente) | Só por exceção: questão nova em aberto, com o Advisor habilitado no `eng.start` (cabeçalho do `architecture.md`) |
|
|
36
|
+
| Fase 5 › 5.4 e "Se houver bloqueio técnico" | `/eng-global-task-comment` | Se houver desvio do plano: mudança de direção, fase bloqueada ou questão nova consultada ao Advisor (freelance pula) |
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -152,20 +152,6 @@ Use as características do projeto detectadas:
|
|
|
152
152
|
|
|
153
153
|
---
|
|
154
154
|
|
|
155
|
-
## Fase 0.5: Comentário no card — Início
|
|
156
|
-
|
|
157
|
-
Pular se `TASK_MANAGER` estiver vazio (freelance).
|
|
158
|
-
|
|
159
|
-
Antes de iniciar a implementação, registrar início:
|
|
160
|
-
|
|
161
|
-
```
|
|
162
|
-
/eng-global-task-comment {TASK_MANAGER_KEY} ⚙️ [Jarvis] Iniciando implementação - Fase {N} do plano
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
> Usa o skill `/eng-global-task-comment`. Não bloquear se falhar.
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
155
|
## Fase 1: Leitura da Sessão
|
|
170
156
|
|
|
171
157
|
### 1.1 Carregar Arquivos
|
|
@@ -250,6 +236,8 @@ Para cada tarefa da fase:
|
|
|
250
236
|
- Testes unitários para cada função/método
|
|
251
237
|
- Cobrir casos de sucesso e erro
|
|
252
238
|
|
|
239
|
+
**Questão nova em aberto (exceção).** O ideal é que todas as questões tenham sido levantadas no `eng.start`. Se surgir uma nova e o cabeçalho do `architecture.md` indicar um Advisor, consulte `eng.advisor.agent` com o Prompt 2 de `$IDE/templates/engineering/advisor-template.md` (refaça o Prompt 1 se o subagente não existir mais), acrescente a questão à seção 8 marcada "levantada no `eng.work`", adote a sugestão do Advisor e poste o comentário de auditoria com `/eng-global-task-comment` (é desvio do plano; cite-o no PR como lacuna do `eng.start`). Sem Advisor, pergunte ao usuário.
|
|
240
|
+
|
|
253
241
|
### 3.2 Executar Validações Locais
|
|
254
242
|
|
|
255
243
|
Após implementar:
|
|
@@ -429,6 +417,8 @@ Atualize o `plan.md`:
|
|
|
429
417
|
- **Atenção**: {ponto importante para próximas fases}
|
|
430
418
|
```
|
|
431
419
|
|
|
420
|
+
Se o comentário registrar uma **mudança de direção** (desvio do plano), comente também no card com `/eng-global-task-comment`, dizendo o que mudou e por quê (freelance pula).
|
|
421
|
+
|
|
432
422
|
### 5.3 Commit da Fase (GitFlow)
|
|
433
423
|
|
|
434
424
|
Após validação do usuário e atualização do `plan.md`, commitar a fase na branch atual:
|
|
@@ -494,12 +484,6 @@ Refs: TASK-123"
|
|
|
494
484
|
|
|
495
485
|
### 6.2 Se Todas as Fases Foram Concluídas
|
|
496
486
|
|
|
497
|
-
**Comentário no card — Conclusão** (pular se freelance):
|
|
498
|
-
|
|
499
|
-
```
|
|
500
|
-
/eng-global-task-comment {TASK_MANAGER_KEY} ✅ [Jarvis] Implementação concluída - todas as {N} fases completadas. Commits realizados por fase.
|
|
501
|
-
```
|
|
502
|
-
|
|
503
487
|
```
|
|
504
488
|
🎉 TODAS AS FASES CONCLUÍDAS!
|
|
505
489
|
|
|
@@ -559,5 +543,6 @@ Refs: TASK-123"
|
|
|
559
543
|
### Se houver bloqueio técnico:
|
|
560
544
|
|
|
561
545
|
→ Documente no plan.md como `[Bloqueada 🚫]`
|
|
546
|
+
→ Comente o bloqueio no card com `/eng-global-task-comment` (desvio do plano; freelance pula)
|
|
562
547
|
→ Explique o bloqueio ao usuário
|
|
563
548
|
→ Sugira alternativas se possível
|
|
@@ -3,12 +3,15 @@ name: prod.roadmap.preview
|
|
|
3
3
|
description: Conhecer e ter visibilidade do roadmap de entregas planejadas do produto, como períodos de entrega, nome dos projetos e responsáveis.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
+
recommended_model: opus
|
|
6
7
|
model_tier: high
|
|
7
8
|
model_justification: Gestores e time precisam entender quais as próximas prioridades de entrega que serão feitas pelos times baseados nas informações disponíveis no projeto e também no task manager utilizado pela empresa.
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Roadmap Preview
|
|
11
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
|
|
12
15
|
Este comando tem como objetivo de buscar e trazer informações sobre o roadmap de entregas planejadas do produto, como períodos de entrega, nome dos projetos e responsáveis.
|
|
13
16
|
|
|
14
17
|
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
|
|
@@ -23,7 +26,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
23
26
|
- Sempre identifique o quadrimestre atual e o próximo com base na data de hoje.
|
|
24
27
|
- Utilize o MCP disponível relacionado ao $TASK_MANAGER utilizado pelo usuário.
|
|
25
28
|
- Antes de qualquer coisa, procure por informações sobre o projeto ou produto que o usuário está solicitando dentro da pasta de trabalho utilizado. Confirme com o usuário o que foi encontrado. Utilize também informações que o usuário já compartilhou.
|
|
26
|
-
- As documentações de projeto podem ser encontradas na pasta do projeto (`$PROD_DOCS`). Rascunhos WIP: `$SESSIONS_DIR/prod/`. Caso não estejam disponíveis localmente, utilize via Skill tool a `jarvis-docs-central` para buscar as informações
|
|
29
|
+
- As documentações de projeto podem ser encontradas na pasta do projeto (`$PROD_DOCS`). Rascunhos WIP: `$SESSIONS_DIR/prod/`. Caso não estejam disponíveis localmente, utilize via Skill tool a `jarvis-docs-central` para buscar as informações no Central docs (se `CENTRAL_DOCS_STORAGE` estiver configurado).
|
|
27
30
|
- Para trazer as informações, utilize via Skill tool a skill `product-roadmap-report`
|
|
28
31
|
|
|
29
32
|
### Status Reports por Squad
|
|
@@ -3,13 +3,17 @@ name: prod.spec.ard
|
|
|
3
3
|
description: Ponto de entrada de produto para o ARD (Architecture Requirements Document): levanta com o PM os requisitos arquiteturais em termos de produto e conduz o ARD pelo fluxo de engenharia.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: medium
|
|
8
8
|
model_justification: Levantamento estruturado de requisitos arquiteturais a partir de PRD e FRD, seguido da condução do fluxo de engenharia existente
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# ARD a partir do produto (Architecture Requirements Document)
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
|
|
14
18
|
|
|
15
19
|
Este fluxo é a **porta de entrada de produto** para o ARD. Ele levanta com o PM, em linguagem de produto, o que a arquitetura precisa atender (restrições, requisitos não funcionais, integrações, volumes e riscos) e, com isso, **conduz o ARD pelo fluxo de engenharia** (`eng.create-ard`), sem duplicá-lo.
|
|
@@ -41,7 +45,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
41
45
|
|
|
42
46
|
| Passo | Skill | Condição |
|
|
43
47
|
|-------|-------|----------|
|
|
44
|
-
| Gate 1: Reconhecer o contexto | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `
|
|
48
|
+
| Gate 1: Reconhecer o contexto | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md e for preciso buscar o PRD ou FRD relacionado |
|
|
45
49
|
| Gate 4: Conduzir o ARD | `/eng.create-ard` | Sempre, depois de os requisitos serem confirmados: modo `new`, com `--prd` quando houver PRD (workflow de engenharia; o aviso de transição de domínio é dado antes) |
|
|
46
50
|
|
|
47
51
|
## Resultado final
|
|
@@ -60,7 +64,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
60
64
|
|
|
61
65
|
### Gate 1: Reconhecer o contexto
|
|
62
66
|
1. Valide o `ENV.md` (regra geral de produto) e avise que o ARD é um documento de engenharia.
|
|
63
|
-
2. Identifique o PRD ou FRD de origem em `$PROD_DOCS` (ou o caminho que o usuário informar) e leia-o. Se `
|
|
67
|
+
2. Identifique o PRD ou FRD de origem em `$PROD_DOCS` (ou o caminho que o usuário informar) e leia-o. Se `CENTRAL_DOCS_STORAGE` estiver definido, busque no central docs o PRD ou FRD relacionado.
|
|
64
68
|
3. Resuma em poucas linhas o que a especificação pede e confirme com o usuário que é essa a origem. Se `AREA` do usuário não for `ENGINEERING`, avise que o ARD seguirá o fluxo de engenharia e deve ser revisado por alguém da engenharia.
|
|
65
69
|
|
|
66
70
|
### Gate 2: Levantar os requisitos arquiteturais em termos de produto
|
|
@@ -3,13 +3,17 @@ name: prod.spec.breakdown
|
|
|
3
3
|
description: Quebra uma especificação de produto grande (Documento de Requisitos de Produto ou Documento de Requisitos Funcionais) em fatias gerenciáveis — versões, épicos e histórias — sem perder o objetivo de valor.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: high
|
|
8
8
|
model_justification: Breakdown de produto exige julgamento de valor, sequenciamento e decomposição em entregas incrementais
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Quebra de especificação (breakdown)
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Este comando transforma uma especificação **grande demais para executar de uma vez** em um **plano detalhado (breakdown)**: versões / releases, épicos e esboço de histórias ou tarefas — com foco em **valor perceptível ao usuário**, não só em camadas técnicas.
|
|
14
18
|
|
|
15
19
|
Antes de iniciar, revise as regras invioláveis em `$PROD_RULES/**/*`. Se a variável for desconhecida, leia `.$IDE/rules/product/**/*.*`.
|
|
@@ -48,7 +52,7 @@ Utilize o `$ARGUMENTS` como ponto de partida (caminho da spec, nome da feature o
|
|
|
48
52
|
|-------|-------|----------|
|
|
49
53
|
| Pré-requisitos (item 2) | `/prod.spec.prd` | Se não houver spec pai e o usuário aceitar criar o PRD |
|
|
50
54
|
| Pré-requisitos (item 2) | `/prod.spec.frd` | Se não houver spec pai e o usuário aceitar criar o FRD |
|
|
51
|
-
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `
|
|
55
|
+
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver no ENV.md (best-effort) |
|
|
52
56
|
| Resultado esperado (materialização) | `/prod.spec.epic` | Se o usuário aprovar criar os arquivos de épico a partir do breakdown (nunca automaticamente) |
|
|
53
57
|
| Resultado esperado (materialização) | `/prod.spec.issue` | Se o usuário aprovar criar os arquivos de história ou tarefa a partir do breakdown (nunca automaticamente) |
|
|
54
58
|
|
|
@@ -58,7 +62,7 @@ O artefato de breakdown segue o template `$PROD_TEMPLATES/prod-breakdown-templat
|
|
|
58
62
|
|
|
59
63
|
## Busca no Central Docs (condicional)
|
|
60
64
|
|
|
61
|
-
Se `
|
|
65
|
+
Se `CENTRAL_DOCS_STORAGE` estiver no `ENV.md`:
|
|
62
66
|
|
|
63
67
|
1. `jarvis docs sync --silent` (best-effort)
|
|
64
68
|
2. Localizar Documento de Requisitos de Produto / funcional relacionado (nome, tags, `TASK_MANAGER_KEY`)
|
|
@@ -3,13 +3,17 @@ name: prod.spec.clarify
|
|
|
3
3
|
description: Identificar áreas subespecificadas na especificação da feature atual fazendo até 5 perguntas de esclarecimento altamente direcionadas e incorporando as respostas de volta na spec.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: medium
|
|
8
8
|
model_justification: Esclarecimento de specs requer análise estruturada e formulação de perguntas, mas segue processo bem definido
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
## Clarify workflow
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Detectar e reduzir ambiguidades ou pontos de decisão ausentes na especificação da feature ativa e registrar os esclarecimentos diretamente no arquivo da spec.
|
|
14
18
|
|
|
15
19
|
Rascunhos WIP (se houver) em `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/`. O heading `### Session YYYY-MM-DD` é um log **dentro da spec canônica** — não é a pasta `$SESSIONS_DIR`.
|
|
@@ -3,13 +3,17 @@ name: prod.spec.discovery
|
|
|
3
3
|
description: Investigação inicial de uma ideia: entrevista o usuário sobre a ideia, o problema, os requisitos iniciais e a viabilidade, sem chutar, e registra um rascunho estruturado com veredito e próximo passo sugerido.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: high
|
|
8
8
|
model_justification: Discovery exige conduzir uma entrevista adaptativa, julgar evidências e registrar hipóteses sem presumir dados
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Discovery (investigação inicial de uma ideia)
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Este comando conduz uma **entrevista** para investigar uma ideia ainda crua e registrar o resultado em um **rascunho estruturado**: o problema, o que precisaria ser verdade e se parece viável.
|
|
14
18
|
|
|
15
19
|
Antes de iniciar, revise as regras invioláveis em `$PROD_RULES/**/*`.
|
|
@@ -44,7 +48,7 @@ O comando e o agente seguem obrigatoriamente `$PROD_RULES` (`prod-rules.md`):
|
|
|
44
48
|
| Passo | Skill | Condição |
|
|
45
49
|
|-------|-------|----------|
|
|
46
50
|
| Regras do framework / Passo 4 — A entrevista | `prod.discovery-interviewer` (agente) | Sempre — conduz a entrevista, e o comando segue a postura dele |
|
|
47
|
-
| Passo 2 — Reconhecer o projeto | `/jarvis-docs-central` | Se `
|
|
51
|
+
| Passo 2 — Reconhecer o projeto | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado |
|
|
48
52
|
| Passo 2 — Reconhecer o projeto | `/jarvis-context-detect` | Para calibrar a profundidade da entrevista |
|
|
49
53
|
| Passo 2 — Reconhecer o projeto | `/eng-backend-arch-c4` | Só com a confirmação do usuário; o retorno é tratado como suposição a validar |
|
|
50
54
|
| Passo 2 — Reconhecer o projeto | `/eng-platform` + `PLATFORM_SPECIALIZATIONS` | Só com a confirmação do usuário; o retorno é tratado como suposição a validar |
|
|
@@ -70,7 +74,7 @@ Antes de perguntar, consulte o que já existe:
|
|
|
70
74
|
|
|
71
75
|
- Documentos em `$PROD_DOCS` (PRDs, FRDs e discoveries), para não duplicar o que já está especificado
|
|
72
76
|
- O código e os últimos commits, quando ajudarem a embasar a viabilidade
|
|
73
|
-
- `jarvis-docs-central`, se `
|
|
77
|
+
- `jarvis-docs-central`, se `CENTRAL_DOCS_STORAGE` estiver configurado
|
|
74
78
|
- `jarvis-context-detect`, para calibrar a profundidade da entrevista
|
|
75
79
|
- `eng-backend-arch-c4` e `eng-platform` (+ `PLATFORM_SPECIALIZATIONS`) são skills de engenharia: só consulte **com a confirmação do usuário**, e trate o retorno como **suposição a validar**, não como fato
|
|
76
80
|
|
|
@@ -3,13 +3,17 @@ name: prod.spec.epic
|
|
|
3
3
|
description: Fluxo de trabalho para criação de épicos que agrupam histórias de usuários e tarefas relacionadas seguindo as diretrizes do Product Spec Kit.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: medium
|
|
8
8
|
model_justification: Criação de épicos segue templates estruturados e requer compreensão de contexto de produto
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Crie um fluxo de trabalho épico
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
|
|
14
18
|
|
|
15
19
|
Este fluxo de trabalho orienta você na criação de um épico usando `$PROD_TEMPLATES/prod-epic-template.md`. épicos agrupam histórias de usuários relacionadas que oferecem uma funcionalidade significativa.
|
|
@@ -37,9 +41,9 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
37
41
|
|
|
38
42
|
| Passo | Skill | Condição |
|
|
39
43
|
|-------|-------|----------|
|
|
40
|
-
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `
|
|
44
|
+
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md, antes de criar o épico |
|
|
41
45
|
| Próximas etapas | `/prod.spec.issue` | Depois de criar o épico, se o usuário quiser escrever as histórias ou tarefas relacionadas |
|
|
42
|
-
| Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo epic`) | Se `
|
|
46
|
+
| Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo epic`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o épico estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
|
|
43
47
|
|
|
44
48
|
## Resultado final
|
|
45
49
|
- Por padrão, use o modelo `$PROD_TEMPLATES/prod-epic-template.md` integralmente
|
|
@@ -118,7 +122,7 @@ Após a aprovação do usuário:
|
|
|
118
122
|
|
|
119
123
|
## Busca no Central Docs (condicional)
|
|
120
124
|
|
|
121
|
-
Se `
|
|
125
|
+
Se `CENTRAL_DOCS_STORAGE` definido no ENV.md, antes de criar o épico:
|
|
122
126
|
|
|
123
127
|
- Executar busca automática no central-docs:
|
|
124
128
|
```bash
|
|
@@ -132,7 +136,7 @@ Se `CENTRAL_DOCS_REPO` definido no ENV.md, antes de criar o épico:
|
|
|
132
136
|
|
|
133
137
|
Após salvar o épico localmente e obter aprovação do usuário:
|
|
134
138
|
|
|
135
|
-
1. Se `
|
|
139
|
+
1. Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
136
140
|
- Perguntar ao usuário:
|
|
137
141
|
```
|
|
138
142
|
Deseja publicar este épico no repositório central de documentação?
|
|
@@ -141,23 +145,21 @@ Após salvar o épico localmente e obter aprovação do usuário:
|
|
|
141
145
|
```
|
|
142
146
|
|
|
143
147
|
2. Se **Sim**:
|
|
144
|
-
- Extrair o slug do nome do arquivo (ex: `epic-123-checkout.md` → `checkout`)
|
|
145
148
|
- Executar:
|
|
146
149
|
```bash
|
|
147
150
|
jarvis docs publish \
|
|
148
151
|
--file {caminho_do_epico} \
|
|
149
|
-
--tipo epic
|
|
150
|
-
--feature {slug}
|
|
152
|
+
--tipo epic
|
|
151
153
|
```
|
|
152
154
|
|
|
153
155
|
3. Informar resultado:
|
|
154
|
-
- ✅ Sucesso: "Épico publicado no
|
|
156
|
+
- ✅ Sucesso: "Épico publicado no Central docs." (com git: "PR aberto: [URL]")
|
|
155
157
|
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
156
158
|
|
|
157
159
|
4. Se **Não**:
|
|
158
|
-
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo epic
|
|
160
|
+
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo epic`"
|
|
159
161
|
|
|
160
|
-
> **Nota**:
|
|
162
|
+
> **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o épico só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
|
|
161
163
|
|
|
162
164
|
Utilize o que o usuário fornecer analisar em:
|
|
163
165
|
<requirement>
|
|
@@ -3,13 +3,17 @@ name: prod.spec.frd
|
|
|
3
3
|
description: Fluxo para criação de FRD (Functional Requirements Document), que auxilia na definição detalhada dos requisitos funcionais de uma feature
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: high
|
|
8
8
|
model_justification: FRDs requerem análise detalhada de requisitos funcionais, comportamento de usuário e especificações técnicas
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# FRD - Functional Requirements Document
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Este comando tem como objetivo criar, atualizar ou editar uma FRD seguindo o template especificado e as instruções.
|
|
14
18
|
|
|
15
19
|
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
|
|
@@ -30,8 +34,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
30
34
|
|
|
31
35
|
| Passo | Skill | Condição |
|
|
32
36
|
|-------|-------|----------|
|
|
33
|
-
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `
|
|
34
|
-
| Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo frd`) | Se `
|
|
37
|
+
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md |
|
|
38
|
+
| Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo frd`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o FRD estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
|
|
35
39
|
|
|
36
40
|
## Princípios Fundamentais
|
|
37
41
|
1. **Sempre use o template** `$PROD_TEMPLATES/prod-frd-template.md` para o output final
|
|
@@ -56,7 +60,7 @@ A FRD não é um épico, história ou task: ela serve como documento de detalham
|
|
|
56
60
|
|
|
57
61
|
## Busca no Central Docs (condicional)
|
|
58
62
|
|
|
59
|
-
Se `
|
|
63
|
+
Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
60
64
|
|
|
61
65
|
1. **Buscar PRD correspondente:**
|
|
62
66
|
- Executar busca automática no central-docs:
|
|
@@ -187,7 +191,7 @@ O sistema deve validar os dados do formulário.
|
|
|
187
191
|
|
|
188
192
|
Após salvar o FRD localmente e obter aprovação do usuário:
|
|
189
193
|
|
|
190
|
-
1. Se `
|
|
194
|
+
1. Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
191
195
|
- Perguntar ao usuário:
|
|
192
196
|
```
|
|
193
197
|
Deseja publicar este FRD no repositório central de documentação?
|
|
@@ -196,23 +200,21 @@ Após salvar o FRD localmente e obter aprovação do usuário:
|
|
|
196
200
|
```
|
|
197
201
|
|
|
198
202
|
2. Se **Sim**:
|
|
199
|
-
- Extrair o slug do nome do arquivo (ex: `frd-wallet-saque.md` → `wallet-saque`)
|
|
200
203
|
- Executar:
|
|
201
204
|
```bash
|
|
202
205
|
jarvis docs publish \
|
|
203
206
|
--file {caminho_do_frd} \
|
|
204
|
-
--tipo frd
|
|
205
|
-
--feature {slug}
|
|
207
|
+
--tipo frd
|
|
206
208
|
```
|
|
207
209
|
|
|
208
210
|
3. Informar resultado:
|
|
209
|
-
- ✅ Sucesso: "FRD publicado no
|
|
211
|
+
- ✅ Sucesso: "FRD publicado no Central docs." (com git: "PR aberto: [URL]")
|
|
210
212
|
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
211
213
|
|
|
212
214
|
4. Se **Não**:
|
|
213
|
-
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo frd
|
|
215
|
+
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo frd`"
|
|
214
216
|
|
|
215
|
-
5. Se `
|
|
216
|
-
- Informar: "Para habilitar publicação automática, configure
|
|
217
|
+
5. Se `CENTRAL_DOCS_STORAGE` não estiver definido:
|
|
218
|
+
- Informar: "Para habilitar publicação automática, configure o Central docs no `/jarvis-init` (`CENTRAL_DOCS_STORAGE`)"
|
|
217
219
|
|
|
218
|
-
> **Nota**:
|
|
220
|
+
> **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o FRD só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
|
|
@@ -3,13 +3,17 @@ name: prod.spec.issue
|
|
|
3
3
|
description: Criar um especificação de issues como Histórias de Usuário, Tarefas técnicas e bugs, seguindo as melhores práticas de gestão de produto e projeto.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: medium
|
|
8
8
|
model_justification: Criação de issues é estruturada e segue templates, requer boa compreensão mas não raciocínio extremamente complexo
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Fluxo de Criação de Issues
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*.*`.
|
|
14
18
|
|
|
15
19
|
Este fluxo orienta você na criação de issues (histórias de usuários, tarefas, bugs etc) bem definidas usando o template `$PROD_TEMPLATES/prod-issue-template.md`. Cada issue deve ser uma unidade de trabalho autocontida que pode ser completada dentro de uma única sprint.
|
|
@@ -3,13 +3,15 @@ name: prod.spec
|
|
|
3
3
|
description: Guia o usuário para construir especificações macro ou micro de produto, como PRDs, histórias, tarefas, RFDs e outros.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: medium
|
|
8
8
|
model_justification: Especificações de produto requerem compreensão de requisitos e estruturação de documentos
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Iniciar uma especificação
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
|
|
13
15
|
Estas instruções ajudam a orientar o usuário que deseja começar a construir uma especificação. Esta especificação pode variar desde um PRD, história de usuário até tarefas. Devemos orientá-lo nessa construção de forma que a especificação, seja ela macro ou micro seja criada de acordo com as instruções e padrões do projeto.
|
|
14
16
|
|
|
15
17
|
## Quando usar
|
|
@@ -3,13 +3,17 @@ name: prod.spec.prd
|
|
|
3
3
|
description: Alterar ou criar um especificação de produto PRD - Product Requirement Document seguindo o template especificado, regras invioláveis, possibilitando a utilização por agentes de IA e humanos.
|
|
4
4
|
auto_execution_mode: 3
|
|
5
5
|
env_file: "@/ENV.md"
|
|
6
|
-
recommended_model:
|
|
6
|
+
recommended_model: opus
|
|
7
7
|
model_tier: high
|
|
8
8
|
model_justification: PRDs requerem análise profunda de requisitos, estruturação de documentos complexos e compreensão de contexto de negócio
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# PRD - Product Requirement Document
|
|
12
12
|
|
|
13
|
+
> 🎓 **Modo de condução**: leia `PROD_MODE` no `$IDE/ENV.md`. Se for `developer-guided`, **antes de começar leia `$IDE/rules-on-demand/product/prod.guided-rules.md` e siga-o** em toda a conversa. Vazio ou `product-led`: siga este fluxo como está.
|
|
14
|
+
>
|
|
15
|
+
> 🤖 **Modelo**: se a IDE informar o modelo desta sessão e ele for de outra família que o `recommended_model` do documento (ou do template, se o documento for novo), avise em uma linha e siga, sem bloquear e sem repetir. Sem essa informação, não avise.
|
|
16
|
+
|
|
13
17
|
Este comando tem como objetivo criar, atualizar ou editar uma PRD seguindo o template especificado e as instruções.
|
|
14
18
|
|
|
15
19
|
Antes de iniciar, revise o arquivo de regras invioláveis em `$PROD_RULES/**/*`. Se você não estiver familiarizado com essa variável, leia as regras diretamente na pasta `.$IDE/rules/product/**/*.*`.
|
|
@@ -29,8 +33,8 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
29
33
|
|
|
30
34
|
| Passo | Skill | Condição |
|
|
31
35
|
|-------|-------|----------|
|
|
32
|
-
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `
|
|
33
|
-
| Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo prd`) | Se `
|
|
36
|
+
| Busca no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs sync --silent`) | Se `CENTRAL_DOCS_STORAGE` estiver definido no ENV.md (iteração de PRD existente) |
|
|
37
|
+
| Publicação no Central Docs (condicional) | `/jarvis-docs-central` (via `jarvis docs publish --tipo prd`) | Se `CENTRAL_DOCS_STORAGE` estiver definido, o PRD estiver salvo e aprovado e o usuário responder "Sim, publicar agora" |
|
|
34
38
|
|
|
35
39
|
## Princípios Fundamentais
|
|
36
40
|
1. **Sempre use o template** `$PROD_TEMPLATES/prod-prd-template.md` para o output final
|
|
@@ -41,7 +45,7 @@ Utilize o `$ARGUMENTS` que o usuário passar como ponto de partida e para entend
|
|
|
41
45
|
|
|
42
46
|
## Busca no Central Docs (condicional)
|
|
43
47
|
|
|
44
|
-
Se `
|
|
48
|
+
Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
45
49
|
|
|
46
50
|
1. **Para iteração de PRD existente:**
|
|
47
51
|
- Executar busca automática no central-docs:
|
|
@@ -174,7 +178,7 @@ Quais métricas? A) Engajamento B) Receita C) Outro
|
|
|
174
178
|
|
|
175
179
|
Após salvar o PRD localmente e obter aprovação do usuário:
|
|
176
180
|
|
|
177
|
-
1. Se `
|
|
181
|
+
1. Se `CENTRAL_DOCS_STORAGE` definido no ENV.md:
|
|
178
182
|
- Perguntar ao usuário:
|
|
179
183
|
```
|
|
180
184
|
Deseja publicar este PRD no repositório central de documentação?
|
|
@@ -183,24 +187,22 @@ Após salvar o PRD localmente e obter aprovação do usuário:
|
|
|
183
187
|
```
|
|
184
188
|
|
|
185
189
|
2. Se **Sim**:
|
|
186
|
-
- Extrair o slug do nome do arquivo (ex: `prd-wallet.md` → `wallet`)
|
|
187
190
|
- Executar:
|
|
188
191
|
```bash
|
|
189
192
|
jarvis docs publish \
|
|
190
193
|
--file {caminho_do_prd} \
|
|
191
|
-
--tipo prd
|
|
192
|
-
--feature {slug}
|
|
194
|
+
--tipo prd
|
|
193
195
|
```
|
|
194
196
|
|
|
195
197
|
3. Informar resultado:
|
|
196
|
-
- ✅ Sucesso: "PRD publicado no
|
|
198
|
+
- ✅ Sucesso: "PRD publicado no Central docs." (com git: "PR aberto: [URL]")
|
|
197
199
|
- ❌ Erro: Exibir mensagem de erro e orientar troubleshooting
|
|
198
200
|
|
|
199
201
|
4. Se **Não**:
|
|
200
|
-
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo prd
|
|
202
|
+
- Informar: "Para publicar depois, execute: `jarvis docs publish --file {caminho} --tipo prd`"
|
|
201
203
|
|
|
202
|
-
5. Se `
|
|
203
|
-
- Informar: "Para habilitar publicação automática, configure
|
|
204
|
+
5. Se `CENTRAL_DOCS_STORAGE` não estiver definido:
|
|
205
|
+
- Informar: "Para habilitar publicação automática, configure o Central docs no `/jarvis-init` (`CENTRAL_DOCS_STORAGE`)"
|
|
204
206
|
|
|
205
|
-
> **Nota**:
|
|
207
|
+
> **Nota**: se a pasta do Central docs for um repositório git, a publicação abre um Pull/Merge Request e o PRD só entra na branch base depois do merge. Sem git, o documento é gravado direto e o índice é regenerado.
|
|
206
208
|
|
package/workflows/warm-up.md
CHANGED
|
@@ -19,7 +19,7 @@ evitando leitura desnecessária de arquivos e economizando tokens.
|
|
|
19
19
|
| Passo | Skill | Condição |
|
|
20
20
|
|-------|-------|----------|
|
|
21
21
|
| Passo 0.5 › 2. Para cada tecnologia identificada | `context7` (MCP: `resolve-library-id`, `query-docs`) | Se houver variável de stack com valor no ENV.md (uma consulta por tecnologia identificada); sem variável de stack, pula silenciosamente |
|
|
22
|
-
| Passo 2 — Sincronizar Documentação Central | `/jarvis-docs-central` | Se `
|
|
22
|
+
| Passo 2 — Sincronizar Documentação Central | `/jarvis-docs-central` | Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md (Modo 1: Buscar Docs, via Skill tool) |
|
|
23
23
|
| Passo 4 › Menu TECH LEAD › opções A a H | `/eng.start`, `/eng.debug`, `/eng.create-ard`, `/eng.create-ard-from-code`, `/eng.create-rfc`, `/eng.build-tech-spec`, `/eng.review`, `/eng.docs` | Se `POSITION=TECH LEAD` e `AREA=ENGINEERING` (menu dedicado) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
|
|
24
24
|
| Passo 4 › Menu CTO › opções A a D | `/eng.review`, `/eng.create-ard`, `/eng.create-rfc`, `/eng.build-tech-spec` | Se `POSITION` for CTO ou equivalente (menu dedicado, para qualquer `AREA`) e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
|
|
25
25
|
| Passo 4 › Menu ENGINEERING + DATA › opções A a C | `/data.new-pipeline`, `/eng-data`, `/data.contract` | Se `AREA=ENGINEERING` e `HUB=DATA` e o usuário escolher uma das opções (cada opção chama o workflow correspondente, na ordem do menu e do roteamento do Passo 4; `Outro` não chama workflow) |
|
|
@@ -129,7 +129,7 @@ O perfil de comunicação é derivado de `POSITION` (conforme definido no `$IDE/
|
|
|
129
129
|
|
|
130
130
|
## Passo 2 — Sincronizar Documentação Central (condicional)
|
|
131
131
|
|
|
132
|
-
Se `
|
|
132
|
+
Se `CENTRAL_DOCS_STORAGE` estiver configurado no ENV.md, invocar o skill `jarvis-docs-central` via Skill tool para carregar docs do produto.
|
|
133
133
|
|
|
134
134
|
> ⚠️ **IMPORTANTE**: NÃO executar `jarvis docs sync` diretamente via Bash.
|
|
135
135
|
> Usar sempre: **Skill tool → jarvis-docs-central (Modo 1: Buscar Docs)**
|
|
@@ -158,7 +158,7 @@ Contexto: warm-up - sincronização inicial
|
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
**Comportamento:**
|
|
161
|
-
- Se `
|
|
161
|
+
- Se `CENTRAL_DOCS_STORAGE` vazio → pula silenciosamente
|
|
162
162
|
- Se erro de token → exibe aviso mas continua
|
|
163
163
|
- Se `index.md` não existe → navega estrutura do repo e lista docs disponíveis
|
|
164
164
|
- Se erro genérico → exibe mensagem clara e continua sem bloquear
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Cache best-effort via `redis-cli` para fetch-file.js/publish-file.js.
|
|
3
|
-
* Nunca lança — falha de leitura/escrita no cache nunca quebra o fluxo principal
|
|
4
|
-
* (mesmo contrato do `fetch-file.sh`/`publish-file.sh` originais, que faziam
|
|
5
|
-
* `redis-cli ... 2>/dev/null || true`).
|
|
6
|
-
* @module docs/redis-cache
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { execFileSync } from "node:child_process";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @param {string} key
|
|
13
|
-
* @returns {string} valor em cache, ou "" se não houver (ou `redis-cli` falhar)
|
|
14
|
-
*/
|
|
15
|
-
export function redisGet(key) {
|
|
16
|
-
try {
|
|
17
|
-
return execFileSync("redis-cli", ["GET", key], {
|
|
18
|
-
encoding: "utf-8",
|
|
19
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
20
|
-
}).trim();
|
|
21
|
-
} catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @param {string} key
|
|
28
|
-
* @param {string|number} ttlSeconds
|
|
29
|
-
* @param {string} value
|
|
30
|
-
*/
|
|
31
|
-
export function redisSetex(key, ttlSeconds, value) {
|
|
32
|
-
try {
|
|
33
|
-
execFileSync("redis-cli", ["-x", "SETEX", key, String(ttlSeconds)], {
|
|
34
|
-
input: value,
|
|
35
|
-
stdio: ["pipe", "ignore", "ignore"],
|
|
36
|
-
});
|
|
37
|
-
} catch {
|
|
38
|
-
// best-effort
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** @param {string} key */
|
|
43
|
-
export function redisDel(key) {
|
|
44
|
-
try {
|
|
45
|
-
execFileSync("redis-cli", ["DEL", key], { stdio: "ignore" });
|
|
46
|
-
} catch {
|
|
47
|
-
// best-effort
|
|
48
|
-
}
|
|
49
|
-
}
|
package/bin/lib/vcs/fetch-raw.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath } from "node:url";
|
|
2
|
-
import { fetchRawFile } from "./api.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Busca o conteúdo bruto de um arquivo no central-docs via adapter.
|
|
6
|
-
* Usada por `jarvis vcs fetch-raw`.
|
|
7
|
-
* @param {string} filePath - Path do arquivo dentro do repo central-docs
|
|
8
|
-
* @param {string} [ref] - Branch/ref (padrão: "main")
|
|
9
|
-
*/
|
|
10
|
-
export async function runFetchRaw(filePath, ref = "main") {
|
|
11
|
-
const repo = process.env.CENTRAL_DOCS_REPO;
|
|
12
|
-
|
|
13
|
-
if (!filePath) {
|
|
14
|
-
console.error("Uso: jarvis vcs fetch-raw <file-path> [ref]");
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
if (!repo) {
|
|
18
|
-
console.error("CENTRAL_DOCS_REPO não definido");
|
|
19
|
-
process.exit(1);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
const content = await fetchRawFile(repo, filePath, ref);
|
|
24
|
-
process.stdout.write(content);
|
|
25
|
-
} catch (err) {
|
|
26
|
-
if (err.code === 404) {
|
|
27
|
-
console.error(`⚠️ Arquivo não encontrado no central-docs: ${filePath}`);
|
|
28
|
-
process.exit(2);
|
|
29
|
-
}
|
|
30
|
-
if (err.code === 401 || err.code === 403) {
|
|
31
|
-
console.error("❌ Token sem permissão para acessar o repositório");
|
|
32
|
-
process.exit(1);
|
|
33
|
-
}
|
|
34
|
-
console.error(err.message);
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Compatibilidade: continua funcionando como `node bin/lib/vcs/fetch-raw.js <file-path> [ref]`
|
|
40
|
-
if (fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
41
|
-
await runFetchRaw(process.argv[2], process.argv[3] || "main");
|
|
42
|
-
}
|