@stackguide/mcp-server 2.3.2 → 3.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 (56) hide show
  1. package/README.md +82 -16
  2. package/dist/config/healthWeights.d.ts +87 -0
  3. package/dist/config/healthWeights.d.ts.map +1 -0
  4. package/dist/config/healthWeights.js +238 -0
  5. package/dist/config/healthWeights.js.map +1 -0
  6. package/dist/config/types.d.ts +104 -0
  7. package/dist/config/types.d.ts.map +1 -1
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/handlers/generate.d.ts +24 -0
  10. package/dist/handlers/generate.d.ts.map +1 -0
  11. package/dist/handlers/generate.js +845 -0
  12. package/dist/handlers/generate.js.map +1 -0
  13. package/dist/handlers/health.d.ts +19 -0
  14. package/dist/handlers/health.d.ts.map +1 -0
  15. package/dist/handlers/health.js +401 -0
  16. package/dist/handlers/health.js.map +1 -0
  17. package/dist/handlers/help.d.ts +1 -1
  18. package/dist/handlers/help.d.ts.map +1 -1
  19. package/dist/handlers/help.js +70 -10
  20. package/dist/handlers/help.js.map +1 -1
  21. package/dist/handlers/index.d.ts +2 -0
  22. package/dist/handlers/index.d.ts.map +1 -1
  23. package/dist/handlers/index.js +2 -0
  24. package/dist/handlers/index.js.map +1 -1
  25. package/dist/handlers/review.d.ts +12 -0
  26. package/dist/handlers/review.d.ts.map +1 -1
  27. package/dist/handlers/review.js +220 -21
  28. package/dist/handlers/review.js.map +1 -1
  29. package/dist/handlers/setup.d.ts +1 -0
  30. package/dist/handlers/setup.d.ts.map +1 -1
  31. package/dist/handlers/setup.js +102 -5
  32. package/dist/handlers/setup.js.map +1 -1
  33. package/dist/index.js +6 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/services/analysisCache.d.ts +110 -0
  36. package/dist/services/analysisCache.d.ts.map +1 -0
  37. package/dist/services/analysisCache.js +233 -0
  38. package/dist/services/analysisCache.js.map +1 -0
  39. package/dist/services/codeAnalyzer.d.ts +73 -22
  40. package/dist/services/codeAnalyzer.d.ts.map +1 -1
  41. package/dist/services/codeAnalyzer.js +462 -44
  42. package/dist/services/codeAnalyzer.js.map +1 -1
  43. package/dist/services/conventionDetector.d.ts +40 -0
  44. package/dist/services/conventionDetector.d.ts.map +1 -0
  45. package/dist/services/conventionDetector.js +465 -0
  46. package/dist/services/conventionDetector.js.map +1 -0
  47. package/dist/services/cursorDirectory.d.ts +29 -2
  48. package/dist/services/cursorDirectory.d.ts.map +1 -1
  49. package/dist/services/cursorDirectory.js +260 -9
  50. package/dist/services/cursorDirectory.js.map +1 -1
  51. package/dist/tools/definitions.d.ts +125 -0
  52. package/dist/tools/definitions.d.ts.map +1 -1
  53. package/dist/tools/definitions.js +62 -1
  54. package/dist/tools/definitions.js.map +1 -1
  55. package/dist/utils/validation.d.ts +2 -2
  56. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/handlers/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Health handler - Project Health Score Analysis
