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- CheckdependenciesanddevDependenciesfor 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/orsrc/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
code
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.