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,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-task-comment
|
|
3
|
+
description: >
|
|
4
|
+
Adiciona um comentário no card do TASK_MANAGER (Jira, Linear, GitHub Issues ou Asana).
|
|
5
|
+
Trigger: registrar progresso, início ou fim de etapa em um card.
|
|
6
|
+
argument-hint: "{TASK_MANAGER_KEY} {mensagem}"
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
allowed-tools: Read Bash MCP
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# eng-task-comment
|
|
12
|
+
|
|
13
|
+
Comenta no card do gerenciador de tarefas configurado em `TASK_MANAGER` no ENV.md.
|
|
14
|
+
|
|
15
|
+
`{TASK_MANAGER_KEY}` = id do card (Jira `TASK-123`, Linear UUID/identifier, GitHub `#42`, Asana GID).
|
|
16
|
+
|
|
17
|
+
## Entrada
|
|
18
|
+
|
|
19
|
+
`$ARGUMENTS` — `{TASK_MANAGER_KEY} {mensagem}`
|
|
20
|
+
|
|
21
|
+
## Execução
|
|
22
|
+
|
|
23
|
+
Ler `TASK_MANAGER`, `TASK_MANAGER_URL_BASE`, `TOKEN_TASK_MANAGER` e `USER` do `$IDE/ENV.md`.
|
|
24
|
+
|
|
25
|
+
Se `TASK_MANAGER` estiver vazio, ausente ou ainda for a lista `[jira, linear, github, asana]` → **encerrar em silêncio** (freelance, sem board). Não pedir token. Não falhar o workflow.
|
|
26
|
+
|
|
27
|
+
### 1. MCP (só Jira)
|
|
28
|
+
|
|
29
|
+
Se `TASK_MANAGER=jira` e o MCP Atlassian estiver disponível:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
mcp__claude_ai_Atlassian__addCommentToJiraIssue({ issueKey: "{TASK_MANAGER_KEY}", body: "{mensagem}" })
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Sucesso → encerrar.
|
|
36
|
+
|
|
37
|
+
### 2. Adapter CLI (todos os vendors)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Exportar do ENV.md para o processo
|
|
41
|
+
set -a
|
|
42
|
+
# shellcheck disable=SC1091
|
|
43
|
+
eval "$(grep -E '^(TASK_MANAGER|TASK_MANAGER_URL_BASE|TOKEN_TASK_MANAGER|USER)=' $IDE/ENV.md)"
|
|
44
|
+
set +a
|
|
45
|
+
|
|
46
|
+
node "$JARVIS_ROOT/bin/lib/tasks/comment.js" "{TASK_MANAGER_KEY}" "{mensagem}"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`$JARVIS_ROOT` = raiz do framework (ou `$(git rev-parse --show-toplevel)` se o Jarvis estiver no repo). Se o script não existir no projeto, usar o path do clone do framework.
|
|
50
|
+
|
|
51
|
+
Exit 0 → comentário ok. Exit 2 → avisar e **não bloquear** o workflow.
|
|
52
|
+
|
|
53
|
+
### 3. Falha
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
⚠️ Não foi possível comentar no card {TASK_MANAGER_KEY} ({TASK_MANAGER}).
|
|
57
|
+
Confira TOKEN_TASK_MANAGER e TASK_MANAGER_URL_BASE no ENV.md.
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Nunca pedir credenciais no chat. Nunca parar o fluxo principal por falha de comentário.
|
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-tech-analyst
|
|
3
|
+
description: Guia o Tech Analyst pelo fluxo de diagnóstico e triagem de chamados — da recepção do card no HUBS board até resolução ou encaminhamento qualificado para o squad dono
|
|
4
|
+
version: "1.1.0"
|
|
5
|
+
prefix: eng-
|
|
6
|
+
area: ENGINEERING
|
|
7
|
+
position: TECH ANALYST
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Skill: eng-tech-analyst
|
|
11
|
+
|
|
12
|
+
**Objetivo:** Conduzir o fluxo de atendimento técnico — diagnóstico, verificação de existência, classificação, avaliação de impacto, resolução ou encaminhamento qualificado.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Posição Organizacional
|
|
17
|
+
|
|
18
|
+
> ⚠️ O Tech Analyst é **transversal** — não pertence a nenhuma squad de desenvolvimento.
|
|
19
|
+
> No ENV.md, o campo `SQUAD` deve ser configurado como `SUPPORT`.
|
|
20
|
+
> Interfaces com todas as squads, mas reporta ao Tech Lead ou Engineering Manager.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Contexto de Uso
|
|
25
|
+
|
|
26
|
+
Este skill é ativado quando o Tech Analyst recebe um card no **quadro HUBS** (`TASK_MANAGER_HUBS_BOARD`) do `$TASK_MANAGER` (tipicamente Jira).
|
|
27
|
+
O time de atendimento/N2 cria cards nesse board quando não consegue resolver o chamado.
|
|
28
|
+
O TA não cria novos cards — **trabalha sempre sobre o card existente** no HUBS board.
|
|
29
|
+
|
|
30
|
+
> Requer `TASK_MANAGER` preenchido. Sem board (freelance) este skill não se aplica.
|
|
31
|
+
|
|
32
|
+
Ao final do fluxo, o card do HUBS é:
|
|
33
|
+
- **Bug repetido**: vinculado como sub-bug do principal + movido para o board do squad
|
|
34
|
+
- **Bug novo**: movido para o board do squad (backlog ou sprint, conforme impacto)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Pré-requisitos obrigatórios
|
|
39
|
+
|
|
40
|
+
Antes de iniciar qualquer atendimento, verificar no `ENV.md`:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
TASK_MANAGER ← obrigatório (jira | linear | github | asana) — sem board este skill não roda
|
|
44
|
+
TASK_MANAGER_HUBS_BOARD ← project key / board de triagem N2 (ex: HUBS)
|
|
45
|
+
TOKEN_TASK_MANAGER ← se o vendor não tiver MCP
|
|
46
|
+
TOKEN_OBSERVABILITY ← recomendado — enriquece alertas ao PM
|
|
47
|
+
OBSERVABILITY_ORG ← se OBSERVABILITY=sentry
|
|
48
|
+
OBSERVABILITY ← sentry | datadog | grafana (opcional)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Se `TASK_MANAGER` ou `TASK_MANAGER_HUBS_BOARD` estiver ausente:
|
|
52
|
+
```
|
|
53
|
+
→ Interromper o fluxo
|
|
54
|
+
→ "ENV.md incompleto: TASK_MANAGER e TASK_MANAGER_HUBS_BOARD são obrigatórios para o Tech Analyst."
|
|
55
|
+
→ Não atender chamados até que estejam configurados
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Observabilidade ausente → avisar, mas **não** bloquear a triagem (só perde enriquecimento de alertas).
|
|
59
|
+
|
|
60
|
+
### Resolução de tools do `$TASK_MANAGER`
|
|
61
|
+
|
|
62
|
+
Não hardcodar Jira. Resolver a ferramenta pelo valor de `TASK_MANAGER`:
|
|
63
|
+
|
|
64
|
+
| `TASK_MANAGER` | Ler card | Comentar | Buscar similares | Editar / linkar |
|
|
65
|
+
|----------------|----------|----------|------------------|-----------------|
|
|
66
|
+
| `jira` | MCP Atlassian `getJiraIssue` | `eng-task-comment` / `addCommentToJiraIssue` | JQL via MCP | `editJiraIssue` / issue links |
|
|
67
|
+
| `linear` | Linear MCP/CLI | `eng-task-comment` | busca Linear | Linear update/link |
|
|
68
|
+
| `github` | `gh issue view` | `eng-task-comment` | `gh issue list` | `gh issue edit` |
|
|
69
|
+
| `asana` | Asana API | `eng-task-comment` | search tasks | Asana update |
|
|
70
|
+
|
|
71
|
+
Exemplos abaixo com sintaxe Jira são **ilustrativos** quando `TASK_MANAGER=jira`. Com outro vendor, use a linha equivalente da tabela. Comentários preferir sempre `eng-task-comment {HUBS_CARD_KEY} "..."`.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Fluxo de Decisão
|
|
76
|
+
|
|
77
|
+
### Passo 1 — Receber card do HUBS board
|
|
78
|
+
|
|
79
|
+
O card chega via quadro `$TASK_MANAGER_HUBS_BOARD`. Leia o card (`{HUBS_CARD_KEY}`):
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
# Exemplo TASK_MANAGER=jira:
|
|
83
|
+
mcp__getJiraIssue
|
|
84
|
+
issueIdOrKey: {HUBS_CARD_KEY}
|
|
85
|
+
|
|
86
|
+
# linear / github / asana: tool equivalente da tabela acima
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**O problema está bem descrito?**
|
|
90
|
+
|
|
91
|
+
Critérios mínimos para considerar "bem descrito":
|
|
92
|
+
- Qual ação o usuário tentou fazer?
|
|
93
|
+
- O que aconteceu (sintoma)?
|
|
94
|
+
- O que deveria ter acontecido (esperado)?
|
|
95
|
+
- Quando ocorreu (data/hora)?
|
|
96
|
+
- Dados do usuário/conta afetada (ID, email, etc.)?
|
|
97
|
+
|
|
98
|
+
Se **não estiver bem descrito**:
|
|
99
|
+
```
|
|
100
|
+
→ Comentar no HUBS card via eng-task-comment solicitando as informações faltantes ao N2.
|
|
101
|
+
→ Não avançar sem diagnóstico mínimo.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Se **estiver bem descrito** → ir ao Passo 2.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### Passo 2 — Verificar se o bug já existe
|
|
109
|
+
|
|
110
|
+
#### 2.1 — IA extrai keywords do card
|
|
111
|
+
|
|
112
|
+
Antes de buscar, a IA analisa a descrição do card e extrai as dimensões do bug:
|
|
113
|
+
|
|
114
|
+
| Dimensão | Exemplo |
|
|
115
|
+
|----------|---------|
|
|
116
|
+
| **Módulo** | checkout, login, cadastro, pagamento, relatório |
|
|
117
|
+
| **Sintoma** | timeout, erro-404, dado-incorreto, tela-branca, loop |
|
|
118
|
+
| **Ação** | salvar, enviar, carregar, exportar, autenticar |
|
|
119
|
+
| **Contexto** | mobile, desktop, pj, pf, producao |
|
|
120
|
+
|
|
121
|
+
Estas keywords serão usadas tanto para busca quanto para taggear o bug se for novo.
|
|
122
|
+
|
|
123
|
+
#### 2.2 — IA busca candidatos (duas passagens)
|
|
124
|
+
|
|
125
|
+
**Passagem 1 — por keywords (labels/`kw:*` no board):**
|
|
126
|
+
```
|
|
127
|
+
# Exemplo TASK_MANAGER=jira:
|
|
128
|
+
mcp__searchJiraIssuesUsingJql
|
|
129
|
+
JQL: project != {TASK_MANAGER_HUBS_BOARD} AND type = Bug
|
|
130
|
+
AND labels in ("kw:{keyword-1}", "kw:{keyword-2}") ORDER BY created DESC
|
|
131
|
+
|
|
132
|
+
# Outros vendors: busca equivalente por label/tag no board (fora do HUBS)
|
|
133
|
+
```
|
|
134
|
+
> Busca em boards de squad, excluindo o HUBS (triagem).
|
|
135
|
+
> Retorna bugs já tagueados com as mesmas keywords — match mais preciso.
|
|
136
|
+
|
|
137
|
+
**Passagem 2 — por texto (fallback):**
|
|
138
|
+
```
|
|
139
|
+
# Exemplo TASK_MANAGER=jira:
|
|
140
|
+
mcp__searchJiraIssuesUsingJql
|
|
141
|
+
JQL: project != {TASK_MANAGER_HUBS_BOARD} AND type = Bug
|
|
142
|
+
AND summary ~ "{palavras-chave}" ORDER BY created DESC
|
|
143
|
+
|
|
144
|
+
# Outros vendors: search por texto no título/descrição
|
|
145
|
+
```
|
|
146
|
+
> Cobre bugs antigos (antes do sistema de keywords) e casos de keywords diferentes para o mesmo conceito.
|
|
147
|
+
|
|
148
|
+
Deduplica resultados das duas passagens. Limitar a 5 candidatos totais.
|
|
149
|
+
|
|
150
|
+
#### 2.3 — IA rankeia, apresenta candidatos e emite sugestão
|
|
151
|
+
|
|
152
|
+
Para cada candidato, calcular score de similaridade:
|
|
153
|
+
- **Keywords em comum** com o card atual (peso maior)
|
|
154
|
+
- **Similaridade textual** do summary
|
|
155
|
+
|
|
156
|
+
Apresentar ao Tech Analyst (máximo 3, do mais ao menos similar) **sempre com sugestão explícita da IA**:
|
|
157
|
+
|
|
158
|
+
**Com candidatos encontrados:**
|
|
159
|
+
```
|
|
160
|
+
Encontrei {N} bug(s) possivelmente relacionado(s):
|
|
161
|
+
|
|
162
|
+
1. {TASK_MANAGER_KEY} — "{summary}" [Alta similaridade]
|
|
163
|
+
Keywords em comum: checkout, timeout, pagamento
|
|
164
|
+
Motivo: {explicação objetiva}
|
|
165
|
+
|
|
166
|
+
2. {TASK_MANAGER_KEY} — "{summary}" [Média similaridade]
|
|
167
|
+
Keywords em comum: checkout
|
|
168
|
+
Motivo: {explicação objetiva}
|
|
169
|
+
|
|
170
|
+
💡 Sugestão: este parece ser o mesmo bug que {TASK_MANAGER_KEY_1} — {motivo resumido em 1 linha}.
|
|
171
|
+
Confirme ou ajuste abaixo.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Sem candidatos:**
|
|
175
|
+
```
|
|
176
|
+
Nenhum bug similar encontrado após duas passagens de busca
|
|
177
|
+
(keywords: {lista} | texto: "{termos}").
|
|
178
|
+
|
|
179
|
+
💡 Sugestão: parece ser um bug novo — nenhuma ocorrência anterior encontrada no `$TASK_MANAGER`.
|
|
180
|
+
Confirme ou informe a chave se souber que existe.
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
> A sugestão é baseada no score mais alto. Score > 0.7 → "parece ser o mesmo bug".
|
|
184
|
+
> Score entre 0.5–0.7 → "possivelmente relacionado, confirme com cuidado".
|
|
185
|
+
> Score < 0.5 ou sem candidatos → "parece ser bug novo".
|
|
186
|
+
|
|
187
|
+
#### 2.4 — Tech Analyst confirma (AskUserQuestion)
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
AskUserQuestion:
|
|
191
|
+
"Este chamado é o mesmo bug que algum dos tickets acima?"
|
|
192
|
+
Opções:
|
|
193
|
+
- "Sim — é o {TASK_MANAGER_KEY_1} [sugerido]" ← destacar o sugerido quando score > 0.7
|
|
194
|
+
- "Sim — é o {TASK_MANAGER_KEY_2}"
|
|
195
|
+
- "Não — é um bug novo [sugerido]" ← destacar quando nenhum candidato
|
|
196
|
+
- "Existe, mas não está na lista" → campo livre para informar a chave
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
> **Regra crítica:** a decisão final é sempre do Tech Analyst.
|
|
200
|
+
> A IA sugere com base em score; o humano confirma. Uma identificação errada polui o contador de frequência.
|
|
201
|
+
|
|
202
|
+
**Tech Analyst confirma existente:**
|
|
203
|
+
```
|
|
204
|
+
→ Passo 3A: Vincular como sub-bug e atualizar frequência
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Tech Analyst confirma bug novo:**
|
|
208
|
+
```
|
|
209
|
+
→ Passo 3B: Classificar, taggear e mover para o board do squad
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### Passo 3A — Bug existente: Vincular como sub-bug e atualizar frequência
|
|
215
|
+
|
|
216
|
+
Se o bug principal é **legado sem keywords** (não tem labels/tags `kw:*`), adicionar antes:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
AskUserQuestion:
|
|
220
|
+
"Este bug não tem keywords. Quais aplicar?"
|
|
221
|
+
→ IA sugere baseado no card do HUBS
|
|
222
|
+
→ TA confirma
|
|
223
|
+
|
|
224
|
+
→ Aplicar labels/tags kw:* no bug principal (tool do `$TASK_MANAGER`):
|
|
225
|
+
# Exemplo jira:
|
|
226
|
+
mcp__editJiraIssue
|
|
227
|
+
labels: ["kw:{keyword-1}", "kw:{keyword-2}", ...]
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Vincular o card do HUBS como sub-bug do principal:**
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
# Exemplo TASK_MANAGER=jira — outros vendors: link/relate equivalente
|
|
234
|
+
1. Verificar tipos de link disponíveis (se necessário):
|
|
235
|
+
mcp__getIssueLinkTypes
|
|
236
|
+
|
|
237
|
+
2. Criar vínculo:
|
|
238
|
+
mcp__createIssueLink
|
|
239
|
+
type: { name: "Duplicate" } ← ou o tipo "sub-bug de" no board
|
|
240
|
+
inwardIssue: { key: "{HUBS_CARD_KEY}" }
|
|
241
|
+
outwardIssue: { key: "{PRINCIPAL_TASK_MANAGER_KEY}" }
|
|
242
|
+
|
|
243
|
+
3. Mover o card do HUBS para o board do squad:
|
|
244
|
+
mcp__editJiraIssue
|
|
245
|
+
issueIdOrKey: {HUBS_CARD_KEY}
|
|
246
|
+
fields: { project: { key: "{board_code do squad confirmado}" } }
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
> Após vincular, o card do HUBS passa a aparecer no board do squad como sub-bug do principal.
|
|
250
|
+
> O bug principal acumula o histórico completo de ocorrências.
|
|
251
|
+
|
|
252
|
+
Registrar a ocorrência no card principal (skill `eng-task-comment`):
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
Último sub-bug: {HUBS_CARD_KEY}
|
|
256
|
+
Área: {FRONT|BACK|BD|PROCESSO}
|
|
257
|
+
Keywords: {lista}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
> Cada sub-bug vinculado = 1 ocorrência no histórico do card. Sem event bus.
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
→ Encerrar atendimento — registrar no card do HUBS como
|
|
264
|
+
"Vinculado como sub-bug de {PRINCIPAL_TASK_MANAGER_KEY} — bug conhecido, aguardando fix"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
### Passo 3B — Bug novo: Classificar, taggear e mover para o squad
|
|
270
|
+
|
|
271
|
+
#### 3B.0 — Confirmar keywords com o Tech Analyst
|
|
272
|
+
|
|
273
|
+
As keywords extraídas no Passo 2.1 serão aplicadas como labels no card.
|
|
274
|
+
Apresentar para confirmação antes de mover:
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
AskUserQuestion:
|
|
278
|
+
"Keywords identificadas para este bug: {kw:checkout, kw:timeout, kw:pagamento}
|
|
279
|
+
Deseja ajustar alguma?"
|
|
280
|
+
Opções:
|
|
281
|
+
- "Estão corretas"
|
|
282
|
+
- "Quero ajustar" → campo livre para editar
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
> Keywords usam o prefixo `kw:` nos labels/tags do `$TASK_MANAGER` para diferenciar de outras labels.
|
|
286
|
+
|
|
287
|
+
#### 3B.1 — Classificar área do bug
|
|
288
|
+
|
|
289
|
+
Determinar a área responsável:
|
|
290
|
+
|
|
291
|
+
| Classificação | Critério |
|
|
292
|
+
|---------------|----------|
|
|
293
|
+
| `FRONT` | Problema visual, comportamento de UI, formulário, renderização |
|
|
294
|
+
| `BACK` | Erro de API, lógica de negócio, falha de processamento, dados incorretos |
|
|
295
|
+
| `BD` | Inconsistência de dados, constraint violada, dado faltante/duplicado |
|
|
296
|
+
| `PROCESSO` | Fluxo operacional incorreto, regra de negócio mal implementada |
|
|
297
|
+
|
|
298
|
+
#### 3B.2 — Determinar squad dona e avaliar impacto
|
|
299
|
+
|
|
300
|
+
**Fonte 1 — taxonomy.modules (sempre consultar primeiro):**
|
|
301
|
+
|
|
302
|
+
A IA cruza as keywords do bug com o campo `modules` de cada squad em `taxonomy.md`:
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
Score por squad = keywords do bug que aparecem nos modules do squad / total de keywords do bug
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Se score > 0 em algum squad → apresentar candidatos e pular para confirmação.
|
|
309
|
+
|
|
310
|
+
**Fonte 2 — Central Docs (fallback: sem match em taxonomy):**
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
skill: docs-central (Modo 1: Buscar Docs)
|
|
314
|
+
Query: "ownership {módulo identificado nas keywords}"
|
|
315
|
+
→ Buscar em ARDs, PRDs e RFCs menção ao squad dono do módulo
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Fonte 3 — Histórico do `$TASK_MANAGER` (fallback final):**
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
# Exemplo TASK_MANAGER=jira:
|
|
322
|
+
mcp__searchJiraIssuesUsingJql
|
|
323
|
+
JQL: labels in ("kw:{keyword-principal}") AND type = Bug ORDER BY created DESC LIMIT 10
|
|
324
|
+
→ Verificar em qual board_code a maioria dos bugs foi criada
|
|
325
|
+
|
|
326
|
+
# Outros vendors: busca por tag/label equivalente
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Confirmação pelo TA (após qualquer fonte):**
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
AskUserQuestion:
|
|
333
|
+
"Squad sugerida para este bug:"
|
|
334
|
+
Opções:
|
|
335
|
+
- "{SQUAD_1} — módulos em comum: {lista} [via taxonomy]"
|
|
336
|
+
- "{SQUAD_2} — {motivo} [via Central Docs / histórico do TASK_MANAGER]"
|
|
337
|
+
- "Outra squad" → campo livre
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Avaliar impacto:**
|
|
341
|
+
|
|
342
|
+
| Critério | Alto | Baixo |
|
|
343
|
+
|----------|------|-------|
|
|
344
|
+
| Usuários afetados | Múltiplos / todos | Isolado / específico |
|
|
345
|
+
| Funcionalidade crítica | Sim (pagamento, auth, core) | Não (secundária) |
|
|
346
|
+
| Bloqueio total | Sim | Não (workaround existe) |
|
|
347
|
+
| Regressão recente | Sim (deploy recente) | Não |
|
|
348
|
+
|
|
349
|
+
#### 3B.3 — Mover card do HUBS para o board do squad
|
|
350
|
+
|
|
351
|
+
Aplicar keywords e mover o card em sequência (`$TASK_MANAGER` — exemplos Jira):
|
|
352
|
+
|
|
353
|
+
```
|
|
354
|
+
# Exemplo TASK_MANAGER=jira
|
|
355
|
+
1. Aplicar keywords e label support-item:
|
|
356
|
+
mcp__editJiraIssue
|
|
357
|
+
issueIdOrKey: {HUBS_CARD_KEY}
|
|
358
|
+
labels: ["kw:{keyword-1}", "kw:{keyword-2}", ..., "support-item"]
|
|
359
|
+
|
|
360
|
+
2. Mover para o board do squad:
|
|
361
|
+
mcp__editJiraIssue
|
|
362
|
+
issueIdOrKey: {HUBS_CARD_KEY}
|
|
363
|
+
fields: { project: { key: "{board_code do squad confirmado}" } }
|
|
364
|
+
|
|
365
|
+
3. Destino dentro do board (AskUserQuestion):
|
|
366
|
+
"O card vai para:"
|
|
367
|
+
- "Backlog do squad" → não alterar sprint
|
|
368
|
+
- "Sprint atual" → editar sprint/iteration no vendor
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
> ⚠️ A decisão de sprint vs backlog é baseada no impacto:
|
|
372
|
+
> - Alto impacto → sugerir sprint atual (TA confirma)
|
|
373
|
+
> - Médio/baixo impacto → backlog
|
|
374
|
+
|
|
375
|
+
Se o impacto for **alto**, perguntar antes de comentar no card:
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
AskUserQuestion:
|
|
379
|
+
"Descreva o impacto em linguagem de negócio (opcional — vai no comentário do card):"
|
|
380
|
+
Opções:
|
|
381
|
+
- "Pular" → não inclui impact_description
|
|
382
|
+
- Texto livre → ex: "Usuários PJ não conseguem exportar relatório de NF no mobile"
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Registrar no card (skill `eng-task-comment`): área, impacto, keywords e squad de destino.
|
|
386
|
+
Se `MESSAGE_COMUNICATOR` estiver configurado e impacto alto, avisar o PM no canal do squad. Sem event bus.
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
### Passo 4 — Executar solução no Tech Analyst
|
|
391
|
+
|
|
392
|
+
> ⚠️ **Regras críticas:**
|
|
393
|
+
> - BD: somente leitura — NUNCA executar INSERT, UPDATE, DELETE em produção
|
|
394
|
+
> - MCP: usar apenas ações disponíveis no backoffice
|
|
395
|
+
> - Scripts: executar apenas scripts aprovados e auditáveis
|
|
396
|
+
> - Documentar cada ação executada
|
|
397
|
+
|
|
398
|
+
Executar a solução com as ferramentas disponíveis:
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
Ferramentas disponíveis:
|
|
402
|
+
- Backoffice do sistema (ações de admin)
|
|
403
|
+
- MCP (ações internas via ferramenta)
|
|
404
|
+
- BD read-only (SELECT para diagnóstico e verificação)
|
|
405
|
+
- Scripts internos aprovados (validar com Tech Lead antes de usar)
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Após executar:
|
|
409
|
+
1. Verificar que o problema foi resolvido
|
|
410
|
+
2. Registrar solução no card do HUBS com detalhes técnicos
|
|
411
|
+
3. Voltar ao Passo 3A para atualizar frequência do bug principal
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
### Passo 5 — Encaminhamento qualificado
|
|
416
|
+
|
|
417
|
+
> **Regra crítica:** Nunca encaminhar por reflexo. Encaminhar somente após ter:
|
|
418
|
+
> 1. Diagnóstico claro do problema
|
|
419
|
+
> 2. Área identificada (Front/Back/BD/Processo)
|
|
420
|
+
> 3. Impacto avaliado (alto/baixo)
|
|
421
|
+
> 4. Confirmado que está fora do escopo do Tech Analyst
|
|
422
|
+
|
|
423
|
+
O card já existe no HUBS board — **não criar novo ticket**.
|
|
424
|
+
O encaminhamento é feito movendo o card para o board do squad (Passo 3B.3).
|
|
425
|
+
|
|
426
|
+
**Destino no board do squad depende do impacto:**
|
|
427
|
+
|
|
428
|
+
```
|
|
429
|
+
Alto impacto:
|
|
430
|
+
→ Executar Passo 3B.2 e 3B.3 com impact=alto
|
|
431
|
+
→ Card vai preferencialmente para a sprint atual do squad
|
|
432
|
+
→ Avisar PM via `$MESSAGE_COMUNICATOR` se configurado (sem event bus)
|
|
433
|
+
|
|
434
|
+
Médio/baixo impacto:
|
|
435
|
+
→ Executar Passo 3B.2 e 3B.3 com impact=medio/baixo
|
|
436
|
+
→ Card vai para o backlog do squad
|
|
437
|
+
→ Frequência = contagem de sub-bugs / comments no card principal (`eng-task-comment`) — sem Redis
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
Registrar no card do HUBS (via `eng-task-comment`) antes de mover:
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
eng-task-comment {HUBS_CARD_KEY} "Encaminhado para squad {SQUAD} — {motivo}. Impacto: {alto|medio|baixo}. HS: {HS_TICKET_ID}"
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## Padrão de Descrição para Cards Movidos
|
|
449
|
+
|
|
450
|
+
Ao mover o card do HUBS para o squad, verificar se a descrição segue o padrão mínimo.
|
|
451
|
+
Se estiver incompleta, enriquecer via edit do `$TASK_MANAGER` (ex. Jira: `mcp__editJiraIssue`):
|
|
452
|
+
|
|
453
|
+
```markdown
|
|
454
|
+
## Resumo
|
|
455
|
+
{Uma linha clara descrevendo o bug — inclua o contexto}
|
|
456
|
+
ex: "Usuário não consegue finalizar pagamento quando endereço tem acento"
|
|
457
|
+
|
|
458
|
+
## Ambiente
|
|
459
|
+
- Ambiente: Produção
|
|
460
|
+
- Data/hora da ocorrência: {DATA}
|
|
461
|
+
- Usuário/conta afetada: {ID ou email — anonimizar se necessário}
|
|
462
|
+
|
|
463
|
+
## Passos para Reprodução
|
|
464
|
+
1. {passo 1}
|
|
465
|
+
2. {passo 2}
|
|
466
|
+
3. {resultado obtido}
|
|
467
|
+
|
|
468
|
+
## Comportamento Esperado
|
|
469
|
+
{O que deveria ter acontecido}
|
|
470
|
+
|
|
471
|
+
## Diagnóstico Técnico
|
|
472
|
+
{O que o Tech Analyst investigou — logs, queries, observações}
|
|
473
|
+
{Área identificada: FRONT / BACK / BD / PROCESSO}
|
|
474
|
+
{Impacto: alto / baixo}
|
|
475
|
+
|
|
476
|
+
## Chamado de Origem
|
|
477
|
+
HS: {ID do ticket no Helpscout}
|
|
478
|
+
HUBS card: {HUBS_CARD_KEY}
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## Comunicação Padrão
|
|
484
|
+
|
|
485
|
+
### Para QA (frequência alta — via `$MESSAGE_COMUNICATOR` se configurado)
|
|
486
|
+
```
|
|
487
|
+
⚠️ [Tech Analyst] Bug {TASK_MANAGER_KEY} — Alta Frequência
|
|
488
|
+
{N} ocorrências registradas (sub-bugs / comments no card).
|
|
489
|
+
Área: {CLASSIFICAÇÃO}
|
|
490
|
+
Link: {TASK_MANAGER_URL_BASE}/.../{TASK_MANAGER_KEY}
|
|
491
|
+
Recomendação: revisar cobertura de testes ou priorizar fix.
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
### Para PM (impacto alto — via `$MESSAGE_COMUNICATOR` + dados de `$OBSERVABILITY` se houver)
|
|
495
|
+
```
|
|
496
|
+
🚨 [Tech Analyst] Bug de alto impacto — Priorização necessária
|
|
497
|
+
Problema: {descrição em linguagem de negócio}
|
|
498
|
+
Área técnica: {CLASSIFICAÇÃO}
|
|
499
|
+
Observabilidade: {N ocorrências} · {M usuários afetados} · desde {DATA}
|
|
500
|
+
Card: {TASK_MANAGER_URL_BASE}/.../{TASK_MANAGER_KEY}
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
## Ferramentas por Passo
|
|
506
|
+
|
|
507
|
+
| Passo | Ferramenta |
|
|
508
|
+
|-------|------------|
|
|
509
|
+
| Receber card | `$TASK_MANAGER` HUBS board (MCP se `jira`; senão adapter/`eng-task-comment`) |
|
|
510
|
+
| Verificar existência | Busca no board (JQL se Jira) |
|
|
511
|
+
| Vincular sub-bug | Link de issue do vendor |
|
|
512
|
+
| Mover card para squad | Edit do card no `$TASK_MANAGER` |
|
|
513
|
+
| Atualizar frequência | Comentário no card (`eng-task-comment`) — sem Redis / event bus |
|
|
514
|
+
| Classificar + impacto | Comentário no card (`eng-task-comment`) |
|
|
515
|
+
| Executar solução | MCP + BD read-only + backoffice |
|
|
516
|
+
| Comunicar PM / QA | Comentário no card + `$MESSAGE_COMUNICATOR` se configurado |
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## Regras Críticas
|
|
521
|
+
|
|
522
|
+
- **NUNCA** criar novo ticket no `$TASK_MANAGER` — o card do HUBS board já existe
|
|
523
|
+
- **NUNCA** escrever no banco de dados de produção — somente leitura
|
|
524
|
+
- **NUNCA** encaminhar sem diagnóstico completo (área + impacto avaliados)
|
|
525
|
+
- **SEMPRE** vincular como sub-bug antes de registrar a ocorrência no card principal
|
|
526
|
+
- **SEMPRE** mover o card do HUBS para o board do squad ao final do atendimento
|
|
527
|
+
- **SEMPRE** registrar no card do HUBS o que foi feito (comment antes de mover)
|
|
528
|
+
- **SEMPRE** registrar a ocorrência no card principal ao confirmar um bug existente
|
|
529
|
+
- **SEMPRE** usar linguagem de negócio ao comunicar PM, linguagem técnica ao comunicar QA/Dev
|