jarvis-ai-framework 2.0.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.
Files changed (192) hide show
  1. package/AGENTS.md +12 -9
  2. package/agents/AGENTS.md +9 -1
  3. package/agents/README.md +2 -2
  4. package/agents/engineering/data/eng.data-engineer.agent.md +2 -2
  5. package/agents/engineering/eng.agent.md +4 -6
  6. package/agents/engineering/eng.bug-hunter.md +10 -5
  7. package/agents/engineering/eng.cybersecurity.agent.md +2 -4
  8. package/agents/engineering/eng.dev-code-reviewer.md +4 -0
  9. package/agents/engineering/eng.docs-writer.md +3 -3
  10. package/agents/engineering/eng.frontend.agent.md +17 -8
  11. package/agents/engineering/eng.rpa.agent.md +3 -5
  12. package/agents/engineering/eng.ux-designer.agent.md +4 -0
  13. package/agents/engineering/qa/eng.qa.cypress-specialist.md +8 -5
  14. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +4 -0
  15. package/agents/engineering/qa/eng.qa.quality-strategist.md +18 -8
  16. package/agents/engineering/qa/eng.qa.test-architect.md +17 -6
  17. package/agents/engineering/qa/eng.qa.test-planner.md +17 -8
  18. package/agents/engineering/qa/eng.qa.testing-engineer.md +26 -9
  19. package/agents/product/prod.discovery-interviewer.md +22 -3
  20. package/agents/product/prod.pm-checker.md +4 -0
  21. package/bin/commands/map.js +43 -0
  22. package/bin/commands/tokens.js +93 -0
  23. package/bin/jarvis.js +10 -0
  24. package/bin/lib/config/constants.js +11 -0
  25. package/bin/lib/core/profile-filter.js +113 -0
  26. package/bin/lib/core/scanner.js +2 -2
  27. package/bin/lib/core/token-report.js +90 -0
  28. package/bin/lib/flow-map/index.js +65 -0
  29. package/bin/lib/flow-map/parse.js +217 -0
  30. package/bin/lib/flow-map/render.js +86 -0
  31. package/bin/lib/flow-map/tree.js +199 -0
  32. package/members.md +1 -1
  33. package/package.json +4 -2
  34. package/rules/AGENTS.md +18 -7
  35. package/rules/engineering/eng-rules.md +2 -12
  36. package/rules/engineering/eng-security-rules.md +1 -2
  37. package/rules/engineering/eng.integrations-rules.md +0 -4
  38. package/rules/engineering/eng.skills-rules.md +0 -4
  39. package/rules/engineering/eng.specializations-rules.md +0 -4
  40. package/rules/product/README.md +1 -0
  41. package/rules/product/prod-rules.md +1 -4
  42. package/rules/product/prod.spec-rules.md +0 -4
  43. package/rules/rtk-rules.md +0 -1
  44. package/{rules → rules-on-demand}/engineering/eng.breakdown-subtasks-rules.md +0 -4
  45. package/{rules → rules-on-demand}/engineering/eng.plan-rules.md +0 -4
  46. package/{rules → rules-on-demand}/engineering/eng.pr-rules.md +0 -4
  47. package/{rules → rules-on-demand}/engineering/eng.pre-pr-rules.md +0 -4
  48. package/{rules → rules-on-demand}/engineering/eng.start-rules.md +0 -4
  49. package/{rules → rules-on-demand}/engineering/eng.tech-spec-rules.md +1 -2
  50. package/{rules → rules-on-demand}/engineering/eng.work-rules.md +0 -4
  51. package/skills/AGENTS.md +22 -21
  52. package/skills/SKILLS-ROADMAP.md +0 -4
  53. package/skills/eng-ai-engineer/SKILL.md +6 -0
  54. package/skills/eng-backend/SKILL.md +6 -0
  55. package/skills/eng-backend-arch-c4/SKILL.md +10 -4
  56. package/skills/eng-backend-microservices-trace/SKILL.md +6 -0
  57. package/skills/eng-backend-nestjs/SKILL.md +16 -461
  58. package/skills/eng-backend-nestjs/references/1-arquitetura-modulos.md +54 -0
  59. package/skills/eng-backend-nestjs/references/2-guards-autenticacao.md +118 -0
  60. package/skills/eng-backend-nestjs/references/3-interceptors-pipes-filters.md +113 -0
  61. package/skills/eng-backend-nestjs/references/4-config-logging.md +61 -0
  62. package/skills/eng-backend-nestjs/references/5-testes.md +83 -0
  63. package/skills/eng-backend-nestjs/references/6-problemas-comuns.md +53 -0
  64. package/skills/eng-backend-rabbitmq/SKILL.md +15 -298
  65. package/skills/eng-backend-rabbitmq/references/1-referencia-endpoints.md +28 -0
  66. package/skills/eng-backend-rabbitmq/references/2-codigo-consumer-producer.md +90 -0
  67. package/skills/eng-backend-rabbitmq/references/3-arquiteturas-comuns.md +101 -0
  68. package/skills/eng-backend-rabbitmq/references/4-troubleshooting.md +93 -0
  69. package/skills/eng-data-bi/SKILL.md +6 -0
  70. package/skills/eng-data-debug/SKILL.md +6 -0
  71. package/skills/eng-data-engineer/SKILL.md +16 -7
  72. package/skills/eng-data-onboard/SKILL.md +6 -0
  73. package/skills/eng-data-orchestrator/SKILL.md +6 -0
  74. package/skills/eng-devops-performance-engineer/SKILL.md +6 -0
  75. package/skills/eng-frontend/SKILL.md +6 -0
  76. package/skills/eng-frontend-design-system/SKILL.md +13 -479
  77. package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +57 -0
  78. package/skills/eng-frontend-design-system/references/2-tokens.md +116 -0
  79. package/skills/eng-frontend-design-system/references/3-componentes.md +165 -0
  80. package/skills/eng-frontend-design-system/references/4-storybook.md +85 -0
  81. package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +76 -0
  82. package/skills/eng-frontend-microfrontend/SKILL.md +17 -457
  83. package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +109 -0
  84. package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +70 -0
  85. package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +73 -0
  86. package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +48 -0
  87. package/skills/eng-frontend-microfrontend/references/5-event-bus.md +59 -0
  88. package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +77 -0
  89. package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +45 -0
  90. package/skills/eng-global-browser-extension-builder/SKILL.md +6 -0
  91. package/skills/eng-global-docs-write/SKILL.md +10 -5
  92. package/skills/eng-global-jira-comment/SKILL.md +6 -0
  93. package/skills/eng-global-pr/SKILL.md +7 -1
  94. package/skills/eng-global-task-comment/SKILL.md +6 -0
  95. package/skills/eng-qa-a11y-audit/SKILL.md +10 -4
  96. package/skills/eng-qa-bug-report/SKILL.md +18 -230
  97. package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +148 -0
  98. package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +46 -0
  99. package/skills/eng-qa-bug-report/references/3-bug-to-test.md +45 -0
  100. package/skills/eng-qa-cypress-e2e/SKILL.md +6 -0
  101. package/skills/eng-qa-dev-guide/SKILL.md +9 -1
  102. package/skills/eng-qa-e2e/SKILL.md +9 -3
  103. package/skills/eng-qa-e2e-spec-writer/SKILL.md +15 -9
  104. package/skills/eng-qa-exploratory/SKILL.md +16 -9
  105. package/skills/eng-qa-gate/SKILL.md +11 -5
  106. package/skills/eng-qa-gate/assets/checklist-validacao.md +1 -1
  107. package/skills/eng-qa-graphql-contract/SKILL.md +9 -3
  108. package/skills/eng-qa-quality-report/SKILL.md +9 -3
  109. package/skills/eng-qa-test-plan/SKILL.md +6 -0
  110. package/skills/eng-qa-testsprite/SKILL.md +10 -4
  111. package/skills/eng-qa-unit-test/SKILL.md +7 -1
  112. package/skills/eng-scraper/SKILL.md +12 -436
  113. package/skills/eng-scraper/references/1-puppeteer.md +140 -0
  114. package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +82 -0
  115. package/skills/eng-scraper/references/3-anti-bot.md +94 -0
  116. package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +137 -0
  117. package/skills/eng-scraper-robot-builder/SKILL.md +6 -0
  118. package/skills/eng-security-cybersecurity/SKILL.md +13 -409
  119. package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +331 -0
  120. package/skills/eng-security-cybersecurity/references/2-secrets-management.md +31 -0
  121. package/skills/eng-security-cybersecurity/references/3-input-validation.md +43 -0
  122. package/skills/eng-security-cybersecurity/references/4-compliance.md +20 -0
  123. package/skills/eng-security-patch/SKILL.md +6 -0
  124. package/skills/eng-security-threat-model/SKILL.md +6 -0
  125. package/skills/eng-security-triage/SKILL.md +6 -0
  126. package/skills/jarvis-context-detect/SKILL.md +6 -0
  127. package/skills/jarvis-create-specialization/SKILL.md +6 -0
  128. package/skills/jarvis-docs-central/SKILL.md +6 -0
  129. package/skills/jarvis-docs-index/SKILL.md +10 -2
  130. package/skills/jarvis-evolution-architect/SKILL.md +439 -0
  131. package/skills/jarvis-evolution-architect/references/exemplos.md +297 -0
  132. package/skills/jarvis-evolution-architect/references/guia-de-uso.md +355 -0
  133. package/skills/jarvis-evolution-architect/references/lentes-e-conceitos.md +292 -0
  134. package/skills/jarvis-evolution-architect/references/visao-geral.md +272 -0
  135. package/skills/jarvis-init/SKILL.md +14 -7
  136. package/skills/jarvis-list-specializations/SKILL.md +6 -0
  137. package/skills/jarvis-report-issue/SKILL.md +6 -0
  138. package/skills/product-roadmap-report/SKILL.md +8 -0
  139. package/skills/product-specs/SKILL.md +9 -0
  140. package/skills/product-specs-update/SKILL.md +6 -0
  141. package/taxonomy.md +12 -12
  142. package/templates/AGENTS.md +2 -0
  143. package/templates/engineering/tech-spec-delivery-template.md +179 -0
  144. package/workflows/AGENTS.md +12 -2
  145. package/workflows/README.md +18 -16
  146. package/workflows/all-tools.md +7 -1
  147. package/workflows/engineering/data/data.contract.md +8 -0
  148. package/workflows/engineering/data/data.new-pipeline.md +10 -0
  149. package/workflows/engineering/eng.breakdown-subtasks.md +9 -0
  150. package/workflows/engineering/eng.bug-audit.md +9 -2
  151. package/workflows/engineering/eng.build-tech-spec.md +17 -146
  152. package/workflows/engineering/eng.create-ard-from-code.md +8 -0
  153. package/workflows/engineering/eng.create-ard.md +8 -0
  154. package/workflows/engineering/eng.create-rfc.md +7 -0
  155. package/workflows/engineering/eng.debug.md +3 -3
  156. package/workflows/engineering/eng.docs.md +9 -0
  157. package/workflows/engineering/eng.light-arch.md +7 -0
  158. package/workflows/engineering/eng.plan.md +15 -2
  159. package/workflows/engineering/eng.pr.md +19 -7
  160. package/workflows/engineering/eng.pre-pr.md +27 -1
  161. package/workflows/engineering/eng.review.md +13 -0
  162. package/workflows/engineering/eng.rpa.robot.md +16 -0
  163. package/workflows/engineering/eng.security-audit.md +7 -0
  164. package/workflows/engineering/eng.security-incident.md +6 -0
  165. package/workflows/engineering/eng.security-pipeline.md +9 -0
  166. package/workflows/engineering/eng.security-review.md +6 -0
  167. package/workflows/engineering/eng.start.md +22 -6
  168. package/workflows/engineering/eng.work.md +18 -2
  169. package/workflows/engineering/frontend/eng.frontend-component.md +7 -0
  170. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +8 -0
  171. package/workflows/engineering/frontend/eng.frontend-review.md +8 -0
  172. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +6 -0
  173. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +6 -0
  174. package/workflows/engineering/qa/eng.qa-exploratory-session.md +8 -0
  175. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +7 -0
  176. package/workflows/engineering/qa/eng.qa-quality-report.md +7 -0
  177. package/workflows/engineering/qa/eng.qa-refinement-entry.md +7 -0
  178. package/workflows/engineering/qa/eng.qa-release-signoff.md +6 -0
  179. package/workflows/engineering/qa/eng.qa-sprint-planning.md +6 -0
  180. package/workflows/product/prod.roadmap.preview.md +9 -0
  181. package/workflows/product/prod.spec.ard.md +97 -0
  182. package/workflows/product/prod.spec.breakdown.md +10 -0
  183. package/workflows/product/prod.spec.clarify.md +8 -2
  184. package/workflows/product/prod.spec.discovery.md +10 -0
  185. package/workflows/product/prod.spec.epic.md +8 -0
  186. package/workflows/product/prod.spec.frd.md +7 -0
  187. package/workflows/product/prod.spec.issue.md +6 -0
  188. package/workflows/product/prod.spec.md +15 -1
  189. package/workflows/product/prod.spec.prd.md +7 -0
  190. package/workflows/taxonomy.md +58 -6
  191. package/workflows/warm-up.md +24 -9
  192. 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/ # 9 workflows de produto
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,13 +77,11 @@ 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
87
83
  │ │ ├── jarvis-create-specialization/ # Cria uma especialização de stack a partir do código do projeto e a registra
