@corbat-tech/coding-standards-mcp 1.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 (89) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +371 -0
  3. package/assets/demo.gif +0 -0
  4. package/dist/agent.d.ts +53 -0
  5. package/dist/agent.d.ts.map +1 -0
  6. package/dist/agent.js +629 -0
  7. package/dist/agent.js.map +1 -0
  8. package/dist/cli/init.d.ts +3 -0
  9. package/dist/cli/init.d.ts.map +1 -0
  10. package/dist/cli/init.js +651 -0
  11. package/dist/cli/init.js.map +1 -0
  12. package/dist/config.d.ts +73 -0
  13. package/dist/config.d.ts.map +1 -0
  14. package/dist/config.js +105 -0
  15. package/dist/config.js.map +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +73 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/profiles.d.ts +39 -0
  21. package/dist/profiles.d.ts.map +1 -0
  22. package/dist/profiles.js +526 -0
  23. package/dist/profiles.js.map +1 -0
  24. package/dist/prompts-legacy.d.ts +25 -0
  25. package/dist/prompts-legacy.d.ts.map +1 -0
  26. package/dist/prompts-legacy.js +600 -0
  27. package/dist/prompts-legacy.js.map +1 -0
  28. package/dist/prompts-v2.d.ts +30 -0
  29. package/dist/prompts-v2.d.ts.map +1 -0
  30. package/dist/prompts-v2.js +310 -0
  31. package/dist/prompts-v2.js.map +1 -0
  32. package/dist/prompts.d.ts +30 -0
  33. package/dist/prompts.d.ts.map +1 -0
  34. package/dist/prompts.js +310 -0
  35. package/dist/prompts.js.map +1 -0
  36. package/dist/resources.d.ts +18 -0
  37. package/dist/resources.d.ts.map +1 -0
  38. package/dist/resources.js +95 -0
  39. package/dist/resources.js.map +1 -0
  40. package/dist/tools-legacy.d.ts +196 -0
  41. package/dist/tools-legacy.d.ts.map +1 -0
  42. package/dist/tools-legacy.js +1230 -0
  43. package/dist/tools-legacy.js.map +1 -0
  44. package/dist/tools-v2.d.ts +92 -0
  45. package/dist/tools-v2.d.ts.map +1 -0
  46. package/dist/tools-v2.js +410 -0
  47. package/dist/tools-v2.js.map +1 -0
  48. package/dist/tools.d.ts +92 -0
  49. package/dist/tools.d.ts.map +1 -0
  50. package/dist/tools.js +410 -0
  51. package/dist/tools.js.map +1 -0
  52. package/dist/types.d.ts +3054 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +515 -0
  55. package/dist/types.js.map +1 -0
  56. package/dist/utils/index.d.ts +6 -0
  57. package/dist/utils/index.d.ts.map +1 -0
  58. package/dist/utils/index.js +5 -0
  59. package/dist/utils/index.js.map +1 -0
  60. package/dist/utils/retry.d.ts +44 -0
  61. package/dist/utils/retry.d.ts.map +1 -0
  62. package/dist/utils/retry.js +74 -0
  63. package/dist/utils/retry.js.map +1 -0
  64. package/package.json +79 -0
  65. package/profiles/README.md +199 -0
  66. package/profiles/custom/.gitkeep +2 -0
  67. package/profiles/templates/_template.yaml +159 -0
  68. package/profiles/templates/angular.yaml +494 -0
  69. package/profiles/templates/java-spring-backend.yaml +512 -0
  70. package/profiles/templates/minimal.yaml +102 -0
  71. package/profiles/templates/nodejs.yaml +338 -0
  72. package/profiles/templates/python.yaml +340 -0
  73. package/profiles/templates/react.yaml +331 -0
  74. package/profiles/templates/vue.yaml +598 -0
  75. package/standards/architecture/ddd.md +173 -0
  76. package/standards/architecture/hexagonal.md +97 -0
  77. package/standards/cicd/github-actions.md +567 -0
  78. package/standards/clean-code/naming.md +175 -0
  79. package/standards/clean-code/principles.md +179 -0
  80. package/standards/containerization/dockerfile.md +419 -0
  81. package/standards/database/selection-guide.md +443 -0
  82. package/standards/documentation/guidelines.md +189 -0
  83. package/standards/event-driven/domain-events.md +527 -0
  84. package/standards/kubernetes/deployment.md +518 -0
  85. package/standards/observability/guidelines.md +665 -0
  86. package/standards/project-setup/initialization-checklist.md +650 -0
  87. package/standards/spring-boot/best-practices.md +598 -0
  88. package/standards/testing/guidelines.md +559 -0
  89. package/standards/workflow/llm-development-workflow.md +542 -0
