Skip to content
Development
Agent

tech-detection

本文档定义了统一的技术栈检测流程。所有 Agent 在执行任务前,必须先按此协议检测项目技术栈,避免硬编码假设。

From plugin
boss
54916 skills16 agents10 commands

Claude Code

> /plugin marketplace add echoVic/boss-skill
> /plugin install boss@boss-skill

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
@echovic
Ships withboss

Languages / 语言 / 言語 / 언어 / Idiomas / Langues: English · 中文 · 日本語 · 한국어 · Español · Français · Português This project is part of the AtomGit G-Star Incubation Program.

54938 skills16 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
549
Star history of echoVic/boss-skill on GitHub, a chart by star-history.com

Other agents on boss.

boss-architect

boss-architect

Agent

系统架构师 Agent,负责技术调研和全栈架构设计。使用场景:技术选型调研、方案对比分析、全栈架构设计(前端+后端+数据库+基础设施)、API 设计、安全架构。

@echovic@echovicInstall Agent
boss-backend

boss-backend

Agent

后端开发专家 Agent,负责 API 和服务端功能实现。使用场景:API 开发、数据库操作、业务逻辑、服务端测试、性能优化。

@echovic@echovicInstall Agent
boss-devops

boss-devops

Agent

DevOps 工程师 Agent,负责部署应用和环境配置。使用场景:环境准备、依赖安装、构建应用、启动服务、健康检查。

@echovic@echovicInstall Agent
boss-frontend

boss-frontend

Agent

前端开发专家 Agent,负责 UI 组件和前端功能实现。使用场景:组件开发、状态管理、样式实现、前端测试、性能优化。

@echovic@echovicInstall Agent
boss-pm

boss-pm

Agent

需求分析 Agent,将原始诉求穿透为分层需求(显性/隐性/潜在/惊喜),产出带验收标准与优先级依据的 PRD。

@echovic@echovicInstall Agent
boss-qa

boss-qa

Agent

QA 验证 Agent,审查已有测试质量、补充边界与安全用例、执行测试并产出可核验的证据(命令、退出码、覆盖率、失败详情)。

@echovic@echovicInstall Agent

More agents from other plugins.

a11y-architect
Auto-invoked

a11y-architect

Agent

Accessibility Architect specializing in WCAG 2.2 compliance for Web and Native platforms. Use PROACTIVELY when designing UI…

ecc12d293k
@affaan-m@affaan-mInstall Agent
analyze-pass-impact

analyze-pass-impact

Agent

Analyzes how a specific topic affects a group of compiler passes. Used by the /plan-update skill to parallelize research across…

react1d252k
@facebook@facebookInstall Agent
orchestrator

orchestrator

Agent

- If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as…

codex1d135k
@openai@openaiInstall Agent
cavecrew-builder

cavecrew-builder

Agent

Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…

caveman2d119k
@juliusbrussee@juliusbrusseeInstall Agent

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.