context-first-cli 1.0.0 → 1.1.1

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.
Files changed (28) hide show
  1. package/dist/commands/scaffold-orchestrator.d.ts.map +1 -1
  2. package/dist/commands/scaffold-orchestrator.js +77 -21
  3. package/dist/commands/scaffold-orchestrator.js.map +1 -1
  4. package/dist/templates/commands/engineer/plan.md +251 -0
  5. package/dist/templates/commands/engineer/pr.md +167 -0
  6. package/dist/templates/commands/engineer/pre-pr.md +262 -0
  7. package/dist/templates/commands/engineer/start.md +115 -0
  8. package/dist/templates/commands/engineer/work.md +125 -0
  9. package/dist/templates/commands/products/check.md +201 -0
  10. package/dist/templates/commands/products/collect.md +129 -0
  11. package/dist/templates/commands/products/refine.md +182 -0
  12. package/dist/templates/commands/products/spec.md +239 -0
  13. package/dist/templates/commands/quality/metrics.md +240 -0
  14. package/dist/templates/commands/quality/observe.md +168 -0
  15. package/dist/templates/commands/warm-up.md +65 -0
  16. package/package.json +4 -2
  17. package/templates/commands/engineer/plan.md +251 -0
  18. package/templates/commands/engineer/pr.md +167 -0
  19. package/templates/commands/engineer/pre-pr.md +262 -0
  20. package/templates/commands/engineer/start.md +115 -0
  21. package/templates/commands/engineer/work.md +125 -0
  22. package/templates/commands/products/check.md +201 -0
  23. package/templates/commands/products/collect.md +129 -0
  24. package/templates/commands/products/refine.md +182 -0
  25. package/templates/commands/products/spec.md +239 -0
  26. package/templates/commands/quality/metrics.md +240 -0
  27. package/templates/commands/quality/observe.md +168 -0
  28. package/templates/commands/warm-up.md +65 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold-orchestrator.d.ts","sourceRoot":"","sources":["../../src/commands/scaffold-orchestrator.ts"],"names":[],"mappings":"AAWA,wBAAsB,2BAA2B,kBA0FhD"}
1
+ {"version":3,"file":"scaffold-orchestrator.d.ts","sourceRoot":"","sources":["../../src/commands/scaffold-orchestrator.ts"],"names":[],"mappings":"AAaA,wBAAsB,2BAA2B,kBAyHhD"}
@@ -8,6 +8,7 @@ const inquirer_1 = __importDefault(require("inquirer"));
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
9
  const promises_1 = __importDefault(require("fs/promises"));
10
10
  const path_1 = __importDefault(require("path"));
11
+ const simple_git_1 = require("simple-git");
11
12
  async function scaffoldOrchestratorCommand() {
12
13
  console.log(chalk_1.default.blue.bold('\n🏗️ Scaffolding a new Orchestrator repository\n'));
13
14
  try {
@@ -44,6 +45,12 @@ async function scaffoldOrchestratorCommand() {
44
45
  ],
45
46
  default: 'jira',
46
47
  },
48
+ {
49
+ type: 'confirm',
50
+ name: 'initGit',
51
+ message: 'Initialize Git repository and create initial commit?',
52
+ default: true,
53
+ },
47
54
  ]);
48
55
  const targetDir = path_1.default.join(process.cwd(), answers.projectName);
49
56
  // Check if directory already exists
@@ -54,11 +61,12 @@ async function scaffoldOrchestratorCommand() {
54
61
  }
55
62
  // Create directory structure
56
63
  await promises_1.default.mkdir(targetDir, { recursive: true });
57
- await promises_1.default.mkdir(path_1.default.join(targetDir, 'commands', 'definitions', 'product'), { recursive: true });
58
- await promises_1.default.mkdir(path_1.default.join(targetDir, 'commands', 'definitions', 'engineer'), { recursive: true });
59
- await promises_1.default.mkdir(path_1.default.join(targetDir, 'commands', 'definitions', 'feature'), { recursive: true });
60
- await promises_1.default.mkdir(path_1.default.join(targetDir, 'scripts', 'worktree'), { recursive: true });
61
- await promises_1.default.mkdir(path_1.default.join(targetDir, 'sessions'), { recursive: true });
64
+ await promises_1.default.mkdir(path_1.default.join(targetDir, '.claude', 'commands', 'products'), { recursive: true });
65
+ await promises_1.default.mkdir(path_1.default.join(targetDir, '.claude', 'commands', 'engineer'), { recursive: true });
66
+ await promises_1.default.mkdir(path_1.default.join(targetDir, '.claude', 'commands', 'quality'), { recursive: true });
67
+ await promises_1.default.mkdir(path_1.default.join(targetDir, '.sessions'), { recursive: true });
68
+ await promises_1.default.mkdir(path_1.default.join(targetDir, 'specs', 'business'), { recursive: true });
69
+ await promises_1.default.mkdir(path_1.default.join(targetDir, 'specs', 'technical'), { recursive: true });
62
70
  // Create README.md