3
+ * Phase 6: Advanced Features
4
+ *
5
+ * Improvements:
6
+ * - Configurable weights via stackguide.config.json
7
+ * - Historical tracking of health scores
8
+ * - Project-specific benchmarking
9
+ */
10
+ import { ServerState, ToolResponse } from './types.js';
11
+ interface HealthArgs {
12
+ projectPath?: string;
13
+ detailed?: boolean;
14
+ showWeights?: boolean;
15
+ saveHistory?: boolean;
16
+ }
17
+ export declare function handleHealth(args: HealthArgs, state: ServerState): Promise<ToolResponse>;
18
+ export {};
19
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/handlers/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AAWrE,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkUD,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CA+GvB"}
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Health handler - Project Health Score Analysis
3
+ * Phase 6: Advanced Features
4
+ *
5
+ * Improvements:
6
+ * - Configurable weights via stackguide.config.json
7
+ * - Historical tracking of health scores
8
+ * - Project-specific benchmarking
9
+ */
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import { jsonResponse } from './types.js';
13
+ import { logger } from '../utils/logger.js';
14
+ import { analyzeCode } from '../services/codeAnalyzer.js';
15
+ import { getHealthWeights, getGradeFromScore, calculateIssueDeduction, getWeightsDocumentation } from '../config/healthWeights.js';
16
+ const HISTORY_FILE = '.stackguide/health-history.json';
17
+ const MAX_HISTORY_ENTRIES = 100;
18
+ function getGradeEmoji(grade) {
19
+ const emojis = {
20
+ A: '🌟',
21
+ B: '✅',
22
+ C: '⚠️',
23
+ D: '🔶',
24
+ F: '❌',
25
+ };
26
+ return emojis[grade] || '❓';
27
+ }
28
+ /**
29
+ * Load health history from disk
30
+ */
31
+ function loadHealthHistory(projectPath) {
32
+ const historyPath = path.join(projectPath, HISTORY_FILE);
33
+ try {
34
+ if (fs.existsSync(historyPath)) {
35
+ const content = fs.readFileSync(historyPath, 'utf-8');
36
+ return JSON.parse(content);
37
+ }
38
+ }
39
+ catch (error) {
40
+ logger.debug('Failed to load health history', { error });
41
+ }
42
+ return { projectPath, entries: [] };
43
+ }
44
+ /**
45
+ * Save health history to disk
46
+ */
47
+ function saveHealthHistory(projectPath, history) {
48
+ const historyPath = path.join(projectPath, HISTORY_FILE);
49
+ const historyDir = path.dirname(historyPath);
50
+ try {
51
+ if (!fs.existsSync(historyDir)) {
52
+ fs.mkdirSync(historyDir, { recursive: true });
53
+ }
54
+ // Limit history entries
55
+ if (history.entries.length > MAX_HISTORY_ENTRIES) {
56
+ history.entries = history.entries.slice(-MAX_HISTORY_ENTRIES);
57
+ }
58
+ fs.writeFileSync(historyPath, JSON.stringify(history, null, 2));
59
+ logger.debug('Saved health history');
60
+ }
61
+ catch (error) {
62
+ logger.debug('Failed to save health history', { error });
63
+ }
64
+ }
65
+ /**
66
+ * Add entry to health history
67
+ */
68
+ function addHistoryEntry(projectPath, score, grade, categories) {
69
+ const history = loadHealthHistory(projectPath);
70
+ history.entries.push({
71
+ timestamp: new Date().toISOString(),
72
+ score,
73
+ grade,
74
+ categories: Object.fromEntries(categories.map(c => [c.name, c.score]))
75
+ });
76
+ saveHealthHistory(projectPath, history);
77
+ }
78
+ /**
79
+ * Get health trend from history
80
+ */
81
+ function getHealthTrend(projectPath) {
82
+ const history = loadHealthHistory(projectPath);
83
+ if (history.entries.length < 2) {
84
+ return null;
85
+ }
86
+ const recent = history.entries.slice(-5);
87
+ const oldest = recent[0].score;
88
+ const newest = recent[recent.length - 1].score;
89
+ const change = newest - oldest;
90
+ if (change > 5)
91
+ return { trend: 'improving', change };
92
+ if (change < -5)
93
+ return { trend: 'declining', change };
94
+ return { trend: 'stable', change };
95
+ }
96
+ // Analyze configuration quality
97
+ function analyzeConfiguration(state, weights) {
98
+ const issues = [];
99
+ const suggestions = [];
100
+ const maxScore = weights.categories.configuration.maxScore;
101
+ let score = maxScore;
102
+ const hasConfig = !!state.activeProjectType;
103
+ const hasRules = state.loadedRules.length > 0;
104
+ const hasKnowledge = state.loadedKnowledge.length > 0;
105
+ if (!hasConfig) {
106
+ issues.push('No project type configured');
107
+ suggestions.push('Run setup to configure your project type');
108
+ score -= maxScore * 0.25;
109
+ }
110
+ if (!hasRules) {
111
+ issues.push('No rules loaded');
112
+ suggestions.push('Run setup to load rules for your project');
113
+ score -= maxScore * 0.25;
114
+ }
115
+ if (!hasKnowledge) {
116
+ issues.push('No knowledge base loaded');
117
+ suggestions.push('Run setup to load knowledge base');
118
+ score -= maxScore * 0.25;
119
+ }
120
+ if (state.activeConfiguration?.customRules?.length === 0) {
121
+ suggestions.push('Consider adding custom rules for your project');
122
+ score -= maxScore * 0.1;
123
+ }
124
+ return {
125
+ name: weights.categories.configuration.name,
126
+ score: Math.max(0, Math.round(score)),
127
+ maxScore,
128
+ issues,
129
+ suggestions,
130
+ };
131
+ }
132
+ // Analyze code quality based on review results
133
+ function analyzeCodeQuality(analysisResult, weights) {
134
+ const issues = [];
135
+ const suggestions = [];
136
+ const maxScore = weights.categories.codeQuality.maxScore;
137
+ let score = maxScore;
138
+ if (!analysisResult) {
139
+ return {
140
+ name: weights.categories.codeQuality.name,
141
+ score: Math.round(maxScore * 0.5),
142
+ maxScore,
143
+ issues: ['No code analysis performed'],
144
+ suggestions: ['Run review tool to analyze code'],
145
+ };
146
+ }
147
+ // Deduct points based on issues using configurable weights
148
+ const criticalCount = analysisResult.issues.filter(i => i.severity === 'error').length;
149
+ const warningCount = analysisResult.issues.filter(i => i.severity === 'warning').length;
150
+ const infoCount = analysisResult.issues.filter(i => i.severity === 'info').length;
151
+ score -= calculateIssueDeduction('error', criticalCount, weights);
152
+ score -= calculateIssueDeduction('warning', warningCount, weights);
153
+ score -= calculateIssueDeduction('info', infoCount, weights);
154
+ if (criticalCount > 0) {
155
+ issues.push(`${criticalCount} critical issue(s) found`);
156
+ }
157
+ if (warningCount > 0) {
158
+ issues.push(`${warningCount} warning(s) found`);
159
+ }
160
+ // Add specific suggestions based on patterns
161
+ const categories = new Set(analysisResult.issues.map(i => i.category));
162
+ if (categories.has('security')) {
163
+ suggestions.push('Address security vulnerabilities immediately');
164
+ }
165
+ if (categories.has('performance')) {
166
+ suggestions.push('Review performance optimizations');
167
+ }
168
+ if (categories.has('maintainability')) {
169
+ suggestions.push('Refactor for better maintainability');
170
+ }
171
+ if (categories.has('best-practice')) {
172
+ suggestions.push('Follow framework best practices');
173
+ }
174
+ return {
175
+ name: weights.categories.codeQuality.name,
176
+ score: Math.max(0, Math.min(maxScore, Math.round(score))),
177
+ maxScore,
178
+ issues,
179
+ suggestions,
180
+ };
181
+ }
182
+ // Analyze structure
183
+ function analyzeStructure(state, weights) {
184
+ const issues = [];
185
+ const suggestions = [];
186
+ const maxScore = weights.categories.structure.maxScore;
187
+ let score = maxScore;
188
+ // Check if project type is detected
189
+ if (!state.activeProjectType) {
190
+ issues.push('Project structure not analyzed');
191
+ suggestions.push('Run setup to detect project structure');
192
+ score -= maxScore * 0.5;
193
+ }
194
+ else {
195
+ // Project type detected - good structure
196
+ if (state.loadedRules.length < 3) {
197
+ suggestions.push('Load more rules for comprehensive guidance');
198
+ score -= maxScore * 0.25;
199
+ }
200
+ }
201
+ return {
202
+ name: weights.categories.structure.name,
203
+ score: Math.max(0, Math.round(score)),
204
+ maxScore,
205
+ issues,
206
+ suggestions,
207
+ };
208
+ }
209
+ // Analyze documentation
210
+ function analyzeDocumentation(state, weights) {
211
+ const issues = [];
212
+ const suggestions = [];
213
+ const maxScore = weights.categories.documentation.maxScore;
214
+ let score = maxScore;
215
+ if (state.loadedKnowledge.length === 0) {
216
+ issues.push('No knowledge/documentation loaded');
217
+ score -= maxScore * 0.33;
218
+ }
219
+ if (!state.activeProjectType) {
220
+ suggestions.push('Configure project type for tailored documentation');
221
+ score -= maxScore * 0.2;
222
+ }
223
+ return {
224
+ name: weights.categories.documentation.name,
225
+ score: Math.max(0, Math.round(score)),
226
+ maxScore,
227
+ issues,
228
+ suggestions,
229
+ };
230
+ }
231
+ // Analyze testing readiness
232
+ function analyzeTestingReadiness(state, weights) {
233
+ const issues = [];
234
+ const suggestions = [];
235
+ const maxScore = weights.categories.testing.maxScore;
236
+ let score = maxScore;
237
+ // Check if project has testing setup (inferred from project type)
238
+ const hasTestingSupport = state.activeProjectType?.includes('typescript') ||
239
+ state.activeProjectType?.includes('react') ||
240
+ state.activeProjectType?.includes('node');
241
+ if (!hasTestingSupport) {
242
+ suggestions.push('Consider adding a testing framework');
243
+ score -= maxScore * 0.33;
244
+ }
245
+ // Check if any loaded rules mention testing
246
+ const hasTestingRules = state.loadedRules.some(r => r.content?.toLowerCase().includes('test') || r.name?.toLowerCase().includes('test'));
247
+ if (!hasTestingRules) {
248
+ suggestions.push('Add custom rules for testing guidelines');
249
+ score -= maxScore * 0.13;
250
+ }
251
+ return {
252
+ name: weights.categories.testing.name,
253
+ score: Math.max(0, Math.round(score)),
254
+ maxScore,
255
+ issues,
256
+ suggestions,
257
+ };
258
+ }
259
+ export async function handleHealth(args, state) {
260
+ const { detailed = true, showWeights = false, saveHistory = true } = args;
261
+ const projectPath = process.cwd();
262
+ logger.info('Generating health report', { detailed, showWeights });
263
+ // Load configurable weights
264
+ const weights = getHealthWeights(projectPath);
265
+ // Show weights documentation if requested
266
+ if (showWeights) {
267
+ return jsonResponse({
268
+ documentation: getWeightsDocumentation(weights),
269
+ currentWeights: weights
270
+ });
271
+ }
272
+ // Perform a sample code analysis if rules are loaded
273
+ let codeAnalysis = null;
274
+ if (state.loadedRules.length > 0 && state.activeProjectType) {
275
+ // Use first rule content as sample for basic analysis
276
+ const sampleContent = state.loadedRules[0]?.content || '';
277
+ try {
278
+ codeAnalysis = analyzeCode('sample.ts', sampleContent, 'all');
279
+ }
280
+ catch (e) {
281
+ logger.warn('Code analysis failed', { error: e });
282
+ }
283
+ }
284
+ // Collect all category scores using configurable weights
285
+ const categories = [
286
+ analyzeConfiguration(state, weights),
287
+ analyzeCodeQuality(codeAnalysis, weights),
288
+ analyzeStructure(state, weights),
289
+ analyzeDocumentation(state, weights),
290
+ analyzeTestingReadiness(state, weights),
291
+ ];
292
+ // Calculate overall score
293
+ const totalScore = categories.reduce((sum, cat) => sum + cat.score, 0);
294
+ const maxTotalScore = categories.reduce((sum, cat) => sum + cat.maxScore, 0);
295
+ const overallScore = Math.round((totalScore / maxTotalScore) * 100);
296
+ const grade = getGradeFromScore(overallScore, weights);
297
+ // Save to history if enabled
298
+ if (saveHistory) {
299
+ addHistoryEntry(projectPath, overallScore, grade, categories);
300
+ }
301
+ // Get health trend
302
+ const trend = getHealthTrend(projectPath);
303
+ // Collect critical issues
304
+ const criticalIssues = categories
305
+ .flatMap(cat => cat.issues)
306
+ .filter(issue => issue.includes('critical') ||
307
+ issue.includes('security') ||
308
+ issue.includes('not configured'));
309
+ // Top recommendations
310
+ const recommendations = categories
311
+ .flatMap(cat => cat.suggestions)
312
+ .slice(0, 5);
313
+ // Generate summary
314
+ const summary = generateSummary(grade, overallScore, categories);
315
+ const report = {
316
+ overallScore,
317
+ grade,
318
+ categories,
319
+ summary,
320
+ criticalIssues,
321
+ recommendations,
322
+ };
323
+ if (!detailed) {
324
+ return jsonResponse({
325
+ score: overallScore,
326
+ grade: `${getGradeEmoji(grade)} ${grade}`,
327
+ summary,
328
+ trend: trend ? `${trend.trend} (${trend.change > 0 ? '+' : ''}${trend.change})` : undefined,
329
+ topRecommendations: recommendations.slice(0, 3),
330
+ });
331
+ }
332
+ return jsonResponse({
333
+ header: `🏥 Project Health Report`,
334
+ score: `${overallScore}/100`,
335
+ grade: `${getGradeEmoji(grade)} Grade: ${grade}`,
336
+ trend: trend ? {
337
+ direction: trend.trend,
338
+ change: `${trend.change > 0 ? '+' : ''}${trend.change} points`,
339
+ emoji: trend.trend === 'improving' ? '📈' : trend.trend === 'declining' ? '📉' : '➡️'
340
+ } : undefined,
341
+ summary,
342
+ categories: categories.map(cat => ({
343
+ name: cat.name,
344
+ score: `${cat.score}/${cat.maxScore}`,
345
+ percentage: Math.round((cat.score / cat.maxScore) * 100),
346
+ status: cat.score >= cat.maxScore * 0.8 ? '✅' : cat.score >= cat.maxScore * 0.5 ? '⚠️' : '❌',
347
+ issues: cat.issues.length > 0 ? cat.issues : undefined,
348
+ suggestions: cat.suggestions.length > 0 ? cat.suggestions : undefined,
349
+ })),
350
+ criticalIssues: criticalIssues.length > 0 ? criticalIssues : undefined,
351
+ recommendations,
352
+ weightsUsed: weights.version,
353
+ nextSteps: generateNextSteps(report),
354
+ });
355
+ }
356
+ function generateSummary(grade, score, categories) {
357
+ const weakAreas = categories
358
+ .filter(cat => cat.score < cat.maxScore * 0.6)
359
+ .map(cat => cat.name.toLowerCase());
360
+ if (grade === 'A') {
361
+ return 'Excellent! Your project is in great health with minimal issues.';
362
+ }
363
+ else if (grade === 'B') {
364
+ return 'Good project health with some areas for improvement.';
365
+ }
366
+ else if (grade === 'C') {
367
+ return `Moderate health. Focus on improving: ${weakAreas.join(', ')}.`;
368
+ }
369
+ else if (grade === 'D') {
370
+ return `Project needs attention. Weak areas: ${weakAreas.join(', ')}.`;
371
+ }
372
+ return `Critical issues detected. Address: ${weakAreas.join(', ')} immediately.`;
373
+ }
374
+ function generateNextSteps(report) {
375
+ const steps = [];
376
+ if (report.grade === 'F' || report.grade === 'D') {
377
+ steps.push('1. Address critical issues first');
378
+ steps.push('2. Run setup to configure project properly');
379
+ }
380
+ if (report.criticalIssues.length > 0) {
381
+ steps.push('Run review on critical files');
382
+ }
383
+ const lowCategories = report.categories.filter(c => c.score < c.maxScore * 0.5);
384
+ lowCategories.forEach(cat => {
385
+ if (cat.name === 'Configuration') {
386
+ steps.push('Configure project with: stackguide setup');
387
+ }
388
+ else if (cat.name === 'Code Quality') {
389
+ steps.push('Analyze code with: stackguide review');
390
+ }
391
+ else if (cat.name === 'Documentation') {
392
+ steps.push('Check docs with: stackguide docs');
393
+ }
394
+ });
395
+ if (steps.length === 0) {
396
+ steps.push('Continue maintaining good practices');
397
+ steps.push('Regularly run health checks');
398
+ }
399
+ return steps.slice(0, 5);
400
+ }
401
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/handlers/health.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { ToolResponse } from './types.js';
5
5
  interface HelpArgs {
6
- topic?: 'setup' | 'rules' | 'review' | 'cursor' | 'docs' | 'config' | 'all';
6
+ topic?: 'setup' | 'rules' | 'review' | 'cursor' | 'docs' | 'config' | 'generate' | 'health' | 'all';
7
7
  }
