smithery/fusengine

solid-detection

Use when determining which language-specific SOLID skill to load, detecting project type from config files, or resolving interface directory conventions.

Installation

$ npx skills add smithery/fusengine --skill solid-detection

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/fusengine · top by installs.

npx skills add smithery/fusengine

Browse all from smithery/fusengine

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,641 B
  • docs SUMMARY.md 136 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

<objective> 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 SOLIDPROJECTTYPE, SOLIDFILELIMIT, SOLIDINTERFACEDIR, 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. </objective>

SOLID Detection Skill

References

  • [language-rules.md](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](references/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