63
71
  const readme = generateReadme(answers);
64
72
  await promises_1.default.writeFile(path_1.default.join(targetDir, 'README.md'), readme, 'utf-8');
@@ -68,27 +76,71 @@ async function scaffoldOrchestratorCommand() {
68
76
  // Create context-manifest.json
69
77
  const manifest = generateManifest(answers);
70
78
  await promises_1.default.writeFile(path_1.default.join(targetDir, 'context-manifest.json'), JSON.stringify(manifest, null, 2), 'utf-8');
79
+ // Copy command templates
80
+ await copyCommandTemplates(targetDir);
71
81
  // Create .gitignore
72
- const gitignore = `node_modules/\n.env\n.ia.env\nsessions/*/\n*.log\n`;
82
+ const gitignore = `node_modules/
83
+ .env
84
+ .ia.env
85
+ ai.properties.md
86
+ .sessions/*/
87
+ *.log
88
+ `;
73
89
  await promises_1.default.writeFile(path_1.default.join(targetDir, '.gitignore'), gitignore, 'utf-8');
74
90
  console.log(chalk_1.default.green(`\n✅ Orchestrator scaffolded successfully at: ${targetDir}`));
75
91
  console.log(chalk_1.default.blue('\n📁 Structure created:'));
76
- console.log(chalk_1.default.gray(' commands/definitions/ - Command definitions for AI'));
77
- console.log(chalk_1.default.gray(' scripts/worktree/ - Worktree management scripts'));
78
- console.log(chalk_1.default.gray(' sessions/ - Feature session data'));
79
- console.log(chalk_1.default.gray(' ai.properties.md - Configuration template'));
92
+ console.log(chalk_1.default.gray(' .claude/commands/ - Command definitions for AI'));
93
+ console.log(chalk_1.default.gray(' .sessions/ - Feature session data'));
94
+ console.log(chalk_1.default.gray(' specs/ - Business and technical specifications'));
95
+ console.log(chalk_1.default.gray(' ai.properties.md - Configuration template (gitignored)'));
80
96
  console.log(chalk_1.default.gray(' context-manifest.json - Repository manifest'));
97
+ // Initialize Git if requested
98
+ if (answers.initGit) {
99
+ console.log(chalk_1.default.blue('\n🔧 Initializing Git repository...'));
100
+ const git = (0, simple_git_1.simpleGit)(targetDir);
101
+ await git.init();
102
+ await git.add('.');
103
+ await git.commit('chore: initial commit - orchestrator scaffolded by context-cli');
104
+ console.log(chalk_1.default.green('✅ Git repository initialized and initial commit created'));
105
+ }
81
106
  console.log(chalk_1.default.blue('\n💡 Next steps:'));
82
107
  console.log(chalk_1.default.gray(` 1. cd ${answers.projectName}`));
83
108
  console.log(chalk_1.default.gray(' 2. Edit ai.properties.md with your project paths'));
84
109
  console.log(chalk_1.default.gray(' 3. Edit context-manifest.json to define your repositories'));
85
- console.log(chalk_1.default.gray(' 4. Initialize as a Git repository and push to remote'));
110
+ if (answers.initGit) {
111
+ console.log(chalk_1.default.gray(' 4. Add remote: git remote add origin <your-repo-url>'));
112
+ console.log(chalk_1.default.gray(' 5. Push to remote: git push -u origin main'));
113
+ }
114
+ else {
115
+ console.log(chalk_1.default.gray(' 4. Initialize as a Git repository and push to remote'));
116
+ }
86
117
  }
87
118
  catch (error) {
88
119
  console.error(chalk_1.default.red('\n❌ Error during scaffolding:'), error);
89
120
  process.exit(1);
90
121
  }
91
122
  }
