mcpField
S
solid-detection

solid-detection

github.com/fusengineDevelopment3440 installsUpdated 2w ago
Repository

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

  1. 01Configuration-based project detection
  2. 02Priority-ordered language mapping
  3. 03Matching SOLID skill selection
  4. 04Environment variable setup
  5. 05Interface and file-limit validation

Use cases

  1. 01Classifying a repository before development
  2. 02Selecting language-specific SOLID guidance
  3. 03Blocking interfaces in incorrect locations
  4. 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-detection

After installing, type/solid-detectionin Claude Code to confirm it loaded.

Bundled filesreferences/language-rules.md

Details

From the project README
SOLID Detection identifies a project's language/framework from its config files (package.json + next/react, tsconfig.json/bun files, composer.json + laravel, Package.swift/*.xcodeproj, pom.xml/build.gradle, go.mod, Gemfile+Rakefile, Cargo.toml, pyproject.toml/requirements.txt) in a fixed priority order, then maps it to the matching SOLID skill and sets `SOLID_PROJECT_TYPE`, `SOLID_FILE_LIMIT`, `SOLID_INTERFACE_DIR`, and `SOLID_STRUCTURE` environment variables via `detect-project.sh`.

An 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

SeverityAction
Interface in wrong locationBLOCK (exit 2)
File over limitWARNING (exit 0)
Missing documentationWARNING

Skill Mapping

Project TypeSOLID SkillSkill Path
nextjssolid-nextjsnextjs-expert/skills/solid-nextjs/
reactsolid-reactreact-expert/skills/solid-react/
genericsolid-genericsolid/skills/solid-generic/
laravelsolid-phplaravel-expert/skills/solid-php/
swiftsolid-swiftswift-apple-expert/skills/solid-swift/
javasolid-javasolid/skills/solid-java/
gosolid-gosolid/skills/solid-go/
rubysolid-rubysolid/skills/solid-ruby/
rustsolid-rustsolid/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

Comments

Markdown supported