tech-detection
本文档定义了统一的技术栈检测流程。所有 Agent 在执行任务前,必须先按此协议检测项目技术栈,避免硬编码假设。
Claude Code
> /plugin marketplace add echoVic/boss-skill> /plugin install boss@boss-skill
Cursor
Cursor also loads subagents from .claude/agents, so copy this file there to use it in Cursor.
Agent definition
tech-detection.md技术栈运行时检测协议
本文档定义了统一的技术栈检测流程。所有 Agent 在执行任务前,必须先按此协议检测项目技术栈,避免硬编码假设。
---
检测流程
Step 1: 语言/平台检测
扫描项目根目录的标志文件:
| 标志文件 | 语言/平台 | | -------------------------------------------------- | --------------------------------- | | `package.json` | Node.js / JavaScript / TypeScript | | `go.mod` | Go | | `pyproject.toml` / `requirements.txt` / `setup.py` | Python | | `Cargo.toml` | Rust | | `pom.xml` / `build.gradle` / `build.gradle.kts` | Java / Kotlin | | `*.csproj` / `*.sln` | .NET / C# | | `Package.swift` | Swift | | `pubspec.yaml` | Dart / Flutter | | `Gemfile` | Ruby | | `mix.exs` | Elixir | | `Anchor.toml` | Solana (Anchor) |
如果同时存在多个标志文件(如 `package.json` + `go.mod`),说明是多语言项目,需要同时支持。
Step 2: 框架检测
根据 Step 1 检测到的语言,读取对应的 manifest 文件内容:
**Node.js** — 读取 `package.json` 的 `dependencies` + `devDependencies`:
| 依赖名 | 框架 | 类型 | | --------------------------- | ------------------ | --------- | | `next` | Next.js | 全栈 | | `nuxt` | Nuxt | 全栈 | | `react` | React | 前端 | | `vue` | Vue | 前端 | | `svelte` / `@sveltejs/kit` | Svelte / SvelteKit | 前端/全栈 | | `angular` / `@angular/core` | Angular | 前端 | | `express` | Express | 后端 | | `fastify` | Fastify | 后端 | | `@nestjs/core` | NestJS | 后端 | | `hono` | Hono | 后端 | | `koa` | Koa | 后端 |
**Python** — 读取 `pyproject.toml` 的 `[project.dependencies]` 或 `requirements.txt`:
| 依赖名 | 框架 | | ----------- | --------- | | `fastapi` | FastAPI | | `django` | Django | | `flask` | Flask | | `starlette` | Starlette |
**Go** — 读取 `go.mod` 的 `require` 块:
| 模块路径 | 框架 | | -------------------------- | ----------- | | `github.com/gin-gonic/gin` | Gin | | `github.com/gofiber/fiber` | Fiber | | `github.com/labstack/echo` | Echo | | `github.com/gorilla/mux` | Gorilla Mux |
**Rust** — 读取 `Cargo.toml` 的 `[dependencies]`:
| 依赖名 | 框架 | | ----------- | ---------- | | `actix-web` | Actix Web | | `axum` | Axum | | `rocket` | Rocket | | `yew` | Yew (前端) |
**Java** — 检查 `pom.xml` 或 `build.gradle` 内容:
| 关键字 | 框架 | | ------------- | ----------- | | `spring-boot` | Spring Boot | | `quarkus` | Quarkus | | `micronaut` | Micronaut |
Step 3: 测试框架检测
| 语言 | 检测方式 | 常见框架 | | ------- | --------------------------------------------- | --------------------------------------------------- | | Node.js | `package.json` scripts.test + devDependencies | vitest, jest, mocha, node:test, playwright, cypress | | Python | pyproject.toml / 命令检测 | pytest, unittest | | Go | 内置 | `go test` (testing 包) | | Rust | 内置 | `cargo test` (#[test]) | | Java | pom.xml / build.gradle | JUnit 5, TestNG |
Step 4: ORM / 数据库检测
| 依赖 | 工具 | 语言 | | --------------------------- | ---------- | ------- | | `prisma` / `@prisma/client` | Prisma | Node.js | | `typeorm` | TypeORM | Node.js | | `drizzle-orm` | Drizzle | Node.js | | `sequelize` | Sequelize | Node.js | | `sqlalchemy` | SQLAlchemy | Python | | `django.db` | Django ORM | Python | | `gorm.io/gorm` | GORM | Go | | `diesel` | Diesel | Rust |
Step 5: 包管理器检测
| 标志文件 | 包管理器 | | ------------------- | -------- | | `pnpm-lock.yaml` | pnpm | | `yarn.lock` | yarn | | `package-lock.json` | npm | | `bun.lockb` | bun |
Step 6: 构建工具检测
| 标志文件 | 构建工具 | | ----------------------------------------------------- | --------- | | `vite.config.*` | Vite | | `webpack.config.*` | Webpack | | `turbopack.config.*` | Turbopack | | `esbuild.config.*` / `build.mjs`(含 esbuild import) | esbuild | | `rollup.config.*` | Rollup | | `parcel` in package.json scripts | Parcel | | `.swcrc` | SWC |
Step 7: 部署环境检测
| 标志文件 | 部署环境 | | -------------------------------------------------------- | -------------------- | | `Dockerfile` / `docker-compose.yml` | Docker | | `vercel.json` / `.vercel/` | Vercel | | `netlify.toml` | Netlify | | `fly.toml` | Fly.io
Read more
技术栈运行时检测协议
本文档定义了统一的技术栈检测流程。所有 Agent 在执行任务前,必须先按此协议检测项目技术栈,避免硬编码假设。
---
检测流程
Step 1: 语言/平台检测
扫描项目根目录的标志文件:
| 标志文件 | 语言/平台 | | -------------------------------------------------- | --------------------------------- | | `package.json` | Node.js / JavaScript / TypeScript | | `go.mod` | Go | | `pyproject.toml` / `requirements.txt` / `setup.py` | Python | | `Cargo.toml` | Rust | | `pom.xml` / `build.gradle` / `build.gradle.kts` | Java / Kotlin | | `*.csproj` / `*.sln` | .NET / C# | | `Package.swift` | Swift | | `pubspec.yaml` | Dart / Flutter | | `Gemfile` | Ruby | | `mix.exs` | Elixir | | `Anchor.toml` | Solana (Anchor) |
如果同时存在多个标志文件(如 `package.json` + `go.mod`),说明是多语言项目,需要同时支持。
Step 2: 框架检测
根据 Step 1 检测到的语言,读取对应的 manifest 文件内容:
**Node.js** — 读取 `package.json` 的 `dependencies` + `devDependencies`:
| 依赖名 | 框架 | 类型 | | --------------------------- | ------------------ | --------- | | `next` | Next.js | 全栈 | | `nuxt` | Nuxt | 全栈 | | `react` | React | 前端 | | `vue` | Vue | 前端 | | `svelte` / `@sveltejs/kit` | Svelte / SvelteKit | 前端/全栈 | | `angular` / `@angular/core` | Angular | 前端 | | `express` | Express | 后端 | | `fastify` | Fastify | 后端 | | `@nestjs/core` | NestJS | 后端 | | `hono` | Hono | 后端 | | `koa` | Koa | 后端 |
**Python** — 读取 `pyproject.toml` 的 `[project.dependencies]` 或 `requirements.txt`:
| 依赖名 | 框架 | | ----------- | --------- | | `fastapi` | FastAPI | | `django` | Django | | `flask` | Flask | | `starlette` | Starlette |
**Go** — 读取 `go.mod` 的 `require` 块:
| 模块路径 | 框架 | | -------------------------- | ----------- | | `github.com/gin-gonic/gin` | Gin | | `github.com/gofiber/fiber` | Fiber | | `github.com/labstack/echo` | Echo | | `github.com/gorilla/mux` | Gorilla Mux |
**Rust** — 读取 `Cargo.toml` 的 `[dependencies]`:
| 依赖名 | 框架 | | ----------- | ---------- | | `actix-web` | Actix Web | | `axum` | Axum | | `rocket` | Rocket | | `yew` | Yew (前端) |
**Java** — 检查 `pom.xml` 或 `build.gradle` 内容:
| 关键字 | 框架 | | ------------- | ----------- | | `spring-boot` | Spring Boot | | `quarkus` | Quarkus | | `micronaut` | Micronaut |
Step 3: 测试框架检测
| 语言 | 检测方式 | 常见框架 | | ------- | --------------------------------------------- | --------------------------------------------------- | | Node.js | `package.json` scripts.test + devDependencies | vitest, jest, mocha, node:test, playwright, cypress | | Python | pyproject.toml / 命令检测 | pytest, unittest | | Go | 内置 | `go test` (testing 包) | | Rust | 内置 | `cargo test` (#[test]) | | Java | pom.xml / build.gradle | JUnit 5, TestNG |
Step 4: ORM / 数据库检测
| 依赖 | 工具 | 语言 | | --------------------------- | ---------- | ------- | | `prisma` / `@prisma/client` | Prisma | Node.js | | `typeorm` | TypeORM | Node.js | | `drizzle-orm` | Drizzle | Node.js | | `sequelize` | Sequelize | Node.js | | `sqlalchemy` | SQLAlchemy | Python | | `django.db` | Django ORM | Python | | `gorm.io/gorm` | GORM | Go | | `diesel` | Diesel | Rust |
Step 5: 包管理器检测
| 标志文件 | 包管理器 | | ------------------- | -------- | | `pnpm-lock.yaml` | pnpm | | `yarn.lock` | yarn | | `package-lock.json` | npm | | `bun.lockb` | bun |
Step 6: 构建工具检测
| 标志文件 | 构建工具 | | ----------------------------------------------------- | --------- | | `vite.config.*` | Vite | | `webpack.config.*` | Webpack | | `turbopack.config.*` | Turbopack | | `esbuild.config.*` / `build.mjs`(含 esbuild import) | esbuild | | `rollup.config.*` | Rollup | | `parcel` in package.json scripts | Parcel | | `.swcrc` | SWC |
Step 7: 部署环境检测
| 标志文件 | 部署环境 | | -------------------------------------------------------- | -------------------- | | `Dockerfile` / `docker-compose.yml` | Docker | | `vercel.json` / `.vercel/` | Vercel | | `netlify.toml` | Netlify | | `fly.toml` | Fly.io
Languages / 语言 / 言語 / 언어 / Idiomas / Langues: English · 中文 · 日本語 · 한국어 · Español · Français · Português This project is part of the AtomGit G-Star Incubation Program.
Other agents on boss.
More agents from other plugins.
cavecrew-builder
AgentSurgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…
Questions about tech-detection.
- Which coding agents can use tech-detection?
- tech-detection installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.

