library-detection

Detect project stack from package manifests (package.json, pyproject.toml, go.mod, Cargo.toml, pubspec.yaml, CMakeLists.txt). Auto-identify frameworks, test tools, and build systems for onboarding.

$ 安裝

git clone https://github.com/Consiliency/treesitter-chunker /tmp/treesitter-chunker && cp -r /tmp/treesitter-chunker/.ai-dev-kit/skills/library-detection ~/.claude/skills/treesitter-chunker

// tip: Run this command in your terminal to install the skill


name: library-detection description: "Detect project stack from package manifests (package.json, pyproject.toml, go.mod, Cargo.toml, pubspec.yaml, CMakeLists.txt). Auto-identify frameworks, test tools, and build systems for onboarding."

Library Detection Skill

Automatically detect the technology stack of a project by analyzing package manifests and configuration files. Returns structured data for use in onboarding, documentation discovery, and tool configuration.

Variables

VariableDefaultDescription
SCAN_DEPTH3Max directory depth to search for manifests
INCLUDE_DEV_DEPStrueInclude development dependencies in analysis
DETECT_FRAMEWORKStrueIdentify frameworks from dependencies
DETECT_TEST_TOOLStrueIdentify test frameworks and runners
OUTPUT_FORMATjsonOutput format: json, markdown, or toon

Instructions

MANDATORY - Follow the Workflow steps below in order. Do not skip steps.

  1. Scan for package manifests in the project
  2. Parse each manifest to extract dependencies
  3. Classify dependencies into categories
  4. Detect frameworks and test tools from dependency patterns
  5. Output structured stack summary

Red Flags - STOP and Reconsider

If you're about to:

  • Assume a framework without checking imports or config files
  • Skip manifest files because "the project is simple"
  • Hardcode framework versions instead of reading from manifests
  • Report a library without verifying it's actually used

STOP -> Read the manifest files -> Verify with imports/configs -> Then report

Workflow

1. Discover Manifests

Scan for these files (in order of priority):

FileLanguageParser
package.jsonJavaScript/TypeScriptJSON
pyproject.tomlPythonTOML
requirements.txtPythonLine-based
go.modGoGo mod
Cargo.tomlRustTOML
pubspec.yamlDart/FlutterYAML
CMakeLists.txtC/C++CMake
meson.buildC/C++Meson
WORKSPACEBazelBazel
pom.xmlJavaXML
build.gradleJava/KotlinGradle DSL
GemfileRubyRuby DSL
composer.jsonPHPJSON

Also check for:

  • Dockerfile - containerization
  • docker-compose.yml - container orchestration
  • .github/workflows/*.yml - CI/CD
  • Makefile - build system
  • tsconfig.json - TypeScript config
  • vite.config.* / webpack.config.* - bundlers

2. Parse Dependencies

For each manifest, extract:

  • Production dependencies: runtime requirements
  • Development dependencies: build/test tools
  • Peer dependencies: expected host environment
  • Optional dependencies: feature flags

3. Classify Stack

Group findings into:

{
  "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. Framework Detection Patterns

Use the cookbook for specific detection logic:

  • Read ./cookbook/manifest-parsing.md for parsing rules
  • Match dependency names against known framework patterns

5. Output

Return the structured stack summary in the requested format.

Cookbook

Manifest Parsing

  • IF: Parsing any package manifest
  • THEN: Read and execute ./cookbook/manifest-parsing.md

Quick Reference

Detection Patterns

Dependency PatternDetected As
react, react-domReact framework
vue, @vue/*Vue framework
nextNext.js framework
fastapiFastAPI framework
djangoDjango framework
flaskFlask framework
expressExpress.js framework
vitest, jestJavaScript test framework
pytestPython test framework
gtest, gmock, catch2C/C++ test framework
flutter, flutter_testFlutter framework
@testing-library/*Testing utilities

Category Mappings

CategoryExamples
frontendreact, vue, svelte, angular
backendfastapi, django, express, gin
databaseprisma, sqlalchemy, typeorm
testingvitest, jest, pytest, playwright
buildvite, webpack, esbuild, rollup
lintingeslint, prettier, ruff, black
typingtypescript, mypy, pyright
build-nativecmake, meson, bazel

Output Schema

{
  "$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"}
    }
  }
}

Integration

Other skills and commands can use this skill for:

  1. Documentation discovery: Map detected frameworks to doc sources
  2. Onboarding: Generate quickstart guides tailored to the stack
  3. Tool configuration: Auto-configure linters, formatters, test runners
  4. Agent routing: Select appropriate AI providers based on stack

Example usage in another skill:

## Prerequisites

Before implementing, run the `library-detection` skill to identify:
- Test frameworks (for writing tests)
- Build tools (for verification)
- Database libraries (for data layer work)