84
+ │ │ ├── jarvis-evolution-architect/ # Mentor de arquitetura para a evolução do Jarvis
88
85
  │ │
89
86
  │ ├── templates/ # Templates de documentos
90
87
  │ │ ├── engineering/ # ARD, RFC, Tech Spec
@@ -96,6 +93,8 @@ prompts/
96
93
  │ │ │ └── frontend/ # eng.frontend-rules.md (HUB: FRONTEND)
97
94
  │ │ └── product/ # prod-rules.md (AREA=PRODUCT)
98
95
  │ │
96
+ │ ├── rules-on-demand/ # Rules de uma etapa so (start, plan, work, pre-pr, pr, tech-spec, breakdown): o workflow manda ler
97
+ │ │
99
98
  │ ├── scripts/ # Scripts utilitarios
100
99
  │ └── docs/ # Documentacao adicional
101
100
  │
@@ -212,6 +211,8 @@ jarvis logout # Remover auth.json legado (
212
211
  jarvis init # Bootstrap do framework no projeto
213
212
  jarvis list # Listar agents, skills e workflows
214
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)
215
216
  ```
216
217
 
217
218
  Quando atuar em um projeto alvo, detectar comandos em:
@@ -230,7 +231,8 @@ Quando atuar em um projeto alvo, detectar comandos em:
230
231
  1. `.windsurfrules` / `.cursorrules` - Regras globais do framework
231
232
  2. `$IDE/ENV.md` - Contexto do ambiente
232
233
  3. `$IDE/JARVIS.md` - Guia principal de uso
233
- 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
234
236
  5. `$IDE/agents/` - Definicoes de agentes
235
237
  6. `$IDE/skills/` - Playbooks operacionais
236
238
  7. `$IDE/workflows/` - Templates de execucao
@@ -296,6 +298,7 @@ Quando um agente atua em tema com skill correspondente, o skill e a fonte de ver
296
298
  | Comentário no card | `eng-global-task-comment` |
297
299
  | Listar especializações de stack (instaladas e registradas) | `jarvis-list-specializations` |
298
300
  | Criar uma especialização de stack (backend ou frontend) a partir do código do projeto | `jarvis-create-specialization` |
301
+ | Decisão de arquitetura do Jarvis (agent, skill, workflow ou rule?), simplificação, tendências | `jarvis-evolution-architect` |
299
302
  | `jarvis docs sync` | `jarvis-docs-central` |
300
303
  | `jarvis docs publish` | `jarvis-docs-central` |
301
304
  | QA validation | `eng-qa-gate` |
@@ -303,7 +306,6 @@ Quando um agente atua em tema com skill correspondente, o skill e a fonte de ver
303
306
  | Inicializacao | `jarvis-init` |
304
307
  | Testes unitarios | `eng-qa-unit-test` |
305
308
  | Testes TestSprite | `eng-qa-testsprite` |
306
- | Taxonomia | `taxonomy-manager` |
307
309
  | Mensageria / RabbitMQ | `eng-backend-rabbitmq` (especialização de backend) |
308
310
  | APIs, auth, workers, caching | `eng-backend` (base) + `BACKEND_SPECIALIZATIONS` |
309
311
  | Componentes, UI, frontend | `eng-frontend` (base) + `FRONTEND_SPECIALIZATIONS` |
@@ -323,8 +325,8 @@ Quando um agente atua em tema com skill correspondente, o skill e a fonte de ver
323
325
  | Testes de acessibilidade WCAG 2.1 AA: integra jest-axe em testes unitários existentes | `eng-qa-a11y-audit` |
324
326
  | Testes de contrato GraphQL: valida queries frontend contra schema do BFF | `eng-qa-graphql-contract` |
325
327
  | Spec E2E para handoff: cenários, Page Objects, fixtures, intercepts, setup de ambiente | `eng-qa-e2e-spec-writer` |
326
- | Planejar capacidade QA da sprint: risco por task, alocação entre QAs e Quality Champions | `eng-qa-sprint-planning` |
327
- | Sign-off QA pré-deploy: verifica cobertura, bugs abertos, produz GO/NO-GO + snippet CI para TL | `eng-qa-release-signoff` |
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` |
328
330
  | Pipelines ETL/ELT, Glue, Airflow, PySpark, Athena, Metabase, bronze/silver/gold, contratos de dados, Great Expectations | `eng-data-engineer` |