8
8
  export declare function handleHelp(args: HelpArgs): Promise<ToolResponse>;
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AAExD,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC7E;AAmDD,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CA4BtE"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AAExD,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;CACrG;AA+FD,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CA8CtE"}
@@ -5,11 +5,16 @@ import { SUPPORTED_PROJECTS } from '../config/types.js';
5
5
  import { textResponse } from './types.js';
6
6
  const helpContent = {
7
7
  setup: `## setup
8
- Configure StackGuide for your project.
8
+ Configure StackGuide for your project with interactive wizard.
9
9
 
10
10
  **Auto-detect:** \`setup\` or \`setup path:"."\`
11
11
  **Manual:** \`setup type:"react-typescript"\`
12
12
 
13
+ The wizard will provide:
14
+ - Recommended tools and VS Code extensions
15
+ - Tips specific to your project type
16
+ - Next steps for optimal setup
17
+
13
18
  Available types: ${Object.keys(SUPPORTED_PROJECTS).join(', ')}`,
14
19
  rules: `## rules
15
20
  Manage coding rules.
@@ -19,12 +24,17 @@ Manage coding rules.
19
24
  **Get:** \`rules action:"get" query:"rule-id"\`
20
25
  **Select:** \`rules action:"select" ids:["id1","id2"]\``,
21
26
  review: `## review
22
- Review code against active rules.
27
+ Review code against active rules with Quick Fix suggestions.
23
28
 
24
29
  **File:** \`review file:"src/index.ts"\`
25
30
  **URL:** \`review url:"https://..."\`
26
31
  **Project:** \`review project:true\`
27
- **Focus:** \`review project:true focus:"security"\``,
32
+ **Focus:** \`review project:true focus:"security"\`
33
+
34
+ Now includes:
35
+ - 🔧 Quick Fix suggestions with code replacements
36
+ - Score (0-100) for code quality
37
+ - Categorized issues by severity`,
28
38
  cursor: `## cursor
29
39
  Browse cursor.directory community rules.
30
40
 
@@ -44,7 +54,39 @@ Save and load configurations.
44
54
 
45
55
  **Save:** \`config action:"save" name:"my-config"\`
46
56
  **Load:** \`config action:"load" id:"config-id"\`
47
- **List:** \`config action:"list"\``
57
+ **List:** \`config action:"list"\``,
58
+ generate: `## generate
59
+ Generate boilerplate code from templates.
60
+
61
+ **Component:** \`generate type:"component" name:"UserCard"\`
62
+ **Hook:** \`generate type:"hook" name:"useAuth"\`
63
+ **Service:** \`generate type:"service" name:"ApiService"\`
64
+ **Test:** \`generate type:"test" name:"UserCard"\`
65
+ **API:** \`generate type:"api" name:"Users"\`
66
+ **Model:** \`generate type:"model" name:"User"\`
67
+ **Utility:** \`generate type:"util" name:"Format"\`
68
+
69
+ **Options:**
70
+ - typescript: true/false (auto-detected)
71
+ - withTests: include test file
72
+ - withStyles: include CSS module (components)
73
+ - framework: "nextjs", "express", "vitest", "jest"`,
74
+ health: `## health
75
+ Get project health score and recommendations.
76
+
77
+ **Basic:** \`health\`
78
+ **Detailed:** \`health detailed:true\`
79
+
80
+ Returns:
81
+ - Overall score (0-100) with grade (A-F)
82
+ - Category breakdown:
83
+ - Configuration
84
+ - Code Quality
85
+ - Project Structure
86
+ - Documentation
87
+ - Testing Readiness
88
+ - Critical issues
89
+ - Top recommendations`
48
90
  };
