jarvis-ai-framework 2.1.0 → 2.1.1
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.md +10 -9
- package/agents/AGENTS.md +9 -1
- package/agents/README.md +2 -2
- package/agents/engineering/data/eng.data-engineer.agent.md +2 -2
- package/agents/engineering/eng.agent.md +4 -6
- package/agents/engineering/eng.bug-hunter.md +10 -5
- package/agents/engineering/eng.cybersecurity.agent.md +2 -4
- package/agents/engineering/eng.dev-code-reviewer.md +4 -0
- package/agents/engineering/eng.docs-writer.md +3 -3
- package/agents/engineering/eng.frontend.agent.md +17 -8
- package/agents/engineering/eng.rpa.agent.md +3 -5
- package/agents/engineering/eng.ux-designer.agent.md +4 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +8 -5
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +4 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +18 -8
- package/agents/engineering/qa/eng.qa.test-architect.md +17 -6
- package/agents/engineering/qa/eng.qa.test-planner.md +17 -8
- package/agents/engineering/qa/eng.qa.testing-engineer.md +26 -9
- package/agents/product/prod.discovery-interviewer.md +22 -3
- package/agents/product/prod.pm-checker.md +4 -0
- package/bin/commands/map.js +43 -0
- package/bin/commands/tokens.js +93 -0
- package/bin/jarvis.js +10 -0
- package/bin/lib/config/constants.js +11 -0
- package/bin/lib/core/profile-filter.js +113 -0
- package/bin/lib/core/scanner.js +2 -2
- package/bin/lib/core/token-report.js +90 -0
- package/bin/lib/flow-map/index.js +65 -0
- package/bin/lib/flow-map/parse.js +217 -0
- package/bin/lib/flow-map/render.js +86 -0
- package/bin/lib/flow-map/tree.js +199 -0
- package/members.md +1 -1
- package/package.json +4 -2
- package/rules/AGENTS.md +18 -7
- package/rules/engineering/eng-rules.md +2 -12
- package/rules/engineering/eng-security-rules.md +1 -2
- package/rules/engineering/eng.integrations-rules.md +0 -4
- package/rules/engineering/eng.skills-rules.md +0 -4
- package/rules/engineering/eng.specializations-rules.md +0 -4
- package/rules/product/README.md +1 -0
- package/rules/product/prod-rules.md +1 -4
- package/rules/product/prod.spec-rules.md +0 -4
- package/rules/rtk-rules.md +0 -1
- package/{rules → rules-on-demand}/engineering/eng.breakdown-subtasks-rules.md +0 -4
- package/{rules → rules-on-demand}/engineering/eng.plan-rules.md +0 -4
- package/{rules → rules-on-demand}/engineering/eng.pr-rules.md +0 -4
- package/{rules → rules-on-demand}/engineering/eng.pre-pr-rules.md +0 -4
- package/{rules → rules-on-demand}/engineering/eng.start-rules.md +0 -4
- package/{rules → rules-on-demand}/engineering/eng.tech-spec-rules.md +1 -2
- package/{rules → rules-on-demand}/engineering/eng.work-rules.md +0 -4
- package/skills/AGENTS.md +19 -21
- package/skills/SKILLS-ROADMAP.md +0 -4
- package/skills/eng-ai-engineer/SKILL.md +6 -0
- package/skills/eng-backend/SKILL.md +6 -0
- package/skills/eng-backend-arch-c4/SKILL.md +10 -4
- package/skills/eng-backend-microservices-trace/SKILL.md +6 -0
- package/skills/eng-backend-nestjs/SKILL.md +16 -461
- package/skills/eng-backend-nestjs/references/1-arquitetura-modulos.md +54 -0
- package/skills/eng-backend-nestjs/references/2-guards-autenticacao.md +118 -0
- package/skills/eng-backend-nestjs/references/3-interceptors-pipes-filters.md +113 -0
- package/skills/eng-backend-nestjs/references/4-config-logging.md +61 -0
- package/skills/eng-backend-nestjs/references/5-testes.md +83 -0
- package/skills/eng-backend-nestjs/references/6-problemas-comuns.md +53 -0
- package/skills/eng-backend-rabbitmq/SKILL.md +15 -298
- package/skills/eng-backend-rabbitmq/references/1-referencia-endpoints.md +28 -0
- package/skills/eng-backend-rabbitmq/references/2-codigo-consumer-producer.md +90 -0
- package/skills/eng-backend-rabbitmq/references/3-arquiteturas-comuns.md +101 -0
- package/skills/eng-backend-rabbitmq/references/4-troubleshooting.md +93 -0
- package/skills/eng-data-bi/SKILL.md +6 -0
- package/skills/eng-data-debug/SKILL.md +6 -0
- package/skills/eng-data-engineer/SKILL.md +16 -7
- package/skills/eng-data-onboard/SKILL.md +6 -0
- package/skills/eng-data-orchestrator/SKILL.md +6 -0
- package/skills/eng-devops-performance-engineer/SKILL.md +6 -0
- package/skills/eng-frontend/SKILL.md +6 -0
- package/skills/eng-frontend-design-system/SKILL.md +13 -479
- package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +57 -0
- package/skills/eng-frontend-design-system/references/2-tokens.md +116 -0
- package/skills/eng-frontend-design-system/references/3-componentes.md +165 -0
- package/skills/eng-frontend-design-system/references/4-storybook.md +85 -0
- package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +76 -0
- package/skills/eng-frontend-microfrontend/SKILL.md +17 -457
- package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +109 -0
- package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +70 -0
- package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +73 -0
- package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +48 -0
- package/skills/eng-frontend-microfrontend/references/5-event-bus.md +59 -0
- package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +77 -0
- package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +45 -0
- package/skills/eng-global-browser-extension-builder/SKILL.md +6 -0
- package/skills/eng-global-docs-write/SKILL.md +10 -5
- package/skills/eng-global-jira-comment/SKILL.md +6 -0
- package/skills/eng-global-pr/SKILL.md +7 -1
- package/skills/eng-global-task-comment/SKILL.md +6 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +10 -4
- package/skills/eng-qa-bug-report/SKILL.md +18 -230
- package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +148 -0
- package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +46 -0
- package/skills/eng-qa-bug-report/references/3-bug-to-test.md +45 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +6 -0
- package/skills/eng-qa-dev-guide/SKILL.md +9 -1
- package/skills/eng-qa-e2e/SKILL.md +9 -3
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +15 -9
- package/skills/eng-qa-exploratory/SKILL.md +16 -9
- package/skills/eng-qa-gate/SKILL.md +11 -5
- package/skills/eng-qa-gate/assets/checklist-validacao.md +1 -1
- package/skills/eng-qa-graphql-contract/SKILL.md +9 -3
- package/skills/eng-qa-quality-report/SKILL.md +9 -3
- package/skills/eng-qa-test-plan/SKILL.md +6 -0
- package/skills/eng-qa-testsprite/SKILL.md +10 -4
- package/skills/eng-qa-unit-test/SKILL.md +7 -1
- package/skills/eng-scraper/SKILL.md +12 -436
- package/skills/eng-scraper/references/1-puppeteer.md +140 -0
- package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +82 -0
- package/skills/eng-scraper/references/3-anti-bot.md +94 -0
- package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +137 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +6 -0
- package/skills/eng-security-cybersecurity/SKILL.md +13 -409
- package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +331 -0
- package/skills/eng-security-cybersecurity/references/2-secrets-management.md +31 -0
- package/skills/eng-security-cybersecurity/references/3-input-validation.md +43 -0
- package/skills/eng-security-cybersecurity/references/4-compliance.md +20 -0
- package/skills/eng-security-patch/SKILL.md +6 -0
- package/skills/eng-security-threat-model/SKILL.md +6 -0
- package/skills/eng-security-triage/SKILL.md +6 -0
- package/skills/jarvis-context-detect/SKILL.md +6 -0
- package/skills/jarvis-create-specialization/SKILL.md +6 -0
- package/skills/jarvis-docs-central/SKILL.md +6 -0
- package/skills/jarvis-docs-index/SKILL.md +10 -2
- package/skills/jarvis-evolution-architect/SKILL.md +6 -0
- package/skills/jarvis-init/SKILL.md +14 -7
- package/skills/jarvis-list-specializations/SKILL.md +6 -0
- package/skills/jarvis-report-issue/SKILL.md +6 -0
- package/skills/product-roadmap-report/SKILL.md +8 -0
- package/skills/product-specs/SKILL.md +9 -0
- package/skills/product-specs-update/SKILL.md +6 -0
- package/taxonomy.md +12 -12
- package/templates/AGENTS.md +2 -0
- package/templates/engineering/tech-spec-delivery-template.md +179 -0
- package/workflows/AGENTS.md +12 -2
- package/workflows/README.md +18 -16
- package/workflows/all-tools.md +7 -1
- package/workflows/engineering/data/data.contract.md +8 -0
- package/workflows/engineering/data/data.new-pipeline.md +10 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +9 -0
- package/workflows/engineering/eng.bug-audit.md +9 -2
- package/workflows/engineering/eng.build-tech-spec.md +17 -146
- package/workflows/engineering/eng.create-ard-from-code.md +8 -0
- package/workflows/engineering/eng.create-ard.md +8 -0
- package/workflows/engineering/eng.create-rfc.md +7 -0
- package/workflows/engineering/eng.debug.md +3 -3
- package/workflows/engineering/eng.docs.md +9 -0
- package/workflows/engineering/eng.light-arch.md +7 -0
- package/workflows/engineering/eng.plan.md +15 -2
- package/workflows/engineering/eng.pr.md +19 -7
- package/workflows/engineering/eng.pre-pr.md +27 -1
- package/workflows/engineering/eng.review.md +13 -0
- package/workflows/engineering/eng.rpa.robot.md +16 -0
- package/workflows/engineering/eng.security-audit.md +7 -0
- package/workflows/engineering/eng.security-incident.md +6 -0
- package/workflows/engineering/eng.security-pipeline.md +9 -0
- package/workflows/engineering/eng.security-review.md +6 -0
- package/workflows/engineering/eng.start.md +22 -6
- package/workflows/engineering/eng.work.md +18 -2
- package/workflows/engineering/frontend/eng.frontend-component.md +7 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +8 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +8 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +6 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +6 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +8 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +7 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +7 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +7 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +6 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +6 -0
- package/workflows/product/prod.roadmap.preview.md +9 -0
- package/workflows/product/prod.spec.ard.md +97 -0
- package/workflows/product/prod.spec.breakdown.md +10 -0
- package/workflows/product/prod.spec.clarify.md +8 -2
- package/workflows/product/prod.spec.discovery.md +10 -0
- package/workflows/product/prod.spec.epic.md +8 -0
- package/workflows/product/prod.spec.frd.md +7 -0
- package/workflows/product/prod.spec.issue.md +6 -0
- package/workflows/product/prod.spec.md +15 -1
- package/workflows/product/prod.spec.prd.md +7 -0
- package/workflows/taxonomy.md +58 -6
- package/workflows/warm-up.md +24 -9
- package/rules/engineering/eng.downstream-flow-rules.md +0 -297
package/AGENTS.md
CHANGED
|
@@ -46,10 +46,9 @@ prompts/
|
|
|
46
46
|
│ │ ├── engineering/ # 25 workflows de engenharia
|
|
47
47
|
│ │ │ ├── data/ # 2 workflows de dados (data.new-pipeline, data.contract)
|
|
48
48
|
│ │ │ └── frontend/ # 3 workflows de frontend (component, review, perf-audit)
|
|
49
|
-
│ │ └── product/ #
|
|
49
|
+
│ │ └── product/ # 10 workflows de produto
|
|
50
50
|
│ │
|
|
51
51
|
│ ├── skills/ # Skills (todos com metadata.area)
|
|
52
|
-
│ │ ├── claude-plugin-creator/
|
|
53
52
|
│ │ ├── jarvis-context-detect/
|
|
54
53
|
│ │ ├── jarvis-docs-index/
|
|
55
54
|
│ │ ├── eng-ai-engineer/
|
|
@@ -78,9 +77,6 @@ prompts/
|
|
|
78
77
|
│ │ ├── eng-qa-test-plan/
|
|
79
78
|
│ │ ├── eng-qa-testsprite/
|
|
80
79
|
│ │ ├── eng-qa-unit-test/
|
|
81
|
-
│ │ ├── skill-creator/
|
|
82
|
-
│ │ ├── taxonomy-manager/
|
|
83
|
-
│ │ ├── workflow-creator/
|
|
84
80
|
│ │ ├── jarvis-report-issue/ # Auto-report de bugs no repo do Jarvis (GitLab/GitHub/Bitbucket)
|
|
85
81
|
│ │ ├── eng-global-task-comment/ # Comentário no card (Jira/Linear/GitHub/Asana)
|
|
86
82
|
│ │ ├── jarvis-list-specializations/ # Lista especializações de stack instaladas e registradas
|
|
@@ -97,6 +93,8 @@ prompts/
|
|
|
97
93
|
│ │ │ └── frontend/ # eng.frontend-rules.md (HUB: FRONTEND)
|
|
98
94
|
│ │ └── product/ # prod-rules.md (AREA=PRODUCT)
|
|
99
95
|
│ │
|
|
96
|
+
│ ├── rules-on-demand/ # Rules de uma etapa so (start, plan, work, pre-pr, pr, tech-spec, breakdown): o workflow manda ler
|
|
97
|
+
│ │
|
|
100
98
|
│ ├── scripts/ # Scripts utilitarios
|
|
101
99
|
│ └── docs/ # Documentacao adicional
|
|
102
100
|
│
|
|
@@ -213,6 +211,8 @@ jarvis logout # Remover auth.json legado (
|
|
|
213
211
|
jarvis init # Bootstrap do framework no projeto
|
|
214
212
|
jarvis list # Listar agents, skills e workflows
|
|
215
213
|
jarvis install-rtk # Instalar RTK (token killer — economia 60-90% em tokens de shell)
|
|
214
|
+
jarvis tokens [--hub X --position Y --area Z --squad W] [--rtk] [--json] # Estimar o que carrega no início da sessão (perfil do ENV.md se sem flags)
|
|
215
|
+
jarvis map <nome> [--depth N] [--reverse] # Mapa de chamadas de um workflow, skill ou agente (lê só as tabelas padronizadas)
|
|
216
216
|
```
|
|
217
217
|
|
|
218
218
|
Quando atuar em um projeto alvo, detectar comandos em:
|
|
@@ -231,7 +231,8 @@ Quando atuar em um projeto alvo, detectar comandos em:
|
|
|
231
231
|
1. `.windsurfrules` / `.cursorrules` - Regras globais do framework
|
|
232
232
|
2. `$IDE/ENV.md` - Contexto do ambiente
|
|
233
233
|
3. `$IDE/JARVIS.md` - Guia principal de uso
|
|
234
|
-
4. `$IDE/rules/` - Regras especificas por dominio
|
|
234
|
+
4. `$IDE/rules/` - Regras especificas por dominio (carregadas no inicio)
|
|
235
|
+
`$IDE/rules-on-demand/` - Regras de uma etapa so, lidas pelo workflow
|
|
235
236
|
5. `$IDE/agents/` - Definicoes de agentes
|
|
236
237
|
6. `$IDE/skills/` - Playbooks operacionais
|
|
237
238
|
7. `$IDE/workflows/` - Templates de execucao
|
|
@@ -305,7 +306,6 @@ Quando um agente atua em tema com skill correspondente, o skill e a fonte de ver
|
|
|
305
306
|
| Inicializacao | `jarvis-init` |
|
|
306
307
|
| Testes unitarios | `eng-qa-unit-test` |
|
|
307
308
|
| Testes TestSprite | `eng-qa-testsprite` |
|
|
308
|
-
| Taxonomia | `taxonomy-manager` |
|
|
309
309
|
| Mensageria / RabbitMQ | `eng-backend-rabbitmq` (especialização de backend) |
|
|
310
310
|
| APIs, auth, workers, caching | `eng-backend` (base) + `BACKEND_SPECIALIZATIONS` |
|
|
311
311
|
| Componentes, UI, frontend | `eng-frontend` (base) + `FRONTEND_SPECIALIZATIONS` |
|
|
@@ -325,8 +325,8 @@ Quando um agente atua em tema com skill correspondente, o skill e a fonte de ver
|
|
|
325
325
|
| Testes de acessibilidade WCAG 2.1 AA: integra jest-axe em testes unitários existentes | `eng-qa-a11y-audit` |
|
|
326
326
|
| Testes de contrato GraphQL: valida queries frontend contra schema do BFF | `eng-qa-graphql-contract` |
|
|
327
327
|
| Spec E2E para handoff: cenários, Page Objects, fixtures, intercepts, setup de ambiente | `eng-qa-e2e-spec-writer` |
|
|
328
|
-
| Planejar capacidade QA da sprint: risco por task, alocação entre QAs e Quality Champions | `eng
|
|
329
|
-
| Sign-off QA pré-deploy: verifica cobertura, bugs abertos, produz GO/NO-GO + snippet CI para TL | `eng
|
|
328
|
+
| Planejar capacidade QA da sprint: risco por task, alocação entre QAs e Quality Champions | workflow `eng.qa-sprint-planning` |
|
|
329
|
+
| Sign-off QA pré-deploy: verifica cobertura, bugs abertos, produz GO/NO-GO + snippet CI para TL | workflow `eng.qa-release-signoff` |
|
|
330
330
|
| Pipelines ETL/ELT, Glue, Airflow, PySpark, Athena, Metabase, bronze/silver/gold, contratos de dados, Great Expectations | `eng-data-engineer` |
|
|
331
331
|
| Criar pipeline novo (docs, qualidade, idempotência, gold) | `data.new-pipeline` |
|
|
332
332
|
| Criar contrato de dados para squad requisitante | `data.contract` |
|
|
@@ -404,6 +404,7 @@ Uso especializado quando necessário.
|
|
|
404
404
|
- `$IDE/skills/AGENTS.md` - Skills disponiveis
|
|
405
405
|
- `$IDE/rules/engineering/` - Regras de engenharia
|
|
406
406
|
- `$IDE/rules/product/` - Regras de produto
|
|
407
|
+
- `$IDE/rules-on-demand/engineering/` - Regras de etapa (lidas pelo workflow)
|
|
407
408
|
|
|
408
409
|
---
|
|
409
410
|
|
package/agents/AGENTS.md
CHANGED
|
@@ -65,7 +65,9 @@ Todo arquivo de agente deve conter:
|
|
|
65
65
|
3. **Objetivo** - O que o agente faz
|
|
66
66
|
4. **Quando Usar** - Cenarios de ativacao
|
|
67
67
|
5. **Entrada/Saida** - O que recebe e produz
|
|
68
|
-
6. **
|
|
68
|
+
6. **Skills Disponiveis** - Cabecalho exato `## Skills Disponíveis`, com uma subsecao `### {skill}` por skill que o agente usa (linha de contexto e `- Arquivo: $IDE/skills/{skill}/SKILL.md`). So skills: workflows e agentes relacionados ficam em `## Workflows e Agentes Relacionados`. Sem skill, uma linha `Nenhuma — agente autocontido, não depende de skill`. Modelo: `engineering/eng.rpa.agent.md`
|
|
69
|
+
O `jarvis map` e o `npm run test:comandos` leem so essa tabela (e, nos agentes, `## Skills Disponíveis` e `## Workflows e Agentes Relacionados`): chamada que existir so no texto corrido nao aparece no mapa, e nome citado que nao existir faz o teste falhar.
|
|
70
|
+
7. **Restricoes** - O que NAO deve fazer
|
|
69
71
|
|
|
70
72
|
### Exemplo de Estrutura
|
|
71
73
|
|
|
@@ -89,6 +91,12 @@ Descricao curta do agente.
|
|
|
89
91
|
## Saida
|
|
90
92
|
...
|
|
91
93
|
|
|
94
|
+
## Skills Disponíveis
|
|
95
|
+
|
|
96
|
+
### nome-da-skill
|
|
97
|
+
Para que serve e quando usar:
|
|
98
|
+
- Arquivo: `$IDE/skills/nome-da-skill/SKILL.md`
|
|
99
|
+
|
|
92
100
|
## Restricoes
|
|
93
101
|
...
|
|
94
102
|
```
|
package/agents/README.md
CHANGED
|
@@ -194,8 +194,8 @@ para revisar a arquitetura de microservices"
|
|
|
194
194
|
# Opção 2: Ativar permanentemente
|
|
195
195
|
mv agents/archive/architecture-design/backend-architect.md agents/engineering/
|
|
196
196
|
|
|
197
|
-
# Opção 3: Criar skill customizado
|
|
198
|
-
|
|
197
|
+
# Opção 3: Criar skill customizado que usa o agent arquivado
|
|
198
|
+
# (passos em "Criando um Novo Skill", no skills/AGENTS.md)
|
|
199
199
|
```
|
|
200
200
|
|
|
201
201
|
### Invocação Manual
|
|
@@ -190,7 +190,7 @@ CONTEXT_PROFILE:
|
|
|
190
190
|
|
|
191
191
|
---
|
|
192
192
|
|
|
193
|
-
## Skills
|
|
193
|
+
## Skills Disponíveis
|
|
194
194
|
|
|
195
195
|
### eng-data-engineer
|
|
196
196
|
Skill principal para construção de pipelines, modelagem e contratos de dados:
|
|
@@ -271,7 +271,7 @@ Para detecção automática de contexto de tarefas:
|
|
|
271
271
|
| `$IDE/workflows/engineering/eng.pr.md` | PR de scripts de pipeline (colaborar com ATHENA) |
|
|
272
272
|
|
|
273
273
|
> Se os workflows `data.new-pipeline.md` e `data.contract.md` ainda não existirem,
|
|
274
|
-
> orientar o usuário a criá-los via `/work
|
|
274
|
+
> orientar o usuário a criá-los via `/eng.work` ou seguir o fluxo do skill `eng-data-engineer`.
|
|
275
275
|
|
|
276
276
|
---
|
|
277
277
|
|
|
@@ -167,7 +167,7 @@ Identifique palavras-chave na mensagem do usuário para ajuste imediato:
|
|
|
167
167
|
- testes a serem rodados
|
|
168
168
|
- pontos que precisam de validação do usuário
|
|
169
169
|
|
|
170
|
-
## Skills
|
|
170
|
+
## Skills Disponíveis
|
|
171
171
|
|
|
172
172
|
### jarvis-context-detect (CDD)
|
|
173
173
|
Para detecção automática de contexto de tarefas:
|
|
@@ -246,14 +246,12 @@ Quando a tarefa envolver segurança de aplicação, auditoria OWASP, secrets man
|
|
|
246
246
|
|
|
247
247
|
## Fluxo de Cards no Board
|
|
248
248
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
Ao orientar o usuário sobre movimentação de cards, seguir estritamente o fluxo downstream definido em taxonomy:
|
|
249
|
+
Ao orientar o usuário sobre movimentação de cards, siga o princípio de autonomia no card do `eng-rules.md`:
|
|
252
250
|
|
|
253
251
|
| Momento | Ação esperada do agente |
|
|
254
252
|
|---|---|
|
|
255
|
-
| Profissional assume o card (`eng.start`) | Orientar mover para
|
|
256
|
-
| Profissional abre MR (`eng.pr`) | Orientar mover para
|
|
253
|
+
| Profissional assume o card (`eng.start`) | Orientar mover para a etapa equivalente a "em andamento" |
|
|
254
|
+
| Profissional abre MR (`eng.pr`) | Orientar mover para a etapa equivalente a "em revisão" |
|
|
257
255
|
| Qualquer outra transição | Orientar o **owner do card** a avançar. TL/PM revisam e apoiam — não são gate. |
|
|
258
256
|
|
|
259
257
|
**Regra crítica:** o agente não move cards automaticamente. Ele **orienta** o profissional que está com o card. Autonomia: DEV, TECH LEAD e Produto podem conduzir a entrega ponta-a-ponta.
|
|
@@ -191,17 +191,17 @@ CONTEXT_PROFILE:
|
|
|
191
191
|
- Priorize:
|
|
192
192
|
- `$IDE/workflows/engineering/eng.debug.md` (Resolution Mode)
|
|
193
193
|
- `$IDE/workflows/engineering/eng.bug-audit.md` (Audit Mode)
|
|
194
|
-
- `$IDE/skills/bug-report/SKILL.md` (geração de relatórios)
|
|
194
|
+
- `$IDE/skills/eng-qa-bug-report/SKILL.md` (geração de relatórios)
|
|
195
195
|
- Não acione workflows de outros domínios sem autorização explícita do usuário
|
|
196
196
|
|
|
197
197
|
---
|
|
198
198
|
|
|
199
|
-
## Skills
|
|
199
|
+
## Skills Disponíveis
|
|
200
200
|
|
|
201
|
-
### bug-report
|
|
201
|
+
### eng-qa-bug-report
|
|
202
202
|
Para geração de relatórios estruturados de bugs encontrados:
|
|
203
|
-
- Arquivo: `$IDE/skills/bug-report/SKILL.md`
|
|
204
|
-
- Uso: `/bug-report [modo] [argumentos]`
|
|
203
|
+
- Arquivo: `$IDE/skills/eng-qa-bug-report/SKILL.md`
|
|
204
|
+
- Uso: `/eng-qa-bug-report [modo] [argumentos]`
|
|
205
205
|
- Integração com Jira para criação automática de cards
|
|
206
206
|
|
|
207
207
|
### jarvis-context-detect (CDD)
|
|
@@ -218,6 +218,11 @@ Para rastreamento automático de bugs em arquitetura de microsserviços, use a e
|
|
|
218
218
|
- Mapeia cadeia de chamadas HTTP + AMQP, analisa contratos em cada boundary e rankeia hipóteses por risco
|
|
219
219
|
- Sem a especialização registrada, siga a investigação cross-service manualmente
|
|
220
220
|
|
|
221
|
+
### eng-security-cybersecurity
|
|
222
|
+
Quando o bug tiver impacto de segurança (injection, auth bypass, data exposure), como referência na escalação ao SENTINEL:
|
|
223
|
+
- Arquivo: `$IDE/skills/eng-security-cybersecurity/SKILL.md`
|
|
224
|
+
- Agente dedicado: `$IDE/agents/engineering/eng.cybersecurity.agent.md` (SENTINEL)
|
|
225
|
+
|
|
221
226
|
---
|
|
222
227
|
|
|
223
228
|
## Responsabilidades Principais
|
|
@@ -227,7 +227,7 @@ CONTEXT_PROFILE:
|
|
|
227
227
|
|
|
228
228
|
---
|
|
229
229
|
|
|
230
|
-
## Skills
|
|
230
|
+
## Skills Disponíveis
|
|
231
231
|
|
|
232
232
|
### eng-security-cybersecurity
|
|
233
233
|
Playbook operacional de seguranca — fonte de verdade para padroes, checklists e exemplos:
|
|
@@ -362,14 +362,12 @@ Para gerar diffs candidatos por achado confirmado — fechar o loop técnico do
|
|
|
362
362
|
|
|
363
363
|
## Fluxo de Cards no Board
|
|
364
364
|
|
|
365
|
-
> Referencia completa: `$IDE/rules/engineering/eng.downstream-flow-rules.md`
|
|
366
|
-
|
|
367
365
|
| Momento | Acao |
|
|
368
366
|
|---------|------|
|
|
369
367
|
| Vulnerabilidade critica encontrada | Criar card com label `security` e prioridade maxima |
|
|
370
368
|
| CVE afeta o projeto | Criar card de incidente, orientar TL sobre urgencia |
|
|
371
369
|
| Security review reprova PR | Solicitar correcoes com evidencia, nao bloquear sem justificativa |
|
|
372
|
-
| Qualquer outra transicao |
|
|
370
|
+
| Qualquer outra transicao | Orientar o owner do card a avancar; nunca mover card de outra pessoa |
|
|
373
371
|
|
|
374
372
|
---
|
|
375
373
|
|
|
@@ -67,6 +67,10 @@ Avalie os testes:
|
|
|
67
67
|
- A cobertura de testes foi mantida ou melhorada?
|
|
68
68
|
- Os testes são significativos ou apenas “para cobertura”?
|
|
69
69
|
|
|
70
|
+
## Skills Disponíveis
|
|
71
|
+
|
|
72
|
+
Nenhuma — agente autocontido, não depende de skill
|
|
73
|
+
|
|
70
74
|
## Formato da Resposta
|
|
71
75
|
Forneça uma revisão estruturada no seguinte formato:
|
|
72
76
|
|
|
@@ -9,10 +9,10 @@ model: sonnet
|
|
|
9
9
|
Você é um **especialista em documentação** focado em manter a documentação do projeto **sincronizada com as mudanças de código**.
|
|
10
10
|
Sua missão é garantir que a documentação reflita com precisão o **estado atual do codebase**.
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
Use o skill `eng-global-docs-write` como fonte de verdade do processo e formato de entrega:
|
|
12
|
+
## Skills Disponíveis
|
|
15
13
|
|
|
14
|
+
### eng-global-docs-write
|
|
15
|
+
Fonte de verdade do processo e do formato de entrega da documentação:
|
|
16
16
|
- Arquivo: `$IDE/skills/eng-global-docs-write/SKILL.md`
|
|
17
17
|
|
|
18
18
|
---
|
|
@@ -49,16 +49,25 @@ Não criar abstração para reutilização hipotética.
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
-
##
|
|
52
|
+
## Skills Disponíveis
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
| Testes Cypress (Page Objects, intercept) | `eng-qa-cypress-e2e` |
|
|
54
|
+
### Frontend (skill base + especializações)
|
|
55
|
+
Para criar ou refatorar componente, estado ou estilos, aplique a regra `eng.specializations-rules.md` para a área frontend (skill base `eng-frontend` + itens de `FRONTEND_SPECIALIZATIONS`):
|
|
56
|
+
- Arquivo da regra: `$IDE/rules/engineering/eng.specializations-rules.md`
|
|
57
|
+
- Skill base: `$IDE/skills/eng-frontend/SKILL.md` + itens de `FRONTEND_SPECIALIZATIONS`
|
|
58
|
+
- Auditoria de performance: seção Performance do `eng-frontend`
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
### eng-qa-e2e
|
|
61
|
+
Para testes E2E de fluxo de usuário:
|
|
62
|
+
- Arquivo: `$IDE/skills/eng-qa-e2e/SKILL.md`
|
|
63
|
+
|
|
64
|
+
### eng-qa-cypress-e2e
|
|
65
|
+
Para testes Cypress (Page Objects, intercept):
|
|
66
|
+
- Arquivo: `$IDE/skills/eng-qa-cypress-e2e/SKILL.md`
|
|
67
|
+
|
|
68
|
+
## Workflows e Agentes Relacionados
|
|
69
|
+
|
|
70
|
+
- Workflow de referência: ver `workflows/engineering/frontend/`
|
|
62
71
|
|
|
63
72
|
---
|
|
64
73
|
|
|
@@ -175,13 +175,11 @@ Para criar um robô novo ou manter um existente:
|
|
|
175
175
|
|
|
176
176
|
## Fluxo de Cards no Board
|
|
177
177
|
|
|
178
|
-
> Referência completa: `$IDE/rules/engineering/eng.downstream-flow-rules.md`
|
|
179
|
-
|
|
180
178
|
| Momento | Ação |
|
|
181
179
|
|---------|------|
|
|
182
|
-
| DEV assume o card (`eng.rpa.robot`) | Orientar mover para
|
|
183
|
-
| DEV abre MR (`eng.pr`) | Orientar mover para
|
|
184
|
-
| Qualquer outra transição |
|
|
180
|
+
| DEV assume o card (`eng.rpa.robot`) | Orientar mover para a etapa equivalente a "em andamento" |
|
|
181
|
+
| DEV abre MR (`eng.pr`) | Orientar mover para a etapa equivalente a "em revisão" |
|
|
182
|
+
| Qualquer outra transição | Orientar o owner do card a avançar; nunca orientar a mover card de outra pessoa |
|
|
185
183
|
|
|
186
184
|
---
|
|
187
185
|
|
|
@@ -15,12 +15,15 @@ de testes E2E: desde escrita de specs até configuração de CI e debugging de t
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
## Skills
|
|
18
|
+
## Skills Disponíveis
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
### eng-qa-cypress-e2e
|
|
21
|
+
Para gerar uma nova spec Cypress:
|
|
22
|
+
- Arquivo: `$IDE/skills/eng-qa-cypress-e2e/SKILL.md`
|
|
23
|
+
|
|
24
|
+
### eng-qa-dev-guide
|
|
25
|
+
Para orientar o dev sobre cobertura:
|
|
26
|
+
- Arquivo: `$IDE/skills/eng-qa-dev-guide/SKILL.md`
|
|
24
27
|
|
|
25
28
|
---
|
|
26
29
|
|
|
@@ -83,3 +83,7 @@ Use o seguinte formato em comentários Jira:
|
|
|
83
83
|
- Mentalidade de coaching, não punitiva
|
|
84
84
|
|
|
85
85
|
Seu sucesso é medido pela **prevenção de trabalho mal definido de entrar em desenvolvimento** e pela **elevação da qualidade geral dos tickets Jira** em todo o time.
|
|
86
|
+
|
|
87
|
+
## Skills Disponíveis
|
|
88
|
+
|
|
89
|
+
Nenhuma — agente autocontido, não depende de skill
|
|
@@ -19,14 +19,24 @@ Você responde perguntas como:
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
## Skills
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
## Skills Disponíveis
|
|
23
|
+
|
|
24
|
+
### eng-qa-test-plan
|
|
25
|
+
Para planejar os testes de uma feature específica:
|
|
26
|
+
- Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
|
|
27
|
+
|
|
28
|
+
### eng-qa-gate
|
|
29
|
+
Para a análise de risco pré-release:
|
|
30
|
+
- Arquivo: `$IDE/skills/eng-qa-gate/SKILL.md`
|
|
31
|
+
|
|
32
|
+
### eng-qa-dev-guide
|
|
33
|
+
Para features de médio risco: o QA orienta e o dev implementa os testes:
|
|
34
|
+
- Arquivo: `$IDE/skills/eng-qa-dev-guide/SKILL.md`
|
|
35
|
+
|
|
36
|
+
## Workflows e Agentes Relacionados
|
|
37
|
+
|
|
38
|
+
- `eng.qa-refinement-entry` (workflow): entrada no refinamento de uma feature
|
|
39
|
+
- `eng.qa-quality-report` (workflow): gerar o relatório de qualidade do período
|
|
30
40
|
|
|
31
41
|
---
|
|
32
42
|
|
|
@@ -85,13 +85,24 @@ Este agente foca em:
|
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
88
|
-
## Skills
|
|
88
|
+
## Skills Disponíveis
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
### eng-qa-testsprite
|
|
91
|
+
Para execução automatizada E2E/API:
|
|
92
|
+
- Arquivo: `$IDE/skills/eng-qa-testsprite/SKILL.md`
|
|
93
|
+
|
|
94
|
+
### eng-qa-test-plan
|
|
95
|
+
Para análise de cobertura:
|
|
96
|
+
- Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
|
|
97
|
+
|
|
98
|
+
### eng-qa-unit-test
|
|
99
|
+
Para padrões de testes unitários:
|
|
100
|
+
- Arquivo: `$IDE/skills/eng-qa-unit-test/SKILL.md`
|
|
101
|
+
|
|
102
|
+
### jarvis-context-detect (CDD)
|
|
103
|
+
Para detecção automatizada do contexto (calibração contextual do agente):
|
|
104
|
+
- Arquivo: `$IDE/skills/jarvis-context-detect/SKILL.md`
|
|
105
|
+
- Uso: `/jarvis-context-detect {TASK_MANAGER_KEY}`
|
|
95
106
|
|
|
96
107
|
---
|
|
97
108
|
|
|
@@ -14,7 +14,7 @@ Você é um **especialista em planejamento e cobertura de testes** com dois modo
|
|
|
14
14
|
Antes de qualquer ação, determine qual modo aplicar:
|
|
15
15
|
|
|
16
16
|
**Modo A — Estratégia a partir da Tech Spec (pré-código)**
|
|
17
|
-
Aplicar quando invocado via `eng
|
|
17
|
+
Aplicar quando invocado via `eng.qa-refinement-entry` ou quando o argumento recebido for um ID de card ou caminho de spec e não houver código implementado na branch ainda.
|
|
18
18
|
- Fonte de dados: card no $TASK_MANAGER via integração disponível (Jira MCP)
|
|
19
19
|
- Não executar `git diff`, `git log` ou qualquer comando que dependa de código
|
|
20
20
|
- Saída: `$DOCS_FOLDER/engineering/qa/strategies/{task-id}-test-strategy.md`
|
|
@@ -26,15 +26,24 @@ Aplicar quando invocado via `eng-qa-unit-test`, `eng-qa-test-plan` ou quando hou
|
|
|
26
26
|
|
|
27
27
|
Regra de decisão: se `git diff origin/main...HEAD` retornar vazio, operar em Modo A. Se retornar código, operar em Modo B.
|
|
28
28
|
|
|
29
|
-
## Skills
|
|
29
|
+
## Skills Disponíveis
|
|
30
30
|
|
|
31
31
|
Use os recursos abaixo como fonte de verdade do processo:
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
### eng-qa-test-plan
|
|
34
|
+
Para análise de cobertura e planejamento de testes:
|
|
35
|
+
- Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
|
|
36
|
+
|
|
37
|
+
### eng-qa-testsprite
|
|
38
|
+
Para execução automatizada de testes com TestSprite MCP:
|
|
39
|
+
- Arquivo: `$IDE/skills/eng-qa-testsprite/SKILL.md`
|
|
40
|
+
|
|
41
|
+
### jarvis-context-detect (CDD)
|
|
42
|
+
Para detecção automatizada do contexto (calibração contextual do agente):
|
|
43
|
+
- Arquivo: `$IDE/skills/jarvis-context-detect/SKILL.md`
|
|
44
|
+
- Uso: `/jarvis-context-detect {TASK_MANAGER_KEY}`
|
|
45
|
+
|
|
46
|
+
## Workflows e Agentes Relacionados
|
|
38
47
|
|
|
39
48
|
**Agentes complementares:**
|
|
40
49
|
- **eng.qa.testing-engineer**: para escrever os testes identificados como ausentes
|
|
@@ -112,7 +121,7 @@ CONTEXT_PROFILE:
|
|
|
112
121
|
|
|
113
122
|
## Fluxo de Trabalho — Modo A (Estratégia a partir da Spec)
|
|
114
123
|
|
|
115
|
-
Usar quando: invocado via `eng
|
|
124
|
+
Usar quando: invocado via `eng.qa-refinement-entry`, ou quando git diff retornar vazio.
|
|
116
125
|
|
|
117
126
|
### A.1. Buscar o Card
|
|
118
127
|
|
|
@@ -10,15 +10,32 @@ model: sonnet
|
|
|
10
10
|
Você é um **engenheiro de testes** focado em escrever testes práticos que verificam se o código
|
|
11
11
|
realmente funciona como pretendido — tanto testes unitários quanto E2E Cypress.
|
|
12
12
|
|
|
13
|
-
## Skills
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
## Skills Disponíveis
|
|
14
|
+
|
|
15
|
+
### eng-qa-cypress-e2e
|
|
16
|
+
Para gerar specs Cypress + TypeScript para fluxos de usuário:
|
|
17
|
+
- Arquivo: `$IDE/skills/eng-qa-cypress-e2e/SKILL.md`
|
|
18
|
+
|
|
19
|
+
### eng-qa-unit-test
|
|
20
|
+
Para templates e padrões ao **escrever** testes unitários:
|
|
21
|
+
- Arquivo: `$IDE/skills/eng-qa-unit-test/SKILL.md`
|
|
22
|
+
|
|
23
|
+
### eng-qa-test-plan
|
|
24
|
+
Para **analisar** cobertura antes de escrever:
|
|
25
|
+
- Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
|
|
26
|
+
|
|
27
|
+
### eng-qa-testsprite
|
|
28
|
+
Para testes E2E/API em linguagem natural via Stagehand:
|
|
29
|
+
- Arquivo: `$IDE/skills/eng-qa-testsprite/SKILL.md`
|
|
30
|
+
|
|
31
|
+
### eng-qa-dev-guide
|
|
32
|
+
Para orientar devs sobre cobertura sem escrever o teste:
|
|
33
|
+
- Arquivo: `$IDE/skills/eng-qa-dev-guide/SKILL.md`
|
|
34
|
+
|
|
35
|
+
### jarvis-context-detect (CDD)
|
|
36
|
+
Para detecção automatizada do contexto (calibração contextual do agente):
|
|
37
|
+
- Arquivo: `$IDE/skills/jarvis-context-detect/SKILL.md`
|
|
38
|
+
- Uso: `/jarvis-context-detect {TASK_MANAGER_KEY}`
|
|
22
39
|
|
|
23
40
|
> **Stack E2E primária**: Cypress + TypeScript com Page Objects, `data-testid` e `cy.intercept`.
|
|
24
41
|
> Consultar `$RULES_FOLDER/engineering/qa/eng.qa.cypress-standards-rules.md` para convenções do projeto.
|
|
@@ -70,10 +70,29 @@ Não use quando já existe uma spec (use `/prod.spec.clarify`) ou quando o escop
|
|
|
70
70
|
- Uma **lacuna crítica nunca** resulta em `proceed`: o veredito é `investigate_more`
|
|
71
71
|
- Quando a viabilidade técnica depende de bibliotecas, APIs ou serviços, consulte a documentação atual (por exemplo via Context7) em vez de responder de memória
|
|
72
72
|
|
|
73
|
-
##
|
|
73
|
+
## Skills Disponíveis
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
As skills são apoio, nunca a fonte da decisão. A busca em `$PROD_DOCS` não é uma skill: é feita sempre, antes de perguntar.
|
|
76
|
+
|
|
77
|
+
### jarvis-docs-central
|
|
78
|
+
Para buscar documentação do produto no repositório central, quando `CENTRAL_DOCS_REPO` estiver configurado:
|
|
79
|
+
- Arquivo: `$IDE/skills/jarvis-docs-central/SKILL.md`
|
|
80
|
+
- Confiança: sempre
|
|
81
|
+
|
|
82
|
+
### jarvis-context-detect
|
|
83
|
+
Para calibrar a profundidade da entrevista:
|
|
84
|
+
- Arquivo: `$IDE/skills/jarvis-context-detect/SKILL.md`
|
|
85
|
+
- Confiança: sempre
|
|
86
|
+
|
|
87
|
+
### eng-backend-arch-c4
|
|
88
|
+
Para consultar a arquitetura atual:
|
|
89
|
+
- Arquivo: `$IDE/skills/eng-backend-arch-c4/SKILL.md`
|
|
90
|
+
- Confiança: só com a confirmação do usuário (skill de engenharia: pergunte antes de consultá-la; o que ela retornar entra no discovery como **suposição a validar**, não como fato)
|
|
91
|
+
|
|
92
|
+
### eng-security-cybersecurity
|
|
93
|
+
Para quando a ideia envolve autenticação, dados pessoais ou fluxo financeiro:
|
|
94
|
+
- Arquivo: `$IDE/skills/eng-security-cybersecurity/SKILL.md`
|
|
95
|
+
- Confiança: só com a confirmação do usuário (skill de engenharia: pergunte antes de consultá-la; o que ela retornar entra no discovery como **suposição a validar**, não como fato)
|
|
77
96
|
|
|
78
97
|
## Restrições
|
|
79
98
|
|
|
@@ -50,3 +50,7 @@ Você deve fornecer sua resposta exatamente no seguinte formato:
|
|
|
50
50
|
|
|
51
51
|
Regras Importantes
|
|
52
52
|
Não faça nenhuma alteração no código ou nos requisitos, a menos que o usuário solicite explicitamente. Seu papel é avaliar e reportar, não corrigir.
|
|
53
|
+
|
|
54
|
+
## Skills Disponíveis
|
|
55
|
+
|
|
56
|
+
Nenhuma — agente autocontido, não depende de skill
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { buildGraph, forwardTree, reverseEdges, suggest, DEFAULT_DEPTH } from "../lib/flow-map/tree.js";
|
|
2
|
+
import { renderTree, renderReverse } from "../lib/flow-map/render.js";
|
|
3
|
+
import { getFrameworkRoot } from "../lib/utils/paths.js";
|
|
4
|
+
import { logger } from "../lib/utils/logger.js";
|
|
5
|
+
|
|
6
|
+
const USAGE = "Uso: jarvis map <nome> [--depth N] [--reverse] (nome de um workflow, skill ou agente)";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Monta a saída do mapa. Separado de `map` para ser testável.
|
|
10
|
+
* @param {string | undefined} name
|
|
11
|
+
* @param {Record<string, unknown>} flags
|
|
12
|
+
* @param {string} [root]
|
|
13
|
+
* @returns {{ code: number, lines: string[] }}
|
|
14
|
+
*/
|
|
15
|
+
export function runMap(name, flags = {}, root = getFrameworkRoot()) {
|
|
16
|
+
if (!name) return { code: 1, lines: ["❌ Informe o nome de um workflow, skill ou agente.", USAGE] };
|
|
17
|
+
|
|
18
|
+
let depth = DEFAULT_DEPTH;
|
|
19
|
+
if (flags.depth !== undefined) {
|
|
20
|
+
depth = Number.parseInt(String(flags.depth), 10);
|
|
21
|
+
if (!Number.isInteger(depth) || depth < 1) return { code: 1, lines: ["❌ --depth precisa ser um número inteiro maior que zero.", USAGE] };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const graph = buildGraph(root);
|
|
25
|
+
if (!graph.items.has(name)) {
|
|
26
|
+
const similar = suggest(graph.items, name);
|
|
27
|
+
const lines = [`❌ Não encontrado: ${name}`];
|
|
28
|
+
if (similar.length) lines.push("Você quis dizer:", ...similar.map((s) => ` - ${s}`));
|
|
29
|
+
lines.push("Use `jarvis list` para ver o que existe.");
|
|
30
|
+
return { code: 1, lines };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (flags.reverse) {
|
|
34
|
+
return { code: 0, lines: renderReverse(name, graph.items.get(name).type, reverseEdges(graph, name)) };
|
|
35
|
+
}
|
|
36
|
+
return { code: 0, lines: renderTree(forwardTree(graph, name, { depth })) };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export async function map(flags) {
|
|
40
|
+
const { code, lines } = runMap(flags._?.[0], flags);
|
|
41
|
+
for (const line of lines) (code === 0 ? logger.info : logger.error)(line);
|
|
42
|
+
if (code !== 0) process.exit(code);
|
|
43
|
+
}
|