@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arc42-init.js","sourceRoot":"","sources":["../../src/tools/arc42-init.ts"],"names":[],"mappings":"
|
|
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 {
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
import { ToolContext, ToolResponse } from '../types.js';
|
|
3
|
-
export declare const
|
|
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,
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
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":"
|
|
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 {
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
import { ToolContext, ToolResponse } from '../types.js';
|
|
3
|
-
export declare const
|
|
4
|
-
|
|
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,
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
15
|
-
|
|
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:
|
|
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":"
|
|
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 {
|
|
2
|
-
import { ToolContext, ToolResponse } from '../types.js';
|
|
3
|
-
export declare const
|
|
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,
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
43
|
-
const
|
|
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 ${
|
|
49
|
+
message: `Template for ${localizedMetadata.title} generated (language: ${language})`,
|
|
47
50
|
data: {
|
|
48
51
|
section,
|
|
49
|
-
|
|
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: [
|