@h2nguyen/arc42-node-mcp-server 1.0.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +222 -11
  3. package/dist/server.d.ts.map +1 -1
  4. package/dist/server.js +28 -72
  5. package/dist/server.js.map +1 -1
  6. package/dist/templates/index.d.ts +46 -1
  7. package/dist/templates/index.d.ts.map +1 -1
  8. package/dist/templates/index.js +63 -896
  9. package/dist/templates/index.js.map +1 -1
  10. package/dist/templates/locales/cz/index.d.ts +9 -0
  11. package/dist/templates/locales/cz/index.d.ts.map +1 -0
  12. package/dist/templates/locales/cz/index.js +29 -0
  13. package/dist/templates/locales/cz/index.js.map +1 -0
  14. package/dist/templates/locales/cz/sections.d.ts +10 -0
  15. package/dist/templates/locales/cz/sections.d.ts.map +1 -0
  16. package/dist/templates/locales/cz/sections.js +39 -0
  17. package/dist/templates/locales/cz/sections.js.map +1 -0
  18. package/dist/templates/locales/cz/templates.d.ts +9 -0
  19. package/dist/templates/locales/cz/templates.d.ts.map +1 -0
  20. package/dist/templates/locales/cz/templates.js +274 -0
  21. package/dist/templates/locales/cz/templates.js.map +1 -0
  22. package/dist/templates/locales/de/index.d.ts +26 -0
  23. package/dist/templates/locales/de/index.d.ts.map +1 -0
  24. package/dist/templates/locales/de/index.js +53 -0
  25. package/dist/templates/locales/de/index.js.map +1 -0
  26. package/dist/templates/locales/de/sections.d.ts +28 -0
  27. package/dist/templates/locales/de/sections.d.ts.map +1 -0
  28. package/dist/templates/locales/de/sections.js +57 -0
  29. package/dist/templates/locales/de/sections.js.map +1 -0
  30. package/dist/templates/locales/de/templates.d.ts +22 -0
  31. package/dist/templates/locales/de/templates.d.ts.map +1 -0
  32. package/dist/templates/locales/de/templates.js +1060 -0
  33. package/dist/templates/locales/de/templates.js.map +1 -0
  34. package/dist/templates/locales/en/index.d.ts +26 -0
  35. package/dist/templates/locales/en/index.d.ts.map +1 -0
  36. package/dist/templates/locales/en/index.js +53 -0
  37. package/dist/templates/locales/en/index.js.map +1 -0
  38. package/dist/templates/locales/en/sections.d.ts +25 -0
  39. package/dist/templates/locales/en/sections.d.ts.map +1 -0
  40. package/dist/templates/locales/en/sections.js +54 -0
  41. package/dist/templates/locales/en/sections.js.map +1 -0
  42. package/dist/templates/locales/en/templates.d.ts +22 -0
  43. package/dist/templates/locales/en/templates.d.ts.map +1 -0
  44. package/dist/templates/locales/en/templates.js +1060 -0
  45. package/dist/templates/locales/en/templates.js.map +1 -0
  46. package/dist/templates/locales/es/index.d.ts +26 -0
  47. package/dist/templates/locales/es/index.d.ts.map +1 -0
  48. package/dist/templates/locales/es/index.js +53 -0
  49. package/dist/templates/locales/es/index.js.map +1 -0
  50. package/dist/templates/locales/es/sections.d.ts +28 -0
  51. package/dist/templates/locales/es/sections.d.ts.map +1 -0
  52. package/dist/templates/locales/es/sections.js +57 -0
  53. package/dist/templates/locales/es/sections.js.map +1 -0
  54. package/dist/templates/locales/es/templates.d.ts +22 -0
  55. package/dist/templates/locales/es/templates.d.ts.map +1 -0
  56. package/dist/templates/locales/es/templates.js +1060 -0
  57. package/dist/templates/locales/es/templates.js.map +1 -0
  58. package/dist/templates/locales/fr/index.d.ts +26 -0
  59. package/dist/templates/locales/fr/index.d.ts.map +1 -0
  60. package/dist/templates/locales/fr/index.js +53 -0
  61. package/dist/templates/locales/fr/index.js.map +1 -0
  62. package/dist/templates/locales/fr/sections.d.ts +28 -0
  63. package/dist/templates/locales/fr/sections.d.ts.map +1 -0
  64. package/dist/templates/locales/fr/sections.js +57 -0
  65. package/dist/templates/locales/fr/sections.js.map +1 -0
  66. package/dist/templates/locales/fr/templates.d.ts +22 -0
  67. package/dist/templates/locales/fr/templates.d.ts.map +1 -0
  68. package/dist/templates/locales/fr/templates.js +1060 -0
  69. package/dist/templates/locales/fr/templates.js.map +1 -0
  70. package/dist/templates/locales/index.d.ts +67 -0
  71. package/dist/templates/locales/index.d.ts.map +1 -0
  72. package/dist/templates/locales/index.js +100 -0
  73. package/dist/templates/locales/index.js.map +1 -0
  74. package/dist/templates/locales/it/index.d.ts +26 -0
  75. package/dist/templates/locales/it/index.d.ts.map +1 -0
  76. package/dist/templates/locales/it/index.js +53 -0
  77. package/dist/templates/locales/it/index.js.map +1 -0
  78. package/dist/templates/locales/it/sections.d.ts +28 -0
  79. package/dist/templates/locales/it/sections.d.ts.map +1 -0
  80. package/dist/templates/locales/it/sections.js +57 -0
  81. package/dist/templates/locales/it/sections.js.map +1 -0
  82. package/dist/templates/locales/it/templates.d.ts +22 -0
  83. package/dist/templates/locales/it/templates.d.ts.map +1 -0
  84. package/dist/templates/locales/it/templates.js +1060 -0
  85. package/dist/templates/locales/it/templates.js.map +1 -0
  86. package/dist/templates/locales/language-factory.d.ts +97 -0
  87. package/dist/templates/locales/language-factory.d.ts.map +1 -0
  88. package/dist/templates/locales/language-factory.js +126 -0
  89. package/dist/templates/locales/language-factory.js.map +1 -0
  90. package/dist/templates/locales/language-registry.d.ts +114 -0
  91. package/dist/templates/locales/language-registry.d.ts.map +1 -0
  92. package/dist/templates/locales/language-registry.js +146 -0
  93. package/dist/templates/locales/language-registry.js.map +1 -0
  94. package/dist/templates/locales/language-strategy.d.ts +126 -0
  95. package/dist/templates/locales/language-strategy.d.ts.map +1 -0
  96. package/dist/templates/locales/language-strategy.js +46 -0
  97. package/dist/templates/locales/language-strategy.js.map +1 -0
  98. package/dist/templates/locales/nl/index.d.ts +26 -0
  99. package/dist/templates/locales/nl/index.d.ts.map +1 -0
  100. package/dist/templates/locales/nl/index.js +53 -0
  101. package/dist/templates/locales/nl/index.js.map +1 -0
  102. package/dist/templates/locales/nl/sections.d.ts +28 -0
  103. package/dist/templates/locales/nl/sections.d.ts.map +1 -0
  104. package/dist/templates/locales/nl/sections.js +57 -0
  105. package/dist/templates/locales/nl/sections.js.map +1 -0
  106. package/dist/templates/locales/nl/templates.d.ts +22 -0
  107. package/dist/templates/locales/nl/templates.d.ts.map +1 -0
  108. package/dist/templates/locales/nl/templates.js +1060 -0
  109. package/dist/templates/locales/nl/templates.js.map +1 -0
  110. package/dist/templates/locales/pt/index.d.ts +26 -0
  111. package/dist/templates/locales/pt/index.d.ts.map +1 -0
  112. package/dist/templates/locales/pt/index.js +53 -0
  113. package/dist/templates/locales/pt/index.js.map +1 -0
  114. package/dist/templates/locales/pt/sections.d.ts +28 -0
  115. package/dist/templates/locales/pt/sections.d.ts.map +1 -0
  116. package/dist/templates/locales/pt/sections.js +57 -0
  117. package/dist/templates/locales/pt/sections.js.map +1 -0
  118. package/dist/templates/locales/pt/templates.d.ts +22 -0
  119. package/dist/templates/locales/pt/templates.d.ts.map +1 -0
  120. package/dist/templates/locales/pt/templates.js +1060 -0
  121. package/dist/templates/locales/pt/templates.js.map +1 -0
  122. package/dist/templates/locales/ru/index.d.ts +15 -0
  123. package/dist/templates/locales/ru/index.d.ts.map +1 -0
  124. package/dist/templates/locales/ru/index.js +41 -0
  125. package/dist/templates/locales/ru/index.js.map +1 -0
  126. package/dist/templates/locales/ru/sections.d.ts +28 -0
  127. package/dist/templates/locales/ru/sections.d.ts.map +1 -0
  128. package/dist/templates/locales/ru/sections.js +57 -0
  129. package/dist/templates/locales/ru/sections.js.map +1 -0
  130. package/dist/templates/locales/ru/templates.d.ts +22 -0
  131. package/dist/templates/locales/ru/templates.d.ts.map +1 -0
  132. package/dist/templates/locales/ru/templates.js +664 -0
  133. package/dist/templates/locales/ru/templates.js.map +1 -0
  134. package/dist/templates/locales/template-provider.d.ts +122 -0
  135. package/dist/templates/locales/template-provider.d.ts.map +1 -0
  136. package/dist/templates/locales/template-provider.js +173 -0
  137. package/dist/templates/locales/template-provider.js.map +1 -0
  138. package/dist/templates/locales/ukr/index.d.ts +9 -0
  139. package/dist/templates/locales/ukr/index.d.ts.map +1 -0
  140. package/dist/templates/locales/ukr/index.js +29 -0
  141. package/dist/templates/locales/ukr/index.js.map +1 -0
  142. package/dist/templates/locales/ukr/sections.d.ts +10 -0
  143. package/dist/templates/locales/ukr/sections.d.ts.map +1 -0
  144. package/dist/templates/locales/ukr/sections.js +39 -0
  145. package/dist/templates/locales/ukr/sections.js.map +1 -0
  146. package/dist/templates/locales/ukr/templates.d.ts +9 -0
  147. package/dist/templates/locales/ukr/templates.d.ts.map +1 -0
  148. package/dist/templates/locales/ukr/templates.js +242 -0
  149. package/dist/templates/locales/ukr/templates.js.map +1 -0
  150. package/dist/templates/locales/zh/index.d.ts +9 -0
  151. package/dist/templates/locales/zh/index.d.ts.map +1 -0
  152. package/dist/templates/locales/zh/index.js +29 -0
  153. package/dist/templates/locales/zh/index.js.map +1 -0
  154. package/dist/templates/locales/zh/sections.d.ts +10 -0
  155. package/dist/templates/locales/zh/sections.d.ts.map +1 -0
  156. package/dist/templates/locales/zh/sections.js +39 -0
  157. package/dist/templates/locales/zh/sections.js.map +1 -0
  158. package/dist/templates/locales/zh/templates.d.ts +9 -0
  159. package/dist/templates/locales/zh/templates.d.ts.map +1 -0
  160. package/dist/templates/locales/zh/templates.js +260 -0
  161. package/dist/templates/locales/zh/templates.js.map +1 -0
  162. package/dist/tools/arc42-init.d.ts +8 -2
  163. package/dist/tools/arc42-init.d.ts.map +1 -1
  164. package/dist/tools/arc42-init.js +67 -97
  165. package/dist/tools/arc42-init.js.map +1 -1
  166. package/dist/tools/arc42-status.d.ts +5 -2
  167. package/dist/tools/arc42-status.d.ts.map +1 -1
  168. package/dist/tools/arc42-status.js +47 -18
  169. package/dist/tools/arc42-status.js.map +1 -1
  170. package/dist/tools/arc42-workflow-guide.d.ts +6 -3
  171. package/dist/tools/arc42-workflow-guide.d.ts.map +1 -1
  172. package/dist/tools/arc42-workflow-guide.js +42 -276
  173. package/dist/tools/arc42-workflow-guide.js.map +1 -1
  174. package/dist/tools/generate-template.d.ts +7 -3
  175. package/dist/tools/generate-template.d.ts.map +1 -1
  176. package/dist/tools/generate-template.js +44 -35
  177. package/dist/tools/generate-template.js.map +1 -1
  178. package/dist/tools/get-section.d.ts +7 -3
  179. package/dist/tools/get-section.d.ts.map +1 -1
  180. package/dist/tools/get-section.js +38 -38
  181. package/dist/tools/get-section.js.map +1 -1
  182. package/dist/tools/index.d.ts +6 -5
  183. package/dist/tools/index.d.ts.map +1 -1
  184. package/dist/tools/index.js +14 -20
  185. package/dist/tools/index.js.map +1 -1
  186. package/dist/tools/update-section.d.ts +9 -3
  187. package/dist/tools/update-section.d.ts.map +1 -1
  188. package/dist/tools/update-section.js +12 -44
  189. package/dist/tools/update-section.js.map +1 -1
  190. package/package.json +1 -1
