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,205 @@
1
+ # AGENTS.md - Pasta rules/
2
+
3
+ Instrucoes especificas para agentes de IA que manipulam a pasta de regras.
4
+
5
+ ---
6
+
7
+ ## Proposito desta Pasta
8
+
9
+ A pasta `rules/` contem **regras e diretrizes** que governam o comportamento do framework Jarvis. Sao restricoes e padroes que agentes e workflows devem seguir.
10
+
11
+ ---
12
+
13
+ ## Estrutura
14
+
15
+ ```
16
+ rules/
17
+ ├── engineering/ # Regras de engenharia
18
+ │ ├── eng-rules.md # Regras gerais de engenharia
19
+ │ ├── eng.start-rules.md # Regras para /eng.start
20
+ │ ├── eng.plan-rules.md # Regras para /eng.plan
21
+ │ ├── eng.work-rules.md # Regras para /eng.work
22
+ │ ├── eng.pr-rules.md # Regras para /eng.pr
23
+ │ ├── eng.bump-rules.md # Regras para versionamento
24
+ │ ├── eng.tech-spec-rules.md # Regras para tech specs
25
+ │ └── qa/ # Regras de QA
26
+ └── product/ # Regras de produto
27
+ └── prod-rules.md # Regras de especificacao
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Hierarquia de Regras
33
+
34
+ ```
35
+ 1. .windsurf/rules / .cursor/rules (mais alta)
36
+ 2. rules/engineering/eng-rules.md
37
+ 3. rules/engineering/eng.{comando}-rules.md
38
+ 4. rules/product/prod-rules.md (mais baixa)
39
+ ```
40
+
41
+ **Regra**: Regras mais especificas tem precedencia sobre regras gerais.
42
+
43
+ ---
44
+
45
+ ## Convencoes de Nomenclatura
46
+
47
+ | Tipo | Padrao | Exemplos |
48
+ |------|--------|----------|
49
+ | Regra geral | `{dominio}-rules.md` | `eng-rules.md` |
50
+ | Regra de comando | `{dominio}.{comando}-rules.md` | `eng.work-rules.md` |
51
+ | Regra de QA | `qa/{nome}-rules.md` | `qa/test-rules.md` |
52
+
53
+ ---
54
+
55
+ ## Profile-Aware Rules Loading
56
+
57
+ Cada arquivo de rule declara para quais perfis se aplica via bloco `applies_to`, inserido logo após o frontmatter YAML (ou no início do arquivo se não houver frontmatter):
58
+
59
+ ```markdown
60
+ > **Applies to:** HUB: {valor ou all} | POSITION: {valor ou all} | AREA: {valor ou all} | SQUAD: {valor ou all}
61
+ ```
62
+
63
+ **Eixos de filtragem:**
64
+
65
+ | Eixo | Exemplos de valor | `all` significa |
66
+ |------|-------------------|-----------------|
67
+ | HUB | FRONTEND, BACKEND, QA, DATA, AI, FULLCYCLE | qualquer hub |
68
+ | POSITION | TECH LEAD, PM, QA-ENGINEER, SENIOR, GENERALIST | qualquer cargo |
69
+ | AREA | ENGINEERING, PRODUCT | qualquer área |
70
+ | SQUAD | CORE, SUPPORT | qualquer squad |
71
+
72
+ **Regras:**
73
+ - Uma rule é aplicada se **todos** os eixos forem satisfeitos (AND, não OR)
74
+ - Arquivos sem bloco `applies_to` são considerados **universais** — copiados para qualquer perfil
75
+ - `rules/AGENTS.md` nunca é filtrado — sempre copiado
76
+
77
+ **Quem faz a filtragem:** o skill `/init-jarvis` (Passo 9 — Profile-Aware Rules Sync). Ao criar, atualizar ou fazer upgrade do ENV.md, copia para `$IDE/rules/` apenas as rules que batem com o perfil (HUB + POSITION + AREA + SQUAD) e deleta as que não batem mais.
78
+
79
+ **Ao criar uma nova rule**, definir o bloco `applies_to` é obrigatório. Sem ele, a rule é tratada como universal — o que pode ser indesejado para rules domain-specific.
80
+
81
+ ---
82
+
83
+ ## Estrutura de um Arquivo de Regras
84
+
85
+ Todo arquivo de regras deve conter:
86
+
87
+ ```markdown
88
+ # {Nome} Rules
89
+
90
+ ## Objetivo
91
+ O que estas regras governam.
92
+
93
+ ## Escopo
94
+ Quando estas regras se aplicam.
95
+
96
+ ## Regras
97
+
98
+ ### Obrigatorio
99
+ - Regra 1
100
+ - Regra 2
101
+
102
+ ### Proibido
103
+ - Nunca fazer X
104
+ - Nunca fazer Y
105
+
106
+ ### Recomendado
107
+ - Preferir A sobre B
108
+ - Considerar C quando D
109
+
110
+ ## Excecoes
111
+ Quando as regras podem ser flexibilizadas.
112
+
113
+ ## Referencias
114
+ Links para documentacao relacionada.
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Tipos de Regras
120
+
121
+ ### 1. Regras Gerais (`eng-rules.md`)
122
+ - Aplicam-se a todo o dominio de engenharia
123
+ - Definem padroes transversais
124
+ - Sao a base para regras especificas
125
+
126
+ ### 2. Regras de Comando (`eng.{comando}-rules.md`)
127
+ - Especificas para um comando slash
128
+ - Detalham restricoes do comando
129
+ - Podem sobrescrever regras gerais
130
+
131
+ ### 3. Regras de QA (`qa/`)
132
+ - Focadas em qualidade e testes
133
+ - Definem criterios de aceitacao
134
+ - Padroes de cobertura
135
+
136
+ ### 4. Regras de Produto (`product/`)
137
+ - Governam especificacoes e requisitos
138
+ - Padroes de documentacao de produto
139
+ - Validacao de PRD/FRD
140
+
141
+ ---
142
+
143
+ ## Regras Criticas do Framework
144
+
145
+ ### Fases de Desenvolvimento
146
+
147
+ | Fase | Comandos | Restricao |
148
+ |------|----------|-----------|
149
+ | Planejamento | `eng.start`, `eng.plan` | Somente analise, SEM codigo |
150
+ | Implementacao | `eng.work` | Codigo e testes, SEM commits |
151
+ | Entrega | `eng.pr` | Branch, commit e PR |
152
+
153
+ ### Seguranca
154
+
155
+ - Nunca inventar credenciais, tokens ou segredos
156
+ - Nunca expor dados sensiveis em logs ou outputs
157
+ - Sempre validar dados externos
158
+ - Priorizar seguranca sobre velocidade
159
+
160
+ ### ENV.md
161
+
162
+ - Validar ENV.md antes de qualquer comando (exceto `/init-jarvis`)
163
+ - Respeitar `MAX_AI_EXECUTION_PERCENTAGE`
164
+
165
+ ---
166
+
167
+ ## Nunca
168
+
169
+ - Criar regra que contradiz `.windsurfrules`
170
+ - Criar regra sem definir escopo claro
171
+ - Misturar regras de dominios diferentes no mesmo arquivo
172
+ - Criar regra muito generica ou muito especifica
173
+ - Ignorar regras existentes ao criar novas
174
+
175
+ ## Sempre
176
+
177
+ - Seguir hierarquia de regras
178
+ - Documentar excecoes explicitamente
179
+ - Manter consistencia com regras existentes
180
+ - Referenciar regras relacionadas
181
+ - Atualizar ao modificar comportamento do framework
182
+
183
+ ---
184
+
185
+ ## Relacao com Outros Componentes
186
+
187
+ | Componente | Relacao |
188
+ |------------|---------|
189
+ | Agents | Agentes devem seguir as regras |
190
+ | Skills | Skills implementam as regras |
191
+ | Workflows | Workflows executam conforme regras |
192
+ | Templates | Templates respeitam as regras |
193
+
194
+ ---
195
+
196
+ ## Referencias
197
+
198
+ - `../agents/` - Agentes que seguem estas regras
199
+ - `../workflows/` - Workflows que executam conforme regras
200
+ - `../skills/` - Skills que implementam regras
201
+ - `.windsurfrules` - Regras globais do framework
202
+
203
+ ---
204
+
205
+ **Ultima atualizacao**: 2026-01-26
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: data-rules
3
+ description: >
4
+ Regras de engenharia de dados: nomenclatura de camadas (Medallion),
5
+ qualidade obrigatória com Great Expectations, idempotência, logs e política de dados sensíveis.
6
+ license: AGPL-3.0
7
+ metadata:
8
+ author: jarvis-team
9
+ version: "1.0"
10
+ ---
11
+
12
+ > **Applies to:** HUB: DATA | POSITION: all | AREA: ENGINEERING | SQUAD: all
13
+
14
+ # Data Rules — Engenharia de Dados
15
+
16
+ ## 1. Arquitetura de Camadas (Medallion)
17
+
18
+ | Camada | Nome | Responsabilidade |
19
+ |--------|------|-----------------|
20
+ | Ingestão bruta | `bronze` | Dados exatamente como vieram da fonte — sem transformação. Imutável. |
21
+ | Limpeza e tipagem | `silver` | Dados limpos, tipados e normalizados. Sem regras de negócio. |
22
+ | Analítico / BI | `gold` | Modelos prontos para consumo (fatos, dimensões, agregações). |
23
+
24
+ ### Regras de camada
25
+
26
+ - **Bronze é imutável** — nunca modificar dados já ingeridos. Reprocessamento cria nova partição.
27
+ - **Silver não tem regra de negócio** — só limpeza, tipagem e deduplicação.
28
+ - **Gold é o que squads e dashboards consomem** — sempre documentado com contrato de dados.
29
+ - Campos de auditoria obrigatórios em todas as camadas: `ingested_at`, `source_system`, `data_referencia`.
30
+
31
+ ### Nomenclatura de tabelas e campos
32
+
33
+ - Tabelas: `<camada>.<dominio>_<entidade>` → ex: `silver.vendas_pedidos`, `gold.fato_entregas`
34
+ - Campos: `snake_case` em português ou inglês — manter consistência dentro do domínio
35
+ - Chaves primárias: `id_<entidade>` → ex: `id_pedido`, `id_cliente`
36
+ - Datas: sufixo `_at` para timestamps (`criado_at`, `atualizado_at`), `_data` para datas (`referencia_data`)
37
+
38
+ ---
39
+
40
+ ## 2. Qualidade de Dados (Great Expectations)
41
+
42
+ Todo pipeline deve ter uma **Expectation Suite** no Great Expectations antes de ir para produção.
43
+
44
+ ### Checks obrigatórios por pipeline
45
+
46
+ ```python
47
+ # Mínimo obrigatório em toda suite
48
+ expect_table_row_count_to_be_between(min_value=1)
49
+ expect_column_values_to_not_be_null(column="<chave_primaria>")
50
+ expect_column_values_to_not_be_null(column="data_referencia")
51
+ expect_column_values_to_be_unique(column="<chave_primaria>")
52
+ ```
53
+
54
+ ### Checks recomendados (obrigatórios para gold)
55
+
56
+ ```python
57
+ # Integridade de tipos
58
+ expect_column_values_to_be_of_type(column="<campo>", type_="<tipo>")
59
+
60
+ # Domínios fechados
61
+ expect_column_values_to_be_in_set(column="<status>", value_set=[...])
62
+
63
+ # Alerta de volume (queda > 50% vs. execução anterior)
64
+ expect_table_row_count_to_be_between(min_value=last_run_count * 0.5)
65
+ ```
66
+
67
+ ### Falha de qualidade
68
+
69
+ - **Bronze → Silver**: falha bloqueia a promoção. Dados permanecem em bronze.
70
+ - **Silver → Gold**: falha bloqueia publicação. Alerta no Slack canal do time de Data.
71
+ - Nunca silenciar falhas — registrar no log com contexto da execução.
72
+
73
+ ---
74
+
75
+ ## 3. Idempotência
76
+
77
+ Todo pipeline deve ser idempotente: **reprocessar o mesmo período não duplica dados**.
78
+
79
+ ### Padrão obrigatório para carga
80
+
81
+ ```python
82
+ # DELETE + INSERT (partição/período)
83
+ def load_idempotent(df, table: str, partition_col: str, partition_value: str):
84
+ """Apaga a partição antes de inserir — garante idempotência."""
85
+ delete_partition(table, partition_col, partition_value)
86
+ insert(df, table)
87
+ ```
88
+
89
+ ### Para tabelas Athena (S3)
90
+
91
+ - Usar partições por `data_referencia` (formato `YYYY-MM-DD`)
92
+ - Reprocessamento sobrescreve o prefixo S3 da partição
93
+ - Nunca usar `APPEND` sem verificar duplicatas primeiro
94
+
95
+ ---
96
+
97
+ ## 4. Política de Logs
98
+
99
+ ### O que logar (obrigatório)
100
+
101
+ Cada execução deve registrar:
102
+
103
+ ```python
104
+ logger.info({
105
+ "pipeline": "<nome>",
106
+ "data_referencia": "<YYYY-MM-DD>",
107
+ "status": "started|completed|failed",
108
+ "rows_extracted": <int>,
109
+ "rows_loaded": <int>,
110
+ "duration_seconds": <float>,
111
+ "execution_id": "<uuid>"
112
+ })
113
+ ```
114
+
115
+ ### Onde logar
116
+
117
+ - **AWS Glue**: logs automáticos no CloudWatch (`/aws-glue/jobs/output`)
118
+ - **Airflow**: logs nas tasks do DAG + CloudWatch quando em produção
119
+ - **Erros críticos**: alertar no canal Slack do time de Data (`#data-alerts` ou equivalente)
120
+
121
+ ### Retenção
122
+
123
+ - Logs de execução: **90 dias** no CloudWatch
124
+ - Logs de erro: **1 ano** (auditoria)
125
+ - Metadados de pipeline (rows processados, duração): persistir em tabela `gold.pipeline_audit`
126
+
127
+ ---
128
+
129
+ ## 5. Política de Dados Sensíveis
130
+
131
+ > **TODO:** Política ainda não definida pelo time. Pendente decisão sobre mascaramento e controle de acesso IAM.
132
+
133
+ ### Campos considerados sensíveis (provisório)
134
+
135
+ - CPF, RG e documentos de identificação
136
+ - Dados bancários
137
+ - Localização em tempo real
138
+ - Dados pessoais de contato (telefone, endereço)
139
+
140
+ ### Regras provisórias até definição formal
141
+
142
+ - ❌ Nunca expor CPF em tabelas `gold` sem mascaramento
143
+ - ❌ Nunca incluir dados sensíveis em dashboards Metabase sem aprovação
144
+ - ✅ Dados sensíveis em `bronze` mantidos com acesso restrito por IAM role
145
+ - ✅ Qualquer exposição de dados sensíveis para squads deve ter contrato de dados aprovado
146
+
147
+ ---
148
+
149
+ ## 6. Repositório de Scripts
150
+
151
+ - Scripts de pipeline vivem no repositório **`data-pipelines`** (repo dedicado)
152
+ - Estrutura sugerida:
153
+
154
+ ```
155
+ data-pipelines/
156
+ jobs/
157
+ bronze/ # scripts de ingestão
158
+ silver/ # scripts de transformação
159
+ gold/ # scripts de modelagem analítica
160
+ dags/ # DAGs do Airflow
161
+ expectations/ # Suites do Great Expectations
162
+ docs/ # documentação de pipelines (data-pipeline-template.md)
163
+ contracts/ # contratos de dados (data-contract-template.md)
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 7. Processo de Solicitação de Dados (Inter-squads)
169
+
170
+ Squads que precisam de dados do time de Data devem:
171
+
172
+ 1. **Abrir thread** no canal Slack `#data-requests` (ou equivalente) com:
173
+ - Caso de uso: o que precisa e por quê
174
+ - Frequência de uso (ad-hoc, recorrente)
175
+ - SLA esperado
176
+ 2. **Time de Data** avalia e abre card no board **DE** com as informações formalizadas
177
+ 3. Se recorrente → criar contrato de dados (`data-contract-template.md`)
178
+ 4. Se ad-hoc → query avulsa entregue no Slack
179
+
180
+ ---
181
+
182
+ ## Regras Críticas
183
+
184
+ ### Nunca faça
185
+
186
+ - ❌ Modificar tabela bronze — bronze é imutável
187
+ - ❌ Pipeline sem Expectation Suite em produção
188
+ - ❌ Hardcode de credenciais — sempre AWS Secrets Manager ou variáveis de ambiente
189
+ - ❌ `SELECT *` em produção — sempre listar campos explicitamente
190
+ - ❌ Expor dados sensíveis (CPF, dados pessoais) sem mascaramento e aprovação
191
+ - ❌ Pipeline sem log de execução (início, fim, volume, status)
192
+
193
+ ### Sempre faça
194
+
195
+ - ✅ Idempotência: reprocessar não duplica
196
+ - ✅ Logs estruturados com `data_referencia`, volume e status
197
+ - ✅ Expectation Suite antes de publicar em gold
198
+ - ✅ Contrato de dados antes de expor gold para outra squad
199
+ - ✅ Versionar queries SQL significativas em arquivos `.sql` no repo `data-pipelines`
200
+ - ✅ Particionamento por `data_referencia` em todas as tabelas Athena
@@ -0,0 +1,243 @@
1
+ ---
2
+ trigger: always_on
3
+ env_file: "@/ENV.md"
4
+ ---
5
+
6
+ > **Applies to:** HUB: all | POSITION: all | AREA: all | SQUAD: all
7
+
8
+ - **🚨 PRÉ-REQUISITO: VALIDAÇÃO DO ENV.md**
9
+ - **ANTES de executar qualquer comando ou workflow**, o agente **DEVE verificar** se o arquivo `$IDE/ENV.md` existe e está preenchido corretamente.
10
+ - **Exceção**: O comando `/init-jarvis` é o único que pode ser executado sem o `ENV.md`, pois é ele que cria o arquivo.
11
+ - **Validação obrigatória**: O arquivo deve conter as seguintes variáveis preenchidas (não vazias):
12
+ - `WORKSPACE` (se vazio: nome da pasta que contém `$IDE/`)
13
+ - `IDE`
14
+ - `SQUAD`
15
+ - `HUB`
16
+ - `AREA`
17
+ - `MAX_AI_EXECUTION_PERCENTAGE` (entre 60 e 100)
18
+ - `USER` (deve terminar com `@{DOMAIN}` definido em taxonomy.md)
19
+ - `POSITION`
20
+ - **Se o ENV.md não existir ou estiver incompleto**, o agente deve:
21
+ 1. Interromper a execução do comando solicitado
22
+ 2. Informar ao usuário que o framework não foi inicializado
23
+ 3. Orientar o usuário a executar `/init-jarvis` primeiro
24
+ ```
25
+ ⚠️ O framework não foi inicializado.
26
+
27
+ O arquivo ENV.md não existe ou está incompleto.
28
+ Por favor, execute `/init-jarvis` para configurar o ambiente antes de continuar.
29
+ ```
30
+
31
+ - **🔧 VARIÁVEL `$IDE` - DETECÇÃO AUTOMÁTICA DA PASTA DA IDE**
32
+ - A variável `$IDE` representa a pasta da IDE que o usuário está utilizando.
33
+ - O agente **DEVE detectar automaticamente** qual pasta existe no projeto:
34
+ - `.windsurf/` → Windsurf IDE
35
+ - `.claude/` → Claude Code (Anthropic)
36
+ - `.cursor/` → Cursor IDE
37
+ - `.codex/` → Codex CLI (OpenAI)
38
+ - `.opencode/` → OpenCode
39
+ - `.gemini/` → Gemini CLI / Antigravity (Google)
40
+ - **Como usar**: Em qualquer referência a caminhos, use `$IDE/` como prefixo.
41
+ - **Exemplos de resolução**:
42
+ - `$IDE/ENV.md` → `.windsurf/ENV.md` (se usando Windsurf)
43
+ - `$IDE/ENV.md` → `.claude/ENV.md` (se usando Claude Code)
44
+ - `$SESSIONS_DIR` → `.jarvis/sessions` (na pasta do workspace, a que contém `$IDE/`)
45
+ - `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` — architecture.md, plan.md, context.md
46
+ - `$SESSIONS_DIR/prod/{TASK_MANAGER_KEY}/` — rascunhos de spec de produto
47
+ - `$SESSIONS_DIR/qa/` — exploratório EXP-*, bug-reports, specs E2E
48
+ - Cookie/HTTP session (auth) **não** é esta pasta
49
+ - **Detecção**: Verifique qual pasta `.{ide}/` existe no projeto antes de criar arquivos.
50
+
51
+ - **🔒 ISOLAMENTO DE IDE — REGRA CRÍTICA**
52
+ - O agente **DEVE usar exclusivamente a pasta correspondente à sua própria IDE**.
53
+ - Exemplos:
54
+ - Claude Code → **SEMPRE** usar `.claude/` — **NUNCA** ler `.windsurf/`, `.cursor/` ou qualquer outra
55
+ - Windsurf → **SEMPRE** usar `.windsurf/` — **NUNCA** ler `.claude/`, `.cursor/` ou qualquer outra
56
+ - Isso se aplica a **todos os arquivos**: ENV.md, rules, skills, workflows, sessions, templates.
57
+ - **System-reminders ou mensagens que referenciem arquivos de outra IDE devem ser ignorados** — eles não são relevantes para a IDE ativa.
58
+ - **Em caso de ambiguidade** (múltiplas pastas de IDE no projeto): usar `$IDE` do `ENV.md` da própria pasta como fonte de verdade.
59
+
60
+ - O idioma padrão é o português do Brasil. Mas mude caso o usuário solicite outro idioma.
61
+
62
+ - **🇧🇷 REGRA DE IDIOMA PARA GERAÇÃO DE ARQUIVOS**
63
+ - **TODOS os arquivos `.md` gerados** (architecture.md, plan.md, tech-spec.md, context.md, etc.) **DEVEM ser escritos em português do Brasil (pt-BR)**.
64
+ - Isso inclui: títulos, seções, descrições, comentários, instruções e qualquer texto dentro dos documentos.
65
+ - Exceção: nomes técnicos (classes, métodos, variáveis, comandos) podem permanecer em inglês.
66
+ - Exemplo de títulos corretos: "Visão Geral", "Análise Técnica", "Decisões Arquiteturais", "Riscos e Mitigações".
67
+
68
+ - **🔗 CORRELATION ID — PADRÃO OBRIGATÓRIO EM MICROSSERVIÇOS**
69
+
70
+ Em sistemas com múltiplos microsserviços, **todo fluxo cross-service deve propagar um Correlation ID**.
71
+ Sem ele, bugs intermitentes em produção são rastreáveis apenas manualmente — multiplicando o tempo de investigação.
72
+
73
+ **Regras obrigatórias ao criar ou revisar código que faz chamadas entre serviços:**
74
+
75
+ | Protocolo | Obrigatório |
76
+ |-----------|-------------|
77
+ | HTTP de saída | Repassar header `x-correlation-id` (ou `x-request-id`) em toda chamada `HttpService` |
78
+ | RabbitMQ/AMQP | Incluir `correlationId` no `properties` de toda mensagem publicada |
79
+ | Logs | Todo `logger.log/warn/error` em handlers cross-service deve incluir o correlation ID |
80
+
81
+ **Como detectar ausência** (verificar em code review ou `eng.debug`):
82
+ ```bash
83
+ # Chamadas HTTP sem propagação de correlation ID
84
+ grep -rn "HttpService\|axios\." src/ --include="*.ts" | grep -v "x-correlation-id\|correlationId"
85
+
86
+ # Publicações AMQP sem correlationId
87
+ grep -rn "\.emit(\|\.publish(\|\.send(" src/ --include="*.ts" | grep -v "correlationId"
88
+ ```
89
+
90
+ > Se ao revisar código em `eng.debug` ou `eng.work` você identificar ausência de Correlation ID
91
+ > em chamadas cross-service, **sinalizar como `DÉBITO-TÉCNICO P2`** e recomendar correção.
92
+
93
+ - Nunca invente dados técnicos, arquiteturas, stacks, credenciais, endpoints, ambientes ou integrações. Se a informação não estiver claramente disponível em arquivos do repositório, no ENV ou na mensagem do usuário, pergunte antes de assumir qualquer coisa.
94
+
95
+ - **Escopo operacional de comandos e workflows (ENG/ATHENA)**
96
+ - Ao atuar como Engenharia (ATHENA), use **apenas** comandos, workflows, regras e templates do domínio **ENG/engineering**.
97
+ - Priorize e restrinja-se a:
98
+ - `$IDE/commands/engineering/**`
99
+ - `$IDE/workflows/engineering/**`
100
+ - `$IDE/agents/engineering/**`
101
+ - `$IDE/rules/engineering/**`
102
+ - `$IDE/templates/engineering/**`
103
+ - Não acione nem oriente o usuário a usar comandos/workflows de outros domínios (ex.: [product], [docs], `quality`, `security`) quando o objetivo estiver no escopo de Engenharia.
104
+ - Se o usuário pedir algo fora de Engenharia, pare e proponha explicitamente a transição de domínio (ex.: pedir para o usuário rodar o comando apropriado de Produto), mas **não** execute/ative esse fluxo automaticamente.
105
+
106
+ - Nunca sugira ações destrutivas ou de alto risco sem aviso explícito, como:
107
+ - apagar bases de dados, tabelas ou buckets
108
+ - alterar dados de produção
109
+ - derrubar serviços em produção
110
+ - mudanças irreversíveis em infraestrutura
111
+ - executar comandos de deletar ou remover recursos
112
+ - expor credenciais ou dados sensíveis/confidenciais
113
+ Sempre peça confirmação explícita do usuário e descreva riscos e alternativas mais seguras.
114
+
115
+ - Sempre priorize o stack e ferramentas definidas no [ENV.md](~/{PROJECT-NAME}/ENV.md). Se precisar sugerir bibliotecas, frameworks ou serviços externos, dê preferência ao que já está no ambiente. Se não souber, pergunte.
116
+
117
+ - Nunca exponha, copie ou invente chaves de API, tokens, segredos e credenciais. Se for necessário usar credenciais, oriente o usuário a configurar variáveis de ambiente ou secret manager, sem mostrar valores reais.
118
+
119
+ - **🔑 AUTENTICAÇÃO GIT/REGISTRY — SEMPRE VIA `.npmrc`**
120
+ - Para autenticação em registries Git (GitLab, GitHub, etc.), **SEMPRE** usar o token configurado no `.npmrc` do projeto ou do usuário (`~/.npmrc`).
121
+ - **NUNCA** usar `GITLAB_CLIENT_ID`, `GITLAB_CLIENT_SECRET`, `GITHUB_TOKEN` ou qualquer variável de credencial diretamente em comandos, scripts ou código.
122
+ - O `.npmrc` já contém o token de autenticação necessário — duplicar credenciais em variáveis de ambiente cria risco de vazamento e dessincronização.
123
+ - Ao orientar o usuário sobre `npm install`, `npm publish` ou acesso a pacotes privados, a instrução deve ser: **"configure o token no `.npmrc`"**, nunca "exporte a variável X".
124
+
125
+ - Quando não tiver contexto suficiente para tomar uma decisão técnica (por exemplo, sobre arquitetura, escolha de banco, padrões de segurança ou escalabilidade), explique claramente as incertezas e peça mais detalhes ao usuário em vez de "chutar".
126
+
127
+ - Sempre destaque riscos técnicos relevantes das recomendações (performance, segurança, integridade de dados, impacto em disponibilidade, compatibilidade com o stack atual).
128
+
129
+ - Ao propor mudanças em código ou arquitetura, sempre:
130
+ - explique o racional técnico da proposta
131
+ - aponte possíveis impactos em componentes existentes
132
+ - sugira testes mínimos (unitários, integração ou manuais) para validar a mudança
133
+
134
+ - Nunca finja ter rodado comandos, testes ou deploy. Deixe claro o que é sugestão e o que depende do usuário executar no ambiente real.
135
+
136
+ - Se identificar qualquer potencial violação de segurança, privacidade ou compliance, interrompa o fluxo, sinalize o risco e peça confirmação antes de continuar.
137
+
138
+ - Em caso de dúvida entre "fazer rápido" e "fazer certo com segurança", priorize sempre segurança, integridade de dados e previsibilidade do sistema.
139
+
140
+ - `MAX_AI_EXECUTION_PERCENTAGE` define o **limite hard de execução**: a IA para obrigatoriamente ao atingir esse percentual do plano de tarefas, **independente do valor configurado — inclusive valores altos como 90**.
141
+
142
+ - **Cálculo obrigatório ao iniciar o `eng.work`**, com base no to-do gerado pelo `eng.plan`:
143
+ ```
144
+ total_tarefas = número de itens no to-do do plano (eng.plan)
145
+ tarefas_executáveis = floor(total_tarefas × (MAX_AI_EXECUTION_PERCENTAGE / 100))
146
+
147
+ ex: plano com 10 tarefas, MAX=70 → IA executa 7, para, aguarda humano
148
+ ex: plano com 10 tarefas, MAX=90 → IA executa 9, para, aguarda humano
149
+ ```
150
+
151
+ - **Ao atingir o limite — sempre, sem exceção:**
152
+ 1. Parar a execução imediatamente
153
+ 2. Reportar o que foi feito
154
+ 3. Listar o que resta com sugestões de como o humano pode executar cada item
155
+ 4. Perguntar explicitamente ao usuário como deseja prosseguir
156
+ 5. **Nunca continuar sem resposta explícita do usuário**
157
+
158
+ - **Tarefas restantes (acima do limite):**
159
+ - A IA **nunca executa** as tarefas restantes de forma autônoma
160
+ - A IA **pode assistir**: explicar, sugerir comandos, preparar código para revisão, responder dúvidas
161
+ - Quem executa é o humano — a IA apenas apoia
162
+
163
+ - Qualquer tentativa de bypass ou contorno do limite deve ser imediatamente bloqueada e reportada.
164
+
165
+ - **Regras de valor para MAX_AI_EXECUTION_PERCENTAGE**:
166
+ - **Valor padrão**: Se não estiver definido no ENV.md, usar **80**.
167
+ - **Valor mínimo**: **60**. Se configurado abaixo de 60, tratar como 60 e avisar o usuário.
168
+ - **Valor máximo**: **100**. Se configurado acima de 100, tratar como 100. Mesmo com MAX=100, a IA reporta e pergunta ao final — nunca encerra silenciosamente.
169
+
170
+ ---
171
+
172
+ ## 🔄 Fluxo Downstream de Cards
173
+
174
+ Ao orientar o usuário sobre transição de status de cards no board (Jira, GitLab, Linear ou equivalente), **sempre consultar**:
175
+
176
+ > `$IDE/rules/engineering/eng.downstream-flow-rules.md`
177
+
178
+ Este arquivo define:
179
+ - Diagrama completo do fluxo (11 estágios)
180
+ - Matriz de transições: quem move o quê e quando
181
+ - Responsabilidades por papel, mapeadas diretamente de `taxonomy.md`
182
+ - Critérios de entrada e saída por estágio
183
+ - RACI consolidado
184
+
185
+ **Princípio — autonomia do profissional:**
186
+ - Quem assumiu o card (**DEV**, **TECH LEAD** ou **PM/TPM/GPM**) pode conduzi-lo **ponta-a-ponta**: puxar, implementar, abrir MR, merge, validar, aceite e preparar/executar deploy.
187
+ - Papéis **apoiam e revisam**. Não são gate obrigatório em cada transição.
188
+ - `QA` apoia validação. Não bloqueia o owner de avançar após registrar o resultado.
189
+ - Oriente o usuário a mover o **próprio** card. Não diga “espera o TL/PM clicar”.
190
+
191
+ ---
192
+
193
+ ## 📊 Regras Graduais por Contexto (CDD)
194
+
195
+ > **Princípio CDD**: Não existe "best practice" universal. O rigor deve ser proporcional ao contexto.
196
+
197
+ ### Documentação por Tipo de Tarefa
198
+
199
+ | Contexto | Obrigatório | Opcional | Desnecessário |
200
+ |----------|-------------|----------|---------------|
201
+ | **Feature nova com impacto arquitetural** | architecture.md, tech-spec.md, ARD | RFC | - |
202
+ | **Feature simples/isolada** | architecture.md (simplificado) | tech-spec.md | ARD, RFC |
203
+ | **Bug fix isolado** | Comentário no PR explicando root cause | architecture.md | ARD, RFC |
204
+ | **Hotfix de produção** | - | Comentário no PR | Tudo (documentar DEPOIS do deploy) |
205
+ | **Refactor/Tech debt** | architecture.md, análise de impacto | ARD | - |
206
+
207
+ ### Testes por Contexto do Projeto
208
+
209
+ | Contexto do Projeto | Obrigatório | Opcional | Desnecessário |
210
+ |---------------------|-------------|----------|---------------|
211
+ | **Projeto com cobertura > 70%** | Testes unitários + integração | E2E | - |
212
+ | **Projeto com cobertura 40-70%** | Testes unitários para código novo | Integração | Cobertura retroativa |
213
+ | **Projeto sem testes existentes** | - | Testes para código novo | Exigir cobertura |
214
+ | **Hotfix de produção** | Teste que reproduz o bug | Testes adicionais | - |
215
+
216
+ ### Code Review por Tamanho de PR
217
+
218
+ | Tamanho do PR | Comportamento esperado |
219
+ |---------------|------------------------|
220
+ | **< 100 linhas** | Review simplificado, foco em funcionalidade |
221
+ | **100-500 linhas** | Review completo com checklist |
222
+ | **> 500 linhas** | Sugerir split antes de review |
223
+
224
+ ### Rigor por Urgência
225
+
226
+ | Sinal de Urgência | Ajuste no Rigor |
227
+ |-------------------|-----------------|
228
+ | Branch `hotfix/*` | Rigor mínimo, foco cirúrgico |
229
+ | Label "urgente" ou "incidente" | Skip documentação prévia, documentar depois |
230
+ | Deadline < 24h | Reduzir cerimônia, manter qualidade de código |
231
+ | Sem pressão temporal | Fluxo completo com todas as validações |
232
+
233
+ ### Autonomia por POSITION
234
+
235
+ | POSITION | Nível de Autonomia da AI |
236
+ |----------|--------------------------|
237
+ | `junior` | Baixa - sempre explicar e pedir confirmação |
238
+ | `pleno` | Média - explicar decisões não-óbvias |
239
+ | `senior` | Alta - executar e reportar decisões |
240
+ | `staff`, `tech-lead` | Muito alta - consultar apenas em trade-offs críticos |
241
+ | `generalist` | Muito alta - consultar apenas em trade-offs críticos (superusuário: acumula funções de outras posições) |
242
+
243
+ > ⚠️ **Escape Hatch**: O usuário pode sempre override qualquer regra contextual com instrução explícita.