← 返回提示词库
通用 #简短 难度:入门

技能大师

skill-master

发现代码库模式并自动为 .claude/skills/ 生成 SKILL 文件。当分析项目以查找缺失技能、从代码库模式创建新技能时使用。

适用平台: ChatGPTClaudeGemini
---
name: skill-master
description: 发现代码库模式并自动生成 .claude/skills/ 目录下的 SKILL 文件。当分析项目以查找缺失的技能、根据代码库模式创建新技能或将技能与项目结构同步时使用。
version: 1.0.0
---

# 技能大师

## 概述

分析代码库以发现模式并在 `.claude/skills/` 中生成/更新 SKILL 文件。支持多平台项目,具有针对特定堆栈的模式检测功能。

**能力:**
- 扫描代码库以查找架构模式(ViewModel、Repository、Room 等)
- 将检测到的模式与现有技能进行比较
- 自动生成包含真实代码示例的 SKILL 文件
- 版本跟踪和智能更新

## AI 如何发现和使用此技能

当用户执行以下操作时,此技能会触发:
- 要求分析项目以查找缺失的技能
- 请求根据代码库模式生成技能
- 希望同步或更新现有技能
- 提及“技能发现”、“生成技能”或“技能同步”

**检测信号:**
- `.claude/skills/` 目录存在
- 项目结构与已知模式匹配
- 构建/配置文件指示平台(参见参考资料)

## 模式

### 发现模式

分析代码库并报告缺失的技能。

**步骤:**
1. 通过构建/配置文件检测平台(参见参考资料)
2. 扫描源根以查找模式指示器
3. 将检测到的模式与现有的 `.claude/skills/` 进行比较
4. 输出差距分析报告

**输出格式:**
```
检测到的模式: {count}
| 模式 | 找到的文件 | 示例位置 |
|---------|-------------|------------------|
| {name}  | {count}     | {path}           |

现有技能: {count}
缺失技能: {count}
- {skill-name}: {pattern}, 找到 {file-count} 个文件
```

### 生成模式

根据检测到的模式创建 SKILL 文件。

**步骤:**
1. 运行发现以识别缺失技能
2. 对于每个缺失技能:
   - 找到 2-3 个代表性源文件
   - 提取:导入、注解、类结构、约定
   - 如果存在,从 `.ruler/*.md` 中提取规则
3. 使用模板结构生成 SKILL.md
4. 添加版本和源标记

**生成的 SKILL 结构:**
```yaml
---
name: {模式名称}
description: {生成的描述,包含触发关键词}
version: 1.0.0
---

# {标题}

## 概述
{来自模式分析的简要描述}

## 文件结构
{从代码库中提取}

## 实现模式
{真实代码示例 - 匿名化}

## 规则
### 应该
{来自 .ruler/*.md + 代码库约定}

### 不应该
{发现的反模式}

## 文件位置
{代码库中的实际路径}
```

## 创建策略

当目标 SKILL 文件不存在时:
1. 使用模板生成新文件
2. 在 frontmatter 中设置 `version: 1.0.0`
3. 包含所有强制性部分
4. 在末尾添加源标记(参见标记格式)

## 更新策略

**标记检查:** 在文件末尾查找 `<!-- Generated by skill-master command`。

**如果标记存在(后续运行):**
- 智能合并:保留自定义内容,添加缺失部分
- 增加版本:主版本(破坏性变更)/ 次版本(功能)/ 补丁版本(修复)
- 更新标记中的源列表

**如果标记不存在(首次在现有文件上运行):**
- 备份:`SKILL.md` → `SKILL.md.bak`
- 使用备份作为源,提取相关内容
- 生成带有标记的新文件
- 设置 `version: 1.0.0`

## 标记格式

放置在生成的 SKILL.md **末尾**:

```html
<!-- Generated by skill-master command
Version: {版本}
Sources:
- path/to/source1.kt
- path/to/source2.md
- .ruler/rule-file.md
Last updated: {YYYY-MM-DD}
-->
```

## 平台参考

当检测到平台时,阅读相关参考:

| 平台 | 检测文件 | 参考 |
|---|---|---|
| Android/Gradle | `build.gradle`, `settings.gradle` | `references/android.md` |
| iOS/Xcode | `*.xcodeproj`, `Package.swift` | `references/ios.md` |
| React (web) | `package.json` + react | `references/react-web.md` |
| React Native | `package.json` + react-native | `references/react-native.md` |
| Flutter/Dart | `pubspec.yaml` | `references/flutter.md` |
| Node.js | `package.json` | `references/node.md` |
| Python | `pyproject.toml`, `requirements.txt` | `references/python.md` |
| Java/JVM | `pom.xml`, `build.gradle` | `references/java.md` |
| .NET/C# | `*.csproj`, `*.sln` | `references/dotnet.md` |
| Go | `go.mod` | `references/go.md` |
| Rust | `Cargo.toml` | `references/rust.md` |
| PHP | `composer.json` | `references/php.md` |
| Ruby | `Gemfile` | `references/ruby.md` |
| Elixir | `mix.exs` | `references/elixir.md` |
| C/C++ | `CMakeLists.txt`, `Makefile` | `references/cpp.md` |
| 未知 | - | `references/generic.md` |

如果检测到多个平台,请阅读多个参考文件。

## 规则

### 应该
- 只提取代码库中已验证的模式
- 使用真实代码示例(匿名化业务逻辑)
- 在描述中包含触发关键词
- 将 SKILL.md 保持在 500 行以下
- 引用外部文件以获取详细内容
- 在更新期间保留自定义部分
- 首次修改前务必备份

### 不应该
- 包含秘密、令牌或凭据
- 包含业务特定逻辑细节
- 生成没有真实内容的占位符
- 未经备份覆盖用户自定义设置
- 创建深层引用链(最多 1 层)
- 在 `.claude/skills/` 之外写入

## 内容提取规则

**从代码库中提取:**
- 提取:类结构、注解、导入模式、文件位置、命名约定
- 绝不提取:硬编码值、秘密信息、API 密钥、个人身份信息 (PII)