@@ -0,0 +1,526 @@
1
+ import { readFile, readdir, stat } from 'node:fs/promises';
2
+ import { basename, join } from 'node:path';
3
+ import { parse } from 'yaml';
4
+ import { config } from './config.js';
5
+ import { DEFAULT_HEXAGONAL_LAYERS, ProfileSchema } from './types.js';
6
+ /**
7
+ * Cache TTL in milliseconds (1 minute).
8
+ * Set to 0 to disable cache expiration.
9
+ */
10
+ const CACHE_TTL_MS = 60_000;
11
+ /**
12
+ * Cache for loaded profiles and standards.
13
+ */
14
+ let profilesCache = null;
15
+ let profilesCacheTime = null;
16
+ let standardsCache = null;
17
+ let standardsCacheTime = null;
18
+ /**
19
+ * Check if cache is still valid.
20
+ */
21
+ function isCacheValid(cacheTime) {
22
+ if (!cacheTime)
23
+ return false;
24
+ if (CACHE_TTL_MS === 0)
25
+ return true; // TTL disabled
26
+ return Date.now() - cacheTime < CACHE_TTL_MS;
27
+ }
28
+ /**
29
+ * Invalidate all caches. Useful for testing or hot-reload scenarios.
30
+ */
31
+ export function invalidateCache() {
32
+ profilesCache = null;
33
+ profilesCacheTime = null;
34
+ standardsCache = null;
35
+ standardsCacheTime = null;
36
+ }
37
+ /**
38
+ * Load profiles from a specific directory.
39
+ */
40
+ async function loadProfilesFromDir(dir, profiles) {
41
+ try {
42
+ const files = await readdir(dir);
43
+ const yamlFiles = files.filter((f) => (f.endsWith('.yaml') || f.endsWith('.yml')) && !f.startsWith('_'));
44
+ for (const file of yamlFiles) {
45
+ const filePath = join(dir, file);
46
+ const fileStat = await stat(filePath);
47
+ // Skip directories
48
+ if (fileStat.isDirectory())
49
+ continue;
50
+ const content = await readFile(filePath, 'utf-8');
51
+ const rawData = parse(content);
52
+ const profileId = basename(file, file.endsWith('.yaml') ? '.yaml' : '.yml');
53
+ const profile = ProfileSchema.parse(rawData);
54
+ // Apply default hexagonal layers if not specified
55
+ if (profile.architecture?.type === 'hexagonal' && !profile.architecture.layers) {
56
+ profile.architecture.layers = DEFAULT_HEXAGONAL_LAYERS;
57
+ }
58
+ profiles.set(profileId, profile);
59
+ }
60
+ }
61
+ catch (error) {
62
+ if (error.code !== 'ENOENT') {
63
+ throw error;
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Load all profiles from YAML files.
69
+ * Searches in both templates/ and custom/ directories.
70
+ * Custom profiles override templates with the same name.
71
+ */
72
+ export async function loadProfiles() {
73
+ if (profilesCache && isCacheValid(profilesCacheTime)) {
74
+ return profilesCache;
75
+ }
76
+ profilesCache = new Map();
77
+ // Load from templates first (official profiles)
78
+ const templatesDir = join(config.profilesDir, 'templates');
79
+ await loadProfilesFromDir(templatesDir, profilesCache);
80
+ // Load from custom (user profiles - can override templates)
81
+ const customDir = join(config.profilesDir, 'custom');
82
+ await loadProfilesFromDir(customDir, profilesCache);
83
+ // Fallback: also check root profiles dir for backwards compatibility
84
+ await loadProfilesFromDir(config.profilesDir, profilesCache);
85
+ profilesCacheTime = Date.now();
86
+ return profilesCache;
87
+ }
88
+ /**
89
+ * Get a specific profile by ID.
90
+ */
91
+ export async function getProfile(profileId) {
92
+ const profiles = await loadProfiles();
93
+ return profiles.get(profileId) ?? null;
94
+ }
95
+ /**
96
+ * Get all profiles as a list.
97
+ */
98
+ export async function listProfiles() {
99
+ const profiles = await loadProfiles();
100
+ return Array.from(profiles.entries()).map(([id, profile]) => ({ id, profile }));
101
+ }
102
+ /**
103
+ * Load all standards from markdown files.
104
+ */
105
+ export async function loadStandards() {
106
+ if (standardsCache && isCacheValid(standardsCacheTime)) {
107
+ return standardsCache;
108
+ }
109
+ standardsCache = [];
110
+ try {
111
+ await scanStandardsDirectory(config.standardsDir, '');
112
+ }
113
+ catch (error) {
114
+ if (error.code !== 'ENOENT') {
115
+ throw error;
116
+ }
117
+ }
118
+ standardsCacheTime = Date.now();
119
+ return standardsCache;
120
+ }
121
+ async function scanStandardsDirectory(dir, category) {
122
+ const entries = await readdir(dir);
123
+ for (const entry of entries) {
124
+ const fullPath = join(dir, entry);
125
+ const stats = await stat(fullPath);
126
+ if (stats.isDirectory()) {
127
+ await scanStandardsDirectory(fullPath, entry);
128
+ }
129
+ else if (entry.endsWith('.md')) {
130
+ const content = await readFile(fullPath, 'utf-8');
131
+ const id = generateStandardId(fullPath);
132
+ const name = extractStandardName(content, entry);
133
+ standardsCache?.push({
134
+ id,
135
+ name,
136
+ category: category || 'general',
137
+ content,
138
+ });
139
+ }
140
+ }
141
+ }
142
+ function generateStandardId(filePath) {
143
+ return filePath
144
+ .replace(config.standardsDir, '')
145
+ .replace(/^\//, '')
146
+ .replace(/\.md$/, '')
147
+ .replace(/\//g, '-')
148
+ .toLowerCase();
149
+ }
150
+ function extractStandardName(content, filename) {
151
+ const headerMatch = content.match(/^#\s+(.+)$/m);
152
+ if (headerMatch)
153
+ return headerMatch[1];
154
+ return basename(filename, '.md')
155
+ .replace(/-/g, ' ')
156
+ .replace(/\b\w/g, (c) => c.toUpperCase());
157
+ }
158
+ /**
159
+ * Get standards by category.
160
+ */
161
+ export async function getStandardsByCategory(category) {
162
+ const standards = await loadStandards();
163
+ return standards.filter((s) => s.category.toLowerCase() === category.toLowerCase());
164
+ }
165
+ /**
166
+ * Get all available categories.
167
+ */
168
+ export async function getCategories() {
169
+ const standards = await loadStandards();
170
+ const categories = new Set(standards.map((s) => s.category));
171
+ return Array.from(categories);
172
+ }
173
+ // ============================================================================
174
+ // MARKDOWN FORMATTING HELPERS
175
+ // ============================================================================
176
+ function formatArchitectureSection(profile) {
177
+ if (!profile.architecture)
178
+ return [];
179
+ const lines = [
180
+ '## Architecture',
181
+ '',
182
+ `**Pattern:** ${profile.architecture.type}`,
183
+ '',
184
+ `**Enforce Layer Dependencies:** ${profile.architecture.enforceLayerDependencies}`,
185
+ '',
186
+ ];
187
+ if (profile.architecture.layers) {
188
+ lines.push('### Layers', '');
189
+ for (const layer of profile.architecture.layers) {
190
+ const deps = layer.allowedDependencies.length > 0 ? layer.allowedDependencies.join(', ') : 'none';
191
+ lines.push(`#### ${layer.name}`, layer.description, `- Allowed dependencies: ${deps}`);
192
+ if (layer.packages?.length) {
193
+ lines.push(`- Packages: ${layer.packages.join(', ')}`);
194
+ }
195
+ lines.push('');
196
+ }
197
+ }
198
+ if (profile.architecture.archUnit) {
199
+ lines.push('### ArchUnit', '', `- Enabled: ${profile.architecture.archUnit.enabled}`, `- Recommended: ${profile.architecture.archUnit.recommended}`);
200
+ if (profile.architecture.archUnit.rules) {
201
+ lines.push('', '**Rules:**', ...profile.architecture.archUnit.rules.map((r) => `- ${r}`));
202
+ }
203
+ lines.push('');
204
+ }
205
+ return lines;
206
+ }
207
+ function formatDddSection(profile) {
208
+ if (!profile.ddd?.enabled)
209
+ return [];
210
+ const lines = [
211
+ '## Domain-Driven Design',
212
+ '',
213
+ `**Ubiquitous Language Enforced:** ${profile.ddd.ubiquitousLanguageEnforced}`,
214
+ '',
215
+ ];
216
+ if (profile.ddd.patterns) {
217
+ lines.push('### Enabled Patterns', '');
218
+ for (const [pattern, enabled] of Object.entries(profile.ddd.patterns)) {
219
+ if (enabled)
220
+ lines.push(`- ${pattern}`);
221
+ }
222
+ lines.push('');
223
+ }
224
+ if (profile.ddd.valueObjectGuidelines) {
225
+ const vo = profile.ddd.valueObjectGuidelines;
226
+ lines.push('### Value Object Guidelines', '', `- Use Records: ${vo.useRecords}`, `- Immutable: ${vo.immutable}`, `- Self-validating: ${vo.selfValidating}`);
227
+ if (vo.examples) {
228
+ lines.push('', '**Examples:**', ...vo.examples.map((ex) => `- ${ex}`));
229
+ }
230
+ lines.push('');
231
+ }
232
+ if (profile.ddd.aggregateGuidelines) {
233
+ const ag = profile.ddd.aggregateGuidelines;
234
+ lines.push('### Aggregate Guidelines', '', `- Single Entry Point: ${ag.singleEntryPoint}`, `- Protect Invariants: ${ag.protectInvariants}`, `- Small Aggregates: ${ag.smallAggregates}`, `- Reference by Identity: ${ag.referenceByIdentity}`, '');
235
+ }
236
+ return lines;
237
+ }
238
+ function formatCqrsSection(profile) {
239
+ if (!profile.cqrs?.enabled)
240
+ return [];
241
+ const lines = ['## CQRS', '', `**Separation:** ${profile.cqrs.separation}`, ''];
242
+ if (profile.cqrs.patterns?.commands) {
243
+ const cmd = profile.cqrs.patterns.commands;
244
+ lines.push('### Commands', '', `- Suffix: ${cmd.suffix}`, `- Handler: ${cmd.handler}`);
245
+ if (cmd.examples)
246
+ lines.push(`- Examples: ${cmd.examples.join(', ')}`);
247
+ lines.push('');
248
+ }
249
+ if (profile.cqrs.patterns?.queries) {
250
+ const qry = profile.cqrs.patterns.queries;
251
+ lines.push('### Queries', '', `- Suffix: ${qry.suffix}`, `- Handler: ${qry.handler}`);
252
+ if (qry.examples)
253
+ lines.push(`- Examples: ${qry.examples.join(', ')}`);
254
+ lines.push('');
255
+ }
256
+ return lines;
257
+ }
258
+ function formatEventDrivenSection(profile) {
259
+ if (!profile.eventDriven?.enabled)
260
+ return [];
261
+ const lines = ['## Event-Driven Architecture', '', `**Approach:** ${profile.eventDriven.approach}`, ''];
262
+ if (profile.eventDriven.patterns?.domainEvents) {
263
+ const de = profile.eventDriven.patterns.domainEvents;
264
+ lines.push('### Domain Events', '', `- Suffix: ${de.suffix}`, `- Past Tense: ${de.pastTense}`);
265
+ if (de.examples)
266
+ lines.push(`- Examples: ${de.examples.join(', ')}`);
267
+ lines.push('');
268
+ }
269
+ if (profile.eventDriven.patterns?.messaging) {
270
+ const msg = profile.eventDriven.patterns.messaging;
271
+ lines.push('### Messaging', '', `- Broker: ${msg.broker}`);
272
+ if (msg.topicNaming)
273
+ lines.push(`- Topic Naming: ${msg.topicNaming}`);
274
+ if (msg.examples)
275
+ lines.push(`- Examples: ${msg.examples.join(', ')}`);
276
+ lines.push('');
277
+ }
278
+ return lines;
279
+ }
280
+ function formatCodeQualitySection(profile) {
281
+ if (!profile.codeQuality)
282
+ return [];
283
+ const cq = profile.codeQuality;
284
+ const lines = [
285
+ '## Code Quality Rules',
286
+ '',
287
+ `- Max method lines: ${cq.maxMethodLines}`,
288
+ `- Max class lines: ${cq.maxClassLines}`,
289
+ `- Max file lines: ${cq.maxFileLines}`,
290
+ `- Max parameters: ${cq.maxMethodParameters}`,
291
+ `- Max cyclomatic complexity: ${cq.maxCyclomaticComplexity}`,
292
+ `- Require documentation: ${cq.requireDocumentation}`,
293
+ `- Require tests: ${cq.requireTests}`,
294
+ `- Minimum test coverage: ${cq.minimumTestCoverage}%`,
295
+ ];
296
+ if (cq.principles?.length) {
297
+ lines.push('', '**Principles:**', ...cq.principles.map((p) => `- ${p}`));
298
+ }
299
+ lines.push('');
300
+ return lines;
301
+ }
302
+ function formatNamingSection(profile) {
303
+ if (!profile.naming)
304
+ return [];
305
+ const lines = ['## Naming Conventions', ''];
306
+ const naming = profile.naming;
307
+ const formatSubsection = (title, obj) => {
308
+ lines.push(`### ${title}`, '');
309
+ for (const [key, value] of Object.entries(obj)) {
310
+ lines.push(`- **${key}**: ${value}`);
311
+ }
312
+ lines.push('');
313
+ };
314
+ if (naming.general && typeof naming.general === 'object') {
315
+ formatSubsection('General', naming.general);
316
+ }
317
+ if (naming.suffixes && typeof naming.suffixes === 'object') {
318
+ formatSubsection('Suffixes', naming.suffixes);
319
+ }
320
+ if (naming.testing && typeof naming.testing === 'object') {
321
+ formatSubsection('Testing Naming', naming.testing);
322
+ }
323
+ // Handle flat naming structure (backwards compatibility)
324
+ const flatKeys = Object.keys(naming).filter((k) => !['general', 'suffixes', 'testing'].includes(k));
325
+ for (const key of flatKeys) {
326
+ if (typeof naming[key] === 'string') {
327
+ lines.push(`- **${key}**: ${naming[key]}`);
328
+ }
329
+ }
330
+ if (flatKeys.length > 0)
331
+ lines.push('');
332
+ return lines;
333
+ }
334
+ function formatTestingSection(profile) {
335
+ if (!profile.testing)
336
+ return [];
337
+ const lines = [
338
+ '## Testing',
339
+ '',
340
+ `- Framework: ${profile.testing.framework}`,
341
+ `- Assertions: ${profile.testing.assertionLibrary}`,
342
+ `- Mocking: ${profile.testing.mockingLibrary}`,
343
+ ];
344
+ if (profile.testing.types) {
345
+ lines.push('', '### Test Types', '');
346
+ const types = profile.testing.types;
347
+ if (types.unit)
348
+ lines.push(`- **Unit tests**: suffix \`*${types.unit.suffix}.java\``);
349
+ if (types.integration)
350
+ lines.push(`- **Integration tests**: suffix \`*${types.integration.suffix}.java\` (maven-failsafe)`);
351
+ if (types.e2e?.suffix)
352
+ lines.push(`- **E2E tests**: suffix \`*${types.e2e.suffix}.java\``);
353
+ if (types.architecture)
354
+ lines.push(`- **Architecture tests**: ${types.architecture.tool} (recommended: ${types.architecture.recommended})`);
355
+ }
356
+ if (profile.testing.testcontainers?.enabled) {
357
+ lines.push('', '### Testcontainers', '', 'Enabled containers:');
358
+ if (profile.testing.testcontainers.containers) {
359
+ lines.push(...profile.testing.testcontainers.containers.map((c) => `- ${c}`));
360
+ }
361
+ }
362
+ lines.push('');
363
+ return lines;
364
+ }
365
+ function formatHttpClientsSection(profile) {
366
+ if (!profile.httpClients)
367
+ return [];
368
+ const lines = ['## HTTP Clients', ''];
369
+ const formatClient = (client, label) => {
370
+ if (!client)
371
+ return;
372
+ lines.push(`### ${client.tool} (${label})`, '');
373
+ if (client.description)
374
+ lines.push(client.description, '');
375
+ if (client.useWhen) {
376
+ lines.push('**Use when:**', ...client.useWhen.map((use) => `- ${use}`), '');
377
+ }
378
+ };
379
+ if (profile.httpClients.simple)
380
+ formatClient(profile.httpClients.simple, 'Simple Cases');
381
+ if (profile.httpClients.complex)
382
+ formatClient(profile.httpClients.complex, 'Complex Cases');
383
+ return lines;
384
+ }
385
+ function formatObservabilitySection(profile) {
386
+ if (!profile.observability?.enabled)
387
+ return [];
388
+ const lines = ['## Observability', ''];
389
+ if (profile.observability.logging) {
390
+ const log = profile.observability.logging;
391
+ lines.push('### Logging', '');
392
+ if (log.framework)
393
+ lines.push(`- Framework: ${log.framework}`);
394
+ if (log.format)
395
+ lines.push(`- Format: ${log.format}`);
396
+ if (log.structuredLogging)
397
+ lines.push(`- Structured Logging: ${log.structuredLogging}`);
398
+ if (log.mdc)
399
+ lines.push(`- MDC fields: ${log.mdc.join(', ')}`);
400
+ if (log.avoid) {
401
+ lines.push('', '**Avoid:**', ...log.avoid.map((a) => `- ${a}`));
402
+ }
403
+ lines.push('');
404
+ }
405
+ if (profile.observability.metrics) {
406
+ lines.push('### Metrics', '');
407
+ if (profile.observability.metrics.framework)
408
+ lines.push(`- Framework: ${profile.observability.metrics.framework}`);
409
+ if (profile.observability.metrics.registry)
410
+ lines.push(`- Registry: ${profile.observability.metrics.registry}`);
411
+ lines.push('');
412
+ }
413
+ if (profile.observability.tracing) {
414
+ const tr = profile.observability.tracing;
415
+ lines.push('### Tracing', '');
416
+ if (tr.framework)
417
+ lines.push(`- Framework: ${tr.framework}`);
418
+ if (tr.propagation)
419
+ lines.push(`- Propagation: ${tr.propagation}`);
420
+ if (tr.exporters)
421
+ lines.push(`- Exporters: ${tr.exporters.join(', ')}`);
422
+ lines.push('');
423
+ }
424
+ if (profile.observability.healthChecks?.actuatorEndpoints) {
425
+ lines.push('### Health Checks', '', '**Endpoints:**', ...profile.observability.healthChecks.actuatorEndpoints.map((ep) => `- ${ep}`), '');
426
+ }
427
+ return lines;
428
+ }
429
+ function formatRemainingProfileSections(profile) {
430
+ const lines = [];
431
+ // API Documentation
432
+ if (profile.apiDocumentation?.enabled) {
433
+ lines.push('## API Documentation', '', `- Tool: ${profile.apiDocumentation.tool}`);
434
+ if (profile.apiDocumentation.version)
435
+ lines.push(`- Version: ${profile.apiDocumentation.version}`);
436
+ if (profile.apiDocumentation.requirements) {
437
+ lines.push('', '**Requirements:**', ...profile.apiDocumentation.requirements.map((r) => `- ${r}`));
438
+ }
439
+ if (profile.apiDocumentation.output) {
440
+ lines.push('', '**Output:**', ...profile.apiDocumentation.output.map((o) => `- ${o}`));
441
+ }
442
+ lines.push('');
443
+ }
444
+ // Security
445
+ if (profile.security) {
446
+ lines.push('## Security', '');
447
+ if (profile.security.authentication) {
448
+ lines.push(`- Authentication: ${profile.security.authentication.method || 'N/A'}`);
449
+ }
450
+ if (profile.security.authorization) {
451
+ lines.push(`- Authorization: ${profile.security.authorization.method || 'N/A'} (${profile.security.authorization.framework || 'N/A'})`);
452
+ }
453
+ if (profile.security.practices) {
454
+ lines.push('', '**Practices:**', ...profile.security.practices.map((p) => `- ${p}`));
455
+ }
456
+ lines.push('');
457
+ }
458
+ // Error Handling
459
+ if (profile.errorHandling) {
460
+ lines.push('## Error Handling', '', `- Format: ${profile.errorHandling.format}`);
461
+ if (profile.errorHandling.globalHandler)
462
+ lines.push(`- Global Handler: ${profile.errorHandling.globalHandler}`);
463
+ if (profile.errorHandling.customExceptions?.domain) {
464
+ lines.push('', '**Domain Exceptions:**', ...profile.errorHandling.customExceptions.domain.map((e) => `- ${e}`));
465
+ }
466
+ if (profile.errorHandling.customExceptions?.application) {
467
+ lines.push('', '**Application Exceptions:**', ...profile.errorHandling.customExceptions.application.map((e) => `- ${e}`));
468
+ }
469
+ lines.push('');
470
+ }
471
+ // Database
472
+ if (profile.database) {
473
+ lines.push('## Database', '');
474
+ if (profile.database.migrations) {
475
+ lines.push(`- Migrations: ${profile.database.migrations.tool}`);
476
+ if (profile.database.migrations.naming)
477
+ lines.push(`- Naming: ${profile.database.migrations.naming}`);
478
+ }
479
+ if (profile.database.auditing?.enabled) {
480
+ lines.push(`- Auditing: enabled (fields: ${profile.database.auditing.fields?.join(', ') || 'N/A'})`);
481
+ }
482
+ if (profile.database.softDelete?.recommended) {
483
+ lines.push(`- Soft Delete: recommended (field: ${profile.database.softDelete.field || 'deletedAt'})`);
484
+ }
485
+ lines.push('');
486
+ }
487
+ // Mapping
488
+ if (profile.mapping) {
489
+ lines.push('## Object Mapping', '', `- Tool: ${profile.mapping.tool}`);
490
+ if (profile.mapping.componentModel)
491
+ lines.push(`- Component Model: ${profile.mapping.componentModel}`);
492
+ if (profile.mapping.patterns) {
493
+ lines.push('', '**Patterns:**', ...profile.mapping.patterns.map((p) => `- ${p}`));
494
+ }
495
+ lines.push('');
496
+ }
497
+ // Technologies
498
+ if (profile.technologies?.length) {
499
+ lines.push('## Technologies', '');
500
+ for (const tech of profile.technologies) {
501
+ lines.push(`### ${tech.name}${tech.version ? ` (${tech.version})` : ''}`);
502
+ if (tech.tool)
503
+ lines.push(`Tool: ${tech.tool}`);
504
+ if (tech.specificRules && Object.keys(tech.specificRules).length > 0) {
505
+ lines.push('**Rules:**');
506
+ for (const [key, value] of Object.entries(tech.specificRules)) {
507
+ lines.push(`- ${key}: ${value}`);
508
+ }
509
+ }
510
+ lines.push('');
511
+ }
512
+ }
513
+ return lines;
514
+ }
515
+ /**
516
+ * Format a profile as markdown for LLM context.
517
+ */
518
+ export function formatProfileAsMarkdown(_profileId, profile) {
519
+ const lines = [`# Coding Standards Profile: ${profile.name}`, ''];
520
+ if (profile.description) {
521
+ lines.push(profile.description, '');
522
+ }
523
+ lines.push(...formatArchitectureSection(profile), ...formatDddSection(profile), ...formatCqrsSection(profile), ...formatEventDrivenSection(profile), ...formatCodeQualitySection(profile), ...formatNamingSection(profile), ...formatTestingSection(profile), ...formatHttpClientsSection(profile), ...formatObservabilitySection(profile), ...formatRemainingProfileSections(profile));
524
+ return lines.join('\n');
525
+ }
526
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Prompt definitions for MCP.
3
+ */
4
+ export declare const prompts: {
5
+ name: string;
6
+ description: string;
7
+ arguments: {
8
+ name: string;
9
+ description: string;
10
+ required: boolean;
11
+ }[];
12
+ }[];
13
+ /**
14
+ * Handle prompt requests.
15
+ */
16
+ export declare function handleGetPrompt(name: string, args: Record<string, string> | undefined): Promise<{
17
+ messages: Array<{
18
+ role: 'user';
19
+ content: {
20
+ type: 'text';
21
+ text: string;
22
+ };
23
+ }>;
24
+ } | null>;
25
+ //# sourceMappingURL=prompts-legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts-legacy.d.ts","sourceRoot":"","sources":["../src/prompts-legacy.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;GA0InB,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GACvC,OAAO,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC5E,GAAG,IAAI,CAAC,CA2eR"}