@@ -0,0 +1,1060 @@
1
+ /**
2
+ * Spanish Templates
3
+ *
4
+ * Contains all arc42 section templates in Spanish.
5
+ * Based on the official arc42 Spanish template from vendor/arc42-template/ES/.
6
+ *
7
+ * @module templates/locales/es/templates
8
+ */
9
+ /**
10
+ * Get the Spanish template for a specific section
11
+ */
12
+ export function getTemplate(section) {
13
+ const templates = {
14
+ '01_introduction_and_goals': getIntroductionAndGoalsTemplate,
15
+ '02_architecture_constraints': getArchitectureConstraintsTemplate,
16
+ '03_context_and_scope': getContextAndScopeTemplate,
17
+ '04_solution_strategy': getSolutionStrategyTemplate,
18
+ '05_building_block_view': getBuildingBlockViewTemplate,
19
+ '06_runtime_view': getRuntimeViewTemplate,
20
+ '07_deployment_view': getDeploymentViewTemplate,
21
+ '08_concepts': getConceptsTemplate,
22
+ '09_architecture_decisions': getArchitectureDecisionsTemplate,
23
+ '10_quality_requirements': getQualityRequirementsTemplate,
24
+ '11_technical_risks': getTechnicalRisksTemplate,
25
+ '12_glossary': getGlossaryTemplate
26
+ };
27
+ return templates[section]();
28
+ }
29
+ function getIntroductionAndGoalsTemplate() {
30
+ return `# 1. Introducción y Metas
31
+
32
+ ## Vista de Requerimientos
33
+
34
+ **Propósito**: Describe los requerimientos relevantes y las directrices que los arquitectos de software y el equipo de desarrollo deben considerar.
35
+
36
+ ### Requerimientos Esenciales
37
+
38
+ <!-- Liste los 3-5 requerimientos funcionales principales -->
39
+
40
+ | ID | Requerimiento | Prioridad |
41
+ |----|---------------|-----------|
42
+ | REQ-1 | [Descripción breve] | Alta |
43
+ | REQ-2 | [Descripción breve] | Media |
44
+
45
+ ### Características
46
+
47
+ <!-- Características esenciales del sistema -->
48
+
49
+ - Característica 1: [Descripción]
50
+ - Característica 2: [Descripción]
51
+
52
+ ## Metas de Calidad
53
+
54
+ **Propósito**: Las tres a cinco metas de calidad principales para la arquitectura, cuyo cumplimiento es de la mayor importancia para las principales partes interesadas.
55
+
56
+ <!-- Basado en ISO 25010, priorice cualidades como: -->
57
+ <!-- Rendimiento, Seguridad, Fiabilidad, Mantenibilidad, Usabilidad, etc. -->
58
+
59
+ | Prioridad | Meta de Calidad | Motivación |
60
+ |-----------|-----------------|------------|
61
+ | 1 | [ej. Rendimiento] | [Por qué es crítico] |
62
+ | 2 | [ej. Seguridad] | [Por qué es crítico] |
63
+ | 3 | [ej. Mantenibilidad] | [Por qué es crítico] |
64
+
65
+ ## Partes Interesadas (Stakeholders)
66
+
67
+ **Propósito**: Vista detallada de las partes interesadas del sistema.
68
+
69
+ | Rol/Nombre | Contacto | Expectativas |
70
+ |------------|----------|--------------|
71
+ | Product Owner | [Nombre/Email] | [Expectativas respecto a la arquitectura] |
72
+ | Equipo de Desarrollo | [Nombre del equipo] | [Qué necesitan saber] |
73
+ | Operaciones | [Equipo/Persona] | [Aspectos de despliegue y operación] |
74
+ | Usuarios Finales | [Tipo] | [Expectativas de experiencia de usuario] |
75
+
76
+ ## Criterios de Éxito
77
+
78
+ <!-- ¿Qué define el éxito de este sistema? -->
79
+
80
+ - [ ] Criterio 1
81
+ - [ ] Criterio 2
82
+ - [ ] Criterio 3
83
+ `;
84
+ }
85
+ function getArchitectureConstraintsTemplate() {
86
+ return `# 2. Restricciones de la Arquitectura
87
+
88
+ ## Restricciones Técnicas
89
+
90
+ **Restricciones de Hardware**
91
+
92
+ | Restricción | Contexto/Motivación |
93
+ |-------------|---------------------|
94
+ | [ej. Plataforma en la nube] | [Por qué existe esta restricción] |
95
+
96
+ **Restricciones de Software/Tecnología**
97
+
98
+ | Restricción | Contexto/Motivación |
99
+ |-------------|---------------------|
100
+ | [ej. Java 17+ requerido] | [Razón de la restricción] |
101
+ | [ej. PostgreSQL requerido] | [Por qué fue elegido] |
102
+
103
+ **Directrices de Programación**
104
+
105
+ - Lenguaje de programación: [Lenguaje]
106
+ - Framework: [Framework y versión]
107
+ - Bibliotecas: [Bibliotecas obligatorias o prohibidas]
108
+
109
+ ## Restricciones Organizacionales
110
+
111
+ **Organización y Estructura**
112
+
113
+ | Restricción | Contexto/Motivación |
114
+ |-------------|---------------------|
115
+ | [ej. Estructura del equipo] | [Cómo afecta la arquitectura] |
116
+ | [ej. Metodología ágil] | [Impacto en el proceso de desarrollo] |
117
+
118
+ **Recursos**
119
+
120
+ - Presupuesto: [Restricciones presupuestarias]
121
+ - Tiempo: [Restricciones de cronograma]
122
+ - Equipo: [Tamaño y habilidades del equipo]
123
+
124
+ ## Convenciones
125
+
126
+ **Convenciones de Arquitectura y Diseño**
127
+
128
+ - [ej. Patrón de arquitectura de microservicios]
129
+ - [ej. Diseño de API RESTful]
130
+ - [ej. Diseño dirigido por dominio (DDD)]
131
+
132
+ **Convenciones de Codificación**
133
+
134
+ - Estilo de código: [Enlace a guía de estilo]
135
+ - Documentación: [Estándares de documentación]
136
+ - Pruebas: [Requisitos de pruebas]
137
+
138
+ **Requisitos de Cumplimiento**
139
+
140
+ - [ej. Cumplimiento GDPR]
141
+ - [ej. Regulaciones específicas de la industria]
142
+ - [ej. Estándares de accesibilidad]
143
+ `;
144
+ }
145
+ function getContextAndScopeTemplate() {
146
+ return `# 3. Alcance y Contexto del Sistema
147
+
148
+ ## Contexto de Negocio
149
+
150
+ **Propósito**: Muestra el entorno de negocio del sistema y las principales dependencias externas.
151
+
152
+ ### Diagrama de Contexto
153
+
154
+ \`\`\`
155
+ [Cree un diagrama mostrando su sistema y sistemas/usuarios externos]
156
+ Puede usar:
157
+ - Diagramas Mermaid
158
+ - PlantUML
159
+ - Arte ASCII
160
+ - O referenciar una imagen en /images/
161
+ \`\`\`
162
+
163
+ ### Interfaces Externas
164
+
165
+ | Sistema Externo | Interfaz | Propósito |
166
+ |-----------------|----------|-----------|
167
+ | [Sistema externo 1] | [API/Protocolo] | [Qué datos/funciones se intercambian] |
168
+ | [Tipo de usuario 1] | [UI/API] | [Cómo interactúan los usuarios] |
169
+
170
+ ### Procesos de Negocio Soportados
171
+
172
+ <!-- ¿Qué procesos de negocio soporta este sistema? -->
173
+
174
+ 1. **Proceso 1**: [Descripción]
175
+ - Actores: [Quién está involucrado]
176
+ - Flujo: [Flujo de alto nivel]
177
+
178
+ 2. **Proceso 2**: [Descripción]
179
+
180
+ ## Contexto Técnico
181
+
182
+ **Propósito**: Muestra las interfaces técnicas y canales entre el sistema y su entorno.
183
+
184
+ ### Interfaces Técnicas
185
+
186
+ | Interfaz | Tecnología | Protocolo | Formato |
187
+ |----------|------------|-----------|---------|
188
+ | [API 1] | [API REST] | [HTTPS] | [JSON] |
189
+ | [Base de datos] | [PostgreSQL] | [TCP/IP] | [SQL] |
190
+
191
+ ### Canales y Transmisión
192
+
193
+ | Canal | Tecnología | Descripción |
194
+ |-------|------------|-------------|
195
+ | [Cola de mensajes] | [RabbitMQ] | [Comunicación asíncrona entre servicios] |
196
+
197
+ ### Mapeo: Negocio a Técnico
198
+
199
+ | Contexto de Negocio | Realización Técnica |
200
+ |---------------------|---------------------|
201
+ | [Interfaz de usuario] | [React SPA sobre HTTPS] |
202
+ | [Sistema externo A] | [API REST sobre HTTPS] |
203
+ `;
204
+ }
205
+ function getSolutionStrategyTemplate() {
206
+ return `# 4. Estrategia de Solución
207
+
208
+ **Propósito**: Resume las decisiones fundamentales y estrategias de solución que dan forma a la arquitectura del sistema.
209
+
210
+ ## Decisiones Clave de Solución
211
+
212
+ ### Patrones de Arquitectura
213
+
214
+ | Patrón | Motivación | Consecuencias |
215
+ |--------|------------|---------------|
216
+ | [ej. Microservicios] | [Por qué se eligió este patrón] | [Beneficios y compromisos] |
217
+
218
+ ### Decisiones Tecnológicas
219
+
220
+ | Componente | Tecnología | Razón |
221
+ |------------|------------|-------|
222
+ | Backend | [ej. Node.js] | [Por qué fue elegido] |
223
+ | Frontend | [ej. React] | [Razones] |
224
+ | Base de datos | [ej. PostgreSQL] | [Razones] |
225
+
226
+ ### Descomposición de Alto Nivel
227
+
228
+ <!-- ¿Cómo está estructurado el sistema en el nivel más alto? -->
229
+
230
+ \`\`\`
231
+ [Diagrama de componentes de alto nivel]
232
+ \`\`\`
233
+
234
+ Descripción:
235
+ - Componente 1: [Propósito y responsabilidad]
236
+ - Componente 2: [Propósito y responsabilidad]
237
+
238
+ ## Logro de Metas de Calidad
239
+
240
+ ### Mapeo: Metas de Calidad a Enfoques de Solución
241
+
242
+ | Meta de Calidad | Enfoque de Solución |
243
+ |-----------------|---------------------|
244
+ | [Rendimiento] | [Estrategia de caché, procesamiento asíncrono, CDN] |
245
+ | [Seguridad] | [Autenticación, autorización, encriptación] |
246
+ | [Escalabilidad] | [Escalamiento horizontal, balanceo de carga] |
247
+
248
+ ### Decisiones Clave de Diseño
249
+
250
+ 1. **Decisión 1**: [ej. Arquitectura dirigida por eventos]
251
+ - Razón: [Por qué este enfoque]
252
+ - Impacto: [Cómo ayuda a lograr las metas de calidad]
253
+
254
+ 2. **Decisión 2**: [Descripción]
255
+ - Razón: [Justificación]
256
+ - Impacto: [Impacto en las metas de calidad]
257
+
258
+ ## Estrategia de Desarrollo
259
+
260
+ - Enfoque de desarrollo: [Ágil, Scrum, etc.]
261
+ - Estrategia de despliegue: [CI/CD, Blue-Green, etc.]
262
+ - Estrategia de pruebas: [Unitarias, Integración, E2E]
263
+ `;
264
+ }
265
+ function getBuildingBlockViewTemplate() {
266
+ return `# 5. Vista de Bloques
267
+
268
+ **Propósito**: Descomposición estática del sistema en bloques de construcción y sus relaciones.
269
+
270
+ ## Nivel 1: Contexto del Sistema
271
+
272
+ ### Caja Blanca: Sistema General
273
+
274
+ **Propósito**: [Qué hace el sistema]
275
+
276
+ \`\`\`
277
+ [Diagrama de componentes con los principales bloques de construcción]
278
+ \`\`\`
279
+
280
+ **Bloques de Construcción Contenidos**:
281
+
282
+ | Componente | Responsabilidad |
283
+ |------------|-----------------|
284
+ | [Componente 1] | [Qué hace] |
285
+ | [Componente 2] | [Qué hace] |
286
+
287
+ **Interfaces Importantes**:
288
+
289
+ | Interfaz | Descripción |
290
+ |----------|-------------|
291
+ | [API 1] | [Propósito y protocolo] |
292
+
293
+ ## Nivel 2: Detalles de Componentes
294
+
295
+ ### Componente 1 (Caja Blanca)
296
+
297
+ **Propósito**: [Propósito detallado]
298
+
299
+ **Interfaces**:
300
+ - Entrada: [Qué recibe]
301
+ - Salida: [Qué produce]
302
+
303
+ **Estructura Interna**:
304
+
305
+ \`\`\`
306
+ [Diagrama de módulos/clases internas]
307
+ \`\`\`
308
+
309
+ **Elementos Contenidos**:
310
+
311
+ | Elemento | Responsabilidad |
312
+ |----------|-----------------|
313
+ | [Módulo A] | [Propósito] |
314
+ | [Módulo B] | [Propósito] |
315
+
316
+ ### Componente 2 (Caja Blanca)
317
+
318
+ [Estructura similar]
319
+
320
+ ## Nivel 3: Vistas de Detalle
321
+
322
+ <!-- Solo incluir Nivel 3 para componentes que necesitan detalle adicional -->
323
+
324
+ ### Detalles del Módulo A
325
+
326
+ [Diagramas detallados de clases, estructura de paquetes, etc.]
327
+ `;
328
+ }
329
+ function getRuntimeViewTemplate() {
330
+ return `# 6. Vista de Ejecución
331
+
332
+ **Propósito**: Muestra el comportamiento e interacción de los bloques de construcción en tiempo de ejecución.
333
+
334
+ ## Escenarios Importantes
335
+
336
+ ### Escenario 1: [Nombre, ej. "Inicio de Sesión de Usuario"]
337
+
338
+ **Descripción**: [Qué sucede en este escenario]
339
+
340
+ **Diagrama de Secuencia**:
341
+
342
+ \`\`\`mermaid
343
+ sequenceDiagram
344
+ participant Usuario
345
+ participant Frontend
346
+ participant API
347
+ participant BaseDeDatos
348
+
349
+ Usuario->>Frontend: Ingresar credenciales
350
+ Frontend->>API: POST /login
351
+ API->>BaseDeDatos: Validar credenciales
352
+ BaseDeDatos-->>API: Datos del usuario
353
+ API-->>Frontend: Token JWT
354
+ Frontend-->>Usuario: Inicio de sesión exitoso
355
+ \`\`\`
356
+
357
+ **Pasos**:
358
+
359
+ 1. El usuario ingresa sus credenciales
360
+ 2. El frontend envía la solicitud de inicio de sesión
361
+ 3. La API valida con la base de datos
362
+ 4. Se genera y retorna el token
363
+ 5. El usuario está autenticado
364
+
365
+ ### Escenario 2: [Nombre]
366
+
367
+ [Estructura similar]
368
+
369
+ ## Flujo de Datos
370
+
371
+ ### Flujo 1: [Nombre]
372
+
373
+ **Propósito**: [Qué datos fluyen hacia dónde]
374
+
375
+ **Diagrama**:
376
+
377
+ \`\`\`
378
+ [Diagrama de flujo de datos]
379
+ \`\`\`
380
+
381
+ **Descripción**:
382
+ - Paso 1: [Qué sucede]
383
+ - Paso 2: [Qué sucede]
384
+
385
+ ## Máquinas de Estado
386
+
387
+ ### Máquina de Estado para [Entidad]
388
+
389
+ **Estados**:
390
+ - Estado 1: [Descripción]
391
+ - Estado 2: [Descripción]
392
+
393
+ **Transiciones**:
394
+
395
+ | Desde | Evento | Hacia | Acción |
396
+ |-------|--------|-------|--------|
397
+ | [Estado 1] | [Evento] | [Estado 2] | [Qué sucede] |
398
+ `;
399
+ }
400
+ function getDeploymentViewTemplate() {
401
+ return `# 7. Vista de Despliegue
402
+
403
+ **Propósito**: Describe la infraestructura técnica y cómo se distribuye el software.
404
+
405
+ ## Visión General de Infraestructura
406
+
407
+ ### Diagrama de Despliegue
408
+
409
+ \`\`\`
410
+ [Diagrama con servidores, contenedores, redes]
411
+ \`\`\`
412
+
413
+ ## Entornos
414
+
415
+ ### Entorno de Producción
416
+
417
+ **Infraestructura**:
418
+
419
+ | Componente | Tecnología | Configuración |
420
+ |------------|------------|---------------|
421
+ | [Servidor de aplicaciones] | [AWS ECS] | [Especificaciones] |
422
+ | [Base de datos] | [RDS PostgreSQL] | [Especificaciones] |
423
+ | [Caché] | [Redis] | [Especificaciones] |
424
+
425
+ **Red**:
426
+ - VPC: [Configuración]
427
+ - Subredes: [Configuración público/privado]
428
+ - Grupos de Seguridad: [Reglas]
429
+
430
+ ### Entorno de Staging
431
+
432
+ [Estructura similar]
433
+
434
+ ### Entorno de Desarrollo
435
+
436
+ [Estructura similar]
437
+
438
+ ## Estrategia de Despliegue
439
+
440
+ ### Pipeline CI/CD
441
+
442
+ 1. **Build**: [Qué sucede]
443
+ 2. **Pruebas**: [Pruebas automatizadas]
444
+ 3. **Despliegue**: [Proceso de despliegue]
445
+
446
+ ### Estrategia de Rollback
447
+
448
+ [Cómo se revierten los despliegues]
449
+
450
+ ## Estrategia de Escalamiento
451
+
452
+ ### Escalamiento Horizontal
453
+
454
+ | Componente | Disparador de Escalamiento | Máx. Instancias |
455
+ |------------|---------------------------|-----------------|
456
+ | [Servidor API] | [CPU > 70%] | [10] |
457
+
458
+ ### Escalamiento Vertical
459
+
460
+ [Cuándo y cómo escalar verticalmente]
461
+
462
+ ## Monitoreo y Operaciones
463
+
464
+ ### Health Checks
465
+
466
+ | Componente | Verificación | Umbral |
467
+ |------------|--------------|--------|
468
+ | [API] | [Endpoint /health] | [Tiempo de respuesta < 1s] |
469
+
470
+ ### Logging
471
+
472
+ - Agregación de logs: [ELK, CloudWatch, etc.]
473
+ - Retención de logs: [Política]
474
+
475
+ ### Métricas
476
+
477
+ - Métricas clave: [CPU, Memoria, Tasa de solicitudes]
478
+ - Alertas: [Condiciones de alerta]
479
+ `;
480
+ }
481
+ function getConceptsTemplate() {
482
+ return `# 8. Conceptos Transversales
483
+
484
+ **Propósito**: Regulaciones y soluciones generales que son relevantes en múltiples partes del sistema.
485
+
486
+ ## Modelos de Dominio
487
+
488
+ ### Conceptos Centrales del Dominio
489
+
490
+ \`\`\`
491
+ [Diagrama de modelo de dominio o diagrama de clases]
492
+ \`\`\`
493
+
494
+ **Entidades Clave**:
495
+
496
+ | Entidad | Responsabilidad | Relaciones |
497
+ |---------|-----------------|------------|
498
+ | [Entidad 1] | [Propósito] | [Entidades relacionadas] |
499
+
500
+ ## Seguridad
501
+
502
+ ### Autenticación
503
+
504
+ - Método: [JWT, OAuth2, etc.]
505
+ - Implementación: [Cómo funciona]
506
+
507
+ ### Autorización
508
+
509
+ - Modelo: [RBAC, ABAC, etc.]
510
+ - Roles: [Lista de roles y permisos]
511
+
512
+ ### Protección de Datos
513
+
514
+ - Encriptación en reposo: [Cómo]
515
+ - Encriptación en tránsito: [Versión TLS]
516
+ - Manejo de datos sensibles: [Enfoque]
517
+
518
+ ## Manejo de Errores
519
+
520
+ ### Categorías de Errores
521
+
522
+ | Categoría | Estrategia de Manejo |
523
+ |-----------|---------------------|
524
+ | [Errores de validación] | [Retornar 400 con detalles] |
525
+ | [Errores del sistema] | [Registrar y retornar 500] |
526
+
527
+ ### Formato de Respuesta de Error
528
+
529
+ \`\`\`json
530
+ {
531
+ "error": {
532
+ "code": "CODIGO_ERROR",
533
+ "message": "Mensaje legible",
534
+ "details": {}
535
+ }
536
+ }
537
+ \`\`\`
538
+
539
+ ## Logging y Monitoreo
540
+
541
+ ### Estrategia de Logging
542
+
543
+ - Niveles de log: [DEBUG, INFO, WARN, ERROR]
544
+ - Logging estructurado: [Formato JSON]
545
+ - IDs de correlación: [Para trazabilidad de solicitudes]
546
+
547
+ ### Monitoreo
548
+
549
+ - APM: [Herramienta de monitoreo de rendimiento de aplicaciones]
550
+ - Métricas: [Métricas clave de negocio y técnicas]
551
+
552
+ ## Gestión de Configuración
553
+
554
+ ### Fuentes de Configuración
555
+
556
+ 1. Variables de entorno
557
+ 2. Archivos de configuración
558
+ 3. Gestión de secretos: [Vault, AWS Secrets Manager]
559
+
560
+ ### Configuración por Entorno
561
+
562
+ | Configuración | Dev | Staging | Prod |
563
+ |---------------|-----|---------|------|
564
+ | [Nivel de log] | [DEBUG] | [INFO] | [WARN] |
565
+
566
+ ## Estrategia de Pruebas
567
+
568
+ ### Niveles de Pruebas
569
+
570
+ | Nivel | Cobertura | Herramientas |
571
+ |-------|-----------|--------------|
572
+ | Pruebas unitarias | [Objetivo %] | [Framework] |
573
+ | Pruebas de integración | [Alcance] | [Herramientas] |
574
+ | Pruebas E2E | [Flujos clave] | [Herramientas] |
575
+
576
+ ### Gestión de Datos de Prueba
577
+
578
+ [Cómo se crean y gestionan los datos de prueba]
579
+
580
+ ## Conceptos de Desarrollo
581
+
582
+ ### Organización del Código
583
+
584
+ - Estructura de paquetes: [Enfoque]
585
+ - Convenciones de nomenclatura: [Estándares]
586
+
587
+ ### Build y Gestión de Dependencias
588
+
589
+ - Herramienta de build: [Maven, Gradle, npm, etc.]
590
+ - Gestión de dependencias: [Estrategia]
591
+
592
+ ## Conceptos de Operación
593
+
594
+ ### Backup y Recuperación
595
+
596
+ - Frecuencia de backup: [Diario, por hora, etc.]
597
+ - Retención: [Política]
598
+ - Procedimiento de recuperación: [Pasos]
599
+
600
+ ### Recuperación ante Desastres
601
+
602
+ - RTO: [Objetivo de tiempo de recuperación]
603
+ - RPO: [Objetivo de punto de recuperación]
604
+ - Estrategia DR: [Enfoque]
605
+ `;
606
+ }
607
+ function getArchitectureDecisionsTemplate() {
608
+ return `# 9. Decisiones de Diseño
609
+
610
+ **Propósito**: Documenta decisiones arquitectónicas importantes, costosas, críticas o riesgosas incluyendo su justificación.
611
+
612
+ ## Formato ADR
613
+
614
+ Cada decisión sigue esta estructura:
615
+ - **Contexto**: ¿Cuál es el problema que estamos abordando?
616
+ - **Decisión**: Qué decidimos hacer
617
+ - **Consecuencias**: Qué se vuelve más fácil o más difícil
618
+
619
+ ## Registro de Decisiones
620
+
621
+ ### ADR-001: [Título de la Decisión]
622
+
623
+ **Fecha**: [AAAA-MM-DD]
624
+ **Estado**: [Propuesta | Aceptada | Obsoleta | Reemplazada]
625
+ **Decisores**: [Nombres]
626
+
627
+ **Contexto**:
628
+
629
+ [Describe las fuerzas en juego, técnicas, políticas, sociales y específicas del proyecto. Es probable que estas fuerzas estén en tensión y deben ser identificadas como tales.]
630
+
631
+ **Decisión**:
632
+
633
+ [Describe nuestra respuesta a estas fuerzas. Aquí tomamos nuestra decisión.]
634
+
635
+ **Consecuencias**:
636
+
637
+ Positivas:
638
+ - [Beneficio 1]
639
+ - [Beneficio 2]
640
+
641
+ Negativas:
642
+ - [Compromiso 1]
643
+ - [Compromiso 2]
644
+
645
+ Riesgos:
646
+ - [Riesgo 1 y mitigación]
647
+
648
+ ### ADR-002: [Otra Decisión]
649
+
650
+ [Estructura similar]
651
+
652
+ ## Categorías de Decisiones
653
+
654
+ ### Decisiones Estructurales
655
+
656
+ | Decisión | Justificación | Fecha |
657
+ |----------|---------------|-------|
658
+ | [Microservicios vs Monolito] | [Por qué se eligió] | [Fecha] |
659
+
660
+ ### Decisiones Tecnológicas
661
+
662
+ | Componente | Tecnología | Alternativas Consideradas | Por qué se Eligió |
663
+ |------------|------------|--------------------------|-------------------|
664
+ | [Backend] | [Node.js] | [Python, Java] | [Razones] |
665
+
666
+ ### Decisiones de Proceso
667
+
668
+ | Decisión | Impacto | Fecha |
669
+ |----------|---------|-------|
670
+ | [Metodología ágil] | [Cómo afecta la arquitectura] | [Fecha] |
671
+
672
+ ## Decisiones Obsoletas
673
+
674
+ | Decisión | Fecha de Obsolescencia | Razón | Reemplazada Por |
675
+ |----------|------------------------|-------|-----------------|
676
+ | [Decisión antigua] | [Fecha] | [Por qué obsoleta] | [ADR-XXX] |
677
+ `;
678
+ }
679
+ function getQualityRequirementsTemplate() {
680
+ return `# 10. Requerimientos de Calidad
681
+
682
+ **Propósito**: Define los requerimientos de calidad con escenarios concretos.
683
+
684
+ ## Árbol de Calidad
685
+
686
+ ### Metas de Calidad de Alto Nivel
687
+
688
+ \`\`\`
689
+ Calidad
690
+ ├── Rendimiento
691
+ │ ├── Tiempo de Respuesta
692
+ │ └── Throughput
693
+ ├── Seguridad
694
+ │ ├── Autenticación
695
+ │ └── Protección de Datos
696
+ ├── Fiabilidad
697
+ │ ├── Disponibilidad
698
+ │ └── Tolerancia a Fallos
699
+ └── Mantenibilidad
700
+ ├── Testeabilidad
701
+ └── Modificabilidad
702
+ \`\`\`
703
+
704
+ ## Escenarios de Calidad
705
+
706
+ ### Escenarios de Rendimiento
707
+
708
+ **Escenario 1: Tiempo de Respuesta en Carga Normal**
709
+
710
+ | Aspecto | Descripción |
711
+ |---------|-------------|
712
+ | Escenario | Usuario consulta datos bajo carga normal |
713
+ | Fuente | Usuario final |
714
+ | Estímulo | Solicitud HTTP a la API |
715
+ | Entorno | Operación normal, 100 usuarios concurrentes |
716
+ | Respuesta | El sistema retorna datos |
717
+ | Medida | Tiempo de respuesta percentil 95 < 200ms |
718
+
719
+ **Escenario 2: Manejo de Carga Pico**
720
+
721
+ | Aspecto | Descripción |
722
+ |---------|-------------|
723
+ | Escenario | Sistema bajo carga pico |
724
+ | Fuente | Múltiples usuarios |
725
+ | Estímulo | 1000 solicitudes concurrentes |
726
+ | Entorno | Horas pico |
727
+ | Respuesta | El sistema procesa todas las solicitudes |
728
+ | Medida | Ninguna solicitud falla, tiempo de respuesta < 1s |
729
+
730
+ ### Escenarios de Seguridad
731
+
732
+ **Escenario 3: Intento de Acceso No Autorizado**
733
+
734
+ | Aspecto | Descripción |
735
+ |---------|-------------|
736
+ | Escenario | Usuario no autorizado intenta acceder a recurso protegido |
737
+ | Fuente | Atacante externo |
738
+ | Estímulo | Solicitud HTTP sin token válido |
739
+ | Entorno | Operación normal |
740
+ | Respuesta | El sistema deniega el acceso |
741
+ | Medida | Retorna 401, registra el intento, no se exponen datos |
742
+
743
+ ### Escenarios de Fiabilidad
744
+
745
+ **Escenario 4: Recuperación de Fallo de Servicio**
746
+
747
+ | Aspecto | Descripción |
748
+ |---------|-------------|
749
+ | Escenario | La conexión a la base de datos falla |
750
+ | Fuente | Fallo de infraestructura |
751
+ | Estímulo | La base de datos no está disponible |
752
+ | Entorno | Operación normal |
753
+ | Respuesta | El sistema continúa funcionando con datos en caché |
754
+ | Medida | Degradación del servicio < 5%, recuperación < 30s |
755
+
756
+ ### Escenarios de Mantenibilidad
757
+
758
+ **Escenario 5: Agregar Nueva Funcionalidad**
759
+
760
+ | Aspecto | Descripción |
761
+ |---------|-------------|
762
+ | Escenario | Desarrollador agrega nuevo endpoint de API |
763
+ | Fuente | Equipo de desarrollo |
764
+ | Estímulo | Nuevo requerimiento |
765
+ | Entorno | Desarrollo |
766
+ | Respuesta | La funcionalidad se agrega |
767
+ | Medida | < 2 días, < 5 archivos modificados, las pruebas pasan |
768
+
769
+ ## Priorización de Requerimientos de Calidad
770
+
771
+ | Atributo de Calidad | Prioridad | Objetivo |
772
+ |---------------------|-----------|----------|
773
+ | Disponibilidad | Alta | 99.9% uptime |
774
+ | Tiempo de Respuesta | Alta | < 200ms (p95) |
775
+ | Seguridad | Crítica | Cero brechas de datos |
776
+ | Mantenibilidad | Media | Cobertura de pruebas > 80% |
777
+ | Usabilidad | Media | Éxito en tareas de usuario > 95% |
778
+ `;
779
+ }
780
+ function getTechnicalRisksTemplate() {
781
+ return `# 11. Riesgos y Deuda Técnica
782
+
783
+ **Propósito**: Documenta problemas conocidos, riesgos y deuda técnica.
784
+
785
+ ## Riesgos
786
+
787
+ ### Matriz de Evaluación de Riesgos
788
+
789
+ | Riesgo | Probabilidad | Impacto | Severidad | Estado |
790
+ |--------|--------------|---------|-----------|--------|
791
+ | [Riesgo 1] | [Alta/Media/Baja] | [Alto/Medio/Bajo] | [Crítica/Alta/Media/Baja] | [Abierto/Mitigado] |
792
+
793
+ ### Riesgos Detallados
794
+
795
+ **Riesgo 1: [Título del Riesgo]**
796
+
797
+ - **Descripción**: [Cuál es el riesgo]
798
+ - **Probabilidad**: [Alta/Media/Baja]
799
+ - **Impacto**: [Alto/Medio/Bajo - y qué sucede]
800
+ - **Mitigación**: [Qué estamos haciendo al respecto]
801
+ - **Plan de Contingencia**: [Plan si el riesgo ocurre]
802
+ - **Responsable**: [Quién es responsable]
803
+ - **Estado**: [Abierto/En mitigación/Cerrado]
804
+
805
+ **Riesgo 2: [Título]**
806
+
807
+ [Estructura similar]
808
+
809
+ ## Deuda Técnica
810
+
811
+ ### Entradas de Deuda
812
+
813
+ | Entrada | Tipo | Impacto | Esfuerzo | Prioridad |
814
+ |---------|------|---------|----------|-----------|
815
+ | [Deuda 1] | [Código/Arquitectura/Pruebas] | [Alto/Medio/Bajo] | [Días] | [1-5] |
816
+
817
+ ### Entradas de Deuda Detalladas
818
+
819
+ **Deuda 1: [Título]**
820
+
821
+ - **Descripción**: [Qué necesita ser arreglado]
822
+ - **Por qué existe**: [Cómo sucedió]
823
+ - **Impacto**: [Qué problemas causa]
824
+ - **Solución Propuesta**: [Cómo arreglarlo]
825
+ - **Estimación de Esfuerzo**: [Tiempo requerido]
826
+ - **Prioridad**: [Cuándo deberíamos arreglarlo]
827
+
828
+ ### Plan de Reducción de Deuda
829
+
830
+ | Trimestre | Deuda a Abordar | Impacto Esperado |
831
+ |-----------|-----------------|------------------|
832
+ | Q1 2024 | [Entradas 1, 2] | [Mejora en X] |
833
+
834
+ ## Problemas Conocidos
835
+
836
+ ### Problemas Abiertos
837
+
838
+ | Problema | Severidad | Solución Alternativa | Fecha Objetivo de Corrección |
839
+ |----------|-----------|---------------------|------------------------------|
840
+ | [Problema 1] | [Alta/Media/Baja] | [Si existe] | [Fecha] |
841
+
842
+ ### Limitaciones
843
+
844
+ | Limitación | Impacto | Justificación | Planes Futuros |
845
+ |------------|---------|---------------|----------------|
846
+ | [Limitación 1] | [Efecto] | [Por qué existe] | [Cuándo/Si se abordará] |
847
+
848
+ ## Vulnerabilidades de Seguridad
849
+
850
+ ### Vulnerabilidades Conocidas
851
+
852
+ | CVE | Componente | Severidad | Estado | Mitigación |
853
+ |-----|------------|-----------|--------|------------|
854
+ | [CVE-ID] | [Biblioteca] | [Crítica/Alta/Media] | [Abierta/Corregida] | [Acciones tomadas] |
855
+
856
+ ## Problemas de Rendimiento
857
+
858
+ | Problema | Impacto | Solución Alternativa | Plan de Resolución |
859
+ |----------|---------|---------------------|-------------------|
860
+ | [Problema] | [Efecto en usuarios] | [Solución temporal] | [Solución permanente] |
861
+ `;
862
+ }
863
+ function getGlossaryTemplate() {
864
+ return `# 12. Glosario
865
+
866
+ **Propósito**: Define los términos técnicos y de dominio más importantes para asegurar una terminología uniforme.
867
+
868
+ ## Términos de Dominio
869
+
870
+ | Término | Definición |
871
+ |---------|------------|
872
+ | [Término de dominio 1] | [Definición clara y precisa] |
873
+ | [Término de dominio 2] | [Definición] |
874
+
875
+ ## Términos Técnicos
876
+
877
+ | Término | Definición | Sinónimos |
878
+ |---------|------------|-----------|
879
+ | [Término técnico 1] | [Definición] | [Nombres alternativos] |
880
+ | [Término técnico 2] | [Definición] | [Nombres alternativos] |
881
+
882
+ ## Abreviaturas y Acrónimos
883
+
884
+ | Abreviatura | Nombre Completo | Contexto |
885
+ |-------------|-----------------|----------|
886
+ | API | Application Programming Interface | [Cuándo/dónde se usa] |
887
+ | SLA | Service Level Agreement | [Contexto] |
888
+ | JWT | JSON Web Token | [Uso] |
889
+
890
+ ## Conceptos de Negocio
891
+
892
+ | Concepto | Descripción | Términos Relacionados |
893
+ |----------|-------------|----------------------|
894
+ | [Concepto 1] | [Explicación detallada] | [Conceptos relacionados] |
895
+
896
+ ## Términos Específicos del Sistema
897
+
898
+ | Término | Definición | Ejemplo |
899
+ |---------|------------|---------|
900
+ | [Término del sistema 1] | [Qué significa en este sistema] | [Ejemplo de uso] |
901
+
902
+ ## Términos Obsoletos
903
+
904
+ | Término Antiguo | Reemplazado Por | Razón |
905
+ |-----------------|-----------------|-------|
906
+ | [Término antiguo] | [Término nuevo] | [Por qué cambió] |
907
+
908
+ ---
909
+
910
+ **Nota**: Mantenga este glosario actualizado a medida que surjan nuevos términos. Enlace a esta sección desde otras partes de la documentación cuando se utilicen estos términos.
911
+ `;
912
+ }
913
+ /**
914
+ * Get the Spanish workflow guide
915
+ */
916
+ export function getWorkflowGuide() {
917
+ return `# Guía de Flujo de Trabajo para Documentación de Arquitectura arc42
918
+
919
+ ## Visión General
920
+
921
+ Esta guía le ayuda a documentar su arquitectura de software utilizando la plantilla arc42. La plantilla arc42 es una plantilla práctica y comprobada para la documentación de arquitecturas de software y sistemas.
922
+
923
+ ## Idiomas Disponibles
924
+
925
+ Este servidor MCP arc42 soporta múltiples idiomas para la documentación:
926
+
927
+ | Código | Idioma | Nombre Nativo |
928
+ |--------|--------|---------------|
929
+ | EN | Inglés | English |
930
+ | DE | Alemán | Deutsch |
931
+ | CZ | Checo | Čeština |
932
+ | ES | Español | Español |
933
+ | FR | Francés | Français |
934
+ | IT | Italiano | Italiano |
935
+ | NL | Neerlandés | Nederlands |
936
+ | PT | Portugués | Português |
937
+ | RU | Ruso | Русский |
938
+ | UKR | Ucraniano | Українська |
939
+ | ZH | Chino | 中文 |
940
+
941
+ ## Primeros Pasos
942
+
943
+ ### Paso 1: Inicializar el Espacio de Trabajo
944
+
945
+ Use la herramienta \`arc42-init\` para crear su espacio de trabajo de documentación:
946
+
947
+ \`\`\`
948
+ arc42-init(projectName: "Mi Proyecto", language: "ES")
949
+ \`\`\`
950
+
951
+ Puede especificar un idioma diferente usando el código de idioma ISO.
952
+
953
+ ### Paso 2: Verificar el Estado
954
+
955
+ Use \`arc42-status\` para ver el estado actual de su documentación:
956
+
957
+ \`\`\`
958
+ arc42-status()
959
+ \`\`\`
960
+
961
+ ### Paso 3: Generar Plantillas de Secciones
962
+
963
+ Use \`generate-template\` para obtener plantillas detalladas para cada sección:
964
+
965
+ \`\`\`
966
+ generate-template(section: "01_introduction_and_goals", language: "ES")
967
+ \`\`\`
968
+
969
+ ## Las 12 Secciones de arc42
970
+
971
+ 1. **Introducción y Metas** - ¡Comience aquí! Defina qué está construyendo y por qué.
972
+ 2. **Restricciones de la Arquitectura** - ¿Qué NO puede hacer?
973
+ 3. **Alcance y Contexto del Sistema** - ¿Qué está dentro y qué está fuera?
974
+ 4. **Estrategia de Solución** - Enfoque de alto nivel para resolver el problema.
975
+ 5. **Vista de Bloques** - Estructura estática de su sistema.
976
+ 6. **Vista de Ejecución** - Comportamiento dinámico y escenarios.
977
+ 7. **Vista de Despliegue** - ¿Cómo se despliega y opera?
978
+ 8. **Conceptos Transversales** - Patrones utilizados en todo el sistema.
979
+ 9. **Decisiones de Diseño** - Decisiones importantes y su justificación.
980
+ 10. **Requerimientos de Calidad** - Escenarios concretos de calidad.
981
+ 11. **Riesgos y Deuda Técnica** - ¿Qué podría salir mal?
982
+ 12. **Glosario** - Defina sus términos.
983
+
984
+ ## Mejores Prácticas
985
+
986
+ 1. **Comience con la Sección 1** - Entender las metas es fundamental
987
+ 2. **Manténgalo breve** - arc42 es pragmático, no burocrático
988
+ 3. **Use diagramas** - Una imagen vale más que mil palabras
989
+ 4. **Documente las decisiones** - Su yo futuro se lo agradecerá
990
+ 5. **Itere** - La documentación de arquitectura nunca está "terminada"
991
+
992
+ ## Herramientas Disponibles
993
+
994
+ - \`arc42-init\` - Inicializar espacio de trabajo de documentación
995
+ - \`arc42-status\` - Verificar estado de documentación
996
+ - \`generate-template\` - Generar plantillas de secciones
997
+ - \`update-section\` - Actualizar contenido de secciones
998
+ - \`get-section\` - Leer contenido de secciones
999
+ - \`arc42-workflow-guide\` - Mostrar esta guía
1000
+
1001
+ ## Recursos
1002
+
1003
+ - [Sitio web de arc42](https://arc42.org/)
1004
+ - [Documentación de arc42](https://docs.arc42.org/)
1005
+ - [Ejemplos de arc42](https://arc42.org/examples)
1006
+ `;
1007
+ }
1008
+ /**
1009
+ * Get the Spanish README content
1010
+ */
1011
+ export function getReadmeContent(projectName) {
1012
+ const name = projectName || 'Proyecto';
1013
+ return `# ${name} - Documentación de Arquitectura
1014
+
1015
+ Este directorio contiene la documentación de arquitectura para ${name}, basada en la plantilla arc42.
1016
+
1017
+ ## Estructura
1018
+
1019
+ - \`sections/\` - Archivos markdown de secciones individuales (12 secciones)
1020
+ - \`images/\` - Diagramas e imágenes
1021
+ - \`arc42-documentation.md\` - Documentación principal combinada
1022
+ - \`config.yaml\` - Configuración
1023
+
1024
+ ## Las 12 Secciones de arc42
1025
+
1026
+ 1. **Introducción y Metas** - Requerimientos, metas de calidad, partes interesadas
1027
+ 2. **Restricciones de la Arquitectura** - Restricciones técnicas y organizacionales
1028
+ 3. **Alcance y Contexto del Sistema** - Contexto de negocio y técnico
1029
+ 4. **Estrategia de Solución** - Decisiones y estrategias fundamentales
1030
+ 5. **Vista de Bloques** - Descomposición estática
1031
+ 6. **Vista de Ejecución** - Comportamiento dinámico
1032
+ 7. **Vista de Despliegue** - Infraestructura y despliegue
1033
+ 8. **Conceptos Transversales** - Regulaciones y enfoques generales
1034
+ 9. **Decisiones de Diseño** - Decisiones importantes (ADRs)
1035
+ 10. **Requerimientos de Calidad** - Árbol de calidad y escenarios
1036
+ 11. **Riesgos y Deuda Técnica** - Problemas conocidos y riesgos
1037
+ 12. **Glosario** - Términos importantes
1038
+
1039
+ ## Primeros Pasos
1040
+
1041
+ 1. Comience con la Sección 1: Introducción y Metas
1042
+ 2. Trabaje las secciones de forma iterativa
1043
+ 3. Use diagramas para ilustrar conceptos
1044
+ 4. Enfóquese en las decisiones, no en los detalles de implementación
1045
+
1046
+ ## Generar Documentación
1047
+
1048
+ Use las herramientas MCP para:
1049
+ - Verificar estado: \`arc42-status\`
1050
+ - Generar plantillas: \`generate-template\`
1051
+ - Actualizar secciones: \`update-section\`
1052
+
1053
+ ## Recursos
1054
+
1055
+ - [Sitio web de arc42](https://arc42.org/)
1056
+ - [Documentación de arc42](https://docs.arc42.org/)
1057
+ - [Ejemplos de arc42](https://arc42.org/examples)
1058
+ `;
1059
+ }
1060
+ //# sourceMappingURL=templates.js.map