**从 .ruler/*.md 中提取(如果存在):**
- 提取:Do/Don't 规则、架构约束、依赖规则

## 输出报告

生成后,打印:
```
技能生成报告

生成的技能数量: {count}

{skill-name} [CREATED | UPDATED | BACKED_UP+CREATED]
├── 已分析: {file-count} 源文件
├── 来源: {list of source files}
├── 规则来源: {.ruler files if any}
└── 输出: .claude/skills/{skill-name}/SKILL.md ({line-count} 行)

验证:
✓ YAML frontmatter 有效
✓ 描述包含触发关键词
✓ 内容少于 500 行
✓ 包含所需部分
```

## 安全约束

- 绝不能写入 `.claude/skills/` 之外
- 未备份绝不能删除内容
- 首次修改前务必备份
- 保留用户自定义内容
- 确定性:相同输入 → 相同输出
 文件:references/android.md
# Android (Gradle/Kotlin)

## 检测信号
- `settings.gradle` 或 `settings.gradle.kts`
- `build.gradle` 或 `build.gradle.kts`
- `gradle.properties`, `gradle/libs.versions.toml`
- `gradlew`, `gradle/wrapper/gradle-wrapper.properties`
- `app/src/main/AndroidManifest.xml`

## 多模块信号
- `settings.gradle*` 中有多个 `include(...)`
- 多个包含 `build.gradle*` + `src/` 的目录
- 常见根目录: `feature/`, `core/`, `library/`, `domain/`, `data/`

## 预生成来源
- `settings.gradle*` (模块列表)
- `build.gradle*` (根模块 + 子模块)
- `gradle/libs.versions.toml` (依赖项)
- `config/detekt/detekt.yml` (如果存在)
- `**/AndroidManifest.xml`

## 代码库扫描模式

### 源根目录
- `*/src/main/java/`, `*/src/main/kotlin/`

### 层/文件夹模式(如果存在则记录)
`features/`, `core/`, `common/`, `data/`, `domain/`, `presentation/`, `ui/`, `di/`, `navigation/`, `network/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| ViewModel | `@HiltViewModel`, `ViewModel()`, `MVI<` | viewmodel-mvi |
| Repository | `*Repository`, `*RepositoryImpl` | data-repository |
| UseCase | `operator fun invoke`, `*UseCase` | domain-usecase |
| Room Entity | `@Entity`, `@PrimaryKey`, `@ColumnInfo` | room-entity |
| Room DAO | `@Dao`, `@Query`, `@Insert`, `@Update` | room-dao |
| Migration | `Migration(`, `@Database(version=` | room-migration |
| Type Converter | `@TypeConverter`, `@TypeConverters` | type-converter |
| DTO | `@SerializedName`, `*Request`, `*Response` | network-dto |
| Compose Screen | `@Composable`, `NavGraphBuilder.` | compose-screen |
| Bottom Sheet | `ModalBottomSheet`, `*BottomSheet(` | bottomsheet-screen |
| Navigation | `@Route`, `NavGraphBuilder.`, `composable(` | navigation-route |
| Hilt Module | `@Module`, `@Provides`, `@Binds`, `@InstallIn` | hilt-module |
| Worker | `@HiltWorker`, `CoroutineWorker`, `WorkManager` | worker-task |
| DataStore | `DataStore<Preferences>`, `preferencesDataStore` | datastore-preference |
| Retrofit API | `@GET`, `@POST`, `@PUT`, `@DELETE` | retrofit-api |
| Mapper | `*.toModel()`, `*.toEntity()`, `*.toDto()` | data-mapper |
| Interceptor | `Interceptor`, `intercept()` | network-interceptor |
| Paging | `PagingSource`, `Pager(`, `PagingData` | paging-source |
| Broadcast Receiver | `BroadcastReceiver`, `onReceive(` | broadcast-receiver |
| Android Service | `: Service()`, `ForegroundService` | android-service |
| Notification | `NotificationCompat`, `NotificationChannel` | notification-builder |
| Analytics | `FirebaseAnalytics`, `logEvent` | analytics-event |
| Feature Flag | `RemoteConfig`, `FeatureFlag` | feature-flag |

| 应用小组件 | `AppWidgetProvider`, `GlanceAppWidget` | app-widget |
| 单元测试 | `@Test`, `MockK`, `mockk(`, `every {` | unit-test |

## 强制输出部分

如果检测到则包含(列出实际找到的名称):
- **功能清单**:`feature/` 下的目录
- **核心模块**:`core/`, `library/` 下的目录
- **导航图**:`*Graph.kt`, `*Navigator*.kt`
- **Hilt 模块**:`@Module` 类, `di/` 内容
- **Retrofit API**:`*Api.kt` 接口
- **Room 数据库**:`@Database` 类
- **Worker**:`@HiltWorker` 类
- **Proguard**:如果存在 `proguard-rules.pro`

## 命令来源
- README/文档中调用的 `./gradlew`
- 包含 Gradle 命令的 CI 工作流
- 常见命令:`./gradlew assemble`, `./gradlew test`, `./gradlew lint`
- 只包含仓库中存在的命令

## 关键路径
- `app/src/main/`, `app/src/main/res/`
- `app/src/main/java/`, `app/src/main/kotlin/`
- `app/src/test/`, `app/src/androidTest/`
- `library/database/migration/` (Room 迁移)
 文件:README.md 

 文件:references/cpp.md 
# C/C++

## 检测信号
- `CMakeLists.txt`
- `Makefile`, `makefile`
- `*.cpp`, `*.c`, `*.h`, `*.hpp`
- `conanfile.txt`, `conanfile.py` (Conan)
- `vcpkg.json` (vcpkg)

## 多模块信号
- 多个 `CMakeLists.txt` 带有 `add_subdirectory`
- 子目录中有多个 `Makefile`
- `lib/`, `src/`, `modules/` 目录

## 预生成来源
- `CMakeLists.txt` (依赖项, 目标)
- `conanfile.*` (依赖项)
- `vcpkg.json` (依赖项)
- `Makefile` (构建目标)

## 代码库扫描模式

### 源代码根目录
- `src/`, `lib/`, `include/`

### 层/文件夹模式 (如果存在则记录)
`core/`, `utils/`, `network/`, `storage/`, `ui/`, `tests/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---|---|---|
| 类 | `class *`, `public:`, `private:` | cpp-class |
| 头文件 | `*.h`, `*.hpp`, `#pragma once` | header-file |
| 模板 | `template<`, `typename T` | cpp-template |
| 智能指针 | `std::unique_ptr`, `std::shared_ptr` | smart-pointer |
| RAII | 析构函数模式, `~*()` | raii-pattern |
| 单例 | `static *& instance()` | singleton |
| 工厂 | `create*()`, `make*()` | factory-pattern |
| 观察者 | `subscribe`, `notify`, 回调模式 | observer-pattern |
| 线程 | `std::thread`, `std::async`, `pthread` | threading |
| 互斥锁 | `std::mutex`, `std::lock_guard` | synchronization |
| 网络 | `socket`, `asio::`, `boost::asio` | network-cpp |
| 序列化 | `nlohmann::json`, `protobuf` | serialization |
| 单元测试 | `TEST(`, `TEST_F(`, `gtest` | gtest |
| Catch2 测试 | `TEST_CASE(`, `REQUIRE(` | catch2-test |

## 强制输出部分

如果检测到,则包含:
- **核心模块**:主要功能
- **库**:内部库
- **头文件**:公共 API
- **测试**:测试组织
- **构建目标**:可执行文件、库

