Skip to content
Back to skills

Identifying Tech Stack

ASecurity

Use when onboarding to a new project, evaluating migration feasibility, auditing dependency health, or needing to know what technologies power a codebase

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
devopstypescriptpythonrustgonodedockerdatabaseci/cdsecurity

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add quangphu1912/codebase-analyzer --skill identifying-tech-stack --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Identifying Tech Stack?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Identifying Tech Stack
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/quangphu1912-identifying-tech-stack/badge)](https://www.skillsdirectory.com/skills/quangphu1912-identifying-tech-stack)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: identifying-tech-stack
description: Use when onboarding to a new project, evaluating migration feasibility, auditing dependency health, or needing to know what technologies power a codebase
---

## Announce at start: "Using codebase-analyzer to identify the tech stack."

## Overview

Catalog every technology, framework, library, and tool in use. First Track A skill -- its output informs all subsequent analysis. This skill goes beyond surface-level detection to reveal the project's true runtime reality: what actually ships, what was migrated halfway, and what the team struggles with.

## Process

1. Read package manifests (package.json, Cargo.toml, go.mod, requirements.txt, pom.xml, .csproj, Gemfile, etc.)
2. Identify build tools from config files (webpack.config, vite.config, tsconfig, Makefile, Dockerfile, Jenkinsfile)
3. Detect frameworks from code patterns and dependencies
4. Identify runtime/language versions (engines field, .python-version, .nvmrc, rust-toolchain.toml)
5. Map deployment infrastructure (Docker, K8s, serverless, CI/CD)
6. Flag outdated or deprecated dependencies
7. Produce tech stack report

## Diagnostic Reasoning

1. **Read package manifests in dependency order:** Lock files first (ground truth of what's installed), then manifests (declared intent). Divergence = dependency drift.

2. **Check scripts before dependencies:** `package.json` "scripts" reveal the ACTUAL build pipeline. If "build" runs webpack but devDependencies lists vite, someone migrated partially. Declared deps lie; scripts tell truth.

3. **Compare dependencies vs devDependencies placement:** Business logic in devDependencies = build-time-only (code generation). Test utilities in dependencies = production monitoring. Misplaced deps reveal team confusion.

4. **Look for overrides/resolutions:** Each override in `package.json` is a hidden story about a transitive dependency conflict. Count them -- more than 5 indicates dependency hell.

5. **Check engine pinning:** Pinned engines (`"node": "18.x"`) reveal deployment constraints. Absent engines with cutting-edge syntax = only runs on developer machines.

6. **Detect migration fossils:** Both `webpack.config` AND `vite.config` = migration in progress. Both `.eslintrc` AND `eslint.config` = migration stalled. Coexistence = incomplete transition.

## Trigger Signals

- **HIGH confidence**: Found .js.map files with no TypeScript source -> `trace-codebase-provenance`
- **HIGH confidence**: Unknown/custom build tools not in standard catalog -> `analyze-build-pipeline`
- **MEDIUM confidence**: Mixed language ecosystem -> affects analysis strategy
- **LOW confidence**: Standard tech stack, all well-known -> no deep dive needed

## Adversarial Lens

If the team wanted to hide their true tech stack, what would they change? Check for misleading package.json entries, fake build configs, or dependencies that are actually used but not listed (phantom deps). The declared stack is what they WANT you to see.

## Red Flags

- Reporting only top-level deps without checking transitive
- Missing the build tool chain (only listing languages)
- Not checking for lock files (package-lock, yarn.lock, Cargo.lock)

## When NOT to Use

When you only need to know "is this Python or JS?" -- just check file extensions. This skill is for deep stack understanding: dependency health, migration state, build pipeline truth, and team process gaps revealed by manifest structure. For simple language identification, file pattern matching suffices.

## SECURITY_SIGNAL

Watch for these during manifest analysis:

- **Outdated dependencies with known CVEs:** Check package-lock or Cargo.lock versions against known vulnerability databases. A dependency pinned to a version with published CVEs is a direct risk.
- **Private registries without auth:** `registry` fields pointing to private URLs without corresponding `.npmrc` or `.yarnrc.yml` credentials configuration = broken builds on fresh machines or leaked registry URLs.
- **Build tools with known supply-chain attacks:** `postinstall` scripts that download binaries, `npx` commands in CI that resolve to the network, or pre-built binary dependencies without integrity hashes.

## Output Contract

Write `docs/analysis/tech-stack.md` using standard contract.
Include: languages, frameworks, build tools, runtime versions, CI/CD, dependency health.

Files in this skill

  • SKILL.md4.3 KB
  • references/tech-stack-signatures.md8.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.