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.
- package/dist/commands/scaffold-orchestrator.d.ts.map +1 -1
- package/dist/commands/scaffold-orchestrator.js +77 -21
- package/dist/commands/scaffold-orchestrator.js.map +1 -1
- package/dist/templates/commands/engineer/plan.md +251 -0
- package/dist/templates/commands/engineer/pr.md +167 -0
- package/dist/templates/commands/engineer/pre-pr.md +262 -0
- package/dist/templates/commands/engineer/start.md +115 -0
- package/dist/templates/commands/engineer/work.md +125 -0
- package/dist/templates/commands/products/check.md +201 -0
- package/dist/templates/commands/products/collect.md +129 -0
- package/dist/templates/commands/products/refine.md +182 -0
- package/dist/templates/commands/products/spec.md +239 -0
- package/dist/templates/commands/quality/metrics.md +240 -0
- package/dist/templates/commands/quality/observe.md +168 -0
- package/dist/templates/commands/warm-up.md +65 -0
- package/package.json +4 -2
- package/templates/commands/engineer/plan.md +251 -0
- package/templates/commands/engineer/pr.md +167 -0
- package/templates/commands/engineer/pre-pr.md +262 -0
- package/templates/commands/engineer/start.md +115 -0
- package/templates/commands/engineer/work.md +125 -0
- package/templates/commands/products/check.md +201 -0
- package/templates/commands/products/collect.md +129 -0
- package/templates/commands/products/refine.md +182 -0
- package/templates/commands/products/spec.md +239 -0
- package/templates/commands/quality/metrics.md +240 -0
- package/templates/commands/quality/observe.md +168 -0
- 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":"
|
|
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, '
|
|
58
|
-
await promises_1.default.mkdir(path_1.default.join(targetDir, '
|
|
59
|
-
await promises_1.default.mkdir(path_1.default.join(targetDir, '
|
|
60
|
-
await promises_1.default.mkdir(path_1.default.join(targetDir, '
|
|
61
|
-
await promises_1.default.mkdir(path_1.default.join(targetDir, '
|
|
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
|
|
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/
|
|
77
|
-
console.log(chalk_1.default.gray('
|
|
78
|
-
console.log(chalk_1.default.gray('
|
|
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
|
-
|
|
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
|
-
├──
|
|
106
|
-
│ └──
|
|
107
|
-
│ ├──
|
|
108
|
-
│ ├── engineer/ # Engineering commands
|
|
109
|
-
│
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
├──
|
|
113
|
-
├──
|
|
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":";;;;;
|
|
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
|