awc-zns-mtd 2.5.0 → 2.6.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/CHANGELOG.md +68 -0
- package/package.json +1 -1
- package/src/modules/awc-zns-mtd/config.yaml +1 -1
- package/tools/cli/commands/init-old.js +147 -0
- package/tools/cli/commands/init.js +513 -147
- package/tools/cli/commands/new-project-broken.js +1302 -0
- package/tools/cli/commands/new-project-old.js +1302 -0
- package/tools/cli/commands/new-project.js +201 -743
- package/tools/cli/commands/new-project.js.backup +1302 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Comando: new
|
|
3
|
-
* Crea un nuevo proyecto con
|
|
3
|
+
* Crea un nuevo directorio de proyecto con configuración base AWC ZNS-MTD
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
const fs = require('fs-extra');
|
|
@@ -45,38 +45,23 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
45
45
|
process.exit(1);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
//
|
|
49
|
-
const
|
|
48
|
+
// Preguntar responsable del proyecto
|
|
49
|
+
const { responsible, description, gitInit } = await inquirer.prompt([
|
|
50
50
|
{
|
|
51
|
-
type: '
|
|
52
|
-
name: '
|
|
53
|
-
message: '
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
{ name: 'Enterprise System', value: 'enterprise' },
|
|
59
|
-
{ name: 'Otro', value: 'other' }
|
|
60
|
-
],
|
|
61
|
-
default: options.type
|
|
51
|
+
type: 'input',
|
|
52
|
+
name: 'responsible',
|
|
53
|
+
message: '👤 Responsable del proyecto:',
|
|
54
|
+
validate: (input) => {
|
|
55
|
+
if (!input.trim()) return 'El responsable es requerido';
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
62
58
|
},
|
|
63
59
|
{
|
|
64
60
|
type: 'input',
|
|
65
61
|
name: 'description',
|
|
66
|
-
message: '📝 Descripción breve
|
|
62
|
+
message: '📝 Descripción breve (opcional):',
|
|
67
63
|
default: `Proyecto ${projectName}`
|
|
68
64
|
},
|
|
69
|
-
{
|
|
70
|
-
type: 'list',
|
|
71
|
-
name: 'teamSize',
|
|
72
|
-
message: '👥 Tamaño del equipo:',
|
|
73
|
-
choices: [
|
|
74
|
-
{ name: 'Individual (1 persona)', value: 'solo' },
|
|
75
|
-
{ name: 'Pequeño (2-5 personas)', value: 'small' },
|
|
76
|
-
{ name: 'Mediano (6-15 personas)', value: 'medium' },
|
|
77
|
-
{ name: 'Grande (16+ personas)', value: 'large' }
|
|
78
|
-
]
|
|
79
|
-
},
|
|
80
65
|
{
|
|
81
66
|
type: 'confirm',
|
|
82
67
|
name: 'gitInit',
|
|
@@ -85,107 +70,45 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
85
70
|
}
|
|
86
71
|
]);
|
|
87
72
|
|
|
88
|
-
const spinner = ora('Creando estructura del proyecto...').start();
|
|
73
|
+
const spinner = ora('Creando estructura base del proyecto...').start();
|
|
89
74
|
|
|
90
75
|
try {
|
|
91
76
|
// 1. Crear directorio raíz del proyecto
|
|
92
77
|
await fs.ensureDir(projectPath);
|
|
93
78
|
spinner.text = `Directorio ${projectName} creado`;
|
|
94
79
|
|
|
95
|
-
// 2. Crear estructura
|
|
96
|
-
const
|
|
97
|
-
// Fase 0: Comercial
|
|
98
|
-
'01-comercial/01-prospection',
|
|
99
|
-
'01-comercial/02-technical-proposal',
|
|
100
|
-
'01-comercial/03-quotation',
|
|
101
|
-
'01-comercial/04-contract',
|
|
102
|
-
'01-comercial/docs/client-docs/requerimientos',
|
|
103
|
-
'01-comercial/docs/client-docs/presentaciones',
|
|
104
|
-
'01-comercial/docs/client-docs/contratos',
|
|
105
|
-
|
|
106
|
-
// Fase 1: Inception
|
|
107
|
-
'02-inception/01-kickoff',
|
|
108
|
-
'02-inception/02-prd',
|
|
109
|
-
'02-inception/03-backlog',
|
|
110
|
-
'02-inception/04-release-planning',
|
|
111
|
-
'02-inception/docs/client-docs/procesos',
|
|
112
|
-
'02-inception/docs/client-docs/manuales',
|
|
113
|
-
'02-inception/docs/client-docs/imagenes',
|
|
114
|
-
|
|
115
|
-
// Fase 2: Análisis
|
|
116
|
-
'03-analysis/01-code-audit',
|
|
117
|
-
'03-analysis/02-architecture-review',
|
|
118
|
-
'03-analysis/03-technical-debt',
|
|
119
|
-
'03-analysis/04-recommendations',
|
|
120
|
-
'03-analysis/docs/client-docs/arquitectura',
|
|
121
|
-
'03-analysis/docs/client-docs/databases',
|
|
122
|
-
'03-analysis/docs/client-docs/especificaciones',
|
|
123
|
-
|
|
124
|
-
// Fase 3: Planificación
|
|
125
|
-
'04-planning/01-sprint-planning',
|
|
126
|
-
'04-planning/02-backlog-refinement',
|
|
127
|
-
'04-planning/03-release-planning',
|
|
128
|
-
'04-planning/04-roadmap',
|
|
129
|
-
'04-planning/docs/client-docs/historias',
|
|
130
|
-
'04-planning/docs/client-docs/estimaciones',
|
|
131
|
-
|
|
132
|
-
// Fase 4: Desarrollo
|
|
133
|
-
'05-development/src',
|
|
134
|
-
'05-development/tests',
|
|
135
|
-
'05-development/docs',
|
|
136
|
-
'05-development/docs/client-docs/apis',
|
|
137
|
-
'05-development/docs/client-docs/integraciones',
|
|
138
|
-
'05-development/docs/client-docs/recursos',
|
|
139
|
-
|
|
140
|
-
// Fase 5: QA
|
|
141
|
-
'06-qa/test-plans',
|
|
142
|
-
'06-qa/test-cases',
|
|
143
|
-
'06-qa/test-results',
|
|
144
|
-
'06-qa/bug-reports',
|
|
145
|
-
'06-qa/docs/client-docs/criterios-aceptacion',
|
|
146
|
-
'06-qa/docs/client-docs/escenarios-prueba',
|
|
147
|
-
|
|
148
|
-
// Fase 6: Deployment
|
|
149
|
-
'07-deployment/environments',
|
|
150
|
-
'07-deployment/scripts',
|
|
151
|
-
'07-deployment/logs',
|
|
152
|
-
'07-deployment/docs/client-docs/infraestructura',
|
|
153
|
-
'07-deployment/docs/client-docs/accesos',
|
|
154
|
-
|
|
155
|
-
// Fase 7: Soporte
|
|
156
|
-
'08-support/incidents',
|
|
157
|
-
'08-support/bug-fixes',
|
|
158
|
-
'08-support/maintenance',
|
|
159
|
-
'08-support/docs/client-docs/incidentes',
|
|
160
|
-
'08-support/docs/client-docs/cambios',
|
|
161
|
-
|
|
162
|
-
// Documentación general
|
|
163
|
-
'docs/architecture',
|
|
164
|
-
'docs/adr',
|
|
165
|
-
'docs/api',
|
|
166
|
-
'docs/guides',
|
|
167
|
-
|
|
168
|
-
// Configuración AWC
|
|
80
|
+
// 2. Crear estructura base mínima
|
|
81
|
+
const baseDirectories = [
|
|
169
82
|
'.awc/agents',
|
|
170
83
|
'.awc/workflows',
|
|
171
|
-
'.awc/templates'
|
|
84
|
+
'.awc/templates',
|
|
85
|
+
'docs'
|
|
172
86
|
];
|
|
173
87
|
|
|
174
|
-
for (const dir of
|
|
88
|
+
for (const dir of baseDirectories) {
|
|
175
89
|
await fs.ensureDir(path.join(projectPath, dir));
|
|
176
90
|
}
|
|
177
|
-
spinner.text = 'Estructura
|
|
91
|
+
spinner.text = 'Estructura base creada';
|
|
178
92
|
|
|
179
|
-
// 3. Copiar
|
|
180
|
-
const
|
|
181
|
-
const
|
|
93
|
+
// 3. Copiar agentes base (4 agentes core)
|
|
94
|
+
const srcAgentsPath = path.join(__dirname, '../../../src/modules/awc-zns-mtd/agents');
|
|
95
|
+
const destAgentsPath = path.join(projectPath, '.awc/agents');
|
|
182
96
|
|
|
183
|
-
if (await fs.pathExists(
|
|
184
|
-
await fs.copy(
|
|
185
|
-
spinner.text = '
|
|
97
|
+
if (await fs.pathExists(srcAgentsPath)) {
|
|
98
|
+
await fs.copy(srcAgentsPath, destAgentsPath);
|
|
99
|
+
spinner.text = 'Agentes base copiados';
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// 4. Copiar agentes especializados (22 agentes)
|
|
103
|
+
const srcCustomAgentsPath = path.join(__dirname, '../../../src/modules/custom-agents/cli/.awc-agents');
|
|
104
|
+
const destCustomAgentsPath = path.join(projectPath, '.awc/agents/specialized');
|
|
105
|
+
|
|
106
|
+
if (await fs.pathExists(srcCustomAgentsPath)) {
|
|
107
|
+
await fs.copy(srcCustomAgentsPath, destCustomAgentsPath);
|
|
108
|
+
spinner.text = 'Agentes especializados copiados';
|
|
186
109
|
}
|
|
187
110
|
|
|
188
|
-
//
|
|
111
|
+
// 5. Copiar workflows
|
|
189
112
|
const srcWorkflowsPath = path.join(__dirname, '../../../src/modules/awc-zns-mtd/workflows');
|
|
190
113
|
const destWorkflowsPath = path.join(projectPath, '.awc/workflows');
|
|
191
114
|
|
|
@@ -194,32 +117,33 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
194
117
|
spinner.text = 'Workflows copiados';
|
|
195
118
|
}
|
|
196
119
|
|
|
197
|
-
//
|
|
198
|
-
const
|
|
199
|
-
const
|
|
120
|
+
// 6. Copiar templates
|
|
121
|
+
const srcTemplatesPath = path.join(__dirname, '../../../src/modules/awc-zns-mtd/templates');
|
|
122
|
+
const destTemplatesPath = path.join(projectPath, '.awc/templates');
|
|
200
123
|
|
|
201
|
-
if (await fs.pathExists(
|
|
202
|
-
await fs.copy(
|
|
203
|
-
spinner.text = '
|
|
124
|
+
if (await fs.pathExists(srcTemplatesPath)) {
|
|
125
|
+
await fs.copy(srcTemplatesPath, destTemplatesPath);
|
|
126
|
+
spinner.text = 'Templates copiados';
|
|
204
127
|
}
|
|
205
128
|
|
|
206
|
-
//
|
|
129
|
+
// 7. Crear archivo de configuración AWC
|
|
207
130
|
const awcConfig = {
|
|
208
131
|
version: getVersion(),
|
|
209
132
|
createdAt: new Date().toISOString(),
|
|
210
133
|
project: {
|
|
211
134
|
name: projectName,
|
|
212
|
-
description:
|
|
213
|
-
|
|
214
|
-
teamSize: answers.teamSize
|
|
135
|
+
description: description,
|
|
136
|
+
responsible: responsible
|
|
215
137
|
},
|
|
138
|
+
projectType: null,
|
|
139
|
+
initialized: false,
|
|
216
140
|
preferences: {
|
|
217
141
|
communication_language: 'Spanish',
|
|
218
142
|
document_output_language: 'Spanish',
|
|
219
143
|
code_language: 'English'
|
|
220
144
|
},
|
|
221
145
|
workflows: {
|
|
222
|
-
current_phase:
|
|
146
|
+
current_phase: null,
|
|
223
147
|
completed_phases: []
|
|
224
148
|
}
|
|
225
149
|
};
|
|
@@ -231,29 +155,21 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
231
155
|
);
|
|
232
156
|
spinner.text = 'Configuración AWC creada';
|
|
233
157
|
|
|
234
|
-
//
|
|
235
|
-
const readme = createReadmeContent(projectName,
|
|
158
|
+
// 8. Crear README.md del proyecto
|
|
159
|
+
const readme = createReadmeContent(projectName, responsible, description);
|
|
236
160
|
await fs.writeFile(path.join(projectPath, 'README.md'), readme);
|
|
237
161
|
spinner.text = 'README.md creado';
|
|
238
162
|
|
|
239
|
-
//
|
|
163
|
+
// 9. Crear .gitignore
|
|
240
164
|
const gitignore = createGitignoreContent();
|
|
241
165
|
await fs.writeFile(path.join(projectPath, '.gitignore'), gitignore);
|
|
242
166
|
spinner.text = '.gitignore creado';
|
|
243
167
|
|
|
244
|
-
//
|
|
245
|
-
await
|
|
246
|
-
spinner.text = 'Guías de fase creadas';
|
|
247
|
-
|
|
248
|
-
// 9.0. Crear README para client-docs
|
|
249
|
-
await createClientDocsReadmes(projectPath);
|
|
250
|
-
spinner.text = 'README de client-docs creados';
|
|
251
|
-
|
|
252
|
-
// 9.1. Crear configuración de VS Code
|
|
253
|
-
await createVSCodeConfig(projectPath);
|
|
168
|
+
// 10. Crear configuración de VS Code
|
|
169
|
+
await createVSCodeConfig(projectPath, projectName);
|
|
254
170
|
spinner.text = 'Configuración VS Code creada';
|
|
255
171
|
|
|
256
|
-
//
|
|
172
|
+
// 11. Copiar copilot-instructions.md
|
|
257
173
|
const githubDir = path.join(projectPath, '.github');
|
|
258
174
|
await fs.ensureDir(githubDir);
|
|
259
175
|
const templateCopilotPath = path.join(__dirname, '../../../templates/.github/copilot-instructions.md');
|
|
@@ -262,8 +178,13 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
262
178
|
spinner.text = 'GitHub Copilot instructions creadas';
|
|
263
179
|
}
|
|
264
180
|
|
|
265
|
-
//
|
|
266
|
-
|
|
181
|
+
// 12. Crear archivo NEXT_STEPS.md
|
|
182
|
+
const nextSteps = createNextStepsContent(projectName);
|
|
183
|
+
await fs.writeFile(path.join(projectPath, 'NEXT_STEPS.md'), nextSteps);
|
|
184
|
+
spinner.text = 'Guía de próximos pasos creada';
|
|
185
|
+
|
|
186
|
+
// 13. Inicializar Git si se solicitó
|
|
187
|
+
if (gitInit) {
|
|
267
188
|
const { execSync } = require('child_process');
|
|
268
189
|
try {
|
|
269
190
|
execSync('git init', { cwd: projectPath, stdio: 'ignore' });
|
|
@@ -282,36 +203,25 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
282
203
|
|
|
283
204
|
// Mostrar resumen
|
|
284
205
|
console.log(chalk.cyan('\n' + '═'.repeat(60)));
|
|
285
|
-
console.log(chalk.cyan('📦
|
|
206
|
+
console.log(chalk.cyan('📦 Proyecto Creado'));
|
|
286
207
|
console.log(chalk.cyan('═'.repeat(60) + '\n'));
|
|
287
208
|
|
|
288
209
|
console.log(`${chalk.gray('Nombre:')} ${chalk.green(projectName)}`);
|
|
289
|
-
console.log(`${chalk.gray('
|
|
290
|
-
console.log(`${chalk.gray('Equipo:')} ${chalk.yellow(answers.teamSize)}`);
|
|
210
|
+
console.log(`${chalk.gray('Responsable:')} ${chalk.yellow(responsible)}`);
|
|
291
211
|
console.log(`${chalk.gray('Ubicación:')} ${chalk.blue(projectPath)}`);
|
|
292
212
|
console.log(`${chalk.gray('AWC Versión:')} ${chalk.yellow(getVersion())}\n`);
|
|
293
213
|
|
|
294
214
|
// Próximos pasos
|
|
295
215
|
console.log(chalk.cyan('📚 Próximos Pasos:\n'));
|
|
296
216
|
console.log(` ${chalk.green('1.')} cd ${projectName}`);
|
|
297
|
-
console.log(` ${chalk.green('2.')}
|
|
298
|
-
console.log(` ${chalk.green('3.')}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
console.log(chalk.cyan('🎯 Flujo de Trabajo Recomendado:\n'));
|
|
302
|
-
console.log(` ${chalk.gray('→')} Comercial (01-comercial/)`);
|
|
303
|
-
console.log(` ${chalk.gray('→')} Inception (02-inception/)`);
|
|
304
|
-
console.log(` ${chalk.gray('→')} Análisis (03-analysis/)`);
|
|
305
|
-
console.log(` ${chalk.gray('→')} Planificación (04-planning/)`);
|
|
306
|
-
console.log(` ${chalk.gray('→')} Desarrollo (05-development/)`);
|
|
307
|
-
console.log(` ${chalk.gray('→')} QA (06-qa/)`);
|
|
308
|
-
console.log(` ${chalk.gray('→')} Deployment (07-deployment/)`);
|
|
309
|
-
console.log(` ${chalk.gray('→')} Soporte (08-support/)\n`);
|
|
310
|
-
|
|
311
|
-
console.log(chalk.green('✨ ¡Listo para comenzar tu proyecto!\n'));
|
|
217
|
+
console.log(` ${chalk.green('2.')} awc init ${chalk.gray('# Inicializar tipo de proyecto')}`);
|
|
218
|
+
console.log(` ${chalk.green('3.')} Leer ${chalk.yellow('NEXT_STEPS.md')} para más detalles\n`);
|
|
219
|
+
|
|
220
|
+
console.log(chalk.yellow('⚠️ La estructura de fases se creará al ejecutar') + chalk.green(' awc init\n'));
|
|
312
221
|
|
|
313
222
|
} catch (error) {
|
|
314
223
|
spinner.fail(chalk.red('❌ Error creando proyecto'));
|
|
224
|
+
console.error(error);
|
|
315
225
|
throw error;
|
|
316
226
|
}
|
|
317
227
|
}
|
|
@@ -319,95 +229,57 @@ async function newProjectCommand(projectName, options = {}) {
|
|
|
319
229
|
/**
|
|
320
230
|
* Crea el contenido del README.md
|
|
321
231
|
*/
|
|
322
|
-
function createReadmeContent(projectName,
|
|
232
|
+
function createReadmeContent(projectName, responsible, description) {
|
|
323
233
|
return `# ${projectName}
|
|
324
234
|
|
|
325
|
-
> ${
|
|
235
|
+
> ${description}
|
|
326
236
|
|
|
327
237
|
## 📋 Información del Proyecto
|
|
328
238
|
|
|
329
|
-
- **
|
|
330
|
-
- **Equipo**: ${answers.teamSize}
|
|
239
|
+
- **Responsable**: ${responsible}
|
|
331
240
|
- **Metodología**: AWC ZNS-MTD (Zen, Neutro, Sistemático)
|
|
241
|
+
- **Estado**: Pendiente de inicialización
|
|
332
242
|
|
|
333
|
-
## 🚀
|
|
334
|
-
|
|
335
|
-
Este proyecto sigue el método AWC ZNS-MTD con 8 fases completas:
|
|
336
|
-
|
|
337
|
-
### 📊 Fase 0: Comercial (01-comercial/)
|
|
338
|
-
- Prospección y discovery
|
|
339
|
-
- Oferta técnica
|
|
340
|
-
- Cotización
|
|
341
|
-
- Contrato
|
|
342
|
-
|
|
343
|
-
### 🎯 Fase 1: Inception (02-inception/)
|
|
344
|
-
- Kickoff meeting
|
|
345
|
-
- Product Requirements Document (PRD)
|
|
346
|
-
- Backlog inicial
|
|
347
|
-
- Release planning
|
|
348
|
-
|
|
349
|
-
### 🔍 Fase 2: Análisis (03-analysis/)
|
|
350
|
-
- Code audit (si aplica)
|
|
351
|
-
- Architecture review
|
|
352
|
-
- Technical debt assessment
|
|
353
|
-
- Recomendaciones
|
|
354
|
-
|
|
355
|
-
### 📅 Fase 3: Planificación (04-planning/)
|
|
356
|
-
- Sprint planning
|
|
357
|
-
- Backlog refinement
|
|
358
|
-
- Release planning
|
|
359
|
-
- Product roadmap
|
|
360
|
-
|
|
361
|
-
### 💻 Fase 4: Desarrollo (05-development/)
|
|
362
|
-
- Implementación TDD
|
|
363
|
-
- Code review
|
|
364
|
-
- CI/CD
|
|
365
|
-
|
|
366
|
-
### ✅ Fase 5: QA (06-qa/)
|
|
367
|
-
- Test planning
|
|
368
|
-
- Automated testing
|
|
369
|
-
- Manual testing
|
|
370
|
-
- UAT
|
|
371
|
-
|
|
372
|
-
### 🚀 Fase 6: Deployment (07-deployment/)
|
|
373
|
-
- Pre-deployment
|
|
374
|
-
- Staging
|
|
375
|
-
- Production
|
|
376
|
-
- Post-deployment
|
|
377
|
-
|
|
378
|
-
### 🛠️ Fase 7: Soporte (08-support/)
|
|
379
|
-
- Incident response
|
|
380
|
-
- Bug fixing
|
|
381
|
-
- Maintenance
|
|
382
|
-
- Monitoring
|
|
383
|
-
|
|
384
|
-
## 📚 Documentación
|
|
385
|
-
|
|
386
|
-
Toda la documentación del proyecto se encuentra en el directorio \`docs/\`:
|
|
387
|
-
|
|
388
|
-
- \`docs/architecture/\` - Diagramas y decisiones arquitectónicas
|
|
389
|
-
- \`docs/adr/\` - Architecture Decision Records
|
|
390
|
-
- \`docs/api/\` - Documentación de APIs
|
|
391
|
-
- \`docs/guides/\` - Guías de desarrollo y deployment
|
|
243
|
+
## 🚀 Próximos Pasos
|
|
392
244
|
|
|
393
|
-
|
|
245
|
+
Este proyecto ha sido creado con la estructura base de AWC ZNS-MTD.
|
|
394
246
|
|
|
395
|
-
|
|
247
|
+
### 1. Inicializar Tipo de Proyecto
|
|
396
248
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
- \`config.json\` - Configuración del proyecto
|
|
249
|
+
\`\`\`bash
|
|
250
|
+
awc init
|
|
251
|
+
\`\`\`
|
|
401
252
|
|
|
402
|
-
|
|
253
|
+
El comando \`awc init\` te preguntará:
|
|
254
|
+
- Tipo de proyecto (auditoría, desarrollo nuevo, migración, etc.)
|
|
255
|
+
- Tecnologías a utilizar
|
|
256
|
+
- Tipo de workflow (quick, standard, enterprise)
|
|
403
257
|
|
|
404
|
-
|
|
258
|
+
Basado en tus respuestas, creará automáticamente:
|
|
259
|
+
- ✅ Estructura de directorios por fase
|
|
260
|
+
- ✅ Directorios client-docs específicos
|
|
261
|
+
- ✅ Templates relevantes para tu proyecto
|
|
262
|
+
- ✅ Workflows configurados
|
|
405
263
|
|
|
406
|
-
|
|
264
|
+
### 2. Comenzar a Trabajar
|
|
407
265
|
|
|
408
|
-
|
|
266
|
+
Una vez inicializado, seguir las guías en cada fase del proyecto.
|
|
267
|
+
|
|
268
|
+
## 🔧 Configuración AWC
|
|
269
|
+
|
|
270
|
+
El directorio \`.awc/\` contiene:
|
|
271
|
+
|
|
272
|
+
- \`agents/\` - 4 agentes base + 22 agentes especializados
|
|
273
|
+
- \`workflows/\` - 8 workflows completos
|
|
274
|
+
- \`templates/\` - 7 templates profesionales
|
|
275
|
+
- \`config.json\` - Configuración del proyecto
|
|
276
|
+
|
|
277
|
+
## 📝 Comandos Disponibles
|
|
409
278
|
|
|
410
279
|
\`\`\`bash
|
|
280
|
+
# Inicializar proyecto (siguiente paso)
|
|
281
|
+
awc init
|
|
282
|
+
|
|
411
283
|
# Ver estado del proyecto
|
|
412
284
|
awc status
|
|
413
285
|
|
|
@@ -420,7 +292,7 @@ awc config
|
|
|
420
292
|
|
|
421
293
|
---
|
|
422
294
|
|
|
423
|
-
Generado con ❤️ usando AWC ZNS-MTD Method
|
|
295
|
+
Generado con ❤️ usando AWC ZNS-MTD Method v${getVersion()}
|
|
424
296
|
`;
|
|
425
297
|
}
|
|
426
298
|
|
|
@@ -449,7 +321,6 @@ target/
|
|
|
449
321
|
*.swp
|
|
450
322
|
*.swo
|
|
451
323
|
*~
|
|
452
|
-
.DS_Store
|
|
453
324
|
|
|
454
325
|
# Logs
|
|
455
326
|
logs/
|
|
@@ -478,550 +349,137 @@ coverage/
|
|
|
478
349
|
.nyc_output/
|
|
479
350
|
|
|
480
351
|
# Confidential (keep locally, never commit)
|
|
481
|
-
|
|
482
|
-
**/
|
|
352
|
+
**/client-docs/contratos/
|
|
353
|
+
**/client-docs/accesos/
|
|
483
354
|
**/*-confidential.*
|
|
484
355
|
`;
|
|
485
356
|
}
|
|
486
357
|
|
|
487
358
|
/**
|
|
488
|
-
* Crea
|
|
359
|
+
* Crea contenido de NEXT_STEPS.md
|
|
489
360
|
*/
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
title: 'Fase 0: Comercial',
|
|
495
|
-
content: `# 🎯 START HERE - Fase Comercial
|
|
361
|
+
function createNextStepsContent(projectName) {
|
|
362
|
+
return `# 🎯 Próximos Pasos - ${projectName}
|
|
363
|
+
|
|
364
|
+
## ¿Qué hacer ahora?
|
|
496
365
|
|
|
497
|
-
|
|
498
|
-
Capturar requisitos del cliente, evaluar viabilidad y generar oferta comercial.
|
|
366
|
+
Tu proyecto ha sido creado con la **estructura base** de AWC ZNS-MTD.
|
|
499
367
|
|
|
500
|
-
|
|
368
|
+
### 📌 Paso 1: Inicializar el Proyecto
|
|
501
369
|
|
|
502
|
-
|
|
503
|
-
📂 Directorio: \`01-prospection/\`
|
|
370
|
+
Ejecuta el comando de inicialización:
|
|
504
371
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
- [ ] Documentar contexto actual
|
|
372
|
+
\`\`\`bash
|
|
373
|
+
awc init
|
|
374
|
+
\`\`\`
|
|
509
375
|
|
|
510
|
-
###
|
|
511
|
-
📂 Directorio: \`01-prospection/\`
|
|
376
|
+
### 🔍 ¿Qué hace \`awc init\`?
|
|
512
377
|
|
|
513
|
-
|
|
514
|
-
- [ ] Evaluar viabilidad técnica
|
|
515
|
-
- [ ] Evaluar viabilidad económica
|
|
516
|
-
- [ ] Identificar riesgos principales
|
|
378
|
+
El comando \`awc init\` te preguntará:
|
|
517
379
|
|
|
518
|
-
|
|
519
|
-
|
|
380
|
+
#### 1️⃣ Tipo de Proyecto
|
|
381
|
+
- **🔍 Auditoría de Código Existente**: Evaluar sistema legacy
|
|
382
|
+
- **🆕 Desarrollo Desde Cero**: Nuevo proyecto desde cero
|
|
383
|
+
- **🔄 Migración/Modernización**: Migrar sistema existente
|
|
384
|
+
- **🛠️ Mantenimiento/Soporte**: Dar soporte a sistema existente
|
|
385
|
+
- **📱 Aplicación Móvil**: App iOS/Android
|
|
386
|
+
- **🌐 API/Microservicios**: Backend services
|
|
387
|
+
- **🏢 Sistema Empresarial**: ERP, CRM, etc.
|
|
520
388
|
|
|
521
|
-
|
|
522
|
-
-
|
|
523
|
-
-
|
|
524
|
-
-
|
|
389
|
+
#### 2️⃣ Workflow Recomendado
|
|
390
|
+
- **⚡ Quick**: Proyectos pequeños (1-2 semanas)
|
|
391
|
+
- **📊 Standard**: Proyectos medianos (1-3 meses)
|
|
392
|
+
- **🏢 Enterprise**: Proyectos grandes (3+ meses)
|
|
525
393
|
|
|
526
|
-
|
|
527
|
-
|
|
394
|
+
#### 3️⃣ Stack Tecnológico
|
|
395
|
+
- Backend: Java, .NET, Python, PHP, Node.js
|
|
396
|
+
- Frontend: React, Angular, Vue
|
|
397
|
+
- Base de datos: SQL, NoSQL
|
|
528
398
|
|
|
529
|
-
|
|
530
|
-
- [ ] Estimar esfuerzo por fase
|
|
531
|
-
- [ ] Calcular costos
|
|
532
|
-
- [ ] Definir cronograma
|
|
399
|
+
### ✅ Resultado de \`awc init\`
|
|
533
400
|
|
|
534
|
-
|
|
535
|
-
📂 Directorio: \`04-contract/\`
|
|
401
|
+
Basado en tus respuestas, creará automáticamente:
|
|
536
402
|
|
|
537
|
-
-
|
|
538
|
-
-
|
|
539
|
-
-
|
|
403
|
+
- ✅ **Estructura de fases** (01-comercial, 02-inception, 03-analysis, etc.)
|
|
404
|
+
- ✅ **Directorios client-docs/** específicos para tu tipo de proyecto
|
|
405
|
+
- ✅ **Templates** relevantes copiados a cada fase
|
|
406
|
+
- ✅ **Agentes especializados** cargados según tu stack
|
|
407
|
+
- ✅ **Guías START_HERE.md** en cada fase
|
|
540
408
|
|
|
541
|
-
|
|
542
|
-
- ✅ Contrato firmado
|
|
543
|
-
- ✅ Cliente aprobó oferta y cotización
|
|
544
|
-
- ✅ Equipo asignado
|
|
545
|
-
- ✅ Fecha de kickoff definida
|
|
409
|
+
### 📂 Ejemplos de Estructura Según Tipo
|
|
546
410
|
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
Arranque formal del proyecto, definir PRD y backlog inicial.
|
|
558
|
-
|
|
559
|
-
## Pasos a seguir
|
|
560
|
-
|
|
561
|
-
### 1. Kickoff Meeting
|
|
562
|
-
📂 Directorio: \`01-kickoff/\`
|
|
563
|
-
|
|
564
|
-
- [ ] Copiar template: \`.awc/templates/kickoff-agenda.md\`
|
|
565
|
-
- [ ] Presentar equipo
|
|
566
|
-
- [ ] Alinear expectativas
|
|
567
|
-
- [ ] Definir canales de comunicación
|
|
568
|
-
|
|
569
|
-
### 2. Product Requirements Document (PRD)
|
|
570
|
-
📂 Directorio: \`02-prd/\`
|
|
571
|
-
|
|
572
|
-
- [ ] Copiar template: \`.awc/templates/PRD-template.md\`
|
|
573
|
-
- [ ] Documentar requisitos funcionales
|
|
574
|
-
- [ ] Documentar requisitos no funcionales
|
|
575
|
-
- [ ] Definir user personas
|
|
576
|
-
- [ ] Mapear user journeys
|
|
577
|
-
|
|
578
|
-
### 3. Backlog Inicial
|
|
579
|
-
📂 Directorio: \`03-backlog/\`
|
|
580
|
-
|
|
581
|
-
- [ ] Crear user stories
|
|
582
|
-
- [ ] Priorizar backlog (MoSCoW)
|
|
583
|
-
- [ ] Estimar user stories (Planning Poker)
|
|
584
|
-
- [ ] Crear epic mapping
|
|
585
|
-
|
|
586
|
-
### 4. Release Planning
|
|
587
|
-
📂 Directorio: \`04-release-planning/\`
|
|
588
|
-
|
|
589
|
-
- [ ] Definir MVP (release 1)
|
|
590
|
-
- [ ] Planificar releases subsecuentes
|
|
591
|
-
- [ ] Crear roadmap de producto
|
|
592
|
-
- [ ] Definir milestones
|
|
593
|
-
|
|
594
|
-
## ✅ Criterios de Salida
|
|
595
|
-
- ✅ PRD aprobado por stakeholders
|
|
596
|
-
- ✅ Backlog priorizado y estimado
|
|
597
|
-
- ✅ Release plan definido
|
|
598
|
-
- ✅ Sprint 1 planificado
|
|
599
|
-
|
|
600
|
-
## ➡️ Siguiente Fase
|
|
601
|
-
Dependiendo del proyecto:
|
|
602
|
-
- Proyecto nuevo → **04-planning/** (skip análisis)
|
|
603
|
-
- Proyecto existente → **03-analysis/**
|
|
604
|
-
`
|
|
605
|
-
},
|
|
606
|
-
{
|
|
607
|
-
dir: '05-development',
|
|
608
|
-
title: 'Fase 4: Desarrollo',
|
|
609
|
-
content: `# 💻 START HERE - Fase Desarrollo
|
|
411
|
+
**Auditoría de Código**:
|
|
412
|
+
\`\`\`
|
|
413
|
+
proyecto/
|
|
414
|
+
├── 01-comercial/ # Discovery y contrato
|
|
415
|
+
├── 03-analysis/ # PRINCIPAL: Auditoría completa
|
|
416
|
+
│ ├── docs/client-docs/ # Código existente del cliente
|
|
417
|
+
│ └── reports/ # Reportes de auditoría
|
|
418
|
+
├── 04-planning/ # Plan de mejoras
|
|
419
|
+
└── 08-support/ # Recomendaciones
|
|
420
|
+
\`\`\`
|
|
610
421
|
|
|
611
|
-
|
|
612
|
-
|
|
422
|
+
**Desarrollo Desde Cero**:
|
|
423
|
+
\`\`\`
|
|
424
|
+
proyecto/
|
|
425
|
+
├── 01-comercial/ # Discovery
|
|
426
|
+
├── 02-inception/ # PRINCIPAL: PRD y diseño
|
|
427
|
+
├── 04-planning/ # Sprints
|
|
428
|
+
├── 05-development/ # PRINCIPAL: Implementación
|
|
429
|
+
│ ├── src/
|
|
430
|
+
│ └── tests/
|
|
431
|
+
├── 06-qa/ # Testing
|
|
432
|
+
└── 07-deployment/ # Despliegue
|
|
433
|
+
\`\`\`
|
|
613
434
|
|
|
614
|
-
|
|
435
|
+
**Migración/Modernización**:
|
|
615
436
|
\`\`\`
|
|
616
|
-
|
|
617
|
-
├──
|
|
618
|
-
├──
|
|
619
|
-
|
|
437
|
+
proyecto/
|
|
438
|
+
├── 01-comercial/ # Análisis de viabilidad
|
|
439
|
+
├── 03-analysis/ # PRINCIPAL: Análisis de sistema legacy
|
|
440
|
+
│ ├── docs/client-docs/ # Documentación sistema actual
|
|
441
|
+
│ └── migration-plan/
|
|
442
|
+
├── 05-development/ # Desarrollo nuevo sistema
|
|
443
|
+
└── 07-deployment/ # Plan de migración
|
|
620
444
|
\`\`\`
|
|
621
445
|
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
### 1. Feature Kickoff
|
|
625
|
-
- [ ] Seleccionar user story del sprint backlog
|
|
626
|
-
- [ ] Revisar acceptance criteria
|
|
627
|
-
- [ ] Diseño técnico (si es necesario)
|
|
628
|
-
- [ ] Crear feature branch
|
|
629
|
-
|
|
630
|
-
### 2. Development (TDD)
|
|
631
|
-
- [ ] **RED**: Escribir test que falla
|
|
632
|
-
- [ ] **GREEN**: Implementar código mínimo para pasar test
|
|
633
|
-
- [ ] **REFACTOR**: Mejorar código manteniendo tests en verde
|
|
634
|
-
- [ ] Repetir ciclo
|
|
635
|
-
|
|
636
|
-
### 3. Code Review
|
|
637
|
-
- [ ] Crear Pull Request
|
|
638
|
-
- [ ] Solicitar revisión (mínimo 2 aprobadores)
|
|
639
|
-
- [ ] Aplicar feedback
|
|
640
|
-
- [ ] Aprobar PR
|
|
641
|
-
|
|
642
|
-
### 4. Integration
|
|
643
|
-
- [ ] Merge a develop/main
|
|
644
|
-
- [ ] CI/CD automático ejecuta tests
|
|
645
|
-
- [ ] Deploy automático a dev/staging
|
|
646
|
-
|
|
647
|
-
## 🎯 Mejores Prácticas
|
|
648
|
-
- ✅ Feature branches (feature/US-123-login)
|
|
649
|
-
- ✅ Commits frecuentes y descriptivos
|
|
650
|
-
- ✅ PRs pequeños (<400 líneas)
|
|
651
|
-
- ✅ Code coverage >80%
|
|
652
|
-
- ✅ SonarQube sin critical issues
|
|
653
|
-
|
|
654
|
-
## ➡️ Siguiente Fase
|
|
655
|
-
Una vez features completas → **06-qa/**
|
|
656
|
-
`
|
|
657
|
-
}
|
|
658
|
-
];
|
|
446
|
+
### 🎯 Comandos Útiles
|
|
659
447
|
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
}
|
|
664
|
-
}
|
|
448
|
+
\`\`\`bash
|
|
449
|
+
# Inicializar proyecto
|
|
450
|
+
awc init
|
|
665
451
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
*/
|
|
669
|
-
async function createClientDocsReadmes(projectPath) {
|
|
670
|
-
const clientDocsReadmes = [
|
|
671
|
-
{
|
|
672
|
-
path: '01-comercial/docs/client-docs/README.md',
|
|
673
|
-
content: `# 📄 Documentación del Cliente - Fase Comercial
|
|
674
|
-
|
|
675
|
-
Este directorio contiene toda la documentación proporcionada por el cliente durante la fase comercial.
|
|
676
|
-
|
|
677
|
-
## 📂 Estructura
|
|
678
|
-
|
|
679
|
-
### requerimientos/
|
|
680
|
-
Documentos de requerimientos del cliente:
|
|
681
|
-
- PDFs con especificaciones funcionales
|
|
682
|
-
- Word con listados de requerimientos
|
|
683
|
-
- Excel con matrices de requerimientos
|
|
684
|
-
- Presentaciones con necesidades del negocio
|
|
685
|
-
|
|
686
|
-
### presentaciones/
|
|
687
|
-
Presentaciones del cliente:
|
|
688
|
-
- Decks ejecutivos
|
|
689
|
-
- Presentaciones de producto actual
|
|
690
|
-
- Material de marketing
|
|
691
|
-
- Diagramas de flujo de negocio
|
|
692
|
-
|
|
693
|
-
### contratos/
|
|
694
|
-
Documentos contractuales (CONFIDENCIAL):
|
|
695
|
-
- Contratos firmados
|
|
696
|
-
- NDAs
|
|
697
|
-
- SOWs (Statement of Work)
|
|
698
|
-
- Anexos contractuales
|
|
699
|
-
|
|
700
|
-
⚠️ **IMPORTANTE**: Los archivos en \`contratos/\` están en .gitignore por defecto.
|
|
701
|
-
|
|
702
|
-
## 📝 Buenas Prácticas
|
|
703
|
-
|
|
704
|
-
1. **Nomenclatura**: Usar formato \`YYYYMMDD-nombre-descriptivo.ext\`
|
|
705
|
-
- ✅ \`20260107-requerimientos-funcionales-v1.pdf\`
|
|
706
|
-
- ❌ \`documento.pdf\`
|
|
707
|
-
|
|
708
|
-
2. **Versionado**: Incluir versión en el nombre
|
|
709
|
-
- \`requerimientos-v1.0.docx\`
|
|
710
|
-
- \`requerimientos-v1.1.docx\`
|
|
711
|
-
|
|
712
|
-
3. **Organización**: Un archivo por tipo de documento
|
|
713
|
-
- No mezclar requerimientos con contratos
|
|
714
|
-
- Mantener presentaciones separadas
|
|
715
|
-
|
|
716
|
-
4. **Respaldo**: Mantener originales intactos
|
|
717
|
-
- No editar documentos del cliente
|
|
718
|
-
- Crear copias de trabajo si es necesario
|
|
719
|
-
`
|
|
720
|
-
},
|
|
721
|
-
{
|
|
722
|
-
path: '02-inception/docs/client-docs/README.md',
|
|
723
|
-
content: `# 📄 Documentación del Cliente - Fase Inception
|
|
724
|
-
|
|
725
|
-
Este directorio contiene la documentación del cliente relevante para el inicio del proyecto.
|
|
726
|
-
|
|
727
|
-
## 📂 Estructura
|
|
728
|
-
|
|
729
|
-
### procesos/
|
|
730
|
-
Diagramas y documentación de procesos actuales:
|
|
731
|
-
- Diagramas de flujo (BPMN, Visio)
|
|
732
|
-
- Mapas de procesos de negocio
|
|
733
|
-
- Descripciones de workflows actuales
|
|
734
|
-
- Casos de uso documentados
|
|
735
|
-
|
|
736
|
-
### manuales/
|
|
737
|
-
Manuales de usuario de sistemas existentes:
|
|
738
|
-
- Manuales de usuario en PDF/Word
|
|
739
|
-
- Guías de operación
|
|
740
|
-
- Documentación de sistemas legacy
|
|
741
|
-
- FAQs del sistema actual
|
|
742
|
-
|
|
743
|
-
### imagenes/
|
|
744
|
-
Material visual del cliente:
|
|
745
|
-
- Screenshots de sistemas actuales
|
|
746
|
-
- Wireframes/mockups proporcionados
|
|
747
|
-
- Logos y branding guidelines
|
|
748
|
-
- Fotografías de procesos físicos
|
|
749
|
-
- Diagramas y esquemas
|
|
750
|
-
|
|
751
|
-
## 📝 Uso Recomendado
|
|
752
|
-
|
|
753
|
-
**procesos/**: Usar para entender flujos actuales y diseñar mejoras
|
|
754
|
-
**manuales/**: Referencia para features esperados en el nuevo sistema
|
|
755
|
-
**imagenes/**: Material visual para PRD y documentación
|
|
756
|
-
|
|
757
|
-
## ⚠️ Importante
|
|
758
|
-
- Estos documentos son REFERENCIA, no especificaciones finales
|
|
759
|
-
- Validar con stakeholders antes de implementar
|
|
760
|
-
- Mantener trazabilidad con el PRD
|
|
761
|
-
`
|
|
762
|
-
},
|
|
763
|
-
{
|
|
764
|
-
path: '03-analysis/docs/client-docs/README.md',
|
|
765
|
-
content: `# 📄 Documentación del Cliente - Fase Análisis
|
|
766
|
-
|
|
767
|
-
Documentación técnica del cliente para auditoría y análisis.
|
|
768
|
-
|
|
769
|
-
## 📂 Estructura
|
|
770
|
-
|
|
771
|
-
### arquitectura/
|
|
772
|
-
Diagramas arquitectónicos actuales:
|
|
773
|
-
- Diagramas de arquitectura (C4, UML)
|
|
774
|
-
- Diagramas de red e infraestructura
|
|
775
|
-
- Diagramas de componentes
|
|
776
|
-
- Documentos de diseño técnico
|
|
777
|
-
|
|
778
|
-
### databases/
|
|
779
|
-
Documentación de bases de datos:
|
|
780
|
-
- Esquemas de base de datos (ERD)
|
|
781
|
-
- Modelos de datos en PDF/Visio
|
|
782
|
-
- Scripts SQL de estructura
|
|
783
|
-
- Diccionarios de datos
|
|
784
|
-
- Excel con tablas y campos
|
|
785
|
-
|
|
786
|
-
### especificaciones/
|
|
787
|
-
Especificaciones técnicas:
|
|
788
|
-
- Documentos de APIs existentes (Swagger, Postman)
|
|
789
|
-
- Especificaciones de interfaces
|
|
790
|
-
- Protocolos de integración
|
|
791
|
-
- Documentación de servicios web
|
|
792
|
-
|
|
793
|
-
## 🎯 Objetivo
|
|
794
|
-
|
|
795
|
-
Entender la arquitectura actual para:
|
|
796
|
-
- Identificar technical debt
|
|
797
|
-
- Planificar migraciones
|
|
798
|
-
- Diseñar integraciones
|
|
799
|
-
- Evaluar impacto de cambios
|
|
800
|
-
|
|
801
|
-
## 📊 Artefactos Generados
|
|
802
|
-
|
|
803
|
-
A partir de esta documentación, el equipo AWC generará:
|
|
804
|
-
- Reporte de auditoría de código
|
|
805
|
-
- Análisis de arquitectura
|
|
806
|
-
- Assessment de technical debt
|
|
807
|
-
- Recomendaciones de mejora
|
|
808
|
-
`
|
|
809
|
-
},
|
|
810
|
-
{
|
|
811
|
-
path: '04-planning/docs/client-docs/README.md',
|
|
812
|
-
content: `# 📄 Documentación del Cliente - Fase Planificación
|
|
813
|
-
|
|
814
|
-
Documentación del cliente para planificación de sprints.
|
|
815
|
-
|
|
816
|
-
## 📂 Estructura
|
|
817
|
-
|
|
818
|
-
### historias/
|
|
819
|
-
User stories y casos de uso del cliente:
|
|
820
|
-
- Word/Excel con historias de usuario
|
|
821
|
-
- Casos de uso detallados
|
|
822
|
-
- Escenarios de negocio
|
|
823
|
-
- Criterios de aceptación iniciales
|
|
824
|
-
|
|
825
|
-
### estimaciones/
|
|
826
|
-
Material para estimación:
|
|
827
|
-
- Hojas de cálculo con estimaciones del cliente
|
|
828
|
-
- Referencias de proyectos similares
|
|
829
|
-
- Benchmarks de performance esperado
|
|
830
|
-
- Constraints de tiempo/presupuesto
|
|
831
|
-
|
|
832
|
-
## 💡 Uso
|
|
833
|
-
|
|
834
|
-
Esta documentación ayuda a:
|
|
835
|
-
- Refinar user stories del backlog
|
|
836
|
-
- Validar estimaciones del equipo
|
|
837
|
-
- Alinear expectativas de tiempos
|
|
838
|
-
- Priorizar features según negocio
|
|
839
|
-
`
|
|
840
|
-
},
|
|
841
|
-
{
|
|
842
|
-
path: '05-development/docs/client-docs/README.md',
|
|
843
|
-
content: `# 📄 Documentación del Cliente - Fase Desarrollo
|
|
844
|
-
|
|
845
|
-
Recursos técnicos del cliente necesarios para implementación.
|
|
846
|
-
|
|
847
|
-
## 📂 Estructura
|
|
848
|
-
|
|
849
|
-
### apis/
|
|
850
|
-
Documentación de APIs a integrar:
|
|
851
|
-
- Swagger/OpenAPI specs
|
|
852
|
-
- Colecciones de Postman
|
|
853
|
-
- WSDL de servicios SOAP
|
|
854
|
-
- Documentación de endpoints REST
|
|
855
|
-
- Credenciales de acceso (sandbox/test)
|
|
856
|
-
|
|
857
|
-
### integraciones/
|
|
858
|
-
Sistemas externos a integrar:
|
|
859
|
-
- Manuales de integración
|
|
860
|
-
- Diagramas de flujo de integración
|
|
861
|
-
- Mappings de campos
|
|
862
|
-
- Ejemplos de payloads XML/JSON
|
|
863
|
-
- Certificados SSL/TLS
|
|
864
|
-
|
|
865
|
-
### recursos/
|
|
866
|
-
Assets para la aplicación:
|
|
867
|
-
- Imágenes para UI (logos, iconos)
|
|
868
|
-
- Archivos de diseño (Figma, Sketch exports)
|
|
869
|
-
- Fuentes corporativas
|
|
870
|
-
- Guidelines de branding
|
|
871
|
-
- Templates de documentos
|
|
872
|
-
|
|
873
|
-
## 🔧 Integración
|
|
874
|
-
|
|
875
|
-
**Antes de integrar**:
|
|
876
|
-
1. Validar credenciales en ambiente de pruebas
|
|
877
|
-
2. Revisar rate limits y SLAs
|
|
878
|
-
3. Documentar endpoints en Swagger local
|
|
879
|
-
4. Crear tests de integración
|
|
880
|
-
|
|
881
|
-
**Durante desarrollo**:
|
|
882
|
-
- Mantener colecciones de Postman actualizadas
|
|
883
|
-
- Documentar cambios en APIs
|
|
884
|
-
- Reportar issues de integración al cliente
|
|
885
|
-
`
|
|
886
|
-
},
|
|
887
|
-
{
|
|
888
|
-
path: '06-qa/docs/client-docs/README.md',
|
|
889
|
-
content: `# 📄 Documentación del Cliente - Fase QA
|
|
890
|
-
|
|
891
|
-
Material del cliente para validación y pruebas.
|
|
892
|
-
|
|
893
|
-
## 📂 Estructura
|
|
894
|
-
|
|
895
|
-
### criterios-aceptacion/
|
|
896
|
-
Criterios de aceptación del cliente:
|
|
897
|
-
- Excel/Word con criterios de aceptación
|
|
898
|
-
- Checklist de features esperados
|
|
899
|
-
- Requerimientos no funcionales (SLA, performance)
|
|
900
|
-
- Escenarios de validación de negocio
|
|
901
|
-
|
|
902
|
-
### escenarios-prueba/
|
|
903
|
-
Escenarios de prueba proporcionados:
|
|
904
|
-
- Casos de prueba del cliente
|
|
905
|
-
- Datos de prueba (datasets CSV/Excel)
|
|
906
|
-
- Scripts de carga de datos
|
|
907
|
-
- Escenarios end-to-end prioritarios
|
|
908
|
-
|
|
909
|
-
## ✅ Validación
|
|
910
|
-
|
|
911
|
-
Esta documentación se usa para:
|
|
912
|
-
1. Crear test cases alineados con expectativas
|
|
913
|
-
2. Generar datos de prueba realistas
|
|
914
|
-
3. Validar acceptance criteria
|
|
915
|
-
4. Preparar UAT con el cliente
|
|
916
|
-
|
|
917
|
-
## 📋 UAT (User Acceptance Testing)
|
|
918
|
-
|
|
919
|
-
Coordinar con cliente:
|
|
920
|
-
- [ ] Ambiente de UAT preparado
|
|
921
|
-
- [ ] Usuarios de prueba creados
|
|
922
|
-
- [ ] Datasets cargados
|
|
923
|
-
- [ ] Sesiones de UAT agendadas
|
|
924
|
-
- [ ] Formulario de signoff preparado
|
|
925
|
-
`
|
|
926
|
-
},
|
|
927
|
-
{
|
|
928
|
-
path: '07-deployment/docs/client-docs/README.md',
|
|
929
|
-
content: `# 📄 Documentación del Cliente - Fase Deployment
|
|
930
|
-
|
|
931
|
-
Información de infraestructura del cliente para deployment.
|
|
932
|
-
|
|
933
|
-
## 📂 Estructura
|
|
934
|
-
|
|
935
|
-
### infraestructura/
|
|
936
|
-
Documentación de infraestructura del cliente:
|
|
937
|
-
- Diagramas de red
|
|
938
|
-
- Especificaciones de servidores
|
|
939
|
-
- Configuraciones de firewalls
|
|
940
|
-
- IPs y rangos asignados
|
|
941
|
-
- Políticas de seguridad
|
|
942
|
-
|
|
943
|
-
### accesos/
|
|
944
|
-
Credenciales y accesos (CONFIDENCIAL):
|
|
945
|
-
- Credenciales de servidores
|
|
946
|
-
- VPN configs
|
|
947
|
-
- Certificados SSL
|
|
948
|
-
- API keys de producción
|
|
949
|
-
- Passwords de bases de datos
|
|
950
|
-
|
|
951
|
-
⚠️ **CRÍTICO**:
|
|
952
|
-
- Archivos en esta carpeta están en .gitignore
|
|
953
|
-
- Usar gestor de secretos (Azure Key Vault, AWS Secrets Manager)
|
|
954
|
-
- NUNCA commitear credenciales al repositorio
|
|
955
|
-
|
|
956
|
-
## 🚀 Pre-Deployment Checklist
|
|
957
|
-
|
|
958
|
-
- [ ] Accesos a servidores validados
|
|
959
|
-
- [ ] VPN configurada y probada
|
|
960
|
-
- [ ] DNS apuntando correctamente
|
|
961
|
-
- [ ] Certificados SSL instalados
|
|
962
|
-
- [ ] Firewall rules configurados
|
|
963
|
-
- [ ] Backup de producción realizado
|
|
964
|
-
`
|
|
965
|
-
},
|
|
966
|
-
{
|
|
967
|
-
path: '08-support/docs/client-docs/README.md',
|
|
968
|
-
content: `# 📄 Documentación del Cliente - Fase Soporte
|
|
969
|
-
|
|
970
|
-
Documentación de incidentes y solicitudes del cliente.
|
|
971
|
-
|
|
972
|
-
## 📂 Estructura
|
|
973
|
-
|
|
974
|
-
### incidentes/
|
|
975
|
-
Reportes de incidentes del cliente:
|
|
976
|
-
- Screenshots de errores
|
|
977
|
-
- Logs proporcionados por el cliente
|
|
978
|
-
- Videos reproduciendo issues
|
|
979
|
-
- Reportes de usuarios finales
|
|
980
|
-
|
|
981
|
-
### cambios/
|
|
982
|
-
Solicitudes de cambio:
|
|
983
|
-
- Change requests (PDFs/Word)
|
|
984
|
-
- Nuevos requerimientos post-lanzamiento
|
|
985
|
-
- Solicitudes de mejoras
|
|
986
|
-
- Feedback de usuarios
|
|
987
|
-
|
|
988
|
-
## 🎫 Gestión de Incidentes
|
|
989
|
-
|
|
990
|
-
**Flujo recomendado**:
|
|
991
|
-
1. Cliente reporta → Copiar evidencia a \`incidentes/\`
|
|
992
|
-
2. Crear ticket en sistema de tracking
|
|
993
|
-
3. Reproducir y documentar en \`08-support/incidents/\`
|
|
994
|
-
4. Resolver y validar con cliente
|
|
995
|
-
|
|
996
|
-
**Nomenclatura**:
|
|
997
|
-
- \`INC-001-descripcion-corta/\` (subdirectorio por incidente)
|
|
998
|
-
- Dentro: screenshots, logs, análisis, solución
|
|
999
|
-
|
|
1000
|
-
## 📝 Change Requests
|
|
1001
|
-
|
|
1002
|
-
**Evaluación**:
|
|
1003
|
-
1. Cliente envía CR → Guardar en \`cambios/\`
|
|
1004
|
-
2. Equipo analiza impacto (tiempo/costo)
|
|
1005
|
-
3. Aprobar/rechazar con justificación
|
|
1006
|
-
4. Si aprobado → Crear user stories en backlog
|
|
1007
|
-
`
|
|
1008
|
-
}
|
|
1009
|
-
];
|
|
452
|
+
# Ver estado actual
|
|
453
|
+
awc status
|
|
1010
454
|
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
455
|
+
# Validar estructura
|
|
456
|
+
awc validate
|
|
457
|
+
|
|
458
|
+
# Ver configuración
|
|
459
|
+
awc config
|
|
460
|
+
\`\`\`
|
|
461
|
+
|
|
462
|
+
### 📚 Más Información
|
|
463
|
+
|
|
464
|
+
- **Documentación**: [README.md](./README.md)
|
|
465
|
+
- **Agentes**: Revisa \`.awc/agents/\` para ver los 26 agentes disponibles
|
|
466
|
+
- **Workflows**: Consulta \`.awc/workflows/\` para ver los 8 workflows
|
|
467
|
+
- **Templates**: Usa \`.awc/templates/\` para documentos profesionales
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
🚀 **¡Listo para empezar!** Ejecuta \`awc init\` ahora.
|
|
472
|
+
`;
|
|
1015
473
|
}
|
|
1016
474
|
|
|
1017
475
|
/**
|
|
1018
476
|
* Crea configuración de VS Code para cargar AWC automáticamente
|
|
1019
477
|
*/
|
|
1020
|
-
async function createVSCodeConfig(projectPath) {
|
|
478
|
+
async function createVSCodeConfig(projectPath, projectName) {
|
|
1021
479
|
const vscodeDir = path.join(projectPath, '.vscode');
|
|
1022
480
|
await fs.ensureDir(vscodeDir);
|
|
1023
481
|
|
|
1024
|
-
// settings.json
|
|
482
|
+
// settings.json
|
|
1025
483
|
const settings = {
|
|
1026
484
|
"github.copilot.enable": {
|
|
1027
485
|
"*": true
|
|
@@ -1051,7 +509,7 @@ async function createVSCodeConfig(projectPath) {
|
|
|
1051
509
|
{ spaces: 2 }
|
|
1052
510
|
);
|
|
1053
511
|
|
|
1054
|
-
// extensions.json
|
|
512
|
+
// extensions.json
|
|
1055
513
|
const extensions = {
|
|
1056
514
|
"recommendations": [
|
|
1057
515
|
"github.copilot",
|
|
@@ -1067,12 +525,12 @@ async function createVSCodeConfig(projectPath) {
|
|
|
1067
525
|
{ spaces: 2 }
|
|
1068
526
|
);
|
|
1069
527
|
|
|
1070
|
-
//
|
|
528
|
+
// workspace file
|
|
1071
529
|
const workspace = {
|
|
1072
530
|
"folders": [
|
|
1073
531
|
{
|
|
1074
532
|
"path": ".",
|
|
1075
|
-
"name":
|
|
533
|
+
"name": projectName
|
|
1076
534
|
}
|
|
1077
535
|
],
|
|
1078
536
|
"settings": {
|
|
@@ -1090,7 +548,7 @@ async function createVSCodeConfig(projectPath) {
|
|
|
1090
548
|
};
|
|
1091
549
|
|
|
1092
550
|
await fs.writeJson(
|
|
1093
|
-
path.join(projectPath, `${
|
|
551
|
+
path.join(projectPath, `${projectName}.code-workspace`),
|
|
1094
552
|
workspace,
|
|
1095
553
|
{ spaces: 2 }
|
|
1096
554
|
);
|