@onion-architect-ai/cli 4.1.0-beta.1 → 4.1.0-beta.2
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/dist/cli.js +8 -7
- package/dist/cli.js.map +1 -1
- package/package.json +4 -3
- package/templates/.cursor/agents/compliance/iso-22301-specialist.md +917 -0
- package/templates/.cursor/agents/compliance/iso-27001-specialist.md +641 -0
- package/templates/.cursor/agents/compliance/pmbok-specialist.md +669 -0
- package/templates/.cursor/agents/compliance/security-information-master.md +824 -0
- package/templates/.cursor/agents/compliance/soc2-specialist.md +818 -0
- package/templates/.cursor/agents/deployment/docker-specialist.md +1192 -0
- package/templates/.cursor/agents/meta/agent-creator-specialist.md +1135 -0
- package/templates/.cursor/agents/meta/command-creator-specialist.md +1519 -0
- package/templates/.cursor/agents/meta/metaspec-gate-keeper.md +240 -0
- package/templates/.cursor/agents/meta/onion.md +753 -0
- package/templates/.cursor/agents/research/research-agent.md +292 -0
- package/templates/.cursor/agents/review/corporate-compliance-specialist.md +370 -0
- package/templates/.cursor/commands/common/prompts/README.md +187 -0
- package/templates/.cursor/commands/common/prompts/clickup-patterns.md +144 -0
- package/templates/.cursor/commands/common/prompts/code-review-checklist.md +168 -0
- package/templates/.cursor/commands/common/prompts/git-workflow-patterns.md +235 -0
- package/templates/.cursor/commands/common/prompts/output-formats.md +240 -0
- package/templates/.cursor/commands/common/prompts/technical.md +172 -0
- package/templates/.cursor/commands/common/prompts/validation-rules.md +173 -0
- package/templates/.cursor/commands/common/templates/abstraction-template.md +400 -0
- package/templates/.cursor/commands/common/templates/agent-template.md +353 -0
- package/templates/.cursor/commands/common/templates/business_context_template.md +748 -0
- package/templates/.cursor/commands/common/templates/command-template.md +273 -0
- package/templates/.cursor/commands/common/templates/technical_context_template.md +526 -0
- package/templates/.cursor/commands/development/runflow-dev.md +465 -0
- package/templates/.cursor/commands/docs/build-compliance-docs.md +143 -0
- package/templates/.cursor/commands/git/README.md +606 -0
- package/templates/.cursor/commands/meta/all-tools.md +50 -0
- package/templates/.cursor/commands/meta/analyze-complex-problem.md +186 -0
- package/templates/.cursor/commands/meta/create-abstraction.md +859 -0
- package/templates/.cursor/commands/meta/create-agent-express.md +83 -0
- package/templates/.cursor/commands/meta/create-agent.md +210 -0
- package/templates/.cursor/commands/meta/create-command.md +203 -0
- package/templates/.cursor/commands/meta/create-knowledge-base.md +143 -0
- package/templates/.cursor/commands/meta/create-task-structure.md +150 -0
- package/templates/.cursor/commands/meta/setup-integration.md +257 -0
- package/templates/.cursor/commands/onion/setup.md +843 -0
- package/templates/.cursor/commands/onion.md +168 -0
- package/templates/.cursor/commands/product/README.md +230 -0
- package/templates/.cursor/commands/quick/analisys.md +17 -0
- package/templates/.cursor/commands/validate/collab/pair-testing.md +633 -0
- package/templates/.cursor/commands/validate/collab/three-amigos.md +505 -0
- package/templates/.cursor/commands/validate/qa-points/estimate.md +660 -0
- package/templates/.cursor/commands/validate/test-strategy/analyze.md +1134 -0
- package/templates/.cursor/commands/validate/test-strategy/create.md +392 -0
- package/templates/.cursor/commands/validate/workflow.md +360 -0
- package/templates/.cursor/commands/warm-up.md +91 -0
- package/templates/.cursor/docs/architecture/acoplamento-clickup-problema-analise.md +446 -0
- package/templates/.cursor/docs/architecture/desacoplamento-roadmap.md +360 -0
- package/templates/.cursor/docs/architecture/validacao-fase-1.md +219 -0
- package/templates/.cursor/docs/c4/c4-detection-rules.md +395 -0
- package/templates/.cursor/docs/c4/c4-documentation-templates.md +579 -0
- package/templates/.cursor/docs/c4/c4-mermaid-patterns.md +331 -0
- package/templates/.cursor/docs/c4/c4-templates.md +256 -0
- package/templates/.cursor/docs/clickup/clickup-acceptance-criteria-strategy.md +329 -0
- package/templates/.cursor/docs/clickup/clickup-auto-update-strategy.md +318 -0
- package/templates/.cursor/docs/clickup/clickup-comment-formatter.md +239 -0
- package/templates/.cursor/docs/clickup/clickup-description-fix.md +355 -0
- package/templates/.cursor/docs/clickup/clickup-dual-comment-strategy.md +505 -0
- package/templates/.cursor/docs/clickup/clickup-formatting.md +302 -0
- package/templates/.cursor/docs/clickup/separador-tamanho-otimizado.md +256 -0
- package/templates/.cursor/docs/engineer/pre-pr-acceptance-validation.md +256 -0
- package/templates/.cursor/docs/onion/ESPERANTO.md +278 -0
- package/templates/.cursor/docs/onion/agents-reference.md +832 -0
- package/templates/.cursor/docs/onion/clickup-integration.md +738 -0
- package/templates/.cursor/docs/onion/commands-guide.md +807 -0
- package/templates/.cursor/docs/onion/engineering-flows.md +865 -0
- package/templates/.cursor/docs/onion/getting-started.md +741 -0
- package/templates/.cursor/docs/onion/maintenance-checklist.md +388 -0
- package/templates/.cursor/docs/onion/naming-conventions.md +268 -0
- package/templates/.cursor/docs/onion/practical-examples.md +782 -0
- package/templates/.cursor/docs/product/story-points-integration.md +254 -0
- package/templates/.cursor/docs/product/story-points-validation.md +224 -0
- package/templates/.cursor/docs/reviews/task-manager-docs-review-2025-11-24.md +167 -0
- package/templates/.cursor/docs/strategies/clickup-comment-patterns.md +766 -0
- package/templates/.cursor/docs/strategies/clickup-integration-tests.md +599 -0
- package/templates/.cursor/docs/strategies/clickup-mcp-wrappers-tests.md +854 -0
- package/templates/.cursor/docs/strategies/clickup-regression-tests.md +589 -0
- package/templates/.cursor/docs/strategies/visual-patterns.md +308 -0
- package/templates/.cursor/docs/templates/README.md +624 -0
- package/templates/.cursor/docs/templates/adr-template.md +226 -0
- package/templates/.cursor/docs/templates/analysis-template.md +280 -0
- package/templates/.cursor/docs/templates/execution-plan-template.md +430 -0
- package/templates/.cursor/docs/templates/guide-template.md +367 -0
- package/templates/.cursor/docs/templates/phase-execution-prompt-template.md +504 -0
- package/templates/.cursor/docs/templates/reference-template.md +522 -0
- package/templates/.cursor/docs/templates/solution-template.md +390 -0
- package/templates/.cursor/docs/tools/README.md +325 -0
- package/templates/.cursor/docs/tools/agents.md +330 -0
- package/templates/.cursor/docs/tools/commands.md +606 -0
- package/templates/.cursor/docs/tools/cursor.md +498 -0
- package/templates/.cursor/docs/tools/mcps.md +858 -0
- package/templates/.cursor/docs/tools/rules.md +423 -0
- package/templates/.cursor/rules/language-and-documentation.mdc +371 -0
- package/templates/.cursor/rules/onion-patterns.mdc +197 -0
- package/templates/.cursor/rules/validation-rules.mdc +194 -0
- package/templates/.cursor/utils/clickup-mcp-wrappers.md +671 -0
- package/templates/.cursor/utils/date-time-standards.md +182 -0
- package/templates/.cursor/utils/task-manager/README.md +94 -0
- package/templates/.cursor/utils/task-manager/adapters/asana.md +377 -0
- package/templates/.cursor/utils/task-manager/adapters/clickup.md +467 -0
- package/templates/.cursor/utils/task-manager/adapters/linear.md +421 -0
- package/templates/.cursor/utils/task-manager/detector.md +290 -0
- package/templates/.cursor/utils/task-manager/factory.md +363 -0
- package/templates/.cursor/utils/task-manager/interface.md +248 -0
- package/templates/.cursor/utils/task-manager/types.md +409 -0
- package/templates/.cursor/validation/product-task-validation.md +344 -0
- package/templates/.onion/contexts/business/.context-config.yml +52 -0
- package/templates/.onion/contexts/business/README.md +222 -0
- package/templates/.onion/contexts/business/agents/branding-specialist.md +1030 -0
- package/templates/.onion/contexts/business/agents/clickup-specialist.md +397 -0
- package/templates/.onion/contexts/business/agents/extract-meeting-specialist.md +395 -0
- package/templates/.onion/contexts/business/agents/gamma-specialist.md +1169 -0
- package/templates/.onion/contexts/business/agents/meeting-consolidator.md +483 -0
- package/templates/.onion/contexts/business/agents/pain-price-specialist.md +509 -0
- package/templates/.onion/contexts/business/agents/presentation-orchestrator.md +1191 -0
- package/templates/.onion/contexts/business/agents/product-agent.md +202 -0
- package/templates/.onion/contexts/business/agents/story-points-specialist.md +539 -0
- package/templates/.onion/contexts/business/agents/storytelling-specialist.md +891 -0
- package/templates/.onion/contexts/business/agents/task-specialist.md +618 -0
- package/templates/.onion/contexts/business/agents/whisper-specialist.md +373 -0
- package/templates/.onion/contexts/business/commands/advanced/analyze-pain-price.md +709 -0
- package/templates/.onion/contexts/business/commands/advanced/branding.md +460 -0
- package/templates/.onion/contexts/business/commands/advanced/checklist-sync.md +241 -0
- package/templates/.onion/contexts/business/commands/advanced/presentation.md +189 -0
- package/templates/.onion/contexts/business/commands/advanced/transform-consolidated.md +592 -0
- package/templates/.onion/contexts/business/commands/help.md +212 -0
- package/templates/.onion/contexts/business/commands/intermediate/check.md +48 -0
- package/templates/.onion/contexts/business/commands/intermediate/collect.md +96 -0
- package/templates/.onion/contexts/business/commands/intermediate/consolidate-meetings.md +306 -0
- package/templates/.onion/contexts/business/commands/intermediate/convert-to-tasks.md +220 -0
- package/templates/.onion/contexts/business/commands/intermediate/extract-meeting.md +241 -0
- package/templates/.onion/contexts/business/commands/intermediate/feature.md +431 -0
- package/templates/.onion/contexts/business/commands/intermediate/light-arch.md +97 -0
- package/templates/.onion/contexts/business/commands/intermediate/task-check.md +340 -0
- package/templates/.onion/contexts/business/commands/intermediate/validate-task.md +294 -0
- package/templates/.onion/contexts/business/commands/intermediate/whisper.md +325 -0
- package/templates/.onion/contexts/business/commands/starter/estimate.md +519 -0
- package/templates/.onion/contexts/business/commands/starter/refine.md +186 -0
- package/templates/.onion/contexts/business/commands/starter/spec.md +107 -0
- package/templates/.onion/contexts/business/commands/starter/task.md +585 -0
- package/templates/.onion/contexts/business/commands/starter/warm-up.md +187 -0
- package/templates/.onion/contexts/technical/.context-config.yml +64 -0
- package/templates/.onion/contexts/technical/README.md +238 -0
- package/templates/.onion/contexts/technical/agents/branch-code-reviewer.md +200 -0
- package/templates/.onion/contexts/technical/agents/branch-doc-writer.md +162 -0
- package/templates/.onion/contexts/technical/agents/branch-metaspec-checker.md +68 -0
- package/templates/.onion/contexts/technical/agents/branch-test-planner.md +177 -0
- package/templates/.onion/contexts/technical/agents/c4-architecture-specialist.md +712 -0
- package/templates/.onion/contexts/technical/agents/c4-documentation-specialist.md +658 -0
- package/templates/.onion/contexts/technical/agents/code-reviewer.md +155 -0
- package/templates/.onion/contexts/technical/agents/cursor-specialist.md +249 -0
- package/templates/.onion/contexts/technical/agents/docs-reverse-engineer.md +418 -0
- package/templates/.onion/contexts/technical/agents/gitflow-specialist.md +1207 -0
- package/templates/.onion/contexts/technical/agents/linux-security-specialist.md +676 -0
- package/templates/.onion/contexts/technical/agents/mermaid-specialist.md +516 -0
- package/templates/.onion/contexts/technical/agents/nodejs-specialist.md +673 -0
- package/templates/.onion/contexts/technical/agents/nx-migration-specialist.md +867 -0
- package/templates/.onion/contexts/technical/agents/nx-monorepo-specialist.md +619 -0
- package/templates/.onion/contexts/technical/agents/postgres-specialist.md +1124 -0
- package/templates/.onion/contexts/technical/agents/react-developer.md +132 -0
- package/templates/.onion/contexts/technical/agents/runflow-specialist.md +278 -0
- package/templates/.onion/contexts/technical/agents/system-doc-orchestrator.md +1388 -0
- package/templates/.onion/contexts/technical/agents/test-agent.md +425 -0
- package/templates/.onion/contexts/technical/agents/test-engineer.md +295 -0
- package/templates/.onion/contexts/technical/agents/test-planner.md +118 -0
- package/templates/.onion/contexts/technical/agents/zen-engine-specialist.md +421 -0
- package/templates/.onion/contexts/technical/commands/advanced/bump.md +43 -0
- package/templates/.onion/contexts/technical/commands/advanced/consolidate-documents.md +424 -0
- package/templates/.onion/contexts/technical/commands/advanced/e2e.md +392 -0
- package/templates/.onion/contexts/technical/commands/advanced/feature-finish.md +90 -0
- package/templates/.onion/contexts/technical/commands/advanced/feature-publish.md +91 -0
- package/templates/.onion/contexts/technical/commands/advanced/feature-start.md +158 -0
- package/templates/.onion/contexts/technical/commands/advanced/hotfix-finish.md +98 -0
- package/templates/.onion/contexts/technical/commands/advanced/hotfix-start.md +94 -0
- package/templates/.onion/contexts/technical/commands/advanced/hotfix.md +186 -0
- package/templates/.onion/contexts/technical/commands/advanced/refine-vision.md +27 -0
- package/templates/.onion/contexts/technical/commands/advanced/release-finish.md +98 -0
- package/templates/.onion/contexts/technical/commands/advanced/release-start.md +95 -0
- package/templates/.onion/contexts/technical/commands/advanced/reverse-consolidate.md +160 -0
- package/templates/.onion/contexts/technical/commands/advanced/validate-phase-sync.md +118 -0
- package/templates/.onion/contexts/technical/commands/help.md +329 -0
- package/templates/.onion/contexts/technical/commands/intermediate/build-business-docs.md +276 -0
- package/templates/.onion/contexts/technical/commands/intermediate/build-index.md +128 -0
- package/templates/.onion/contexts/technical/commands/intermediate/build-tech-docs.md +204 -0
- package/templates/.onion/contexts/technical/commands/intermediate/code-review.md +215 -0
- package/templates/.onion/contexts/technical/commands/intermediate/docs-health.md +142 -0
- package/templates/.onion/contexts/technical/commands/intermediate/fast-commit.md +45 -0
- package/templates/.onion/contexts/technical/commands/intermediate/integration.md +523 -0
- package/templates/.onion/contexts/technical/commands/intermediate/pr-update.md +198 -0
- package/templates/.onion/contexts/technical/commands/intermediate/pre-pr.md +91 -0
- package/templates/.onion/contexts/technical/commands/intermediate/start.md +266 -0
- package/templates/.onion/contexts/technical/commands/intermediate/sync-sessions.md +320 -0
- package/templates/.onion/contexts/technical/commands/intermediate/unit.md +378 -0
- package/templates/.onion/contexts/technical/commands/intermediate/validate-docs.md +159 -0
- package/templates/.onion/contexts/technical/commands/starter/docs.md +39 -0
- package/templates/.onion/contexts/technical/commands/starter/help.md +306 -0
- package/templates/.onion/contexts/technical/commands/starter/init.md +139 -0
- package/templates/.onion/contexts/technical/commands/starter/plan.md +111 -0
- package/templates/.onion/contexts/technical/commands/starter/pr.md +136 -0
- package/templates/.onion/contexts/technical/commands/starter/sync.md +228 -0
- package/templates/.onion/contexts/technical/commands/starter/warm-up.md +173 -0
- package/templates/.onion/contexts/technical/commands/starter/work.md +169 -0
- package/templates/.onion/core/commands/help.md +388 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e
|
|
3
|
+
description: |
|
|
4
|
+
Gera e executa testes end-to-end automaticamente com detecção de framework.
|
|
5
|
+
Use para criar testes E2E seguindo padrões do projeto e executá-los com gravação.
|
|
6
|
+
model: sonnet
|
|
7
|
+
|
|
8
|
+
parameters:
|
|
9
|
+
- name: feature-name
|
|
10
|
+
description: Nome da feature para testar (ex: "login", "checkout")
|
|
11
|
+
required: true
|
|
12
|
+
- name: --generate
|
|
13
|
+
description: Gera arquivo de teste se não existir
|
|
14
|
+
required: false
|
|
15
|
+
- name: --run
|
|
16
|
+
description: Executa os testes
|
|
17
|
+
required: false
|
|
18
|
+
- name: --headless
|
|
19
|
+
description: Executa sem interface gráfica (default: true)
|
|
20
|
+
required: false
|
|
21
|
+
- name: --record
|
|
22
|
+
description: Grava vídeo/screenshots dos testes
|
|
23
|
+
required: false
|
|
24
|
+
- name: --framework
|
|
25
|
+
description: Framework específico (sobrescreve auto-detecção: cypress|playwright|selenium)
|
|
26
|
+
required: false
|
|
27
|
+
|
|
28
|
+
category: test
|
|
29
|
+
tags:
|
|
30
|
+
- testing
|
|
31
|
+
- e2e-tests
|
|
32
|
+
- test-generation
|
|
33
|
+
- automation
|
|
34
|
+
- cypress
|
|
35
|
+
- playwright
|
|
36
|
+
- recording
|
|
37
|
+
|
|
38
|
+
version: "4.0.0"
|
|
39
|
+
updated: "2025-12-20"
|
|
40
|
+
|
|
41
|
+
related_commands:
|
|
42
|
+
- /test/unit
|
|
43
|
+
- /test/integration
|
|
44
|
+
- /validate/test-strategy/create
|
|
45
|
+
- /engineer/work
|
|
46
|
+
|
|
47
|
+
related_agents:
|
|
48
|
+
- test-engineer
|
|
49
|
+
- test-planner
|
|
50
|
+
level: advanced
|
|
51
|
+
context: technical
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# 🎭 Test E2E
|
|
55
|
+
|
|
56
|
+
Gera e executa testes end-to-end automaticamente com detecção inteligente de framework, geração de cenários baseados em features e integração com gravação de vídeo/screenshots.
|
|
57
|
+
|
|
58
|
+
## 🎯 Objetivo
|
|
59
|
+
|
|
60
|
+
Automatizar o ciclo completo de testes E2E:
|
|
61
|
+
- **Auto-detecção** de framework E2E (Cypress, Playwright, Selenium)
|
|
62
|
+
- **Geração de cenários** baseados no nome da feature (login → valid/invalid credentials, etc.)
|
|
63
|
+
- **Selectors inteligentes** usando data-attributes, semantic selectors, text content
|
|
64
|
+
- **Execução** com suporte a headless mode e gravação
|
|
65
|
+
- **Integração** com pipeline CI/CD existente
|
|
66
|
+
|
|
67
|
+
## ⚡ Fluxo de Execução
|
|
68
|
+
|
|
69
|
+
### Passo 1: Validar Feature Name
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Validar formato
|
|
73
|
+
if [[ ! "{{feature-name}}" =~ ^[a-z][a-z0-9-]*$ ]]; then
|
|
74
|
+
echo "❌ ERRO: Feature name deve ser kebab-case (ex: login, user-registration)"
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Validações:**
|
|
80
|
+
```markdown
|
|
81
|
+
SE feature-name vazio:
|
|
82
|
+
❌ ERRO: Nome da feature é obrigatório
|
|
83
|
+
|
|
84
|
+
SE formato inválido:
|
|
85
|
+
❌ ERRO: Use kebab-case (ex: login, checkout-flow)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Passo 2: Detectar Framework E2E
|
|
89
|
+
|
|
90
|
+
**Estratégia de Detecção (em ordem de prioridade):**
|
|
91
|
+
|
|
92
|
+
1. **Verificar configurações:**
|
|
93
|
+
- `cypress.config.{js,ts}` → Cypress detectado
|
|
94
|
+
- `playwright.config.{js,ts}` → Playwright detectado
|
|
95
|
+
- `wdio.conf.{js,ts}` → WebdriverIO/Selenium detectado
|
|
96
|
+
- `package.json` → `cypress`, `@playwright/test`, `selenium-webdriver` em dependencies
|
|
97
|
+
|
|
98
|
+
2. **Buscar arquivos de teste existentes:**
|
|
99
|
+
- `cypress/e2e/**/*.spec.{js,ts}`
|
|
100
|
+
- `e2e/**/*.spec.{js,ts}` (Playwright)
|
|
101
|
+
- `tests/e2e/**/*.{js,ts}` (Selenium)
|
|
102
|
+
|
|
103
|
+
3. **Inferir por estrutura:**
|
|
104
|
+
- Diretório `cypress/` → Cypress
|
|
105
|
+
- Diretório `e2e/` com estrutura Playwright → Playwright
|
|
106
|
+
- `selenium` em package.json → Selenium
|
|
107
|
+
|
|
108
|
+
**Output:**
|
|
109
|
+
```markdown
|
|
110
|
+
✅ Framework detectado: [cypress|playwright|selenium]
|
|
111
|
+
📁 Config: [caminho do arquivo de config]
|
|
112
|
+
🌐 Base URL: [URL detectada do config ou .env]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Se `--framework` fornecido:** Sobrescreve detecção automática
|
|
116
|
+
|
|
117
|
+
### Passo 3: Analisar Estrutura de Testes Existente
|
|
118
|
+
|
|
119
|
+
**Buscar:** `**/*.e2e.{js,ts}`, `**/e2e/**/*.spec.{js,ts}`, `cypress/**/*.spec.{js,ts}`
|
|
120
|
+
|
|
121
|
+
**Extrair:** Page objects, nomenclatura, selectors (data-testid/classes/IDs), helpers/fixtures, base URL
|
|
122
|
+
|
|
123
|
+
**Output:** Page objects (Sim/Não), selectors preferidos, base URL, fixtures/helpers
|
|
124
|
+
|
|
125
|
+
### Passo 4: Gerar Cenários Baseados na Feature
|
|
126
|
+
|
|
127
|
+
**Mapeamento de Features → Cenários:**
|
|
128
|
+
|
|
129
|
+
- **Login:** valid/invalid credentials, empty fields, forgot password, remember me
|
|
130
|
+
- **Checkout:** complete flow, invalid payment, empty cart, shipping options, order summary
|
|
131
|
+
- **User Registration:** valid data, duplicate email, weak password, terms acceptance
|
|
132
|
+
- **Search:** valid query, empty query, special chars, filters, pagination
|
|
133
|
+
- **Genérico:** happy path, invalid input, empty state, edge cases
|
|
134
|
+
|
|
135
|
+
**Output:** Lista de cenários gerados com nomes e descrições
|
|
136
|
+
|
|
137
|
+
### Passo 5: Verificar Arquivo de Teste Existente
|
|
138
|
+
|
|
139
|
+
**Padrões:** Cypress: `cypress/e2e/{{feature}}.spec.{js,ts}`, Playwright: `e2e/{{feature}}.spec.{js,ts}`, Selenium: `tests/e2e/{{feature}}.test.{js,ts}`
|
|
140
|
+
|
|
141
|
+
**Decisão:** Se existe → continua execução (ou pula geração se --generate). Se não existe → gera (se --generate) ou erro
|
|
142
|
+
|
|
143
|
+
### Passo 6: Gerar Arquivo de Teste (SE --generate)
|
|
144
|
+
|
|
145
|
+
#### 6.1 Determinar Selectors Inteligentes
|
|
146
|
+
|
|
147
|
+
**Estratégia (ordem de prioridade):**
|
|
148
|
+
1. Data attributes: `[data-testid]`, `[data-cy]`
|
|
149
|
+
2. Semantic HTML: `<button>`, `<form>`, `<input type="email">`
|
|
150
|
+
3. ARIA: `[aria-label]`, `[role]`
|
|
151
|
+
4. Text content: `contains()`, `getByText()`
|
|
152
|
+
5. Classes/IDs: último recurso
|
|
153
|
+
|
|
154
|
+
#### 6.2 Gerar Estrutura de Teste
|
|
155
|
+
|
|
156
|
+
**Padrão AAA (Arrange, Act, Assert) por framework:**
|
|
157
|
+
|
|
158
|
+
- **Cypress:** `describe()` + `it()`, `cy.visit()`, `cy.get('[data-testid]')`, `cy.url().should()`
|
|
159
|
+
- **Playwright:** `test.describe()` + `test()`, `page.goto()`, `page.getByTestId()`, `expect().toBeVisible()`
|
|
160
|
+
- **Selenium:** `describe()` + `it()`, `browser.url()`, `$('[data-testid]')`, `expect().toHaveUrlContaining()`
|
|
161
|
+
|
|
162
|
+
**Estrutura base:** beforeEach (visit), testes para happy path, error handling, edge cases
|
|
163
|
+
|
|
164
|
+
#### 6.3 Adicionar Page Objects (se padrão existir)
|
|
165
|
+
|
|
166
|
+
**Se projeto usa page objects:** Gerar classe com getters para elementos e métodos para ações (visit, submitForm, etc.)
|
|
167
|
+
|
|
168
|
+
#### 6.4 Criar Arquivo de Teste
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
write {{test-file-path}} [conteúdo gerado]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Validação:**
|
|
175
|
+
```markdown
|
|
176
|
+
✅ Arquivo gerado: {{test-file-path}}
|
|
177
|
+
📊 Cenários: [N] testes
|
|
178
|
+
∟ Happy path: [N]
|
|
179
|
+
∟ Error handling: [N]
|
|
180
|
+
∟ Edge cases: [N]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Passo 7: Executar Testes (SE --run)
|
|
184
|
+
|
|
185
|
+
#### 7.1 Preparar Comando de Execução
|
|
186
|
+
|
|
187
|
+
**Comandos por framework:**
|
|
188
|
+
|
|
189
|
+
- **Cypress:** `npx cypress run --spec "cypress/e2e/{{feature}}.spec.ts" [--headless] [--record]` ou `pnpm cypress run`
|
|
190
|
+
- **Playwright:** `npx playwright test e2e/{{feature}}.spec.ts [--headed=false] [--video=on]` ou `pnpm playwright test`
|
|
191
|
+
- **Selenium:** `npx wdio run wdio.conf.ts --spec tests/e2e/{{feature}}.test.ts [--headless]`
|
|
192
|
+
|
|
193
|
+
#### 7.2 Construir Comando Final
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
**Comando base:** [comando do framework]
|
|
197
|
+
|
|
198
|
+
**Flags:**
|
|
199
|
+
SE --headless não fornecido OU --headless=true:
|
|
200
|
+
+ flag headless (default: true)
|
|
201
|
+
|
|
202
|
+
SE --headless=false:
|
|
203
|
+
+ flag headed (abre browser)
|
|
204
|
+
|
|
205
|
+
SE --record:
|
|
206
|
+
+ flag de gravação (vídeo/screenshots)
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
#### 7.3 Executar Testes
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
run_terminal_cmd [comando construído]
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Capturar output:**
|
|
216
|
+
- Resultado dos testes (pass/fail)
|
|
217
|
+
- Screenshots/vídeos (se --record)
|
|
218
|
+
- Erros e stack traces
|
|
219
|
+
- Tempo de execução
|
|
220
|
+
- Artifacts gerados
|
|
221
|
+
|
|
222
|
+
### Passo 8: Apresentar Resultados
|
|
223
|
+
|
|
224
|
+
## 📤 Output Esperado
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
228
|
+
✅ TESTES E2E - {{feature-name}}
|
|
229
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
230
|
+
|
|
231
|
+
🔍 Detecção:
|
|
232
|
+
∟ Framework: [cypress|playwright|selenium]
|
|
233
|
+
∟ Config: [caminho do arquivo de config]
|
|
234
|
+
∟ Base URL: [URL]
|
|
235
|
+
∟ Headless: [true|false]
|
|
236
|
+
|
|
237
|
+
📊 Análise de Padrões:
|
|
238
|
+
∟ Page objects: [✅ Sim | ❌ Não]
|
|
239
|
+
∟ Selectors: [data-testid|semantic|classes]
|
|
240
|
+
∟ Estrutura existente: [encontrada|nova]
|
|
241
|
+
|
|
242
|
+
📝 Arquivo de Teste:
|
|
243
|
+
∟ Status: [✅ Existente | ✅ Gerado | ❌ Não encontrado]
|
|
244
|
+
∟ Caminho: {{test-file-path}}
|
|
245
|
+
∟ Cenários: [N] testes
|
|
246
|
+
├─ Happy path: [N]
|
|
247
|
+
├─ Error handling: [N]
|
|
248
|
+
└─ Edge cases: [N]
|
|
249
|
+
|
|
250
|
+
🧪 Execução:
|
|
251
|
+
∟ Comando: [comando executado]
|
|
252
|
+
∟ Status: [✅ Passou | ❌ Falhou | ⚠️ Parcial]
|
|
253
|
+
∟ Testes executados: [X/Y] passaram
|
|
254
|
+
∟ Tempo: [X]s
|
|
255
|
+
|
|
256
|
+
📹 Gravação (se --record):
|
|
257
|
+
∟ Vídeos: [caminho]
|
|
258
|
+
∟ Screenshots: [caminho]
|
|
259
|
+
∟ Artifacts: [lista]
|
|
260
|
+
|
|
261
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
262
|
+
|
|
263
|
+
🚀 Próximos Passos:
|
|
264
|
+
1. Revisar testes gerados e ajustar selectors
|
|
265
|
+
2. Executar novamente: /test/e2e {{feature-name}} --run
|
|
266
|
+
3. Integrar no CI/CD: /validate/test-strategy/create
|
|
267
|
+
4. Adicionar mais cenários conforme necessário
|
|
268
|
+
|
|
269
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## 📋 Exemplos de Uso
|
|
273
|
+
|
|
274
|
+
**1. Gerar e executar com gravação:**
|
|
275
|
+
```bash
|
|
276
|
+
/test/e2e login --generate --run --record
|
|
277
|
+
```
|
|
278
|
+
→ Detecta framework, gera `login.spec.ts` com cenários de login, executa com vídeo
|
|
279
|
+
|
|
280
|
+
**2. Executar em modo headed:**
|
|
281
|
+
```bash
|
|
282
|
+
/test/e2e checkout --run --headless false
|
|
283
|
+
```
|
|
284
|
+
→ Executa `checkout.spec.ts` com browser visível
|
|
285
|
+
|
|
286
|
+
**3. Apenas gerar teste:**
|
|
287
|
+
```bash
|
|
288
|
+
/test/e2e user-registration --generate
|
|
289
|
+
```
|
|
290
|
+
→ Gera `user-registration.spec.ts` com cenários de registro, não executa
|
|
291
|
+
|
|
292
|
+
**4. Executar teste existente:**
|
|
293
|
+
```bash
|
|
294
|
+
/test/e2e search --run --record
|
|
295
|
+
```
|
|
296
|
+
→ Executa `search.spec.ts` existente com gravação, não gera novo arquivo
|
|
297
|
+
|
|
298
|
+
## ⚙️ Parâmetros Detalhados
|
|
299
|
+
|
|
300
|
+
| Parâmetro | Tipo | Obrigatório | Descrição |
|
|
301
|
+
|-----------|------|-------------|-----------|
|
|
302
|
+
| `feature-name` | string | ✅ | Nome da feature em kebab-case |
|
|
303
|
+
| `--generate` | flag | ❌ | Gera arquivo de teste se não existir |
|
|
304
|
+
| `--run` | flag | ❌ | Executa os testes |
|
|
305
|
+
| `--headless` | boolean | ❌ | Executa sem interface (default: true) |
|
|
306
|
+
| `--record` | flag | ❌ | Grava vídeo/screenshots |
|
|
307
|
+
| `--framework` | string | ❌ | Framework específico (sobrescreve auto-detecção) |
|
|
308
|
+
|
|
309
|
+
## 🔗 Comandos Relacionados
|
|
310
|
+
|
|
311
|
+
- `/test/unit` - Testes unitários (White-box)
|
|
312
|
+
- `/test/integration` - Testes de integração (Grey-box)
|
|
313
|
+
- `/validate/test-strategy/create` - Criar estratégia completa de testes
|
|
314
|
+
- `/engineer/work` - Continuar desenvolvimento
|
|
315
|
+
|
|
316
|
+
## ⚠️ Validações e Regras
|
|
317
|
+
|
|
318
|
+
### Validações Obrigatórias
|
|
319
|
+
|
|
320
|
+
1. **Feature name deve ser válido:**
|
|
321
|
+
```markdown
|
|
322
|
+
SE feature-name vazio:
|
|
323
|
+
❌ ERRO: Nome da feature é obrigatório
|
|
324
|
+
|
|
325
|
+
SE formato inválido:
|
|
326
|
+
❌ ERRO: Use kebab-case (ex: login, checkout-flow)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
2. **Framework deve ser detectável ou fornecido:**
|
|
330
|
+
```markdown
|
|
331
|
+
SE nenhum framework detectado E --framework não fornecido:
|
|
332
|
+
❌ ERRO: Não foi possível detectar framework E2E
|
|
333
|
+
💡 Instale Cypress/Playwright ou use --framework [nome]
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
3. **Arquivo de teste deve existir para execução:**
|
|
337
|
+
```markdown
|
|
338
|
+
SE --run fornecido E arquivo não existe E --generate não fornecido:
|
|
339
|
+
❌ ERRO: Arquivo de teste não encontrado
|
|
340
|
+
💡 Use --generate para criar automaticamente
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Regras de Negócio
|
|
344
|
+
|
|
345
|
+
1. **Auto-detecção tem prioridade** sobre --framework, exceto se fornecido
|
|
346
|
+
2. **Geração segue padrões** do projeto (analisa testes existentes)
|
|
347
|
+
3. **Selectors inteligentes** priorizam data-attributes e semantic HTML
|
|
348
|
+
4. **Headless é default** (true) para CI/CD, use `--headless false` para debug
|
|
349
|
+
5. **Gravação** sempre captura em falhas, `--record` habilita em sucessos também
|
|
350
|
+
|
|
351
|
+
## 🔧 Suporte por Framework
|
|
352
|
+
|
|
353
|
+
| Framework | Headless | Gravação | Page Objects | CI/CD |
|
|
354
|
+
|-----------|----------|----------|--------------|-------|
|
|
355
|
+
| Cypress | ✅ | ✅ | ✅ | ✅ |
|
|
356
|
+
| Playwright | ✅ | ✅ | ✅ | ✅ |
|
|
357
|
+
| Selenium | ✅ | ⚠️ | ✅ | ✅ |
|
|
358
|
+
|
|
359
|
+
## 📚 Referências
|
|
360
|
+
|
|
361
|
+
- **Agente de Testes:** @test-engineer
|
|
362
|
+
- **Framework de Testes:** `docs/knowbase/frameworks/framework_testes.md`
|
|
363
|
+
- **Cypress Docs:** https://docs.cypress.io
|
|
364
|
+
- **Playwright Docs:** https://playwright.dev
|
|
365
|
+
|
|
366
|
+
## ⚠️ Notas Importantes
|
|
367
|
+
|
|
368
|
+
- **Auto-detecção inteligente:** Analisa configurações e estrutura do projeto
|
|
369
|
+
- **Geração conservadora:** Cria testes básicos, desenvolvedor deve expandir
|
|
370
|
+
- **Selectors robustos:** Prioriza data-attributes para estabilidade
|
|
371
|
+
- **CI/CD ready:** Headless por padrão, gravação opcional
|
|
372
|
+
- **Page objects:** Detecta e segue padrão se existir no projeto
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
**Versão:** 3.0.0
|
|
377
|
+
**Última atualização:** 2025-12-03
|
|
378
|
+
**Mantido por:** Sistema Onion
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## 📚 Pré-requisitos
|
|
385
|
+
|
|
386
|
+
Domine comandos starter antes de usar este comando intermediate/advanced.
|
|
387
|
+
|
|
388
|
+
Consulte os comandos help para ver hierarquia completa e comandos relacionados:
|
|
389
|
+
- /business/help --level=starter
|
|
390
|
+
- /technical/help --level=starter
|
|
391
|
+
|
|
392
|
+
💡 Comandos intermediate/advanced assumem familiaridade com workflows básicos do contexto.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: finish
|
|
3
|
+
description: Finalizar feature com merge para develop e cleanup.
|
|
4
|
+
model: sonnet
|
|
5
|
+
category: git
|
|
6
|
+
tags: [feature, gitflow, merge]
|
|
7
|
+
version: "4.0.0"
|
|
8
|
+
updated: "2025-12-20"
|
|
9
|
+
level: advanced
|
|
10
|
+
context: technical
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ✅ Git Flow - Finalizar Feature
|
|
14
|
+
|
|
15
|
+
Finalizar desenvolvimento de feature realizando merge seguro para develop branch com validações automáticas e cleanup completo. Processo seguro com confirmações obrigatórias para prevenir erros de produção.
|
|
16
|
+
|
|
17
|
+
## 🎯 Funcionalidades
|
|
18
|
+
|
|
19
|
+
### Safety-First e Validações
|
|
20
|
+
- Confirmação obrigatória antes de merge feature → develop
|
|
21
|
+
- Análise automática de conflitos e working directory
|
|
22
|
+
- Validação de status da develop branch (sincronização)
|
|
23
|
+
- Preview detalhado das mudanças que serão mergeadas
|
|
24
|
+
- Guidance para resolução de problemas encontrados
|
|
25
|
+
|
|
26
|
+
### GitFlow Compliance e Automação
|
|
27
|
+
- Merge seguindo padrão oficial GitFlow (feature → develop)
|
|
28
|
+
- Cleanup automático de branch local e remote após merge
|
|
29
|
+
- Atualização de ClickUp task e session archival
|
|
30
|
+
- Integração preservada com @gitflow-specialist para operações complexas
|
|
31
|
+
|
|
32
|
+
### Educação e UX
|
|
33
|
+
- Context display mostrando impacto das mudanças
|
|
34
|
+
- Progress indicators durante operação
|
|
35
|
+
- Educational content sobre GitFlow workflow
|
|
36
|
+
- Next steps guidance após finalização
|
|
37
|
+
|
|
38
|
+
## 🚀 Como Usar
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
/git/feature/finish # Auto-detecta branch atual
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Pré-requisitos**: Execute na branch de feature que deseja finalizar
|
|
45
|
+
|
|
46
|
+
### Processo Executado
|
|
47
|
+
1. **Análise**: Detecta branch atual e valida estado do repositório
|
|
48
|
+
2. **Validações**: Verifica working directory, conflicts e status develop
|
|
49
|
+
3. **Preview**: Exibe impacto das mudanças (commits, files, lines)
|
|
50
|
+
4. **Confirmação**: Solicita confirmação explícita do usuário
|
|
51
|
+
5. **Merge**: Executa merge seguro feature → develop
|
|
52
|
+
6. **Cleanup**: Remove branch local/remote e atualiza ClickUp task
|
|
53
|
+
7. **Archive**: Move session para estado finalizado
|
|
54
|
+
|
|
55
|
+
### Educational Context
|
|
56
|
+
Durante execução, o comando ensina conceitos GitFlow:
|
|
57
|
+
- Visualização do workflow: `develop → feature/name → develop`
|
|
58
|
+
- Impacto da operação na team collaboration
|
|
59
|
+
- Best practices para feature development
|
|
60
|
+
- Guidance para próximos passos
|
|
61
|
+
|
|
62
|
+
## 🤝 Integração @gitflow-specialist
|
|
63
|
+
|
|
64
|
+
*Este comando sempre consulta @gitflow-specialist para análise de conflitos, validação de merge strategy, execução segura do merge e guidance para resolução de problemas complexos.*
|
|
65
|
+
|
|
66
|
+
## ⚠️ Resolução de Problemas
|
|
67
|
+
|
|
68
|
+
### Uncommitted Changes
|
|
69
|
+
- **Sintoma**: Working directory não está limpo
|
|
70
|
+
- **Solução**: `git add . && git commit -m "final changes"` antes de finalizar
|
|
71
|
+
|
|
72
|
+
### Merge Conflicts Detectados
|
|
73
|
+
- **Causa**: Mudanças conflitantes entre feature e develop
|
|
74
|
+
- **Fix**: Resolver conflicts manualmente ou usar `git merge develop` na feature branch primeiro
|
|
75
|
+
|
|
76
|
+
### Develop Branch Desatualizada
|
|
77
|
+
- **Sintoma**: Develop branch está atrás do remote
|
|
78
|
+
- **Solução**: `git checkout develop && git pull origin develop` antes de finalizar feature
|
|
79
|
+
|
|
80
|
+
### Tests Failing
|
|
81
|
+
- **Sintoma**: Testes automatizados falhando
|
|
82
|
+
- **Solução**: Corrigir testes ou usar flag de override (não recomendado)
|
|
83
|
+
|
|
84
|
+
### Feature Branch Não Encontrada
|
|
85
|
+
- **Causa**: Not em uma feature branch ou branch name incorreto
|
|
86
|
+
- **Fix**: `git checkout feature/your-feature-name` antes de executar comando
|
|
87
|
+
|
|
88
|
+
### Remote Branch Issues
|
|
89
|
+
- **Sintoma**: Problemas com remote branch tracking
|
|
90
|
+
- **Solução**: `git push -u origin feature/name` para estabelecer tracking
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: publish
|
|
3
|
+
description: Publicar feature branch no remote para colaboração.
|
|
4
|
+
model: sonnet
|
|
5
|
+
category: git
|
|
6
|
+
tags: [feature, gitflow, remote]
|
|
7
|
+
version: "4.0.0"
|
|
8
|
+
updated: "2025-12-20"
|
|
9
|
+
level: advanced
|
|
10
|
+
context: technical
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# 🤝 Git Flow - Publicar Feature
|
|
14
|
+
|
|
15
|
+
Publicar feature branch para remote repository permitindo colaboração em equipe com setup automático de tracking, validações de readiness e integração com ClickUp para team awareness e code review workflow.
|
|
16
|
+
|
|
17
|
+
## 🎯 Funcionalidades
|
|
18
|
+
|
|
19
|
+
### Team Collaboration e Sharing
|
|
20
|
+
- Push seguro da feature branch para remote origin
|
|
21
|
+
- Setup automático de upstream tracking para colaboração
|
|
22
|
+
- Validações de collaboration readiness (tests, commits, documentation)
|
|
23
|
+
- Team notification integration via ClickUp status updates
|
|
24
|
+
- Code review preparation automática
|
|
25
|
+
|
|
26
|
+
### Git Flow Compliance e Automação
|
|
27
|
+
- Publicação seguindo padrão oficial GitFlow (feature → remote)
|
|
28
|
+
- Automatic branch tracking configuration
|
|
29
|
+
- ClickUp task status update para "In Review"
|
|
30
|
+
- Team guidance para next steps após publicação
|
|
31
|
+
- Integration com workflows de code review
|
|
32
|
+
|
|
33
|
+
### Educational e Team UX
|
|
34
|
+
- Context display mostrando impacto da publicação na equipe
|
|
35
|
+
- Progress indicators durante operações de remote
|
|
36
|
+
- Educational content sobre feature collaboration
|
|
37
|
+
- Team guidance e best practices para colaboração
|
|
38
|
+
|
|
39
|
+
## 🚀 Como Usar
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
/git/feature/publish # Publica branch atual (se feature)
|
|
43
|
+
/git/feature/publish feature-name # Publica feature específica
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Pré-requisitos**: Branch deve existir localmente e ser uma feature branch
|
|
47
|
+
|
|
48
|
+
### Processo Executado
|
|
49
|
+
1. **Validation**: Verifica se é feature branch e se está ready para publicação
|
|
50
|
+
2. **Readiness Check**: Valida tests, commits, working directory
|
|
51
|
+
3. **Remote Setup**: Configura upstream tracking se necessário
|
|
52
|
+
4. **Push**: Executa push seguro para remote origin
|
|
53
|
+
5. **ClickUp Update**: Atualiza status para "In Review" e notifica team
|
|
54
|
+
6. **Team Guidance**: Fornece next steps para code review workflow
|
|
55
|
+
|
|
56
|
+
### Team Collaboration Features
|
|
57
|
+
Durante execução, facilita colaboração em equipe:
|
|
58
|
+
- Automatic remote branch creation se não existir
|
|
59
|
+
- Team notification via ClickUp integration
|
|
60
|
+
- Code review readiness validation
|
|
61
|
+
- Next steps guidance para collaboration workflow
|
|
62
|
+
|
|
63
|
+
## 🤝 Integração @gitflow-specialist
|
|
64
|
+
|
|
65
|
+
*Este comando sempre consulta @gitflow-specialist para validação de remote operations, configuração de tracking, análise de readiness para team collaboration e guidance para code review preparation.*
|
|
66
|
+
|
|
67
|
+
## ⚠️ Resolução de Problemas
|
|
68
|
+
|
|
69
|
+
### Feature Branch Não Encontrada
|
|
70
|
+
- **Sintoma**: Branch especificada não existe localmente
|
|
71
|
+
- **Solução**: `git checkout -b feature/name` ou usar branch existente
|
|
72
|
+
|
|
73
|
+
### Not on Feature Branch
|
|
74
|
+
- **Causa**: Branch atual não é uma feature branch
|
|
75
|
+
- **Fix**: `git checkout feature/name` ou especificar feature-name no comando
|
|
76
|
+
|
|
77
|
+
### Remote Already Exists
|
|
78
|
+
- **Sintoma**: Branch já existe no remote com divergências
|
|
79
|
+
- **Solução**: `git pull origin feature/name` para sincronizar antes de publicar
|
|
80
|
+
|
|
81
|
+
### Tests Failing
|
|
82
|
+
- **Sintoma**: Validation detecta testes falhando
|
|
83
|
+
- **Solução**: Corrigir testes antes da publicação para manter qualidade da team
|
|
84
|
+
|
|
85
|
+
### Working Directory Not Clean
|
|
86
|
+
- **Causa**: Uncommitted changes impedem publicação segura
|
|
87
|
+
- **Fix**: `git add . && git commit -m "changes"` antes de publicar
|
|
88
|
+
|
|
89
|
+
### Remote Tracking Issues
|
|
90
|
+
- **Sintoma**: Problemas de configuração de upstream tracking
|
|
91
|
+
- **Solução**: Comando configura automaticamente via @gitflow-specialist
|