About solid-detection
solid-detection is a development skill that identifies a project type from configuration files and maps it to a corresponding SOLID skill. It sets environment variables for project structure and applies blocking or warning-level validation rules.
Key features
- 01Configuration-based project detection
- 02Priority-ordered language mapping
- 03Matching SOLID skill selection
- 04Environment variable setup
- 05Interface and file-limit validation
Use cases
- 01Classifying a repository before development
- 02Selecting language-specific SOLID guidance
- 03Blocking interfaces in incorrect locations
- 04Flagging oversized files or missing documentation
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ fusengine/ agents --skill solid-detectionAfter installing, type/solid-detectionin Claude Code to confirm it loaded.
Bundled filesreferences/language-rules.md
Details
From the project READMEAn interface found in the wrong location is a hard BLOCK; exceeding the file-size limit or missing documentation is a WARNING only. See language-rules.md for the full per-language interface-location, forbidden-zone, and line-counting rules.
SOLID Detection Skill
References
- language-rules.md - Load when: resolving the exact interface directory, file-limit, or pattern-detection regex for a specific language (Next.js, React, Generic TS, Laravel, Swift, Java, Go, Ruby, Rust, Python), or counting lines while excluding comments/blanks
Project Detection
Detect project type from configuration files:
# Next.js (priority over React)
[ -f "package.json" ] && grep -q '"next"' package.json
# React (no "next" in package.json)
[ -f "package.json" ] && grep -q '"react"' package.json && ! grep -q '"next"' package.json
# Generic TypeScript (no react/next, has .ts files)
[ -f "package.json" ] && ! grep -q '"react"' package.json && ! grep -q '"next"' package.json
[ -f "tsconfig.json" ] || [ -f "bun.lock" ] || [ -f "bun.lockb" ] || [ -f "bunfig.toml" ]
# Laravel
[ -f "composer.json" ] && grep -q '"laravel' composer.json
# Swift
[ -f "Package.swift" ] || ls *.xcodeproj
# Java
[ -f "pom.xml" ] || [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]
# Go
[ -f "go.mod" ]
# Ruby
[ -f "Gemfile" ] && [ -f "Rakefile" ]
# Rust
[ -f "Cargo.toml" ]
# Python
[ -f "pyproject.toml" ] || [ -f "requirements.txt" ]
Priority order: Next.js > React > Generic TS > Laravel > Swift > Java > Go > Ruby > Rust > Python
For the full per-language rule tables (interface location, forbidden zones, pattern-detection regex) and line-counting rules, see language-rules.md.
Validation Actions
| Severity | Action |
|---|---|
| Interface in wrong location | BLOCK (exit 2) |
| File over limit | WARNING (exit 0) |
| Missing documentation | WARNING |
Skill Mapping
| Project Type | SOLID Skill | Skill Path |
|---|---|---|
nextjs | solid-nextjs | nextjs-expert/skills/solid-nextjs/ |
react | solid-react | react-expert/skills/solid-react/ |
generic | solid-generic | solid/skills/solid-generic/ |
laravel | solid-php | laravel-expert/skills/solid-php/ |
swift | solid-swift | swift-apple-expert/skills/solid-swift/ |
java | solid-java | solid/skills/solid-java/ |
go | solid-go | solid/skills/solid-go/ |
ruby | solid-ruby | solid/skills/solid-ruby/ |
rust | solid-rust | solid/skills/solid-rust/ |
python | (no skill yet) | - |
Environment Variables
Set by detect-project.sh:
SOLID_PROJECT_TYPE=nextjs|react|generic|laravel|swift|java|go|ruby|rust|python|unknown
SOLID_FILE_LIMIT=100|150
SOLID_INTERFACE_DIR=path/to/interfaces
SOLID_STRUCTURE=modular