Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:45:23 +08:00
commit bd9d7e2b88
10 changed files with 1473 additions and 0 deletions

67
hooks/on-prompt-submit.js Normal file
View File

@@ -0,0 +1,67 @@
/**
* On Prompt Submit Hook
*
* This hook runs before user prompts are sent to Claude.
* It gives tips if the user is submitting a request that can be enhanced with commands.
*/
module.exports = async (context) => {
const { prompt, files, metadata } = context;
// Track prompt patterns for analytics
const patterns = {
codeReview: /review|check|analyze.*code/i,
refactoring: /refactor|clean|improve/i,
testing: /test|spec|coverage/i,
};
// Detect intent
let detectedIntent = 'general';
for (const [intent, pattern] of Object.entries(patterns)) {
if (pattern.test(prompt)) {
detectedIntent = intent;
break;
}
}
// Add helpful context for specific intents
let enhancedPrompt = prompt;
let suggestions = [];
switch (detectedIntent) {
case 'codeReview':
suggestions.push('💡 Tip: Use /smart-review command for structured code review');
suggestions.push('💡 Smart review checks for bugs, security issues, and best practices');
break;
case 'refactoring':
suggestions.push('💡 Tip: The safe-refactoring skill ensures you refactor safely with tests');
suggestions.push('💡 Remember: refactor in small steps, running tests after each change');
break;
case 'testing':
suggestions.push('💡 Tip: Use /gen-tests command to generate comprehensive test suites');
suggestions.push('💡 The test-generator subagent can autonomously create tests');
break;
}
// console.log('Prompt submitted:', prompt);
// Log analytics data
console.error(JSON.stringify({
timestamp: new Date().toISOString(),
intent: detectedIntent,
promptLength: prompt.length,
filesContext: files.length,
}));
// Return enhanced context
return {
prompt: enhancedPrompt,
metadata: {
...metadata,
detectedIntent,
suggestions: suggestions.length > 0 ? suggestions : undefined,
},
};
};