LibraryDetection library-detection

自动识别项目技术栈,分析包清单和配置文件,用于快速上线、文档查找和工具配置。

0 次安装 0 次浏览 更新于 3/2/2026

检测项目技术栈 自动检测项目技术栈,通过分析包清单和配置文件。返回结构化数据,用于上线、文档发现和工具配置。

变量

变量 默认 描述
SCAN_DEPTH 3 最大目录深度搜索清单
INCLUDE_DEV_DEPS true 包含开发依赖项分析
DETECT_FRAMEWORKS true 从依赖项识别框架
DETECT_TEST_TOOLS true 识别测试框架和运行器
OUTPUT_FORMAT json 输出格式:json、markdown或toon

指令

强制性 - 按顺序遵循以下工作流程步骤。不要跳过步骤。

  1. 扫描项目中的包清单
  2. 解析每个清单以提取依赖项
  3. 对依赖项进行分类
  4. 从依赖模式中检测框架和测试工具
  5. 输出结构化堆栈摘要

红旗 - 停止并重新考虑

如果你即将:

  • 在不检查导入或配置文件的情况下假设框架
  • 因为“项目简单”而跳过清单文件
  • 硬编码框架版本而不是从清单中读取
  • 在没有验证实际使用的情况下报告库

停止 -> 读取清单文件 -> 用导入/配置验证 -> 然后报告

工作流程

1. 发现清单

扫描这些文件(按优先级顺序):

文件 语言 解析器
package.json JavaScript/TypeScript JSON
pyproject.toml Python TOML
requirements.txt Python 基于行的
go.mod Go Go mod
Cargo.toml Rust TOML
pubspec.yaml Dart/Flutter YAML
CMakeLists.txt C/C++ CMake
meson.build C/C++ Meson
WORKSPACE Bazel Bazel
pom.xml Java XML
build.gradle Java/Kotlin Gradle DSL
Gemfile Ruby Ruby DSL
composer.json PHP JSON

同时检查:

  • Dockerfile - 容器化
  • docker-compose.yml - 容器编排
  • .github/workflows/*.yml - CI/CD
  • Makefile - 构建系统
  • tsconfig.json - TypeScript配置
  • vite.config.* / webpack.config.* - 打包器

2. 解析依赖项

对于每个清单,提取:

  • 生产依赖项:运行时需求
  • 开发依赖项:构建/测试工具
  • 对等依赖项:预期的宿主环境
  • 可选依赖项:功能标志

3. 分类堆栈

将结果分组为:

{
  "languages": ["typescript", "python", "go", "rust", "dart", "cpp"],
  "frameworks": [
    {"name": "react", "version": "^18.0.0", "category": "frontend"},
    {"name": "fastapi", "version": "^0.100.0", "category": "backend"}
  ],
  "test_frameworks": [
    {"name": "vitest", "version": "^1.0.0"},
    {"name": "pytest", "version": "^7.0.0"}
  ],
  "build_tools": ["vite", "uv", "docker"],
  "databases": ["postgresql", "redis"],
  "cloud_providers": ["aws", "vercel"],
  "ci_cd": ["github-actions"]
}

4. 框架检测模式

使用食谱中的特定检测逻辑:

  • 阅读./cookbook/manifest-parsing.md解析规则
  • 将依赖项名称与已知框架模式匹配

5. 输出

返回请求格式的结构化堆栈摘要。

食谱

清单解析

  • IF: 解析任何包清单
  • THEN: 读取并执行./cookbook/manifest-parsing.md

快速参考

检测模式

依赖项模式 检测为
react, react-dom React框架
vue, @vue/* Vue框架
next Next.js框架
fastapi FastAPI框架
django Django框架
flask Flask框架
express Express.js框架
vitest, jest JavaScript测试框架
pytest Python测试框架
gtest, gmock, catch2 C/C++测试框架
flutter, flutter_test Flutter框架
@testing-library/* 测试工具

类别映射

类别 示例
frontend react, vue, svelte, angular
backend fastapi, django, express, gin
database prisma, sqlalchemy, typeorm
testing vitest, jest, pytest, playwright
build vite, webpack, esbuild, rollup
linting eslint, prettier, ruff, black
typing typescript, mypy, pyright
build-native cmake, meson, bazel

输出模式

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "project_root": {"type": "string"},
    "scanned_at": {"type": "string", "format": "date-time"},
    "languages": {
      "type": "array",
      "items": {"type": "string"}
    },
    "frameworks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "version": {"type": "string"},
          "category": {"type": "string"}
        }
      }
    },
    "test_frameworks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "version": {"type": "string"}
        }
      }
    },
    "build_tools": {
      "type": "array",
      "items": {"type": "string"}
    },
    "databases": {
      "type": "array",
      "items": {"type": "string"}
    },
    "cloud_providers": {
      "type": "array",
      "items": {"type": "string"}
    },
    "ci_cd": {
      "type": "array",
      "items": {"type": "string"}
    },
    "manifests_found": {
      "type": "array",
      "items": {"type": "string"}
    }
  }
}

集成

其他技能和命令可以使用此技能进行:

  1. 文档发现:将检测到的框架映射到文档源
  2. 上线:生成针对堆栈量身定制的快速入门指南
  3. 工具配置:自动配置linter、formatter、测试运行器
  4. 代理路由:根据堆栈选择合适的AI提供商

另一个技能中的示例用法:

## 先决条件

在实施之前,运行`library-detection`技能以识别:
- 测试框架(用于编写测试)
- 构建工具(用于验证)
- 数据库库(用于数据层工作)