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,479 @@
1
+ ---
2
+ description: Fluxo de trabalho de Engenharia para debugging e incidentes
3
+ globs:
4
+ alwaysApply: false
5
+ recommended_model: claude-sonnet-4-20250514
6
+ model_tier: very_high
7
+ model_justification: Debugging requer raciocínio complexo, formulação de hipóteses, análise de evidências e correlação de múltiplas fontes de informação
8
+ ---
9
+
10
+ # Workflow de Engenharia – Debugging e Incidentes
11
+
12
+ ## Objetivo
13
+
14
+ Guiar o assistente de Engenharia (ENG) na análise de bugs e incidentes,
15
+ formulando hipóteses de causa raiz e sugerindo passos seguros de investigação,
16
+ sempre respeitando `$IDE/rules/engineering/eng-rules.md`.
17
+
18
+ ---
19
+
20
+ ## Recursos e Dependências
21
+
22
+ > Carregar antes de iniciar qualquer passo.
23
+
24
+ ### Agent
25
+ - **`$IDE/agents/engineering/eng.bug-hunter.md`** — persona ativa durante todo o workflow
26
+ - Define postura investigativa, calibração por urgência/POSITION e checklist de qualidade
27
+
28
+ ### Rules
29
+ - **`$IDE/rules/engineering/eng-rules.md`** — regras obrigatórias de engenharia
30
+ - Inclui: Correlation ID obrigatório, fluxo downstream de cards, rigor por contexto (CDD)
31
+
32
+ ### Skills invocados durante o workflow
33
+
34
+ | Passo | Skill | Condição |
35
+ |-------|-------|----------|
36
+ | Passo 0 | `/context-detect` | Se `ENABLE_CDD=true` no ENV.md |
37
+ | Passo 1.0 | `mcp__claude_ai_Atlassian__getJiraIssue` | Se Jira key fornecida |
38
+ | Passo 1.5 | `Read` / `Grep` / `Glob` (leitura do repo) | **Sempre** — obrigatório antes de formular hipóteses |
39
+ | Passo 2.5 | `/eng-ms-trace` | Se bug suspeito de cruzar serviços |
40
+ | Passo 6 | `/eng-qa-unit-test` | Para criar teste de regressão da correção |
41
+ | Passo 7 | `/bug-report create` | Para cada débito técnico ou melhoria identificada |
42
+ | Conclusão | `mcp__claude_ai_Atlassian__addCommentToJiraIssue` | Sempre — atualizar o card com findings |
43
+
44
+ ### Próximos workflows (pós-debug)
45
+ - `eng.plan {TASK_MANAGER_KEY}` — se bug complexo com tradeoffs (decidido no Passo 5.5)
46
+ - `eng.work {TASK_MANAGER_KEY}` — se correção cirúrgica direta (decidido no Passo 5.5)
47
+
48
+ ---
49
+
50
+ ## Passo 0 – Análise de Contexto (CDD)
51
+
52
+ > 🎯 **Objetivo**: Adaptar o rigor e urgência da investigação com base no contexto.
53
+ > 📚 **Skill**: Use `/context-detect` se existir uma sessão ativa
54
+ > ⚙️ **Configurável**: Esta fase é opcional e controlada pela variável `ENABLE_CDD` no ENV.md
55
+
56
+ **Verificação de Ativação:**
57
+
58
+ Antes de herdar o contexto, verifique se o CDD está habilitado:
59
+
60
+ ```bash
61
+ grep "^ENABLE_CDD=" $IDE/ENV.md
62
+ ```
63
+
64
+ - Se `ENABLE_CDD=false` ou não definida → **Pular esta fase** e usar comportamento padrão (Passo 1)
65
+ - Se `ENABLE_CDD=true` → Herdar contexto normalmente
66
+
67
+ ### 0.1 Herdar Contexto (se disponível)
68
+
69
+ Se existir arquivo `context.md` na sessão (gerado por `/context-detect`):
70
+
71
+ ```bash
72
+ # Localização: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/context.md
73
+ ```
74
+
75
+ ```yaml
76
+ CONTEXT_PROFILE:
77
+ tipo: [hotfix|bugfix|feature|refactor]
78
+ urgencia: [normal|alta|baixa]
79
+ rigor: [mínimo|padrão|alto]
80
+ comunicacao: [didático|direto|estratégico]
81
+ autonomia: [baixa|média|alta]
82
+ ```
83
+
84
+ ### 0.2 Calibração por Urgência
85
+
86
+ | urgencia | Comportamento no Debug |
87
+ |----------|------------------------|
88
+ | `alta` | Fast track: foco em solução rápida, documentação mínima, hipóteses diretas |
89
+ | `normal` | Investigação completa, documentar hipóteses, validações |
90
+ | `baixa` | Análise profunda, considerar melhorias estruturais |
91
+
92
+ ### 0.3 Detecção de Urgência por Palavras-Chave
93
+
94
+ Mesmo sem `context.md`, identifique sinais na mensagem do usuário:
95
+
96
+ | Sinal | Urgência Detectada |
97
+ |-------|--------------------|
98
+ | `produção`, `incidente`, `urgente`, `cliente afetado` | `alta` |
99
+ | `staging`, `bug`, `erro` | `normal` |
100
+ | `investigar`, `entender`, `quando puder` | `baixa` |
101
+
102
+ ### 0.4 Calibração por POSITION (do ENV.md)
103
+
104
+ | Categoria | POSITION | Comportamento |
105
+ |-----------|----------|---------------|
106
+ | Técnico Junior | `junior`, `pleno` | Explicar hipóteses detalhadamente, sugerir leituras |
107
+ | Técnico Sênior | `senior`, `specialist` | Ser direto, focar em evidências críticas |
108
+ | Liderança | `tech-lead`, `staff`, `pm`, `tpm`, `gpm`, `cto`, `principal` | Incluir impacto em negócio, comunicação para stakeholders |
109
+
110
+ > ⚠️ **Valor padrão**: Se POSITION não definido, usar comportamento de `pleno`
111
+
112
+ ---
113
+
114
+ ## Passo 1 – Coletar sintomas e contexto
115
+
116
+ ### 1.0 – Auto-fetch do card Jira (se Jira key fornecida)
117
+
118
+ > ⚡ **Automático**: Se o usuário passou uma Jira key (ex: `eng.debug PROJ-123`), buscar o card
119
+ > antes de fazer qualquer pergunta — evita o usuário ter que copiar e colar o conteúdo.
120
+
121
+ Se houver uma Jira key nos argumentos, usar o MCP Atlassian:
122
+
123
+ ```
124
+ mcp__claude_ai_Atlassian__getJiraIssue({ issueKey: "{TASK_MANAGER_KEY}" })
125
+ ```
126
+
127
+ Extrair do card e registrar:
128
+ - **Título** e **descrição** do bug
129
+ - **Passos para reproduzir** (se documentados)
130
+ - **Ambiente** (dev / staging / produção)
131
+ - **Serviços mencionados** (implícitos ou explícitos)
132
+ - **Correlation ID / Request ID** (se houver nos comentários ou anexos)
133
+ - **Stack trace ou logs** anexados
134
+
135
+ > Se o MCP Atlassian não estiver disponível, pedir ao usuário que cole o conteúdo do card.
136
+
137
+ Com o card lido, **não perguntar informações que já estão documentadas** — ir direto para o que
138
+ está faltando ou precisa de esclarecimento.
139
+
140
+ ### 1.1 – Complementar o que o card não cobre
141
+
142
+ Após ler o card (ou sem card), verificar se ainda faltam:
143
+
144
+ - **Correlation ID ou Request ID** — fundamental para cruzar logs entre serviços
145
+ - **Frequência**: é recorrente? intermitente? acontece para todos os usuários?
146
+ - **Mudança recente** que pode ter causado: deploy, feature flag, migração, alteração de infra
147
+ - **Logs ou stack traces** não anexados ao card
148
+
149
+ Organizar todas as informações coletadas em:
150
+
151
+ ```
152
+ Jira: {TASK_MANAGER_KEY} — {título}
153
+ Sintoma: {descrição objetiva}
154
+ Ambiente: {dev|staging|produção}
155
+ Serviço de entrada: {serviço onde o bug se manifesta}
156
+ Correlation ID: {valor ou "não disponível"}
157
+ Frequência: {recorrente|intermitente|uma vez}
158
+ Mudança recente: {sim: descrever | não | desconhecido}
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Passo 1.5 – Leitura do código antes de formular hipóteses
164
+
165
+ > ⚡ **Sempre executar** — hipóteses sem leitura de código são especulação. Este passo é obrigatório
166
+ > independente do bug ser single-service ou multi-service.
167
+
168
+ ### 1.5.1 – Localizar o ponto de entrada no código
169
+
170
+ A partir do `Serviço de entrada` e do stack trace/endpoint coletados no Passo 1:
171
+
172
+ ```bash
173
+ # Se há arquivo:linha no stack trace — ler o contexto direto
174
+ # Ler ±20 linhas ao redor da linha mencionada
175
+
176
+ # Se há apenas endpoint — localizar o handler
177
+ grep -rn "'{endpoint}'\|\"/{rota}\"" src/ --include="*.ts" -l
178
+
179
+ # Se há nome de função/método no stack trace — localizar
180
+ grep -rn "async {nomeFuncao}\|function {nomeFuncao}" src/ --include="*.ts"
181
+ ```
182
+
183
+ ### 1.5.2 – Ler o código relevante
184
+
185
+ Para cada arquivo identificado, ler:
186
+
187
+ 1. **O handler/controller do endpoint** — validações, guards, dependências injetadas
188
+ 2. **O service chamado pelo handler** — lógica de negócio, chamadas a outros serviços
189
+ 3. **O ponto exato do stack trace** (arquivo:linha) — o que aquela linha faz, qual estado espera
190
+
191
+ **O que observar durante a leitura:**
192
+
193
+ | O que procurar | Por que importa |
194
+ |----------------|-----------------|
195
+ | `try/catch` ausente ou genérico | Pode estar engolindo o erro real |
196
+ | Chamada HTTP/AMQP sem timeout | Causa bugs intermitentes por lentidão |
197
+ | `async/await` faltando | Race condition ou promise não tratada |
198
+ | Validação de entrada ausente | Dado inválido chegando na camada errada |
199
+ | Dependência de estado externo (cache, DB, outro serviço) | Falha intermitente por estado inconsistente |
200
+ | Header `x-correlation-id` não propagado | Rastreamento manual necessário |
201
+
202
+ ### 1.5.3 – Registrar o que foi lido
203
+
204
+ Antes de formular hipóteses, documentar:
205
+
206
+ ```
207
+ Arquivo principal inspecionado: {arquivo:linha}
208
+ Fluxo lido: {handler} → {service} → {dependências}
209
+ Observações do código:
210
+ - {observação 1}
211
+ - {observação 2}
212
+ Código relevante (trecho):
213
+ {snippet de no máximo 10 linhas — o ponto mais suspeito}
214
+ ```
215
+
216
+ > Se o repositório não estiver acessível localmente, pedir ao usuário que cole o trecho relevante
217
+ > antes de prosseguir. **Não formular hipóteses sem ter lido o código.**
218
+
219
+ ---
220
+
221
+ ## Passo 2 – Hipóteses iniciais (sem mudar nada ainda)
222
+
223
+ Com base no contexto **e na leitura do código do Passo 1.5**:
224
+
225
+ 1. Liste 2–5 **hipóteses possíveis de causa raiz**.
226
+ 2. Para cada hipótese, indique:
227
+ - por que ela faz sentido **com referência ao trecho de código lido**
228
+ - como poderia ser confirmada ou refutada
229
+ - quais dados adicionais seriam úteis
230
+
231
+ Não sugira ainda mudanças invasivas em código ou infraestrutura.
232
+
233
+ ---
234
+
235
+ ## Passo 2.5 – Rastreamento Multi-Serviço (condicional)
236
+
237
+ > 🎯 **Objetivo**: Automatizar a investigação cross-service antes de montar o plano de investigação.
238
+ > 📚 **Skill**: `/eng-ms-trace`
239
+ > ⚙️ **Condicional**: Ativar somente se sinais de envolvimento multi-serviço estiverem presentes.
240
+
241
+ ### Quando Ativar
242
+
243
+ Ativar este passo se **qualquer** condição abaixo for verdadeira:
244
+
245
+ | Sinal | Exemplo |
246
+ |-------|---------|
247
+ | Usuário menciona outro serviço | "chama o auth", "integração com X", "vai pro notification" |
248
+ | Stack trace contém URL externa | `AxiosError`, `ECONNREFUSED`, URL de outro serviço |
249
+ | Stack trace contém nome de queue/exchange | `account.events`, `driver.commands` |
250
+ | Erro ocorre apenas em fluxos cross-service | Funciona isolado, falha no fluxo completo |
251
+ | Erro vem de HTTP client | `HttpException` com status de serviço externo |
252
+ | Bug intermitente suspeito de timeout | Falha após N segundos, funciona em retry |
253
+
254
+ ### Como Ativar
255
+
256
+ Se os sinais acima estiverem presentes, invocar:
257
+
258
+ ```
259
+ /eng-ms-trace {serviço-entrada} {sintoma-ou-jira-key}
260
+ ```
261
+
262
+ **Exemplos:**
263
+ ```
264
+ /eng-ms-trace account AUTH-403-no-login
265
+ /eng-ms-trace driver "usuário não recebe notificação após aceitar corrida"
266
+ ```
267
+
268
+ ### Usar o Resultado
269
+
270
+ Após `/eng-ms-trace` gerar o `ms-trace-report.md`:
271
+
272
+ - **Substituir** as hipóteses do Passo 2 pelas hipóteses rankeadas do trace report
273
+ - **Focar** o Passo 3 (Plano de Investigação) diretamente no boundary de maior risco
274
+ - **Pular** investigação manual de contratos e chamadas entre serviços
275
+
276
+ > ℹ️ Se o trace não conseguiu inspecionar todos os serviços (ex: token GitLab indisponível),
277
+ > registrar os serviços não inspecionados e incluir investigação manual deles no Passo 3.
278
+
279
+ ---
280
+
281
+ ## Passo 3 – Plano de investigação
282
+
283
+ Monte um plano **incremental e seguro** de investigação:
284
+
285
+ - Quais logs adicionais observar ou adicionar.
286
+ - Quais métricas monitorar.
287
+ - Quais queries/consultas podemos rodar em logs/observabilidade **sem** risco.
288
+ - Testes simples que o usuário pode executar em ambiente controlado.
289
+
290
+ Sempre deixe claro:
291
+
292
+ - quais passos são apenas observação/leitura
293
+ - quais exigem alteração de código, config ou dados
294
+
295
+ ---
296
+
297
+ ## Passo 4 – Análise de evidências
298
+
299
+ À medida que o usuário fornece resultados:
300
+
301
+ 1. Atualize as hipóteses:
302
+ - hipóteses descartadas
303
+ - hipóteses fortalecidas
304
+ 2. Refine o plano de investigação:
305
+ - novos logs/consultas
306
+ - novos cenários de teste
307
+
308
+ Se começar a convergir para uma causa provável, explique:
309
+
310
+ - o mecanismo do bug
311
+ - por que ele não aparecia antes (se aplicável)
312
+ - impacto potencial em outros fluxos
313
+
314
+ ---
315
+
316
+ ## Passo 5 – Propor correções com segurança
317
+
318
+ Somente depois de ter evidências razoáveis:
319
+
320
+ 1. Sugira correções em código/infra **sempre**:
321
+ - explicando a mudança
322
+ - mapeando componentes afetados
323
+ - sugerindo testes específicos após a alteração
324
+
325
+ 2. Se a correção for arriscada:
326
+ - proponha alternativa mais conservadora
327
+ - considere workarounds temporários
328
+ - recomende janelas e estratégias de deploy/rollback
329
+
330
+ ---
331
+
332
+ ## Passo 5.5 – Decisão: Plan obrigatório antes do Work
333
+
334
+ > ⚠️ **REGRA CRÍTICA**: Antes de sugerir o próximo passo, classifique o bug para definir o fluxo correto.
335
+
336
+ O fluxo completo de engenharia é: `start → plan → work → pre-pr → pr`
337
+
338
+ ### Quando exige `eng.plan` antes do `work` (bug complexo)
339
+
340
+ Execute `eng.plan` se qualquer uma dessas condições for verdadeira:
341
+
342
+ - Existem **múltiplas abordagens possíveis** com tradeoffs a avaliar
343
+ - A correção **impacta mais de um componente ou serviço**
344
+ - Há **risco de regressão** em outras funcionalidades
345
+ - A causa raiz envolve **decisão arquitetural** (ex: refatorar vs. corrigir pontualmente)
346
+ - A correção requer **mudanças em infraestrutura, banco ou configuração**
347
+ - O bug é classificado como `BUG-CRÍTICO` ou `SEGURANÇA`
348
+
349
+ Mensagem de transição:
350
+
351
+ ```
352
+ 🗺️ Este bug envolve [tradeoffs / múltiplos componentes / risco de regressão].
353
+
354
+ Antes de implementar, vamos criar um plano para avaliar as alternativas e garantir
355
+ uma correção segura.
356
+
357
+ Próximo passo: → eng.plan {TASK_MANAGER_KEY}
358
+ ```
359
+
360
+ ### Quando pode ir direto ao `work` (bug simples)
361
+
362
+ Vá direto ao `work` somente se **todas** as condições abaixo forem verdadeiras:
363
+
364
+ - Há **uma única correção clara e óbvia**, sem alternativas relevantes
365
+ - O impacto é **cirúrgico** (1 arquivo, 1 função)
366
+ - Não há risco de efeito colateral
367
+ - A correção é trivial (ex: typo, valor errado, condição invertida)
368
+
369
+ Mesmo nesse caso, **informe o usuário** que o `plan` está sendo pulado e o motivo:
370
+
371
+ ```
372
+ ℹ️ A correção é direta e cirúrgica: [descrever brevemente o que será feito].
373
+
374
+ O fluxo padrão é start → plan → work → pre-pr → pr, mas neste caso estamos
375
+ pulando o `plan` porque não há tradeoffs ou riscos que justifiquem o planejamento.
376
+
377
+ Próximo passo: → eng.work {TASK_MANAGER_KEY}
378
+ ```
379
+
380
+ ---
381
+
382
+ ## Passo 6 – Validação pós-correção
383
+
384
+ ### 6.1 – Criar teste de regressão
385
+
386
+ Invocar o skill de testes unitários para criar o teste que reproduz o bug:
387
+
388
+ ```
389
+ /eng-qa-unit-test --mode=regression --bug=”{descrição da causa raiz}” --file=”{arquivo corrigido}”
390
+ ```
391
+
392
+ O teste deve:
393
+ - **Falhar** antes da correção ser aplicada (prova que reproduz o bug)
394
+ - **Passar** após a correção (prova que o bug foi resolvido)
395
+ - Cobrir o edge case específico que causou o bug
396
+
397
+ ### 6.2 – Plano de validação
398
+
399
+ - Testes a rodar antes do deploy (unitários + integração do fluxo afetado).
400
+ - Testes em ambiente de staging com os passos de reprodução do card.
401
+ - Como monitorar produção após o deploy:
402
+ - logs do serviço corrigido (com Correlation ID se disponível)
403
+ - métricas do endpoint/fluxo afetado
404
+ - alertas existentes que deveriam ter disparado
405
+
406
+ ### 6.3 – Critério de “bug resolvido”
407
+
408
+ Definir antes de considerar o card concluído:
409
+ - Comportamento esperado confirmado nos passos de reprodução do card
410
+ - Sem ocorrência em produção por X horas/dias (conforme severidade: P0=24h, P1=48h, P2=1 semana)
411
+
412
+ ---
413
+
414
+ ## Passo 7 – Aprendizados e melhorias estruturais
415
+
416
+ ### 7.1 – Identificar melhorias
417
+
418
+ Quando fizer sentido, recomendar:
419
+
420
+ - Ajustes em observabilidade (melhores logs, métricas, dashboards).
421
+ - Hardening de código (tratamento de erro, timeouts, retries, DLQ).
422
+ - Propagação de Correlation ID (se ausente — verificar contra regra em `eng-rules.md`).
423
+ - Ajustes em processo (ex.: testes que poderiam ter prevenido esse bug).
424
+
425
+ ### 7.2 – Criar cards de débito técnico
426
+
427
+ Para cada melhoria estrutural identificada, criar um card de débito técnico:
428
+
429
+ ```
430
+ /bug-report create \
431
+ --title="[{serviço}] {descrição da melhoria}" \
432
+ --category="DÉBITO-TÉCNICO" \
433
+ --location="{arquivo:linha relevante}" \
434
+ --description="{por que essa melhoria é necessária}" \
435
+ --behavior-actual="{o que existe hoje}" \
436
+ --behavior-expected="{o que deveria existir}" \
437
+ --environment="prod" \
438
+ --linked-to="{TASK_MANAGER_KEY}"
439
+ ```
440
+
441
+ Exemplos típicos após um debug cross-service:
442
+ - `[account] Correlation ID não propagado nas chamadas HTTP para auth` → `DÉBITO-TÉCNICO P2`
443
+ - `[auth] Sem timeout configurado no HttpModule` → `DÉBITO-TÉCNICO P2`
444
+ - `[notification] Sem DLQ na exchange de eventos AMQP` → `DÉBITO-TÉCNICO P1`
445
+
446
+ Sempre deixe claro o que é:
447
+ - ação imediata (incluir no PR atual)
448
+ - melhoria futura (card de débito criado no Jira)
449
+
450
+ ---
451
+
452
+ ## Conclusão – Atualizar card Jira com findings
453
+
454
+ Ao finalizar a investigação, independente do resultado (bug encontrado ou inconclusivo),
455
+ atualizar o card Jira com um comentário estruturado:
456
+
457
+ ```
458
+ mcp__claude_ai_Atlassian__addCommentToJiraIssue({
459
+ issueKey: "{TASK_MANAGER_KEY}",
460
+ comment: "
461
+ ## Resultado da Investigação
462
+
463
+ **Causa raiz identificada**: {sim/não/parcial}
464
+ **Causa raiz**: {descrição ou 'investigação em andamento'}
465
+
466
+ **Serviços envolvidos**: {lista}
467
+ **Boundary com problema**: {boundary ou 'interno ao {serviço}'}
468
+
469
+ **Hipóteses descartadas**: {lista resumida}
470
+
471
+ **Próximo passo**: {eng.plan {TASK_MANAGER_KEY} | eng.work {TASK_MANAGER_KEY} | aguardar mais logs}
472
+
473
+ **Débitos técnicos identificados**: {N cards criados — IDs}
474
+ "
475
+ })
476
+ ```
477
+
478
+ > Isso garante que qualquer dev que abrir o card no futuro encontra o histórico da investigação,
479
+ > sem depender de memória ou Slack.
@@ -0,0 +1,40 @@
1
+ ---
2
+ description: Documentação (engenharia)
3
+ auto_execution_mode: 3
4
+ env_file: "@/ENV.md"
5
+ recommended_model: claude-sonnet-4-20250514
6
+ model_tier: medium
7
+ model_justification: Documentação técnica requer clareza e precisão, mas é menos complexa que implementação de código
8
+ ---
9
+
10
+ # eng.docs
11
+
12
+ Use este workflow quando você quiser ajuda de engenharia para **atualizar/criar documentação**.
13
+
14
+ ## Skills recomendados
15
+
16
+ Quando a solicitação for diretamente sobre escrita/atualização de documentação, use o skill `$IDE/skills/eng-docs-write/SKILL.md` como referência operacional.
17
+
18
+ Quando a solicitação for sobre organização/índice de documentação, use o skill `$IDE/skills/docs-index/SKILL.md`.
19
+
20
+ O assistente deve:
21
+
22
+ 1. Ativar o contexto de Engenharia:
23
+ - $IDE/agents/engineering/eng.agent.md
24
+ - $IDE/rules/engineering/eng-rules.md
25
+ - $IDE/rules/engineering/eng.bump-rules.md
26
+ - $IDE/ENV.md
27
+
28
+ 2. Ativar o agente de documentação:
29
+ - $IDE/agents/engineering/eng.docs-writer.md
30
+
31
+ 3. Coletar contexto mínimo antes de escrever:
32
+ - Qual o objetivo da mudança?
33
+ - Quais arquivos precisam ser atualizados/criados?
34
+ - Há links obrigatórios (PRD/FRD/ARD/RFC) que precisam ser referenciados?
35
+ - Existe um padrão de pasta/nomenclatura para este repositório?
36
+
37
+ 4. Produzir a saída:
38
+ - Propor mudanças objetivas nos arquivos de documentação alvo
39
+ - Destacar riscos (ex.: inconsistência com PRD/ADR, quebra de links, informações incorretas)
40
+ - Sugerir validação mínima (ex.: leitura rápida, links funcionando)
@@ -0,0 +1,84 @@
1
+ ---
2
+ description: Design arquitetural leve
3
+ auto_execution_mode: 3
4
+ env_file: "@/ENV.md"
5
+ recommended_model: claude-sonnet-4-20250514
6
+ model_tier: high
7
+ model_justification: Design arquitetural requer análise de codebase, padrões existentes e propostas de estrutura técnica
8
+ ---
9
+
10
+ # light-arch
11
+
12
+ Este é o comando para disparar o início do desenho de estrutura arquitetural para uma feature.
13
+
14
+ ## Exame
15
+
16
+ 1. Passe pelos cards, pais e filhos se necessário, e construa um entendimento inicial do que precisa ser construído. Pense cuidadosamente sobre o que é solicitado, certifique-se de que entende exatamente:
17
+ - Por que isso está sendo construído (contexto)
18
+ - Qual é o resultado esperado para esta issue? (objetivo)
19
+ - Como deve ser construído, apenas direcionalmente, não em detalhes (abordagem)
20
+ - Se requer usar novas APIs/ferramentas, você as entende?
21
+ - Como deve ser testado?
22
+ - Quais são as dependências?
23
+ - Quais são as restrições?
24
+
25
+ 2. Depois de refletir sobre essas perguntas, elabore os 3-5 esclarecimentos mais importantes necessários para completar a tarefa.
26
+
27
+ 3. Pergunte ao humano essas questões, ao mesmo tempo fornecendo seu entendimento e sugestões. PAUSE para aguardar as respostas do humano.
28
+
29
+ 4. Depois de obter as respostas do humano, considere se precisa fazer mais perguntas. Se sim, faça mais perguntas ao humano. PAUSE para aguardar as respostas do humano.
30
+
31
+ 5. Uma vez que tenha um bom entendimento do que está sendo construído, declare-o claramente de volta ao humano para revisão. Faça isso na forma de um artefato para que seja mais fácil de revisar.
32
+
33
+ 6. Se o humano concordar com seu entendimento, você pode proceder para o próximo passo. Caso contrário, continue iterando juntos até obter aprovação explícita para prosseguir.
34
+
35
+ 7. Se algo que vocês discutiram aqui afeta o que foi escrito nos requisitos, peça permissão ao humano para editar esses requisitos e fazer ajustes seja editando (mudanças estruturais) ou adicionando comentários (esclarecimentos). Se o requisito está em um card do $TASK_MANAGER, edite o card do $TASK_MANAGER.
36
+
37
+ 8. Não proceda para o próximo passo a menos que o humano tenha claramente dado o sinal verde nesta fase.
38
+
39
+ ## Arquitetura
40
+
41
+ Dado seu entendimento do que será construído, você agora procederá ao construção da estrutura arquitetural da feature. O artefato de estrutura arquitetural deve mapear o que está sendo construído, os módulos, as dependências, os convenções, as tecnoregistroias, as restrições, as suposições, os trade-offs, as alternativas, as consequências.
42
+
43
+ Aqui é onde você colocará seu chapéu de super pensamento e considerará o melhor caminho para construir a feature, ao mesmo tempo considerando os convenções e melhores práticas para este projeto.
44
+
45
+ 1. Passe pelo código-fonte relevante, entenda sua organização e propósito e procure pelos arquivos importantes para esta execução.
46
+
47
+ 2. Revise os artefatos de docs técnicos do projeto para assegurar que esta feature se alinhe com nossa visão técnica
48
+
49
+ 3. Construa uma proposta de estrutura arquitetural que se alinhe com os convenções e melhores práticas do projeto.
50
+
51
+ Dicas:
52
+ - Use as ferramentas code-expert (se disponíveis) para encontrar arquivos específicos baseados nas respostas de descoberta
53
+ - Mergulhe fundo em features e convenções similares
54
+ - Analise detalhes específicos de execução
55
+ - Use WebSearch ou context7 para melhores práticas ou documentação de biblioteca (se necessário)
56
+
57
+ Seu artefato de estrutura arquitetural deve incluir:
58
+ - Uma visão geral de alto nível do plataforma (antes e depois da mudança)
59
+ - Componentes afetados e seus relacionamentos, dependências
60
+ - Padrões e melhores práticas que serão mantidos ou introduzidos
61
+ - Dependências externas que serão usadas ou que precisam ser adicionadas ao projeto
62
+ - Restrições e suposições
63
+ - Trade-offs e alternativas
64
+ - Consequências negativas (se houver) ao implementar este desenho
65
+ - Lista dos principais arquivos a serem editados/criados
66
+
67
+ Se ajudar a construir um diagrama MERMAID, sinta-se livre para fazê-lo.
68
+
69
+ 4. Se, em algum ponto, você tiver perguntas ou se encontrar algo que contradiz o que entendeu anteriormente, peça esclarecimento ao humano.
70
+
71
+ 5. Uma vez que tenha um bom entendimento do que está sendo construído, mostre ao usuário na forma de um artefato e aguarde sua aprovação. Iterate juntos até estar pronto. PAUSE para aguardar a aprovação do humano.
72
+
73
+ 6. Quando o humano concordar com seu entendimento, você pode proceder ao próximo passo, salvando os detalhes da estrutura arquitetural no card do $TASK_MANAGER como um comentário ao card original.
74
+
75
+ ## Pesquisa
76
+
77
+ Se não tiver certeza de como uma biblioteca específica funciona, você pode usar Context7 e Perplexity para buscar informações sobre ela. Então, não tente adivinhar.
78
+
79
+ <task_manager_key>
80
+ #$ARGUMENTS
81
+ </task_manager_key>
82
+
83
+ > 📁 **Padrão de Nomenclatura**: A pasta da sessão será criada com o `TASK_MANAGER_KEY` em **lowercase**.
84
+ > Exemplo: `TASK-123` → `$SESSIONS_DIR/eng/task-123/`