solid-detection
SkillFiles & storageUse when determining which language-specific SOLID skill to load, detecting project type from config files, or resolving interface directory conventions.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the solid-detection skill
What this skill tells your AI
The instructions your AI receives, as published by fusengine/agents in plugins/solid/skills/solid-detection/SKILL.md and read by ahel’s review.
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.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
Signals
- GitHub stars
- 25
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
solid-detection- Source
- github.com/fusengine/agents