Auto-detect project tech stacks (React, Vue, Express, Django, etc.). Recognize package managers and configuration patterns. Use when starting work on any project, analyzing dependencies, or providing framework-specific guidance.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add shengdabai/Tony-Claude-Code-Skills --skill tech-stack-detection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Tech Stack Detection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/shengdabai-tech-stack-detection-tony-claude-code-skills)More formats (shields.io, HTML) on the badges page.
---
name: tech-stack-detection
description: Auto-detect project tech stacks (React, Vue, Express, Django, etc.). Recognize package managers and configuration patterns. Use when starting work on any project, analyzing dependencies, or providing framework-specific guidance.
---
# 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:
1. **Read `package.json`** - Check `dependencies` and `devDependencies` for framework packages
2. **Read `pyproject.toml`** - Check `[project.dependencies]` or `[tool.poetry.dependencies]`
3. **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:
1. **Framework name and version** (if determinable)
2. **Package manager** (with command examples)
3. **Key configuration files** to be aware of
4. **Directory conventions** the framework expects
5. **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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!