123
+ async function copyCommandTemplates(targetDir) {
124
+ const templatesDir = path_1.default.join(__dirname, '..', '..', 'templates', 'commands');
125
+ const targetCommandsDir = path_1.default.join(targetDir, '.claude', 'commands');
126
+ // Copy warm-up.md
127
+ await promises_1.default.copyFile(path_1.default.join(templatesDir, 'warm-up.md'), path_1.default.join(targetCommandsDir, 'warm-up.md'));
128
+ // Copy products commands
129
+ const productsCommands = ['collect.md', 'refine.md', 'spec.md', 'check.md'];
130
+ for (const cmd of productsCommands) {
131
+ await promises_1.default.copyFile(path_1.default.join(templatesDir, 'products', cmd), path_1.default.join(targetCommandsDir, 'products', cmd));
132
+ }
133
+ // Copy engineer commands
134
+ const engineerCommands = ['start.md', 'plan.md', 'work.md', 'pre-pr.md', 'pr.md'];
135
+ for (const cmd of engineerCommands) {
136
+ await promises_1.default.copyFile(path_1.default.join(templatesDir, 'engineer', cmd), path_1.default.join(targetCommandsDir, 'engineer', cmd));
137
+ }
138
+ // Copy quality commands
139
+ const qualityCommands = ['observe.md', 'metrics.md'];
140
+ for (const cmd of qualityCommands) {
141
+ await promises_1.default.copyFile(path_1.default.join(templatesDir, 'quality', cmd), path_1.default.join(targetCommandsDir, 'quality', cmd));
142
+ }
143
+ }
92
144
  function generateReadme(answers) {
93
145
  return `# ${answers.projectName}
94
146
 
@@ -102,26 +154,30 @@ This orchestrator manages the Context-First development methodology for the proj
102
154
 
103
155
  \`\`\`
104
156
  ${answers.projectName}/
105
- ├── commands/
106
- │ └── definitions/ # Command definitions for AI
107
- │ ├── product/ # Product commands
108
- │ ├── engineer/ # Engineering commands
109
- └── feature/ # Feature management commands
110
- ├── scripts/
111
- │ └── worktree/ # Worktree management scripts
112
- ├── sessions/ # Feature session data
113
- ├── ai.properties.md # Configuration
157
+ ├── .claude/
158
+ │ └── commands/ # Command definitions for AI
159
+ │ ├── products/ # Product commands (collect, refine, spec, check)
160
+ │ ├── engineer/ # Engineering commands (start, plan, work, pre-pr, pr)
161
+ ├── quality/ # Quality commands (observe, metrics)
162
+ │ └── warm-up.md # Context loading command
163
+ ├── .sessions/ # Feature session data (gitignored)
164
+ ├── specs/
165
+ ├── business/ # Business specifications
166
+ │ └── technical/ # Technical specifications
167
+ ├── ai.properties.md # Configuration (gitignored - each dev has their own)
114
168
  └── context-manifest.json # Repository manifest
115
169
  \`\`\`
116
170
 
117
171
  ## ⚙️ Configuration
118
172
 
119
173
  Edit \`ai.properties.md\` to configure:
120
- - Project paths
174
+ - Project paths (specific to each developer)
121
175
  - Task manager credentials (${answers.taskManager})
122
176
  - Branch conventions
123
177
  - Repository-specific commands
124
178
 
179
+ **Note**: \`ai.properties.md\` is gitignored because it contains local paths and credentials specific to each developer.
180
+
125
181
  ## 🚀 Usage
126
182
 
127
183
  1. Configure \`ai.properties.md\` with your project paths
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold-orchestrator.js","sourceRoot":"","sources":["../../src/commands/scaffold-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold-orchestrator.js","sourceRoot":"","sources":["../../src/commands/scaffold-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,251 @@
1
+ # Planejamento Técnico
2
+
3
+ Este comando cria o plano técnico detalhado para implementação da feature.
4
+
5
+ ## 📋 Pré-requisitos
6
+
7
+ - PRD criado via `/spec`
8
+ - Análise inicial feita via `/start`
9
+ - Contexto técnico carregado
10
+
11
+ ## 🎯 Objetivo
12
+
13
+ Criar um plano técnico detalhado que guiará a implementação, dividindo o trabalho em unidades menores e sequenciais.
14
+
15
+ ## 📝 Estrutura do Plano
16
+
17
+ ### 1. Visão Geral Técnica
18
+
19
+ ```markdown
20
+ # Plano Técnico - [Título da Feature]
21
+
22
+ ## Resumo
23
+ [Breve descrição técnica do que será implementado]
24
+
25
+ ## Repositórios Envolvidos
26
+ - **<repo-1>**: [Papel nesta feature]
27
+ - **<repo-2>**: [Papel nesta feature]
28
+
29
+ ## Abordagem Técnica
30
+ [Estratégia geral de implementação]
31
+ ```
32
+
33
+ ### 2. Arquitetura da Solução
34
+
35
+ ```markdown
36
+ ## Arquitetura
37
+
38
+ ### Diagrama de Componentes
39
+ [Descrição textual ou ASCII art dos componentes e suas relações]
40
+
41
+ ### Fluxo de Dados
42
+ 1. [Passo 1 do fluxo]
43
+ 2. [Passo 2 do fluxo]
44
+ 3. [Passo 3 do fluxo]
45
+
46
+ ### Integrações
47
+ - **<repo-1> → <repo-2>**: [Como se comunicam]
48
+ - **Sistema → API Externa**: [Se houver]
49
+ ```
50
+
51
+ ### 3. Decisões Técnicas
52
+
53
+ ```markdown
54
+ ## Decisões Técnicas
55
+
56
+ ### Decisão 1: [Título]
57
+ **Contexto**: [Por que precisamos decidir isso]
58
+ **Opções consideradas**:
59
+ - Opção A: [Prós e contras]
60
+ - Opção B: [Prós e contras]
61
+ **Decisão**: [Opção escolhida]
62
+ **Justificativa**: [Por que escolhemos esta opção]
63
+
64
+ ### Decisão 2: [Título]
65
+ [Mesmo formato acima]
66
+ ```
67
+
68
+ ### 4. Plano de Implementação
69
+
70
+ Divida o trabalho em unidades pequenas e sequenciais:
71
+
72
+ ```markdown
73
+ ## Plano de Implementação
74
+
75
+ ### Fase 1: [Nome da Fase]
76
+ **Objetivo**: [O que será alcançado nesta fase]
77
+ **Repositórios**: [repos afetados]
78
+
79
+ #### Tarefa 1.1: [Descrição]
80
+ - **Repo**: <repo-1>
81
+ - **Arquivos**: [arquivos a criar/modificar]
82
+ - **Descrição**: [O que fazer]
83
+ - **Testes**: [Testes a implementar]
84
+ - **Estimativa**: [tempo estimado]
85
+
86
+ #### Tarefa 1.2: [Descrição]
87
+ - **Repo**: <repo-2>
88
+ - **Arquivos**: [arquivos a criar/modificar]
89
+ - **Descrição**: [O que fazer]
90
+ - **Testes**: [Testes a implementar]
91
+ - **Estimativa**: [tempo estimado]
92
+
93
+ ### Fase 2: [Nome da Fase]
94
+ [Mesmo formato acima]
95
+
96
+ ### Fase 3: [Nome da Fase]
97
+ [Mesmo formato acima]
98
+ ```
99
+
100
+ ### 5. Estrutura de Arquivos
101
+
102
+ Para cada repositório, defina a estrutura:
103
+
104
+ ```markdown
105
+ ## Estrutura de Arquivos
106
+
107
+ ### <repo-1>
108
+ ```
109
+ src/
110
+ ├── components/
111
+ │ ├── NewComponent.tsx (CRIAR)
112
+ │ └── ExistingComponent.tsx (MODIFICAR)
113
+ ├── services/
114
+ │ └── NewService.ts (CRIAR)
115
+ └── tests/
116
+ └── NewComponent.test.tsx (CRIAR)
117
+ ```
118
+
119
+ ### <repo-2>
120
+ ```
121
+ src/
122
+ ├── controllers/
123
+ │ └── NewController.ts (CRIAR)
124
+ └── tests/
125
+ └── NewController.test.ts (CRIAR)
126
+ ```
127
+ ```
128
+
129
+ ### 6. APIs e Contratos
130
+
131
+ ```markdown
132
+ ## APIs e Contratos
133
+
134
+ ### Endpoints Novos
135
+
136
+ #### POST /api/resource
137
+ **Request**:
138
+ ```json
139
+ {
140
+ "field1": "string",
141
+ "field2": "number"
142
+ }
143
+ ```
144
+
145
+ **Response**:
146
+ ```json
147
+ {
148
+ "id": "string",
149
+ "status": "string"
150
+ }
151
+ ```
152
+
153
+ ### Endpoints Modificados
154
+
155
+ #### GET /api/resource/:id
156
+ **Mudanças**: [O que muda]
157
+ **Breaking Change**: Sim / Não
158
+ ```
159
+
160
+ ### 7. Estratégia de Testes
161
+
162
+ ```markdown
163
+ ## Estratégia de Testes
164
+
165
+ ### Testes Unitários
166
+ - **<repo-1>**: [Componentes/funções a testar]
167
+ - **<repo-2>**: [Componentes/funções a testar]
168
+
169
+ ### Testes de Integração
170
+ - **Cenário 1**: [Descrição e repos envolvidos]
171
+ - **Cenário 2**: [Descrição e repos envolvidos]
172
+
173
+ ### Testes E2E (se aplicável)
174
+ - **Fluxo 1**: [Descrição]
175
+ - **Fluxo 2**: [Descrição]
176
+ ```
177
+
178
+ ### 8. Riscos Técnicos
179
+
180
+ ```markdown
181
+ ## Riscos Técnicos
182
+
183
+ ### Risco 1: [Descrição]
184
+ - **Impacto**: Alto / Médio / Baixo
185
+ - **Probabilidade**: Alta / Média / Baixa
186
+ - **Mitigação**: [Como mitigar]
187
+ - **Plano B**: [Alternativa se ocorrer]
188
+
189
+ ### Risco 2: [Descrição]
190
+ [Mesmo formato acima]
191
+ ```
192
+
193
+ ### 9. Checklist de Implementação
194
+
195
+ ```markdown
196
+ ## Checklist de Implementação
197
+
198
+ ### Fase 1
199
+ - [ ] Tarefa 1.1
200
+ - [ ] Tarefa 1.2
201
+ - [ ] Testes da Fase 1
202
+
203
+ ### Fase 2
204
+ - [ ] Tarefa 2.1
205
+ - [ ] Tarefa 2.2
206
+ - [ ] Testes da Fase 2
207
+
208
+ ### Fase 3
209
+ - [ ] Tarefa 3.1
210
+ - [ ] Tarefa 3.2
211
+ - [ ] Testes da Fase 3
212
+
213
+ ### Finalização
214
+ - [ ] Documentação atualizada
215
+ - [ ] Code review
216
+ - [ ] Testes de integração
217
+ - [ ] PR criado
218
+ ```
219
+
220
+ ## 📄 Salvamento do Plano
221
+
222
+ Salve em `./.sessions/<ISSUE-ID>/plan.md`
223
+
224
+ ## 🔍 Revisão
225
+
226
+ Revise o plano verificando:
227
+ - Todas as tarefas estão claras e executáveis
228
+ - Dependências entre tarefas estão identificadas
229
+ - Estimativas são realistas
230
+ - Riscos foram considerados
231
+ - Estratégia de testes é adequada
232
+
233
+ ---
234
+
235
+ **Argumentos fornecidos**:
236
+
237
+ ```
238
+ #$ARGUMENTS
239
+ ```
240
+
241
+ ---
242
+
243
+ ## 🎯 Próximo Passo
244
+
245
+ Após aprovação do plano:
246
+
247
+ ```bash
248
+ /work
249
+ ```
250
+
251
+ Este comando iniciará a execução da primeira unidade de trabalho do plano.
@@ -0,0 +1,167 @@
1
+ # Criação de Pull Request
2
+
3
+ Este comando cria Pull Requests para todos os repositórios modificados no workspace.
4
+
5
+ ## 📋 Pré-requisitos
6
+
7
+ Antes de criar PRs, certifique-se de que:
8
+ - Executou `/pre-pr` e todas as validações passaram
9
+ - Todos os commits foram feitos
10
+ - Todos os testes estão passando
11
+ - A documentação está atualizada
12
+
13
+ ## 🎯 Processo de Criação de PRs
14
+
15
+ ### 1. Identificar Repositórios Modificados
16
+
17
+ Para cada repositório no workspace, verifique:
18
+ ```bash
19
+ cd <repositório>
20
+ git status
21
+ git log origin/main..HEAD # Ver commits não pushados
22
+ ```
23
+
24
+ ### 2. Push das Branches
25
+
26
+ Para cada repositório modificado:
27
+ ```bash
28
+ cd <repositório>
29
+ git push origin <branch-name>
30
+ ```
31
+
32
+ ### 3. Criar Pull Requests
33
+
34
+ Para cada repositório, crie um PR usando o GitHub CLI ou interface web:
35
+
36
+ **Usando GitHub CLI**:
37
+ ```bash
38
+ cd <repositório>
39
+ gh pr create --title "[ISSUE-ID] Título da Feature" \
40
+ --body "$(cat ../.sessions/<ISSUE-ID>/pr-description.md)" \
41
+ --base main
42
+ ```
43
+
44
+ **Template de Descrição do PR**:
45
+
46
+ ```markdown
47
+ ## 🎯 Objetivo
48
+
49
+ [Breve descrição do que esta PR faz]
50
+
51
+ ## 📝 Mudanças
52
+
53
+ ### Repositório: <nome-do-repo>
54
+
55
+ - [Mudança 1]
56
+ - [Mudança 2]
57
+ - [Mudança 3]
58
+
59
+ ## 🔗 Relacionamentos
60
+
61
+ - **Issue**: <ISSUE-ID>
62
+ - **PRs Relacionados**:
63
+ - <repo-1>#<PR-number>
64
+ - <repo-2>#<PR-number>
65
+
66
+ ## ✅ Checklist
67
+
68
+ - [ ] Código implementado e testado
69
+ - [ ] Testes unitários adicionados/atualizados
70
+ - [ ] Testes de integração passando
71
+ - [ ] Documentação atualizada
72
+ - [ ] Sem breaking changes (ou documentados)
73
+ - [ ] Revisado por pares (após criação do PR)
74
+
75
+ ## 🧪 Como Testar
76
+
77
+ 1. [Passo 1]
78
+ 2. [Passo 2]
79
+ 3. [Resultado esperado]
80
+
81
+ ## 📸 Screenshots/Demos
82
+
83
+ [Se aplicável, adicione screenshots ou links para demos]
84
+
85
+ ## 🔍 Notas para Revisores
86
+
87
+ - [Ponto de atenção 1]
88
+ - [Ponto de atenção 2]
89
+ ```
90
+
91
+ ### 4. Vincular PRs
92
+
93
+ Se houver múltiplos PRs (um por repositório):
94
+ - Adicione links cruzados entre os PRs
95
+ - Documente a ordem de merge recomendada
96
+ - Indique dependências entre PRs
97
+
98
+ ### 5. Atualizar Issue no Task Manager
99
+
100
+ Se task manager estiver configurado:
101
+ - Mova a issue para "Em Revisão" ou "PR Aberto"
102
+ - Adicione links dos PRs na issue
103
+ - Adicione comentário com resumo das mudanças
104
+
105
+ ### 6. Documentação da Sessão
106
+
107
+ Atualize `./.sessions/<ISSUE-ID>/pr.md`:
108
+
109
+ ```markdown
110
+ # [Título da Feature] - Pull Requests
111
+
112
+ ## PRs Criados
113
+
114
+ ### <repo-1>
115
+ - **Link**: <URL do PR>
116
+ - **Status**: Aberto
117
+ - **Commits**: X commits
118
+
119
+ ### <repo-2>
120
+ - **Link**: <URL do PR>
121
+ - **Status**: Aberto
122
+ - **Commits**: Y commits
123
+
124
+ ## Ordem de Merge Recomendada
125
+
126
+ 1. <repo-1> - [Justificativa]
127
+ 2. <repo-2> - [Justificativa]
128
+
129
+ ## Notas para Merge
130
+
131
+ - [Nota importante 1]
132
+ - [Nota importante 2]
133
+ ```
134
+
135
+ ## 🔍 Checklist Final
136
+
137
+ Antes de solicitar revisão:
138
+ - [ ] Todos os PRs criados
139
+ - [ ] Descrições completas e claras
140
+ - [ ] PRs vinculados entre si
141
+ - [ ] Issue atualizada no task manager
142
+ - [ ] Testes passando em CI/CD
143
+ - [ ] Documentação da sessão completa
144
+
145
+ ## 📢 Comunicação
146
+
147
+ Notifique o time sobre os PRs:
148
+ - Mencione revisores relevantes
149
+ - Destaque mudanças críticas ou breaking changes
150
+ - Indique urgência se aplicável
151
+
152
+ ---
153
+
154
+ **Argumentos fornecidos**:
155
+
156
+ ```
157
+ #$ARGUMENTS
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 🎯 Próximos Passos
163
+
164
+ 1. Aguardar revisão dos PRs
165
+ 2. Responder comentários e fazer ajustes
166
+ 3. Após aprovação, fazer merge na ordem recomendada
167
+ 4. Executar `context-cli feature:end <ISSUE-ID>` para limpar o workspace