AgentSkillsCN

stack-detector

自动从配置文件与源代码中识别项目的技术栈。适用场景: - 当您开始处理全新或陌生的代码库时; - 当您需要识别编程语言、框架或工具时; - 当您需要确定应使用哪些测试、静态分析或构建命令时; - 当您需要根据项目的具体技术特点调整开发模式时; - 当用户问“这是什么技术栈?”或“用的是什么框架?”时。 触发短语:识别技术栈、确定框架、识别技术、项目搭建、package.json、go.mod、Cargo.toml、requirements.txt。

SKILL.md
--- frontmatter
name: stack-detector
description: |
  Automatically detects project technology stack from configuration files and source code. Use when:
  - Starting work on a new or unfamiliar codebase
  - Need to identify programming language, frameworks, or tools
  - Determining which testing, linting, or build commands to use
  - Adapting patterns to the project's specific technology
  - Asked "what stack is this" or "what framework"
  Trigger phrases: detect stack, what framework, identify technology, project setup, package.json, go.mod, Cargo.toml, requirements.txt
allowed-tools: Read, Glob, Grep, Bash
model: haiku
user-invocable: false
context: fork
agent: Explore

Stack Detector

Automatically identifies the technology stack of a project by analyzing configuration files and source code patterns.

Detection Process

Step 1: Scan for Configuration Files

Look for these indicator files in the project root:

bash
# Run these checks (presence indicates stack)
ls -la package.json         # JavaScript/Node.js
ls -la pyproject.toml       # Python (modern)
ls -la requirements.txt     # Python
ls -la go.mod               # Go
ls -la Cargo.toml           # Rust
ls -la pom.xml              # Java (Maven)
ls -la build.gradle         # Java/Gradle
ls -la build.gradle.kts     # Kotlin (Gradle)
ls -la *.csproj             # C# / .NET
ls -la *.sln                # .NET Solution
ls -la Gemfile              # Ruby
ls -la composer.json        # PHP
ls -la pubspec.yaml         # Dart/Flutter
ls -la Package.swift        # Swift

Step 2: Identify Primary Language

Config FilePrimary LanguagePackage Manager
package.jsonJavaScript/TypeScriptnpm/yarn/pnpm/bun
pyproject.tomlPythonpip/poetry/uv
requirements.txtPythonpip
go.modGogo modules
Cargo.tomlRustcargo
pom.xmlJavaMaven
build.gradleJava/KotlinGradle
build.gradle.ktsKotlinGradle
*.csproj / *.slnC#dotnet
GemfileRubybundler
composer.jsonPHPcomposer
pubspec.yamlDartpub
Package.swiftSwiftSwiftPM

Step 2a: Detect Package Manager (JavaScript)

Lock FilePackage Manager
package-lock.jsonnpm
yarn.lockyarn
pnpm-lock.yamlpnpm
bun.lockbbun

Step 3: Detect Frameworks

JavaScript/TypeScript Frameworks

bash
# Check package.json for dependencies
grep -E '"(react|vue|angular|svelte|next|nuxt|express|fastify|hono|nestjs)"' package.json
DependencyFramework TypeCategory
react, react-domReactFrontend
nextNext.jsFull-stack
vueVue.jsFrontend
nuxtNuxt.jsFull-stack
@angular/coreAngularFrontend
svelteSvelteFrontend
expressExpressBackend
fastifyFastifyBackend
honoHonoBackend
@nestjs/coreNestJSBackend

Python Frameworks

bash
# Check pyproject.toml or requirements.txt
grep -E '(django|flask|fastapi|starlette)' pyproject.toml requirements.txt 2>/dev/null
DependencyFrameworkCategory
djangoDjangoFull-stack
flaskFlaskBackend
fastapiFastAPIBackend
starletteStarletteBackend

Go Frameworks

bash
# Check go.mod
grep -E '(gin|echo|fiber|chi)' go.mod 2>/dev/null

Rust Frameworks

bash
# Check Cargo.toml
grep -E '(actix|axum|rocket|warp)' Cargo.toml 2>/dev/null

PHP Frameworks

bash
# Check composer.json
grep -E '(laravel|symfony|slim|laminas)' composer.json 2>/dev/null
DependencyFrameworkCategory
laravel/frameworkLaravelFull-stack
symfony/framework-bundleSymfonyFull-stack
slim/slimSlimBackend
wordpressWordPressCMS

