@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
+ * English Templates
3
+ *
4
+ * Contains all arc42 section templates in English.
5
+ * Extracted from the original templates/index.ts for multi-language support.
6
+ *
7
+ * @module templates/locales/en/templates
8
+ */
9
+ /**
10
+ * Get the English 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. Introduction and Goals
31
+
32
+ ## Requirements Overview
33
+
34
+ **Purpose**: Describe the relevant requirements and driving forces that architects and development teams must consider.
35
+
36
+ ### Key Requirements
37
+
38
+ <!-- List the top 3-5 functional requirements -->
39
+
40
+ | ID | Requirement | Priority |
41
+ |----|-------------|----------|
42
+ | REQ-1 | [Brief description] | High |
43
+ | REQ-2 | [Brief description] | Medium |
44
+
45
+ ### Features
46
+
47
+ <!-- Essential features of the system -->
48
+
49
+ - Feature 1: [Description]
50
+ - Feature 2: [Description]
51
+
52
+ ## Quality Goals
53
+
54
+ **Purpose**: Define the top 3-5 quality goals that are most important for stakeholders.
55
+
56
+ <!-- Based on ISO 25010, prioritize qualities like: -->
57
+ <!-- Performance, Security, Reliability, Maintainability, Usability, etc. -->
58
+
59
+ | Priority | Quality Goal | Motivation |
60
+ |----------|--------------|------------|
61
+ | 1 | [e.g., Performance] | [Why this is critical] |
62
+ | 2 | [e.g., Security] | [Why this is critical] |
63
+ | 3 | [e.g., Maintainability] | [Why this is critical] |
64
+
65
+ ## Stakeholders
66
+
67
+ **Purpose**: Identify everyone who should know about the architecture.
68
+
69
+ | Role/Name | Contact | Expectations |
70
+ |-----------|---------|--------------|
71
+ | Product Owner | [Name/Email] | [What they expect from the architecture] |
72
+ | Development Team | [Team name] | [What they need to know] |
73
+ | Operations | [Team/Person] | [Deployment and operations concerns] |
74
+ | End Users | [Type] | [User experience expectations] |
75
+
76
+ ## Success Criteria
77
+
78
+ <!-- What defines success for this system? -->
79
+
80
+ - [ ] Criterion 1
81
+ - [ ] Criterion 2
82
+ - [ ] Criterion 3
83
+ `;
84
+ }
85
+ function getArchitectureConstraintsTemplate() {
86
+ return `# 2. Architecture Constraints
87
+
88
+ ## Technical Constraints
89
+
90
+ **Hardware Constraints**
91
+
92
+ | Constraint | Background/Motivation |
93
+ |------------|----------------------|
94
+ | [e.g., Cloud platform] | [Why this constraint exists] |
95
+
96
+ **Software/Technology Constraints**
97
+
98
+ | Constraint | Background/Motivation |
99
+ |------------|----------------------|
100
+ | [e.g., Must use Java 17+] | [Reason for constraint] |
101
+ | [e.g., Must use PostgreSQL] | [Why this was chosen] |
102
+
103
+ **Programming Constraints**
104
+
105
+ - Programming language: [Language]
106
+ - Framework: [Framework and version]
107
+ - Libraries: [Must-use or forbidden libraries]
108
+
109
+ ## Organizational Constraints
110
+
111
+ **Organization and Structure**
112
+
113
+ | Constraint | Background/Motivation |
114
+ |------------|----------------------|
115
+ | [e.g., Team structure] | [How this affects architecture] |
116
+ | [e.g., Agile methodology] | [Development process impact] |
117
+
118
+ **Resources**
119
+
120
+ - Budget: [Budget constraints]
121
+ - Time: [Timeline constraints]
122
+ - Team: [Team size and skills]
123
+
124
+ ## Conventions
125
+
126
+ **Architecture and Design Conventions**
127
+
128
+ - [e.g., Microservices architecture pattern]
129
+ - [e.g., RESTful API design]
130
+ - [e.g., Domain-Driven Design]
131
+
132
+ **Coding Conventions**
133
+
134
+ - Code style: [Link to style guide]
135
+ - Documentation: [Documentation standards]
136
+ - Testing: [Testing requirements]
137
+
138
+ **Compliance Requirements**
139
+
140
+ - [e.g., GDPR compliance]
141
+ - [e.g., Industry-specific regulations]
142
+ - [e.g., Accessibility standards]
143
+ `;
144
+ }
145
+ function getContextAndScopeTemplate() {
146
+ return `# 3. Context and Scope
147
+
148
+ ## Business Context
149
+
150
+ **Purpose**: Show the system's business environment and major external dependencies.
151
+
152
+ ### Context Diagram
153
+
154
+ \`\`\`
155
+ [Create a diagram showing your system and external systems/users it interacts with]
156
+ You can use:
157
+ - Mermaid diagrams
158
+ - PlantUML
159
+ - ASCII art
160
+ - Or reference an image in /images/
161
+ \`\`\`
162
+
163
+ ### External Interfaces
164
+
165
+ | External Entity | Interface | Purpose |
166
+ |----------------|-----------|---------|
167
+ | [External System 1] | [API/Protocol] | [What data/functionality is exchanged] |
168
+ | [User Type 1] | [UI/API] | [How users interact] |
169
+
170
+ ### Business Processes Supported
171
+
172
+ <!-- What business processes does this system support? -->
173
+
174
+ 1. **Process 1**: [Description]
175
+ - Actors: [Who is involved]
176
+ - Flow: [High-level flow]
177
+
178
+ 2. **Process 2**: [Description]
179
+
180
+ ## Technical Context
181
+
182
+ **Purpose**: Show technical interfaces and channels between system and environment.
183
+
184
+ ### Technical Interfaces
185
+
186
+ | Interface | Technology | Protocol | Format |
187
+ |-----------|------------|----------|--------|
188
+ | [API 1] | [REST API] | [HTTPS] | [JSON] |
189
+ | [Database] | [PostgreSQL] | [TCP/IP] | [SQL] |
190
+
191
+ ### Channels and Transmission
192
+
193
+ | Channel | Technology | Description |
194
+ |---------|------------|-------------|
195
+ | [Message Queue] | [RabbitMQ] | [Async communication between services] |
196
+
197
+ ### Mapping: Business to Technical
198
+
199
+ | Business Context | Technical Realization |
200
+ |------------------|----------------------|
201
+ | [User Interface] | [React SPA via HTTPS] |
202
+ | [External System A] | [REST API over HTTPS] |
203
+ `;
204
+ }
205
+ function getSolutionStrategyTemplate() {
206
+ return `# 4. Solution Strategy
207
+
208
+ **Purpose**: Summarize fundamental decisions and solution strategies that shape the system's architecture.
209
+
210
+ ## Key Solution Decisions
211
+
212
+ ### Architectural Patterns
213
+
214
+ | Pattern | Motivation | Consequences |
215
+ |---------|------------|--------------|
216
+ | [e.g., Microservices] | [Why this pattern was chosen] | [Benefits and trade-offs] |
217
+
218
+ ### Technology Choices
219
+
220
+ | Component | Technology | Reason |
221
+ |-----------|------------|--------|
222
+ | Backend | [e.g., Node.js] | [Why this was chosen] |
223
+ | Frontend | [e.g., React] | [Reasons] |
224
+ | Database | [e.g., PostgreSQL] | [Reasons] |
225
+
226
+ ### Top-level Decomposition
227
+
228
+ <!-- How is the system structured at the highest level? -->
229
+
230
+ \`\`\`
231
+ [High-level component diagram]
232
+ \`\`\`
233
+
234
+ Description:
235
+ - Component 1: [Purpose and responsibility]
236
+ - Component 2: [Purpose and responsibility]
237
+
238
+ ## Achieving Quality Goals
239
+
240
+ ### Mapping: Quality Goals to Solution Approaches
241
+
242
+ | Quality Goal | Solution Approach |
243
+ |--------------|-------------------|
244
+ | [Performance] | [Caching strategy, async processing, CDN] |
245
+ | [Security] | [Authentication, authorization, encryption] |
246
+ | [Scalability] | [Horizontal scaling, load balancing] |
247
+
248
+ ### Key Design Decisions
249
+
250
+ 1. **Decision 1**: [e.g., Event-driven architecture]
251
+ - Reason: [Why this approach]
252
+ - Impact: [How it helps achieve quality goals]
253
+
254
+ 2. **Decision 2**: [Description]
255
+ - Reason: [Rationale]
256
+ - Impact: [Effects on quality goals]
257
+
258
+ ## Development Strategy
259
+
260
+ - Development approach: [Agile, Scrum, etc.]
261
+ - Deployment strategy: [CI/CD, Blue-Green, etc.]
262
+ - Testing strategy: [Unit, Integration, E2E]
263
+ `;
264
+ }
265
+ function getBuildingBlockViewTemplate() {
266
+ return `# 5. Building Block View
267
+
268
+ **Purpose**: Static decomposition of the system into building blocks and their relationships.
269
+
270
+ ## Level 1: System Context
271
+
272
+ ### Whitebox: Overall System
273
+
274
+ **Purpose**: [What does the system do]
275
+
276
+ \`\`\`
277
+ [Component diagram showing main building blocks]
278
+ \`\`\`
279
+
280
+ **Contained Building Blocks**:
281
+
282
+ | Component | Responsibility |
283
+ |-----------|---------------|
284
+ | [Component 1] | [What it does] |
285
+ | [Component 2] | [What it does] |
286
+
287
+ **Important Interfaces**:
288
+
289
+ | Interface | Description |
290
+ |-----------|-------------|
291
+ | [API 1] | [Purpose and protocol] |
292
+
293
+ ## Level 2: Component Details
294
+
295
+ ### Component 1 (Whitebox)
296
+
297
+ **Purpose**: [Detailed purpose]
298
+
299
+ **Interfaces**:
300
+ - Input: [What it receives]
301
+ - Output: [What it produces]
302
+
303
+ **Internal Structure**:
304
+
305
+ \`\`\`
306
+ [Diagram of internal modules/classes]
307
+ \`\`\`
308
+
309
+ **Contained Elements**:
310
+
311
+ | Element | Responsibility |
312
+ |---------|---------------|
313
+ | [Module A] | [Purpose] |
314
+ | [Module B] | [Purpose] |
315
+
316
+ ### Component 2 (Whitebox)
317
+
318
+ [Similar structure]
319
+
320
+ ## Level 3: Detailed Views
321
+
322
+ <!-- Only include Level 3 for components that need additional detail -->
323
+
324
+ ### Module A Details
325
+
326
+ [Detailed class diagrams, package structure, etc.]
327
+ `;
328
+ }
329
+ function getRuntimeViewTemplate() {
330
+ return `# 6. Runtime View
331
+
332
+ **Purpose**: Show the behavior and interaction of building blocks at runtime.
333
+
334
+ ## Key Scenarios
335
+
336
+ ### Scenario 1: [Name, e.g., "User Login"]
337
+
338
+ **Description**: [What happens in this scenario]
339
+
340
+ **Sequence Diagram**:
341
+
342
+ \`\`\`mermaid
343
+ sequenceDiagram
344
+ participant User
345
+ participant Frontend
346
+ participant API
347
+ participant Database
348
+
349
+ User->>Frontend: Enter credentials
350
+ Frontend->>API: POST /login
351
+ API->>Database: Validate credentials
352
+ Database-->>API: User data
353
+ API-->>Frontend: JWT token
354
+ Frontend-->>User: Login successful
355
+ \`\`\`
356
+
357
+ **Steps**:
358
+
359
+ 1. User enters credentials
360
+ 2. Frontend sends login request
361
+ 3. API validates with database
362
+ 4. Token is generated and returned
363
+ 5. User is authenticated
364
+
365
+ ### Scenario 2: [Name]
366
+
367
+ [Similar structure]
368
+
369
+ ## Data Flow
370
+
371
+ ### Flow 1: [Name]
372
+
373
+ **Purpose**: [What data flows where]
374
+
375
+ **Diagram**:
376
+
377
+ \`\`\`
378
+ [Data flow diagram]
379
+ \`\`\`
380
+
381
+ **Description**:
382
+ - Step 1: [What happens]
383
+ - Step 2: [What happens]
384
+
385
+ ## State Machines
386
+
387
+ ### State Machine for [Entity]
388
+
389
+ **States**:
390
+ - State 1: [Description]
391
+ - State 2: [Description]
392
+
393
+ **Transitions**:
394
+
395
+ | From | Event | To | Action |
396
+ |------|-------|----|----|
397
+ | [State 1] | [Event] | [State 2] | [What happens] |
398
+ `;
399
+ }
400
+ function getDeploymentViewTemplate() {
401
+ return `# 7. Deployment View
402
+
403
+ **Purpose**: Describe the technical infrastructure and how software is deployed.
404
+
405
+ ## Infrastructure Overview
406
+
407
+ ### Deployment Diagram
408
+
409
+ \`\`\`
410
+ [Diagram showing servers, containers, networks]
411
+ \`\`\`
412
+
413
+ ## Environments
414
+
415
+ ### Production Environment
416
+
417
+ **Infrastructure**:
418
+
419
+ | Component | Technology | Configuration |
420
+ |-----------|------------|---------------|
421
+ | [Application Server] | [AWS ECS] | [Specs] |
422
+ | [Database] | [RDS PostgreSQL] | [Specs] |
423
+ | [Cache] | [Redis] | [Specs] |
424
+
425
+ **Network**:
426
+ - VPC: [Configuration]
427
+ - Subnets: [Public/Private setup]
428
+ - Security Groups: [Rules]
429
+
430
+ ### Staging Environment
431
+
432
+ [Similar structure]
433
+
434
+ ### Development Environment
435
+
436
+ [Similar structure]
437
+
438
+ ## Deployment Strategy
439
+
440
+ ### CI/CD Pipeline
441
+
442
+ 1. **Build**: [What happens]
443
+ 2. **Test**: [Automated tests]
444
+ 3. **Deploy**: [Deployment process]
445
+
446
+ ### Rollback Strategy
447
+
448
+ [How to rollback deployments]
449
+
450
+ ## Scaling Strategy
451
+
452
+ ### Horizontal Scaling
453
+
454
+ | Component | Scaling Trigger | Max Instances |
455
+ |-----------|----------------|---------------|
456
+ | [API Servers] | [CPU > 70%] | [10] |
457
+
458
+ ### Vertical Scaling
459
+
460
+ [When and how to scale vertically]
461
+
462
+ ## Monitoring and Operations
463
+
464
+ ### Health Checks
465
+
466
+ | Component | Check | Threshold |
467
+ |-----------|-------|-----------|
468
+ | [API] | [/health endpoint] | [Response time < 1s] |
469
+
470
+ ### Logging
471
+
472
+ - Log aggregation: [ELK, CloudWatch, etc.]
473
+ - Log retention: [Policy]
474
+
475
+ ### Metrics
476
+
477
+ - Key metrics: [CPU, Memory, Request rate]
478
+ - Alerting: [Alert conditions]
479
+ `;
480
+ }
481
+ function getConceptsTemplate() {
482
+ return `# 8. Cross-cutting Concepts
483
+
484
+ **Purpose**: Overall regulations and solution ideas relevant across multiple parts of the system.
485
+
486
+ ## Domain Models
487
+
488
+ ### Core Domain Concepts
489
+
490
+ \`\`\`
491
+ [Domain model diagram or class diagram]
492
+ \`\`\`
493
+
494
+ **Key Entities**:
495
+
496
+ | Entity | Responsibility | Relationships |
497
+ |--------|---------------|---------------|
498
+ | [Entity 1] | [Purpose] | [Related entities] |
499
+
500
+ ## Security
501
+
502
+ ### Authentication
503
+
504
+ - Method: [JWT, OAuth2, etc.]
505
+ - Implementation: [How it works]
506
+
507
+ ### Authorization
508
+
509
+ - Model: [RBAC, ABAC, etc.]
510
+ - Roles: [List of roles and permissions]
511
+
512
+ ### Data Protection
513
+
514
+ - Encryption at rest: [How]
515
+ - Encryption in transit: [TLS version]
516
+ - Sensitive data handling: [Approach]
517
+
518
+ ## Error Handling
519
+
520
+ ### Error Categories
521
+
522
+ | Category | Handling Strategy |
523
+ |----------|-------------------|
524
+ | [Validation errors] | [Return 400 with details] |
525
+ | [System errors] | [Log and return 500] |
526
+
527
+ ### Error Response Format
528
+
529
+ \`\`\`json
530
+ {
531
+ "error": {
532
+ "code": "ERROR_CODE",
533
+ "message": "Human-readable message",
534
+ "details": {}
535
+ }
536
+ }
537
+ \`\`\`
538
+
539
+ ## Logging and Monitoring
540
+
541
+ ### Logging Strategy
542
+
543
+ - Log levels: [DEBUG, INFO, WARN, ERROR]
544
+ - Structured logging: [JSON format]
545
+ - Correlation IDs: [For request tracing]
546
+
547
+ ### Monitoring
548
+
549
+ - APM: [Application Performance Monitoring tool]
550
+ - Metrics: [Key business and technical metrics]
551
+
552
+ ## Configuration Management
553
+
554
+ ### Configuration Sources
555
+
556
+ 1. Environment variables
557
+ 2. Configuration files
558
+ 3. Secret management: [Vault, AWS Secrets Manager]
559
+
560
+ ### Configuration by Environment
561
+
562
+ | Setting | Dev | Staging | Prod |
563
+ |---------|-----|---------|------|
564
+ | [Log level] | [DEBUG] | [INFO] | [WARN] |
565
+
566
+ ## Testing Strategy
567
+
568
+ ### Test Levels
569
+
570
+ | Level | Coverage | Tools |
571
+ |-------|----------|-------|
572
+ | Unit Tests | [Target %] | [Framework] |
573
+ | Integration Tests | [Scope] | [Tools] |
574
+ | E2E Tests | [Key flows] | [Tools] |
575
+
576
+ ### Test Data Management
577
+
578
+ [How test data is created and managed]
579
+
580
+ ## Development Concepts
581
+
582
+ ### Code Organization
583
+
584
+ - Package structure: [Approach]
585
+ - Naming conventions: [Standards]
586
+
587
+ ### Build and Dependency Management
588
+
589
+ - Build tool: [Maven, Gradle, npm, etc.]
590
+ - Dependency management: [Strategy]
591
+
592
+ ## Operational Concepts
593
+
594
+ ### Backup and Recovery
595
+
596
+ - Backup frequency: [Daily, hourly, etc.]
597
+ - Retention: [Policy]
598
+ - Recovery procedure: [Steps]
599
+
600
+ ### Disaster Recovery
601
+
602
+ - RTO: [Recovery Time Objective]
603
+ - RPO: [Recovery Point Objective]
604
+ - DR strategy: [Approach]
605
+ `;
606
+ }
607
+ function getArchitectureDecisionsTemplate() {
608
+ return `# 9. Architecture Decisions
609
+
610
+ **Purpose**: Document important, expensive, critical, or risky architecture decisions including rationale.
611
+
612
+ ## ADR Format
613
+
614
+ Each decision follows this structure:
615
+ - **Context**: What is the issue we're trying to address?
616
+ - **Decision**: What we decided to do
617
+ - **Consequences**: What becomes easier or harder as a result
618
+
619
+ ## Decision Log
620
+
621
+ ### ADR-001: [Decision Title]
622
+
623
+ **Date**: [YYYY-MM-DD]
624
+ **Status**: [Proposed | Accepted | Deprecated | Superseded]
625
+ **Deciders**: [Names]
626
+
627
+ **Context**:
628
+
629
+ [Describe the forces at play, technical, political, social, and local to the project. These forces are probably in tension and should be called out as such.]
630
+
631
+ **Decision**:
632
+
633
+ [Describe our response to these forces. This is where we make our decision.]
634
+
635
+ **Consequences**:
636
+
637
+ Positive:
638
+ - [Benefit 1]
639
+ - [Benefit 2]
640
+
641
+ Negative:
642
+ - [Trade-off 1]
643
+ - [Trade-off 2]
644
+
645
+ Risks:
646
+ - [Risk 1 and mitigation]
647
+
648
+ ### ADR-002: [Another Decision]
649
+
650
+ [Similar structure]
651
+
652
+ ## Decision Categories
653
+
654
+ ### Structural Decisions
655
+
656
+ | Decision | Rationale | Date |
657
+ |----------|-----------|------|
658
+ | [Microservices vs Monolith] | [Why chosen] | [Date] |
659
+
660
+ ### Technology Decisions
661
+
662
+ | Component | Technology | Alternative Considered | Why Chosen |
663
+ |-----------|------------|----------------------|-----------|
664
+ | [Backend] | [Node.js] | [Python, Java] | [Reasons] |
665
+
666
+ ### Process Decisions
667
+
668
+ | Decision | Impact | Date |
669
+ |----------|--------|------|
670
+ | [Agile methodology] | [How it affects architecture] | [Date] |
671
+
672
+ ## Deprecated Decisions
673
+
674
+ | Decision | Date Deprecated | Reason | Superseded By |
675
+ |----------|----------------|--------|---------------|
676
+ | [Old decision] | [Date] | [Why deprecated] | [ADR-XXX] |
677
+ `;
678
+ }
679
+ function getQualityRequirementsTemplate() {
680
+ return `# 10. Quality Requirements
681
+
682
+ **Purpose**: Define quality requirements with concrete scenarios.
683
+
684
+ ## Quality Tree
685
+
686
+ ### Top-level Quality Goals
687
+
688
+ \`\`\`
689
+ Quality
690
+ ├── Performance
691
+ │ ├── Response Time
692
+ │ └── Throughput
693
+ ├── Security
694
+ │ ├── Authentication
695
+ │ └── Data Protection
696
+ ├── Reliability
697
+ │ ├── Availability
698
+ │ └── Fault Tolerance
699
+ └── Maintainability
700
+ ├── Testability
701
+ └── Modifiability
702
+ \`\`\`
703
+
704
+ ## Quality Scenarios
705
+
706
+ ### Performance Scenarios
707
+
708
+ **Scenario 1: Normal Load Response Time**
709
+
710
+ | Aspect | Description |
711
+ |--------|-------------|
712
+ | Scenario | User requests data under normal load |
713
+ | Source | End user |
714
+ | Stimulus | HTTP request to API |
715
+ | Environment | Normal operation, 100 concurrent users |
716
+ | Response | System returns data |
717
+ | Measure | 95th percentile response time < 200ms |
718
+
719
+ **Scenario 2: Peak Load Handling**
720
+
721
+ | Aspect | Description |
722
+ |--------|-------------|
723
+ | Scenario | System under peak load |
724
+ | Source | Multiple users |
725
+ | Stimulus | 1000 concurrent requests |
726
+ | Environment | Peak hours |
727
+ | Response | System handles all requests |
728
+ | Measure | No request fails, response time < 1s |
729
+
730
+ ### Security Scenarios
731
+
732
+ **Scenario 3: Unauthorized Access Attempt**
733
+
734
+ | Aspect | Description |
735
+ |--------|-------------|
736
+ | Scenario | Unauthorized user tries to access protected resource |
737
+ | Source | External attacker |
738
+ | Stimulus | HTTP request without valid token |
739
+ | Environment | Normal operation |
740
+ | Response | System denies access |
741
+ | Measure | Returns 401, logs attempt, no data exposed |
742
+
743
+ ### Reliability Scenarios
744
+
745
+ **Scenario 4: Service Failure Recovery**
746
+
747
+ | Aspect | Description |
748
+ |--------|-------------|
749
+ | Scenario | Database connection fails |
750
+ | Source | Infrastructure failure |
751
+ | Stimulus | Database becomes unavailable |
752
+ | Environment | Normal operation |
753
+ | Response | System continues with cached data |
754
+ | Measure | Service degradation < 5%, recovery < 30s |
755
+
756
+ ### Maintainability Scenarios
757
+
758
+ **Scenario 5: Adding New Feature**
759
+
760
+ | Aspect | Description |
761
+ |--------|-------------|
762
+ | Scenario | Developer adds new API endpoint |
763
+ | Source | Development team |
764
+ | Stimulus | New requirement |
765
+ | Environment | Development |
766
+ | Response | Feature is added |
767
+ | Measure | < 2 days, < 5 files modified, tests pass |
768
+
769
+ ## Quality Requirements Prioritization
770
+
771
+ | Quality Attribute | Priority | Target Measure |
772
+ |-------------------|----------|----------------|
773
+ | Availability | High | 99.9% uptime |
774
+ | Response Time | High | < 200ms (p95) |
775
+ | Security | Critical | Zero data breaches |
776
+ | Maintainability | Medium | Test coverage > 80% |
777
+ | Usability | Medium | User task success > 95% |
778
+ `;
779
+ }
780
+ function getTechnicalRisksTemplate() {
781
+ return `# 11. Risks and Technical Debt
782
+
783
+ **Purpose**: Document known problems, risks, and technical debt.
784
+
785
+ ## Risks
786
+
787
+ ### Risk Assessment Matrix
788
+
789
+ | Risk | Probability | Impact | Severity | Status |
790
+ |------|------------|--------|----------|--------|
791
+ | [Risk 1] | [High/Med/Low] | [High/Med/Low] | [Critical/High/Med/Low] | [Open/Mitigated] |
792
+
793
+ ### Detailed Risks
794
+
795
+ **Risk 1: [Risk Title]**
796
+
797
+ - **Description**: [What is the risk]
798
+ - **Probability**: [High/Medium/Low]
799
+ - **Impact**: [High/Medium/Low - and what happens]
800
+ - **Mitigation**: [What we're doing about it]
801
+ - **Contingency**: [Plan if risk materializes]
802
+ - **Owner**: [Who is responsible]
803
+ - **Status**: [Open/Mitigating/Closed]
804
+
805
+ **Risk 2: [Title]**
806
+
807
+ [Similar structure]
808
+
809
+ ## Technical Debt
810
+
811
+ ### Debt Items
812
+
813
+ | Item | Type | Impact | Effort | Priority |
814
+ |------|------|--------|--------|----------|
815
+ | [Debt 1] | [Code/Architecture/Testing] | [High/Med/Low] | [Days] | [1-5] |
816
+
817
+ ### Detailed Debt Items
818
+
819
+ **Debt 1: [Title]**
820
+
821
+ - **Description**: [What needs to be fixed]
822
+ - **Why it exists**: [How did this happen]
823
+ - **Impact**: [What problems does it cause]
824
+ - **Proposed solution**: [How to fix it]
825
+ - **Effort estimate**: [Time needed]
826
+ - **Priority**: [When should we fix it]
827
+
828
+ ### Debt Repayment Plan
829
+
830
+ | Quarter | Debt Items to Address | Expected Impact |
831
+ |---------|----------------------|-----------------|
832
+ | Q1 2024 | [Items 1, 2] | [Improvement in X] |
833
+
834
+ ## Known Issues
835
+
836
+ ### Open Issues
837
+
838
+ | Issue | Severity | Workaround | Target Fix Date |
839
+ |-------|----------|------------|-----------------|
840
+ | [Issue 1] | [High/Med/Low] | [If any] | [Date] |
841
+
842
+ ### Limitations
843
+
844
+ | Limitation | Impact | Rationale | Future Plans |
845
+ |------------|--------|-----------|--------------|
846
+ | [Limit 1] | [Effect] | [Why it exists] | [When/if to address] |
847
+
848
+ ## Security Vulnerabilities
849
+
850
+ ### Known Vulnerabilities
851
+
852
+ | CVE | Component | Severity | Status | Mitigation |
853
+ |-----|-----------|----------|--------|------------|
854
+ | [CVE-ID] | [Library] | [Critical/High/Med] | [Open/Fixed] | [Actions taken] |
855
+
856
+ ## Performance Issues
857
+
858
+ | Issue | Impact | Workaround | Solution Plan |
859
+ |-------|--------|------------|---------------|
860
+ | [Issue] | [Effect on users] | [Temporary fix] | [Permanent solution] |
861
+ `;
862
+ }
863
+ function getGlossaryTemplate() {
864
+ return `# 12. Glossary
865
+
866
+ **Purpose**: Define important domain and technical terms to ensure consistent terminology.
867
+
868
+ ## Domain Terms
869
+
870
+ | Term | Definition |
871
+ |------|------------|
872
+ | [Domain Term 1] | [Clear, concise definition] |
873
+ | [Domain Term 2] | [Definition] |
874
+
875
+ ## Technical Terms
876
+
877
+ | Term | Definition | Synonyms |
878
+ |------|------------|----------|
879
+ | [Technical Term 1] | [Definition] | [Alternative names] |
880
+ | [Technical Term 2] | [Definition] | [Alternative names] |
881
+
882
+ ## Abbreviations and Acronyms
883
+
884
+ | Abbreviation | Full Name | Context |
885
+ |--------------|-----------|---------|
886
+ | API | Application Programming Interface | [When/where used] |
887
+ | SLA | Service Level Agreement | [Context] |
888
+ | JWT | JSON Web Token | [Usage] |
889
+
890
+ ## Business Concepts
891
+
892
+ | Concept | Description | Related Terms |
893
+ |---------|-------------|---------------|
894
+ | [Concept 1] | [Detailed explanation] | [Related concepts] |
895
+
896
+ ## System-Specific Terms
897
+
898
+ | Term | Definition | Example |
899
+ |------|------------|---------|
900
+ | [System Term 1] | [What it means in this system] | [Usage example] |
901
+
902
+ ## Deprecated Terms
903
+
904
+ | Old Term | Replaced By | Reason |
905
+ |----------|-------------|--------|
906
+ | [Old term] | [New term] | [Why changed] |
907
+
908
+ ---
909
+
910
+ **Note**: Keep this glossary updated as new terms emerge. Link to this section from other parts of the documentation when using these terms.
911
+ `;
912
+ }
913
+ /**
914
+ * Get the English workflow guide
915
+ */
916
+ export function getWorkflowGuide() {
917
+ return `# arc42 Architecture Documentation Workflow Guide
918
+
919
+ ## Overview
920
+
921
+ This guide helps you document your software architecture using the arc42 template. The arc42 template is a practical, proven template for documentation of software and system architectures.
922
+
923
+ ## Available Languages
924
+
925
+ This arc42 MCP Server supports multiple languages for documentation:
926
+
927
+ | Code | Language | Native Name |
928
+ |------|----------|-------------|
929
+ | EN | English | English |
930
+ | DE | German | Deutsch |
931
+ | CZ | Czech | Čeština |
932
+ | ES | Spanish | Español |
933
+ | FR | French | Français |
934
+ | IT | Italian | Italiano |
935
+ | NL | Dutch | Nederlands |
936
+ | PT | Portuguese | Português |
937
+ | RU | Russian | Русский |
938
+ | UKR | Ukrainian | Українська |
939
+ | ZH | Chinese | 中文 |
940
+
941
+ ## Getting Started
942
+
943
+ ### Step 1: Initialize Your Workspace
944
+
945
+ Use the \`arc42-init\` tool to create your documentation workspace:
946
+
947
+ \`\`\`
948
+ arc42-init(projectName: "My Project", language: "EN")
949
+ \`\`\`
950
+
951
+ You can specify a different language using the ISO language code.
952
+
953
+ ### Step 2: Check Status
954
+
955
+ Use \`arc42-status\` to see the current state of your documentation:
956
+
957
+ \`\`\`
958
+ arc42-status()
959
+ \`\`\`
960
+
961
+ ### Step 3: Generate Section Templates
962
+
963
+ Use \`generate-template\` to get detailed templates for each section:
964
+
965
+ \`\`\`
966
+ generate-template(section: "01_introduction_and_goals", language: "EN")
967
+ \`\`\`
968
+
969
+ ## The 12 arc42 Sections
970
+
971
+ 1. **Introduction and Goals** - Start here! Define what you're building and why.
972
+ 2. **Architecture Constraints** - What are you NOT allowed to do?
973
+ 3. **Context and Scope** - What's in and what's out?
974
+ 4. **Solution Strategy** - High-level approach to solving the problem.
975
+ 5. **Building Block View** - Static structure of your system.
976
+ 6. **Runtime View** - Dynamic behavior and scenarios.
977
+ 7. **Deployment View** - How is it deployed and operated?
978
+ 8. **Cross-cutting Concepts** - Patterns used across the system.
979
+ 9. **Architecture Decisions** - Important decisions and their rationale.
980
+ 10. **Quality Requirements** - Concrete quality scenarios.
981
+ 11. **Risks and Technical Debt** - What could go wrong?
982
+ 12. **Glossary** - Define your terms.
983
+
984
+ ## Best Practices
985
+
986
+ 1. **Start with Section 1** - Understanding goals is fundamental
987
+ 2. **Keep it concise** - arc42 is pragmatic, not bureaucratic
988
+ 3. **Use diagrams** - A picture is worth a thousand words
989
+ 4. **Document decisions** - Future you will thank present you
990
+ 5. **Iterate** - Architecture documentation is never "done"
991
+
992
+ ## Tools Available
993
+
994
+ - \`arc42-init\` - Initialize documentation workspace
995
+ - \`arc42-status\` - Check documentation status
996
+ - \`generate-template\` - Generate section templates
997
+ - \`update-section\` - Update section content
998
+ - \`get-section\` - Read section content
999
+ - \`arc42-workflow-guide\` - Show this guide
1000
+
1001
+ ## Resources
1002
+
1003
+ - [arc42 Website](https://arc42.org/)
1004
+ - [arc42 Documentation](https://docs.arc42.org/)
1005
+ - [arc42 Examples](https://arc42.org/examples)
1006
+ `;
1007
+ }
1008
+ /**
1009
+ * Get the English README content
1010
+ */
1011
+ export function getReadmeContent(projectName) {
1012
+ const name = projectName || 'Project';
1013
+ return `# ${name} - Architecture Documentation
1014
+
1015
+ This directory contains the architecture documentation for ${name}, following the arc42 template.
1016
+
1017
+ ## Structure
1018
+
1019
+ - \`sections/\` - Individual section markdown files (12 sections)
1020
+ - \`images/\` - Diagrams and images
1021
+ - \`arc42-documentation.md\` - Main combined documentation
1022
+ - \`config.yaml\` - Configuration
1023
+
1024
+ ## The 12 arc42 Sections
1025
+
1026
+ 1. **Introduction and Goals** - Requirements, quality goals, stakeholders
1027
+ 2. **Architecture Constraints** - Technical and organizational constraints
1028
+ 3. **Context and Scope** - Business and technical context
1029
+ 4. **Solution Strategy** - Fundamental decisions and strategies
1030
+ 5. **Building Block View** - Static decomposition
1031
+ 6. **Runtime View** - Dynamic behavior
1032
+ 7. **Deployment View** - Infrastructure and deployment
1033
+ 8. **Cross-cutting Concepts** - Overall regulations and approaches
1034
+ 9. **Architecture Decisions** - Important decisions (ADRs)
1035
+ 10. **Quality Requirements** - Quality tree and scenarios
1036
+ 11. **Risks and Technical Debt** - Known problems and risks
1037
+ 12. **Glossary** - Important terms
1038
+
1039
+ ## Getting Started
1040
+
1041
+ 1. Start with Section 1: Introduction and Goals
1042
+ 2. Work through sections iteratively
1043
+ 3. Use diagrams to illustrate concepts
1044
+ 4. Keep it focused on decisions, not implementation details
1045
+
1046
+ ## Generating Documentation
1047
+
1048
+ Use the MCP tools to:
1049
+ - Check status: \`arc42-status\`
1050
+ - Generate templates: \`generate-template\`
1051
+ - Update sections: \`update-section\`
1052
+
1053
+ ## Resources
1054
+
1055
+ - [arc42 Website](https://arc42.org/)
1056
+ - [arc42 Documentation](https://docs.arc42.org/)
1057
+ - [arc42 Examples](https://arc42.org/examples)
1058
+ `;
1059
+ }
1060
+ //# sourceMappingURL=templates.js.map