mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-31 22:23:27 +08:00
feat: automatic project type and framework detection (#293)
Add SessionStart hook integration that auto-detects project languages and frameworks by inspecting marker files and dependency manifests. Supports 12 languages (Python, TypeScript, Go, Rust, Ruby, Java, C#, Swift, Kotlin, Elixir, PHP, JavaScript) and 25+ frameworks (Next.js, React, Django, FastAPI, Rails, Laravel, Spring, etc.). Detection output is injected into Claude's context as JSON, enabling context-aware recommendations without loading irrelevant rules. - New: scripts/lib/project-detect.js (cross-platform detection library) - Modified: scripts/hooks/session-start.js (integration) - New: tests/lib/project-detect.test.js (28 tests, all passing) Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,7 @@ const {
|
||||
} = require('../lib/utils');
|
||||
const { getPackageManager, getSelectionPrompt } = require('../lib/package-manager');
|
||||
const { listAliases } = require('../lib/session-aliases');
|
||||
const { detectProjectType } = require('../lib/project-detect');
|
||||
|
||||
async function main() {
|
||||
const sessionsDir = getSessionsDir();
|
||||
@@ -71,6 +72,22 @@ async function main() {
|
||||
log(getSelectionPrompt());
|
||||
}
|
||||
|
||||
// Detect project type and frameworks (#293)
|
||||
const projectInfo = detectProjectType();
|
||||
if (projectInfo.languages.length > 0 || projectInfo.frameworks.length > 0) {
|
||||
const parts = [];
|
||||
if (projectInfo.languages.length > 0) {
|
||||
parts.push(`languages: ${projectInfo.languages.join(', ')}`);
|
||||
}
|
||||
if (projectInfo.frameworks.length > 0) {
|
||||
parts.push(`frameworks: ${projectInfo.frameworks.join(', ')}`);
|
||||
}
|
||||
log(`[SessionStart] Project detected — ${parts.join('; ')}`);
|
||||
output(`Project type: ${JSON.stringify(projectInfo)}`);
|
||||
} else {
|
||||
log('[SessionStart] No specific project type detected');
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user