49
91
  export async function handleHelp(args) {
50
92
  const { topic = 'all' } = args;
@@ -52,23 +94,41 @@ export async function handleHelp(args) {
52
94
  return textResponse(`# StackGuide Help
53
95
 
54
96
  ## Quick Start
55
- 1. \`setup\` - Auto-configure for your project
97
+ 1. \`setup\` - Auto-configure for your project (with wizard)
56
98
  2. \`context\` - See loaded rules
57
99
  3. \`review file:"src/index.ts"\` - Review your code
100
+ 4. \`health\` - Check project health
101
+
102
+ ## Available Tools (12)
58
103
 
59
- ## Available Tools
60
- - **setup** - Configure project
104
+ ### Core Tools
105
+ - **setup** - Configure project with interactive wizard
61
106
  - **context** - View current context
62
- - **rules** - Manage rules
107
+ - **rules** - Manage coding rules
63
108
  - **knowledge** - Access knowledge base
64
- - **review** - Code review
109
+ - **review** - Code review with Quick Fixes
110
+
111
+ ### Advanced Features
112
+ - **generate** - Generate boilerplate code (NEW!)
113
+ - **health** - Project health score (NEW!)
114
+
115
+ ### Integration Tools
65
116
  - **cursor** - Browse cursor.directory
66
117
  - **docs** - Web documentation
67
118
  - **config** - Save/load configurations
68
119
  - **custom_rule** - Create custom rules
120
+ - **help** - This help content
121
+
122
+ ## Examples
123
+ \`\`\`
124
+ setup type:"react-typescript"
125
+ generate type:"component" name:"UserCard"
126
+ review file:"src/App.tsx" focus:"performance"
127
+ health detailed:true
128
+ \`\`\`
69
129
 
70
130
  Use \`help topic:"setup"\` for details on a specific tool.`);
71
131
  }
72
- return textResponse(helpContent[topic] || `Unknown topic: ${topic}. Available: setup, rules, review, cursor, docs, config, all`);
132
+ return textResponse(helpContent[topic] || `Unknown topic: ${topic}. Available: setup, rules, review, cursor, docs, config, generate, health, all`);
73
133
  }
