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.
Files changed (240) hide show
  1. package/AGENTS.md +416 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/agents/AGENTS.md +234 -0
  5. package/agents/README.md +309 -0
  6. package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
  7. package/agents/engineering/eng.agent.md +303 -0
  8. package/agents/engineering/eng.bug-hunter.md +386 -0
  9. package/agents/engineering/eng.cybersecurity.agent.md +503 -0
  10. package/agents/engineering/eng.dev-code-reviewer.md +148 -0
  11. package/agents/engineering/eng.docs-writer.md +152 -0
  12. package/agents/engineering/eng.frontend.agent.md +117 -0
  13. package/agents/engineering/eng.rpa.agent.md +215 -0
  14. package/agents/engineering/eng.tech-analyst.agent.md +102 -0
  15. package/agents/engineering/eng.ux-designer.agent.md +193 -0
  16. package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
  17. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
  18. package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
  19. package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
  20. package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
  21. package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
  22. package/agents/product/prod.pm-checker.md +52 -0
  23. package/bin/commands/docs-publish.js +184 -0
  24. package/bin/commands/docs-sync.js +139 -0
  25. package/bin/commands/info.js +87 -0
  26. package/bin/commands/init.js +237 -0
  27. package/bin/commands/install-rtk.js +90 -0
  28. package/bin/commands/list.js +48 -0
  29. package/bin/commands/qa-signoff.js +112 -0
  30. package/bin/commands/whoami.js +43 -0
  31. package/bin/jarvis.js +159 -0
  32. package/bin/lib/auth/session.js +56 -0
  33. package/bin/lib/config/constants.js +123 -0
  34. package/bin/lib/config/ide-config.js +233 -0
  35. package/bin/lib/core/scanner.js +124 -0
  36. package/bin/lib/core/sync-engine.js +551 -0
  37. package/bin/lib/docs/fetch-file.sh +41 -0
  38. package/bin/lib/docs/publish-file.sh +284 -0
  39. package/bin/lib/docs/validate-frontmatter.js +157 -0
  40. package/bin/lib/env-loader.js +198 -0
  41. package/bin/lib/tasks/comment.js +131 -0
  42. package/bin/lib/utils/git-parser.js +145 -0
  43. package/bin/lib/utils/logger.js +104 -0
  44. package/bin/lib/utils/npmrc-parser.js +106 -0
  45. package/bin/lib/utils/paths.js +55 -0
  46. package/bin/lib/utils/ui.js +59 -0
  47. package/bin/lib/vcs/api.js +312 -0
  48. package/bin/lib/vcs/create-issue.js +43 -0
  49. package/bin/lib/vcs/create-merge.js +43 -0
  50. package/bin/lib/vcs/fetch-raw.js +30 -0
  51. package/bin/postinstall.js +41 -0
  52. package/members.md +25 -0
  53. package/package.json +55 -0
  54. package/rules/AGENTS.md +205 -0
  55. package/rules/engineering/data/data-rules.md +200 -0
  56. package/rules/engineering/eng-rules.md +243 -0
  57. package/rules/engineering/eng-security-rules.md +186 -0
  58. package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
  59. package/rules/engineering/eng.bump-rules.md +27 -0
  60. package/rules/engineering/eng.docs-scraping-rules.md +64 -0
  61. package/rules/engineering/eng.downstream-flow-rules.md +297 -0
  62. package/rules/engineering/eng.integrations-rules.md +73 -0
  63. package/rules/engineering/eng.plan-rules.md +333 -0
  64. package/rules/engineering/eng.pr-rules.md +359 -0
  65. package/rules/engineering/eng.pre-pr-rules.md +103 -0
  66. package/rules/engineering/eng.start-rules.md +246 -0
  67. package/rules/engineering/eng.tech-spec-rules.md +968 -0
  68. package/rules/engineering/eng.work-rules.md +312 -0
  69. package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
  71. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
  72. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
  73. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
  74. package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
  75. package/rules/product/README.md +24 -0
  76. package/rules/product/prod-rules.md +151 -0
  77. package/rules/rtk-rules.md +68 -0
  78. package/skills/AGENTS.md +290 -0
  79. package/skills/SKILLS-ROADMAP.md +333 -0
  80. package/skills/churn-audit/SKILL.md +385 -0
  81. package/skills/context-detect/SKILL.md +399 -0
  82. package/skills/context-detect/assets/context-profile-template.md +127 -0
  83. package/skills/docs-central/README.md +310 -0
  84. package/skills/docs-central/SKILL.md +423 -0
  85. package/skills/docs-index/SKILL.md +377 -0
  86. package/skills/eng-ai-engineer/SKILL.md +296 -0
  87. package/skills/eng-arch-c4/SKILL.md +358 -0
  88. package/skills/eng-arch-c4/assets/example-code.md +189 -0
  89. package/skills/eng-arch-c4/assets/example-component.md +105 -0
  90. package/skills/eng-arch-c4/assets/example-container.md +104 -0
  91. package/skills/eng-arch-c4/assets/example-context.md +81 -0
  92. package/skills/eng-backend/SKILL.md +776 -0
  93. package/skills/eng-browser-extension-builder/SKILL.md +385 -0
  94. package/skills/eng-cybersecurity/SKILL.md +645 -0
  95. package/skills/eng-data-bi/SKILL.md +199 -0
  96. package/skills/eng-data-debug/SKILL.md +307 -0
  97. package/skills/eng-data-engineer/SKILL.md +256 -0
  98. package/skills/eng-data-onboard/SKILL.md +310 -0
  99. package/skills/eng-data-orchestrator/SKILL.md +426 -0
  100. package/skills/eng-design-system/SKILL.md +619 -0
  101. package/skills/eng-docs-write/SKILL.md +312 -0
  102. package/skills/eng-frontend/SKILL.md +913 -0
  103. package/skills/eng-jira-comment/SKILL.md +17 -0
  104. package/skills/eng-microfrontend/SKILL.md +602 -0
  105. package/skills/eng-ms-trace/SKILL.md +469 -0
  106. package/skills/eng-nestjs/SKILL.md +791 -0
  107. package/skills/eng-performance-engineer/SKILL.md +312 -0
  108. package/skills/eng-pr/SKILL.md +339 -0
  109. package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
  110. package/skills/eng-qa-bug-report/SKILL.md +1088 -0
  111. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
  112. package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
  113. package/skills/eng-qa-dev-guide/SKILL.md +164 -0
  114. package/skills/eng-qa-e2e/SKILL.md +400 -0
  115. package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
  116. package/skills/eng-qa-exploratory/SKILL.md +188 -0
  117. package/skills/eng-qa-gate/SKILL.md +370 -0
  118. package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
  119. package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
  120. package/skills/eng-qa-quality-report/SKILL.md +412 -0
  121. package/skills/eng-qa-test-plan/SKILL.md +466 -0
  122. package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
  123. package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
  124. package/skills/eng-qa-testsprite/SKILL.md +325 -0
  125. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
  126. package/skills/eng-qa-unit-test/SKILL.md +471 -0
  127. package/skills/eng-rabbitmq/SKILL.md +661 -0
  128. package/skills/eng-scraper/SKILL.md +683 -0
  129. package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
  130. package/skills/eng-security-patch/SKILL.md +378 -0
  131. package/skills/eng-security-triage/SKILL.md +266 -0
  132. package/skills/eng-task-comment/SKILL.md +60 -0
  133. package/skills/eng-tech-analyst/SKILL.md +529 -0
  134. package/skills/eng-threat-model/SKILL.md +161 -0
  135. package/skills/init-jarvis/SKILL.md +1304 -0
  136. package/skills/init-jarvis/assets/mcp-configs.md +389 -0
  137. package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
  138. package/skills/init-jarvis/assets/setup-guide.md +360 -0
  139. package/skills/lovable-prompt-generator/SKILL.md +304 -0
  140. package/skills/prod-roadmap-report/README.md +303 -0
  141. package/skills/prod-roadmap-report/SKILL.md +198 -0
  142. package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
  143. package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
  144. package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
  145. package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
  146. package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
  147. package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
  148. package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
  149. package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
  150. package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
  151. package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
  152. package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
  153. package/skills/prod-specs/SKILL.md +108 -0
  154. package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
  155. package/skills/prod-specs/references/prod.spec.epic.md +107 -0
  156. package/skills/prod-specs/references/prod.spec.frd.md +135 -0
  157. package/skills/prod-specs/references/prod.spec.issue.md +145 -0
  158. package/skills/prod-specs/references/prod.spec.prd.md +118 -0
  159. package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
  160. package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
  161. package/skills/prod-specs/templates/prod-epic-template.md +76 -0
  162. package/skills/prod-specs/templates/prod-frd-template.md +172 -0
  163. package/skills/prod-specs/templates/prod-issue-template.md +68 -0
  164. package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
  165. package/skills/prod-specs/templates/prod-prd-template.md +173 -0
  166. package/skills/prod-specs-update/SKILL.md +272 -0
  167. package/skills/report-issue/SKILL.md +156 -0
  168. package/taxonomy.md +270 -0
  169. package/templates/AGENTS.md +189 -0
  170. package/templates/CDD aplicado a Prompts.md +182 -0
  171. package/templates/ENV-template.md +187 -0
  172. package/templates/engineering/AGENTS-template.md +71 -0
  173. package/templates/engineering/ARD-template.md +193 -0
  174. package/templates/engineering/CONTACTS-template.md +135 -0
  175. package/templates/engineering/PR-template.md +40 -0
  176. package/templates/engineering/RFC-Playbook.md +325 -0
  177. package/templates/engineering/RFC-template.md +199 -0
  178. package/templates/engineering/architecture-template.md +277 -0
  179. package/templates/engineering/breakdown-subtasks-template.md +582 -0
  180. package/templates/engineering/c4-model-template.md +516 -0
  181. package/templates/engineering/data-contract-template.md +135 -0
  182. package/templates/engineering/data-pipeline-template.md +163 -0
  183. package/templates/engineering/plan-template.md +255 -0
  184. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
  185. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
  186. package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
  187. package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
  188. package/templates/engineering/qa/qa.quality-report-template.md +130 -0
  189. package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
  190. package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
  191. package/templates/engineering/swagger-template.md +145 -0
  192. package/templates/engineering/tech-spec-template.md +497 -0
  193. package/templates/engineering/work-progress-template.md +155 -0
  194. package/workflows/AGENTS.md +240 -0
  195. package/workflows/README.md +160 -0
  196. package/workflows/all-tools.md +11 -0
  197. package/workflows/engineering/data/data.contract.md +202 -0
  198. package/workflows/engineering/data/data.new-pipeline.md +234 -0
  199. package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
  200. package/workflows/engineering/eng.bug-audit.md +591 -0
  201. package/workflows/engineering/eng.build-tech-spec.md +1116 -0
  202. package/workflows/engineering/eng.create-ard-from-code.md +259 -0
  203. package/workflows/engineering/eng.create-ard.md +382 -0
  204. package/workflows/engineering/eng.create-rfc.md +245 -0
  205. package/workflows/engineering/eng.debug.md +479 -0
  206. package/workflows/engineering/eng.docs.md +40 -0
  207. package/workflows/engineering/eng.light-arch.md +84 -0
  208. package/workflows/engineering/eng.plan.md +213 -0
  209. package/workflows/engineering/eng.pr.md +466 -0
  210. package/workflows/engineering/eng.pre-pr.md +167 -0
  211. package/workflows/engineering/eng.review.md +185 -0
  212. package/workflows/engineering/eng.rpa.robot.md +342 -0
  213. package/workflows/engineering/eng.security-audit.md +312 -0
  214. package/workflows/engineering/eng.security-incident.md +275 -0
  215. package/workflows/engineering/eng.security-pipeline.md +210 -0
  216. package/workflows/engineering/eng.security-review.md +235 -0
  217. package/workflows/engineering/eng.start.md +494 -0
  218. package/workflows/engineering/eng.work.md +558 -0
  219. package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
  220. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
  221. package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
  222. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
  223. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
  224. package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
  225. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
  226. package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
  227. package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
  228. package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
  229. package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
  230. package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
  231. package/workflows/product/prod.roadmap.preview.md +110 -0
  232. package/workflows/product/prod.spec.breakdown.md +163 -0
  233. package/workflows/product/prod.spec.clarify.md +178 -0
  234. package/workflows/product/prod.spec.epic.md +154 -0
  235. package/workflows/product/prod.spec.frd.md +96 -0
  236. package/workflows/product/prod.spec.issue.md +145 -0
  237. package/workflows/product/prod.spec.md +60 -0
  238. package/workflows/product/prod.spec.prd.md +100 -0
  239. package/workflows/taxonomy.md +92 -0
  240. 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)