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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Comando: new
3
- * Crea un nuevo proyecto con estructura completa AWC ZNS-MTD
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
- // Preguntas de configuración
49
- const answers = await inquirer.prompt([
48
+ // Preguntar responsable del proyecto
49
+ const { responsible, description, gitInit } = await inquirer.prompt([
50
50
  {
51
- type: 'list',
52
- name: 'projectType',
53
- message: '¿Qué tipo de proyecto es?',
54
- choices: [
55
- { name: 'Web Application (Frontend + Backend)', value: 'web' },
56
- { name: 'API/Microservices', value: 'api' },
57
- { name: 'Mobile Application', value: 'mobile' },
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 del proyecto:',
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 estándar de directorios
96
- const directories = [
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 directories) {
88
+ for (const dir of baseDirectories) {
175
89
  await fs.ensureDir(path.join(projectPath, dir));
176
90
  }
177
- spinner.text = 'Estructura de directorios creada';
91
+ spinner.text = 'Estructura base creada';
178
92
 
179
- // 3. Copiar templates
180
- const srcTemplatesPath = path.join(__dirname, '../../../src/modules/awc-zns-mtd/templates');
181
- const destTemplatesPath = path.join(projectPath, '.awc/templates');
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(srcTemplatesPath)) {
184
- await fs.copy(srcTemplatesPath, destTemplatesPath);
185
- spinner.text = 'Templates copiados';
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
- // 4. Copiar workflows
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
- // 5. Copiar agentes
198
- const srcAgentsPath = path.join(__dirname, '../../../src/modules/awc-zns-mtd/agents');
199
- const destAgentsPath = path.join(projectPath, '.awc/agents');
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(srcAgentsPath)) {
202
- await fs.copy(srcAgentsPath, destAgentsPath);
203
- spinner.text = 'Agentes copiados';
124
+ if (await fs.pathExists(srcTemplatesPath)) {
125
+ await fs.copy(srcTemplatesPath, destTemplatesPath);
126
+ spinner.text = 'Templates copiados';
204
127
  }
205
128
 
206
- // 6. Crear archivo de configuración AWC
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: answers.description,
213
- type: answers.projectType,
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: 'comercial',
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
- // 7. Crear README.md del proyecto
235
- const readme = createReadmeContent(projectName, answers);
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
- // 8. Crear .gitignore
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
- // 9. Crear archivo de inicio para cada fase
245
- await createPhaseGuides(projectPath);
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
- // 9.2. Copiar copilot-instructions.md
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
- // 10. Inicializar Git si se solicitó
266
- if (answers.gitInit) {
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('📦 Resumen del Proyecto'));
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('Tipo:')} ${chalk.yellow(answers.projectType)}`);
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.')} Revisar ${chalk.yellow('01-comercial/START_HERE.md')}`);
298
- console.log(` ${chalk.green('3.')} Completar discovery notes y análisis de viabilidad`);
299
- console.log(` ${chalk.green('4.')} Ejecutar ${chalk.yellow('awc status')} para ver el progreso\n`);
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, answers) {
232
+ function createReadmeContent(projectName, responsible, description) {
323
233
  return `# ${projectName}
324
234
 
325
- > ${answers.description}
235
+ > ${description}
326
236
 
327
237
  ## 📋 Información del Proyecto
328
238
 
329
- - **Tipo**: ${answers.projectType}
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
- ## 🚀 Fases del Proyecto
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
- ## 🔧 Configuración AWC
245
+ Este proyecto ha sido creado con la estructura base de AWC ZNS-MTD.
394
246
 
395
- El directorio \`.awc/\` contiene:
247
+ ### 1. Inicializar Tipo de Proyecto
396
248
 
397
- - \`agents/\` - Agentes especializados AWC ZNS-MTD
398
- - \`workflows/\` - Workflows para cada fase
399
- - \`templates/\` - Templates de documentos
400
- - \`config.json\` - Configuración del proyecto
249
+ \`\`\`bash
250
+ awc init
251
+ \`\`\`
401
252
 
402
- ## 🎯 Estado Actual
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
- **Fase actual**: Comercial (inicio)
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
- Revisar \`01-comercial/START_HERE.md\` para comenzar.
264
+ ### 2. Comenzar a Trabajar
407
265
 
408
- ## 📝 Comandos AWC
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
- 01-comercial/04-contract/*.pdf
482
- **/confidential/
352
+ **/client-docs/contratos/
353
+ **/client-docs/accesos/
483
354
  **/*-confidential.*
484
355
  `;
485
356
  }
486
357
 
487
358
  /**
488
- * Crea guías de inicio para cada fase
359
+ * Crea contenido de NEXT_STEPS.md
489
360
  */
490
- async function createPhaseGuides(projectPath) {
491
- const phases = [
492
- {
493
- dir: '01-comercial',
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
- ## Objetivo
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
- ## Pasos a seguir
368
+ ### 📌 Paso 1: Inicializar el Proyecto
501
369
 
502
- ### 1. Discovery & Prospección
503
- 📂 Directorio: \`01-prospection/\`
370
+ Ejecuta el comando de inicialización:
504
371
 
505
- - [ ] Completar \`.awc/templates/discovery-notes.md\`
506
- - [ ] Identificar stakeholders clave
507
- - [ ] Entender el problema de negocio
508
- - [ ] Documentar contexto actual
372
+ \`\`\`bash
373
+ awc init
374
+ \`\`\`
509
375
 
510
- ### 2. Análisis de Viabilidad
511
- 📂 Directorio: \`01-prospection/\`
376
+ ### 🔍 ¿Qué hace \`awc init\`?
512
377
 
513
- - [ ] Completar \`.awc/templates/viabilidad.md\`
514
- - [ ] Evaluar viabilidad técnica
515
- - [ ] Evaluar viabilidad económica
516
- - [ ] Identificar riesgos principales
378
+ El comando \`awc init\` te preguntará:
517
379
 
518
- ### 3. Oferta Técnica
519
- 📂 Directorio: \`02-technical-proposal/\`
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
- - [ ] Copiar template: \`.awc/templates/oferta-comercial.md\`
522
- - [ ] Definir solución propuesta
523
- - [ ] Especificar stack tecnológico
524
- - [ ] Definir alcance y exclusiones
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
- ### 4. Cotización
527
- 📂 Directorio: \`03-quotation/\`
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
- - [ ] Copiar template: \`.awc/templates/cotizacion.md\`
530
- - [ ] Estimar esfuerzo por fase
531
- - [ ] Calcular costos
532
- - [ ] Definir cronograma
399
+ ### Resultado de \`awc init\`
533
400
 
534
- ### 5. Contrato (confidencial)
535
- 📂 Directorio: \`04-contract/\`
401
+ Basado en tus respuestas, creará automáticamente:
536
402
 
537
- - [ ] Negociar términos
538
- - [ ] Firmar contrato
539
- - [ ] Mover a siguiente fase
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
- ## Criterios de Salida
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
- ## ➡️ Siguiente Fase
548
- Una vez completado, pasar a **02-inception/**
549
- `
550
- },
551
- {
552
- dir: '02-inception',
553
- title: 'Fase 1: Inception',
554
- content: `# 🚀 START HERE - Fase Inception
555
-
556
- ## Objetivo
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
- ## Objetivo
612
- Implementar user stories siguiendo TDD y mejores prácticas.
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
- ## Estructura
435
+ **Migración/Modernización**:
615
436
  \`\`\`
616
- 05-development/
617
- ├── src/ # Código fuente
618
- ├── tests/ # Tests (unit, integration, e2e)
619
- └── docs/ # Documentación técnica
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
- ## Pasos a seguir
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
- for (const phase of phases) {
661
- const filePath = path.join(projectPath, phase.dir, 'START_HERE.md');
662
- await fs.writeFile(filePath, phase.content);
663
- }
664
- }
448
+ \`\`\`bash
449
+ # Inicializar proyecto
450
+ awc init
665
451
 
666
- /**
667
- * Crea README.md en directorios client-docs
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
- for (const readme of clientDocsReadmes) {
1012
- const filePath = path.join(projectPath, readme.path);
1013
- await fs.writeFile(filePath, readme.content);
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 - Configuración de workspace
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 - Extensiones recomendadas
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
- // AWC-ZNS-MTD.code-workspace - Workspace file
528
+ // workspace file
1071
529
  const workspace = {
1072
530
  "folders": [
1073
531
  {
1074
532
  "path": ".",
1075
- "name": path.basename(projectPath)
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, `${path.basename(projectPath)}.code-workspace`),
551
+ path.join(projectPath, `${projectName}.code-workspace`),
1094
552
  workspace,
1095
553
  { spaces: 2 }
1096
554
  );