Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

detect-project-type

verified

Detect project type and configuration for generic application releases

View on GitHub

Marketplace

agent-skills-marketplace

jayteealao/agent-skills

Plugin

release-automation

automation

Repository

jayteealao/agent-skills

plugins/release-automation/skills/detect-project-type/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/jayteealao/agent-skills/blob/main/plugins/release-automation/skills/detect-project-type/SKILL.md -a claude-code --skill detect-project-type

Installation paths:

Claude
.claude/skills/detect-project-type/
Powered by add-skill CLI

Instructions

# Detect Project Type

## Purpose

Analyzes the project directory to determine the project type (Node.js, Python, Rust, Go, Java, generic, Claude Code plugin, or monorepo) and loads or generates appropriate release configuration. This is the foundation for generic release automation that works with any application.

## Input Context

The skill expects to be invoked in a project root directory. It examines:
- Configuration files (`.release-config.json`, `.releaserc.json`)
- Project markers (package.json, Cargo.toml, pyproject.toml, etc.)
- Directory structure (monorepo patterns)
- Version file locations

## Workflow

### 1. Check for Explicit Configuration

First, check if user has provided explicit configuration:

```bash
# Check for config files in order of precedence
if [ -f ".release-config.json" ]; then
  config_file=".release-config.json"
elif [ -f ".releaserc.json" ]; then
  config_file=".releaserc.json"
elif [ -f ".releaserc" ]; then
  config_file=".releaserc"
else
  config_file=""
fi
```

If config file exists:
- Parse JSON to extract configuration
- Validate configuration (required fields, file paths exist)
- Return configuration with `config_source: "explicit"`

See [Configuration Reference](../../docs/configuration.md) for schema details.

### 2. Auto-Detect Project Type

If no configuration file, detect project type from filesystem markers:

```bash
# Detection logic (in priority order)
project_type="unknown"

# Check for monorepo first (multiple package.json or project files in subdirs)
if [ $(find packages -name "package.json" 2>/dev/null | wc -l) -gt 1 ] || \
   [ $(find apps -name "package.json" 2>/dev/null | wc -l) -gt 1 ]; then
  project_type="monorepo"

# Node.js project
elif [ -f "package.json" ]; then
  project_type="nodejs"

# Python project
elif [ -f "pyproject.toml" ]; then
  project_type="python"

# Rust project
elif [ -f "Cargo.toml" ]; then
  project_type="rust"

# Go project
elif [ -f "go.mod" ]; then
  project_type="go"

# Java/Gradle pr

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
10375 chars