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.
- package/AGENTS.md +12 -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 +22 -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 +439 -0
- package/skills/jarvis-evolution-architect/references/exemplos.md +297 -0
- package/skills/jarvis-evolution-architect/references/guia-de-uso.md +355 -0
- package/skills/jarvis-evolution-architect/references/lentes-e-conceitos.md +292 -0
- package/skills/jarvis-evolution-architect/references/visao-geral.md +272 -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
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Contratos de Interface
|
|
2
|
+
|
|
3
|
+
> Parte do skill `eng-frontend-microfrontend`. Leia este arquivo quando a tarefa definir ou alterar contratos entre shell e remotes.
|
|
4
|
+
|
|
5
|
+
## Contratos de Interface
|
|
6
|
+
|
|
7
|
+
O contrato é o **acordo formal** entre shell e remote — define o que o remote expõe e o que espera receber.
|
|
8
|
+
|
|
9
|
+
### Estrutura do pacote de contratos
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
packages/
|
|
13
|
+
└── mfe-contracts/
|
|
14
|
+
├── src/
|
|
15
|
+
│ ├── remotes/
|
|
16
|
+
│ │ ├── {nome-remote}.contract.ts ← contrato do remote
|
|
17
|
+
│ │ └── index.ts
|
|
18
|
+
│ ├── shell/
|
|
19
|
+
│ │ └── shell.context.ts ← o que o shell injeta nos remotes
|
|
20
|
+
│ └── index.ts
|
|
21
|
+
├── package.json
|
|
22
|
+
└── tsconfig.json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Definindo um contrato
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
// packages/mfe-contracts/src/remotes/{nome-remote}.contract.ts
|
|
29
|
+
|
|
30
|
+
// O que o remote expõe ao shell
|
|
31
|
+
export interface {NomeRemote}Exports {
|
|
32
|
+
default: React.ComponentType<{NomeRemote}Props>
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Props que o shell passa ao montar o remote
|
|
36
|
+
export interface {NomeRemote}Props {
|
|
37
|
+
basePath: string
|
|
38
|
+
onNavigate?: (path: string) => void
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Eventos que o remote emite no event bus
|
|
42
|
+
export interface {NomeRemote}Events {
|
|
43
|
+
'{nome-remote}:action-completed': { id: string; result: unknown }
|
|
44
|
+
'{nome-remote}:error': { code: string; message: string }
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Contexto do shell (injetado em todos os remotes)
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// packages/mfe-contracts/src/shell/shell.context.ts
|
|
52
|
+
export interface ShellContext {
|
|
53
|
+
user: {
|
|
54
|
+
id: string
|
|
55
|
+
name: string
|
|
56
|
+
permissions: string[]
|
|
57
|
+
}
|
|
58
|
+
theme: 'light' | 'dark'
|
|
59
|
+
locale: string
|
|
60
|
+
onNavigate: (path: string) => void
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Hook disponível em todos os remotes
|
|
64
|
+
export const ShellContextReact = React.createContext<ShellContext | null>(null)
|
|
65
|
+
|
|
66
|
+
export function useShellContext(): ShellContext {
|
|
67
|
+
const ctx = React.useContext(ShellContextReact)
|
|
68
|
+
if (!ctx) throw new Error('useShellContext deve ser usado dentro do ShellProvider')
|
|
69
|
+
return ctx
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Shared Dependencies
|
|
2
|
+
|
|
3
|
+
> Parte do skill `eng-frontend-microfrontend`. Leia este arquivo quando a tarefa envolver dependências compartilhadas ou conflito de versão.
|
|
4
|
+
|
|
5
|
+
## Shared Dependencies
|
|
6
|
+
|
|
7
|
+
### Regras críticas
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
singleton: true → apenas uma instância em toda a aplicação (obrigatório para React, React DOM)
|
|
11
|
+
eager: false → NÃO usar eager para shared libs (causa bootstrap error)
|
|
12
|
+
requiredVersion → sempre declarar para evitar conflitos silenciosos
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Checklist de shared deps
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
shared: {
|
|
19
|
+
// Core React — sempre singleton
|
|
20
|
+
'react': { singleton: true, requiredVersion: '^18.0.0' },
|
|
21
|
+
'react-dom': { singleton: true, requiredVersion: '^18.0.0' },
|
|
22
|
+
|
|
23
|
+
// Router — singleton para evitar múltiplos contextos de roteamento
|
|
24
|
+
'react-router-dom': { singleton: true, requiredVersion: '^6.0.0' },
|
|
25
|
+
|
|
26
|
+
// Design system — singleton obrigatório (CSS e contexto de tema)
|
|
27
|
+
'@{org}/design-system': { singleton: true },
|
|
28
|
+
|
|
29
|
+
// Estado global — singleton se compartilhado entre remotes
|
|
30
|
+
'zustand': { singleton: true },
|
|
31
|
+
|
|
32
|
+
// NÃO compartilhar: libs utilitárias pequenas (date-fns, lodash)
|
|
33
|
+
// → melhor cada remote ter sua versão para evitar lock de versão
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Conflito de versão (diagnóstico)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Ver qual versão de react cada remote está carregando
|
|
41
|
+
# No DevTools → Network → filtrar por "remoteEntry.js"
|
|
42
|
+
# Abrir arquivo e buscar por "shared"
|
|
43
|
+
|
|
44
|
+
# Via CLI — verificar versões no monorepo
|
|
45
|
+
pnpm list react --recursive
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Event Bus
|
|
2
|
+
|
|
3
|
+
> Parte do skill `eng-frontend-microfrontend`. Leia este arquivo quando a tarefa envolver comunicação entre remotes por eventos.
|
|
4
|
+
|
|
5
|
+
## Event Bus
|
|
6
|
+
|
|
7
|
+
Remote e shell se comunicam via evento — nunca via import direto.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
// packages/mfe-contracts/src/event-bus.ts
|
|
11
|
+
|
|
12
|
+
type EventHandler<T> = (payload: T) => void
|
|
13
|
+
|
|
14
|
+
class MFEEventBus {
|
|
15
|
+
private listeners = new Map<string, Set<EventHandler<unknown>>>()
|
|
16
|
+
|
|
17
|
+
emit<T>(event: string, payload: T): void {
|
|
18
|
+
this.listeners.get(event)?.forEach((handler) => handler(payload as unknown))
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
on<T>(event: string, handler: EventHandler<T>): () => void {
|
|
22
|
+
if (!this.listeners.has(event)) {
|
|
23
|
+
this.listeners.set(event, new Set())
|
|
24
|
+
}
|
|
25
|
+
this.listeners.get(event)!.add(handler as EventHandler<unknown>)
|
|
26
|
+
|
|
27
|
+
// retorna função de cleanup
|
|
28
|
+
return () => this.listeners.get(event)?.delete(handler as EventHandler<unknown>)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Singleton global — compartilhado via shell context
|
|
33
|
+
export const eventBus = new MFEEventBus()
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
// Uso em um remote
|
|
38
|
+
import { useShellContext } from '@{org}/mfe-contracts'
|
|
39
|
+
|
|
40
|
+
function CheckoutButton({ orderId }: { orderId: string }) {
|
|
41
|
+
const { eventBus } = useShellContext()
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<button onClick={() => eventBus.emit('checkout:initiated', { orderId })}>
|
|
45
|
+
Finalizar compra
|
|
46
|
+
</button>
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Uso no shell — escutar eventos de remotes
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
const unsubscribe = eventBus.on('checkout:initiated', ({ orderId }) => {
|
|
53
|
+
navigate(`/checkout/${orderId}`)
|
|
54
|
+
})
|
|
55
|
+
return unsubscribe
|
|
56
|
+
}, [])
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Monorepo e Estratégia de Deploy
|
|
2
|
+
|
|
3
|
+
> Parte do skill `eng-frontend-microfrontend`. Leia este arquivo quando a tarefa envolver a estrutura do monorepo, o deploy independente ou o versionamento de remotes.
|
|
4
|
+
|
|
5
|
+
## Monorepo Frontend
|
|
6
|
+
|
|
7
|
+
### Estrutura recomendada
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
{repo}/
|
|
11
|
+
├── apps/
|
|
12
|
+
│ ├── shell/ ← host application
|
|
13
|
+
│ ├── {remote-a}/ ← micro frontend A
|
|
14
|
+
│ └── {remote-b}/ ← micro frontend B
|
|
15
|
+
├── packages/
|
|
16
|
+
│ ├── design-system/ ← componentes e tokens compartilhados
|
|
17
|
+
│ ├── mfe-contracts/ ← tipos TypeScript de contratos de interface
|
|
18
|
+
│ └── utils/ ← utilitários compartilhados
|
|
19
|
+
├── pnpm-workspace.yaml
|
|
20
|
+
└── turbo.json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
# pnpm-workspace.yaml
|
|
25
|
+
packages:
|
|
26
|
+
- 'apps/*'
|
|
27
|
+
- 'packages/*'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
// turbo.json
|
|
32
|
+
{
|
|
33
|
+
"pipeline": {
|
|
34
|
+
"build": {
|
|
35
|
+
"dependsOn": ["^build"],
|
|
36
|
+
"outputs": ["dist/**"]
|
|
37
|
+
},
|
|
38
|
+
"dev": {
|
|
39
|
+
"cache": false,
|
|
40
|
+
"persistent": true
|
|
41
|
+
},
|
|
42
|
+
"test": {
|
|
43
|
+
"dependsOn": ["^build"]
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Estratégia de Deploy
|
|
52
|
+
|
|
53
|
+
### Deploy independente (objetivo central do micro frontend)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Cada remote tem seu próprio pipeline de CI/CD:
|
|
57
|
+
push → build → test → deploy → atualizar URL no shell (via env var ou config service)
|
|
58
|
+
|
|
59
|
+
Shell NÃO precisa ser re-deployed quando um remote é atualizado.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Variáveis de ambiente por remote
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# .env.production do shell
|
|
66
|
+
VITE_REMOTE_URL_NOME_REMOTE=https://cdn.example.com/nome-remote/remoteEntry.js
|
|
67
|
+
VITE_REMOTE_URL_OUTRO_REMOTE=https://cdn.example.com/outro-remote/remoteEntry.js
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Versionamento de remotes
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Sem breaking change na API exposta → patch ou minor → URL permanece a mesma
|
|
74
|
+
Breaking change na API exposta (props, eventos) → major → nova URL + migração no shell
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Troubleshooting de Micro Frontend
|
|
2
|
+
|
|
3
|
+
> Parte do skill `eng-frontend-microfrontend`. Leia este arquivo quando houver erro de módulo compartilhado, remote indisponível ou componente que não re-renderiza.
|
|
4
|
+
|
|
5
|
+
## Troubleshooting
|
|
6
|
+
|
|
7
|
+
### Erro: "Shared module is not available for eager consumption"
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
// ❌ Causa: eager: true em shared lib com React
|
|
11
|
+
shared: { react: { singleton: true, eager: true } } // NÃO FAZER
|
|
12
|
+
|
|
13
|
+
// ✅ Solução: usar bootstrap.ts com import() dinâmico
|
|
14
|
+
// src/index.ts
|
|
15
|
+
import('./bootstrap') // async bootstrap resolve o problema
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Erro: "Remote container is not available"
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 1. Verificar se o remote está rodando
|
|
22
|
+
curl http://localhost:3001/assets/remoteEntry.js
|
|
23
|
+
|
|
24
|
+
# 2. Verificar CORS no servidor do remote
|
|
25
|
+
# O remoteEntry.js precisa ser acessível pelo shell
|
|
26
|
+
|
|
27
|
+
# 3. Verificar se a URL no shell está correta
|
|
28
|
+
grep -r "remoteEntry" vite.config.ts
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Componente do remote não re-renderiza após update de state do shell
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// Causa provável: contexto do shell não está sendo re-injetado no remote
|
|
35
|
+
// Solução: passar o contexto via props no ponto de montagem, não via módulo compartilhado
|
|
36
|
+
|
|
37
|
+
// ❌ Problemático
|
|
38
|
+
import { useShellStore } from 'shell/store' // import direto entre remote e shell
|
|
39
|
+
|
|
40
|
+
// ✅ Correto
|
|
41
|
+
// Shell passa estado via props ao montar o remote
|
|
42
|
+
<RemoteApp user={currentUser} onNavigate={navigate} />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
@@ -294,6 +294,12 @@ Firefox:
|
|
|
294
294
|
6. Enviar para revisão (1-3 dias úteis)
|
|
295
295
|
```
|
|
296
296
|
|
|
297
|
+
### Skills invocados durante a execução do skill
|
|
298
|
+
|
|
299
|
+
| Passo | Skill | Condição |
|
|
300
|
+
|-------|-------|----------|
|
|
301
|
+
| — | Nenhuma — skill autocontida | — |
|
|
302
|
+
|
|
297
303
|
---
|
|
298
304
|
|
|
299
305
|
## Anti-Padrões
|
|
@@ -25,7 +25,7 @@ Garantir que a documentação reflita com precisão o **estado atual do codebase
|
|
|
25
25
|
## Recursos
|
|
26
26
|
|
|
27
27
|
- **Template C4**: `$IDE/templates/engineering/c4-model-template.md`
|
|
28
|
-
- **Skill arch-c4**: `$IDE/skills/arch-c4/SKILL.md`
|
|
28
|
+
- **Skill eng-backend-arch-c4**: `$IDE/skills/eng-backend-arch-c4/SKILL.md`
|
|
29
29
|
- **Saída**: `$DOCS_FOLDER/` (conforme ENV.md)
|
|
30
30
|
|
|
31
31
|
> **Dica**: Em caso de dúvida sobre documentação de bibliotecas ou frameworks, use o MCP `context7` para consultar documentação atualizada.
|
|
@@ -172,7 +172,7 @@ Você gostaria que eu prosseguisse com essas atualizações?
|
|
|
172
172
|
|
|
173
173
|
## Documentação de Arquitetura (C4 Model)
|
|
174
174
|
|
|
175
|
-
Quando houver **mudanças arquiteturais significativas**, utilize a skill `arch-c4`:
|
|
175
|
+
Quando houver **mudanças arquiteturais significativas**, utilize a skill `eng-backend-arch-c4`:
|
|
176
176
|
|
|
177
177
|
### Quando usar C4 Model
|
|
178
178
|
|
|
@@ -289,10 +289,15 @@ Antes de finalizar:
|
|
|
289
289
|
|
|
290
290
|
## Integração com Outros Skills
|
|
291
291
|
|
|
292
|
-
|
|
292
|
+
### Skills invocados durante a execução do skill
|
|
293
293
|
|
|
294
|
-
|
|
295
|
-
|
|
294
|
+
| Passo | Skill | Condição |
|
|
295
|
+
|-------|-------|----------|
|
|
296
|
+
| Documentação de Arquitetura (C4 Model) | `/eng-backend-arch-c4` | Se houver mudanças arquiteturais significativas (novos serviços ou contêineres, integrações externas, componentes, bancos ou filas, APIs públicas) |
|
|
297
|
+
|
|
298
|
+
Sugestões após atualizar a documentação (não são chamadas do fluxo):
|
|
299
|
+
|
|
300
|
+
- `jarvis-docs-index`: atualizar o índice de documentação (`$IDE/skills/jarvis-docs-index/SKILL.md`)
|
|
296
301
|
|
|
297
302
|
---
|
|
298
303
|
|
|
@@ -19,3 +19,9 @@ Este skill foi unificado em **`eng-global-task-comment`**.
|
|
|
19
19
|
Execute o playbook de `$IDE/skills/eng-global-task-comment/SKILL.md` com os mesmos argumentos `{TASK_MANAGER_KEY} {mensagem}`.
|
|
20
20
|
|
|
21
21
|
`{TASK_MANAGER_KEY}` — identificador do card no `TASK_MANAGER` do ENV.md.
|
|
22
|
+
|
|
23
|
+
### Skills invocados durante a execução do skill
|
|
24
|
+
|
|
25
|
+
| Passo | Skill | Condição |
|
|
26
|
+
|-------|-------|----------|
|
|
27
|
+
| Único passo (alias) | `/eng-global-task-comment` | Sempre — o alias executa o playbook da skill alvo com os mesmos argumentos `{TASK_MANAGER_KEY} {mensagem}` |
|
|
@@ -29,7 +29,7 @@ Criar branch, commitar alterações e abrir um MR (GitLab) ou PR (GitHub/Bitbuck
|
|
|
29
29
|
## Recursos
|
|
30
30
|
|
|
31
31
|
- **Template**: `$IDE/templates/engineering/PR-template.md`
|
|
32
|
-
- **Regras**: `$IDE/rules/engineering/eng.pr-rules.md`
|
|
32
|
+
- **Regras**: `$IDE/rules-on-demand/engineering/eng.pr-rules.md`
|
|
33
33
|
- **Workflow**: `$IDE/workflows/engineering/eng.pr.md`
|
|
34
34
|
|
|
35
35
|
---
|
|
@@ -247,6 +247,12 @@ rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
|
|
|
247
247
|
|
|
248
248
|
> ⚠️ **IMPORTANTE**: Sempre pedir confirmação antes de executar comandos destrutivos.
|
|
249
249
|
|
|
250
|
+
### Skills invocados durante a execução do skill
|
|
251
|
+
|
|
252
|
+
| Passo | Skill | Condição |
|
|
253
|
+
|-------|-------|----------|
|
|
254
|
+
| Passo 6 — Atualizar o card | `/eng-global-task-comment` | Se `TASK_MANAGER` estiver preenchido (freelance pula): comentário no card com o link do MR |
|
|
255
|
+
|
|
250
256
|
---
|
|
251
257
|
|
|
252
258
|
## Regras de Segurança
|
|
@@ -62,3 +62,9 @@ Exit 0 → comentário ok. Exit 2 → avisar e **não bloquear** o workflow.
|
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
Nunca pedir credenciais no chat. Nunca parar o fluxo principal por falha de comentário.
|
|
65
|
+
|
|
66
|
+
### Skills invocados durante a execução do skill
|
|
67
|
+
|
|
68
|
+
| Passo | Skill | Condição |
|
|
69
|
+
|-------|-------|----------|
|
|
70
|
+
| — | Nenhuma — skill autocontida | — |
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
area: qa
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
# qa-a11y-audit
|
|
15
|
+
# eng-qa-a11y-audit
|
|
16
16
|
|
|
17
17
|
Você é um especialista em acessibilidade web (a11y). Sua função é integrar
|
|
18
18
|
`jest-axe` nos testes unitários existentes de componentes para validar
|
|
@@ -31,7 +31,7 @@ e gerar report com correções sugeridas.
|
|
|
31
31
|
## Entrada
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
/qa-a11y-audit [caminho]
|
|
34
|
+
/eng-qa-a11y-audit [caminho]
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
- `caminho` (opcional) — diretório ou arquivo de componente
|
|
@@ -65,7 +65,7 @@ e gerar report com correções sugeridas.
|
|
|
65
65
|
- Onboarding de a11y em projeto que nunca teve
|
|
66
66
|
|
|
67
67
|
**NÃO usar quando:**
|
|
68
|
-
- Projeto não tem testes unitários (criar testes primeiro com `qa-unit-test`)
|
|
68
|
+
- Projeto não tem testes unitários (criar testes primeiro com `eng-qa-unit-test`)
|
|
69
69
|
- Componentes não renderizam DOM (hooks, utils, serviços)
|
|
70
70
|
- Objetivo é teste E2E de a11y (usar Lighthouse/axe-core no E2E)
|
|
71
71
|
|
|
@@ -219,6 +219,12 @@ npx vitest run {padrão}
|
|
|
219
219
|
──────────────────────────────────────────────────────────
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
+
### Skills invocados durante a execução do skill
|
|
223
|
+
|
|
224
|
+
| Passo | Skill | Condição |
|
|
225
|
+
|-------|-------|----------|
|
|
226
|
+
| — | Nenhuma — skill autocontida | — |
|
|
227
|
+
|
|
222
228
|
---
|
|
223
229
|
|
|
224
230
|
## Regras
|
|
@@ -261,7 +267,7 @@ npx vitest run {padrão}
|
|
|
261
267
|
## Mensagem de Conclusão
|
|
262
268
|
|
|
263
269
|
```
|
|
264
|
-
── qa-a11y-audit concluído ───────────────────────────────
|
|
270
|
+
── eng-qa-a11y-audit concluído ───────────────────────────────
|
|
265
271
|
Componentes : {N} testados
|
|
266
272
|
Violações : {V} encontradas ({C} critical, {S} serious)
|
|
267
273
|
Arquivos : {M} modificados
|