@corbat-tech/coding-standards-mcp 1.1.0 → 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.
@@ -0,0 +1,172 @@
1
+ import { z } from 'zod';
2
+ import { analyzeCode } from '../../analysis/code-analyzer.js';
3
+ /**
4
+ * Schema for verify tool input.
5
+ */
6
+ export const VerifySchema = z.object({
7
+ code: z.string().describe('All generated implementation code'),
8
+ tests: z.string().optional().describe('All test code'),
9
+ interfaces: z.string().optional().describe('All interfaces/types'),
10
+ task_type: z.enum(['feature', 'bugfix', 'refactor', 'test', 'security', 'performance']).optional(),
11
+ });
12
+ /**
13
+ * Handler for the verify tool.
14
+ *
15
+ * This is the "gate" that LLMs must pass before presenting code to the user.
16
+ * It analyzes all generated code and returns PASS/FAIL with specific feedback.
17
+ *
18
+ * Key principles:
19
+ * - Tests are REQUIRED (TDD compliance)
20
+ * - Interfaces are strongly recommended (DI)
21
+ * - Critical issues block passing
22
+ * - Clear feedback on what to fix
23
+ */
24
+ export async function handleVerify(args) {
25
+ const { code, tests, interfaces } = VerifySchema.parse(args);
26
+ // Combine all code for comprehensive analysis
27
+ const allCodeParts = [];
28
+ if (interfaces) {
29
+ allCodeParts.push('// === INTERFACES ===', interfaces);
30
+ }
31
+ if (tests) {
32
+ allCodeParts.push('// === TESTS ===', tests);
33
+ }
34
+ allCodeParts.push('// === IMPLEMENTATION ===', code);
35
+ const allCode = allCodeParts.join('\n\n');
36
+ // Run analysis
37
+ const analysis = analyzeCode(allCode);
38
+ // Additional verification checks beyond the analyzer
39
+ const verificationResults = runVerificationChecks(code, tests, interfaces, analysis);
40
+ // Build response
41
+ const lines = [];
42
+ if (verificationResults.passed) {
43
+ lines.push('# VERIFICATION PASSED', '');
44
+ lines.push(`**Score: ${analysis.score}/100**`, '');
45
+ lines.push('');
46
+ lines.push('The code meets quality standards and is ready to present to the user.', '');
47
+ // Show any optional improvements
48
+ if (verificationResults.warnings.length > 0) {
49
+ lines.push('---', '', '## Optional Improvements', '');
50
+ for (const warning of verificationResults.warnings.slice(0, 5)) {
51
+ lines.push(`- ${warning}`);
52
+ }
53
+ lines.push('');
54
+ }
55
+ // Summary of what was verified
56
+ lines.push('---', '', '## Verification Summary', '');
57
+ lines.push(`- Tests provided: ${tests ? 'Yes' : 'No'}`);
58
+ lines.push(`- Interfaces provided: ${interfaces ? 'Yes' : 'No'}`);
59
+ lines.push(`- Critical issues: ${analysis.issues.filter((i) => i.type === 'CRITICAL').length}`);
60
+ lines.push(`- Warnings: ${analysis.issues.filter((i) => i.type === 'WARNING').length}`);
61
+ lines.push(`- Test count: ${analysis.metrics.testCount}`);
62
+ lines.push(`- Interface count: ${analysis.metrics.interfaceCount}`);
63
+ lines.push('');
64
+ lines.push('---', '');
65
+ lines.push('**You may now present this code to the user.**');
66
+ }
67
+ else {
68
+ lines.push('# VERIFICATION FAILED', '');
69
+ lines.push(`**Score: ${analysis.score}/100**`, '');
70
+ lines.push('');
71
+ lines.push('The code does not meet quality standards. Fix the issues below and verify again.', '');
72
+ // Show failures (blocking issues)
73
+ lines.push('---', '', '## Issues to Fix (Blocking)', '');
74
+ for (const failure of verificationResults.failures) {
75
+ lines.push(`- ${failure}`);
76
+ }
77
+ lines.push('');
78
+ // Show warnings
79
+ if (verificationResults.warnings.length > 0) {
80
+ lines.push('---', '', '## Warnings (Should Fix)', '');
81
+ for (const warning of verificationResults.warnings.slice(0, 8)) {
82
+ lines.push(`- ${warning}`);
83
+ }
84
+ lines.push('');
85
+ }
86
+ // Analysis issues
87
+ const criticals = analysis.issues.filter((i) => i.type === 'CRITICAL');
88
+ if (criticals.length > 0) {
89
+ lines.push('---', '', '## Critical Code Issues', '');
90
+ for (const issue of criticals) {
91
+ lines.push(`- **Line ${issue.line || '?'}:** ${issue.message}`);
92
+ if (issue.suggestion) {
93
+ lines.push(` - Fix: ${issue.suggestion}`);
94
+ }
95
+ }
96
+ lines.push('');
97
+ }
98
+ lines.push('---', '');
99
+ lines.push('**Fix these issues and call `verify` again before presenting code to user.**');
100
+ }
101
+ return {
102
+ content: [{ type: 'text', text: lines.join('\n') }],
103
+ isError: !verificationResults.passed,
104
+ };
105
+ }
106
+ /**
107
+ * Run additional verification checks beyond the code analyzer.
108
+ */
109
+ function runVerificationChecks(code, tests, interfaces, analysis) {
110
+ const failures = [];
111
+ const warnings = [];
112
+ // Check 1: Tests MUST be provided (TDD requirement)
113
+ if (!tests || tests.trim().length === 0) {
114
+ failures.push('No tests provided - TDD requires tests before/with implementation');
115
+ }
116
+ else {
117
+ // Check test count
118
+ const testCount = analysis.metrics.testCount;
119
+ if (testCount === 0) {
120
+ failures.push('Test code provided but no test cases detected (missing @Test, it(), test(), etc.)');
121
+ }
122
+ else if (testCount < 2) {
123
+ warnings.push(`Only ${testCount} test(s) found - consider adding more for better coverage`);
124
+ }
125
+ }
126
+ // Check 2: Interfaces strongly recommended for DI
127
+ const hasClasses = /class\s+\w+/.test(code);
128
+ if (hasClasses) {
129
+ if (!interfaces || interfaces.trim().length === 0) {
130
+ // Check if interfaces are in the main code instead
131
+ const hasInlineInterfaces = /interface\s+\w+/.test(code);
132
+ if (!hasInlineInterfaces) {
133
+ warnings.push('No interfaces provided - consider adding for dependency injection');
134
+ }
135
+ }
136
+ }
137
+ // Check 3: No critical issues from analysis
138
+ const criticalCount = analysis.issues.filter((i) => i.type === 'CRITICAL').length;
139
+ if (criticalCount > 0) {
140
+ failures.push(`${criticalCount} critical code issue(s) detected - see details below`);
141
+ }
142
+ // Check 4: Score threshold
143
+ if (analysis.score < 50) {
144
+ failures.push(`Quality score too low (${analysis.score}/100) - must be at least 50`);
145
+ }
146
+ else if (analysis.score < 70) {
147
+ warnings.push(`Quality score is ${analysis.score}/100 - consider improvements to reach 70+`);
148
+ }
149
+ // Check 5: Too many warnings
150
+ const warningCount = analysis.issues.filter((i) => i.type === 'WARNING').length;
151
+ if (warningCount > 10) {
152
+ warnings.push(`High number of warnings (${warningCount}) - consider addressing some`);
153
+ }
154
+ // Check 6: Method/class size
155
+ if (analysis.metrics.maxMethodLines > 30) {
156
+ warnings.push(`Longest method is ${analysis.metrics.maxMethodLines} lines - consider refactoring`);
157
+ }
158
+ if (analysis.metrics.maxClassLines > 300) {
159
+ warnings.push(`Longest class is ${analysis.metrics.maxClassLines} lines - consider splitting`);
160
+ }
161
+ // Check 7: Look for common issues in the code
162
+ if (/throw\s+new\s+Error\s*\(/.test(code) && !/class\s+\w*Error/.test(code)) {
163
+ warnings.push('Generic Error thrown without custom error classes defined');
164
+ }
165
+ if (/any\s*[;,)>]/.test(code)) {
166
+ warnings.push('TypeScript "any" type usage detected - consider specific types');
167
+ }
168
+ // Determine if passed
169
+ const passed = failures.length === 0;
170
+ return { passed, failures, warnings };
171
+ }
172
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/tools/handlers/verify.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA0DhF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA6DhF"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { logger } from '../logger.js';
10
10
  import { recordError, recordToolCall } from '../metrics.js';
