Framework Detection
When to Use
-
Starting work on an unfamiliar project
-
Determining appropriate tooling and patterns for recommendations
-
Providing framework-specific guidance and best practices
-
Identifying package manager for dependency operations
-
Understanding project architecture before making changes
Detection Methodology
Step 1: Package Manager Detection
Check for package manager indicators in the project root:
File Package Manager Ecosystem
package-lock.json
npm Node.js
yarn.lock
Yarn Node.js
pnpm-lock.yaml
pnpm Node.js
bun.lockb
Bun Node.js
requirements.txt
pip Python
Pipfile.lock
pipenv Python
poetry.lock
Poetry Python
uv.lock
uv Python
Cargo.lock
Cargo Rust
go.sum
Go Modules Go
Gemfile.lock
Bundler Ruby
composer.lock
Composer PHP
Step 2: Configuration File Analysis
Examine root-level configuration files for framework indicators:
-
Read package.json
-
Check dependencies and devDependencies for framework packages
-
Read pyproject.toml
-
Check [project.dependencies] or [tool.poetry.dependencies]
-
Read framework-specific configs - next.config.js , vite.config.ts , angular.json , etc.
Step 3: Directory Structure Patterns
Identify framework conventions:
-
app/ or src/app/
-
Next.js App Router, Angular
-
pages/
-
Next.js Pages Router, Nuxt.js
-
components/
-
React/Vue component-based architecture
-
routes/
-
Remix, SvelteKit
-
views/
-
Django, Rails, Laravel
-
controllers/
-
MVC frameworks (Rails, Laravel, NestJS)
Step 4: Framework-Specific Patterns
Apply detection patterns from the framework signatures reference.
Detection Workflow
START | v [Check lock files] --> Identify package manager | v [Read manifest] --> package.json / pyproject.toml / Cargo.toml | v [Check dependencies] --> Match against known frameworks | v [Check config files] --> Framework-specific configuration | v [Verify directory structure] --> Confirm framework conventions | v [Output] --> Framework, version, package manager, key patterns
Output Format
When reporting detected framework, include:
-
Framework name and version (if determinable)
-
Package manager (with command examples)
-
Key configuration files to be aware of
-
Directory conventions the framework expects
-
Common commands for development workflow
Best Practices
-
Always verify detection by checking multiple indicators (config + dependencies + structure)
-
Report confidence level when patterns are ambiguous
-
Note when multiple frameworks are present (e.g., Next.js + Tailwind + Prisma)
-
Check for meta-frameworks built on top of base frameworks
-
Consider monorepo patterns where different packages may use different frameworks
References
See references/framework-signatures.md for comprehensive detection patterns for all major frameworks.