stack-detection

Detect the language, framework, and tooling stack of a project or set of files to load the right engineering skills.

SKILL.md

GitHub

What I do

Guide the engineer agent in detecting the technology stack of the code being worked on, so the correct language and framework skills are loaded automatically.

When to use me

Load this skill at the start of any engineering task before loading stack-specific skills. Use it to determine which of the available stack skills to load.

Detection approach

Detect the stack by examining the files involved in the current task, the project root, and build configuration. Use the most specific signal available.

Step 1: Check the files being changed

Look at the file extensions and import statements in the files listed in the spec's Changes section:

Extension / pattern Stack skill to load
.java java-stack
.groovy, .gradle, .gradle.kts groovy-stack
.go go-stack
.rs, Cargo.toml rust-stack
.py, .pyi python-stack
.js, .mjs, .cjs, .ts, .mts javascript-stack
.jsx, .tsx javascript-stack + react-stack
.swift Swift project (mockup renderer hint: swiftui-mockup-renderer)
.sql, migration files database-stack

Step 2: Check project root markers

If the files being changed don't make the stack obvious, check the project root:

Marker Stack skill
pom.xml, build.gradle, build.gradle.kts java-stack (and/or groovy-stack for Gradle/Spock)
go.mod go-stack
Cargo.toml, Cargo.lock rust-stack
pyproject.toml, setup.py, requirements.txt, Pipfile python-stack
package.json javascript-stack
package.json with react dependency javascript-stack + react-stack
tsconfig.json javascript-stack
Package.swift, *.xcodeproj, *.xcworkspace Swift project (mockup renderer hint: swiftui-mockup-renderer)

Step 3: Load multiple skills for mixed-stack work

If the task spans multiple stacks (e.g., a Go backend API + React frontend), load all relevant stack skills. There is no conflict — each skill covers its own domain.

Always load

Regardless of stack detection, always load these skills for any engineering task:

  • implementation-principles
  • testing-and-validation

Available stack skills

  • java-stack — Java, JVM conventions, Spring, service design
  • groovy-stack — Groovy, Gradle, DSLs, Spock testing
  • go-stack — Go packages, concurrency, operational correctness
  • rust-stack — Rust ownership, error handling, crate design
  • python-stack — Python project structure, type safety, dependency management, testing
  • javascript-stack — JavaScript, TypeScript, Node runtime safety
  • react-stack — React components, state management, accessibility
  • database-stack — Schema, migrations, queries, rollout safety

Supplementary skills

Load these when the task involves their domain, regardless of language:

  • api-design-and-contracts — when API endpoints or contracts are involved
  • integration-boundaries — when external service integrations are involved
  • performance-optimization — when performance work is the goal
  • security-review — when security-sensitive code is being written