11
- import { handleGetContext, handleHealth, handleInit, handleProfiles, handleSearch, handleValidate, } from './handlers/index.js';
11
+ import { handleGetContext, handleHealth, handleInit, handleProfiles, handleSearch, handleValidate, handleVerify, } from './handlers/index.js';
12
12
  // Re-export definitions and schemas
13
13
  export { tools } from './definitions.js';
14
14
  export * from './schemas.js';
@@ -29,6 +29,9 @@ export async function handleToolCall(name, args) {
29
29
  case 'validate':
30
30
  result = await handleValidate(args);
31
31
  break;
32
+ case 'verify':
33
+ result = await handleVerify(args);
34
+ break;
32
35
  case 'search':
33
36
  result = await handleSearch(args);
34
37
  break;
@@ -47,7 +50,7 @@ export async function handleToolCall(name, args) {
47
50
  content: [
48
51
  {
49
52
  type: 'text',
50
- text: `Unknown tool: ${name}. Available: get_context, validate, search, profiles, health, init`,
53
+ text: `Unknown tool: ${name}. Available: get_context, validate, verify, search, profiles, health, init`,
51
54
  },
52
55
  ],
53
56
  isError: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAG7B,oCAAoC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,IAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAgB,CAAC;IAElC,iBAAiB;IACjB,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,IAAI,MAA6E,CAAC;QAElF,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,aAAa;gBAChB,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;YACR;gBACE,WAAW,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iBAAiB,IAAI,oEAAoE;yBAChG;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,oCAAoC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,IAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAgB,CAAC;IAElC,iBAAiB;IACjB,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,IAAI,MAA6E,CAAC;QAElF,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,aAAa;gBAChB,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;gBAChC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC9B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;YACR;gBACE,WAAW,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,iBAAiB,IAAI,4EAA4E;yBACxG;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corbat-tech/coding-standards-mcp",
3
- "version": "1.1.0",
3
+ "version": "2.0.0",
4
4
  "description": "AI coding standards that apply themselves - MCP server that enforces production-grade code",
5
5
  "mcpName": "io.github.corbat-tech/coding-standards",
6
6
  "type": "module",