关于 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 检测技能
参考资料
- 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