Ruby Frameworks

bash
# Check Gemfile
grep -E '(rails|sinatra|hanami)' Gemfile 2>/dev/null
DependencyFrameworkCategory
railsRuby on RailsFull-stack
sinatraSinatraBackend
hanamiHanamiFull-stack

C# / .NET Frameworks

bash
# Check *.csproj for PackageReference
grep -E '(Microsoft.AspNetCore|Blazor)' *.csproj 2>/dev/null
DependencyFrameworkCategory
Microsoft.AspNetCoreASP.NET CoreBackend
Microsoft.AspNetCore.ComponentsBlazorFrontend
Microsoft.Maui.NET MAUIMobile

Kotlin Frameworks

bash
# Check build.gradle.kts
grep -E '(ktor|spring)' build.gradle.kts 2>/dev/null
DependencyFrameworkCategory
io.ktorKtorBackend
org.springframework.bootSpring BootBackend
Android SDKAndroidMobile

Swift Frameworks

bash
# Check Package.swift or project for frameworks
grep -E '(vapor|perfect|kitura)' Package.swift 2>/dev/null
DependencyFrameworkCategory
vaporVaporBackend
SwiftUISwiftUIFrontend
UIKitUIKitFrontend

Step 4: Detect Database/ORM

IndicatorTechnology
prisma/schema.prismaPrisma ORM
drizzle.config.tsDrizzle ORM
typeorm in depsTypeORM
sequelize in depsSequelize
sqlalchemy in depsSQLAlchemy
django.dbDjango ORM
gorm in go.modGORM
diesel in Cargo.tomlDiesel

Step 5: Detect Testing Framework

Config/DependencyTesting Framework
vitest.config.*Vitest
jest.config.*Jest
pytest in depspytest
_test.go filesGo testing
#[test] in .rsRust testing
cypress.config.*Cypress
playwright.config.*Playwright

Step 6: Detect CI/CD

FileCI/CD Platform
.github/workflows/GitHub Actions
.gitlab-ci.ymlGitLab CI
JenkinsfileJenkins
.circleci/config.ymlCircleCI
azure-pipelines.ymlAzure DevOps

Step 7: Detect Infrastructure

FileInfrastructure
DockerfileDocker
docker-compose.ymlDocker Compose
*.tfTerraform
kubernetes/, k8s/Kubernetes
serverless.ymlServerless Framework

Output Format

After detection, output a stack profile:

yaml
Stack Profile:
  language: [Primary language]
  runtime: [Runtime version if detectable]
  package_manager: [npm|yarn|pip|cargo|etc]

  frontend:
    framework: [React|Vue|Angular|Svelte|None]
    styling: [Tailwind|CSS Modules|Styled Components|None]
    state: [Redux|Zustand|Pinia|None]

  backend:
    framework: [Express|FastAPI|Gin|None]
    orm: [Prisma|SQLAlchemy|GORM|None]
    database: [PostgreSQL|MySQL|MongoDB|None]

  testing:
    unit: [Vitest|Jest|pytest|None]
    e2e: [Playwright|Cypress|None]

  infrastructure:
    containerization: [Docker|None]
    orchestration: [Kubernetes|None]
    iac: [Terraform|None]
    ci_cd: [GitHub Actions|GitLab CI|None]

  recommended_skills:
    - [skill-name-1]
    - [skill-name-2]

Skill Recommendations

Based on detected stack, recommend loading these task-oriented skills:

ContextRecommended Skills
Any projectcode-quality, testing
With Prisma/SQLmigration
With Docker/K8s(use devops-sre agent)
API Developmentapi-design
Production Systemsobservability
New featuresspec-philosophy, interview
Security-sensitivesecurity-fundamentals

Usage

This skill is typically invoked automatically by other agents:

  1. Agent receives task
  2. Agent loads stack-detector
  3. Stack profile is generated
  4. Agent proceeds with stack-specific patterns (Claude already knows language best practices)

Rules (L1 - Hard)

Critical for accurate detection.

  • NEVER assume stack without evidence (inaccurate recommendations)

Defaults (L2 - Soft)

Important for reliable detection. Override with reasoning when appropriate.

  • Check multiple indicators (don't rely on single file)
  • Report uncertainty if mixed signals
  • List detected tools in output

Guidelines (L3)

Recommendations for thorough detection.

  • Consider checking recent git history for technology changes
  • Prefer checking actual source files over just config when ambiguous