jarvis-ai-framework 1.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 +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- package/workflows/warm-up.md +574 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
6
|
+
|
|
7
|
+
# Regras do Workflow Work
|
|
8
|
+
|
|
9
|
+
## Propósito
|
|
10
|
+
|
|
11
|
+
O workflow `work` tem como **único objetivo** implementar código seguindo o plano de execução (`plan.md`). É uma etapa de **codificação pura**, sem commits ou PRs.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ⛔ Gate 0: Pré-requisitos Obrigatórios
|
|
16
|
+
|
|
17
|
+
> Esta regra é executada **antes de qualquer ação**. Se qualquer condição falhar, o workflow para imediatamente.
|
|
18
|
+
|
|
19
|
+
### Regra 0.1 — TASK_MANAGER_KEY obrigatório
|
|
20
|
+
|
|
21
|
+
Ler `TASK_MANAGER` do ENV.md. Ver `eng.integrations-rules.md` (freelance vs board).
|
|
22
|
+
|
|
23
|
+
Se `$ARGUMENTS` não trouxer o key: **perguntar e aguardar**. Não inventar. Não exigir `XXX-000`.
|
|
24
|
+
|
|
25
|
+
- Freelance (`TASK_MANAGER` vazio): *Qual o seu número de controle para esta tarefa?*
|
|
26
|
+
- Com board: *Qual o id do card no {TASK_MANAGER}?*
|
|
27
|
+
|
|
28
|
+
Sem resposta → **PARAR**. Com resposta → seguir (pasta/branch em lowercase).
|
|
29
|
+
|
|
30
|
+
### Regra 0.2 — Proibido executar em branch protegida
|
|
31
|
+
|
|
32
|
+
Verificar branch atual:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git branch --show-current
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Se for `main`, `master`, `develop`, `staging` ou `homolog`:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
🚫 BLOQUEADO: Você está em uma branch protegida ({BRANCH_ATUAL}).
|
|
42
|
+
|
|
43
|
+
Este workflow só pode ser executado em uma branch de feature.
|
|
44
|
+
Execute /eng.start {TASK_MANAGER_KEY} primeiro para criar a branch correta.
|
|
45
|
+
|
|
46
|
+
Branch esperada: {TASK_MANAGER_KEY}-{titulo-kebab-case}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**→ PARAR. Não executar nenhuma fase.**
|
|
50
|
+
|
|
51
|
+
### Regra 0.3 — Branch deve corresponder ao TASK_MANAGER_KEY
|
|
52
|
+
|
|
53
|
+
Se a branch atual **não contém** o `{TASK_MANAGER_KEY}` no nome:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
⚠️ ATENÇÃO: A branch atual ({BRANCH_ATUAL}) não corresponde à tarefa {TASK_MANAGER_KEY}.
|
|
57
|
+
|
|
58
|
+
Branch atual: {BRANCH_ATUAL}
|
|
59
|
+
Esperado: branch contendo {TASK_MANAGER_KEY}
|
|
60
|
+
|
|
61
|
+
Confirmar que está na branch certa? (s/n)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**→ Aguardar confirmação explícita antes de prosseguir.**
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Princípios Fundamentais
|
|
69
|
+
|
|
70
|
+
### 1. Somente Codificação - NUNCA Commits ou PRs
|
|
71
|
+
|
|
72
|
+
O `work` é **estritamente proibido** de:
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
| ❌ Proibido | ✅ Permitido |
|
|
76
|
+
| ------------------------------------------- | ----------------------------------- |
|
|
77
|
+
| Fazer commits | Escrever código |
|
|
78
|
+
| Criar Pull Requests | Criar/modificar arquivos de código |
|
|
79
|
+
| Executar`git add`, `git commit`, `git push` | Ler arquivos da sessão |
|
|
80
|
+
| Mover cards no Jira | Executar testes locais |
|
|
81
|
+
| Fazer merge de branches | Atualizar`plan.md` com progresso |
|
|
82
|
+
| Sugerir "vamos fazer o PR agora" | Validar código com o usuário |
|
|
83
|
+
|
|
84
|
+
### 2. Escopo de Atuação
|
|
85
|
+
|
|
86
|
+
O `work` atua **exclusivamente** em:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
|
|
90
|
+
├── architecture.md → LEITURA (referência)
|
|
91
|
+
└── plan.md → LEITURA + ESCRITA (progresso)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
E no **código do projeto** conforme definido no `plan.md`.
|
|
95
|
+
|
|
96
|
+
### 3. Ciclo de Trabalho
|
|
97
|
+
|
|
98
|
+
O workflow segue um ciclo rígido:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
102
|
+
│ │
|
|
103
|
+
│ 1. LER plan.md → Identificar fase em progresso │
|
|
104
|
+
│ ↓ │
|
|
105
|
+
│ 2. APRESENTAR → Plano de abordagem da fase │
|
|
106
|
+
│ ↓ │
|
|
107
|
+
│ 3. AGUARDAR → Aprovação do usuário │
|
|
108
|
+
│ ↓ │
|
|
109
|
+
│ 4. IMPLEMENTAR → Código conforme plano │
|
|
110
|
+
│ ↓ │
|
|
111
|
+
│ 5. TESTAR → Validar localmente │
|
|
112
|
+
│ ↓ │
|
|
113
|
+
│ 6. VALIDAR → Usuário revisa código │
|
|
114
|
+
│ ↓ │
|
|
115
|
+
│ 7. ATUALIZAR plan.md → Marcar fase como concluída │
|
|
116
|
+
│ ↓ │
|
|
117
|
+
│ 8. REPETIR → Próxima fase (se houver) │
|
|
118
|
+
│ │
|
|
119
|
+
└─────────────────────────────────────────────────────────────┘
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Comportamento Esperado
|
|
125
|
+
|
|
126
|
+
### Fase de Leitura
|
|
127
|
+
|
|
128
|
+
1. **Ler arquivos da sessão**
|
|
129
|
+
|
|
130
|
+
- `architecture.md` - Entender a arquitetura
|
|
131
|
+
- `plan.md` - Identificar fase atual
|
|
132
|
+
2. **Identificar fase em progresso**
|
|
133
|
+
|
|
134
|
+
- Procurar por `[Em Progresso ⏰]` ou `[In Progress ⏰]`
|
|
135
|
+
- Se nenhuma em progresso, identificar a primeira `[Não Iniciada ⏳]`
|
|
136
|
+
|
|
137
|
+
### Fase de Planejamento
|
|
138
|
+
|
|
139
|
+
3. **Apresentar plano de abordagem**
|
|
140
|
+
|
|
141
|
+
- Listar tarefas da fase
|
|
142
|
+
- Ordem de execução proposta
|
|
143
|
+
- Arquivos que serão criados/modificados
|
|
144
|
+
- Riscos ou pontos de atenção
|
|
145
|
+
4. **Aguardar aprovação**
|
|
146
|
+
|
|
147
|
+
- NUNCA iniciar sem confirmação do usuário
|
|
148
|
+
- Se usuário tiver sugestões, ajustar plano
|
|
149
|
+
|
|
150
|
+
### Fase de Implementação
|
|
151
|
+
|
|
152
|
+
5. **Implementar código**
|
|
153
|
+
|
|
154
|
+
- Seguir padrões do projeto
|
|
155
|
+
- Usar arquivos existentes como referência
|
|
156
|
+
- Criar testes junto com o código
|
|
157
|
+
- Documentar decisões no código
|
|
158
|
+
6. **Executar testes locais**
|
|
159
|
+
|
|
160
|
+
- Rodar testes unitários
|
|
161
|
+
- Verificar lint/formatação
|
|
162
|
+
- Validar que não quebrou nada existente
|
|
163
|
+
|
|
164
|
+
### Fase de Validação
|
|
165
|
+
|
|
166
|
+
7. **Solicitar validação do usuário**
|
|
167
|
+
|
|
168
|
+
- Apresentar resumo do que foi feito
|
|
169
|
+
- Destacar pontos importantes
|
|
170
|
+
- Aguardar feedback
|
|
171
|
+
8. **Iterar se necessário**
|
|
172
|
+
|
|
173
|
+
- Fazer ajustes solicitados
|
|
174
|
+
- Revalidar após mudanças
|
|
175
|
+
|
|
176
|
+
### Fase de Atualização
|
|
177
|
+
|
|
178
|
+
9. **Atualizar plan.md**
|
|
179
|
+
|
|
180
|
+
- Marcar tarefas como `[Completada ✅]`
|
|
181
|
+
- Adicionar comentários sobre:
|
|
182
|
+
- Decisões tomadas
|
|
183
|
+
- Problemas encontrados
|
|
184
|
+
- Mudanças de direção
|
|
185
|
+
- Aprendizados
|
|
186
|
+
10. **Comunicar próximos passos**
|
|
187
|
+
|
|
188
|
+
- Informar que a fase foi concluída
|
|
189
|
+
- Perguntar se deseja iniciar próxima fase
|
|
190
|
+
- ⚠️ **NUNCA sugerir PR ou commit**
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Regras de Atualização do plan.md
|
|
195
|
+
|
|
196
|
+
### Marcadores de Status
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
| Status | Marcador |
|
|
200
|
+
| ------------- | -------------------- |
|
|
201
|
+
| Não iniciada | `[Não Iniciada ⏳]` |
|
|
202
|
+
| Em progresso | `[Em Progresso ⏰]` |
|
|
203
|
+
| Completada | `[Completada ✅]` |
|
|
204
|
+
| Bloqueada | `[Bloqueada 🚫]` |
|
|
205
|
+
|
|
206
|
+
### Comentários Obrigatórios
|
|
207
|
+
|
|
208
|
+
Ao concluir uma fase, adicione na seção `### Comentários:`:
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
### Comentários:
|
|
212
|
+
|
|
213
|
+
- **Decisão**: {decisão tomada e por quê}
|
|
214
|
+
- **Mudança**: {algo que mudou em relação ao planejado}
|
|
215
|
+
- **Aprendizado**: {algo descoberto durante implementação}
|
|
216
|
+
- **Atenção**: {ponto importante para próximas fases}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Interação com Usuário
|
|
222
|
+
|
|
223
|
+
### Pontos de Pausa Obrigatórios
|
|
224
|
+
|
|
225
|
+
O workflow **DEVE pausar e aguardar confirmação**:
|
|
226
|
+
|
|
227
|
+
1. ✋ **Antes de iniciar qualquer fase**
|
|
228
|
+
2. ✋ **Após completar implementação** (antes de atualizar plan.md)
|
|
229
|
+
3. ✋ **Antes de iniciar próxima fase**
|
|
230
|
+
|
|
231
|
+
### Comunicação
|
|
232
|
+
|
|
233
|
+
- Seja claro sobre o que foi feito
|
|
234
|
+
- Destaque arquivos criados/modificados
|
|
235
|
+
- Mencione testes executados
|
|
236
|
+
- Liste decisões tomadas
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Erros Comuns a Evitar
|
|
241
|
+
|
|
242
|
+
### ❌ Anti-padrões
|
|
243
|
+
|
|
244
|
+
1. **Escapar para Git**
|
|
245
|
+
|
|
246
|
+
- "Vou fazer o commit dessas mudanças..."
|
|
247
|
+
- "Agora podemos criar o PR..."
|
|
248
|
+
- "Deixa eu dar push das alterações..."
|
|
249
|
+
2. **Pular validação**
|
|
250
|
+
|
|
251
|
+
- Implementar várias fases sem pausar
|
|
252
|
+
- Não aguardar confirmação do usuário
|
|
253
|
+
3. **Não atualizar plan.md**
|
|
254
|
+
|
|
255
|
+
- Esquecer de marcar tarefas como concluídas
|
|
256
|
+
- Não adicionar comentários
|
|
257
|
+
4. **Ignorar testes**
|
|
258
|
+
|
|
259
|
+
- Implementar sem testar
|
|
260
|
+
- Não rodar lint/formatação
|
|
261
|
+
|
|
262
|
+
### ✅ Boas Práticas
|
|
263
|
+
|
|
264
|
+
1. **Implementação incremental**
|
|
265
|
+
|
|
266
|
+
- Uma tarefa por vez
|
|
267
|
+
- Testar após cada mudança
|
|
268
|
+
2. **Comunicação clara**
|
|
269
|
+
|
|
270
|
+
- Explicar o que está fazendo
|
|
271
|
+
- Mostrar código relevante
|
|
272
|
+
3. **Documentação no código**
|
|
273
|
+
|
|
274
|
+
- Comentários explicativos
|
|
275
|
+
- JSDoc/docstrings
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Transição para Próxima Etapa
|
|
280
|
+
|
|
281
|
+
Ao finalizar **TODAS as fases** do `plan.md`, informe:
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
✅ Todas as fases do plano foram implementadas!
|
|
285
|
+
|
|
286
|
+
📁 Sessão: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
|
|
287
|
+
📄 Plan atualizado: plan.md
|
|
288
|
+
|
|
289
|
+
📌 Próximos passos:
|
|
290
|
+
1. Revise todo o código implementado
|
|
291
|
+
2. Execute os testes completos
|
|
292
|
+
3. Quando estiver pronto, use `eng.pr` para criar o Pull Request
|
|
293
|
+
|
|
294
|
+
⚠️ Este workflow NÃO faz commits ou PRs.
|
|
295
|
+
Use `eng.pr` quando estiver pronto para submeter.
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Checklist de Conclusão de Fase
|
|
301
|
+
|
|
302
|
+
Antes de considerar uma fase completa:
|
|
303
|
+
|
|
304
|
+
- [ ] Todas as tarefas da fase foram implementadas
|
|
305
|
+
- [ ] Testes locais passando
|
|
306
|
+
- [ ] Lint/formatação OK
|
|
307
|
+
- [ ] Usuário validou o código
|
|
308
|
+
- [ ] `plan.md` atualizado com status
|
|
309
|
+
- [ ] Comentários adicionados no plan.md
|
|
310
|
+
- [ ] NENHUM commit foi feito
|
|
311
|
+
- [ ] NENHUM PR foi criado
|
|
312
|
+
- [ ] Próximos passos comunicados
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng.frontend-rules
|
|
3
|
+
description: >
|
|
4
|
+
Padrões obrigatórios para devs com HUB: FRONTEND — componentes, TypeScript,
|
|
5
|
+
acessibilidade, performance, micro frontend e design system.
|
|
6
|
+
author: jarvis-team
|
|
7
|
+
version: "1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
> **Applies to:** HUB: FRONTEND | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
11
|
+
|
|
12
|
+
# Regras de Engenharia Frontend
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. Componentes
|
|
17
|
+
|
|
18
|
+
### Estrutura obrigatória
|
|
19
|
+
- Todo componente deve ter props tipadas com TypeScript — `any` é proibido sem justificativa documentada
|
|
20
|
+
- Props obrigatórias devem ser declaradas sem `?`; opcionais com `?` e valor default explícito
|
|
21
|
+
- 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 hooks ou camada de serviço
|
|
23
|
+
|
|
24
|
+
### Nomenclatura
|
|
25
|
+
- Componentes: `PascalCase` (`UserCard`, `ProductTable`)
|
|
26
|
+
- Hooks: `use` + `PascalCase` (`useUserData`, `useProductFilters`)
|
|
27
|
+
- Arquivos de componente: `PascalCase.tsx` (`UserCard.tsx`)
|
|
28
|
+
- Arquivos de hook: `camelCase.ts` (`useUserData.ts`)
|
|
29
|
+
|
|
30
|
+
### Checklist mínimo por componente
|
|
31
|
+
- [ ] Props tipadas (TypeScript)
|
|
32
|
+
- [ ] Estados visuais: normal, hover, focus, disabled, loading, erro, vazio
|
|
33
|
+
- [ ] Semântica HTML correta (não usar `<div>` para botões, links ou listas)
|
|
34
|
+
- [ ] Responsivo (mobile-first com breakpoints do design system)
|
|
35
|
+
- [ ] Testável sem DOM real (lógica isolada em hooks)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. TypeScript
|
|
40
|
+
|
|
41
|
+
- `strict: true` obrigatório em `tsconfig.json`
|
|
42
|
+
- Proibido: `as any`, `@ts-ignore` sem comentário explicativo, `!` (non-null assertion) sem verificação prévia
|
|
43
|
+
- Types vs Interfaces: usar `interface` para objetos de domínio, `type` para uniões e utilitários
|
|
44
|
+
- Exportar tipos públicos de componentes (`export type { ButtonProps }`)
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Acessibilidade (WCAG 2.1 AA — obrigatório)
|
|
49
|
+
|
|
50
|
+
- Semântica HTML nativa antes de ARIA (`<button>`, `<nav>`, `<main>`, `<article>`)
|
|
51
|
+
- 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 UI
|
|
53
|
+
- Imagens informativas têm `alt` descritivo; decorativas têm `alt=""`
|
|
54
|
+
- Modais usam `role="dialog"`, `aria-modal="true"`, `aria-labelledby` e focus trap
|
|
55
|
+
- Formulários: todo `<input>` tem `<label>` associado via `htmlFor` ou `aria-label`
|
|
56
|
+
- Erros de formulário: exibidos com `role="alert"` ou `aria-live="polite"`
|
|
57
|
+
- Screen reader: testar com VoiceOver (Mac) ou NVDA (Windows) em features críticas
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 4. Performance
|
|
62
|
+
|
|
63
|
+
### Core Web Vitals — targets obrigatórios
|
|
64
|
+
- LCP (Largest Contentful Paint): < 2.5s
|
|
65
|
+
- CLS (Cumulative Layout Shift): < 0.1
|
|
66
|
+
- INP (Interaction to Next Paint): < 200ms
|
|
67
|
+
|
|
68
|
+
### Práticas obrigatórias
|
|
69
|
+
- Imagens sempre com `width` e `height` definidos para evitar CLS
|
|
70
|
+
- Componentes pesados com `lazy()` + `<Suspense fallback>`
|
|
71
|
+
- Dependências novas: avaliar impacto no bundle antes de instalar (`bundlephobia.com`)
|
|
72
|
+
- Sem `useEffect` para buscar dados — usar React Query / TanStack Query ou Server Components
|
|
73
|
+
- Memoização apenas quando necessário e comprovado com profiler (não premature optimization)
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 5. Testes
|
|
78
|
+
|
|
79
|
+
- **Testing Library**: queries por acessibilidade primeiro (`getByRole`, `getByLabelText`)
|
|
80
|
+
- **Proibido**: `getByTestId` como primeira opção (usar só quando sem alternativa acessível)
|
|
81
|
+
- **Cobertura mínima**: fluxos críticos de usuário (happy path + estado de erro)
|
|
82
|
+
- **Vitest**: unitários para lógica pura, hooks e utilitários
|
|
83
|
+
- **Playwright / Cypress**: E2E para fluxos de usuário completos (login, checkout, etc.)
|
|
84
|
+
- Mocks de módulos externos devem estar em `__mocks__/` ou `*.mock.ts`
|
|
85
|
+
|
|
86
|
+
### Ferramentas disponíveis no framework
|
|
87
|
+
|
|
88
|
+
- **TestSprite** (`/eng-qa-testsprite`): se o TestSprite estiver instalado no projeto, usá-lo para geração
|
|
89
|
+
e execução de testes de componente e E2E — ele gera planos de teste e código automaticamente.
|
|
90
|
+
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.
|
|
95
|
+
Verificar: `cat package.json | grep stagehand`
|
|
96
|
+
|
|
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.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 6. Micro Frontend
|
|
103
|
+
|
|
104
|
+
- Todo remote deve ser versionado e publicado com URL de fallback definida
|
|
105
|
+
- Contratos de interface entre shell e remotes são declarados em tipos TypeScript compartilhados
|
|
106
|
+
- Nenhum remote depende diretamente de outro remote — comunicação via shell ou event bus
|
|
107
|
+
- Shared dependencies declaradas explicitamente no `ModuleFederationPlugin` com `singleton: true`
|
|
108
|
+
- Cada remote deve funcionar em modo standalone (sem shell) para desenvolvimento local
|
|
109
|
+
- Testes de integração entre shell e remote são obrigatórios para cada ponto de montagem
|
|
110
|
+
- Versionamento: breaking changes no contrato de um remote exigem bump de versão major
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 7. Design System
|
|
115
|
+
|
|
116
|
+
- Cores, tipografia, espaçamentos e breakpoints vêm **exclusivamente** dos tokens do design system
|
|
117
|
+
- Proibido hardcodar valores de cor, fonte ou espaçamento fora dos tokens
|
|
118
|
+
- Novos componentes de UI são criados no design system antes de serem usados nos remotes
|
|
119
|
+
- Variantes de componente usam `cva` (class-variance-authority) como padrão
|
|
120
|
+
- Componentes públicos do design system têm story no Storybook antes de serem liberados
|
|
121
|
+
- Alterações na API pública de um componente (props) seguem semver
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 8. Code Review (Checklist do Reviewer)
|
|
126
|
+
|
|
127
|
+
Ao revisar PR de frontend, verificar:
|
|
128
|
+
|
|
129
|
+
- [ ] TypeScript sem `any` ou `@ts-ignore` injustificado
|
|
130
|
+
- [ ] Nenhuma lógica de negócio em componente de UI
|
|
131
|
+
- [ ] Acessibilidade: semântica HTML, ARIA correto, navegação por teclado
|
|
132
|
+
- [ ] Performance: sem re-renders desnecessários, lazy loading aplicado quando cabível
|
|
133
|
+
- [ ] Tokens do design system usados (sem valores hardcodados)
|
|
134
|
+
- [ ] Testes cobrem happy path e estado de erro
|
|
135
|
+
- [ ] Responsividade verificada em mobile e desktop
|
|
136
|
+
- [ ] Se micro frontend: contrato de interface atualizado, remote funciona standalone
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 9. Proibições Absolutas
|
|
141
|
+
|
|
142
|
+
- `document.querySelector` / manipulação direta do DOM em contexto React
|
|
143
|
+
- `!important` em CSS sem comentário explicativo
|
|
144
|
+
- Fetch direto em componente de UI (usar hooks, queries ou Server Actions)
|
|
145
|
+
- Importar de outro remote diretamente (rompe o isolamento do micro frontend)
|
|
146
|
+
- Hardcodar tokens de design (cores, espaçamentos, fontes) fora do sistema de tokens
|
|
147
|
+
- `console.log` em código commitado (usar logger estruturado ou remover)
|