## 命令来源
- `CMakeLists.txt` 自定义目标
- `Makefile` 目标
- README/文档, CI
- 常见:`cmake`, `make`, `ctest`
- 仅包含仓库中存在的命令

## 关键路径
- `src/`, `include/`
- `lib/`, `libs/`
- `tests/`, `test/`
- `build/` (源外)
文件:references/dotnet.md
# .NET (C#/F#)

## 检测信号
- `*.csproj`, `*.fsproj`
- `*.sln`
- `global.json`
- `appsettings.json`
- `Program.cs`, `Startup.cs`

## 多模块信号
- 多个 `*.csproj` 文件
- 包含多个项目的解决方案
- 包含项目的 `src/`, `tests/` 目录

## 预生成来源
- `*.csproj`(依赖项、SDK)
- `*.sln`(项目结构)
- `appsettings.json`(配置)
- `global.json`(SDK 版本)

## 代码库扫描模式

### 源代码根目录
- `src/`, `*/`(每个项目)

### 层/文件夹模式(如果存在则记录)
`Controllers/`, `Services/`, `Repositories/`, `Models/`, `Entities/`, `DTOs/`, `Middleware/`, `Extensions/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| 控制器 | `[ApiController]`, `ControllerBase`, `[HttpGet]` | aspnet-controller |
| 服务 | `I*Service`, `class *Service` | dotnet-service |
| 仓储 | `I*Repository`, `class *Repository` | dotnet-repository |
| 实体 | `class *Entity`, `[Table]`, `[Key]` | ef-entity |
| DTO | `class *Dto`, `class *Request`, `class *Response` | dto-pattern |
| DbContext | `: DbContext`, `DbSet<` | ef-dbcontext |
| 中间件 | `IMiddleware`, `RequestDelegate` | aspnet-middleware |
| 后台服务 | `BackgroundService`, `IHostedService` | background-service |
| MediatR 处理器 | `IRequestHandler<`, `INotificationHandler<` | mediatr-handler |
| SignalR Hub | `: Hub`, `[HubName]` | signalr-hub |
| 极简 API | `app.MapGet(`, `app.MapPost(` | minimal-api |
| gRPC 服务 | `*.proto`, `: *Base` | grpc-service |
| EF 迁移 | `Migrations/`, `AddMigration` | ef-migration |
| 单元测试 | `[Fact]`, `[Theory]`, `xUnit` | xunit-test |
| 集成测试 | `WebApplicationFactory`, `IClassFixture` | integration-test |

## 强制输出部分

如果检测到,则包含:
- **控制器**:API 端点
- **服务**:业务逻辑
- **仓储**:数据访问 (EF Core)
- **实体/DTO**:数据模型
- **中间件**:请求管道
- **后台服务**:托管服务

## 命令来源
- `*.csproj` 目标
- README/文档, CI
- 常见: `dotnet build`, `dotnet test`, `dotnet run`
- 只包含仓库中存在的命令

## 关键路径
- `src/*/`, 项目目录
- `tests/`
- `Migrations/`
- `Properties/`
文件:references/elixir.md
# Elixir/Erlang

## 检测信号
- `mix.exs`
- `mix.lock`
- `config/config.exs`
- `lib/`, `test/` 目录

## 多模块信号
- 伞形应用 (`apps/` 目录)
- 子目录中有多个 `mix.exs`
- `rel/` 用于发布

## 预生成来源
- `mix.exs` (依赖, 配置)
- `config/*.exs` (配置)
- `rel/config.exs` (发布)

## 代码库扫描模式

### 源代码根目录
- `lib/`, `apps/*/lib/`

### 层/文件夹模式 (如果存在则记录)
`controllers/`, `views/`, `channels/`, `contexts/`, `schemas/`, `workers/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| Phoenix Controller | `use *Web, :controller`, `def index` | phoenix-controller |
| Phoenix LiveView | `use *Web, :live_view`, `mount/3` | phoenix-liveview |
| Phoenix Channel | `use *Web, :channel`, `join/3` | phoenix-channel |
| Ecto Schema | `use Ecto.Schema`, `schema "` | ecto-schema |
| Ecto Migration | `use Ecto.Migration`, `create table` | ecto-migration |
| Ecto Changeset | `cast/4`, `validate_required` | ecto-changeset |
| Context | `defmodule *Context`, `def list_*` | phoenix-context |
| GenServer | `use GenServer`, `handle_call` | genserver |
| Supervisor | `use Supervisor`, `start_link` | supervisor |
| Task | `Task.async`, `Task.Supervisor` | elixir-task |
| Oban Worker | `use Oban.Worker`, `perform/1` | oban-worker |
| Absinthe | `use Absinthe.Schema`, `field :` | graphql-schema |
| ExUnit Test | `use ExUnit.Case`, `test "` | exunit-test |

## 强制输出部分

如果检测到则包括:
- **Controllers/LiveViews**:HTTP/WebSocket 处理器
- **Contexts**:业务逻辑
- **Schemas**:Ecto 模型
- **Channels**:实时处理器
- **Workers**:后台作业

## 命令来源
- `mix.exs` 别名
- README/文档,CI
- 常见:`mix deps.get`,`mix test`,`mix phx.server`
- 只包括仓库中存在的命令

## 关键路径
- `lib/*/`,`lib/*_web/`
- `priv/repo/migrations/`
- `test/`
- `config/`
 文件:references/flutter.md
# Flutter/Dart

## 检测信号
- `pubspec.yaml`
- `lib/main.dart`
- `android/`,`ios/`,`web/` 目录
- `.dart_tool/`
- `analysis_options.yaml`

## 多模块信号
- `melos.yaml` (monorepo)
- 子目录中存在多个 `pubspec.yaml`
- `packages/` 目录

## 预生成来源
- `pubspec.yaml` (依赖项)
- `analysis_options.yaml`
- `build.yaml` (如果使用 build_runner)
- `lib/main.dart` (入口点)

## 代码库扫描模式

### 源代码根目录
- `lib/`,`test/`

### 层/文件夹模式 (如果存在则记录)
`screens/`,`widgets/`,`models/`,`services/`,`providers/`,`repositories/`,`utils/`,`constants/`,`bloc/`,`cubit/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| 屏幕/页面 | `*Screen`, `*Page`, `extends StatefulWidget` | flutter-screen |
| 小部件 | `extends StatelessWidget`, `extends StatefulWidget` | flutter-widget |
| BLoC | `extends Bloc<`, `extends Cubit<` | bloc-pattern |
| Provider | `ChangeNotifier`, `Provider.of<`, `context.read<` | provider-pattern |
| Riverpod | `@riverpod`, `ref.watch`, `ConsumerWidget` | riverpod-provider |
| GetX | `GetxController`, `Get.put`, `Obx(` | getx-controller |
| 仓库 | `*Repository`, `abstract class *Repository` | data-repository |
| 服务 | `*Service` | service-layer |
| 模型 | `fromJson`, `toJson`, `@JsonSerializable` | json-model |
| Freezed | `@freezed`, `part '*.freezed.dart'` | freezed-model |
| API 客户端 | `Dio`, `http.Client`, `Retrofit` | api-client |
| 导航 | `Navigator`, `GoRouter`, `auto_route` | flutter-navigation |
| 本地化 | `AppLocalizations`, `l10n`, `intl` | flutter-l10n |
| 测试 | `testWidgets`, `WidgetTester`, `flutter_test` | widget-test |
| 集成测试 | `integration_test`, `IntegrationTestWidgetsFlutterBinding` | integration-test |

## 强制输出部分

如果检测到,则包含:
- **屏幕清单**:`screens/`、`pages/` 下的目录
- **状态管理**:BLoC、Provider、Riverpod、GetX
- **导航设置**:GoRouter、auto_route、Navigator
- **DI 方法**:get_it、injectable、手动
- **API 层**:Dio、http、Retrofit
- **模型**:Freezed、json_serializable

## 命令来源
- `pubspec.yaml` 脚本(如果使用 melos)
- README/文档
- 常用:`flutter run`、`flutter test`、`flutter build`
- 仅包含仓库中存在的命令

## 关键路径
- `lib/`, `test/`
- `lib/screens/`, `lib/widgets/`
- `lib/bloc/`, `lib/providers/`
- `assets/`
 FILE:references/generic.md 
# 通用/未知技术栈

当未检测到特定平台时,作为备用参考。

## 检测信号
- 未发现特定的构建/配置文件
- 混合技术栈
- 仅包含文档的仓库

## 多模块信号
- 多个具有独立关注点的目录
- `packages/`, `modules/`, `libs/` 目录
- 没有特定工具的 Monorepo 结构

## 预生成来源
- `README.md` (项目概览)
- `docs/*` (文档)
- `.env.example` (环境变量)
- `docker-compose.yml` (服务)
- CI 文件 (`.github/workflows/` 等)

## 代码库扫描模式

### 源代码根目录
- `src/`, `lib/`, `app/`

### 层/文件夹模式 (如果存在则记录)
`api/`, `core/`, `utils/`, `services/`, `models/`, `config/`, `scripts/`

### 通用模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| 入口点 | `main.*`, `index.*`, `app.*` | entry-point |
| 配置 | `config.*`, `settings.*` | config-file |
| API 客户端 | `api/`, `client/`, HTTP 调用 | api-client |
| 模型 | `model/`, `types/`, 数据结构 | data-model |
| 服务 | `service/`, 业务逻辑 | service-layer |
| 工具 | `utils/`, `helpers/`, `common/` | utility-module |
| 测试 | `test/`, `tests/`, `*_test.*`, `*.test.*` | test-file |
| 脚本 | `scripts/`, `bin/` | script-file |
| 文档 | `docs/`, `*.md` | documentation |

## 强制输出部分

如果检测到,请包含:
- **项目结构**:主要目录
- **入口点**:主要文件
- **配置**:配置文件
- **依赖项**:任何包管理器
- **构建/运行命令**:来自 README/脚本

## 命令来源
- `README.md` (查找代码块)
- `Makefile`, `Taskfile.yml`
- `scripts/` 目录
- CI 工作流
- 只包含仓库中存在的命令

## 关键路径
- `src/`, `lib/`
- `docs/`
- `scripts/`
- `config/`

## 注意事项

使用此通用参考时:
1. 扫描任何可识别的模式
2. 记录发现的实际项目结构
3. 如果可用,从 README 中提取命令
4. 记录文档中提及的任何技术
5. 保持输出简洁和事实性
 文件:references/go.md
# Go

## 检测信号
- `go.mod`
- `go.sum`
- `main.go`
- `cmd/`, `internal/`, `pkg/` 目录

## 多模块信号
- `go.work` (工作区)
- 多个 `go.mod` 文件
- `cmd/*/main.go` (多个二进制文件)

## 预生成来源
- `go.mod` (依赖项)
- `Makefile` (构建命令)
- `config/*.yaml` 或 `*.toml`

## 代码库扫描模式

### 源根目录
- `cmd/`, `internal/`, `pkg/`

### 层/文件夹模式 (如果存在则记录)
`handler/`, `service/`, `repository/`, `model/`, `middleware/`, `config/`, `util/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---|---|---|
| HTTP Handler | `http.Handler`, `http.HandlerFunc`, `gin.Context` | http-handler |
| Gin 路由 | `gin.Engine`, `r.GET(`, `r.POST(` | gin-route |
| Echo 路由 | `echo.Echo`, `e.GET(`, `e.POST(` | echo-route |
| Fiber 路由 | `fiber.App`, `app.Get(`, `app.Post(` | fiber-route |
| gRPC 服务 | `*.proto`, `pb.*Server` | grpc-service |
| 仓库 | `type *Repository interface`, `*Repository` | data-repository |
| 服务 | `type *Service interface`, `*Service` | service-layer |
| GORM 模型 | `gorm.Model`, `*gorm.DB` | gorm-model |
| sqlx | `sqlx.DB`, `sqlx.NamedExec` | sqlx-usage |
| 迁移 | `goose`, `golang-migrate` | db-migration |
| 中间件 | `func(*Context)`, `middleware.*` | go-middleware |
| Worker | `go func()`, `sync.WaitGroup`, `errgroup` | worker-goroutine |
| 配置 | `viper`, `envconfig`, `cleanenv` | config-loader |
| 单元测试 | `*_test.go`, `func Test*(t *testing.T)` | go-test |
| Mock | `mockgen`, `*_mock.go` | go-mock |

## 强制输出部分

如果检测到,请包含:
- **HTTP 处理程序**:API 端点
- **服务**:业务逻辑
- **仓库**:数据访问
- **模型**:数据结构
- **中间件**:请求拦截器
- **迁移**:数据库迁移

## 命令来源
- `Makefile` 目标
- README/文档,CI
- 常见:`go build`, `go test`, `go run`
- 仅包含仓库中存在的命令

## 关键路径
- `cmd/`, `internal/`, `pkg/`
- `api/`, `handler/`
- `migrations/`
- `config/`
文件:references/ios.md
# iOS (Xcode/Swift)

## 检测信号
- `*.xcodeproj`, `*.xcworkspace`
- `Package.swift` (SPM)
- `Podfile`, `Podfile.lock` (CocoaPods)
- `Cartfile` (Carthage)
- `*.pbxproj`
- `Info.plist`

## 多模块信号
- `*.xcodeproj` 中有多个 target
- 多个 `Package.swift` 文件
- 包含多个项目的 Workspace
- `Modules/`、`Packages/`、`Features/` 目录

## 预生成源
- `*.xcodeproj/project.pbxproj` (target 列表)
- `Package.swift` (依赖项、target)
- `Podfile` (依赖项)
- `*.xcconfig` (构建配置)
- `Info.plist` 文件

## 代码库扫描模式

### 源根目录
- `*/Sources/`、`*/Source/`
- `*/App/`、`*/Core/`、`*/Features/`

### 层/文件夹模式 (如果存在则记录)
`Models/`、`Views/`、`ViewModels/`、`Services/`、`Networking/`、`Utilities/`、`Extensions/`、`Coordinators/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| SwiftUI View | `struct *: View`、`var body: some View` | swiftui-view |
| UIKit VC | `UIViewController`、`viewDidLoad()` | uikit-viewcontroller |
| ViewModel | `@Observable`、`ObservableObject`、`@Published` | viewmodel-observable |
| Coordinator | `Coordinator`、`*Coordinator` | coordinator-pattern |
| Repository | `*Repository`、`protocol *Repository` | data-repository |
| Service | `*Service`、`protocol *Service` | service-layer |
| Core Data | `NSManagedObject`、`@NSManaged`、`.xcdatamodeld` | coredata-entity |
| Realm | `Object`、`@Persisted` | realm-model |
| Network | `URLSession`、`Alamofire`、`Moya` | network-client |
| Dependency | `@Inject`、`Container`、`Swinject` | di-container |
| Navigation | `NavigationStack`、`NavigationPath` | navigation-swiftui |
| Combine | `Publisher`、`AnyPublisher`、`sink` | combine-publisher |
| Async/Await | `async`、`await`、`Task {` | async-await |
| Unit Test | `XCTestCase`、`func test*()` | xctest |
| UI Test | `XCUIApplication`、`XCUIElement` | xcuitest |

## 强制输出部分

如果检测到则包含:
- **目标清单**:来自 pbxproj 的列表
- **模块/包**:SPM 包,Pods
- **视图架构**:SwiftUI vs UIKit
- **状态管理**:Combine, Observable 等
- **网络层**:URLSession, Alamofire 等
- **持久化**:Core Data, Realm, UserDefaults
- **DI 设置**:Swinject, 手动注入

## 命令来源
- 包含 xcodebuild 命令的 README/文档
- `fastlane/Fastfile` 中的 lane
- CI 工作流 (`.github/workflows/`, `.gitlab-ci.yml`)
- 常见:`xcodebuild test`, `fastlane test`
- 仅包含仓库中存在的命令

## 关键路径
- `*/Sources/`, `*/Tests/`
- `*.xcodeproj/`, `*.xcworkspace/`
- `Pods/` (如果使用 CocoaPods)
- `Packages/` (如果使用 SPM 本地包)
 文件:references/java.md 
# Java/JVM (Spring, etc.)

## 检测信号
- `pom.xml` (Maven)
- `build.gradle`, `build.gradle.kts` (Gradle)
- `settings.gradle` (多模块)
- `src/main/java/`, `src/main/kotlin/`
- `application.properties`, `application.yml`

## 多模块信号
- 多个 `pom.xml` 包含 `<modules>`
- 多个 `build.gradle` 包含 `include()`
- `modules/`, `services/` 目录

## 预生成来源
- `pom.xml` 或 `build.gradle*` (依赖)
- `application.properties/yml` (配置)
- `settings.gradle` (模块)
- `docker-compose.yml` (服务)

## 代码库扫描模式

### 源代码根目录
- `src/main/java/`, `src/main/kotlin/`
- `src/test/java/`, `src/test/kotlin/`

### 层/文件夹模式 (如果存在则记录)
`controller/`, `service/`, `repository/`, `model/`, `entity/`, `dto/`, `config/`, `exception/`, `util/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| REST 控制器 | `@RestController`, `@GetMapping`, `@PostMapping` | spring-controller |
| 服务 | `@Service`, `class *Service` | spring-service |
| 仓库 | `@Repository`, `JpaRepository`, `CrudRepository` | spring-repository |
| 实体 | `@Entity`, `@Table`, `@Id` | jpa-entity |
| DTO | `class *DTO`, `class *Request`, `class *Response` | dto-pattern |
| 配置 | `@Configuration`, `@Bean` | spring-config |
| 组件 | `@Component`, `@Autowired` | spring-component |
| 安全 | `@EnableWebSecurity`, `SecurityFilterChain` | spring-security |
| 验证 | `@Valid`, `@NotNull`, `@Size` | validation-pattern |
| 异常处理器 | `@ControllerAdvice`, `@ExceptionHandler` | exception-handler |
| 调度器 | `@Scheduled`, `@EnableScheduling` | scheduled-task |
| 事件 | `ApplicationEvent`, `@EventListener` | event-listener |
| Flyway 迁移 | `V*__*.sql`, `flyway` | flyway-migration |
| Liquibase | `changelog*.xml`, `liquibase` | liquibase-migration |
| 单元测试 | `@Test`, `@SpringBootTest`, `MockMvc` | spring-test |
| 集成测试 | `@DataJpaTest`, `@WebMvcTest` | integration-test |

## 强制输出部分

如果检测到,请包含:
- **控制器**:REST 端点
- **服务**:业务逻辑
- **仓库**:数据访问(JPA, JDBC)
- **实体/DTOs**:数据模型
- **配置**:Spring bean,配置文件
- **安全**:认证配置

## 命令来源
- `pom.xml` 插件, `build.gradle` 任务
- README/文档, CI
- 常见: `./mvnw`, `./gradlew`, `mvn test`, `gradle test`
- 只包含仓库中存在的命令

## 关键路径
- `src/main/java/`, `src/main/kotlin/`
- `src/main/resources/`
- `src/test/`
- `db/migration/` (Flyway)
 FILE:references/node.md 
# Node.js

## 检测信号
- `package.json` (不含 react/react-native)
- `tsconfig.json`
- `node_modules/`
- `*.js`, `*.ts`, `*.mjs`, `*.cjs` 入口文件

## 多模块信号
- `pnpm-workspace.yaml`, `lerna.json`
- `nx.json`, `turbo.json`
- 子目录中存在多个 `package.json`
- `packages/`, `apps/` 目录

## 预生成来源
- `package.json` (依赖项, 脚本)
- `tsconfig.json` (路径, 编译器选项)
- `.env.example` (环境变量)
- `docker-compose.yml` (服务)

## 代码库扫描模式

### 源代码根目录
- `src/`, `lib/`, `app/`

### 层/文件夹模式 (如果存在则记录)
`controllers/`, `services/`, `models/`, `routes/`, `middleware/`, `utils/`, `config/`, `types/`, `repositories/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| Express 路由 | `app.get(`, `app.post(`, `Router()` | express-route |
| Express 中间件 | `(req, res, next)`, `app.use(` | express-middleware |
| NestJS 控制器 | `@Controller`, `@Get`, `@Post` | nestjs-controller |
| NestJS 服务 | `@Injectable`, `@Service` | nestjs-service |
| NestJS 模块 | `@Module`, `imports:`, `providers:` | nestjs-module |
| Fastify 路由 | `fastify.get(`, `fastify.post(` | fastify-route |
| GraphQL 解析器 | `@Resolver`, `@Query`, `@Mutation` | graphql-resolver |
| TypeORM 实体 | `@Entity`, `@Column`, `@PrimaryGeneratedColumn` | typeorm-entity |
| Prisma 模型 | `prisma.*.create`, `prisma.*.findMany` | prisma-usage |
| Mongoose 模型 | `mongoose.Schema`, `mongoose.model(` | mongoose-model |
| Sequelize 模型 | `Model.init`, `DataTypes` | sequelize-model |
| 队列工作器 | `Bull`, `BullMQ`, `process(` | queue-worker |
| Cron 任务 | `@Cron`, `node-cron`, `cron.schedule` | cron-job |
| WebSocket | `ws`, `socket.io`, `io.on(` | websocket-handler |
| 单元测试 | `describe(`, `it(`, `expect(`, `jest` | jest-test |
| E2E 测试 | `supertest`, `request(app)` | e2e-test |

## 强制输出部分

如果检测到,则包含:
- **路由/控制器**:API 端点
- **服务层**:业务逻辑
- **数据库**:ORM/ODM 使用(TypeORM, Prisma, Mongoose)
- **中间件**:认证、验证、错误处理
- **后台任务**:队列、Cron 任务
- **WebSocket 处理程序**:实时功能

## 命令来源
- `package.json` 的 scripts 部分
- README/文档
- CI 工作流
- 常见:`npm run dev`, `npm run build`, `npm test`
- 仅包含仓库中存在的命令

## 关键路径
- `src/`, `lib/`
- `src/routes/`, `src/controllers/`
- `src/services/`, `src/models/`
- `prisma/`, `migrations/`
 FILE:references/php.md 
# PHP

## 检测信号
- `composer.json`, `composer.lock`
- `public/index.php`
- `artisan` (Laravel)
- `spark` (CodeIgniter 4)
- `bin/console` (Symfony)
- `app/Config/App.php` (CodeIgniter 4)
- `ext-phalcon` in composer.json (Phalcon)
- `phalcon/devtools` (Phalcon)

## 多模块信号
- `packages/` 目录
- Laravel 模块 (`app/Modules/`)
- CodeIgniter 模块 (`app/Modules/`, `modules/`)
- Phalcon 多应用 (`apps/*/`)
- 子目录中存在多个 `composer.json`

## 预生成源
- `composer.json` (依赖项)
- `.env.example` (环境变量)
- `config/*.php` (Laravel/Symfony)
- `routes/*.php` (Laravel)
- `app/Config/*` (CodeIgniter 4)
- `apps/*/config/` (Phalcon)

## 代码库扫描模式

### 源根目录
- `app/`, `src/`, `apps/`

### 层/文件夹模式 (如果存在则记录)
`Controllers/`, `Services/`, `Repositories/`, `Models/`, `Entities/`, `Http/`, `Providers/`, `Console/`

### 框架特定结构

**Laravel** (如果存在则记录):
- `app/Http/Controllers`, `app/Models`, `database/migrations`
- `routes/*.php`, `resources/views`

**Symfony** (如果存在则记录):
- `src/Controller`, `src/Entity`, `config/packages`, `templates`

**CodeIgniter 4** (如果存在则记录):
- `app/Controllers`, `app/Models`, `app/Views`
- `app/Config/Routes.php`, `app/Database/Migrations`

**Phalcon** (如果存在则记录):
- `apps/*/controllers/`, `apps/*/Module.php`
- `models/`, `views/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| Laravel 控制器 | `extends Controller`, `public function index` | laravel-controller |
| Laravel 模型 | `extends Model`, `protected $fillable` | laravel-model |
| Laravel 迁移 | `extends Migration`, `Schema::create` | laravel-migration |
| Laravel 服务 | `class *Service`, `app/Services/` | laravel-service |
| Laravel 仓库 | `*Repository`, `interface *Repository` | laravel-repository |
| Laravel 任务 | `implements ShouldQueue`, `dispatch(` | laravel-job |
| Laravel 事件 | `extends Event`, `event(` | laravel-event |
| Symfony 控制器 | `#[Route]`, `AbstractController` | symfony-controller |
| Symfony 服务 | `#[AsService]`, `services.yaml` | symfony-service |
| Doctrine 实体 | `#[ORM\Entity]`, `#[ORM\Column]` | doctrine-entity |
| Doctrine 迁移 | `AbstractMigration`, `$this->addSql` | doctrine-migration |
| CI4 控制器 | `extends BaseController`, `app/Controllers/` | ci4-controller |
| CI4 模型 | `extends Model`, `protected $table` | ci4-model |
| CI4 迁移 | `extends Migration`, `$this->forge->` | ci4-migration |
| CI4 实体 | `extends Entity`, `app/Entities/` | ci4-entity |
| Phalcon 控制器 | `extends Controller`, `Phalcon\Mvc\Controller` | phalcon-controller |
| Phalcon 模型 | `extends Model`, `Phalcon\Mvc\Model` | phalcon-model |
| Phalcon 迁移 | `Phalcon\Migrations`, `morphTable` | phalcon-migration |
| API 资源 | `extends JsonResource`, `toArray` | api-resource |
| 表单请求 | `extends FormRequest`, `rules()` | form-request |
| 中间件 | `implements Middleware`, `handle(` | php-middleware |
| 单元测试 | `extends TestCase`, `test*()`, `PHPUnit` | phpunit-test |

| Feature Test | `extends TestCase`, `$this->get(`, `$this->post(` | feature-test |

## 强制输出部分

如果检测到,则包括:
- **控制器**:HTTP 端点
- **模型/实体**:数据层
- **服务**:业务逻辑
- **仓库**:数据访问
- **迁移**:数据库更改
- **作业/事件**:异步处理
- **业务模块**:按大小排序的顶级模块

## 命令来源
- `composer.json` 脚本
- `php artisan` (Laravel)
- `php spark` (CodeIgniter 4)
- `bin/console` (Symfony)
- `phalcon` devtools 命令
- README/文档,CI
- 仅包含仓库中存在的命令

## 关键路径

**Laravel:**
- `app/`, `routes/`, `database/migrations/`
- `resources/views/`, `tests/`

**Symfony:**
- `src/`, `config/`, `templates/`
- `migrations/`, `tests/`

**CodeIgniter 4:**
- `app/Controllers/`, `app/Models/`, `app/Views/`
- `app/Database/Migrations/`, `tests/`

**Phalcon:**
- `apps/*/controllers/`, `apps/*/models/`
- `apps/*/views/`, `migrations/`
 文件:references/python.md
# Python

## 检测信号
- `pyproject.toml`
- `requirements.txt`, `requirements-dev.txt`
- `Pipfile`, `poetry.lock`
- `setup.py`, `setup.cfg`
- `manage.py` (Django)

## 多模块信号
- 子目录中存在多个 `pyproject.toml`
- `packages/`, `apps/` 目录
- Django 风格的 `apps/` 目录,其中包含 `apps.py`

## 预生成来源
- `pyproject.toml` 或 `setup.py`
- `requirements*.txt`, `Pipfile`
- `tox.ini`, `pytest.ini`
- `manage.py`, `settings.py` (Django)

## 代码库扫描模式

### 源根目录
- `src/`, `app/`, `packages/`, `tests/`

### 层/文件夹模式(如果存在则记录)
`api/`, `routers/`, `views/`, `services/`, `repositories/`, `models/`, `schemas/`, `utils/`, `config/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| FastAPI 路由 | `APIRouter`, `@router.get`, `@router.post` | fastapi-router |
| FastAPI 依赖 | `Depends(`, `def get_*():` | fastapi-dependency |
| Django 视图 | `View`, `APIView`, `def get(self, request)` | django-view |
| Django 模型 | `models.Model`, `class Meta:` | django-model |
| Django 序列化器 | `serializers.Serializer`, `ModelSerializer` | drf-serializer |
| Flask 路由 | `@app.route`, `Blueprint` | flask-route |
| Pydantic 模型 | `BaseModel`, `Field(`, `model_validator` | pydantic-model |
| SQLAlchemy 模型 | `Base`, `Column(`, `relationship(` | sqlalchemy-model |
| Alembic 迁移 | `alembic/versions/`, `op.create_table` | alembic-migration |
| 仓库 | `*Repository`, `class *Repository` | data-repository |
| 服务 | `*Service`, `class *Service` | service-layer |
| Celery 任务 | `@celery.task`, `@shared_task` | celery-task |
| CLI 命令 | `@click.command`, `typer.Typer` | cli-command |
| 单元测试 | `pytest`, `def test_*():`, `unittest` | pytest-test |
| 夹具 | `@pytest.fixture`, `conftest.py` | pytest-fixture |

## 强制输出部分

如果检测到则包含:
- **路由/视图**:API 端点
- **模型/模式**:数据模型(Pydantic, SQLAlchemy, Django)
- **服务**:业务逻辑层
- **仓库**:数据访问层
- **迁移**:Alembic, Django 迁移
- **任务**:Celery, 后台作业

## 命令来源
- `pyproject.toml` 工具部分
- README/文档, CI
- 常见:`python manage.py`, `pytest`, `uvicorn`, `flask run`
- 仅包含仓库中存在的命令

## 关键路径
- `src/`, `app/`
- `tests/`
- `alembic/`, `migrations/`
- `templates/`, `static/` (如果是 Web 项目)
 FILE:references/react-native.md 
# React Native

## 检测信号
- 包含 `react-native` 的 `package.json`
- `metro.config.js`
- `app.json` 或 `app.config.js` (Expo)
- `android/`, `ios/` 目录
- 包含 metro 预设的 `babel.config.js`

## 多模块信号
- 包含 `packages/` 的 Monorepo
- 多个 `app.json` 文件
- 包含 React Native 的 Nx 工作区

## 预生成来源
- `package.json` (依赖项, 脚本)
- `app.json` 或 `app.config.js`
- `metro.config.js`
- `babel.config.js`
- `tsconfig.json`

## 代码库扫描模式

### 源根目录
- `src/`, `app/`

### 层/文件夹模式 (如果存在则记录)
`screens/`, `components/`, `navigation/`, `services/`, `hooks/`, `store/`, `api/`, `utils/`, `assets/`

### 模式指示器

| Pattern | Detection Criteria | Skill Name |
|---------|-------------------|------------|
| 屏幕 | `*Screen`, `export function *Screen` | rn-screen |
| 组件 | `export function *()`, `StyleSheet.create` | rn-component |
| 导航 | `createNativeStackNavigator`, `NavigationContainer` | rn-navigation |
| Hook | `use*`, `export function use*()` | rn-hook |
| Redux | `createSlice`, `configureStore` | redux-slice |
| Zustand | `create(`, `useStore` | zustand-store |
| React Query | `useQuery`, `useMutation` | react-query |
| 原生模块 | `NativeModules`, `TurboModule` | native-module |
| 异步存储 | `AsyncStorage`, `@react-native-async-storage` | async-storage |
| SQLite | `expo-sqlite`, `react-native-sqlite-storage` | sqlite-storage |
| 推送通知 | `@react-native-firebase/messaging`, `expo-notifications` | push-notification |
| 深度链接 | `Linking`, `useURL`, `expo-linking` | deep-link |
| 动画 | `Animated`, `react-native-reanimated` | rn-animation |
| 手势 | `react-native-gesture-handler`, `Gesture` | rn-gesture |
| 测试 | `@testing-library/react-native`, `render` | rntl-test |

## 强制输出部分

如果检测到,请包含:
- **屏幕清单**:`screens/` 下的目录
- **导航结构**:堆栈、标签、抽屉导航器
- **状态管理**:Redux、Zustand、Context
- **原生模块**:自定义原生代码
- **存储层**:AsyncStorage、SQLite、MMKV
- **平台特定**:`*.android.tsx`、`*.ios.tsx`

## 命令来源
- `package.json` 脚本
- README/文档
- 常见:`npm run android`、`npm run ios`、`npx expo start`
- 仅包含仓库中存在的命令

## 关键路径
- `src/screens/`, `src/components/`
- `src/navigation/`, `src/store/`
- `android/app/`, `ios/*/`
- `assets/`
 FILE:references/react-web.md 
# React (Web)

## 检测信号
- `package.json` 包含 `react`, `react-dom`
- `vite.config.ts`, `next.config.js`, `craco.config.js`
- `tsconfig.json` 或 `jsconfig.json`
- `src/App.tsx` 或 `src/App.jsx`
- `public/index.html` (CRA)

## 多模块信号
- `pnpm-workspace.yaml`, `lerna.json`
- 子目录中存在多个 `package.json`
- `packages/`, `apps/` 目录
- Nx 工作区 (`nx.json`)

## 预生成来源
- `package.json` (依赖项, 脚本)
- `tsconfig.json` (路径, 编译器选项)
- `vite.config.*`, `next.config.*`, `webpack.config.*`
- `.env.example` (环境变量)

## 代码库扫描模式

### 源根目录
- `src/`, `app/`, `pages/`

### 层/文件夹模式 (如果存在则记录)
`components/`, `hooks/`, `services/`, `utils/`, `store/`, `api/`, `types/`, `contexts/`, `features/`, `layouts/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| 组件 | `export function *()`, `export const * =` 包含 JSX | react-component |
| Hook | `use*`, `export function use*()` | custom-hook |
| Context | `createContext`, `useContext`, `*Provider` | react-context |
| Redux | `createSlice`, `configureStore`, `useSelector` | redux-slice |
| Zustand | `create(`, `useStore` | zustand-store |
| React Query | `useQuery`, `useMutation`, `QueryClient` | react-query |
| 表单 | `useForm`, `react-hook-form`, `Formik` | form-handling |
| 路由 | `createBrowserRouter`, `Route`, `useNavigate` | react-router |
| API 客户端 | `axios`, `fetch`, `ky` | api-client |
| 测试 | `@testing-library/react`, `render`, `screen` | rtl-test |
| Storybook | `*.stories.tsx`, `Meta`, `StoryObj` | storybook |
| 样式化 | `styled-components`, `@emotion`, `styled(` | styled-component |
| Tailwind | `className="*"`, `tailwind.config.js` | tailwind-usage |
| 国际化 | `useTranslation`, `i18next`, `t()` | i18n-usage |
| 认证 | `useAuth`, `AuthProvider`, `PrivateRoute` | auth-pattern |

## 强制输出部分

如果检测到,请包含:
- **组件清单**:`components/` 下的目录
- **特性/页面**:`features/`、`pages/` 下的目录
- **状态管理**:Redux、Zustand、Context
- **路由设置**:React Router、Next.js 页面
- **API 层**:axios 实例、fetch 封装
- **样式方法**:CSS modules、Tailwind、styled-components
- **表单处理**:react-hook-form、Formik

## 命令来源
- `package.json` 的 scripts 部分
- README/文档
- CI 工作流
- 常见:`npm run dev`, `npm run build`, `npm test`
- 仅包含仓库中存在的命令

## 关键路径
- `src/components/`, `src/hooks/`
- `src/pages/`, `src/features/`
- `src/store/`, `src/api/`
- `public/`, `dist/`, `build/`
 FILE:references/ruby.md 
# Ruby/Rails

## 检测信号
- `Gemfile`
- `Gemfile.lock`
- `config.ru`
- `Rakefile`
- `config/application.rb` (Rails)

## 多模块信号
- 子目录中存在多个 `Gemfile`
- `engines/` 目录 (Rails 引擎)
- `gems/` 目录 (monorepo)

## 预生成来源
- `Gemfile` (依赖项)
- `config/database.yml`
- `config/routes.rb` (Rails)
- `.env.example`

## 代码库扫描模式

### 源代码根目录
- `app/`, `lib/`

### 层/文件夹模式 (如果存在则记录)
`controllers/`, `models/`, `services/`, `jobs/`, `mailers/`, `channels/`, `helpers/`, `concerns/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---------|-------------------|------------|
| Rails Controller | `< ApplicationController`, `def index` | rails-controller |
| Rails Model | `< ApplicationRecord`, `has_many`, `belongs_to` | rails-model |
| Rails Migration | `< ActiveRecord::Migration`, `create_table` | rails-migration |
| Service Object | `class *Service`, `def call` | service-object |
| Rails Job | `< ApplicationJob`, `perform_later` | rails-job |
| Mailer | `< ApplicationMailer`, `mail(` | rails-mailer |
| Channel | `< ApplicationCable::Channel` | action-cable |
| Serializer | `< ActiveModel::Serializer`, `attributes` | serializer |
| Concern | `extend ActiveSupport::Concern` | rails-concern |
| Sidekiq Worker | `include Sidekiq::Worker`, `perform_async` | sidekiq-worker |
| Grape API | `Grape::API`, `resource :` | grape-api |
| RSpec Test | `RSpec.describe`, `it "` | rspec-test |
| Factory | `FactoryBot.define`, `factory :` | factory-bot |
| Rake Task | `task :`, `namespace :` | rake-task |

## 强制输出部分

如果检测到则包括:
- **Controllers**:HTTP 端点
- **Models**:ActiveRecord 关联
- **Services**:业务逻辑
- **Jobs**:后台处理
- **Migrations**:数据库 schema

## 命令来源
- `Gemfile` 脚本
- `Rakefile` 任务
- `bin/rails`, `bin/rake`
- README/文档, CI
- 仅包含仓库中存在的命令

## 关键路径
- `app/controllers/`, `app/models/`
- `app/services/`, `app/jobs/`
- `db/migrate/`
- `spec/`, `test/`
- `lib/`
文件:references/rust.md
# Rust

## 检测信号
- `Cargo.toml`
- `Cargo.lock`
- `src/main.rs` 或 `src/lib.rs`
- `target/` 目录

## 多模块信号
- `Cargo.toml` 中的 `[workspace]`
- 子目录中存在多个 `Cargo.toml`
- `crates/`, `packages/` 目录

## 预生成来源
- `Cargo.toml` (依赖项, 特性)
- `build.rs` (构建脚本)
- `rust-toolchain.toml` (工具链)

## 代码库扫描模式

### 源根
- `src/`, `crates/*/src/`

### 层/文件夹模式 (如果存在则记录)
`handlers/`, `services/`, `models/`, `db/`, `api/`, `utils/`, `error/`, `config/`

### 模式指示器

| 模式 | 检测标准 | 技能名称 |
|---|---|---|
| Axum Handler | `axum::`, `Router`, `async fn handler` | axum-handler |
| Actix Route | `actix_web::`, `#[get]`, `#[post]` | actix-route |
| Rocket Route | `rocket::`, `#[get]`, `#[post]` | rocket-route |
| Service | `impl *Service`, `pub struct *Service` | rust-service |
| Repository | `*Repository`, `trait *Repository` | rust-repository |
| Diesel Model | `diesel::`, `Queryable`, `Insertable` | diesel-model |
| SQLx | `sqlx::`, `FromRow`, `query_as!` | sqlx-model |
| SeaORM | `sea_orm::`, `Entity`, `ActiveModel` | seaorm-entity |
| Error Type | `thiserror`, `anyhow`, `#[derive(Error)]` | error-type |
| CLI | `clap`, `#[derive(Parser)]` | cli-app |
| Async Task | `tokio::spawn`, `async fn` | async-task |
| Trait | `pub trait *`, `impl * for` | rust-trait |
| Unit Test | `#[cfg(test)]`, `#[test]` | rust-test |
| Integration Test | `tests/`, `#[tokio::test]` | integration-test |

## 强制输出部分

如果检测到,则包含:
- **Handlers/routes**:API 端点
- **Services**:业务逻辑
- **Models/entities**:数据结构
- **Error types**:自定义错误
- **Migrations**:diesel/sqlx 迁移

## 命令来源
- `Cargo.toml` 脚本/别名
- `Makefile`, README/文档
- 常见:`cargo build`, `cargo test`, `cargo run`
- 仅包含仓库中存在的命令

## 关键路径
- `src/`, `crates/`
- `tests/`
- `migrations/`
- `examples/`