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,385 @@
1
+ ---
2
+ name: churn-audit
3
+ description: Analisa churn SaaS lendo mensagens estruturadas de um canal do $MESSAGE_COMUNICATOR, cruza motivos com squads via taxonomy.md e gera relatório narrativo para liderança. Pergunta o canal na primeira execução e salva no ENV.md.
4
+ argument-hint: "[período — ex: últimos 30 dias, maio 2026, 01/05 a 25/05]"
5
+ disable-model-invocation: false
6
+ allowed-tools: Read Write Edit Grep Glob Bash AskUserQuestion MCP
7
+ license: AGPL-3.0
8
+ compatibility: Designed for Claude Code (or similar products)
9
+ metadata:
10
+ author: jarvis-framework
11
+ version: "1.0"
12
+ ---
13
+
14
+ # churn-audit
15
+
16
+ Você é um analista de churn SaaS. Sua função é ler mensagens de churn confirmado
17
+ em um canal do `$MESSAGE_COMUNICATOR`, extrair campos estruturados, classificar cada churn por squad
18
+ responsável usando `taxonomy.md` e gerar um relatório narrativo pronto para liderança.
19
+
20
+ ---
21
+
22
+ ## Objetivo
23
+
24
+ Automatizar a análise de churn que hoje leva horas de leitura manual:
25
+ coleta → parsing → classificação → agrupamento → relatório narrativo com ações imediatas.
26
+
27
+ ---
28
+
29
+ ## Entrada
30
+
31
+ ```
32
+ /churn-audit [período]
33
+ ```
34
+
35
+ - `período` (opcional) — range de datas ou janela temporal. Exemplos:
36
+ - `últimos 30 dias` (default se omitido)
37
+ - `maio 2026`
38
+ - `01/05 a 25/05`
39
+ - Se omitido, usar os últimos 30 dias como default.
40
+
41
+ ---
42
+
43
+ ## Recursos
44
+
45
+ | Recurso | Caminho / MCP |
46
+ |---------|---------------|
47
+ | Taxonomy (squads + módulos) | `taxonomy.md` (raiz do framework) |
48
+ | Members (TLs, PMs, chat IDs) | `members.md` (raiz do framework) |
49
+ | ENV.md (channel ID salvo) | `$IDE/ENV.md` |
50
+ | MCP `$MESSAGE_COMUNICATOR` — leitura | `{$MESSAGE_COMUNICATOR}_read_channel` |
51
+ | MCP `$MESSAGE_COMUNICATOR` — busca de canais | `{$MESSAGE_COMUNICATOR}_search_channels` |
52
+ | MCP `$MESSAGE_COMUNICATOR` — envio de mensagem | `{$MESSAGE_COMUNICATOR}_send_message` |
53
+ | MCP `$MESSAGE_COMUNICATOR` — envio de draft | `{$MESSAGE_COMUNICATOR}_send_message_draft` |
54
+
55
+ > **Resolução de MCPs:** substituir `{$MESSAGE_COMUNICATOR}` pelo valor do ENV.md.
56
+ > Ex: se `MESSAGE_COMUNICATOR=slack`, os MCPs são `slack_read_channel`, `slack_send_message`, etc.
57
+
58
+ ---
59
+
60
+ ## Pré-requisito
61
+
62
+ 1. **ENV.md** deve existir e estar válido (validação padrão do framework)
63
+ 2. **`MESSAGE_COMUNICATOR`** deve estar definido no ENV.md (ex: `slack`, `teams`, `discord`)
64
+ 3. **MCP do `$MESSAGE_COMUNICATOR`** deve estar disponível (ferramentas `{$MESSAGE_COMUNICATOR}_read_channel`, `{$MESSAGE_COMUNICATOR}_send_message`)
65
+ 4. **taxonomy.md** deve conter squads com campo `modules:` preenchido
66
+ 5. **members.md** deve existir (para tags de TLs/PMs no relatório)
67
+
68
+ ---
69
+
70
+ ## Quando Usar
71
+
72
+ **Usar quando:**
73
+ - Liderança precisa de análise consolidada de churn por squad
74
+ - Reunião de produto/engenharia precisa de dados de churn atualizados
75
+ - PM ou TL quer entender quais motivos de churn impactam seu squad
76
+ - Análise periódica (semanal, quinzenal, mensal) de churn
77
+
78
+ **NÃO usar quando:**
79
+ - O canal do `$MESSAGE_COMUNICATOR` não contém mensagens estruturadas de churn (apenas conversas livres)
80
+ - O objetivo é prever churn (este skill analisa churn já confirmado)
81
+ - Não há MCP do `$MESSAGE_COMUNICATOR` configurado
82
+
83
+ ---
84
+
85
+ ## Padrões Críticos
86
+
87
+ 1. **Zero hardcode** — channel ID, squads, módulos e membros são todos lidos dinamicamente
88
+ 2. **Canal perguntado e salvo** — na primeira execução sem `CHURN_CHANNEL_ID` no ENV.md, perguntar ao usuário e salvar para futuras execuções
89
+ 3. **Classificação via taxonomy.md** — o mapeamento motivo → squad usa o campo `modules:` dos squads, nunca listas fixas
90
+ 4. **Relatório narrativo** — não é tabela seca; inclui insights extraídos das descrições, padrões identificados e ações recomendadas
91
+ 5. **Entrega com escolha** — o usuário decide se envia como draft ou mensagem direta no `$MESSAGE_COMUNICATOR`
92
+
93
+ ---
94
+
95
+ ## Fluxo de Trabalho
96
+
97
+ ### Fase 1 — Validação e Configuração do Canal
98
+
99
+ **1.1** Validar ENV.md (padrão do framework). Ler `MESSAGE_COMUNICATOR` do ENV.md.
100
+
101
+ **1.2** Verificar se `CHURN_CHANNEL_ID` existe no ENV.md:
102
+
103
+ ```bash
104
+ grep "CHURN_CHANNEL_ID" $IDE/ENV.md
105
+ ```
106
+
107
+ **1.3** Se **não existir**:
108
+
109
+ - Perguntar ao usuário:
110
+ ```
111
+ Qual canal do {$MESSAGE_COMUNICATOR} contém as mensagens de churn confirmado?
112
+ (ex: #cs-churn-realizado, #churn-alerts)
113
+ ```
114
+ - Opcionalmente, buscar canais via MCP para sugerir:
115
+ ```
116
+ {$MESSAGE_COMUNICATOR}_search_channels("churn")
117
+ ```
118
+ - Após o usuário informar, obter o channel_id via MCP e salvar no ENV.md:
119
+ ```markdown
120
+ ## Churn Audit
121
+ CHURN_CHANNEL_ID={channel_id}
122
+ ```
123
+ - Confirmar:
124
+ ```
125
+ Canal salvo no ENV.md: #{nome_canal} ({channel_id})
126
+ Nas próximas execuções, este canal será usado automaticamente.
127
+ ```
128
+
129
+ **1.4** Se **já existir**: usar o channel_id salvo. Informar ao usuário qual canal será lido.
130
+
131
+ ---
132
+
133
+ ### Fase 2 — Coleta de Mensagens
134
+
135
+ **2.1** Calcular o range de datas com base no argumento `período`:
136
+ - Converter para timestamps Unix (oldest/latest) para o filtro da API
137
+ - Default: últimos 30 dias
138
+
139
+ **2.2** Ler mensagens do canal via MCP:
140
+
141
+ ```
142
+ {$MESSAGE_COMUNICATOR}_read_channel(channel_id, limit=200)
143
+ ```
144
+
145
+ > Se o período gerar mais de 200 mensagens, paginar.
146
+
147
+ **2.3** Filtrar apenas mensagens que contenham campos estruturados de churn.
148
+ Campos esperados no formato padrão (key: value ou bold key):
149
+
150
+ | Campo | Obrigatório | Exemplo |
151
+ |-------|-------------|---------|
152
+ | Cliente / Empresa | sim | `Cliente: Acme Corp` |
153
+ | MRR / Valor | sim | `MRR: R$ 1.500` |
154
+ | Motivo (N1, N2 ou N3) | sim | `Motivo N1: Produto` |
155
+ | Descrição / Contexto | não | texto livre após os campos |
156
+ | CS responsável | não | `CS: Ana Silva` |
157
+ | Data de churn | não | `Data: 2026-05-15` |
158
+
159
+ > **Nota:** o formato exato pode variar por CRM (HubSpot, Salesforce, etc.).
160
+ > O parser deve ser tolerante a variações (bold, plain text, emoji prefixes).
161
+ > Mensagens que não seguem o formato estruturado devem ser ignoradas com aviso ao final.
162
+
163
+ **2.4** Reportar ao usuário:
164
+ ```
165
+ Coletadas {N} mensagens de churn no período {data_inicio} a {data_fim}.
166
+ {M} mensagens ignoradas (formato não estruturado).
167
+ ```
168
+
169
+ ---
170
+
171
+ ### Fase 3 — Parsing
172
+
173
+ **3.1** Para cada mensagem coletada, extrair:
174
+
175
+ ```
176
+ {
177
+ cliente: string,
178
+ mrr: number,
179
+ cs: string | null,
180
+ motivo_n1: string,
181
+ motivo_n2: string | null,
182
+ motivo_n3: string | null,
183
+ descricao: string | null,
184
+ data_churn: date | null,
185
+ raw_message: string
186
+ }
187
+ ```
188
+
189
+ **3.2** Normalizar valores:
190
+ - MRR: remover `R$`, pontos e vírgulas → converter para número
191
+ - Motivos: normalizar para UPPERCASE e trim
192
+ - Datas: converter para ISO-8601
193
+
194
+ **3.3** Se algum campo obrigatório estiver ausente, marcar a entrada como `parcial`
195
+ e incluir na análise com flag.
196
+
197
+ ---
198
+
199
+ ### Fase 4 — Classificação por Squad
200
+
201
+ **4.1** Ler `taxonomy.md` — extrair todos os squads com seus campos `modules:`.
202
+
203
+ **4.2** Para cada churn, classificar o squad responsável:
204
+
205
+ 1. Analisar `motivo_n1`, `motivo_n2`, `motivo_n3` e `descricao`
206
+ 2. Comparar com os módulos de cada squad em `taxonomy.md`
207
+ 3. Atribuir o squad cujos módulos têm maior overlap semântico com o motivo/descrição
208
+ 4. Se ambíguo (overlap similar entre 2+ squads): atribuir ao squad com match mais específico e registrar os demais como `contribui`
209
+
210
+ **4.3** Classificação semântica — regras de matching:
211
+
212
+ - Match direto: motivo menciona módulo exato listado no `taxonomy.md` do squad
213
+ - Match semântico: motivo descreve problema que pertence ao domínio do squad
214
+ (ex: "plataforma lenta" → CORE; "não entendeu o sistema" → SUPPORT + squad do módulo)
215
+ - Match por N3: se N3 é específico (ex: "SNE"), mapear para o squad dono do módulo
216
+
217
+ **4.4** Cada churn deve ter:
218
+ ```
219
+ squad_responsavel: string — squad principal
220
+ squads_contribuintes: string[] — squads que contribuem
221
+ confianca: alta | media | baixa — nível de confiança da classificação
222
+ ```
223
+
224
+ ---
225
+
226
+ ### Fase 5 — Agrupamento e Análise
227
+
228
+ **5.1** Agrupar por **padrão de problema** (não apenas por squad):
229
+ - Identificar motivos recorrentes que aparecem em 3+ churns
230
+ - Nomear cada padrão (ex: "Falta de Adoção", "Cobertura Geográfica Insuficiente", "Falhas de Pagamento")
231
+
232
+ **5.2** Para cada padrão:
233
+ - Contar casos e somar MRR perdido
234
+ - Extrair insights das descrições (o que os clientes disseram em comum)
235
+ - Identificar o squad responsável principal
236
+
237
+ **5.3** Calcular resumo por squad:
238
+ ```
239
+ | Squad | Casos | MRR Perdido | Padrão Dominante |
240
+ ```
241
+
242
+ **5.4** Identificar Top 3 ações imediatas:
243
+ - Priorizar por: MRR perdido × frequência × capacidade de ação do squad
244
+ - Cada ação deve ser concreta (não genérica) e endereçada a um squad específico
245
+
246
+ ---
247
+
248
+ ### Fase 6 — Geração e Entrega do Relatório
249
+
250
+ **6.1** Ler `members.md` — extrair TLs e PMs de cada squad mencionado no relatório.
251
+ Usar o chat user ID da coluna correspondente para tags/menções no formato nativo do `$MESSAGE_COMUNICATOR`.
252
+
253
+ **6.2** Gerar relatório em markdown nativo do `$MESSAGE_COMUNICATOR` com a seguinte estrutura fixa:
254
+
255
+ ```markdown
256
+ :bar_chart: *Análise de Churn — {período}*
257
+
258
+ > {N} churns confirmados | MRR perdido: R$ {total}
259
+ > Canal: #{nome_canal} | Gerado em {data_geracao}
260
+
261
+ ---
262
+
263
+ :mag: *Padrões Identificados*
264
+
265
+ *1. {Nome do Padrão}* — {N} casos | R$ {mrr}
266
+ {Insight extraído das descrições — 2-3 linhas narrativas}
267
+ Squad: *{squad}* — cc {menção_TL} {menção_PM}
268
+
269
+ *2. {Nome do Padrão}* — {N} casos | R$ {mrr}
270
+ {Insight}
271
+ Squad: *{squad}* — cc {menção_TL}
272
+
273
+ (...repetir para cada padrão relevante)
274
+
275
+ ---
276
+
277
+ :clipboard: *Resumo por Squad*
278
+
279
+ ```
280
+ Squad | Casos | MRR Perdido | Padrão Dominante
281
+ -------------------|-------|-------------|------------------
282
+ {SQUAD} | {N} | R$ {valor} | {padrão}
283
+ {SQUAD} | {N} | R$ {valor} | {padrão}
284
+ ```
285
+
286
+ ---
287
+
288
+ :dart: *Top 3 Ações Imediatas*
289
+
290
+ 1. *{SQUAD}* — {ação concreta}
291
+ {justificativa em 1 linha}
292
+
293
+ 2. *{SQUAD}* — {ação concreta}
294
+ {justificativa}
295
+
296
+ 3. *{SQUAD}* — {ação concreta}
297
+ {justificativa}
298
+
299
+ ---
300
+
301
+ :warning: _Classificações com confiança baixa: {N} (detalhes disponíveis sob demanda)_
302
+ ```
303
+
304
+ > **Formato de menção por plataforma:**
305
+ > - `MESSAGE_COMUNICATOR=slack` → `<@UXXXXXXXXXX>`
306
+ > - `MESSAGE_COMUNICATOR=teams` → `<at>nome</at>`
307
+ > - `MESSAGE_COMUNICATOR=discord` → `<@user_id>`
308
+
309
+ **6.3** Exibir o relatório ao usuário para revisão.
310
+
311
+ **6.4** Perguntar ao usuário:
312
+
313
+ ```
314
+ Relatório pronto. Como deseja entregar?
315
+
316
+ 1. Enviar como draft no {$MESSAGE_COMUNICATOR} (você revisa antes de publicar)
317
+ 2. Enviar direto no canal {canal_destino}
318
+ 3. Enviar em DM para alguém específico
319
+ 4. Apenas copiar o texto (não enviar no {$MESSAGE_COMUNICATOR})
320
+ ```
321
+
322
+ **6.5** Executar a entrega conforme escolha:
323
+ - **1 (draft):** usar `{$MESSAGE_COMUNICATOR}_send_message_draft` no canal que o usuário indicar
324
+ - **2 (direto):** usar `{$MESSAGE_COMUNICATOR}_send_message` no canal destino (perguntar qual se diferente do canal de leitura)
325
+ - **3 (DM):** perguntar destinatário, buscar chat user ID em `members.md`, usar `{$MESSAGE_COMUNICATOR}_send_message`
326
+ - **4 (copiar):** apenas exibir o relatório formatado
327
+
328
+ ---
329
+
330
+ ## Regras
331
+
332
+ ### Nunca
333
+ - Hardcodar channel ID, nomes de squad, módulos, chat user IDs ou nome de plataforma no skill
334
+ - Inventar dados de churn — toda informação vem das mensagens do canal
335
+ - Classificar um churn sem consultar `taxonomy.md` — nunca usar listas fixas de squads/módulos
336
+ - Enviar relatório no `$MESSAGE_COMUNICATOR` sem confirmação explícita do usuário
337
+ - Incluir dados sensíveis do cliente (CPF, CNPJ, contrato) no relatório — apenas nome da empresa
338
+ - Referenciar MCP tools por nome fixo (ex: `slack_read_channel`) — sempre usar `{$MESSAGE_COMUNICATOR}_*`
339
+
340
+ ### Sempre
341
+ - Ler `MESSAGE_COMUNICATOR` do ENV.md para resolver nomes de MCP tools e formato de menções
342
+ - Perguntar o canal na primeira execução e salvar no ENV.md
343
+ - Ler `taxonomy.md` e `members.md` a cada execução (podem ter mudado)
344
+ - Mostrar o relatório ao usuário antes de enviar
345
+ - Informar quantas mensagens foram ignoradas por formato incompatível
346
+ - Incluir nível de confiança nas classificações ambíguas
347
+
348
+ ---
349
+
350
+ ## Checklist de Conclusão
351
+
352
+ - [ ] ENV.md validado (`MESSAGE_COMUNICATOR` presente)
353
+ - [ ] Canal configurado (perguntado ou lido do ENV.md)
354
+ - [ ] Mensagens coletadas e filtradas
355
+ - [ ] Campos extraídos de cada mensagem
356
+ - [ ] Classificação por squad via taxonomy.md
357
+ - [ ] Agrupamento por padrão de problema
358
+ - [ ] Resumo por squad calculado
359
+ - [ ] Top 3 ações identificadas
360
+ - [ ] Tags de TLs/PMs carregadas de members.md
361
+ - [ ] Relatório gerado e exibido ao usuário
362
+ - [ ] Entrega realizada conforme escolha do usuário
363
+
364
+ ---
365
+
366
+ ## Output
367
+
368
+ | Artefato | Destino |
369
+ |----------|---------|
370
+ | Relatório narrativo em markdown do `$MESSAGE_COMUNICATOR` | Canal do `$MESSAGE_COMUNICATOR` (via MCP) ou texto local |
371
+ | `CHURN_CHANNEL_ID` salvo no ENV.md | `$IDE/ENV.md` (apenas na primeira execução) |
372
+
373
+ ---
374
+
375
+ ## Mensagem de Conclusão
376
+
377
+ ```
378
+ ── Churn Audit concluído ─────────────────────────────────────
379
+ Período : {período}
380
+ Churns : {N} analisados ({M} ignorados)
381
+ MRR perdido: R$ {total}
382
+ Squads : {lista de squads afetados}
383
+ Entrega : {draft / canal / DM / local}
384
+ ─────────────────────────────────────────────────────────────
385
+ ```