Framework Detector
About
Framework Detector automatically identifies which of 6 major frameworks a project uses through multi-signal analysis with confidence scoring. Use this skill before loading framework-specific skills to ensure the correct tools are applied. It supports NestJS, React, Phoenix, Rails, .NET/ASP.NET Core, and Blazor for JavaScript and TypeScript projects.
Documentation
Framework Detector Skill
Quick Reference
When to Use: Automatically detect framework in project before loading framework-specific skills
Supported Frameworks: NestJS, React, Phoenix, Rails, .NET/ASP.NET Core, Blazor
Detection Method: Multi-signal analysis with weighted confidence scoring
Usage
Basic Detection
const FrameworkDetector = require('./detect-framework');
const detector = new FrameworkDetector('/path/to/project');
const result = await detector.detect();
console.log(result.primary); // "nestjs"
console.log(result.confidence); // 0.92
console.log(result.alternates); // [{ framework: "dotnet", confidence: 0.45 }]
CLI Usage
# Detect framework in current directory
./detect-framework.js
# Detect framework in specific project
./detect-framework.js /path/to/project
# Output format (JSON)
{
"primary": "react",
"confidence": 0.89,
"alternates": [],
"details": { ... }
}
Detection Signals
1. Package Manager (Weight: 10)
- Node.js:
package.jsondependencies - Ruby:
Gemfilegems - Elixir:
mix.exsdependencies - .NET:
*.csprojPackageReferences
2. Files (Weight: 8-9)
- Required: Framework-specific config files
- Optional: Common project structure files
- Wildcards: Pattern matching (e.g.,
*.csproj)
3. Imports (Weight: 7-8)
- Code pattern analysis in source files
- Regex-based matching
- File sampling for performance (max 20 files)
4. Boost Factors (Multiplier: 1.2-1.6x)
- Strong indicators multiply confidence
- Framework-specific patterns
- Examples:
- NestJS:
nest-cli.json(+50%) - React: JSX files (+40%)
- Blazor:
.razorfiles (+60%)
- NestJS:
Confidence Threshold
Default: 0.8 (80% confidence required)
Interpretation:
- ≥ 0.9: Very high confidence
- 0.8-0.9: High confidence
- 0.6-0.8: Medium confidence (below threshold)
- < 0.6: Low confidence
Framework-Specific Patterns
NestJS Detection
✓ @nestjs/core in package.json
✓ nest-cli.json exists
✓ @Module decorator in .ts files
✓ @Controller decorator in .ts files
React Detection
✓ react in package.json
✓ .jsx or .tsx files exist
✓ useState or useEffect in code
✓ createRoot in code
Phoenix Detection
✓ {:phoenix, in mix.exs
✓ config/config.exs exists
✓ Phoenix.Endpoint in .ex files
✓ Phoenix.Router in .ex files
Rails Detection
✓ gem 'rails' in Gemfile
✓ config/application.rb exists
✓ Rails.application in code
✓ ActiveRecord::Base in code
.NET Detection
✓ Microsoft.AspNetCore in .csproj
✓ Program.cs exists
✓ [ApiController] in .cs files
✓ using Microsoft.AspNetCore
Blazor Detection
✓ Microsoft.AspNetCore.Components in .csproj
✓ .razor files exist
✓ @page directive in .razor files
✓ ComponentBase in code
Performance
Optimizations:
- File sampling (10-20 files max per check)
- Glob ignore patterns (node_modules, dist, build)
- Early exit on strong matches
- Async/await for parallel checks
Typical Detection Time: 100-500ms
Error Handling
No Frameworks Detected:
{
primary: null,
confidence: 0,
alternates: [],
details: {}
}
Multiple Frameworks (e.g., monorepo):
{
primary: "react",
confidence: 0.91,
alternates: [
{ framework: "nestjs", confidence: 0.87 }
]
}
Integration with SkillLoader
const { SkillLoader } = require('../skill-loader');
const FrameworkDetector = require('./detect-framework');
async function loadFrameworkSkill(projectRoot) {
// 1. Detect framework
const detector = new FrameworkDetector(projectRoot);
const result = await detector.detect();
// 2. Handle low confidence
if (result.confidence < 0.8) {
// Prompt user or use alternates
console.warn('Low confidence detection');
}
// 3. Load skill
const loader = new SkillLoader({
agentName: 'backend-developer',
agentVersion: '3.0.0'
});
const skill = await loader.loadSkill(result.primary, 'quick');
return skill;
}
Configuration
Edit framework-patterns.json to:
- Add new frameworks
- Adjust detection weights
- Modify confidence threshold
- Update boost factors
See Also
- framework-patterns.json - Detection patterns configuration
- detect-framework.js - Implementation source
- ../../lib/skill-loader.js - Skill loading integration
Quick Install
/plugin add https://github.com/FortiumPartners/ai-mesh/tree/main/framework-detectorCopy and paste this command in Claude Code to install this skill
GitHub 仓库
Related Skills
subagent-driven-development
DevelopmentThis skill executes implementation plans by dispatching a fresh subagent for each independent task, with code review between tasks. It enables fast iteration while maintaining quality gates through this review process. Use it when working on mostly independent tasks within the same session to ensure continuous progress with built-in quality checks.
algorithmic-art
MetaThis Claude Skill creates original algorithmic art using p5.js with seeded randomness and interactive parameters. It generates .md files for algorithmic philosophies, plus .html and .js files for interactive generative art implementations. Use it when developers need to create flow fields, particle systems, or other computational art while avoiding copyright issues.
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
cost-optimization
OtherThis Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.
