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.
- package/AGENTS.md +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- 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
|
+
```
|