solid-detection について
solid-detectionは、設定ファイルからプロジェクト種別を判定し、対応するSOLIDスキルに割り当てる開発スキルです。構成用の環境変数を設定し、ブロックまたは警告レベルの検証を行います。
主な機能
- 01設定ファイルによるプロジェクト検出
- 02優先順位に沿った言語判定
- 03対応するSOLIDスキルの選択
- 04環境変数の設定
- 05インターフェース位置とファイル制限の検証
活用シーン
- 01開発前のリポジトリ分類
- 02言語別SOLIDガイドの選択
- 03誤った場所のインターフェースをブロック
- 04大きすぎるファイルや文書不足の警告
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fusengine/ agents --skill solid-detectionインストール後、Claude Code で/solid-detectionを入力して読み込まれたか確認します。
同梱ファイルreferences/language-rules.md
詳細
SOLID Detection は、プロジェクトの設定ファイル(package.json + next/react、tsconfig.json/bun ファイル、composer.json + laravel、Package.swift/*.xcodeproj、pom.xml/build.gradle、go.mod、Gemfile+Rakefile、Cargo.toml、pyproject.toml/requirements.txt)からプロジェクトの言語/フレームワークを固定の優先順位で識別し、それに対応する SOLID スキルにマッピングして、`detect-project.sh` を介して `SOLID_PROJECT_TYPE`、`SOLID_FILE_LIMIT`、`SOLID_INTERFACE_DIR`、`SOLID_STRUCTURE` 環境変数を設定します。
誤った場所で検出されたインターフェースはハード BLOCK です。ファイルサイズ制限の超過やドキュメントの欠落は WARNING のみです。言語ごとのインターフェース配置、禁止ゾーン、行数カウントの完全なルールについては language-rules.md を参照してください。
SOLID Detection スキル
参照
- language-rules.md - 読み込みタイミング: 特定の言語(Next.js、React、Generic TS、Laravel、Swift、Java、Go、Ruby、Rust、Python)における正確なインターフェースディレクトリ、ファイル制限、パターン検出正規表現を解決する場合、またはコメント/空行を除外して行数をカウントする場合
プロジェクト検出
設定ファイルからプロジェクトタイプを検出します:
# 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" ]
優先順位: Next.js > React > Generic TS > Laravel > Swift > Java > Go > Ruby > Rust > Python
言語ごとのルールテーブル(インターフェースの配置、禁止ゾーン、パターン検出正規表現)および行数カウントルールの完全版については、language-rules.md を参照してください。
検証アクション
| 重大度 | アクション |
|---|---|
| 誤った場所にあるインターフェース | BLOCK(終了コード 2) |
| 制限を超えたファイル | WARNING(終了コード 0) |
| ドキュメントの欠落 | WARNING |
スキルマッピング
| プロジェクトタイプ | SOLID スキル | スキルパス |
|---|---|---|
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 | (スキルはまだありません) | - |
環境変数
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
コメント
Markdown 対応