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