@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
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-init.js","sourceRoot":"","sources":["../../src/tools/arc42-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arc42-init.js","sourceRoot":"","sources":["../../src/tools/arc42-init.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
1
+ import { z } from 'zod';
2
2
  import { ToolContext, ToolResponse } from '../types.js';
3
- export declare const arc42StatusTool: Tool;
3
+ export declare const arc42StatusInputSchema: {
4
+ targetFolder: z.ZodOptional<z.ZodString>;
5
+ };
6
+ export declare const arc42StatusDescription = "Check the status of arc42 documentation.\n\nThis tool provides an overview of which sections have been created, their completion status, and overall progress. Use this tool to track documentation progress and identify which sections need attention.\n\nYou can optionally specify a targetFolder to check documentation status in a specific directory instead of the default workspace.";
4
7
  export declare function arc42StatusHandler(args: Record<string, unknown>, context: ToolContext): Promise<ToolResponse>;
5
8
  //# sourceMappingURL=arc42-status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-status.d.ts","sourceRoot":"","sources":["../../src/tools/arc42-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAA2E,MAAM,aAAa,CAAC;AAKjI,eAAO,MAAM,eAAe,EAAE,IAgB7B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAsGvB"}
1
+ {"version":3,"file":"arc42-status.d.ts","sourceRoot":"","sources":["../../src/tools/arc42-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAA2E,MAAM,aAAa,CAAC;AAWjI,eAAO,MAAM,sBAAsB;;CAElC,CAAC;AAEF,eAAO,MAAM,sBAAsB,kYAI+F,CAAC;AAEnI,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAqJvB"}
@@ -1,24 +1,18 @@
1
+ import { z } from 'zod';
1
2
  import { ARC42_SECTIONS, SECTION_METADATA, resolveWorkspaceRoot, getErrorMessage } from '../types.js';
2
- import { ARC42_REFERENCE } from '../templates/index.js';
3
+ import { ARC42_REFERENCE, templateProvider, getAvailableLanguages } from '../templates/index.js';
3
4
  import { existsSync, statSync, readFileSync } from 'fs';
4
5
  import { join } from 'path';
5
- export const arc42StatusTool = {
6
- name: 'arc42-status',
7
- description: `Check the status of arc42 documentation.
6
+ import { parse as parseYaml } from 'yaml';
7
+ // Zod schema as the SINGLE SOURCE OF TRUTH for tool input
8
+ export const arc42StatusInputSchema = {
9
+ targetFolder: z.string().optional().describe('Optional: Absolute path to the target folder containing arc42-docs. If not provided, uses the default workspace configured at server startup.')
10
+ };
11
+ export const arc42StatusDescription = `Check the status of arc42 documentation.
8
12
 
9
13
  This tool provides an overview of which sections have been created, their completion status, and overall progress. Use this tool to track documentation progress and identify which sections need attention.
10
14
 
11
- You can optionally specify a targetFolder to check documentation status in a specific directory instead of the default workspace.`,
12
- inputSchema: {
13
- type: 'object',
14
- properties: {
15
- targetFolder: {
16
- type: 'string',
17
- description: 'Optional: Absolute path to the target folder containing arc42-docs. If not provided, uses the default workspace configured at server startup.'
18
- }
19
- }
20
- }
21
- };
15
+ You can optionally specify a targetFolder to check documentation status in a specific directory instead of the default workspace.`;
22
16
  export async function arc42StatusHandler(args, context) {
23
17
  const targetFolder = args.targetFolder;
24
18
  // Resolve workspace root - use targetFolder if provided, otherwise use context default
@@ -31,10 +25,35 @@ export async function arc42StatusHandler(args, context) {
31
25
  }
32
26
  try {
33
27
  const sectionsDir = join(workspaceRoot, 'sections');
28
+ // Read language from config.yaml
29
+ let language = 'EN';
30
+ let projectName = '';
31
+ const configPath = join(workspaceRoot, 'config.yaml');
32
+ if (existsSync(configPath)) {
33
+ try {
34
+ const configContent = readFileSync(configPath, 'utf-8');
35
+ const config = parseYaml(configContent);
36
+ if (config?.language) {
37
+ language = String(config.language).toUpperCase();
38
+ }
39
+ if (config?.projectName) {
40
+ projectName = String(config.projectName);
41
+ }
42
+ }
43
+ catch {
44
+ // If config parsing fails, use default language
45
+ }
46
+ }
47
+ // Get language info for display
48
+ const availableLanguages = getAvailableLanguages();
49
+ const currentLanguageInfo = availableLanguages.find(lang => lang.code === language) || { code: 'EN', name: 'English', nativeName: 'English' };
34
50
  const status = {
35
51
  projectPath,
36
52
  workspaceRoot,
53
+ projectName,
37
54
  initialized: true,
55
+ language: currentLanguageInfo,
56
+ availableLanguages,
38
57
  arc42TemplateReference: {
39
58
  version: ARC42_REFERENCE.version,
40
59
  date: ARC42_REFERENCE.date,
@@ -46,7 +65,9 @@ export async function arc42StatusHandler(args, context) {
46
65
  let lastModified;
47
66
  for (const section of ARC42_SECTIONS) {
48
67
  const sectionPath = join(sectionsDir, `${section}.md`);
49
- const metadata = SECTION_METADATA[section];
68
+ const standardMetadata = SECTION_METADATA[section];
69
+ // Get localized metadata
70
+ const localizedMetadata = templateProvider.getSectionMetadata(section, language);
50
71
  if (existsSync(sectionPath)) {
51
72
  const stats = statSync(sectionPath);
52
73
  const content = readFileSync(sectionPath, 'utf-8');
@@ -59,7 +80,11 @@ export async function arc42StatusHandler(args, context) {
59
80
  lastModified: stats.mtime.toISOString(),
60
81
  wordCount,
61
82
  completeness,
62
- metadata
83
+ metadata: {
84
+ ...standardMetadata,
85
+ title: localizedMetadata.title,
86
+ description: localizedMetadata.description
87
+ }
63
88
  };
64
89
  totalCompleteness += completeness;
65
90
  if (!lastModified || stats.mtime > lastModified) {
@@ -70,7 +95,11 @@ export async function arc42StatusHandler(args, context) {
70
95
  status.sections[section] = {
71
96
  exists: false,
72
97
  completeness: 0,
73
- metadata
98
+ metadata: {
99
+ ...standardMetadata,
100
+ title: localizedMetadata.title,
101
+ description: localizedMetadata.description
102
+ }
74
103
  };
75
104
  }
76
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-status.js","sourceRoot":"","sources":["../../src/tools/arc42-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arc42-status.js","sourceRoot":"","sources":["../../src/tools/arc42-status.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
1
+ import { z } from 'zod';
2
2
  import { ToolContext, ToolResponse } from '../types.js';
3
- export declare const arc42WorkflowGuideTool: Tool;
4
- export declare function arc42WorkflowGuideHandler(_args: Record<string, unknown>, context: ToolContext): Promise<ToolResponse>;
3
+ export declare const arc42WorkflowGuideInputSchema: {
4
+ language: z.ZodDefault<z.ZodOptional<z.ZodEnum<[string, ...string[]]>>>;
5
+ };
6
+ export declare const arc42WorkflowGuideDescription = "Get a comprehensive guide for arc42 architecture documentation workflow.\n\nThis tool provides detailed guidance on how to document software architecture using the arc42 template. It explains the 12 sections of arc42, recommended workflow, and best practices.\n\nUse this tool when:\n- Starting a new architecture documentation project\n- Needing guidance on what to document in each section\n- Looking for best practices in architecture documentation";
7
+ export declare function arc42WorkflowGuideHandler(args: Record<string, unknown>, context: ToolContext): Promise<ToolResponse>;
5
8
  //# sourceMappingURL=arc42-workflow-guide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-workflow-guide.d.ts","sourceRoot":"","sources":["../../src/tools/arc42-workflow-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,sBAAsB,EAAE,IAYpC,CAAC;AAEF,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAiBvB"}
1
+ {"version":3,"file":"arc42-workflow-guide.d.ts","sourceRoot":"","sources":["../../src/tools/arc42-workflow-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYxD,eAAO,MAAM,6BAA6B;;CAEzC,CAAC;AAEF,eAAO,MAAM,6BAA6B,wcAOiB,CAAC;AAE5D,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CA8CvB"}
@@ -1,23 +1,50 @@
1
- export const arc42WorkflowGuideTool = {
2
- name: 'arc42-workflow-guide',
3
- description: `Load the complete arc42 documentation workflow guide.
4
-
5
- This tool provides comprehensive instructions for creating architecture documentation following the arc42 template standard. Use this tool FIRST when starting architecture documentation to understand the complete workflow and all 12 sections.
6
-
7
- The arc42 template is a proven, practical, and pragmatic approach to architecture documentation used worldwide.`,
8
- inputSchema: {
9
- type: 'object',
10
- properties: {},
11
- additionalProperties: false
12
- }
1
+ import { z } from 'zod';
2
+ import { getWorkflowGuide, SUPPORTED_LANGUAGE_CODES, isLanguageCode, normalizeLanguageCode, getAvailableLanguages } from '../templates/index.js';
3
+ // Zod schema as the SINGLE SOURCE OF TRUTH for tool input
4
+ const languageValues = SUPPORTED_LANGUAGE_CODES;
5
+ export const arc42WorkflowGuideInputSchema = {
6
+ language: z.enum(languageValues).optional().default('EN').describe('Language code for the workflow guide. Supported: EN, DE, ES, FR, IT, NL, PT, RU, CZ, UKR, ZH. Defaults to EN.')
13
7
  };
14
- export async function arc42WorkflowGuideHandler(_args, context) {
15
- const guide = getArc42WorkflowGuide();
8
+ export const arc42WorkflowGuideDescription = `Get a comprehensive guide for arc42 architecture documentation workflow.
9
+
10
+ This tool provides detailed guidance on how to document software architecture using the arc42 template. It explains the 12 sections of arc42, recommended workflow, and best practices.
11
+
12
+ Use this tool when:
13
+ - Starting a new architecture documentation project
14
+ - Needing guidance on what to document in each section
15
+ - Looking for best practices in architecture documentation`;
16
+ export async function arc42WorkflowGuideHandler(args, context) {
17
+ const languageArg = args.language ?? 'EN';
18
+ // Validate and normalize language code
19
+ let language;
20
+ try {
21
+ const normalizedLanguage = normalizeLanguageCode(languageArg);
22
+ if (!isLanguageCode(normalizedLanguage)) {
23
+ return {
24
+ success: false,
25
+ message: `Unsupported language code: ${languageArg}. Supported languages: ${SUPPORTED_LANGUAGE_CODES.join(', ')}`
26
+ };
27
+ }
28
+ language = normalizedLanguage;
29
+ }
30
+ catch {
31
+ return {
32
+ success: false,
33
+ message: `Invalid language code: ${languageArg}. Supported languages: ${SUPPORTED_LANGUAGE_CODES.join(', ')}`
34
+ };
35
+ }
36
+ // Get the localized workflow guide
37
+ const guide = getWorkflowGuide(language);
38
+ // Get available languages for display
39
+ const availableLanguages = getAvailableLanguages();
40
+ const currentLanguageInfo = availableLanguages.find(lang => lang.code === language) || { code: 'EN', name: 'English', nativeName: 'English' };
16
41
  return {
17
42
  success: true,
18
- message: 'arc42 workflow guide loaded successfully',
43
+ message: `arc42 workflow guide loaded successfully (language: ${language})`,
19
44
  data: {
20
45
  guide,
46
+ language: currentLanguageInfo,
47
+ availableLanguages,
21
48
  workspaceRoot: context.workspaceRoot
22
49
  },
23
50
  nextSteps: [
@@ -28,265 +55,4 @@ export async function arc42WorkflowGuideHandler(_args, context) {
28
55
  ]
29
56
  };
30
57
  }
31
- function getArc42WorkflowGuide() {
32
- return `# arc42 Architecture Documentation Workflow
33
-
34
- ## Overview
35
-
36
- arc42 is a template for architecture communication and documentation. It provides a clear structure for documenting software and system architectures, making them understandable for all stakeholders.
37
-
38
- **Website**: https://arc42.org/
39
- **Documentation**: https://docs.arc42.org/
40
-
41
- ## The 12 arc42 Sections
42
-
43
- arc42 consists of 12 sections that cover all aspects of architecture documentation:
44
-
45
- ### 1. Introduction and Goals
46
- **Purpose**: Define requirements overview, quality goals, and stakeholders
47
- - What are the key requirements?
48
- - What are the top 3-5 quality goals?
49
- - Who are the stakeholders?
50
-
51
- ### 2. Architecture Constraints
52
- **Purpose**: Document technical and organizational constraints
53
- - Technology constraints (must-use technologies, frameworks)
54
- - Organizational constraints (team structure, deadlines, budget)
55
- - Conventions (coding standards, architecture patterns)
56
-
57
- ### 3. Context and Scope
58
- **Purpose**: Define system boundaries and external interfaces
59
- - Business context: What business processes does the system support?
60
- - Technical context: What are the external systems and interfaces?
61
- - Who uses the system and how?
62
-
63
- ### 4. Solution Strategy
64
- **Purpose**: Summarize fundamental solution decisions and strategies
65
- - What are the key architectural patterns?
66
- - How do you achieve the quality goals?
67
- - What are the main technology decisions?
68
-
69
- ### 5. Building Block View
70
- **Purpose**: Static decomposition - how is the system structured?
71
- - Level 1: Overall system structure (black box view)
72
- - Level 2: Decomposition of major building blocks
73
- - Level 3: Detailed structure where needed
74
- - Use diagrams (component diagrams, package diagrams)
75
-
76
- ### 6. Runtime View
77
- **Purpose**: Dynamic behavior - how do components interact?
78
- - Key scenarios and use cases
79
- - Sequence diagrams, activity diagrams
80
- - Important runtime behaviors
81
- - Data flows and message exchanges
82
-
83
- ### 7. Deployment View
84
- **Purpose**: Infrastructure and deployment
85
- - Hardware architecture
86
- - Deployment environments (dev, staging, production)
87
- - Network topology
88
- - Infrastructure components
89
-
90
- ### 8. Cross-cutting Concepts
91
- **Purpose**: Overall, principal regulations and solution approaches
92
- - Domain models
93
- - Security concepts
94
- - Error handling
95
- - Logging and monitoring
96
- - Configuration management
97
- - Testing strategies
98
-
99
- ### 9. Architecture Decisions
100
- **Purpose**: Important, expensive, critical, or risky architecture decisions
101
- - Use Architecture Decision Records (ADRs)
102
- - Document: Context, Decision, Consequences
103
- - Focus on decisions that have significant impact
104
- - Explain the rationale
105
-
106
- ### 10. Quality Requirements
107
- **Purpose**: Quality tree and quality scenarios
108
- - Quality tree: hierarchy of quality requirements
109
- - Quality scenarios: concrete scenarios testing quality attributes
110
- - Based on ISO 25010 quality model
111
- - Map to quality goals from section 1
112
-
113
- ### 11. Risks and Technical Debt
114
- **Purpose**: Known problems, risks, and technical debt
115
- - What could go wrong?
116
- - Known technical debt
117
- - Risk mitigation strategies
118
- - Priority and severity
119
-
120
- ### 12. Glossary
121
- **Purpose**: Important domain and technical terms
122
- - Domain terminology
123
- - Technical terms
124
- - Abbreviations and acronyms
125
- - Ensure consistent terminology
126
-
127
- ## Workflow
128
-
129
- ### Phase 1: Initialize Project
130
- 1. Use \`arc42-init\` tool to create the workspace structure
131
- 2. This creates the \`arc42-docs\` directory with:
132
- - All 12 section templates
133
- - Configuration files
134
- - README with instructions
135
-
136
- ### Phase 2: Document Iteratively
137
- You don't need to complete all sections in order! Common approaches:
138
-
139
- **Top-Down Approach**:
140
- 1. Section 1: Introduction and Goals (always start here!)
141
- 2. Section 3: Context and Scope
142
- 3. Section 4: Solution Strategy
143
- 4. Section 5: Building Block View
144
- 5. Fill in other sections as needed
145
-
146
- **Use-Case Driven**:
147
- 1. Section 1: Introduction and Goals
148
- 2. Section 6: Runtime View (key scenarios)
149
- 3. Section 5: Building Block View
150
- 4. Other sections as needed
151
-
152
- **Risk-Driven**:
153
- 1. Section 1: Introduction and Goals
154
- 2. Section 11: Risks and Technical Debt
155
- 3. Sections addressing the identified risks
156
-
157
- ### Phase 3: Review and Refine
158
- - Regular reviews with stakeholders
159
- - Keep it up-to-date as architecture evolves
160
- - Focus on decisions and rationale, not implementation details
161
- - Use diagrams effectively
162
-
163
- ### Phase 4: Generate and Publish
164
- - Generate HTML, PDF, or other formats
165
- - Publish to wiki or documentation site
166
- - Version control your architecture documentation
167
-
168
- ## Best Practices
169
-
170
- ### 1. Keep It Simple
171
- - Focus on decisions, not details
172
- - Use diagrams liberally
173
- - Write for your stakeholders
174
-
175
- ### 2. Iterative Approach
176
- - Start with high-level views
177
- - Add detail where needed
178
- - Don't try to complete everything at once
179
-
180
- ### 3. Maintain Traceability
181
- - Link requirements to architecture decisions
182
- - Link quality goals to solution strategies
183
- - Reference specific sections when documenting decisions
184
-
185
- ### 4. Use Appropriate Detail Level
186
- - Management: Sections 1, 2, 3, 4, 10, 11
187
- - Developers: Sections 5, 6, 7, 8, 9
188
- - Operations: Sections 7, 8, 11
189
-
190
- ### 5. Keep It Current
191
- - Update when architecture changes
192
- - Review quarterly or after major changes
193
- - Use version control
194
-
195
- ## AI-Assisted Documentation Tips
196
-
197
- ### When Using This MCP Server:
198
- 1. **Start with context**: Always run \`arc42-workflow-guide\` first
199
- 2. **Initialize properly**: Use \`arc42-init\` to set up structure
200
- 3. **Work section by section**: Use \`generate-template\` to get section templates
201
- 4. **Update incrementally**: Use \`update-section\` to add content
202
- 5. **Check progress**: Use \`arc42-status\` regularly
203
-
204
- ### Prompting Tips:
205
- - "Generate section 1 focusing on quality goals for a microservices e-commerce system"
206
- - "Create section 5 building block view with component diagram for authentication service"
207
- - "Document ADR for choosing PostgreSQL over MongoDB in section 9"
208
- - "Generate quality scenarios for performance and security in section 10"
209
-
210
- ### What the AI Can Help With:
211
- ✅ Structure and templates
212
- ✅ Boilerplate content
213
- ✅ Diagrams (as text/PlantUML/Mermaid)
214
- ✅ Initial drafts
215
- ✅ Consistency checking
216
-
217
- ### What Requires Human Input:
218
- ⚠️ Specific business requirements
219
- ⚠️ Actual architecture decisions
220
- ⚠️ Stakeholder priorities
221
- ⚠️ Quality goal priorities
222
- ⚠️ Risk assessment
223
-
224
- ## Tools Available
225
-
226
- ### arc42-init
227
- Initialize arc42 documentation workspace
228
- - Creates directory structure
229
- - Generates all section templates
230
- - Sets up configuration
231
-
232
- ### arc42-status
233
- Check documentation status
234
- - Shows completion status for all sections
235
- - Identifies missing or incomplete sections
236
- - Provides overall progress
237
-
238
- ### generate-template
239
- Generate a template for a specific section
240
- - Gets the detailed template for any section
241
- - Includes help text and examples
242
- - Can be customized
243
-
244
- ### update-section
245
- Update content in a specific section
246
- - Add or modify content
247
- - Preserves structure
248
- - Validates against template
249
-
250
- ## File Structure
251
-
252
- \`\`\`
253
- project-root/
254
- └── arc42-docs/
255
- ├── README.md
256
- ├── arc42-template.md # Main combined document
257
- ├── config.yaml # Configuration
258
- └── sections/
259
- ├── 01_introduction_and_goals.md
260
- ├── 02_architecture_constraints.md
261
- ├── 03_context_and_scope.md
262
- ├── 04_solution_strategy.md
263
- ├── 05_building_block_view.md
264
- ├── 06_runtime_view.md
265
- ├── 07_deployment_view.md
266
- ├── 08_concepts.md
267
- ├── 09_architecture_decisions.md
268
- ├── 10_quality_requirements.md
269
- ├── 11_technical_risks.md
270
- └── 12_glossary.md
271
- \`\`\`
272
-
273
- ## References
274
-
275
- - **arc42**: https://arc42.org/
276
- - **arc42 Documentation**: https://docs.arc42.org/
277
- - **arc42 Examples**: https://arc42.org/examples
278
- - **FAQ**: https://faq.arc42.org/
279
- - **GitHub**: https://github.com/arc42
280
-
281
- ## Next Steps
282
-
283
- 1. Run \`arc42-init\` with your project name
284
- 2. Start with Section 1: Introduction and Goals
285
- 3. Work through sections based on your approach
286
- 4. Review and refine regularly
287
- 5. Generate final documentation
288
-
289
- Remember: arc42 is a communication tool. Focus on making architecture decisions transparent and understandable for all stakeholders!
290
- `;
291
- }
292
58
  //# sourceMappingURL=arc42-workflow-guide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-workflow-guide.js","sourceRoot":"","sources":["../../src/tools/arc42-workflow-guide.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAS;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE;;;;gHAIiG;IAC9G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAA8B,EAC9B,OAAoB;IAEpB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IAEtC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,0CAA0C;QACnD,IAAI,EAAE;YACJ,KAAK;YACL,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;QACD,SAAS,EAAE;YACT,iDAAiD;YACjD,yCAAyC;YACzC,oDAAoD;YACpD,sCAAsC;SACvC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkQR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"arc42-workflow-guide.js","sourceRoot":"","sources":["../../src/tools/arc42-workflow-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,0DAA0D;AAC1D,MAAM,cAAc,GAAG,wBAA4D,CAAC;AAEpF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,+GAA+G,CAAC;CACpL,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;2DAOc,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAA6B,EAC7B,OAAoB;IAEpB,MAAM,WAAW,GAAI,IAAI,CAAC,QAAmB,IAAI,IAAI,CAAC;IAEtD,uCAAuC;IACvC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,8BAA8B,WAAW,0BAA0B,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAClH,CAAC;QACJ,CAAC;QACD,QAAQ,GAAG,kBAAkB,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,0BAA0B,WAAW,0BAA0B,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC9G,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEzC,sCAAsC;IACtC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAC/B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAE5D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,uDAAuD,QAAQ,GAAG;QAC3E,IAAI,EAAE;YACJ,KAAK;YACL,QAAQ,EAAE,mBAAmB;YAC7B,kBAAkB;YAClB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;QACD,SAAS,EAAE;YACT,iDAAiD;YACjD,yCAAyC;YACzC,oDAAoD;YACpD,sCAAsC;SACvC;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,9 @@
1
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
- import { ToolContext, ToolResponse } from '../types.js';
3
- export declare const generateTemplateTool: Tool;
1
+ import { z } from 'zod';
2
+ import { ToolContext, ToolResponse, Arc42Section } from '../types.js';
3
+ export declare const generateTemplateInputSchema: {
4
+ section: z.ZodEnum<[Arc42Section, ...Arc42Section[]]>;
5
+ language: z.ZodDefault<z.ZodOptional<z.ZodEnum<[string, ...string[]]>>>;
6
+ };
7
+ export declare const generateTemplateDescription = "Generate a detailed template for a specific arc42 section.\n\nThis tool provides the complete template structure, guidance, and examples for any of the 12 arc42 sections. Use this before documenting a section to understand what content is needed.";
4
8
  export declare function generateTemplateHandler(args: Record<string, unknown>, _context: ToolContext): Promise<ToolResponse>;
5
9
  //# sourceMappingURL=generate-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-template.d.ts","sourceRoot":"","sources":["../../src/tools/generate-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAmD,MAAM,aAAa,CAAC;AAGzG,eAAO,MAAM,oBAAoB,EAAE,IA6BlC,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC,CAoCvB"}
1
+ {"version":3,"file":"generate-template.d.ts","sourceRoot":"","sources":["../../src/tools/generate-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAqD,MAAM,aAAa,CAAC;AAazH,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,2PAEiJ,CAAC;AAE1L,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC,CAiEvB"}
@@ -1,52 +1,61 @@
1
- import { SECTION_METADATA, getErrorMessage } from '../types.js';
2
- import { getSectionTemplate } from '../templates/index.js';
3
- export const generateTemplateTool = {
4
- name: 'generate-template',
5
- description: `Generate a detailed template for a specific arc42 section.
6
-
7
- This tool provides the complete template structure, guidance, and examples for any of the 12 arc42 sections. Use this before documenting a section to understand what content is needed.`,
8
- inputSchema: {
9
- type: 'object',
10
- properties: {
11
- section: {
12
- type: 'string',
13
- description: 'The section to generate template for',
14
- enum: [
15
- '01_introduction_and_goals',
16
- '02_architecture_constraints',
17
- '03_context_and_scope',
18
- '04_solution_strategy',
19
- '05_building_block_view',
20
- '06_runtime_view',
21
- '07_deployment_view',
22
- '08_concepts',
23
- '09_architecture_decisions',
24
- '10_quality_requirements',
25
- '11_technical_risks',
26
- '12_glossary'
27
- ]
28
- }
29
- },
30
- required: ['section']
31
- }
1
+ import { z } from 'zod';
2
+ import { SECTION_METADATA, ARC42_SECTIONS, getErrorMessage } from '../types.js';
3
+ import { getSectionTemplate, getSectionMetadata, SUPPORTED_LANGUAGE_CODES, isLanguageCode, normalizeLanguageCode } from '../templates/index.js';
4
+ // Zod schema as the SINGLE SOURCE OF TRUTH for tool input
5
+ const sectionValues = ARC42_SECTIONS;
6
+ const languageValues = SUPPORTED_LANGUAGE_CODES;
7
+ export const generateTemplateInputSchema = {
8
+ section: z.enum(sectionValues).describe('The section to generate template for'),
9
+ language: z.enum(languageValues).optional().default('EN').describe('Language code for the template. Supported: EN, DE, ES, FR, IT, NL, PT, RU, CZ, UKR, ZH. Defaults to EN.')
32
10
  };
11
+ export const generateTemplateDescription = `Generate a detailed template for a specific arc42 section.
12
+
13
+ This tool provides the complete template structure, guidance, and examples for any of the 12 arc42 sections. Use this before documenting a section to understand what content is needed.`;
33
14
  export async function generateTemplateHandler(args, _context) {
34
15
  const section = args.section;
16
+ const languageArg = args.language ?? 'EN';
35
17
  if (!section) {
36
18
  return {
37
19
  success: false,
38
20
  message: 'Section parameter is required'
39
21
  };
40
22
  }
23
+ // Validate and normalize language code
24
+ let language;
25
+ try {
26
+ const normalizedLanguage = normalizeLanguageCode(languageArg);
27
+ if (!isLanguageCode(normalizedLanguage)) {
28
+ return {
29
+ success: false,
30
+ message: `Unsupported language code: ${languageArg}. Supported languages: ${SUPPORTED_LANGUAGE_CODES.join(', ')}`
31
+ };
32
+ }
33
+ language = normalizedLanguage;
34
+ }
35
+ catch {
36
+ return {
37
+ success: false,
38
+ message: `Invalid language code: ${languageArg}. Supported languages: ${SUPPORTED_LANGUAGE_CODES.join(', ')}`
39
+ };
40
+ }
41
41
  try {
42
- const metadata = SECTION_METADATA[section];
43
- const template = getSectionTemplate(section);
42
+ // Get localized metadata and template
43
+ const localizedMetadata = getSectionMetadata(section, language);
44
+ const template = getSectionTemplate(section, language);
45
+ // Also include the standard metadata for reference
46
+ const standardMetadata = SECTION_METADATA[section];
44
47
  return {
45
48
  success: true,
46
- message: `Template for ${metadata.title} generated`,
49
+ message: `Template for ${localizedMetadata.title} generated (language: ${language})`,
47
50
  data: {
48
51
  section,
49
- metadata,
52
+ language,
53
+ metadata: {
54
+ ...standardMetadata,
55
+ title: localizedMetadata.title,
56
+ description: localizedMetadata.description,
57
+ languageCode: localizedMetadata.languageCode
58
+ },
50
59
  template
51
60
  },
52
61
  nextSteps: [