Initial commit
This commit is contained in:
67
hooks/on-prompt-submit.js
Normal file
67
hooks/on-prompt-submit.js
Normal 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,
|
||||
},
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user