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