@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.
- package/README.md +110 -26
- package/dist/analysis/code-analyzer.d.ts +44 -0
- package/dist/analysis/code-analyzer.d.ts.map +1 -0
- package/dist/analysis/code-analyzer.js +528 -0
- package/dist/analysis/code-analyzer.js.map +1 -0
- package/dist/tools/definitions.d.ts +40 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +68 -10
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers/get-context.d.ts.map +1 -1
- package/dist/tools/handlers/get-context.js +115 -0
- package/dist/tools/handlers/get-context.js.map +1 -1
- package/dist/tools/handlers/index.d.ts +1 -0
- package/dist/tools/handlers/index.d.ts.map +1 -1
- package/dist/tools/handlers/index.js +1 -0
- package/dist/tools/handlers/index.js.map +1 -1
- package/dist/tools/handlers/validate.d.ts +4 -1
- package/dist/tools/handlers/validate.d.ts.map +1 -1
- package/dist/tools/handlers/validate.js +37 -42
- package/dist/tools/handlers/validate.js.map +1 -1
- package/dist/tools/handlers/verify.d.ts +38 -0
- package/dist/tools/handlers/verify.d.ts.map +1 -0
- package/dist/tools/handlers/verify.js +172 -0
- package/dist/tools/handlers/verify.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -2
- package/dist/tools/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -46,21 +46,28 @@ EXAMPLE: get_context({ task: "Create payment service", project_dir: "/path/to/pr
|
|
|
46
46
|
required: ['task'],
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
|
-
// VALIDATE -
|
|
49
|
+
// VALIDATE - Real code analysis
|
|
50
50
|
{
|
|
51
51
|
name: 'validate',
|
|
52
|
-
description: `
|
|
52
|
+
description: `Analyze code against coding standards with REAL code analysis.
|
|
53
53
|
|
|
54
54
|
WHEN TO USE:
|
|
55
|
-
- After writing code,
|
|
56
|
-
- During
|
|
57
|
-
-
|
|
55
|
+
- After writing code, to check for issues
|
|
56
|
+
- During iterative development
|
|
57
|
+
- Before calling verify for final approval
|
|
58
|
+
|
|
59
|
+
PERFORMS REAL ANALYSIS:
|
|
60
|
+
- Detects anti-patterns (empty catch, hardcoded secrets, etc.)
|
|
61
|
+
- Measures method/class lengths
|
|
62
|
+
- Checks for interfaces and tests
|
|
63
|
+
- Calculates quality score
|
|
58
64
|
|
|
59
65
|
RETURNS:
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
66
|
+
- Score (0-100)
|
|
67
|
+
- CRITICAL issues (must fix)
|
|
68
|
+
- WARNINGS (should fix)
|
|
69
|
+
- Metrics (lines, methods, tests, etc.)
|
|
70
|
+
- PASSED/NEEDS WORK verdict
|
|
64
71
|
|
|
65
72
|
EXAMPLE: validate({ code: "public class UserService { ... }", task_type: "feature" })`,
|
|
66
73
|
inputSchema: {
|
|
@@ -72,13 +79,64 @@ EXAMPLE: validate({ code: "public class UserService { ... }", task_type: "featur
|
|
|
72
79
|
},
|
|
73
80
|
task_type: {
|
|
74
81
|
type: 'string',
|
|
75
|
-
enum: ['feature', 'bugfix', 'refactor', 'test'],
|
|
82
|
+
enum: ['feature', 'bugfix', 'refactor', 'test', 'security', 'performance'],
|
|
76
83
|
description: 'Type of task for context-aware validation (optional)',
|
|
77
84
|
},
|
|
78
85
|
},
|
|
79
86
|
required: ['code'],
|
|
80
87
|
},
|
|
81
88
|
},
|
|
89
|
+
// VERIFY - Gate before presenting code to user (NEW in v2.0)
|
|
90
|
+
{
|
|
91
|
+
name: 'verify',
|
|
92
|
+
description: `REQUIRED: Verify generated code before presenting to user.
|
|
93
|
+
|
|
94
|
+
WHEN TO USE:
|
|
95
|
+
- ALWAYS call this AFTER generating code
|
|
96
|
+
- BEFORE presenting code to the user
|
|
97
|
+
- This is the final quality gate
|
|
98
|
+
|
|
99
|
+
WHAT IT CHECKS:
|
|
100
|
+
- Tests are provided (TDD compliance)
|
|
101
|
+
- Interfaces exist (DI compliance)
|
|
102
|
+
- No critical code issues
|
|
103
|
+
- Quality score >= 50
|
|
104
|
+
|
|
105
|
+
RETURNS:
|
|
106
|
+
- PASS: Code meets standards, present to user
|
|
107
|
+
- FAIL: Issues to fix, iterate and verify again
|
|
108
|
+
|
|
109
|
+
WORKFLOW:
|
|
110
|
+
1. Generate code following get_context guidelines
|
|
111
|
+
2. Call verify({ code, tests, interfaces })
|
|
112
|
+
3. If FAIL: fix issues and call verify again
|
|
113
|
+
4. If PASS: present code to user
|
|
114
|
+
|
|
115
|
+
EXAMPLE: verify({ code: "class UserServiceImpl...", tests: "describe('UserService')...", interfaces: "interface UserService..." })`,
|
|
116
|
+
inputSchema: {
|
|
117
|
+
type: 'object',
|
|
118
|
+
properties: {
|
|
119
|
+
code: {
|
|
120
|
+
type: 'string',
|
|
121
|
+
description: 'All implementation code',
|
|
122
|
+
},
|
|
123
|
+
tests: {
|
|
124
|
+
type: 'string',
|
|
125
|
+
description: 'All test code (REQUIRED for TDD compliance)',
|
|
126
|
+
},
|
|
127
|
+
interfaces: {
|
|
128
|
+
type: 'string',
|
|
129
|
+
description: 'All interfaces and type definitions',
|
|
130
|
+
},
|
|
131
|
+
task_type: {
|
|
132
|
+
type: 'string',
|
|
133
|
+
enum: ['feature', 'bugfix', 'refactor', 'test', 'security', 'performance'],
|
|
134
|
+
description: 'Type of task for context-aware verification',
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
required: ['code'],
|
|
138
|
+
},
|
|
139
|
+
},
|
|
82
140
|
// SEARCH - Find specific topics in documentation
|
|
83
141
|
{
|
|
84
142
|
name: 'search',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,wCAAwC;IACxC;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE;;;;;;;;;;;;;;;;0FAgByE;QACtF,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6EAA6E;iBAC3F;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kFAAkF;iBAChG;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IAED,
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-context.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/get-context.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,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,
|
|
1
|
+
{"version":3,"file":"get-context.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/get-context.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,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,CAmPhF"}
|
|
@@ -113,6 +113,121 @@ export async function handleGetContext(args) {
|
|
|
113
113
|
lines.push('4. VERIFY → Tests pass, linter clean');
|
|
114
114
|
lines.push('5. REVIEW → Self-check as expert');
|
|
115
115
|
lines.push('```');
|
|
116
|
+
lines.push('');
|
|
117
|
+
// === STRATEGY 1: CHECKPOINT VERIFICATION ===
|
|
118
|
+
lines.push('---', '', '## MANDATORY CHECKPOINT', '');
|
|
119
|
+
lines.push(`
|
|
120
|
+
⚠️ **BEFORE writing ANY code**, respond with this JSON:
|
|
121
|
+
|
|
122
|
+
\`\`\`json
|
|
123
|
+
{
|
|
124
|
+
"checkpoint": {
|
|
125
|
+
"task_understood": true,
|
|
126
|
+
"clarifications_needed": [],
|
|
127
|
+
"approach": "Brief description of implementation approach"
|
|
128
|
+
},
|
|
129
|
+
"architecture": {
|
|
130
|
+
"layers_affected": ["domain", "application", "infrastructure"],
|
|
131
|
+
"interfaces_to_create": ["InterfaceName1", "InterfaceName2"],
|
|
132
|
+
"classes_to_create": ["ClassName1", "ClassName2"]
|
|
133
|
+
},
|
|
134
|
+
"tdd_plan": {
|
|
135
|
+
"tests_to_write": [
|
|
136
|
+
"should_do_X_when_Y",
|
|
137
|
+
"should_fail_when_Z",
|
|
138
|
+
"should_handle_edge_case"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"quality_commitments": {
|
|
142
|
+
"max_method_lines": 20,
|
|
143
|
+
"max_class_lines": 200,
|
|
144
|
+
"dependency_injection": true,
|
|
145
|
+
"custom_errors": true,
|
|
146
|
+
"test_coverage_target": 80
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
\`\`\`
|
|
150
|
+
|
|
151
|
+
**Only proceed to code generation after completing this checkpoint.**
|
|
152
|
+
`);
|
|
153
|
+
// === STRATEGY 4: CONTRACTUAL RESPONSE FORMAT ===
|
|
154
|
+
lines.push('---', '', '## REQUIRED RESPONSE STRUCTURE', '');
|
|
155
|
+
lines.push(`
|
|
156
|
+
Structure your response in this **exact order**:
|
|
157
|
+
|
|
158
|
+
### 1. CHECKPOINT
|
|
159
|
+
Complete the checkpoint JSON above first.
|
|
160
|
+
|
|
161
|
+
### 2. INTERFACES / TYPES
|
|
162
|
+
\`\`\`
|
|
163
|
+
// Define ALL interfaces and types FIRST
|
|
164
|
+
interface ServiceName { ... }
|
|
165
|
+
type ResultType = { ... }
|
|
166
|
+
\`\`\`
|
|
167
|
+
|
|
168
|
+
### 3. TESTS
|
|
169
|
+
\`\`\`
|
|
170
|
+
// Write tests BEFORE implementation (TDD)
|
|
171
|
+
describe('ServiceName', () => {
|
|
172
|
+
it('should do X when Y', () => { ... });
|
|
173
|
+
it('should fail when Z', () => { ... });
|
|
174
|
+
});
|
|
175
|
+
\`\`\`
|
|
176
|
+
|
|
177
|
+
### 4. IMPLEMENTATION
|
|
178
|
+
\`\`\`
|
|
179
|
+
// NOW implement to make tests pass
|
|
180
|
+
class ServiceNameImpl implements ServiceName { ... }
|
|
181
|
+
\`\`\`
|
|
182
|
+
|
|
183
|
+
### 5. SELF-REVIEW
|
|
184
|
+
Complete the self-review JSON below.
|
|
185
|
+
|
|
186
|
+
⚠️ **Code not following this structure will not meet quality standards.**
|
|
187
|
+
`);
|
|
188
|
+
// === STRATEGY 3: MANDATORY SELF-REVIEW ===
|
|
189
|
+
lines.push('---', '', '## MANDATORY SELF-REVIEW', '');
|
|
190
|
+
lines.push(`
|
|
191
|
+
After generating code, perform a self-review and report:
|
|
192
|
+
|
|
193
|
+
\`\`\`json
|
|
194
|
+
{
|
|
195
|
+
"self_review": {
|
|
196
|
+
"methods_over_20_lines": 0,
|
|
197
|
+
"classes_over_200_lines": 0,
|
|
198
|
+
"interfaces_created": 3,
|
|
199
|
+
"tests_written": 5,
|
|
200
|
+
"custom_errors_defined": 2,
|
|
201
|
+
"dependency_injection_used": true,
|
|
202
|
+
"hardcoded_values": 0,
|
|
203
|
+
"todos_or_fixmes": 0
|
|
204
|
+
},
|
|
205
|
+
"quality_score": "8/10",
|
|
206
|
+
"confidence": "high",
|
|
207
|
+
"improvements_if_more_time": [
|
|
208
|
+
"Add more edge case tests",
|
|
209
|
+
"Extract validation logic to separate class"
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
\`\`\`
|
|
213
|
+
|
|
214
|
+
**If quality_score < 7, iterate and improve before presenting the code.**
|
|
215
|
+
`);
|
|
216
|
+
// === VERIFY TOOL REMINDER ===
|
|
217
|
+
lines.push('---', '', '## FINAL STEP', '');
|
|
218
|
+
lines.push(`
|
|
219
|
+
After completing all code, call the \`verify\` tool with your generated code:
|
|
220
|
+
|
|
221
|
+
\`\`\`
|
|
222
|
+
verify({
|
|
223
|
+
code: "// all implementation code",
|
|
224
|
+
tests: "// all test code",
|
|
225
|
+
interfaces: "// all interfaces"
|
|
226
|
+
})
|
|
227
|
+
\`\`\`
|
|
228
|
+
|
|
229
|
+
Only present code to user after verify returns **PASS**.
|
|
230
|
+
`);
|
|
116
231
|
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
117
232
|
}
|
|
118
233
|
//# sourceMappingURL=get-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-context.js","sourceRoot":"","sources":["../../../src/tools/handlers/get-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"get-context.js","sourceRoot":"","sources":["../../../src/tools/handlers/get-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,5 @@ export { handleInit } from './init.js';
|
|
|
8
8
|
export { handleProfiles } from './profiles.js';
|
|
9
9
|
export { handleSearch } from './search.js';
|
|
10
10
|
export { handleValidate } from './validate.js';
|
|
11
|
+
export { handleVerify } from './verify.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/handlers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Handler for the validate tool.
|
|
3
|
-
*
|
|
3
|
+
* Performs real code analysis and returns actionable feedback.
|
|
4
|
+
*
|
|
5
|
+
* This is a key part of the Smart Enforcement system - it actually
|
|
6
|
+
* analyzes code instead of just returning a checklist.
|
|
4
7
|
*/
|
|
5
8
|
export declare function handleValidate(args: Record<string, unknown>): Promise<{
|
|
6
9
|
content: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/validate.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,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,CAoEhF"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { getGuardrails } from '../../agent.js';
|
|
2
|
+
import { analyzeCode, formatAnalysisAsMarkdown } from '../../analysis/code-analyzer.js';
|
|
2
3
|
import { config } from '../../config.js';
|
|
3
4
|
import { getProfile } from '../../profiles.js';
|
|
4
5
|
import { ValidateSchema } from '../schemas.js';
|
|
5
6
|
/**
|
|
6
7
|
* Handler for the validate tool.
|
|
7
|
-
*
|
|
8
|
+
* Performs real code analysis and returns actionable feedback.
|
|
9
|
+
*
|
|
10
|
+
* This is a key part of the Smart Enforcement system - it actually
|
|
11
|
+
* analyzes code instead of just returning a checklist.
|
|
8
12
|
*/
|
|
9
13
|
export async function handleValidate(args) {
|
|
10
14
|
const { code, task_type } = ValidateSchema.parse(args);
|
|
15
|
+
// Run real code analysis
|
|
16
|
+
const analysis = analyzeCode(code);
|
|
11
17
|
const profileId = config.defaultProfile;
|
|
12
18
|
const profile = await getProfile(profileId);
|
|
13
19
|
if (!profile) {
|
|
@@ -17,60 +23,49 @@ export async function handleValidate(args) {
|
|
|
17
23
|
};
|
|
18
24
|
}
|
|
19
25
|
const guardrails = task_type ? await getGuardrails(task_type, null) : null;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
'',
|
|
28
|
-
'---',
|
|
29
|
-
'',
|
|
30
|
-
'## Validation Criteria',
|
|
31
|
-
'',
|
|
32
|
-
];
|
|
33
|
-
// Code quality thresholds
|
|
26
|
+
// Build output with analysis results
|
|
27
|
+
const lines = [];
|
|
28
|
+
// Add the formatted analysis
|
|
29
|
+
lines.push(formatAnalysisAsMarkdown(analysis));
|
|
30
|
+
lines.push('');
|
|
31
|
+
// Add profile thresholds for reference
|
|
32
|
+
lines.push('---', '', '## Profile Standards Reference', '');
|
|
34
33
|
if (profile.codeQuality) {
|
|
35
|
-
lines.push('**Thresholds:**');
|
|
36
|
-
lines.push(`- Max method lines: ${profile.codeQuality.maxMethodLines}`);
|
|
37
|
-
lines.push(`- Max class lines: ${profile.codeQuality.maxClassLines}`);
|
|
38
|
-
lines.push(`-
|
|
39
|
-
lines.push(`- Min coverage: ${profile.codeQuality.minimumTestCoverage}%`);
|
|
34
|
+
lines.push('**Configured Thresholds:**');
|
|
35
|
+
lines.push(`- Max method lines: ${profile.codeQuality.maxMethodLines} (yours: ${analysis.metrics.maxMethodLines})`);
|
|
36
|
+
lines.push(`- Max class lines: ${profile.codeQuality.maxClassLines} (yours: ${analysis.metrics.maxClassLines})`);
|
|
37
|
+
lines.push(`- Min test coverage: ${profile.codeQuality.minimumTestCoverage}%`);
|
|
40
38
|
lines.push('');
|
|
41
39
|
}
|
|
42
|
-
//
|
|
40
|
+
// Add guardrails reminder if task type specified
|
|
43
41
|
if (guardrails) {
|
|
44
|
-
lines.push(
|
|
45
|
-
lines.push('');
|
|
46
|
-
|
|
47
|
-
for (const rule of guardrails.mandatory.slice(0, 4)) {
|
|
42
|
+
lines.push('---', '', `## ${task_type?.toUpperCase()} Guardrails Reminder`, '');
|
|
43
|
+
lines.push('**Must:**');
|
|
44
|
+
for (const rule of guardrails.mandatory.slice(0, 3)) {
|
|
48
45
|
lines.push(`- ${rule}`);
|
|
49
46
|
}
|
|
50
47
|
lines.push('');
|
|
51
|
-
lines.push('Avoid
|
|
48
|
+
lines.push('**Avoid:**');
|
|
52
49
|
for (const rule of guardrails.avoid.slice(0, 3)) {
|
|
53
50
|
lines.push(`- ${rule}`);
|
|
54
51
|
}
|
|
55
52
|
lines.push('');
|
|
56
53
|
}
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
54
|
+
// Final verdict
|
|
55
|
+
lines.push('---', '', '## Verdict', '');
|
|
56
|
+
if (analysis.passed) {
|
|
57
|
+
lines.push('**PASSED** - Code meets quality standards.');
|
|
58
|
+
lines.push('');
|
|
59
|
+
lines.push('You may present this code to the user or call `verify` for final confirmation.');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
lines.push('**NEEDS WORK** - Address the issues above before proceeding.');
|
|
66
63
|
lines.push('');
|
|
64
|
+
lines.push('Fix critical issues first, then warnings, then call `validate` again.');
|
|
67
65
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
lines.push('2. **WARNINGS** - Should fix (style, best practices)');
|
|
73
|
-
lines.push('3. **Score** - Compliance 0-100 with justification');
|
|
74
|
-
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
66
|
+
return {
|
|
67
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
68
|
+
isError: !analysis.passed,
|
|
69
|
+
};
|
|
75
70
|
}
|
|
76
71
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/tools/handlers/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/tools/handlers/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Schema for verify tool input.
|
|
4
|
+
*/
|
|
5
|
+
export declare const VerifySchema: z.ZodObject<{
|
|
6
|
+
code: z.ZodString;
|
|
7
|
+
tests: z.ZodOptional<z.ZodString>;
|
|
8
|
+
interfaces: z.ZodOptional<z.ZodString>;
|
|
9
|
+
task_type: z.ZodOptional<z.ZodEnum<{
|
|
10
|
+
security: "security";
|
|
11
|
+
feature: "feature";
|
|
12
|
+
bugfix: "bugfix";
|
|
13
|
+
refactor: "refactor";
|
|
14
|
+
test: "test";
|
|
15
|
+
performance: "performance";
|
|
16
|
+
}>>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type VerifyInput = z.infer<typeof VerifySchema>;
|
|
19
|
+
/**
|
|
20
|
+
* Handler for the verify tool.
|
|
21
|
+
*
|
|
22
|
+
* This is the "gate" that LLMs must pass before presenting code to the user.
|
|
23
|
+
* It analyzes all generated code and returns PASS/FAIL with specific feedback.
|
|
24
|
+
*
|
|
25
|
+
* Key principles:
|
|
26
|
+
* - Tests are REQUIRED (TDD compliance)
|
|
27
|
+
* - Interfaces are strongly recommended (DI)
|
|
28
|
+
* - Critical issues block passing
|
|
29
|
+
* - Clear feedback on what to fix
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleVerify(args: Record<string, unknown>): Promise<{
|
|
32
|
+
content: Array<{
|
|
33
|
+
type: 'text';
|
|
34
|
+
text: string;
|
|
35
|
+
}>;
|
|
36
|
+
isError?: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;iBAKvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,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,CAiGhF"}
|