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,359 @@
1
+ ---
2
+ trigger: always_on
3
+ ---
4
+
5
+ > **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
6
+
7
+ # Regras do Workflow PR (Pull Request / Merge Request)
8
+
9
+ ## Propósito
10
+
11
+ O workflow `pr` tem como objetivo **criar a branch, commitar as alterações e abrir um Merge Request** seguindo os padrões do time.
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
+ **→ PARAR. Não executar nenhuma fase.**
31
+
32
+ ### Regra 0.2 — Proibido executar em branch protegida
33
+
34
+ Verificar branch atual:
35
+
36
+ ```bash
37
+ git branch --show-current
38
+ ```
39
+
40
+ Se for `main`, `master`, `develop`, `staging` ou `homolog`:
41
+
42
+ ```
43
+ 🚫 BLOQUEADO: Você está em uma branch protegida ({BRANCH_ATUAL}).
44
+
45
+ Este workflow só pode ser executado em uma branch de feature.
46
+ Execute /eng.start {TASK_MANAGER_KEY} primeiro para criar a branch correta.
47
+
48
+ Branch esperada: {TASK_MANAGER_KEY}-{titulo-kebab-case}
49
+ ```
50
+
51
+ **→ PARAR. Não executar nenhuma fase.**
52
+
53
+ ### Regra 0.3 — Branch deve corresponder ao TASK_MANAGER_KEY
54
+
55
+ Se a branch atual **não contém** o `{TASK_MANAGER_KEY}` no nome:
56
+
57
+ ```
58
+ ⚠️ ATENÇÃO: A branch atual ({BRANCH_ATUAL}) não corresponde à tarefa {TASK_MANAGER_KEY}.
59
+
60
+ Branch atual: {BRANCH_ATUAL}
61
+ Esperado: branch contendo {TASK_MANAGER_KEY}
62
+
63
+ Confirmar que está na branch certa? (s/n)
64
+ ```
65
+
66
+ **→ Aguardar confirmação explícita antes de prosseguir.**
67
+
68
+ ---
69
+
70
+ ## Princípios Fundamentais
71
+
72
+ ### 1. Padrão de Nomenclatura de Branch
73
+
74
+ O nome da branch **DEVE** seguir o padrão:
75
+
76
+ ```
77
+ {TASK_MANAGER_KEY}-{titulo-em-kebab-case}
78
+ ```
79
+
80
+ **Regras:**
81
+ - `TASK_MANAGER_KEY` em **UPPERCASE** (ex: `TASK-123`, `STORY-456`)
82
+ - Título extraído do Jira convertido para **kebab-case**
83
+ - Remover caracteres especiais
84
+ - Substituir espaços por hífens
85
+
86
+ **Exemplos:**
87
+
88
+ | TASK_MANAGER_KEY | Título no Jira | Nome da Branch |
89
+ |----------|----------------|----------------|
90
+ | `TASK-123` | "Implementar autenticação JWT" | `TASK-123-implementar-autenticacao-jwt` |
91
+ | `STORY-456` | "Adicionar botão de logout" | `STORY-456-adicionar-botao-de-logout` |
92
+ | `BUG-789` | "Fix: null pointer em login" | `BUG-789-fix-null-pointer-em-login` |
93
+
94
+ ### 2. Padrão de Commit
95
+
96
+ **Formato da mensagem de commit:**
97
+
98
+ ```
99
+ {TASK_MANAGER_KEY} {tipo}({escopo}): {descrição}
100
+ ```
101
+
102
+ **Tipos permitidos:**
103
+ - `feat`: Nova funcionalidade
104
+ - `fix`: Correção de bug
105
+ - `docs`: Documentação
106
+ - `style`: Formatação (não afeta código)
107
+ - `refactor`: Refatoração
108
+ - `test`: Testes
109
+ - `chore`: Manutenção
110
+
111
+ **Exemplo:**
112
+ ```
113
+ TASK-123 feat(auth): implementar autenticação JWT
114
+ ```
115
+
116
+ Sempre utilizar commits de 1 linha, dividir em vários commits quando for necessário, caso esteja implementando uma tarefa pai, commits de filhas devem conter o TASK_MANAGER_KEY das filhas.
117
+
118
+ ### 3. Branch de Destino
119
+
120
+ O MR deve ser aberto para a branch especificada pelo usuário.
121
+
122
+ **Branches comuns:**
123
+ - `develop` - Para features e bugs
124
+ - `main` - Para hotfixes (com aprovação)
125
+ - `hotfix/{TASK_MANAGER_KEY}-{titulo-em-kebab-case}` - Para correções direto em produção (Apenas MRs com hotfix podem ser abertos diretamente para a branch main
126
+ sempre utiliza a branch main)
127
+
128
+ ---
129
+
130
+
131
+ ## Fluxo de Execução
132
+
133
+ ```
134
+ ┌─────────────────────────────────────────────────────────────┐
135
+ │ │
136
+ │ 1. VALIDAR → Testes passando, lint OK │
137
+ │ ↓ │
138
+ │ 2. CRIAR BRANCH → {TASK_MANAGER_KEY}-{titulo} │
139
+ │ ↓ │
140
+ │ 3. STAGE → git add (arquivos específicos) │
141
+ │ ↓ │
142
+ │ 4. COMMIT → Mensagem padronizada │
143
+ │ ↓ │
144
+ │ 5. PUSH → Enviar para remote │
145
+ │ ↓ │
146
+ │ 6. CRIAR MR (desenvolvedor) → Com template preenchido │
147
+ │ ↓ │
148
+ │ 7. ATUALIZAR JIRA (desenvolvedor) → Mover para "In Review" │
149
+ │ │
150
+ └─────────────────────────────────────────────────────────────┘
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Comportamento Esperado
156
+
157
+ ### Fase 1: Validação
158
+
159
+ 1. **Executar testes**
160
+ ```bash
161
+ npm test # ou comando do projeto
162
+ ```
163
+
164
+ 2. **Verificar lint**
165
+ ```bash
166
+ npm run lint # ou comando do projeto
167
+ ```
168
+
169
+ 3. **Verificar build**
170
+ ```bash
171
+ npm run build # ou comando do projeto
172
+ ```
173
+
174
+ **Se qualquer validação falhar**, corrigir antes de prosseguir.
175
+
176
+ ### Fase 2: Criação da Branch
177
+
178
+ 1. **Obter informações do Jira**
179
+ - TASK_MANAGER_KEY (ex: `TASK-123`)
180
+ - Título da tarefa
181
+
182
+ 2. **Criar branch**
183
+ ```bash
184
+ git checkout -b {TASK_MANAGER_KEY}-{titulo-kebab-case}
185
+ ```
186
+
187
+ 3. **Confirmar criação**
188
+ ```bash
189
+ git branch --show-current
190
+ ```
191
+
192
+ ### Fase 3: Stage e Commit
193
+
194
+ 1. **Adicionar arquivos específicos** (NUNCA usar `git add .`)
195
+ ```bash
196
+ git add {arquivo1} {arquivo2} ...
197
+ ```
198
+
199
+ 2. **Criar commit**
200
+ ```bash
201
+ git commit -m "{TASK_MANAGER_KEY} {tipo}({escopo}): {descrição}"
202
+ ```
203
+
204
+ ### Fase 4: Push
205
+
206
+ 1. **Enviar para remote**
207
+ ```bash
208
+ git push -u origin {nome-da-branch}
209
+ ```
210
+
211
+ ### Fase 5: Criar Merge Request
212
+
213
+ 1. **Preencher template do MR** com:
214
+ - Descrição clara do objetivo
215
+ - Link para o card do Jira
216
+ - Lista de mudanças realizadas
217
+ - Testes executados
218
+ - Checklist de revisão
219
+
220
+ 2. **Definir branch de destino** (conforme solicitado pelo usuário)
221
+
222
+ 3. **Criar MR** fica a cargo do desenvolvedor criar o MR da branch de origem para a destino, você pode retornar o link rápido de criação do MR do gitlab.
223
+
224
+ ### Fase 6: Atualizar Jira
225
+
226
+ 1. Desenvolvedor deve mover o card para "In Review"
227
+
228
+ ---
229
+
230
+ ## Template do Merge Request
231
+
232
+ O MR deve seguir o template em `$IDE/templates/engineering/PR-template.md`:
233
+
234
+ ```markdown
235
+ ## Descrição
236
+
237
+ {Objetivo claro do MR em 2-3 frases}
238
+
239
+ ## Tarefas Relacionadas
240
+
241
+ - [x] [{TASK_MANAGER_KEY}]({TASK_MANAGER_URL_BASE}/browse/{TASK_MANAGER_KEY})
242
+
243
+ ## Mudanças Propostas
244
+
245
+ - {Mudança 1}
246
+ - {Mudança 2}
247
+ - {Mudança N}
248
+
249
+ ## Testes Realizados
250
+
251
+ - {Tipo de teste}: {Resultado}
252
+ - Unitários: ✅ Passando
253
+ - Lint: ✅ OK
254
+
255
+ ## Revisores
256
+
257
+ - @{revisor1}
258
+ - @{revisor2}
259
+
260
+ ## Checklist de Revisão
261
+
262
+ - [x] As mudanças estão alinhadas com os requisitos da tarefa do Jira
263
+ - [x] Os testes foram executados e passaram
264
+ - [x] O código segue as convenções de estilo
265
+ - [ ] A documentação foi atualizada (se necessário)
266
+ ```
267
+
268
+ ---
269
+
270
+ ## Regras de Segurança
271
+
272
+ ### ⛔ NUNCA FAÇA
273
+
274
+ - ❌ `git add .` (adiciona arquivos indesejados)
275
+ - ❌ Commitar arquivos de configuração local
276
+ - ❌ Commitar credenciais ou tokens
277
+ - ❌ Mencionar AI/Claude no PR
278
+ - ❌ [!IMPORTANT] PUSH DIRETO PARA `main`/`dev`
279
+
280
+ ### ✅ SEMPRE FAÇA
281
+
282
+ - ✅ Adicionar arquivos específicos
283
+ - ✅ Verificar `git status` antes do commit
284
+ - ✅ Usar mensagens de commit descritivas
285
+ - ✅ Referenciar o TASK_MANAGER_KEY no commit
286
+ - ✅ **Limpar sessão após criar MR**
287
+
288
+ ---
289
+
290
+ ## Erros Comuns a Evitar
291
+
292
+ ### ❌ Anti-padrões
293
+
294
+ 1. **Branch sem padrão**
295
+ - ❌ `feature/login`
296
+ - ✅ `TASK-123-implementar-login`
297
+
298
+ 2. **Commit genérico**
299
+ - ❌ `fix bug`
300
+ - ✅ `fix(auth): corrigir validação de token expirado`
301
+
302
+ 3. **Adicionar tudo**
303
+ - ❌ `git add .`
304
+ - ✅ `git add src/auth.ts src/auth.test.ts`
305
+
306
+ 4. **Esquecer referência**
307
+ - ❌ Commit sem TASK_MANAGER_KEY
308
+ - ✅ Commit começando com `TASK-123`
309
+
310
+ ---
311
+
312
+ ## Checklist de Conclusão
313
+
314
+ Antes de considerar o PR completo:
315
+
316
+ - [ ] Testes passando com cobertura maior 80%
317
+ - [ ] Lint OK
318
+ - [ ] Build OK
319
+ - [ ] Branch criada no padrão `{TASK_MANAGER_KEY}-{titulo}`
320
+ - [ ] Arquivos adicionados individualmente (não `git add .`)
321
+ - [ ] Commit com mensagem padronizada
322
+ - [ ] Commit referencia o TASK_MANAGER_KEY
323
+ - [ ] Push realizado
324
+ - [ ] MR criado com template preenchido
325
+ - [ ] Branch de destino correta
326
+ - [ ] Card do Jira movido para "In Review"
327
+ - [ ] Comentários de code review processados
328
+ - [ ] **Sessão limpa** (`$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` removida)
329
+
330
+ ---
331
+
332
+ ## Limpeza da Sessão
333
+
334
+ ### Por que limpar?
335
+
336
+ 1. **Evitar poluição**: Sessões antigas ocupam espaço e confundem
337
+ 2. **Fonte da verdade**: A documentação oficial está no Jira e no MR
338
+ 3. **Organizacão**: Manter apenas sessões ativas
339
+
340
+ ### O que é removido?
341
+
342
+ ```
343
+ $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
344
+ ├── architecture.md → Removido
345
+ ├── plan.md → Removido
346
+ └── context.md → Removido (se existir)
347
+ ```
348
+
349
+ ### Onde a documentação permanece?
350
+
351
+ - **Card do Jira**: Tech spec anexada, comentários
352
+ - **Merge Request**: Descrição, histórico de commits
353
+ - **Código**: Comentários inline, docstrings
354
+
355
+ ### Comando de limpeza
356
+
357
+ ```bash
358
+ rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
359
+ ```
@@ -0,0 +1,103 @@
1
+ ---
2
+ trigger: always_on
3
+ ---
4
+
5
+ > **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
6
+
7
+ # Regras do Workflow Pre-PR
8
+
9
+ ## Propósito
10
+
11
+ O workflow `pre-pr` valida a branch antes de abrir um Merge Request — revisão de código, testes, documentação e qualidade.
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
+ ## Regras de Validação
69
+
70
+ ### Escopo de Análise
71
+
72
+ Avaliar **apenas** as mudanças da branch atual em relação ao branch base (`main`/`develop`):
73
+
74
+ ```bash
75
+ git diff main...HEAD
76
+ ```
77
+
78
+ ### Evidências Obrigatórias
79
+
80
+ Ao citar "testes passando" ou "validações OK", incluir:
81
+ - Qual comando foi executado
82
+ - Output do resultado (ou smoke test manual se não houver suíte)
83
+
84
+ ### Revalidação após Mudanças
85
+
86
+ Se qualquer gate levar a mudanças de código, reexecutar obrigatoriamente:
87
+ - Revisão técnica do código alterado
88
+ - Testes/validações
89
+
90
+ ---
91
+
92
+ ## Saída Final Obrigatória
93
+
94
+ O workflow **deve sempre** terminar com:
95
+
96
+ 1. **Semáforo de status**:
97
+ - 🟢 Green: pronto para PR
98
+ - 🟡 Yellow: pode abrir PR com ressalvas documentadas
99
+ - 🔴 Red: bloqueado — listar o que impede o PR
100
+
101
+ 2. **Comentário no card** com o status final (via `/eng-task-comment`) — pular se freelance
102
+
103
+ 3. **Aguardar permissão explícita** do usuário para prosseguir para `/eng.pr`
@@ -0,0 +1,246 @@
1
+ ---
2
+ trigger: always_on
3
+ ---
4
+
5
+ > **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
6
+
7
+ # Regras do Workflow Start
8
+
9
+ ## Propósito
10
+
11
+ O workflow `start` tem como **único objetivo** criar o documento de arquitetura (`architecture.md`) para uma nova feature/tarefa. É uma etapa de **planejamento**, não de execução.
12
+
13
+ ---
14
+
15
+ ## Princípios Fundamentais
16
+
17
+ ### 1. Somente Planejamento - NUNCA Execução
18
+
19
+ O `start` é **estritamente proibido** de:
20
+
21
+ | ❌ Proibido | ✅ Permitido |
22
+ | ------------------------------------ | ----------------------------------------- |
23
+ | Criar arquivos de código (.ts, .js) | Criar `architecture.md` |
24
+ | Modificar código existente | Ler código para análise |
25
+ | Executar comandos no terminal | Listar arquivos e estruturas |
26
+ | Instalar dependências | Buscar padrões no codebase |
27
+ | Fazer commits | Criar diretório da sessão |
28
+ | Executar testes | Documentar decisões |
29
+ | Iniciar servidores | Dialogar com usuário |
30
+
31
+ ### 2. Artefato Único
32
+
33
+ O **único artefato** produzido pelo `start` é:
34
+
35
+ ```
36
+ $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md
37
+ ```
38
+
39
+ > 📁 **Padrão**: `TASK_MANAGER_KEY` é o ID do card em **lowercase** (ex: `TASK-123` → `task-123`)
40
+
41
+ Nenhum outro arquivo deve ser criado, modificado ou deletado.
42
+
43
+ ### 3. Aprovação Obrigatória
44
+
45
+ O workflow **só é considerado completo** após:
46
+
47
+ 1. O `architecture.md` estar preenchido
48
+ 2. O usuário revisar o documento
49
+ 3. O usuário **aprovar explicitamente** para prosseguir
50
+
51
+ ---
52
+
53
+ ## Comportamento Esperado
54
+
55
+ ### Fase de Entrada
56
+
57
+ 1. **Receber identificador da tarefa (TASK_MANAGER_KEY)**
58
+ - Ler `TASK_MANAGER` do ENV.md (`eng.integrations-rules.md`)
59
+ - Se não veio em `$ARGUMENTS`: **perguntar e aguardar**
60
+ - Freelance (vazio): número de controle próprio (ex: `F-042`)
61
+ - Com board: id do card naquele vendor
62
+ - Converter para **lowercase** (ex: `F-042` → `f-042`)
63
+
64
+ 2. **Criar diretório da sessão**
65
+ - Caminho: `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/`
66
+ - Se já existir, avisar o usuário
67
+
68
+ ### Fase de Investigação
69
+
70
+ 3. **Coletar informações do requisito**
71
+ - Buscar card no board só se `TASK_MANAGER` estiver preenchido
72
+ - Ler documentação relacionada
73
+ - Analisar código existente (LEITURA APENAS)
74
+
75
+ 4. **Fazer perguntas de clarificação**
76
+ - Mínimo 3, máximo 5 perguntas
77
+ - Aguardar respostas antes de prosseguir
78
+ - Iterar até ter compreensão sólida
79
+
80
+ ### Fase de Documentação
81
+
82
+ 5. **Criar architecture.md**
83
+ - Usar template: `$IDE/templates/engineering/architecture-template.md`
84
+ - Preencher TODAS as seções
85
+ - Ser específico (arquivos reais, nomes de classes)
86
+
87
+ 6. **Apresentar ao usuário**
88
+ - Resumo das principais decisões
89
+ - Riscos identificados
90
+ - Solicitar revisão
91
+
92
+ ### Fase de Aprovação
93
+
94
+ 7. **Aguardar aprovação**
95
+ - Se aprovado → Informar próximos passos
96
+ - Se rejeitado → Iterar no documento
97
+ - NUNCA prosseguir automaticamente
98
+
99
+ ---
100
+
101
+ ## Regras de Nomenclatura
102
+
103
+ ### TASK_MANAGER_KEY (Identificador da Sessão)
104
+
105
+ O nome da pasta de sessão é **sempre o TASK_MANAGER_KEY em lowercase**:
106
+
107
+ ```
108
+ {TASK-123} → {task-123}
109
+ ```
110
+
111
+ **Regras:**
112
+ - Converter para **lowercase**
113
+ - Manter o formato original (projeto-número)
114
+ - Não adicionar sufixos ou descrições
115
+
116
+ **Exemplos:**
117
+ | Input (TASK_MANAGER_KEY) | Nome da Pasta (Sessão) |
118
+ | ------------------- | ------------------------------------- |
119
+ | `TASK-123` | `$SESSIONS_DIR/eng/task-123/` |
120
+ | `STORY-456` | `$SESSIONS_DIR/eng/story-456/` |
121
+ | `BUG-789` | `$SESSIONS_DIR/eng/bug-789/` |
122
+ | `SPIKE-42` | `$SESSIONS_DIR/eng/spike-42/` |
123
+
124
+ ---
125
+
126
+ ## Qualidade do Architecture.md
127
+
128
+ ### Seções Obrigatórias
129
+
130
+ O documento DEVE conter:
131
+
132
+ - [ ] **Contexto** - Por que isso está sendo feito
133
+ - [ ] **Objetivo** - O que será alcançado
134
+ - [ ] **Escopo** - O que está incluído/excluído
135
+ - [ ] **Estado Atual** - Como funciona hoje
136
+ - [ ] **Estado Proposto** - Como funcionará
137
+ - [ ] **Componentes Impactados** - Lista de arquivos
138
+ - [ ] **Decisões Arquiteturais** - Com justificativas
139
+ - [ ] **Dependências** - Internas e externas
140
+ - [ ] **Riscos** - Com mitigações
141
+ - [ ] **Estratégia de Testes** - Tipos e cobertura
142
+
143
+ ### Critérios de Qualidade
144
+
145
+ | Critério | Descrição |
146
+ | --------------------------- | ---------------------------------------------- |
147
+ | **Especificidade** | Usa caminhos reais, não genéricos |
148
+ | **Completude** | Todas as seções preenchidas |
149
+ | **Clareza** | Sem ambiguidades ou jargões indefinidos |
150
+ | **Rastreabilidade** | Links para Jira, docs, código |
151
+ | **Decisões Justificadas** | Cada decisão tem "por quê" |
152
+ | **Riscos Mapeados** | Riscos têm mitigações definidas |
153
+
154
+ ---
155
+
156
+ ## Interação com Usuário
157
+
158
+ ### Perguntas de Clarificação
159
+
160
+ Sempre pergunte sobre:
161
+
162
+ 1. **Escopo** - O que definitivamente NÃO está incluído?
163
+ 2. **Prioridade** - Qual parte é mais crítica?
164
+ 3. **Dependências** - Algo bloqueia esta implementação?
165
+ 4. **Restrições** - Há limitações técnicas conhecidas?
166
+ 5. **Validação** - Como saberemos que está funcionando?
167
+
168
+ ### Comunicação
169
+
170
+ - **Seja claro** sobre o que é fato vs. suposição
171
+ - **Declare incertezas** explicitamente
172
+ - **Não assuma** - sempre pergunte
173
+ - **Aguarde respostas** antes de prosseguir
174
+
175
+ ---
176
+
177
+ ## Erros Comuns a Evitar
178
+
179
+ ### ❌ Anti-padrões
180
+
181
+ 1. **Escapar para execução**
182
+ - "Vou criar o arquivo de teste para validar..."
183
+ - "Deixa eu instalar a dependência para verificar..."
184
+
185
+ 2. **Documentação genérica**
186
+ - "Modificar os arquivos necessários"
187
+ - "Implementar a funcionalidade"
188
+
189
+ 3. **Pular aprovação**
190
+ - Prosseguir sem confirmação explícita do usuário
191
+
192
+ 4. **Assumir requisitos**
193
+ - Decidir escopo sem confirmar com usuário
194
+
195
+ 5. **Ignorar riscos**
196
+ - Não documentar riscos óbvios
197
+
198
+ ### ✅ Boas Práticas
199
+
200
+ 1. **Ser específico**
201
+ - "Modificar `src/services/auth.service.ts` linha ~45"
202
+
203
+ 2. **Justificar decisões**
204
+ - "Escolhemos JWT porque o sistema já usa e..."
205
+
206
+ 3. **Mapear arquivos reais**
207
+ - Usar glob/grep para encontrar arquivos existentes
208
+
209
+ 4. **Documentar trade-offs**
210
+ - "Isso adiciona latência mas simplifica a arquitetura"
211
+
212
+ ---
213
+
214
+ ## Transição para Próxima Etapa
215
+
216
+ Ao finalizar o `start`, informe claramente:
217
+
218
+ ```
219
+ ✅ Architecture.md criado e aprovado!
220
+
221
+ 📄 Documento: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md
222
+
223
+ 📌 Próximos passos:
224
+ 1. eng.plan → Criar plano detalhado com subtarefas
225
+ 2. eng.work → Iniciar implementação
226
+
227
+ ⚠️ Lembre-se: Use eng.plan antes de eng.work
228
+ ```
229
+
230
+ ---
231
+
232
+ ## Checklist de Conclusão
233
+
234
+ Antes de considerar o `start` completo:
235
+
236
+ - [ ] Diretório `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` criado
237
+ - [ ] Arquivo `architecture.md` criado e completo
238
+ - [ ] Template seguido corretamente
239
+ - [ ] Todas as seções obrigatórias preenchidas
240
+ - [ ] Decisões têm justificativas
241
+ - [ ] Riscos têm mitigações
242
+ - [ ] Componentes impactados listados com caminhos reais
243
+ - [ ] Usuário revisou o documento
244
+ - [ ] Usuário aprovou explicitamente
245
+ - [ ] Nenhum código foi executado/criado
246
+ - [ ] Próximos passos comunicados