74
134
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,GAA2B;IAC1C,KAAK,EAAE;;;;;;mBAMU,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAE7D,KAAK,EAAE;;;;;;wDAM+C;IAEtD,MAAM,EAAE;;;;;;oDAM0C;IAElD,MAAM,EAAE;;;;;;;wDAO8C;IAEtD,IAAI,EAAE;;;;;mDAK2C;IAEjD,MAAM,EAAE;;;;;mCAKyB;CAClC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAE/B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;;;;;;;;;;;;;;;;;;2DAkBmC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,YAAY,CACjB,WAAW,CAAC,KAAK,CAAC,IAAI,kBAAkB,KAAK,8DAA8D,CAC5G,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,GAA2B;IAC1C,KAAK,EAAE;;;;;;;;;;;mBAWU,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAE7D,KAAK,EAAE;;;;;;wDAM+C;IAEtD,MAAM,EAAE;;;;;;;;;;;iCAWuB;IAE/B,MAAM,EAAE;;;;;;;wDAO8C;IAEtD,IAAI,EAAE;;;;;mDAK2C;IAEjD,MAAM,EAAE;;;;;mCAKyB;IAEjC,QAAQ,EAAE;;;;;;;;;;;;;;;mDAeuC;IAEjD,MAAM,EAAE;;;;;;;;;;;;;;;sBAeY;CACrB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAE/B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DAoCmC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,YAAY,CACjB,WAAW,CAAC,KAAK,CAAC,IAAI,kBAAkB,KAAK,gFAAgF,CAC9H,CAAC;AACJ,CAAC"}
@@ -11,5 +11,7 @@ export { handleDocs } from './docs.js';
11
11
  export { handleConfig } from './config.js';
12
12
  export { handleCustomRule } from './custom-rule.js';
13
13
  export { handleHelp } from './help.js';
14
+ export { handleGenerate } from './generate.js';
15
+ export { handleHealth } from './health.js';
14
16
  export * from './types.js';
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,cAAc,YAAY,CAAC"}
@@ -11,5 +11,7 @@ export { handleDocs } from './docs.js';
11
11
  export { handleConfig } from './config.js';
12
12
  export { handleCustomRule } from './custom-rule.js';
13
13
  export { handleHelp } from './help.js';
14
+ export { handleGenerate } from './generate.js';
15
+ export { handleHealth } from './health.js';
14
16
  export * from './types.js';
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,cAAc,YAAY,CAAC"}