329
331
  | Criar pipeline novo (docs, qualidade, idempotência, gold) | `data.new-pipeline` |
330
332
  | Criar contrato de dados para squad requisitante | `data.contract` |
@@ -402,6 +404,7 @@ Uso especializado quando necessário.
402
404
  - `$IDE/skills/AGENTS.md` - Skills disponiveis
403
405
  - `$IDE/rules/engineering/` - Regras de engenharia
404
406
  - `$IDE/rules/product/` - Regras de produto
407
+ - `$IDE/rules-on-demand/engineering/` - Regras de etapa (lidas pelo workflow)
405
408
 
406
409
  ---
407
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. **Restricoes** - O que NAO deve fazer
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
- /skill-creator # criar skill que usa agent arquivado
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-jarvis` ou seguir o fluxo do skill `eng-data-engineer`.
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
- > Referência completa: `$IDE/rules/engineering/eng.downstream-flow-rules.md`
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 **"Em progresso"** |
256
- | Profissional abre MR (`eng.pr`) | Orientar mover para **"Review de código"** |
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 | Consultar a rule — nunca mover card de responsabilidade do TECH LEAD ou PM |
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
- ## Skill de referência
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
- ## Mapeamento de Skills
52
+ ## Skills Disponíveis
53
53
 
54
- | Tarefa | Skill |
55
- |--------|-------|
56
- | Criar/refatorar componente, estado ou estilos | regra `eng.specializations-rules.md` (área frontend: `eng-frontend` + `FRONTEND_SPECIALIZATIONS`) |
57
- | Auditoria de performance | `eng-frontend` (seção Performance) |
58
- | Testes E2E de fluxo de usuário | `eng-qa-e2e` |
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
- **Workflow de referência**: ver `workflows/engineering/frontend/`
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 **"Em progresso"** |
183
- | DEV abre MR (`eng.pr`) | Orientar mover para **"Review de código"** |
184
- | Qualquer outra transição | Consultar a rule — nunca orientar DEV a mover card de responsabilidade do TECH LEAD ou PM |
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
 
@@ -53,6 +53,10 @@ de implementação. Classificar feedback por impacto × esforço.
53
53
 
54
54
  ---
55
55
 
56
+ ## Skills Disponíveis
57
+
58
+ Nenhuma — agente autocontido, não depende de skill
59
+
56
60
  ## Mapeamento de Atividades
57
61
 
58
62
  | Atividade | Quando usar |
@@ -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 de Referência
18
+ ## Skills Disponíveis
19
19
 
20
- | Situação | Skill |
21
- |----------|-------|
22
- | Gerar nova spec Cypress | `eng-qa-cypress-e2e` |
23
- | Orientar dev sobre cobertura | `eng-qa-dev-guide` |
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 de Referência
23
-
24
- | Situação | Skill / Workflow |
25
- |----------|----------------|
26
- | Planejar testes de uma feature específica | `eng-qa-test-plan` |
27
- | Entrada no refinamento de uma feature | `qa.refinement-entry` |
28
- | Gerar relatório de qualidade do período | `qa.quality-report` |
29
- | Análise de risco pré-release | `eng-qa-gate` |
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 de Referência
88
+ ## Skills Disponíveis
89
89
 
90
- | Skill | Quando Usar |
91
- |-------|-------------|
92
- | **eng-qa-testsprite** | Execução automatizada E2E/API |
93
- | **eng-qa-test-plan** | Análise de cobertura |
94
- | **eng-qa-unit-test** | Padrões de testes unitários |
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-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.
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 e Agentes de Referência
29
+ ## Skills Disponíveis
30
30
 
31
31
  Use os recursos abaixo como fonte de verdade do processo:
32
32
 
33
- **Skills:**
34
- - **eng-qa-test-plan**: análise de cobertura e planejamento de testes
35
- - Arquivo: `$IDE/skills/eng-qa-test-plan/SKILL.md`
36
- - **eng-qa-testsprite**: execução automatizada de testes com TestSprite MCP
37
- - Arquivo: `$IDE/skills/eng-qa-testsprite/SKILL.md`
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-qa-refinement-entry`, ou quando git diff retornar vazio.
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 de Referência
14
-
15
- | Skill | Quando Usar | Arquivo |
16
- |-------|-------------|---------|
17
- | **eng-qa-cypress-e2e** | Para gerar specs Cypress + TypeScript para fluxos de usuário | `$IDE/skills/eng-qa-cypress-e2e/SKILL.md` |
18
- | **eng-qa-unit-test** | Para templates e padrões ao **escrever** testes unitários | `$IDE/skills/eng-qa-unit-test/SKILL.md` |
19
- | **eng-qa-test-plan** | Para **analisar** cobertura antes de escrever | `$IDE/skills/eng-qa-test-plan/SKILL.md` |
20
- | **eng-qa-testsprite** | Para testes E2E/API em linguagem natural via Stagehand | `$IDE/skills/eng-qa-testsprite/SKILL.md` |
21
- | **eng-qa-dev-guide** | Para orientar devs sobre cobertura sem escrever o teste | `$IDE/skills/eng-qa-dev-guide/SKILL.md` |
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
- ## Apoio de skills (apoio, nunca a fonte da decisão)
73
+ ## Skills Disponíveis
74
74
 
75
- - **Sempre:** busca em `$PROD_DOCS`; `jarvis-docs-central` quando `CENTRAL_DOCS_REPO` estiver configurado; `jarvis-context-detect` para calibrar a profundidade da entrevista
76
- - **Só com a confirmação do usuário:** `eng-backend-arch-c4` (arquitetura atual) e `eng-security-cybersecurity` (quando a ideia envolve autenticação, dados pessoais ou fluxo financeiro). São skills de engenharia: pergunte antes de consultá-las, e o que retornarem entra no discovery como **suposição a validar**, não como fato
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
+ }