Orquestrador principal de tarefas SUS (Sustentacao/Maintenance). Busca a tarefa no Jira, identifica o produto/repo, avalia confianca, e delega para a skill de dominio correta (resolve-analytics, resolve-fvc, ou outra). Apos o fix, chama finalize-sus para Jira + apontamento. Triggers: /resolve-sus SUS-XXXX, /check-sus, 'resolver SUS', 'pegar tarefa SUS', ou qualquer mencao a chaves SUS-XXXX.
Esta skill eh o ponto de entrada para resolver tarefas SUS. Ela NAO resolve o bug diretamente — ela busca a tarefa, entende o que eh, e delega para a skill certa.
/resolve-sus SUS-XXXX
│
├─ Step 0: Marcar hora inicio
├─ Step 1: Carregar padroes aprendidos (sus-lessons.md)
├─ Step 2: Buscar detalhes da tarefa (Playwright + Jira MCP)
├─ Step 3: Identificar produto/repo (repo-mapping + domain-keywords)
├─ Step 4: Avaliar confianca (3 dimensoes)
│
├─ DECISAO: mudar para o projeto correto e usar a skill de la
│ ├─ Analytics/Vaadin6 → cd geovendas-vaadin6 → /resolve-analytics
│ ├─ Forca de Vendas → cd pedidos → /resolve-sus
│ ├─ Integracao .NET → cd geovendas-dotnet → /resolve-sus
│ └─ Outros repos → investigar e resolver direto
│
└─ Step 5: Invocar `finalize-sus` para Jira + apontamento
IMPORTANTE: As skills de dominio agora vivem DENTRO dos projetos:
geovendas-vaadin6/.claude/commands/resolve-analytics.mdpedidos/.claude/commands/resolve-sus.mdgeovendas-dotnet/.claude/commands/resolve-sus.mdPRIMEIRA COISA A FAZER — antes de qualquer outra acao:
date "+%Y-%m-%d %H:%M"
Guardar internamente:
_task_key: chave SUS do argumento (ex: SUS-6279)_date: parte da data (YYYY-MM-DD)_hora_inicio: parte da hora (HH:MM)Esses valores serao usados no final para o apontamento de horas.
Ler ${CLAUDE_PLUGIN_ROOT}/commands/sus-lessons.md.
O QUE EH ISSO: Um arquivo com padroes que ja foram aprendidos em resolucoes anteriores. Por exemplo: "quando a tarefa menciona 'Analytics', o repo eh geovendas-vaadin6".
Esses padroes TEM PRIORIDADE sobre as heuristicas default. Se um padrao diz que "X eh repo Y", confiar nele antes de analisar keywords.
Usar duas fontes para entender a tarefa completamente:
O Playwright captura o visual real da tarefa (incluindo imagens inline, formatacao, anexos).
Navegar ate a issue:
browser_navigate(url: "https://geovendas.atlassian.net/browse/<TASK_KEY>")
Aguardar carregamento:
browser_wait_for(text: "<TASK_KEY>")
Capturar snapshot de acessibilidade (le o texto da descricao):
browser_snapshot()
Capturar screenshot full-page (ve imagens e anexos visuais):
browser_take_screenshot(type: "png", fullPage: true)
Se houver imagens/anexos que precisam de detalhe: clicar e capturar outro screenshot.
Guardar:
_playwright_description: texto completo da descricao_attachment_context: resumo do que foi visto nas imagensSe a navegacao redirecionar para login (URL contem "id.atlassian.com" ou texto "Log in"):
chrome-debug e faca login no Jira."getJiraIssue(cloudId: "geovendas.atlassian.net", issueIdOrKey: "<TASK_KEY>")
Usar para:
Primeiro, ler o ID do dev atual:
echo "$JIRA_ACCOUNT_ID"
Se estiver vazio → parar e informar: "Configure JIRA_ACCOUNT_ID no seu shell (ver sus-lessons.md para instrucoes)."
REGRA ABSOLUTA — nao tem excecao:
assignee.accountId == $JIRA_ACCOUNT_ID (voce) → prosseguirassignee == null (sem dono) → prosseguirAnalisar titulo + descricao para descobrir qual produto/repo eh afetado.
[DOTNET], [B2B], [FV], [CRM], [ETL]sus-lessons.md (Step 1)${CLAUDE_PLUGIN_ROOT}/skills/sus-resolution/references/domain-keywords.md-enm suffix = FV ENMreferences/repo-mapping.md para detalhes):| Produto | Repo Principal | GitHub |
|---|---|---|
| Forca de Vendas | pedidos + geovendas-vaadin6 | tecnologia-ibtech/pedidos |
| FV (ENM) | pedidos-enm + geovendas-vaadin6 | tecnologia-ibtech/pedidos-enm |
| Analytics / Vaadin 6 | geovendas-vaadin6 | tecnologia-ibtech/geovendas-vaadin6 |
| Integracao .NET | geovendas-dotnet | tecnologia-ibtech/geovendas-dotnet |
| StockCentral | geovendas-dotnet/StockCentral | tecnologia-ibtech/geovendas-dotnet |
| B2B | geovendas-b2b | tecnologia-ibtech/geovendas-b2b |
| CRM 360 | geovendas-vue | tecnologia-ibtech/geovendas-vue |
| ETL | geovendas-java8-etl | tecnologia-ibtech/geovendas-java8-etl |
| Vaadin 23 | geovendas-vaadin23 | tecnologia-ibtech/geovendas-vaadin23 |
| FV Malharia | geo-fv-malharia | tecnologia-ibtech/geo-fv-malharia |
Dual-repo (IMPORTANTE):
pedidos (mobile) + geovendas-vaadin6 (web admin) — checar AMBOSpedidos-enm + geovendas-vaadin6 — checar AMBOSAvaliar 3 dimensoes antes de tentar resolver:
| Dimensao | HIGH (posso resolver) | LOW (preciso de ajuda) |
|---|---|---|
| Repo | Match claro, repo unico | Ambiguo, multiplos repos possiveis |
| Bug clarity | Erro especifico, steps de reproducao, screenshots claros | Vago, "nao funciona", sem detalhes |
| Actionability | Fix no codigo, dentro do repo | Infra, DB manual, dependencia externa |
${CLAUDE_PLUGIN_ROOT}/scripts/notify.shSUS-6279: "Filtro de Itens Promocionais nao funciona"
Entendi: Bug no filtro de itens promocionais. Cliente usa ISF 2026.8.3881 (Forca de Vendas).
Falta: Pode ser no pedidos (filtro mobile) ou geovendas-vaadin6 (filtro web). Nao da pra saber pela descricao.
Acao: Em qual app o filtro esta quebrado — mobile (pedidos) ou web (vaadin6)?
Baseado no produto identificado no Step 3, mude para o diretorio do projeto e use a skill de la:
cd /home/gab/repo/geovendas/geovendas-vaadin6
→ Invocar /resolve-analytics SUS-XXXX
Quando: Tarefa menciona Analytics, Consulta de Vendas, relatorios, dashboards, GeoTempVendas, DataSource, de-para de representantes, filtro de exclusao, integracao de dados no painel administrativo.
cd /home/gab/repo/geovendas/pedidos
# ou para ENM:
cd /home/gab/repo/geovendas/pedidos-enm
→ Invocar /resolve-sus SUS-XXXX (inclui skills /fv, /geo-*)
Quando: Tarefa menciona representante, digitacao de pedido, sincronizacao, app mobile, ISF, carrinho, PouchDB, duplicatas de itens, totais errados.
cd /home/gab/repo/geovendas/geovendas-dotnet
→ Invocar /resolve-sus SUS-XXXX
Quando: Tarefa menciona integracao com ERP, webservice, .NET, DOTNET, importacao de pedido para ERP, erro de integracao.
→ Investigar e corrigir o bug diretamente no repo (Grep, Read), criar branch/commit/PR manualmente.
IMPORTANTE: Cada projeto tem seu proprio fluxo de git (branch, commit, PR, GeoLens). As skills de dominio ja cuidam disso — voce NAO precisa gerenciar git separadamente.
Apos a skill de dominio ter concluido o fix e criado as PRs:
→ Invocar skill finalize-sus passando:
_task_key: chave da tarefa_date: data de inicio_hora_inicio: hora de inicioA skill finalize-sus cuida de:
Se chamado via /finalizar-tarefa-sus ou "finalizar tarefa SUS" — o fix JA FOI FEITO.
Nesse caso, pular direto para detectar repos com alteracoes e chamar resolve-git + finalize-sus.
Para CADA repo da tabela, verificar:
cd <diretorio> && git status --short && git log origin/$(git symbolic-ref refs/remotes/origin/HEAD --short | sed 's|origin/||')..HEAD --oneline 2>/dev/null
Coletar apenas repos que tem: arquivos modificados, commits nao pushados, ou branches com alteracoes.
finalize-susgit add -A — sempre git add <arquivos-especificos>sus-lessons.md ANTES de analisar — padroes aprendidos tem prioridadepedidos e geovendas-vaadin6