jarvis-ai-framework 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +59 -60
- package/README.md +24 -10
- package/agents/AGENTS.md +8 -5
- package/agents/README.md +8 -12
- package/agents/engineering/data/eng.data-engineer.agent.md +6 -6
- package/agents/engineering/eng.agent.md +19 -36
- package/agents/engineering/eng.bug-hunter.md +13 -12
- package/agents/engineering/eng.cybersecurity.agent.md +20 -35
- package/agents/engineering/eng.docs-writer.md +2 -2
- package/agents/engineering/eng.frontend.agent.md +17 -22
- package/agents/engineering/eng.rpa.agent.md +5 -15
- package/agents/engineering/qa/eng.qa.test-architect.md +4 -4
- package/agents/engineering/qa/eng.qa.test-planner.md +3 -3
- package/agents/engineering/qa/eng.qa.testing-engineer.md +3 -3
- package/agents/product/prod.discovery-interviewer.md +2 -2
- package/bin/commands/init.js +5 -5
- package/bin/jarvis.js +1 -1
- package/bin/lib/config/constants.js +35 -0
- package/package.json +1 -1
- package/rules/AGENTS.md +5 -3
- package/rules/engineering/eng-rules.md +5 -3
- package/rules/engineering/eng-security-rules.md +4 -4
- package/rules/engineering/eng.docs-scraping-rules.md +1 -1
- package/rules/engineering/eng.downstream-flow-rules.md +1 -1
- package/rules/engineering/eng.integrations-rules.md +2 -2
- package/rules/engineering/eng.pre-pr-rules.md +1 -1
- package/rules/engineering/eng.skills-rules.md +60 -0
- package/rules/engineering/eng.specializations-rules.md +69 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +70 -69
- package/rules/product/prod-rules.md +4 -4
- package/skills/AGENTS.md +111 -47
- package/skills/SKILLS-ROADMAP.md +24 -39
- package/skills/eng-ai-engineer/SKILL.md +1 -0
- package/skills/eng-backend/SKILL.md +142 -644
- package/skills/eng-backend/references/1-fundamentos-programacao.md +41 -0
- package/skills/eng-backend/references/10-seguranca.md +61 -0
- package/skills/eng-backend/references/11-performance.md +49 -0
- package/skills/eng-backend/references/12-erros-logging.md +42 -0
- package/skills/eng-backend/references/13-qualidade-codigo.md +51 -0
- package/skills/eng-backend/references/2-design-arquitetura.md +48 -0
- package/skills/eng-backend/references/3-design-patterns.md +50 -0
- package/skills/eng-backend/references/4-algoritmos-estruturas.md +43 -0
- package/skills/eng-backend/references/5-banco-dados.md +53 -0
- package/skills/eng-backend/references/6-api-comunicacao.md +42 -0
- package/skills/eng-backend/references/7-concorrencia-async.md +49 -0
- package/skills/eng-backend/references/8-arquitetura-servidor.md +49 -0
- package/skills/eng-backend/references/9-testes.md +43 -0
- package/skills/{eng-arch-c4 → eng-backend-arch-c4}/SKILL.md +12 -7
- package/skills/{eng-ms-trace → eng-backend-microservices-trace}/SKILL.md +6 -4
- package/skills/{eng-nestjs → eng-backend-nestjs}/SKILL.md +3 -1
- package/skills/{eng-rabbitmq → eng-backend-rabbitmq}/SKILL.md +3 -1
- package/skills/eng-data-bi/SKILL.md +1 -0
- package/skills/eng-data-debug/SKILL.md +2 -1
- package/skills/eng-data-engineer/SKILL.md +1 -0
- package/skills/eng-data-onboard/SKILL.md +1 -0
- package/skills/eng-data-orchestrator/SKILL.md +1 -0
- package/skills/{eng-performance-engineer → eng-devops-performance-engineer}/SKILL.md +2 -1
- package/skills/eng-frontend/SKILL.md +145 -782
- package/skills/eng-frontend/references/1-fundamentos-programacao.md +37 -0
- package/skills/eng-frontend/references/10-testes.md +47 -0
- package/skills/eng-frontend/references/11-seguranca.md +56 -0
- package/skills/eng-frontend/references/12-qualidade-codigo.md +51 -0
- package/skills/eng-frontend/references/2-html-fundamentals.md +51 -0
- package/skills/eng-frontend/references/3-css-responsive.md +61 -0
- package/skills/eng-frontend/references/4-javascript-dom.md +60 -0
- package/skills/eng-frontend/references/5-state-management.md +55 -0
- package/skills/eng-frontend/references/6-uiux-design.md +59 -0
- package/skills/eng-frontend/references/7-acessibilidade.md +46 -0
- package/skills/eng-frontend/references/8-performance.md +58 -0
- package/skills/eng-frontend/references/9-browser-apis.md +54 -0
- package/skills/{eng-design-system → eng-frontend-design-system}/SKILL.md +4 -2
- package/skills/{eng-microfrontend → eng-frontend-microfrontend}/SKILL.md +4 -2
- package/skills/{eng-browser-extension-builder → eng-global-browser-extension-builder}/SKILL.md +2 -1
- package/skills/{eng-docs-write → eng-global-docs-write}/SKILL.md +8 -4
- package/skills/eng-global-jira-comment/SKILL.md +21 -0
- package/skills/{eng-pr → eng-global-pr}/SKILL.md +7 -3
- package/skills/{eng-task-comment → eng-global-task-comment}/SKILL.md +6 -2
- package/skills/eng-qa-a11y-audit/SKILL.md +1 -0
- package/skills/eng-qa-bug-report/SKILL.md +2 -1
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +1 -1
- package/skills/eng-qa-cypress-e2e/SKILL.md +1 -0
- package/skills/eng-qa-dev-guide/SKILL.md +1 -0
- package/skills/eng-qa-e2e/SKILL.md +1 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +1 -0
- package/skills/eng-qa-exploratory/SKILL.md +1 -0
- package/skills/eng-qa-gate/SKILL.md +3 -2
- package/skills/eng-qa-graphql-contract/SKILL.md +1 -0
- package/skills/eng-qa-quality-report/SKILL.md +3 -2
- package/skills/eng-qa-test-plan/SKILL.md +1 -0
- package/skills/eng-qa-testsprite/SKILL.md +2 -1
- package/skills/eng-qa-unit-test/SKILL.md +1 -0
- package/skills/eng-scraper/SKILL.md +1 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +1 -0
- package/skills/{eng-cybersecurity → eng-security-cybersecurity}/SKILL.md +3 -2
- package/skills/eng-security-patch/SKILL.md +6 -2
- package/skills/{eng-threat-model → eng-security-threat-model}/SKILL.md +6 -2
- package/skills/eng-security-triage/SKILL.md +4 -0
- package/skills/{context-detect → jarvis-context-detect}/SKILL.md +6 -5
- package/skills/{context-detect → jarvis-context-detect}/assets/context-profile-template.md +3 -3
- package/skills/jarvis-create-specialization/SKILL.md +230 -0
- package/skills/jarvis-create-specialization/assets/referencia-template.md +39 -0
- package/skills/jarvis-create-specialization/assets/skill-especializacao-template.md +78 -0
- package/skills/{docs-central → jarvis-docs-central}/README.md +1 -1
- package/skills/{docs-central → jarvis-docs-central}/SKILL.md +3 -40
- package/skills/{docs-index → jarvis-docs-index}/SKILL.md +8 -4
- package/skills/{init-jarvis → jarvis-init}/SKILL.md +41 -18
- package/skills/{init-jarvis → jarvis-init}/assets/mcp-configs.md +3 -3
- package/skills/{init-jarvis → jarvis-init}/assets/onboarding-checklist.md +1 -1
- package/skills/jarvis-init/assets/passo-adicionar-stacks.md +163 -0
- package/skills/{init-jarvis → jarvis-init}/assets/setup-guide.md +1 -1
- package/skills/jarvis-init/assets/sinais-de-stack.md +54 -0
- package/skills/jarvis-list-specializations/SKILL.md +148 -0
- package/skills/{report-issue → jarvis-report-issue}/SKILL.md +3 -2
- package/skills/{prod-roadmap-report → product-roadmap-report}/SKILL.md +2 -1
- package/skills/{prod-specs → product-specs}/SKILL.md +2 -1
- package/skills/{prod-specs-update → product-specs-update}/SKILL.md +3 -2
- package/taxonomy.md +3 -21
- package/templates/CDD aplicado a Prompts.md +5 -5
- package/templates/ENV-template.md +11 -8
- package/templates/engineering/AGENTS-template.md +1 -1
- package/templates/engineering/CONTACTS-template.md +1 -1
- package/workflows/engineering/eng.bug-audit.md +2 -2
- package/workflows/engineering/eng.build-tech-spec.md +1 -1
- package/workflows/engineering/eng.debug.md +10 -10
- package/workflows/engineering/eng.docs.md +2 -2
- package/workflows/engineering/eng.plan.md +5 -5
- package/workflows/engineering/eng.pr.md +8 -8
- package/workflows/engineering/eng.pre-pr.md +16 -20
- package/workflows/engineering/eng.review.md +5 -10
- package/workflows/engineering/eng.rpa.robot.md +3 -3
- package/workflows/engineering/eng.security-audit.md +5 -5
- package/workflows/engineering/eng.security-incident.md +2 -2
- package/workflows/engineering/eng.security-pipeline.md +2 -2
- package/workflows/engineering/eng.start.md +16 -50
- package/workflows/engineering/eng.work.md +8 -11
- package/workflows/engineering/frontend/eng.frontend-component.md +68 -96
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +90 -220
- package/workflows/engineering/frontend/eng.frontend-review.md +57 -63
- package/workflows/product/prod.roadmap.preview.md +2 -2
- package/workflows/product/prod.spec.discovery.md +3 -3
- package/workflows/product/prod.spec.issue.md +1 -1
- package/workflows/taxonomy.md +1 -1
- package/workflows/warm-up.md +5 -26
- package/agents/engineering/eng.tech-analyst.agent.md +0 -102
- package/skills/churn-audit/SKILL.md +0 -385
- package/skills/eng-jira-comment/SKILL.md +0 -17
- package/skills/eng-tech-analyst/SKILL.md +0 -529
- package/skills/lovable-prompt-generator/SKILL.md +0 -304
- package/workflows/engineering/ta/eng.ta.atendimento.md +0 -93
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-code.md +0 -0
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-component.md +0 -0
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-container.md +0 -0
- /package/skills/{eng-arch-c4 → eng-backend-arch-c4}/assets/example-context.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/README.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.compiled.single.team.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.list.projects.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.memory.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/commands/status.roadmap.preview.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/references/detailed-guide.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/rules/detailed-guide.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/rules/status-report-rules.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-multiple-teams-compiled-status.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-projects-list.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-single-team-compiled-status.md +0 -0
- /package/skills/{prod-roadmap-report → product-roadmap-report}/templates/template-single-team-status.md +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
6
|
+
|
|
7
|
+
# Regras de Skills: área obrigatória e nome inexistente
|
|
8
|
+
|
|
9
|
+
## Objetivo
|
|
10
|
+
|
|
11
|
+
Garantir que todo skill instalado tenha uma área reconhecida e avisar a pessoa, na hora, quando algo pede um skill que não existe.
|
|
12
|
+
|
|
13
|
+
## Escopo
|
|
14
|
+
|
|
15
|
+
Vale para todo comando `eng.*` e seus agentes, **ao iniciar**. A pasta de skills considerada é `$IDE/skills/`.
|
|
16
|
+
|
|
17
|
+
**Áreas reconhecidas:** `qa`, `data`, `ai`, `frontend`, `backend`, `security`, `scraper`, `devops`, `global`, `product`.
|
|
18
|
+
|
|
19
|
+
## Regras
|
|
20
|
+
|
|
21
|
+
### Obrigatório
|
|
22
|
+
|
|
23
|
+
1. **Bloqueio, primeiro.** Leia só o frontmatter de cada `$IDE/skills/*/SKILL.md`:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
for f in $IDE/skills/*/SKILL.md; do
|
|
27
|
+
awk -v f="$f" 'BEGIN{fm=0} /^---[[:space:]]*$/{fm++; next}
|
|
28
|
+
fm==1 && /^name:/{n=$2}
|
|
29
|
+
fm==1 && /^[[:space:]]+area:/{a=$2}
|
|
30
|
+
END{printf "%s|area=%s\n", n, a}' "$f"
|
|
31
|
+
done
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Se algum skill tem `area` vazia ou fora das áreas reconhecidas, **interrompa o comando** e exiba:
|
|
35
|
+
`⛔ Skills instalados sem área (metadata.area): {lista}. Marque a área de cada um (ou remova o skill) e execute o comando de novo. O comando foi interrompido.`
|
|
36
|
+
2. **Aviso de nome inexistente.** Quando o usuário, um workflow, um agente ou uma das listas (`BACKEND_SPECIALIZATIONS`, `FRONTEND_SPECIALIZATIONS`) pedir um skill cujo `$IDE/skills/{nome}/SKILL.md` não existe, exiba na hora:
|
|
37
|
+
`⚠️ O skill "{nome}" não existe em $IDE/skills/. Use /jarvis-list-specializations para ver os nomes atuais e corrija a referência. Seguindo sem ele.`
|
|
38
|
+
e **siga sem esse skill** (em backend e frontend, com o skill base e os demais itens).
|
|
39
|
+
|
|
40
|
+
### Proibido
|
|
41
|
+
|
|
42
|
+
- Pular o bloqueio ou seguir como se o skill sem área estivesse marcado
|
|
43
|
+
- Corrigir sozinho o nome, a área ou a lista do `ENV.md`
|
|
44
|
+
- Usar um skill que não existe, nem adivinhar um nome parecido
|
|
45
|
+
|
|
46
|
+
### Recomendado
|
|
47
|
+
|
|
48
|
+
- Na mensagem do bloqueio, listar cada skill pelo nome da pasta
|
|
49
|
+
- No aviso, citar o nome exatamente como foi pedido
|
|
50
|
+
|
|
51
|
+
## Exceções
|
|
52
|
+
|
|
53
|
+
- Só Claude Code e Cursor são suportados. Em IDEs com outra pasta de skills (por exemplo, Kiro e Codex), o bloqueio e o aviso podem não funcionar.
|
|
54
|
+
- O comando `/jarvis-init` e a consulta `/jarvis-list-specializations` não passam pelo bloqueio (são como a pessoa descobre e corrige o problema).
|
|
55
|
+
|
|
56
|
+
## Referências
|
|
57
|
+
|
|
58
|
+
- `eng.specializations-rules.md`: listas de especializações e carregamento por área
|
|
59
|
+
- `skills/jarvis-list-specializations/SKILL.md`: consulta do que está instalado e registrado
|
|
60
|
+
- `skills/AGENTS.md`: áreas reconhecidas e padrão de nomes
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
6
|
+
|
|
7
|
+
# Regras de Especializações por Stack
|
|
8
|
+
|
|
9
|
+
## Objetivo
|
|
10
|
+
|
|
11
|
+
Fazer todo comando `eng.*` carregar o **skill base** da área mais as **especializações** que o projeto registrou no `ENV.md`, e avisar a pessoa quando algo falta.
|
|
12
|
+
|
|
13
|
+
## Escopo
|
|
14
|
+
|
|
15
|
+
Vale para qualquer comando `eng.*` e seus agentes, **ao iniciar um trabalho de backend** (APIs, autenticação, workers, banco de dados, servidor) **ou de frontend** (componentes, interface, estilos, estado). Se o trabalho envolve as duas áreas, aplique a regra a cada uma. Se não é de nenhuma das duas, não carregue nada.
|
|
16
|
+
|
|
17
|
+
| Área | Variável no `ENV.md` | Skill base |
|
|
18
|
+
|------|----------------------|------------|
|
|
19
|
+
| backend | `BACKEND_SPECIALIZATIONS` | `eng-backend` |
|
|
20
|
+
| frontend | `FRONTEND_SPECIALIZATIONS` | `eng-frontend` |
|
|
21
|
+
|
|
22
|
+
## Regras
|
|
23
|
+
|
|
24
|
+
### Obrigatório
|
|
25
|
+
|
|
26
|
+
1. **Leia a variável** da área no `$IDE/ENV.md`.
|
|
27
|
+
2. **Variável ausente** (a chave não existe, diferente de vazia): **interrompa o comando** e exiba:
|
|
28
|
+
`⚠️ A variável {VAR} não existe no ENV.md. Execute /jarvis-init e escolha Upgrade (C) para acrescentá-la. O comando foi interrompido.`
|
|
29
|
+
3. **Lista vazia:** siga só com o skill base e exiba:
|
|
30
|
+
`ℹ️ Sem especialização registrada para {área}. Usando só a skill base ({base}).`
|
|
31
|
+
4. **Lista com itens:** carregue o skill base e, para **cada item**:
|
|
32
|
+
- nome fora de `^[a-z0-9][a-z0-9-]*$` (inclui `/`, `..` e maiúsculas): ignore o item e exiba
|
|
33
|
+
`⚠️ O item "{item}" de {VAR} tem caracteres inválidos (use letras minúsculas, números e hífen). Item ignorado.`
|
|
34
|
+
- `$IDE/skills/{item}/SKILL.md` não existe: exiba
|
|
35
|
+
`⚠️ O item "{item}" de {VAR} não corresponde a um skill instalado em $IDE/skills/. Instale o skill ou corrija a lista. Seguindo com o neutro e os demais itens.`
|
|
36
|
+
- existe: leia o `SKILL.md` e aplique-o junto com o skill base.
|
|
37
|
+
5. **Informe** o que foi carregado: `✅ Skills carregados ({área}): {base} (base), {itens carregados}`.
|
|
38
|
+
6. As especializações **somam-se** ao skill base; nenhuma o substitui.
|
|
39
|
+
|
|
40
|
+
### Formato da lista
|
|
41
|
+
|
|
42
|
+
- Itens **separados por vírgula**: `eng-backend-golang,eng-backend-nestjs`.
|
|
43
|
+
- **Leia** com ou sem colchetes, espaços e aspas (`a,b`, `[a,b]`, `[ a , b ]`, `["a","b"]`).
|
|
44
|
+
- Ao **gravar**, escreva sempre separado por vírgula, sem colchetes.
|
|
45
|
+
|
|
46
|
+
### Proibido
|
|
47
|
+
|
|
48
|
+
- Criar ou alterar a variável por conta própria.
|
|
49
|
+
- Seguir só com o skill base quando a variável está **ausente**.
|
|
50
|
+
- Carregar skills que não estão na lista.
|
|
51
|
+
- Aceitar item com caminho (`/`, `..`) ou fora do padrão de nome.
|
|
52
|
+
|
|
53
|
+
### Recomendado
|
|
54
|
+
|
|
55
|
+
- Citar na mensagem o nome da variável e do item.
|
|
56
|
+
- Com vários itens, carregar todos.
|
|
57
|
+
|
|
58
|
+
## Exceções
|
|
59
|
+
|
|
60
|
+
- Áreas além de backend e frontend não têm lista (evolução futura).
|
|
61
|
+
- Skills de outras áreas não passam por esta regra.
|
|
62
|
+
|
|
63
|
+
## Referências
|
|
64
|
+
|
|
65
|
+
- `eng-rules.md`: validação do `ENV.md` (lista presente, mesmo vazia).
|
|
66
|
+
- `eng.skills-rules.md`: área obrigatória nos skills e aviso de skill inexistente (o nome citado em uma lista que não existe também segue o aviso de lá).
|
|
67
|
+
- `skills/jarvis-create-specialization/SKILL.md`: criação de uma especialização a partir do código do projeto e registro na lista.
|
|
68
|
+
- `skills/jarvis-list-specializations/SKILL.md`: consulta das especializações instaladas e registradas.
|
|
69
|
+
- `templates/ENV-template.md`: seção "Especializações de stack".
|
|
@@ -1,47 +1,50 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eng.frontend-rules
|
|
3
3
|
description: >
|
|
4
|
-
Padrões obrigatórios para devs com HUB: FRONTEND — componentes,
|
|
5
|
-
acessibilidade, performance,
|
|
4
|
+
Padrões obrigatórios para devs com HUB: FRONTEND, neutros de stack — componentes,
|
|
5
|
+
tipagem, acessibilidade, performance, testes, arquiteturas distribuídas e tokens de design.
|
|
6
|
+
O que depende da stack vem das especializações registradas em FRONTEND_SPECIALIZATIONS.
|
|
6
7
|
author: jarvis-team
|
|
7
|
-
version: "1.
|
|
8
|
+
version: "1.1"
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
> **Applies to:** HUB: FRONTEND | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
11
12
|
|
|
12
13
|
# Regras de Engenharia Frontend
|
|
13
14
|
|
|
15
|
+
> **Neutras de stack.** Estas regras valem para qualquer framework ou linguagem de frontend. Onde uma regra depende da stack (como se busca dados, como se organiza um módulo, qual ferramenta de teste usar), siga a **especialização registrada** em `FRONTEND_SPECIALIZATIONS` no `ENV.md` e o código existente do projeto. Sem especialização registrada, **pergunte** em vez de presumir uma stack. Ver `eng.specializations-rules.md`.
|
|
16
|
+
|
|
14
17
|
---
|
|
15
18
|
|
|
16
19
|
## 1. Componentes
|
|
17
20
|
|
|
18
21
|
### Estrutura obrigatória
|
|
19
|
-
-
|
|
20
|
-
-
|
|
22
|
+
- Toda entrada de um componente (props, parâmetros ou atributos) é **tipada ou documentada**; tipo genérico solto (`any` ou equivalente) é proibido sem justificativa documentada
|
|
23
|
+
- Entradas obrigatórias são declaradas como obrigatórias; opcionais têm valor default explícito
|
|
21
24
|
- Componentes com mais de uma responsabilidade devem ser divididos (Single Responsibility)
|
|
22
|
-
- Lógica de negócio não pertence ao componente de UI — usar
|
|
25
|
+
- Lógica de negócio não pertence ao componente de UI — usar a camada de lógica ou de serviço que o projeto adota
|
|
23
26
|
|
|
24
27
|
### Nomenclatura
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- Arquivos de componente: `PascalCase.tsx` (`UserCard.tsx`)
|
|
28
|
-
- Arquivos de hook: `camelCase.ts` (`useUserData.ts`)
|
|
28
|
+
- Seguir a convenção de nomes **do projeto** (e da especialização registrada) para componentes, funções de lógica reutilizável e arquivos
|
|
29
|
+
- Manter o padrão consistente: um mesmo tipo de arquivo, um mesmo estilo de nome
|
|
29
30
|
|
|
30
31
|
### Checklist mínimo por componente
|
|
31
|
-
- [ ]
|
|
32
|
+
- [ ] Entradas tipadas ou documentadas
|
|
32
33
|
- [ ] Estados visuais: normal, hover, focus, disabled, loading, erro, vazio
|
|
33
|
-
- [ ] Semântica HTML correta (não usar
|
|
34
|
-
- [ ] Responsivo (mobile-first
|
|
35
|
-
- [ ] Testável sem
|
|
34
|
+
- [ ] Semântica HTML correta (não usar um contêiner genérico para botões, links ou listas)
|
|
35
|
+
- [ ] Responsivo (mobile-first, nos tamanhos de tela do projeto)
|
|
36
|
+
- [ ] Testável sem depender de um navegador real (lógica isolada da apresentação)
|
|
36
37
|
|
|
37
38
|
---
|
|
38
39
|
|
|
39
|
-
## 2.
|
|
40
|
+
## 2. Tipagem e contratos
|
|
41
|
+
|
|
42
|
+
Aplica-se quando a linguagem do projeto tem tipagem estática ou contratos explícitos.
|
|
40
43
|
|
|
41
|
-
-
|
|
42
|
-
- Proibido:
|
|
43
|
-
-
|
|
44
|
-
- Exportar
|
|
44
|
+
- O **modo estrito** de verificação do projeto fica ligado e não é relaxado
|
|
45
|
+
- Proibido: tipo genérico solto, supressão de verificação de tipos sem comentário explicativo e asserção de "não nulo" sem verificação prévia
|
|
46
|
+
- Modelar objetos de domínio de forma explícita e unir ou derivar tipos com os recursos da linguagem
|
|
47
|
+
- Exportar o contrato público dos componentes, quando a linguagem permite
|
|
45
48
|
|
|
46
49
|
---
|
|
47
50
|
|
|
@@ -49,12 +52,12 @@ version: "1.0"
|
|
|
49
52
|
|
|
50
53
|
- Semântica HTML nativa antes de ARIA (`<button>`, `<nav>`, `<main>`, `<article>`)
|
|
51
54
|
- Todos os elementos interativos são navegáveis por teclado
|
|
52
|
-
- Contraste mínimo: 4.5:1 para texto normal, 3:1 para texto grande e elementos
|
|
53
|
-
- Imagens informativas têm
|
|
54
|
-
- Modais usam `role="dialog"`, `aria-modal="true"`, `aria-labelledby` e
|
|
55
|
-
- Formulários: todo
|
|
55
|
+
- Contraste mínimo: 4.5:1 para texto normal, 3:1 para texto grande e elementos de interface
|
|
56
|
+
- Imagens informativas têm texto alternativo descritivo; decorativas têm texto alternativo vazio
|
|
57
|
+
- Modais usam `role="dialog"`, `aria-modal="true"`, `aria-labelledby` e prendem o foco
|
|
58
|
+
- Formulários: todo campo tem rótulo associado
|
|
56
59
|
- Erros de formulário: exibidos com `role="alert"` ou `aria-live="polite"`
|
|
57
|
-
-
|
|
60
|
+
- Leitor de tela: testar com VoiceOver (Mac) ou NVDA (Windows) em features críticas
|
|
58
61
|
|
|
59
62
|
---
|
|
60
63
|
|
|
@@ -66,59 +69,56 @@ version: "1.0"
|
|
|
66
69
|
- INP (Interaction to Next Paint): < 200ms
|
|
67
70
|
|
|
68
71
|
### Práticas obrigatórias
|
|
69
|
-
- Imagens sempre com
|
|
70
|
-
-
|
|
71
|
-
- Dependências novas: avaliar impacto no
|
|
72
|
-
-
|
|
73
|
-
-
|
|
72
|
+
- Imagens sempre com largura e altura definidas, para evitar CLS
|
|
73
|
+
- Carregamento tardio de componentes pesados, com o recurso que a stack oferece, e um substituto visual com o mesmo tamanho enquanto carrega
|
|
74
|
+
- Dependências novas: avaliar o impacto no tamanho do pacote final antes de instalar
|
|
75
|
+
- Busca de dados pela camada que o projeto adota para isso (conforme a especialização), e não por efeitos soltos no componente de apresentação
|
|
76
|
+
- Otimização de renderização apenas quando necessária e **comprovada com medição** (não otimização prematura)
|
|
74
77
|
|
|
75
78
|
---
|
|
76
79
|
|
|
77
80
|
## 5. Testes
|
|
78
81
|
|
|
79
|
-
- **
|
|
80
|
-
- **Proibido
|
|
81
|
-
- **Cobertura mínima
|
|
82
|
-
- **
|
|
83
|
-
- **
|
|
84
|
-
-
|
|
82
|
+
- **Consultas por acessibilidade primeiro** (por papel e por rótulo): focar no que o usuário vê e faz, não em detalhes de implementação
|
|
83
|
+
- **Proibido** usar identificador de teste como primeira opção (só quando não houver alternativa acessível)
|
|
84
|
+
- **Cobertura mínima:** fluxos críticos de usuário (caminho feliz e estado de erro)
|
|
85
|
+
- **Testes unitários** para lógica pura e utilitários, com a ferramenta que o projeto já usa
|
|
86
|
+
- **Testes de ponta a ponta** para fluxos completos de usuário (login, checkout etc.), com a ferramenta que o projeto já usa
|
|
87
|
+
- Substitutos de módulos externos ficam num lugar previsível do projeto (por exemplo, uma pasta de mocks)
|
|
85
88
|
|
|
86
89
|
### Ferramentas disponíveis no framework
|
|
87
90
|
|
|
88
|
-
- **TestSprite** (`/eng-qa-testsprite`): se
|
|
89
|
-
e execução de testes de componente e E2E — ele gera planos de teste e código automaticamente.
|
|
91
|
+
- **TestSprite** (`/eng-qa-testsprite`): se estiver instalado no projeto, usá-lo para gerar e executar testes de componente e de ponta a ponta — ele gera planos de teste e código automaticamente.
|
|
90
92
|
Verificar: `ls node_modules/@testsprite 2>/dev/null || cat package.json | grep testsprite`
|
|
91
|
-
|
|
92
|
-
- **Stagehand** (`/eng-scraper-robot-builder`, `/eng-qa-e2e`): para testes E2E em linguagem natural
|
|
93
|
-
ou automação de fluxos de usuário complexos, o Stagehand permite descrever o fluxo em português
|
|
94
|
-
e gera os steps Playwright automaticamente.
|
|
93
|
+
- **Stagehand** (`/eng-scraper-robot-builder`, `/eng-qa-e2e`): para testes de ponta a ponta em linguagem natural ou automação de fluxos complexos, descrevendo o fluxo em português.
|
|
95
94
|
Verificar: `cat package.json | grep stagehand`
|
|
96
95
|
|
|
97
|
-
> Quando qualquer dessas ferramentas estiver disponível no projeto, **preferir sobre a implementação
|
|
98
|
-
> manual** — reduz custo de manutenção e aumenta cobertura mais rapidamente.
|
|
96
|
+
> Quando qualquer dessas ferramentas estiver disponível no projeto, **preferir sobre a implementação manual** — reduz o custo de manutenção e aumenta a cobertura mais rápido.
|
|
99
97
|
|
|
100
98
|
---
|
|
101
99
|
|
|
102
|
-
## 6.
|
|
100
|
+
## 6. Arquiteturas distribuídas (se o projeto divide o frontend em partes)
|
|
101
|
+
|
|
102
|
+
Aplica-se somente se o projeto divide o frontend em partes carregadas separadamente (por exemplo, uma aplicação principal que carrega módulos independentes). O detalhe da arquitetura em uso vem da especialização registrada. Princípios que valem em qualquer variante:
|
|
103
103
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
- Nenhum
|
|
107
|
-
-
|
|
108
|
-
- Cada
|
|
109
|
-
- Testes de integração entre
|
|
110
|
-
-
|
|
104
|
+
- Cada módulo é **versionado e publicado** com uma alternativa definida quando não carrega
|
|
105
|
+
- Os contratos de interface entre a aplicação principal e os módulos são declarados de forma explícita e compartilhada
|
|
106
|
+
- Nenhum módulo depende diretamente de outro: a comunicação passa pela aplicação principal ou por um barramento de eventos
|
|
107
|
+
- Dependências compartilhadas são declaradas explicitamente, para não serem carregadas em duplicidade
|
|
108
|
+
- Cada módulo deve funcionar de forma isolada, para desenvolvimento local
|
|
109
|
+
- Testes de integração entre a aplicação principal e cada módulo são obrigatórios em cada ponto de montagem
|
|
110
|
+
- Mudança que quebra o contrato de um módulo exige aumento de versão **major**
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
114
|
-
## 7.
|
|
114
|
+
## 7. Tokens de design e componentes compartilhados
|
|
115
115
|
|
|
116
|
-
- Cores, tipografia, espaçamentos e
|
|
117
|
-
- Proibido
|
|
118
|
-
- Novos componentes de
|
|
119
|
-
- Variantes de componente
|
|
120
|
-
- Componentes públicos
|
|
121
|
-
- Alterações na
|
|
116
|
+
- Cores, tipografia, espaçamentos e tamanhos de tela vêm **exclusivamente** dos tokens de design do projeto (quando o projeto tem)
|
|
117
|
+
- Proibido fixar valores de cor, fonte ou espaçamento fora dos tokens
|
|
118
|
+
- Novos componentes reutilizáveis nascem na biblioteca de componentes compartilhados do projeto (se existir) antes de serem usados nos módulos
|
|
119
|
+
- Variantes de componente seguem o padrão que o projeto já usa
|
|
120
|
+
- Componentes públicos da biblioteca compartilhada têm documentação visual antes de serem liberados, quando o projeto usa um catálogo de componentes
|
|
121
|
+
- Alterações na interface pública de um componente seguem o versionamento semântico
|
|
122
122
|
|
|
123
123
|
---
|
|
124
124
|
|
|
@@ -126,22 +126,23 @@ version: "1.0"
|
|
|
126
126
|
|
|
127
127
|
Ao revisar PR de frontend, verificar:
|
|
128
128
|
|
|
129
|
-
- [ ]
|
|
129
|
+
- [ ] Tipagem sem tipo genérico solto nem supressões injustificadas (quando a linguagem tem tipagem)
|
|
130
130
|
- [ ] Nenhuma lógica de negócio em componente de UI
|
|
131
131
|
- [ ] Acessibilidade: semântica HTML, ARIA correto, navegação por teclado
|
|
132
|
-
- [ ] Performance: sem
|
|
133
|
-
- [ ] Tokens
|
|
134
|
-
- [ ] Testes cobrem
|
|
135
|
-
- [ ] Responsividade verificada em
|
|
136
|
-
- [ ] Se
|
|
132
|
+
- [ ] Performance: sem renderizações desnecessárias comprovadas, carregamento tardio aplicado quando cabível
|
|
133
|
+
- [ ] Tokens de design do projeto usados (sem valores fixos)
|
|
134
|
+
- [ ] Testes cobrem o caminho feliz e o estado de erro
|
|
135
|
+
- [ ] Responsividade verificada em celular e desktop
|
|
136
|
+
- [ ] Se arquitetura distribuída: contrato de interface atualizado e módulo funciona de forma isolada
|
|
137
|
+
- [ ] Itens exigidos pelas especializações registradas atendidos
|
|
137
138
|
|
|
138
139
|
---
|
|
139
140
|
|
|
140
141
|
## 9. Proibições Absolutas
|
|
141
142
|
|
|
142
|
-
-
|
|
143
|
+
- Manipulação direta do DOM fora do mecanismo que o framework do projeto prevê para isso
|
|
143
144
|
- `!important` em CSS sem comentário explicativo
|
|
144
|
-
-
|
|
145
|
-
- Importar de outro
|
|
146
|
-
-
|
|
147
|
-
- `console.log` em código commitado (usar logger estruturado ou remover)
|
|
145
|
+
- Busca de dados direto no componente de apresentação (usar a camada que o projeto adota)
|
|
146
|
+
- Importar diretamente de outro módulo de uma arquitetura distribuída (rompe o isolamento)
|
|
147
|
+
- Fixar tokens de design (cores, espaçamentos, fontes) fora do sistema de tokens
|
|
148
|
+
- Log de depuração (`console.log` ou equivalente) em código commitado (usar logger estruturado ou remover)
|
|
@@ -7,9 +7,9 @@ trigger: always_on
|
|
|
7
7
|
## Principais Regras
|
|
8
8
|
- O idioma padrão é o português do Brasil. Mas mude caso o usuário solicite outro idioma.
|
|
9
9
|
- Leia o `./$IDE/ENV.md` para entender as variáveis de ambiente do framework. Ele é importante para você saber caminhos de pastas e outras informações sobre projeto e usuário.
|
|
10
|
-
- Se não existir, use o skill `init
|
|
10
|
+
- Se não existir, use o skill `jarvis-init` para criar o `ENV.md`.
|
|
11
11
|
- Procure `CLAUDE.md` ou `AGENTS.md` para entender informações sobre o contexto e objetivo do projeto.
|
|
12
|
-
- Se não existirem, use o skill `init
|
|
12
|
+
- Se não existirem, use o skill `jarvis-init` para criar o `AGENTS.md` e após essa criação, copie o conteúdo do `AGENTS.md` para o `CLAUDE.md` (se não existir o CLAUDE.md, crie-o).
|
|
13
13
|
- Nunca invente ou presuma dados ou informações. Se não souber, pergunte, valide e confirme com o usuário.
|
|
14
14
|
- Entenda se o projeto é novo ou existente, para criar ou modificar especificações de produto ou técnicas.
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ trigger: always_on
|
|
|
18
18
|
IMPORTANTE: Para que você funcione como o previsto e tenha todas as informações necessárias, é importante que você leia e interprete o arquivo `./$IDE/ENV.md`. Esse é o arquivo que guardamos variáveis de informações importantes sobre o projeto, o usuário e estruturas de pastas e arquivos que você precisará para operar corretamente.
|
|
19
19
|
|
|
20
20
|
- **Sempre no início de novas sessões ou interações, ANTES de executar qualquer comando ou workflow**, o agente **DEVE verificar** se o arquivo `$IDE/ENV.md` existe e está preenchido corretamente.
|
|
21
|
-
- **Exceção**: O comando `/init
|
|
21
|
+
- **Exceção**: O comando `/jarvis-init` é o único que pode ser executado sem o `ENV.md`, pois é ele que cria o arquivo.
|
|
22
22
|
- **Validação obrigatória**: O arquivo deve conter as seguintes variáveis preenchidas (não vazias):
|
|
23
23
|
- `RULES_FOLDER`
|
|
24
24
|
- `PROD_FOLDER_NAME`
|
|
@@ -30,7 +30,7 @@ IMPORTANTE: Para que você funcione como o previsto e tenha todas as informaçõ
|
|
|
30
30
|
- **Se o ENV.md não existir ou estiver incompleto**, o agente deve:
|
|
31
31
|
1. Interromper a execução do comando solicitado
|
|
32
32
|
2. Informar ao usuário que não podemos avançar sem o ENV.md. Mensagem abaixo.
|
|
33
|
-
3. Após confirmação, executar via Skill tool o `init
|
|
33
|
+
3. Após confirmação, executar via Skill tool o `jarvis-init`. No caso de negativa, o agente poderá avançar apenas para criar especificações de produto. E sempre que precisar salvar arquivos das especificações, deverá confirmar com o usuário.
|
|
34
34
|
```
|
|
35
35
|
⚠️ O framework não foi inicializado.
|
|
36
36
|
|
package/skills/AGENTS.md
CHANGED
|
@@ -14,44 +14,75 @@ A pasta `skills/` contem **playbooks executaveis** que sao a fonte de verdade op
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
skills/
|
|
17
|
-
├── eng-arch-c4/ # Diagramas C4
|
|
17
|
+
├── eng-backend-arch-c4/ # Diagramas C4
|
|
18
18
|
│ ├── SKILL.md
|
|
19
19
|
│ └── assets/
|
|
20
|
-
├── eng-docs-write/ # Escrita de documentacao
|
|
20
|
+
├── eng-global-docs-write/ # Escrita de documentacao
|
|
21
21
|
│ └── SKILL.md
|
|
22
|
-
├── eng-pr/ # Criacao de Pull/Merge Requests (GitLab/GitHub/Bitbucket)
|
|
22
|
+
├── eng-global-pr/ # Criacao de Pull/Merge Requests (GitLab/GitHub/Bitbucket)
|
|
23
23
|
│ └── SKILL.md
|
|
24
|
-
├── eng-task-comment/ # Comentário no card (Jira/Linear/GitHub Issues/Asana)
|
|
24
|
+
├── eng-global-task-comment/ # Comentário no card (Jira/Linear/GitHub Issues/Asana)
|
|
25
25
|
│ └── SKILL.md
|
|
26
|
-
├── eng-jira-comment/ # Alias → eng-task-comment
|
|
26
|
+
├── eng-global-jira-comment/ # Alias → eng-global-task-comment
|
|
27
27
|
│ └── SKILL.md
|
|
28
|
-
├──
|
|
28
|
+
├── jarvis-list-specializations/ # Lista especializações de stack instaladas e registradas
|
|
29
29
|
│ └── SKILL.md
|
|
30
|
-
├──
|
|
30
|
+
├── jarvis-create-specialization/ # Cria uma especialização de stack (backend/frontend) a partir do código do projeto e a registra na lista
|
|
31
|
+
│ ├── SKILL.md
|
|
32
|
+
│ └── assets/
|
|
33
|
+
├── eng-backend/ # Base neutra de backend (APIs, auth, workers, dados); especializações por stack se somam a ele
|
|
31
34
|
│ └── SKILL.md
|
|
32
|
-
├── eng-
|
|
35
|
+
├── eng-frontend/ # Base neutra de frontend (componentes, estado, performance UI, acessibilidade); especializações se somam a ele
|
|
33
36
|
│ └── SKILL.md
|
|
34
|
-
├── eng-
|
|
37
|
+
├── eng-frontend-microfrontend/ # Module Federation, shell/remote, contratos de interface, event bus
|
|
35
38
|
│ └── SKILL.md
|
|
36
|
-
├── eng-
|
|
39
|
+
├── eng-frontend-design-system/ # Tokens semânticos, CVA, Storybook, versionamento, auditoria visual
|
|
37
40
|
│ └── SKILL.md
|
|
38
|
-
├── eng-
|
|
41
|
+
├── eng-backend-nestjs/ # Framework NestJS: módulos, DI, guards, interceptors, pipes, Passport/JWT
|
|
39
42
|
│ └── SKILL.md
|
|
40
|
-
├── eng-
|
|
43
|
+
├── eng-backend-rabbitmq/ # Mensageria RabbitMQ (HTTP API, codigo, arquitetura, troubleshooting)
|
|
41
44
|
│ └── SKILL.md
|
|
42
|
-
├──
|
|
45
|
+
├── eng-security-cybersecurity/ # Segurança de aplicações: OWASP Top 10, secrets, supply chain, headers, SAST, compliance
|
|
43
46
|
│ └── SKILL.md
|
|
44
|
-
├── eng-
|
|
47
|
+
├── eng-backend-microservices-trace/ # Rastreamento de bugs entre serviços (HTTP + AMQP); especialização de backend
|
|
45
48
|
│ └── SKILL.md
|
|
46
|
-
├── eng-
|
|
49
|
+
├── eng-security-threat-model/ # Threat model estruturado do projeto (bootstrap/entrevista)
|
|
50
|
+
│ └── SKILL.md
|
|
51
|
+
├── eng-security-triage/ # Deduplicar, verificar e rankear achados de segurança
|
|
52
|
+
│ └── SKILL.md
|
|
53
|
+
├── eng-security-patch/ # Diffs candidatos para achados de segurança confirmados
|
|
54
|
+
│ └── SKILL.md
|
|
55
|
+
├── eng-devops-performance-engineer/ # Performance: baseline, SLIs/SLOs, load tests
|
|
56
|
+
│ └── SKILL.md
|
|
57
|
+
├── eng-ai-engineer/ # Features com LLM, RAG, agentes, embeddings
|
|
58
|
+
│ └── SKILL.md
|
|
59
|
+
├── eng-global-browser-extension-builder/ # Extensões de navegador (Manifest V3)
|
|
60
|
+
│ └── SKILL.md
|
|
61
|
+
├── eng-data-engineer/ # Pipelines ETL/ELT, camadas bronze/silver/gold, contratos de dados
|
|
62
|
+
│ └── SKILL.md
|
|
63
|
+
├── eng-data-bi/ # Dashboards BI e queries analíticas
|
|
64
|
+
│ └── SKILL.md
|
|
65
|
+
├── eng-data-debug/ # Diagnóstico de falhas em pipelines por camada
|
|
66
|
+
│ └── SKILL.md
|
|
67
|
+
├── eng-data-onboard/ # Onboarding de fonte nova de dados
|
|
68
|
+
│ └── SKILL.md
|
|
69
|
+
├── eng-data-orchestrator/ # DAGs, retries e alertas de orquestração
|
|
47
70
|
│ └── SKILL.md
|
|
48
|
-
├── eng-
|
|
71
|
+
├── eng-qa-bug-report/ # Bug reports de QA
|
|
49
72
|
│ └── SKILL.md
|
|
50
|
-
├──
|
|
73
|
+
├── product-specs/ # Porta de entrada de especificação de produto
|
|
51
74
|
│ └── SKILL.md
|
|
52
|
-
├──
|
|
75
|
+
├── product-specs-update/ # Sincroniza especificações de produto
|
|
53
76
|
│ └── SKILL.md
|
|
54
|
-
├──
|
|
77
|
+
├── product-roadmap-report/ # Relatório de status do roadmap
|
|
78
|
+
│ └── SKILL.md
|
|
79
|
+
├── eng-scraper/ # Web scraping com Puppeteer, Cheerio, anti-bot, pipelines ETL
|
|
80
|
+
│ └── SKILL.md
|
|
81
|
+
├── eng-scraper-robot-builder/ # Converte fluxo manual (linguagem natural) em robô Playwright via Stagehand
|
|
82
|
+
│ └── SKILL.md
|
|
83
|
+
├── jarvis-docs-index/ # Indexacao de documentos
|
|
84
|
+
│ └── SKILL.md
|
|
85
|
+
├── jarvis-init/ # Inicializacao do framework (/jarvis-init), com o passo opcional de adicionar as stacks
|
|
55
86
|
│ ├── SKILL.md
|
|
56
87
|
│ └── assets/
|
|
57
88
|
├── eng-qa-gate/ # Quality gate validation
|
|
@@ -81,11 +112,11 @@ skills/
|
|
|
81
112
|
│ └── SKILL.md
|
|
82
113
|
├── eng-qa-unit-test/ # Testes unitarios
|
|
83
114
|
│ └── SKILL.md
|
|
84
|
-
├── report-issue/ # Reportar bug no próprio Jarvis (JARVIS_PROJECT)
|
|
115
|
+
├── jarvis-report-issue/ # Reportar bug no próprio Jarvis (JARVIS_PROJECT)
|
|
85
116
|
│ └── SKILL.md
|
|
86
|
-
├── context-detect/ # Detecta contexto do projeto/tarefa
|
|
117
|
+
├── jarvis-context-detect/ # Detecta contexto do projeto/tarefa
|
|
87
118
|
│ └── SKILL.md
|
|
88
|
-
└── docs-central/ # Sync/publish docs no central-docs (GitLab/GitHub/Bitbucket)
|
|
119
|
+
└── jarvis-docs-central/ # Sync/publish docs no central-docs (GitLab/GitHub/Bitbucket)
|
|
89
120
|
└── SKILL.md
|
|
90
121
|
```
|
|
91
122
|
|
|
@@ -127,19 +158,52 @@ license: AGPL-3.0
|
|
|
127
158
|
metadata:
|
|
128
159
|
author: jarvis-team
|
|
129
160
|
version: "1.0"
|
|
161
|
+
area: backend # obrigatório: área do skill (ver "Áreas e nomes")
|
|
162
|
+
stack: golang # só em especializações de backend/frontend
|
|
130
163
|
---
|
|
131
164
|
```
|
|
132
165
|
|
|
166
|
+
> **`metadata.area` é obrigatório.** Um skill instalado sem área reconhecida faz os comandos `eng.*` serem bloqueados (ver `rules/engineering/eng.skills-rules.md`).
|
|
167
|
+
|
|
133
168
|
---
|
|
134
169
|
|
|
135
|
-
##
|
|
170
|
+
## Áreas e nomes
|
|
171
|
+
|
|
172
|
+
### Áreas reconhecidas (`metadata.area`)
|
|
173
|
+
|
|
174
|
+
| Área | O que cobre |
|
|
175
|
+
|------|-------------|
|
|
176
|
+
| `backend` | APIs, autenticação, workers, mensageria, banco de dados |
|
|
177
|
+
| `frontend` | Componentes, estado, estilos, performance de UI, acessibilidade |
|
|
178
|
+
| `qa` | Testes, quality gates, relatórios de qualidade |
|
|
179
|
+
| `data` | Pipelines, qualidade e contratos de dados |
|
|
180
|
+
| `ai` | Features com modelos de IA |
|
|
181
|
+
| `security` | Segurança de aplicações |
|
|
182
|
+
| `scraper` | Scraping e automação de robôs |
|
|
183
|
+
| `devops` | Performance, infraestrutura, entrega |
|
|
184
|
+
| `global` | Skills transversais de engenharia e do próprio framework |
|
|
185
|
+
| `product` | Especificação de produto |
|
|
186
|
+
|
|
187
|
+
Skill sem `metadata.area`, ou com área fora desta lista, é tratado como **sem área** (`unknown`) e bloqueia os comandos `eng.*`.
|
|
188
|
+
|
|
189
|
+
### Nome do skill
|
|
190
|
+
|
|
191
|
+
O nome tem a forma `<prefixo>-<área>-<nome>`; **só os dois primeiros segmentos importam** para a regra, o resto é livre.
|
|
192
|
+
|
|
193
|
+
| Tipo | Padrão | Exemplos |
|
|
194
|
+
|------|--------|----------|
|
|
195
|
+
| Engenharia por área | `eng-<área>-<nome>` | `eng-qa-gate`, `eng-data-engineer`, `eng-security-cybersecurity` |
|
|
196
|
+
| Skill base de backend/frontend | `eng-backend`, `eng-frontend` | — |
|
|
197
|
+
| Especialização de stack | `eng-<backend\|frontend>-<stack>` | `eng-backend-nestjs`, `eng-frontend-design-system` |
|
|
198
|
+
| Engenharia global | `eng-global-<nome>` | `eng-global-pr`, `eng-global-docs-write` |
|
|
199
|
+
| Produto | `product-<nome>` | `product-specs`, `product-specs-update` |
|
|
200
|
+
| Transversal do framework | `jarvis-<nome>` (`area: global`) | `jarvis-init`, `jarvis-docs-central` |
|
|
201
|
+
|
|
202
|
+
### Skill base, especialização e `stack`
|
|
136
203
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
| Produto | `prod-` | `prod-prd`, `prod-frd`, `prod-epic` |
|
|
141
|
-
| QA | `qa-` | `eng-qa-gate`, `eng-qa-test-plan`, `eng-qa-unit-test` |
|
|
142
|
-
| Geral / utilitário | _(sem prefixo)_ | `skill-creator`, `docs-index`, `init-jarvis` |
|
|
204
|
+
- **Base:** `area: backend` ou `frontend`, **sem** `stack`. É sempre carregado pela regra `eng.specializations-rules.md`.
|
|
205
|
+
- **Especialização:** `area: backend` ou `frontend`, **com** `metadata.stack` (o sufixo do nome). Só é carregada quando o projeto a registra em `BACKEND_SPECIALIZATIONS` ou `FRONTEND_SPECIALIZATIONS` no `ENV.md`.
|
|
206
|
+
- Demais áreas não têm lista e não usam `stack`.
|
|
143
207
|
|
|
144
208
|
---
|
|
145
209
|
|
|
@@ -195,33 +259,32 @@ Skills são invocados de formas diferentes dependendo da IDE:
|
|
|
195
259
|
|
|
196
260
|
| Comando / Trigger | Skill |
|
|
197
261
|
|-------------------|-------|
|
|
198
|
-
| `/init
|
|
199
|
-
| `/eng.docs` | `eng-docs-write`, `docs-index` |
|
|
262
|
+
| `/jarvis-init` | `jarvis-init` |
|
|
263
|
+
| `/eng.docs` | `eng-global-docs-write`, `jarvis-docs-index` |
|
|
200
264
|
| `/eng.pre-pr` | `eng-qa-test-plan` |
|
|
201
|
-
| `/eng.pr` | `eng-pr` |
|
|
265
|
+
| `/eng.pr` | `eng-global-pr` |
|
|
202
266
|
| QA validation | `eng-qa-gate` |
|
|
203
267
|
| Criar skill | `skill-creator` |
|
|
204
268
|
| `/taxonomy-manager` | `taxonomy-manager` |
|
|
269
|
+
| Listar especializações de stack (instaladas e registradas) | `jarvis-list-specializations` |
|
|
270
|
+
| Criar uma especialização de stack (backend ou frontend) a partir do código do projeto | `jarvis-create-specialization` |
|
|
205
271
|
| `/members-manager` | `members-manager` |
|
|
206
|
-
| Mensageria, filas, RabbitMQ, events, consumers, producers | `eng-rabbitmq` |
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
|
|
|
210
|
-
|
|
|
211
|
-
|
|
|
212
|
-
| Módulos NestJS, DI, guards, interceptors, pipes, Passport/JWT | `eng-nestjs` |
|
|
272
|
+
| Mensageria, filas, RabbitMQ, events, consumers, producers | `eng-backend-rabbitmq` (especialização de backend: registrar em `BACKEND_SPECIALIZATIONS`) |
|
|
273
|
+
| APIs, auth, workers, filas, caching, banco de dados | `eng-backend` (base) + `BACKEND_SPECIALIZATIONS` |
|
|
274
|
+
| Componentes, UI, estado, estilos, performance, acessibilidade | `eng-frontend` (base) + `FRONTEND_SPECIALIZATIONS` |
|
|
275
|
+
| Micro frontend, Module Federation, shell/remote, contratos de interface | `eng-frontend-microfrontend` (especialização de frontend) |
|
|
276
|
+
| Design system, tokens, CVA, Storybook, versionamento de componentes | `eng-frontend-design-system` (especialização de frontend) |
|
|
277
|
+
| Módulos NestJS, DI, guards, interceptors, pipes, Passport/JWT | `eng-backend-nestjs` (especialização de backend) |
|
|
213
278
|
| Web scraping, Puppeteer, extração de dados, parsing, ETL | `eng-scraper` |
|
|
214
279
|
| Criar robô RPA novo ou manter existente (new|update + card) | `eng.rpa.robot` (workflow) |
|
|
215
|
-
| Atendimento técnico, triagem de chamados, diagnóstico, classificação de bugs, escalonamento | `eng-tech-analyst` |
|
|
216
280
|
| Gerar specs Cypress + TypeScript para fluxos de usuário | `eng-qa-cypress-e2e` |
|
|
217
281
|
| Sessão de teste exploratório estruturada (charter, risco, achados, bug cards) | `eng-qa-exploratory` |
|
|
218
282
|
| Orientar dev sobre cobertura Cypress sem escrever o teste | `eng-qa-dev-guide` |
|
|
219
283
|
| Consolidar sessões exploratórias, bugs e quality gates e gerar relatório de qualidade por sprint/release | `eng-qa-quality-report` |
|
|
220
|
-
| Análise de churn SaaS: coleta Slack, classificação por squad via taxonomy, relatório narrativo | `churn-audit` |
|
|
221
284
|
| Testes de acessibilidade WCAG 2.1 AA: integra jest-axe em testes unitários existentes | `eng-qa-a11y-audit` |
|
|
222
285
|
| Testes de contrato GraphQL: valida queries frontend contra schema do BFF | `eng-qa-graphql-contract` |
|
|
223
286
|
| Spec E2E para handoff: cenários priorizados, Page Objects, fixtures, intercepts, setup | `eng-qa-e2e-spec-writer` |
|
|
224
|
-
| Segurança de aplicações: OWASP Top 10, secrets, sanitização, headers, supply chain, compliance | `eng-cybersecurity` |
|
|
287
|
+
| Segurança de aplicações: OWASP Top 10, secrets, sanitização, headers, supply chain, compliance | `eng-security-cybersecurity` |
|
|
225
288
|
|
|
226
289
|
---
|
|
227
290
|
|
|
@@ -235,10 +298,11 @@ Use o skill-creator:
|
|
|
235
298
|
|
|
236
299
|
Ou manualmente:
|
|
237
300
|
|
|
238
|
-
1.
|
|
239
|
-
2.
|
|
240
|
-
3.
|
|
241
|
-
4.
|
|
301
|
+
1. Escolher a **área** e o nome no padrão `<prefixo>-<área>-<nome>` (ver "Áreas e nomes")
|
|
302
|
+
2. Criar pasta: `skills/{nome}/`
|
|
303
|
+
3. Copiar template: `skills/skill-creator/assets/SKILL-template.md`
|
|
304
|
+
4. Preencher todos os placeholders, **inclusive `metadata.area`** (e `metadata.stack` se for especialização)
|
|
305
|
+
5. Validar estrutura: `name` igual ao nome da pasta e área reconhecida
|
|
242
306
|
|
|
243
307
|
---
|
|
244
308
|
|
|
@@ -246,7 +310,7 @@ Ou manualmente:
|
|
|
246
310
|
|
|
247
311
|
### Nunca
|
|
248
312
|
|
|
249
|
-
- Criar skill sem frontmatter completo
|
|
313
|
+
- Criar skill sem frontmatter completo ou sem `metadata.area`
|
|
250
314
|
- Duplicar skill existente
|
|
251
315
|
- Colocar detalhes de persona (isso vai no agent)
|
|
252
316
|
- Usar URLs web em references (use caminhos locais)
|