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,359 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
6
|
+
|
|
7
|
+
# Regras do Workflow PR (Pull Request / Merge Request)
|
|
8
|
+
|
|
9
|
+
## Propósito
|
|
10
|
+
|
|
11
|
+
O workflow `pr` tem como objetivo **criar a branch, commitar as alterações e abrir um Merge Request** seguindo os padrões do time.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ⛔ Gate 0: Pré-requisitos Obrigatórios
|
|
16
|
+
|
|
17
|
+
> Esta regra é executada **antes de qualquer ação**. Se qualquer condição falhar, o workflow para imediatamente.
|
|
18
|
+
|
|
19
|
+
### Regra 0.1 — TASK_MANAGER_KEY obrigatório
|
|
20
|
+
|
|
21
|
+
Ler `TASK_MANAGER` do ENV.md. Ver `eng.integrations-rules.md` (freelance vs board).
|
|
22
|
+
|
|
23
|
+
Se `$ARGUMENTS` não trouxer o key: **perguntar e aguardar**. Não inventar. Não exigir `XXX-000`.
|
|
24
|
+
|
|
25
|
+
- Freelance (`TASK_MANAGER` vazio): *Qual o seu número de controle para esta tarefa?*
|
|
26
|
+
- Com board: *Qual o id do card no {TASK_MANAGER}?*
|
|
27
|
+
|
|
28
|
+
Sem resposta → **PARAR**. Com resposta → seguir (pasta/branch em lowercase).
|
|
29
|
+
|
|
30
|
+
**→ PARAR. Não executar nenhuma fase.**
|
|
31
|
+
|
|
32
|
+
### Regra 0.2 — Proibido executar em branch protegida
|
|
33
|
+
|
|
34
|
+
Verificar branch atual:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git branch --show-current
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Se for `main`, `master`, `develop`, `staging` ou `homolog`:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
🚫 BLOQUEADO: Você está em uma branch protegida ({BRANCH_ATUAL}).
|
|
44
|
+
|
|
45
|
+
Este workflow só pode ser executado em uma branch de feature.
|
|
46
|
+
Execute /eng.start {TASK_MANAGER_KEY} primeiro para criar a branch correta.
|
|
47
|
+
|
|
48
|
+
Branch esperada: {TASK_MANAGER_KEY}-{titulo-kebab-case}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**→ PARAR. Não executar nenhuma fase.**
|
|
52
|
+
|
|
53
|
+
### Regra 0.3 — Branch deve corresponder ao TASK_MANAGER_KEY
|
|
54
|
+
|
|
55
|
+
Se a branch atual **não contém** o `{TASK_MANAGER_KEY}` no nome:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
⚠️ ATENÇÃO: A branch atual ({BRANCH_ATUAL}) não corresponde à tarefa {TASK_MANAGER_KEY}.
|
|
59
|
+
|
|
60
|
+
Branch atual: {BRANCH_ATUAL}
|
|
61
|
+
Esperado: branch contendo {TASK_MANAGER_KEY}
|
|
62
|
+
|
|
63
|
+
Confirmar que está na branch certa? (s/n)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**→ Aguardar confirmação explícita antes de prosseguir.**
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Princípios Fundamentais
|
|
71
|
+
|
|
72
|
+
### 1. Padrão de Nomenclatura de Branch
|
|
73
|
+
|
|
74
|
+
O nome da branch **DEVE** seguir o padrão:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
{TASK_MANAGER_KEY}-{titulo-em-kebab-case}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Regras:**
|
|
81
|
+
- `TASK_MANAGER_KEY` em **UPPERCASE** (ex: `TASK-123`, `STORY-456`)
|
|
82
|
+
- Título extraído do Jira convertido para **kebab-case**
|
|
83
|
+
- Remover caracteres especiais
|
|
84
|
+
- Substituir espaços por hífens
|
|
85
|
+
|
|
86
|
+
**Exemplos:**
|
|
87
|
+
|
|
88
|
+
| TASK_MANAGER_KEY | Título no Jira | Nome da Branch |
|
|
89
|
+
|----------|----------------|----------------|
|
|
90
|
+
| `TASK-123` | "Implementar autenticação JWT" | `TASK-123-implementar-autenticacao-jwt` |
|
|
91
|
+
| `STORY-456` | "Adicionar botão de logout" | `STORY-456-adicionar-botao-de-logout` |
|
|
92
|
+
| `BUG-789` | "Fix: null pointer em login" | `BUG-789-fix-null-pointer-em-login` |
|
|
93
|
+
|
|
94
|
+
### 2. Padrão de Commit
|
|
95
|
+
|
|
96
|
+
**Formato da mensagem de commit:**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
{TASK_MANAGER_KEY} {tipo}({escopo}): {descrição}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Tipos permitidos:**
|
|
103
|
+
- `feat`: Nova funcionalidade
|
|
104
|
+
- `fix`: Correção de bug
|
|
105
|
+
- `docs`: Documentação
|
|
106
|
+
- `style`: Formatação (não afeta código)
|
|
107
|
+
- `refactor`: Refatoração
|
|
108
|
+
- `test`: Testes
|
|
109
|
+
- `chore`: Manutenção
|
|
110
|
+
|
|
111
|
+
**Exemplo:**
|
|
112
|
+
```
|
|
113
|
+
TASK-123 feat(auth): implementar autenticação JWT
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Sempre utilizar commits de 1 linha, dividir em vários commits quando for necessário, caso esteja implementando uma tarefa pai, commits de filhas devem conter o TASK_MANAGER_KEY das filhas.
|
|
117
|
+
|
|
118
|
+
### 3. Branch de Destino
|
|
119
|
+
|
|
120
|
+
O MR deve ser aberto para a branch especificada pelo usuário.
|
|
121
|
+
|
|
122
|
+
**Branches comuns:**
|
|
123
|
+
- `develop` - Para features e bugs
|
|
124
|
+
- `main` - Para hotfixes (com aprovação)
|
|
125
|
+
- `hotfix/{TASK_MANAGER_KEY}-{titulo-em-kebab-case}` - Para correções direto em produção (Apenas MRs com hotfix podem ser abertos diretamente para a branch main
|
|
126
|
+
sempre utiliza a branch main)
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
## Fluxo de Execução
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
135
|
+
│ │
|
|
136
|
+
│ 1. VALIDAR → Testes passando, lint OK │
|
|
137
|
+
│ ↓ │
|
|
138
|
+
│ 2. CRIAR BRANCH → {TASK_MANAGER_KEY}-{titulo} │
|
|
139
|
+
│ ↓ │
|
|
140
|
+
│ 3. STAGE → git add (arquivos específicos) │
|
|
141
|
+
│ ↓ │
|
|
142
|
+
│ 4. COMMIT → Mensagem padronizada │
|
|
143
|
+
│ ↓ │
|
|
144
|
+
│ 5. PUSH → Enviar para remote │
|
|
145
|
+
│ ↓ │
|
|
146
|
+
│ 6. CRIAR MR (desenvolvedor) → Com template preenchido │
|
|
147
|
+
│ ↓ │
|
|
148
|
+
│ 7. ATUALIZAR JIRA (desenvolvedor) → Mover para "In Review" │
|
|
149
|
+
│ │
|
|
150
|
+
└─────────────────────────────────────────────────────────────┘
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Comportamento Esperado
|
|
156
|
+
|
|
157
|
+
### Fase 1: Validação
|
|
158
|
+
|
|
159
|
+
1. **Executar testes**
|
|
160
|
+
```bash
|
|
161
|
+
npm test # ou comando do projeto
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
2. **Verificar lint**
|
|
165
|
+
```bash
|
|
166
|
+
npm run lint # ou comando do projeto
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
3. **Verificar build**
|
|
170
|
+
```bash
|
|
171
|
+
npm run build # ou comando do projeto
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Se qualquer validação falhar**, corrigir antes de prosseguir.
|
|
175
|
+
|
|
176
|
+
### Fase 2: Criação da Branch
|
|
177
|
+
|
|
178
|
+
1. **Obter informações do Jira**
|
|
179
|
+
- TASK_MANAGER_KEY (ex: `TASK-123`)
|
|
180
|
+
- Título da tarefa
|
|
181
|
+
|
|
182
|
+
2. **Criar branch**
|
|
183
|
+
```bash
|
|
184
|
+
git checkout -b {TASK_MANAGER_KEY}-{titulo-kebab-case}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
3. **Confirmar criação**
|
|
188
|
+
```bash
|
|
189
|
+
git branch --show-current
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Fase 3: Stage e Commit
|
|
193
|
+
|
|
194
|
+
1. **Adicionar arquivos específicos** (NUNCA usar `git add .`)
|
|
195
|
+
```bash
|
|
196
|
+
git add {arquivo1} {arquivo2} ...
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
2. **Criar commit**
|
|
200
|
+
```bash
|
|
201
|
+
git commit -m "{TASK_MANAGER_KEY} {tipo}({escopo}): {descrição}"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Fase 4: Push
|
|
205
|
+
|
|
206
|
+
1. **Enviar para remote**
|
|
207
|
+
```bash
|
|
208
|
+
git push -u origin {nome-da-branch}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Fase 5: Criar Merge Request
|
|
212
|
+
|
|
213
|
+
1. **Preencher template do MR** com:
|
|
214
|
+
- Descrição clara do objetivo
|
|
215
|
+
- Link para o card do Jira
|
|
216
|
+
- Lista de mudanças realizadas
|
|
217
|
+
- Testes executados
|
|
218
|
+
- Checklist de revisão
|
|
219
|
+
|
|
220
|
+
2. **Definir branch de destino** (conforme solicitado pelo usuário)
|
|
221
|
+
|
|
222
|
+
3. **Criar MR** fica a cargo do desenvolvedor criar o MR da branch de origem para a destino, você pode retornar o link rápido de criação do MR do gitlab.
|
|
223
|
+
|
|
224
|
+
### Fase 6: Atualizar Jira
|
|
225
|
+
|
|
226
|
+
1. Desenvolvedor deve mover o card para "In Review"
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Template do Merge Request
|
|
231
|
+
|
|
232
|
+
O MR deve seguir o template em `$IDE/templates/engineering/PR-template.md`:
|
|
233
|
+
|
|
234
|
+
```markdown
|
|
235
|
+
## Descrição
|
|
236
|
+
|
|
237
|
+
{Objetivo claro do MR em 2-3 frases}
|
|
238
|
+
|
|
239
|
+
## Tarefas Relacionadas
|
|
240
|
+
|
|
241
|
+
- [x] [{TASK_MANAGER_KEY}]({TASK_MANAGER_URL_BASE}/browse/{TASK_MANAGER_KEY})
|
|
242
|
+
|
|
243
|
+
## Mudanças Propostas
|
|
244
|
+
|
|
245
|
+
- {Mudança 1}
|
|
246
|
+
- {Mudança 2}
|
|
247
|
+
- {Mudança N}
|
|
248
|
+
|
|
249
|
+
## Testes Realizados
|
|
250
|
+
|
|
251
|
+
- {Tipo de teste}: {Resultado}
|
|
252
|
+
- Unitários: ✅ Passando
|
|
253
|
+
- Lint: ✅ OK
|
|
254
|
+
|
|
255
|
+
## Revisores
|
|
256
|
+
|
|
257
|
+
- @{revisor1}
|
|
258
|
+
- @{revisor2}
|
|
259
|
+
|
|
260
|
+
## Checklist de Revisão
|
|
261
|
+
|
|
262
|
+
- [x] As mudanças estão alinhadas com os requisitos da tarefa do Jira
|
|
263
|
+
- [x] Os testes foram executados e passaram
|
|
264
|
+
- [x] O código segue as convenções de estilo
|
|
265
|
+
- [ ] A documentação foi atualizada (se necessário)
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## Regras de Segurança
|
|
271
|
+
|
|
272
|
+
### ⛔ NUNCA FAÇA
|
|
273
|
+
|
|
274
|
+
- ❌ `git add .` (adiciona arquivos indesejados)
|
|
275
|
+
- ❌ Commitar arquivos de configuração local
|
|
276
|
+
- ❌ Commitar credenciais ou tokens
|
|
277
|
+
- ❌ Mencionar AI/Claude no PR
|
|
278
|
+
- ❌ [!IMPORTANT] PUSH DIRETO PARA `main`/`dev`
|
|
279
|
+
|
|
280
|
+
### ✅ SEMPRE FAÇA
|
|
281
|
+
|
|
282
|
+
- ✅ Adicionar arquivos específicos
|
|
283
|
+
- ✅ Verificar `git status` antes do commit
|
|
284
|
+
- ✅ Usar mensagens de commit descritivas
|
|
285
|
+
- ✅ Referenciar o TASK_MANAGER_KEY no commit
|
|
286
|
+
- ✅ **Limpar sessão após criar MR**
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Erros Comuns a Evitar
|
|
291
|
+
|
|
292
|
+
### ❌ Anti-padrões
|
|
293
|
+
|
|
294
|
+
1. **Branch sem padrão**
|
|
295
|
+
- ❌ `feature/login`
|
|
296
|
+
- ✅ `TASK-123-implementar-login`
|
|
297
|
+
|
|
298
|
+
2. **Commit genérico**
|
|
299
|
+
- ❌ `fix bug`
|
|
300
|
+
- ✅ `fix(auth): corrigir validação de token expirado`
|
|
301
|
+
|
|
302
|
+
3. **Adicionar tudo**
|
|
303
|
+
- ❌ `git add .`
|
|
304
|
+
- ✅ `git add src/auth.ts src/auth.test.ts`
|
|
305
|
+
|
|
306
|
+
4. **Esquecer referência**
|
|
307
|
+
- ❌ Commit sem TASK_MANAGER_KEY
|
|
308
|
+
- ✅ Commit começando com `TASK-123`
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Checklist de Conclusão
|
|
313
|
+
|
|
314
|
+
Antes de considerar o PR completo:
|
|
315
|
+
|
|
316
|
+
- [ ] Testes passando com cobertura maior 80%
|
|
317
|
+
- [ ] Lint OK
|
|
318
|
+
- [ ] Build OK
|
|
319
|
+
- [ ] Branch criada no padrão `{TASK_MANAGER_KEY}-{titulo}`
|
|
320
|
+
- [ ] Arquivos adicionados individualmente (não `git add .`)
|
|
321
|
+
- [ ] Commit com mensagem padronizada
|
|
322
|
+
- [ ] Commit referencia o TASK_MANAGER_KEY
|
|
323
|
+
- [ ] Push realizado
|
|
324
|
+
- [ ] MR criado com template preenchido
|
|
325
|
+
- [ ] Branch de destino correta
|
|
326
|
+
- [ ] Card do Jira movido para "In Review"
|
|
327
|
+
- [ ] Comentários de code review processados
|
|
328
|
+
- [ ] **Sessão limpa** (`$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` removida)
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Limpeza da Sessão
|
|
333
|
+
|
|
334
|
+
### Por que limpar?
|
|
335
|
+
|
|
336
|
+
1. **Evitar poluição**: Sessões antigas ocupam espaço e confundem
|
|
337
|
+
2. **Fonte da verdade**: A documentação oficial está no Jira e no MR
|
|
338
|
+
3. **Organizacão**: Manter apenas sessões ativas
|
|
339
|
+
|
|
340
|
+
### O que é removido?
|
|
341
|
+
|
|
342
|
+
```
|
|
343
|
+
$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
|
|
344
|
+
├── architecture.md → Removido
|
|
345
|
+
├── plan.md → Removido
|
|
346
|
+
└── context.md → Removido (se existir)
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Onde a documentação permanece?
|
|
350
|
+
|
|
351
|
+
- **Card do Jira**: Tech spec anexada, comentários
|
|
352
|
+
- **Merge Request**: Descrição, histórico de commits
|
|
353
|
+
- **Código**: Comentários inline, docstrings
|
|
354
|
+
|
|
355
|
+
### Comando de limpeza
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
rm -rf $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/
|
|
359
|
+
```
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
6
|
+
|
|
7
|
+
# Regras do Workflow Pre-PR
|
|
8
|
+
|
|
9
|
+
## Propósito
|
|
10
|
+
|
|
11
|
+
O workflow `pre-pr` valida a branch antes de abrir um Merge Request — revisão de código, testes, documentação e qualidade.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ⛔ Gate 0: Pré-requisitos Obrigatórios
|
|
16
|
+
|
|
17
|
+
> Esta regra é executada **antes de qualquer ação**. Se qualquer condição falhar, o workflow para imediatamente.
|
|
18
|
+
|
|
19
|
+
### Regra 0.1 — TASK_MANAGER_KEY obrigatório
|
|
20
|
+
|
|
21
|
+
Ler `TASK_MANAGER` do ENV.md. Ver `eng.integrations-rules.md` (freelance vs board).
|
|
22
|
+
|
|
23
|
+
Se `$ARGUMENTS` não trouxer o key: **perguntar e aguardar**. Não inventar. Não exigir `XXX-000`.
|
|
24
|
+
|
|
25
|
+
- Freelance (`TASK_MANAGER` vazio): *Qual o seu número de controle para esta tarefa?*
|
|
26
|
+
- Com board: *Qual o id do card no {TASK_MANAGER}?*
|
|
27
|
+
|
|
28
|
+
Sem resposta → **PARAR**. Com resposta → seguir (pasta/branch em lowercase).
|
|
29
|
+
|
|
30
|
+
### Regra 0.2 — Proibido executar em branch protegida
|
|
31
|
+
|
|
32
|
+
Verificar branch atual:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git branch --show-current
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Se for `main`, `master`, `develop`, `staging` ou `homolog`:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
🚫 BLOQUEADO: Você está em uma branch protegida ({BRANCH_ATUAL}).
|
|
42
|
+
|
|
43
|
+
Este workflow só pode ser executado em uma branch de feature.
|
|
44
|
+
Execute /eng.start {TASK_MANAGER_KEY} primeiro para criar a branch correta.
|
|
45
|
+
|
|
46
|
+
Branch esperada: {TASK_MANAGER_KEY}-{titulo-kebab-case}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**→ PARAR. Não executar nenhuma fase.**
|
|
50
|
+
|
|
51
|
+
### Regra 0.3 — Branch deve corresponder ao TASK_MANAGER_KEY
|
|
52
|
+
|
|
53
|
+
Se a branch atual **não contém** o `{TASK_MANAGER_KEY}` no nome:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
⚠️ ATENÇÃO: A branch atual ({BRANCH_ATUAL}) não corresponde à tarefa {TASK_MANAGER_KEY}.
|
|
57
|
+
|
|
58
|
+
Branch atual: {BRANCH_ATUAL}
|
|
59
|
+
Esperado: branch contendo {TASK_MANAGER_KEY}
|
|
60
|
+
|
|
61
|
+
Confirmar que está na branch certa? (s/n)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**→ Aguardar confirmação explícita antes de prosseguir.**
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Regras de Validação
|
|
69
|
+
|
|
70
|
+
### Escopo de Análise
|
|
71
|
+
|
|
72
|
+
Avaliar **apenas** as mudanças da branch atual em relação ao branch base (`main`/`develop`):
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
git diff main...HEAD
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Evidências Obrigatórias
|
|
79
|
+
|
|
80
|
+
Ao citar "testes passando" ou "validações OK", incluir:
|
|
81
|
+
- Qual comando foi executado
|
|
82
|
+
- Output do resultado (ou smoke test manual se não houver suíte)
|
|
83
|
+
|
|
84
|
+
### Revalidação após Mudanças
|
|
85
|
+
|
|
86
|
+
Se qualquer gate levar a mudanças de código, reexecutar obrigatoriamente:
|
|
87
|
+
- Revisão técnica do código alterado
|
|
88
|
+
- Testes/validações
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Saída Final Obrigatória
|
|
93
|
+
|
|
94
|
+
O workflow **deve sempre** terminar com:
|
|
95
|
+
|
|
96
|
+
1. **Semáforo de status**:
|
|
97
|
+
- 🟢 Green: pronto para PR
|
|
98
|
+
- 🟡 Yellow: pode abrir PR com ressalvas documentadas
|
|
99
|
+
- 🔴 Red: bloqueado — listar o que impede o PR
|
|
100
|
+
|
|
101
|
+
2. **Comentário no card** com o status final (via `/eng-task-comment`) — pular se freelance
|
|
102
|
+
|
|
103
|
+
3. **Aguardar permissão explícita** do usuário para prosseguir para `/eng.pr`
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
trigger: always_on
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
> **Applies to:** HUB: all | POSITION: all | AREA: ENGINEERING | SQUAD: all
|
|
6
|
+
|
|
7
|
+
# Regras do Workflow Start
|
|
8
|
+
|
|
9
|
+
## Propósito
|
|
10
|
+
|
|
11
|
+
O workflow `start` tem como **único objetivo** criar o documento de arquitetura (`architecture.md`) para uma nova feature/tarefa. É uma etapa de **planejamento**, não de execução.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Princípios Fundamentais
|
|
16
|
+
|
|
17
|
+
### 1. Somente Planejamento - NUNCA Execução
|
|
18
|
+
|
|
19
|
+
O `start` é **estritamente proibido** de:
|
|
20
|
+
|
|
21
|
+
| ❌ Proibido | ✅ Permitido |
|
|
22
|
+
| ------------------------------------ | ----------------------------------------- |
|
|
23
|
+
| Criar arquivos de código (.ts, .js) | Criar `architecture.md` |
|
|
24
|
+
| Modificar código existente | Ler código para análise |
|
|
25
|
+
| Executar comandos no terminal | Listar arquivos e estruturas |
|
|
26
|
+
| Instalar dependências | Buscar padrões no codebase |
|
|
27
|
+
| Fazer commits | Criar diretório da sessão |
|
|
28
|
+
| Executar testes | Documentar decisões |
|
|
29
|
+
| Iniciar servidores | Dialogar com usuário |
|
|
30
|
+
|
|
31
|
+
### 2. Artefato Único
|
|
32
|
+
|
|
33
|
+
O **único artefato** produzido pelo `start` é:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
> 📁 **Padrão**: `TASK_MANAGER_KEY` é o ID do card em **lowercase** (ex: `TASK-123` → `task-123`)
|
|
40
|
+
|
|
41
|
+
Nenhum outro arquivo deve ser criado, modificado ou deletado.
|
|
42
|
+
|
|
43
|
+
### 3. Aprovação Obrigatória
|
|
44
|
+
|
|
45
|
+
O workflow **só é considerado completo** após:
|
|
46
|
+
|
|
47
|
+
1. O `architecture.md` estar preenchido
|
|
48
|
+
2. O usuário revisar o documento
|
|
49
|
+
3. O usuário **aprovar explicitamente** para prosseguir
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Comportamento Esperado
|
|
54
|
+
|
|
55
|
+
### Fase de Entrada
|
|
56
|
+
|
|
57
|
+
1. **Receber identificador da tarefa (TASK_MANAGER_KEY)**
|
|
58
|
+
- Ler `TASK_MANAGER` do ENV.md (`eng.integrations-rules.md`)
|
|
59
|
+
- Se não veio em `$ARGUMENTS`: **perguntar e aguardar**
|
|
60
|
+
- Freelance (vazio): número de controle próprio (ex: `F-042`)
|
|
61
|
+
- Com board: id do card naquele vendor
|
|
62
|
+
- Converter para **lowercase** (ex: `F-042` → `f-042`)
|
|
63
|
+
|
|
64
|
+
2. **Criar diretório da sessão**
|
|
65
|
+
- Caminho: `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/`
|
|
66
|
+
- Se já existir, avisar o usuário
|
|
67
|
+
|
|
68
|
+
### Fase de Investigação
|
|
69
|
+
|
|
70
|
+
3. **Coletar informações do requisito**
|
|
71
|
+
- Buscar card no board só se `TASK_MANAGER` estiver preenchido
|
|
72
|
+
- Ler documentação relacionada
|
|
73
|
+
- Analisar código existente (LEITURA APENAS)
|
|
74
|
+
|
|
75
|
+
4. **Fazer perguntas de clarificação**
|
|
76
|
+
- Mínimo 3, máximo 5 perguntas
|
|
77
|
+
- Aguardar respostas antes de prosseguir
|
|
78
|
+
- Iterar até ter compreensão sólida
|
|
79
|
+
|
|
80
|
+
### Fase de Documentação
|
|
81
|
+
|
|
82
|
+
5. **Criar architecture.md**
|
|
83
|
+
- Usar template: `$IDE/templates/engineering/architecture-template.md`
|
|
84
|
+
- Preencher TODAS as seções
|
|
85
|
+
- Ser específico (arquivos reais, nomes de classes)
|
|
86
|
+
|
|
87
|
+
6. **Apresentar ao usuário**
|
|
88
|
+
- Resumo das principais decisões
|
|
89
|
+
- Riscos identificados
|
|
90
|
+
- Solicitar revisão
|
|
91
|
+
|
|
92
|
+
### Fase de Aprovação
|
|
93
|
+
|
|
94
|
+
7. **Aguardar aprovação**
|
|
95
|
+
- Se aprovado → Informar próximos passos
|
|
96
|
+
- Se rejeitado → Iterar no documento
|
|
97
|
+
- NUNCA prosseguir automaticamente
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Regras de Nomenclatura
|
|
102
|
+
|
|
103
|
+
### TASK_MANAGER_KEY (Identificador da Sessão)
|
|
104
|
+
|
|
105
|
+
O nome da pasta de sessão é **sempre o TASK_MANAGER_KEY em lowercase**:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
{TASK-123} → {task-123}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Regras:**
|
|
112
|
+
- Converter para **lowercase**
|
|
113
|
+
- Manter o formato original (projeto-número)
|
|
114
|
+
- Não adicionar sufixos ou descrições
|
|
115
|
+
|
|
116
|
+
**Exemplos:**
|
|
117
|
+
| Input (TASK_MANAGER_KEY) | Nome da Pasta (Sessão) |
|
|
118
|
+
| ------------------- | ------------------------------------- |
|
|
119
|
+
| `TASK-123` | `$SESSIONS_DIR/eng/task-123/` |
|
|
120
|
+
| `STORY-456` | `$SESSIONS_DIR/eng/story-456/` |
|
|
121
|
+
| `BUG-789` | `$SESSIONS_DIR/eng/bug-789/` |
|
|
122
|
+
| `SPIKE-42` | `$SESSIONS_DIR/eng/spike-42/` |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Qualidade do Architecture.md
|
|
127
|
+
|
|
128
|
+
### Seções Obrigatórias
|
|
129
|
+
|
|
130
|
+
O documento DEVE conter:
|
|
131
|
+
|
|
132
|
+
- [ ] **Contexto** - Por que isso está sendo feito
|
|
133
|
+
- [ ] **Objetivo** - O que será alcançado
|
|
134
|
+
- [ ] **Escopo** - O que está incluído/excluído
|
|
135
|
+
- [ ] **Estado Atual** - Como funciona hoje
|
|
136
|
+
- [ ] **Estado Proposto** - Como funcionará
|
|
137
|
+
- [ ] **Componentes Impactados** - Lista de arquivos
|
|
138
|
+
- [ ] **Decisões Arquiteturais** - Com justificativas
|
|
139
|
+
- [ ] **Dependências** - Internas e externas
|
|
140
|
+
- [ ] **Riscos** - Com mitigações
|
|
141
|
+
- [ ] **Estratégia de Testes** - Tipos e cobertura
|
|
142
|
+
|
|
143
|
+
### Critérios de Qualidade
|
|
144
|
+
|
|
145
|
+
| Critério | Descrição |
|
|
146
|
+
| --------------------------- | ---------------------------------------------- |
|
|
147
|
+
| **Especificidade** | Usa caminhos reais, não genéricos |
|
|
148
|
+
| **Completude** | Todas as seções preenchidas |
|
|
149
|
+
| **Clareza** | Sem ambiguidades ou jargões indefinidos |
|
|
150
|
+
| **Rastreabilidade** | Links para Jira, docs, código |
|
|
151
|
+
| **Decisões Justificadas** | Cada decisão tem "por quê" |
|
|
152
|
+
| **Riscos Mapeados** | Riscos têm mitigações definidas |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Interação com Usuário
|
|
157
|
+
|
|
158
|
+
### Perguntas de Clarificação
|
|
159
|
+
|
|
160
|
+
Sempre pergunte sobre:
|
|
161
|
+
|
|
162
|
+
1. **Escopo** - O que definitivamente NÃO está incluído?
|
|
163
|
+
2. **Prioridade** - Qual parte é mais crítica?
|
|
164
|
+
3. **Dependências** - Algo bloqueia esta implementação?
|
|
165
|
+
4. **Restrições** - Há limitações técnicas conhecidas?
|
|
166
|
+
5. **Validação** - Como saberemos que está funcionando?
|
|
167
|
+
|
|
168
|
+
### Comunicação
|
|
169
|
+
|
|
170
|
+
- **Seja claro** sobre o que é fato vs. suposição
|
|
171
|
+
- **Declare incertezas** explicitamente
|
|
172
|
+
- **Não assuma** - sempre pergunte
|
|
173
|
+
- **Aguarde respostas** antes de prosseguir
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Erros Comuns a Evitar
|
|
178
|
+
|
|
179
|
+
### ❌ Anti-padrões
|
|
180
|
+
|
|
181
|
+
1. **Escapar para execução**
|
|
182
|
+
- "Vou criar o arquivo de teste para validar..."
|
|
183
|
+
- "Deixa eu instalar a dependência para verificar..."
|
|
184
|
+
|
|
185
|
+
2. **Documentação genérica**
|
|
186
|
+
- "Modificar os arquivos necessários"
|
|
187
|
+
- "Implementar a funcionalidade"
|
|
188
|
+
|
|
189
|
+
3. **Pular aprovação**
|
|
190
|
+
- Prosseguir sem confirmação explícita do usuário
|
|
191
|
+
|
|
192
|
+
4. **Assumir requisitos**
|
|
193
|
+
- Decidir escopo sem confirmar com usuário
|
|
194
|
+
|
|
195
|
+
5. **Ignorar riscos**
|
|
196
|
+
- Não documentar riscos óbvios
|
|
197
|
+
|
|
198
|
+
### ✅ Boas Práticas
|
|
199
|
+
|
|
200
|
+
1. **Ser específico**
|
|
201
|
+
- "Modificar `src/services/auth.service.ts` linha ~45"
|
|
202
|
+
|
|
203
|
+
2. **Justificar decisões**
|
|
204
|
+
- "Escolhemos JWT porque o sistema já usa e..."
|
|
205
|
+
|
|
206
|
+
3. **Mapear arquivos reais**
|
|
207
|
+
- Usar glob/grep para encontrar arquivos existentes
|
|
208
|
+
|
|
209
|
+
4. **Documentar trade-offs**
|
|
210
|
+
- "Isso adiciona latência mas simplifica a arquitetura"
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Transição para Próxima Etapa
|
|
215
|
+
|
|
216
|
+
Ao finalizar o `start`, informe claramente:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
✅ Architecture.md criado e aprovado!
|
|
220
|
+
|
|
221
|
+
📄 Documento: $SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/architecture.md
|
|
222
|
+
|
|
223
|
+
📌 Próximos passos:
|
|
224
|
+
1. eng.plan → Criar plano detalhado com subtarefas
|
|
225
|
+
2. eng.work → Iniciar implementação
|
|
226
|
+
|
|
227
|
+
⚠️ Lembre-se: Use eng.plan antes de eng.work
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Checklist de Conclusão
|
|
233
|
+
|
|
234
|
+
Antes de considerar o `start` completo:
|
|
235
|
+
|
|
236
|
+
- [ ] Diretório `$SESSIONS_DIR/eng/{TASK_MANAGER_KEY}/` criado
|
|
237
|
+
- [ ] Arquivo `architecture.md` criado e completo
|
|
238
|
+
- [ ] Template seguido corretamente
|
|
239
|
+
- [ ] Todas as seções obrigatórias preenchidas
|
|
240
|
+
- [ ] Decisões têm justificativas
|
|
241
|
+
- [ ] Riscos têm mitigações
|
|
242
|
+
- [ ] Componentes impactados listados com caminhos reais
|
|
243
|
+
- [ ] Usuário revisou o documento
|
|
244
|
+
- [ ] Usuário aprovou explicitamente
|
|
245
|
+
- [ ] Nenhum código foi executado/criado
|
|
246
|
+
- [ ] Próximos passos comunicados
|