skill-master
--- name: skill-master description: Discover codebase patterns and auto-generate SKILL files for .claude/skills/. Use when analyzing project for missing skills, creating new skills from codebase patte
Description
name: skill-master description: Discover codebase patterns and auto-generate SKILL files for .claude/skills/. Use when analyzing project for missing skills, creating new skills from codebase patterns, or syncing skills with project structure. version: 1.0.0
Skill Master
Overview
Analyze codebase to discover patterns and generate/update SKILL files in .claude/skills/. Supports multi-platform projects with stack-specific pattern detection.
Capabilities:
- Scan codebase for architectural patterns (ViewModel, Repository, Room, etc.)
- Compare detected patterns with existing skills
- Auto-generate SKILL files with real code examples
- Version tracking and smart updates
How the AI discovers and uses this skill
This skill triggers when user:
- Asks to analyze project for missing skills
- Requests skill generation from codebase patterns
- Wants to sync or update existing skills
- Mentions "skill discovery", "generate skills", or "skill-sync"
Detection signals:
.claude/skills/directory presence- Project structure matching known patterns
- Build/config files indicating platform (see references)
Modes
Discover Mode
Analyze codebase and report missing skills.
Steps:
- Detect platform via build/config files (see references)
- Scan source roots for pattern indicators
- Compare detected patterns with existing
.claude/skills/ - Output gap analysis report
Output format:
Detected Patterns: {count}
| Pattern | Files Found | Example Location |
|---------|-------------|------------------|
| {name} | {count} | {path} |
Existing Skills: {count}
Missing Skills: {count}
- {skill-name}: {pattern}, {file-count} files found
Generate Mode
Create SKILL files from detected patterns.
Steps:
- Run discovery to identify missing skills
- For each missing skill:
- Find 2-3 representative source files
- Extract: imports, annotations, class structure, conventions
- Extract rules from
.ruler/*.mdif present
- Generate SKILL.md using template structure
- Add version and source marker
Generated SKILL structure:
---
name: {pattern-name}
description: {Generated description with trigger keywords}
version: 1.0.0
---
# {Title}
## Overview
{Brief description from pattern analysis}
## File Structure
{Extracted from codebase}
## Implementation Pattern
{Real code examples - anonymized}
## Rules
### Do
{From .ruler/*.md + codebase conventions}
### Don't
{Anti-patterns found}
## File Location
{Actual paths from codebase}
Create Strategy
When target SKILL file does not exist:
- Generate new file using template
- Set
version: 1.0.0in frontmatter - Include all mandatory sections
- Add source marker at end (see Marker Format)
Update Strategy
Marker check: Look for <!-- Generated by skill-master command at file end.
If marker present (subsequent run):
- Smart merge: preserve custom content, add missing sections
- Increment version: major (breaking) / minor (feature) / patch (fix)
- Update source list in marker
If marker absent (first run on existing file):
- Backup:
SKILL.md→SKILL.md.bak - Use backup as source, extract relevant content
- Generate fresh file with marker
- Set
version: 1.0.0
Marker Format
Place at END of generated SKILL.md:
<!-- Generated by skill-master command
Version: {version}
Sources:
- path/to/source1.kt
- path/to/source2.md
- .ruler/rule-file.md
Last updated: {YYYY-MM-DD}
-->
Platform References
Read relevant reference when platform detected:
| Platform | Detection Files | Reference |
|---|---|---|
| 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 |
| Unknown | - | references/generic.md |
If multiple platforms detected, read multiple references.
Rules
Do
- Only extract patterns verified in codebase
- Use real code examples (anonymize business logic)
- Include trigger keywords in description
- Keep SKILL.md under 500 lines
- Reference external files for detailed content
- Preserve custom sections during updates
- Always backup before first modification
Don't
- Include secrets, tokens, or credentials
- Include business-specific logic details
- Generate placeholders without real content
- Overwrite user customizations without backup
- Create deep reference chains (max 1 level)
- Write outside
.claude/skills/
Content Extraction Rules
From codebase:
- Extract: class structures, annotations, import patterns, file locations, naming conventions
- Never: hardcoded values, secrets, API keys, PII
From .ruler/*.md (if present):
- Extract: Do/Don't rules, architecture constraints, dependency rules
Output Report
After generation, print:
SKILL GENERATION REPORT
Skills Generated: {count}
{skill-name} [CREATED | UPDATED | BACKED_UP+CREATED]
├── Analyzed: {file-count} source files
├── Sources: {list of source files}
├── Rules from: {.ruler files if any}
└── Output: .claude/skills/{skill-name}/SKILL.md ({line-count} lines)
Validation:
✓ YAML frontmatter valid
✓ Description includes trigger keywords
✓ Content under 500 lines
✓ Has required sections
Safety Constraints
- Never write outside
.claude/skills/ - Never delete content without backup
- Always backup before first-time modification
- Preserve user customizations
- Deterministic: same input → same output FILE:references/android.md
Android (Gradle/Kotlin)
Detection signals
settings.gradleorsettings.gradle.ktsbuild.gradleorbuild.gradle.ktsgradle.properties,gradle/libs.versions.tomlgradlew,gradle/wrapper/gradle-wrapper.propertiesapp/src/main/AndroidManifest.xml
Multi-module signals
- Multiple
include(...)insettings.gradle* - Multiple dirs with
build.gradle*+src/ - Common roots:
feature/,core/,library/,domain/,data/
Pre-generation sources
settings.gradle*(module list)build.gradle*(root + modules)gradle/libs.versions.toml(dependencies)config/detekt/detekt.yml(if present)**/AndroidManifest.xml
Codebase scan patterns
Source roots
*/src/main/java/,*/src/main/kotlin/
Layer/folder patterns (record if present)
features/, core/, common/, data/, domain/, presentation/, ui/, di/, navigation/, network/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| 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 |
| App Widget | AppWidgetProvider, GlanceAppWidget |
app-widget |
| Unit Test | @Test, MockK, mockk(, every { |
unit-test |
Mandatory output sections
Include if detected (list actual names found):
- Features inventory: dirs under
feature/ - Core modules: dirs under
core/,library/ - Navigation graphs:
*Graph.kt,*Navigator*.kt - Hilt modules:
@Moduleclasses,di/contents - Retrofit APIs:
*Api.ktinterfaces - Room databases:
@Databaseclasses - Workers:
@HiltWorkerclasses - Proguard:
proguard-rules.proif present
Command sources
- README/docs invoking
./gradlew - CI workflows with Gradle commands
- Common:
./gradlew assemble,./gradlew test,./gradlew lint - Only include commands present in repo
Key paths
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 migrations) FILE:README.md
FILE:references/cpp.md
C/C++
Detection signals
CMakeLists.txtMakefile,makefile*.cpp,*.c,*.h,*.hppconanfile.txt,conanfile.py(Conan)vcpkg.json(vcpkg)
Multi-module signals
- Multiple
CMakeLists.txtwithadd_subdirectory - Multiple
Makefilein subdirs lib/,src/,modules/directories
Pre-generation sources
CMakeLists.txt(dependencies, targets)conanfile.*(dependencies)vcpkg.json(dependencies)Makefile(build targets)
Codebase scan patterns
Source roots
src/,lib/,include/
Layer/folder patterns (record if present)
core/, utils/, network/, storage/, ui/, tests/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Class | class *, public:, private: |
cpp-class |
| Header | *.h, *.hpp, #pragma once |
header-file |
| Template | template<, typename T |
cpp-template |
| Smart Pointer | std::unique_ptr, std::shared_ptr |
smart-pointer |
| RAII | destructor pattern, ~*() |
raii-pattern |
| Singleton | static *& instance() |
singleton |
| Factory | create*(), make*() |
factory-pattern |
| Observer | subscribe, notify, callback pattern |
observer-pattern |
| Thread | std::thread, std::async, pthread |
threading |
| Mutex | std::mutex, std::lock_guard |
synchronization |
| Network | socket, asio::, boost::asio |
network-cpp |
| Serialization | nlohmann::json, protobuf |
serialization |
| Unit Test | TEST(, TEST_F(, gtest |
gtest |
| Catch2 Test | TEST_CASE(, REQUIRE( |
catch2-test |
Mandatory output sections
Include if detected:
- Core modules: main functionality
- Libraries: internal libraries
- Headers: public API
- Tests: test organization
- Build targets: executables, libraries
Command sources
CMakeLists.txtcustom targetsMakefiletargets- README/docs, CI
- Common:
cmake,make,ctest - Only include commands present in repo
Key paths
src/,include/lib/,libs/tests/,test/build/(out-of-source) FILE:references/dotnet.md
.NET (C#/F#)
Detection signals
*.csproj,*.fsproj*.slnglobal.jsonappsettings.jsonProgram.cs,Startup.cs
Multi-module signals
- Multiple
*.csprojfiles - Solution with multiple projects
src/,tests/directories with projects
Pre-generation sources
*.csproj(dependencies, SDK)*.sln(project structure)appsettings.json(config)global.json(SDK version)
Codebase scan patterns
Source roots
src/,*/(per project)
Layer/folder patterns (record if present)
Controllers/, Services/, Repositories/, Models/, Entities/, DTOs/, Middleware/, Extensions/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Controller | [ApiController], ControllerBase, [HttpGet] |
aspnet-controller |
| Service | I*Service, class *Service |
dotnet-service |
| Repository | I*Repository, class *Repository |
dotnet-repository |
| Entity | class *Entity, [Table], [Key] |
ef-entity |
| DTO | class *Dto, class *Request, class *Response |
dto-pattern |
| DbContext | : DbContext, DbSet< |
ef-dbcontext |
| Middleware | IMiddleware, RequestDelegate |
aspnet-middleware |
| Background Service | BackgroundService, IHostedService |
background-service |
| MediatR Handler | IRequestHandler<, INotificationHandler< |
mediatr-handler |
| SignalR Hub | : Hub, [HubName] |
signalr-hub |
| Minimal API | app.MapGet(, app.MapPost( |
minimal-api |
| gRPC Service | *.proto, : *Base |
grpc-service |
| EF Migration | Migrations/, AddMigration |
ef-migration |
| Unit Test | [Fact], [Theory], xUnit |
xunit-test |
| Integration Test | WebApplicationFactory, IClassFixture |
integration-test |
Mandatory output sections
Include if detected:
- Controllers: API endpoints
- Services: business logic
- Repositories: data access (EF Core)
- Entities/DTOs: data models
- Middleware: request pipeline
- Background services: hosted services
Command sources
*.csprojtargets- README/docs, CI
- Common:
dotnet build,dotnet test,dotnet run - Only include commands present in repo
Key paths
src/*/, project directoriestests/Migrations/Properties/FILE:references/elixir.md
Elixir/Erlang
Detection signals
mix.exsmix.lockconfig/config.exslib/,test/directories
Multi-module signals
- Umbrella app (
apps/directory) - Multiple
mix.exsin subdirs rel/for releases
Pre-generation sources
mix.exs(dependencies, config)config/*.exs(configuration)rel/config.exs(releases)
Codebase scan patterns
Source roots
lib/,apps/*/lib/
Layer/folder patterns (record if present)
controllers/, views/, channels/, contexts/, schemas/, workers/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| 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 |
Mandatory output sections
Include if detected:
- Controllers/LiveViews: HTTP/WebSocket handlers
- Contexts: business logic
- Schemas: Ecto models
- Channels: real-time handlers
- Workers: background jobs
Command sources
mix.exsaliases- README/docs, CI
- Common:
mix deps.get,mix test,mix phx.server - Only include commands present in repo
Key paths
lib/*/,lib/*_web/priv/repo/migrations/test/config/FILE:references/flutter.md
Flutter/Dart
Detection signals
pubspec.yamllib/main.dartandroid/,ios/,web/directories.dart_tool/analysis_options.yaml
Multi-module signals
melos.yaml(monorepo)- Multiple
pubspec.yamlin subdirs packages/directory
Pre-generation sources
pubspec.yaml(dependencies)analysis_options.yamlbuild.yaml(if using build_runner)lib/main.dart(entry point)
Codebase scan patterns
Source roots
lib/,test/
Layer/folder patterns (record if present)
screens/, widgets/, models/, services/, providers/, repositories/, utils/, constants/, bloc/, cubit/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Screen/Page | *Screen, *Page, extends StatefulWidget |
flutter-screen |
| Widget | 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 | *Repository, abstract class *Repository |
data-repository |
| Service | *Service |
service-layer |
| Model | fromJson, toJson, @JsonSerializable |
json-model |
| Freezed | @freezed, part '*.freezed.dart' |
freezed-model |
| API Client | Dio, http.Client, Retrofit |
api-client |
| Navigation | Navigator, GoRouter, auto_route |
flutter-navigation |
| Localization | AppLocalizations, l10n, intl |
flutter-l10n |
| Testing | testWidgets, WidgetTester, flutter_test |
widget-test |
| Integration Test | integration_test, IntegrationTestWidgetsFlutterBinding |
integration-test |
Mandatory output sections
Include if detected:
- Screens inventory: dirs under
screens/,pages/ - State management: BLoC, Provider, Riverpod, GetX
- Navigation setup: GoRouter, auto_route, Navigator
- DI approach: get_it, injectable, manual
- API layer: Dio, http, Retrofit
- Models: Freezed, json_serializable
Command sources
pubspec.yamlscripts (if using melos)- README/docs
- Common:
flutter run,flutter test,flutter build - Only include commands present in repo
Key paths
lib/,test/lib/screens/,lib/widgets/lib/bloc/,lib/providers/assets/FILE:references/generic.md
Generic/Unknown Stack
Fallback reference when no specific platform is detected.
Detection signals
- No specific build/config files found
- Mixed technology stack
- Documentation-only repository
Multi-module signals
- Multiple directories with separate concerns
packages/,modules/,libs/directories- Monorepo structure without specific tooling
Pre-generation sources
README.md(project overview)docs/*(documentation).env.example(environment vars)docker-compose.yml(services)- CI files (
.github/workflows/, etc.)
Codebase scan patterns
Source roots
src/,lib/,app/
Layer/folder patterns (record if present)
api/, core/, utils/, services/, models/, config/, scripts/
Generic pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Entry Point | main.*, index.*, app.* |
entry-point |
| Config | config.*, settings.* |
config-file |
| API Client | api/, client/, HTTP calls |
api-client |
| Model | model/, types/, data structures |
data-model |
| Service | service/, business logic |
service-layer |
| Utility | utils/, helpers/, common/ |
utility-module |
| Test | test/, tests/, *_test.*, *.test.* |
test-file |
| Script | scripts/, bin/ |
script-file |
| Documentation | docs/, *.md |
documentation |
Mandatory output sections
Include if detected:
- Project structure: main directories
- Entry points: main files
- Configuration: config files
- Dependencies: any package manager
- Build/Run commands: from README/scripts
Command sources
README.md(look for code blocks)Makefile,Taskfile.ymlscripts/directory- CI workflows
- Only include commands present in repo
Key paths
src/,lib/docs/scripts/config/
Notes
When using this generic reference:
- Scan for any recognizable patterns
- Document actual project structure found
- Extract commands from README if available
- Note any technologies mentioned in docs
- Keep output minimal and factual FILE:references/go.md
Go
Detection signals
go.modgo.summain.gocmd/,internal/,pkg/directories
Multi-module signals
go.work(workspace)- Multiple
go.modfiles cmd/*/main.go(multiple binaries)
Pre-generation sources
go.mod(dependencies)Makefile(build commands)config/*.yamlor*.toml
Codebase scan patterns
Source roots
cmd/,internal/,pkg/
Layer/folder patterns (record if present)
handler/, service/, repository/, model/, middleware/, config/, util/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| HTTP Handler | http.Handler, http.HandlerFunc, gin.Context |
http-handler |
| Gin Route | gin.Engine, r.GET(, r.POST( |
gin-route |
| Echo Route | echo.Echo, e.GET(, e.POST( |
echo-route |
| Fiber Route | fiber.App, app.Get(, app.Post( |
fiber-route |
| gRPC Service | *.proto, pb.*Server |
grpc-service |
| Repository | type *Repository interface, *Repository |
data-repository |
| Service | type *Service interface, *Service |
service-layer |
| GORM Model | gorm.Model, *gorm.DB |
gorm-model |
| sqlx | sqlx.DB, sqlx.NamedExec |
sqlx-usage |
| Migration | goose, golang-migrate |
db-migration |
| Middleware | func(*Context), middleware.* |
go-middleware |
| Worker | go func(), sync.WaitGroup, errgroup |
worker-goroutine |
| Config | viper, envconfig, cleanenv |
config-loader |
| Unit Test | *_test.go, func Test*(t *testing.T) |
go-test |
| Mock | mockgen, *_mock.go |
go-mock |
Mandatory output sections
Include if detected:
- HTTP handlers: API endpoints
- Services: business logic
- Repositories: data access
- Models: data structures
- Middleware: request interceptors
- Migrations: database migrations
Command sources
Makefiletargets- README/docs, CI
- Common:
go build,go test,go run - Only include commands present in repo
Key paths
cmd/,internal/,pkg/api/,handler/migrations/config/FILE:references/ios.md
iOS (Xcode/Swift)
Detection signals
*.xcodeproj,*.xcworkspacePackage.swift(SPM)Podfile,Podfile.lock(CocoaPods)Cartfile(Carthage)*.pbxprojInfo.plist
Multi-module signals
- Multiple targets in
*.xcodeproj - Multiple
Package.swiftfiles - Workspace with multiple projects
Modules/,Packages/,Features/directories
Pre-generation sources
*.xcodeproj/project.pbxproj(target list)Package.swift(dependencies, targets)Podfile(dependencies)*.xcconfig(build configs)Info.plistfiles
Codebase scan patterns
Source roots
*/Sources/,*/Source/*/App/,*/Core/,*/Features/
Layer/folder patterns (record if present)
Models/, Views/, ViewModels/, Services/, Networking/, Utilities/, Extensions/, Coordinators/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| 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 |
Mandatory output sections
Include if detected:
- Targets inventory: list from pbxproj
- Modules/Packages: SPM packages, Pods
- View architecture: SwiftUI vs UIKit
- State management: Combine, Observable, etc.
- Networking layer: URLSession, Alamofire, etc.
- Persistence: Core Data, Realm, UserDefaults
- DI setup: Swinject, manual injection
Command sources
- README/docs with xcodebuild commands
fastlane/Fastfilelanes- CI workflows (
.github/workflows/,.gitlab-ci.yml) - Common:
xcodebuild test,fastlane test - Only include commands present in repo
Key paths
*/Sources/,*/Tests/*.xcodeproj/,*.xcworkspace/Pods/(if CocoaPods)Packages/(if SPM local packages) FILE:references/java.md
Java/JVM (Spring, etc.)
Detection signals
pom.xml(Maven)build.gradle,build.gradle.kts(Gradle)settings.gradle(multi-module)src/main/java/,src/main/kotlin/application.properties,application.yml
Multi-module signals
- Multiple
pom.xmlwith<modules> - Multiple
build.gradlewithinclude() modules/,services/directories
Pre-generation sources
pom.xmlorbuild.gradle*(dependencies)application.properties/yml(config)settings.gradle(modules)docker-compose.yml(services)
Codebase scan patterns
Source roots
src/main/java/,src/main/kotlin/src/test/java/,src/test/kotlin/
Layer/folder patterns (record if present)
controller/, service/, repository/, model/, entity/, dto/, config/, exception/, util/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| REST Controller | @RestController, @GetMapping, @PostMapping |
spring-controller |
| Service | @Service, class *Service |
spring-service |
| Repository | @Repository, JpaRepository, CrudRepository |
spring-repository |
| Entity | @Entity, @Table, @Id |
jpa-entity |
| DTO | class *DTO, class *Request, class *Response |
dto-pattern |
| Config | @Configuration, @Bean |
spring-config |
| Component | @Component, @Autowired |
spring-component |
| Security | @EnableWebSecurity, SecurityFilterChain |
spring-security |
| Validation | @Valid, @NotNull, @Size |
validation-pattern |
| Exception Handler | @ControllerAdvice, @ExceptionHandler |
exception-handler |
| Scheduler | @Scheduled, @EnableScheduling |
scheduled-task |
| Event | ApplicationEvent, @EventListener |
event-listener |
| Flyway Migration | V*__*.sql, flyway |
flyway-migration |
| Liquibase | changelog*.xml, liquibase |
liquibase-migration |
| Unit Test | @Test, @SpringBootTest, MockMvc |
spring-test |
| Integration Test | @DataJpaTest, @WebMvcTest |
integration-test |
Mandatory output sections
Include if detected:
- Controllers: REST endpoints
- Services: business logic
- Repositories: data access (JPA, JDBC)
- Entities/DTOs: data models
- Configuration: Spring beans, profiles
- Security: auth config
Command sources
pom.xmlplugins,build.gradletasks- README/docs, CI
- Common:
./mvnw,./gradlew,mvn test,gradle test - Only include commands present in repo
Key paths
src/main/java/,src/main/kotlin/src/main/resources/src/test/db/migration/(Flyway) FILE:references/node.md
Node.js
Detection signals
package.json(without react/react-native)tsconfig.jsonnode_modules/*.js,*.ts,*.mjs,*.cjsentry files
Multi-module signals
pnpm-workspace.yaml,lerna.jsonnx.json,turbo.json- Multiple
package.jsonin subdirs packages/,apps/directories
Pre-generation sources
package.json(dependencies, scripts)tsconfig.json(paths, compiler options).env.example(env vars)docker-compose.yml(services)
Codebase scan patterns
Source roots
src/,lib/,app/
Layer/folder patterns (record if present)
controllers/, services/, models/, routes/, middleware/, utils/, config/, types/, repositories/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Express Route | app.get(, app.post(, Router() |
express-route |
| Express Middleware | (req, res, next), app.use( |
express-middleware |
| NestJS Controller | @Controller, @Get, @Post |
nestjs-controller |
| NestJS Service | @Injectable, @Service |
nestjs-service |
| NestJS Module | @Module, imports:, providers: |
nestjs-module |
| Fastify Route | fastify.get(, fastify.post( |
fastify-route |
| GraphQL Resolver | @Resolver, @Query, @Mutation |
graphql-resolver |
| TypeORM Entity | @Entity, @Column, @PrimaryGeneratedColumn |
typeorm-entity |
| Prisma Model | prisma.*.create, prisma.*.findMany |
prisma-usage |
| Mongoose Model | mongoose.Schema, mongoose.model( |
mongoose-model |
| Sequelize Model | Model.init, DataTypes |
sequelize-model |
| Queue Worker | Bull, BullMQ, process( |
queue-worker |
| Cron Job | @Cron, node-cron, cron.schedule |
cron-job |
| WebSocket | ws, socket.io, io.on( |
websocket-handler |
| Unit Test | describe(, it(, expect(, jest |
jest-test |
| E2E Test | supertest, request(app) |
e2e-test |
Mandatory output sections
Include if detected:
- Routes/controllers: API endpoints
- Services layer: business logic
- Database: ORM/ODM usage (TypeORM, Prisma, Mongoose)
- Middleware: auth, validation, error handling
- Background jobs: queues, cron jobs
- WebSocket handlers: real-time features
Command sources
package.jsonscripts section- README/docs
- CI workflows
- Common:
npm run dev,npm run build,npm test - Only include commands present in repo
Key paths
src/,lib/src/routes/,src/controllers/src/services/,src/models/prisma/,migrations/FILE:references/php.md
PHP
Detection signals
composer.json,composer.lockpublic/index.phpartisan(Laravel)spark(CodeIgniter 4)bin/console(Symfony)app/Config/App.php(CodeIgniter 4)ext-phalconin composer.json (Phalcon)phalcon/devtools(Phalcon)
Multi-module signals
packages/directory- Laravel modules (
app/Modules/) - CodeIgniter modules (
app/Modules/,modules/) - Phalcon multi-app (
apps/*/) - Multiple
composer.jsonin subdirs
Pre-generation sources
composer.json(dependencies).env.example(env vars)config/*.php(Laravel/Symfony)routes/*.php(Laravel)app/Config/*(CodeIgniter 4)apps/*/config/(Phalcon)
Codebase scan patterns
Source roots
app/,src/,apps/
Layer/folder patterns (record if present)
Controllers/, Services/, Repositories/, Models/, Entities/, Http/, Providers/, Console/
Framework-specific structures
Laravel (record if present):
app/Http/Controllers,app/Models,database/migrationsroutes/*.php,resources/views
Symfony (record if present):
src/Controller,src/Entity,config/packages,templates
CodeIgniter 4 (record if present):
app/Controllers,app/Models,app/Viewsapp/Config/Routes.php,app/Database/Migrations
Phalcon (record if present):
apps/*/controllers/,apps/*/Module.phpmodels/,views/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Laravel Controller | extends Controller, public function index |
laravel-controller |
| Laravel Model | extends Model, protected $fillable |
laravel-model |
| Laravel Migration | extends Migration, Schema::create |
laravel-migration |
| Laravel Service | class *Service, app/Services/ |
laravel-service |
| Laravel Repository | *Repository, interface *Repository |
laravel-repository |
| Laravel Job | implements ShouldQueue, dispatch( |
laravel-job |
| Laravel Event | extends Event, event( |
laravel-event |
| Symfony Controller | #[Route], AbstractController |
symfony-controller |
| Symfony Service | #[AsService], services.yaml |
symfony-service |
| Doctrine Entity | #[ORM\Entity], #[ORM\Column] |
doctrine-entity |
| Doctrine Migration | AbstractMigration, $this->addSql |
doctrine-migration |
| CI4 Controller | extends BaseController, app/Controllers/ |
ci4-controller |
| CI4 Model | extends Model, protected $table |
ci4-model |
| CI4 Migration | extends Migration, $this->forge-> |
ci4-migration |
| CI4 Entity | extends Entity, app/Entities/ |
ci4-entity |
| Phalcon Controller | extends Controller, Phalcon\Mvc\Controller |
phalcon-controller |
| Phalcon Model | extends Model, Phalcon\Mvc\Model |
phalcon-model |
| Phalcon Migration | Phalcon\Migrations, morphTable |
phalcon-migration |
| API Resource | extends JsonResource, toArray |
api-resource |
| Form Request | extends FormRequest, rules() |
form-request |
| Middleware | implements Middleware, handle( |
php-middleware |
| Unit Test | extends TestCase, test*(), PHPUnit |
phpunit-test |
| Feature Test | extends TestCase, $this->get(, $this->post( |
feature-test |
Mandatory output sections
Include if detected:
- Controllers: HTTP endpoints
- Models/Entities: data layer
- Services: business logic
- Repositories: data access
- Migrations: database changes
- Jobs/Events: async processing
- Business modules: top modules by size
Command sources
composer.jsonscriptsphp artisan(Laravel)php spark(CodeIgniter 4)bin/console(Symfony)phalcondevtools commands- README/docs, CI
- Only include commands present in repo
Key paths
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/FILE:references/python.md
Python
Detection signals
pyproject.tomlrequirements.txt,requirements-dev.txtPipfile,poetry.locksetup.py,setup.cfgmanage.py(Django)
Multi-module signals
- Multiple
pyproject.tomlin subdirs packages/,apps/directories- Django-style
apps/withapps.py
Pre-generation sources
pyproject.tomlorsetup.pyrequirements*.txt,Pipfiletox.ini,pytest.inimanage.py,settings.py(Django)
Codebase scan patterns
Source roots
src/,app/,packages/,tests/
Layer/folder patterns (record if present)
api/, routers/, views/, services/, repositories/, models/, schemas/, utils/, config/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| FastAPI Router | APIRouter, @router.get, @router.post |
fastapi-router |
| FastAPI Dependency | Depends(, def get_*(): |
fastapi-dependency |
| Django View | View, APIView, def get(self, request) |
django-view |
| Django Model | models.Model, class Meta: |
django-model |
| Django Serializer | serializers.Serializer, ModelSerializer |
drf-serializer |
| Flask Route | @app.route, Blueprint |
flask-route |
| Pydantic Model | BaseModel, Field(, model_validator |
pydantic-model |
| SQLAlchemy Model | Base, Column(, relationship( |
sqlalchemy-model |
| Alembic Migration | alembic/versions/, op.create_table |
alembic-migration |
| Repository | *Repository, class *Repository |
data-repository |
| Service | *Service, class *Service |
service-layer |
| Celery Task | @celery.task, @shared_task |
celery-task |
| CLI Command | @click.command, typer.Typer |
cli-command |
| Unit Test | pytest, def test_*():, unittest |
pytest-test |
| Fixture | @pytest.fixture, conftest.py |
pytest-fixture |
Mandatory output sections
Include if detected:
- Routers/views: API endpoints
- Models/schemas: data models (Pydantic, SQLAlchemy, Django)
- Services: business logic layer
- Repositories: data access layer
- Migrations: Alembic, Django migrations
- Tasks: Celery, background jobs
Command sources
pyproject.tomltool sections- README/docs, CI
- Common:
python manage.py,pytest,uvicorn,flask run - Only include commands present in repo
Key paths
src/,app/tests/alembic/,migrations/templates/,static/(if web) FILE:references/react-native.md
React Native
Detection signals
package.jsonwithreact-nativemetro.config.jsapp.jsonorapp.config.js(Expo)android/,ios/directoriesbabel.config.jswith metro preset
Multi-module signals
- Monorepo with
packages/ - Multiple
app.jsonfiles - Nx workspace with React Native
Pre-generation sources
package.json(dependencies, scripts)app.jsonorapp.config.jsmetro.config.jsbabel.config.jstsconfig.json
Codebase scan patterns
Source roots
src/,app/
Layer/folder patterns (record if present)
screens/, components/, navigation/, services/, hooks/, store/, api/, utils/, assets/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Screen | *Screen, export function *Screen |
rn-screen |
| Component | export function *(), StyleSheet.create |
rn-component |
| Navigation | 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 |
| Native Module | NativeModules, TurboModule |
native-module |
| Async Storage | AsyncStorage, @react-native-async-storage |
async-storage |
| SQLite | expo-sqlite, react-native-sqlite-storage |
sqlite-storage |
| Push Notification | @react-native-firebase/messaging, expo-notifications |
push-notification |
| Deep Link | Linking, useURL, expo-linking |
deep-link |
| Animation | Animated, react-native-reanimated |
rn-animation |
| Gesture | react-native-gesture-handler, Gesture |
rn-gesture |
| Testing | @testing-library/react-native, render |
rntl-test |
Mandatory output sections
Include if detected:
- Screens inventory: dirs under
screens/ - Navigation structure: stack, tab, drawer navigators
- State management: Redux, Zustand, Context
- Native modules: custom native code
- Storage layer: AsyncStorage, SQLite, MMKV
- Platform-specific:
*.android.tsx,*.ios.tsx
Command sources
package.jsonscripts- README/docs
- Common:
npm run android,npm run ios,npx expo start - Only include commands present in repo
Key paths
src/screens/,src/components/src/navigation/,src/store/android/app/,ios/*/assets/FILE:references/react-web.md
React (Web)
Detection signals
package.jsonwithreact,react-domvite.config.ts,next.config.js,craco.config.jstsconfig.jsonorjsconfig.jsonsrc/App.tsxorsrc/App.jsxpublic/index.html(CRA)
Multi-module signals
pnpm-workspace.yaml,lerna.json- Multiple
package.jsonin subdirs packages/,apps/directories- Nx workspace (
nx.json)
Pre-generation sources
package.json(dependencies, scripts)tsconfig.json(paths, compiler options)vite.config.*,next.config.*,webpack.config.*.env.example(env vars)
Codebase scan patterns
Source roots
src/,app/,pages/
Layer/folder patterns (record if present)
components/, hooks/, services/, utils/, store/, api/, types/, contexts/, features/, layouts/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| Component | export function *(), export const * = with 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 |
| Form | useForm, react-hook-form, Formik |
form-handling |
| Router | createBrowserRouter, Route, useNavigate |
react-router |
| API Client | axios, fetch, ky |
api-client |
| Testing | @testing-library/react, render, screen |
rtl-test |
| Storybook | *.stories.tsx, Meta, StoryObj |
storybook |
| Styled | styled-components, @emotion, styled( |
styled-component |
| Tailwind | className="*", tailwind.config.js |
tailwind-usage |
| i18n | useTranslation, i18next, t() |
i18n-usage |
| Auth | useAuth, AuthProvider, PrivateRoute |
auth-pattern |
Mandatory output sections
Include if detected:
- Components inventory: dirs under
components/ - Features/pages: dirs under
features/,pages/ - State management: Redux, Zustand, Context
- Routing setup: React Router, Next.js pages
- API layer: axios instances, fetch wrappers
- Styling approach: CSS modules, Tailwind, styled-components
- Form handling: react-hook-form, Formik
Command sources
package.jsonscripts section- README/docs
- CI workflows
- Common:
npm run dev,npm run build,npm test - Only include commands present in repo
Key paths
src/components/,src/hooks/src/pages/,src/features/src/store/,src/api/public/,dist/,build/FILE:references/ruby.md
Ruby/Rails
Detection signals
GemfileGemfile.lockconfig.ruRakefileconfig/application.rb(Rails)
Multi-module signals
- Multiple
Gemfilein subdirs engines/directory (Rails engines)gems/directory (monorepo)
Pre-generation sources
Gemfile(dependencies)config/database.ymlconfig/routes.rb(Rails).env.example
Codebase scan patterns
Source roots
app/,lib/
Layer/folder patterns (record if present)
controllers/, models/, services/, jobs/, mailers/, channels/, helpers/, concerns/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| 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 |
Mandatory output sections
Include if detected:
- Controllers: HTTP endpoints
- Models: ActiveRecord associations
- Services: business logic
- Jobs: background processing
- Migrations: database schema
Command sources
GemfilescriptsRakefiletasksbin/rails,bin/rake- README/docs, CI
- Only include commands present in repo
Key paths
app/controllers/,app/models/app/services/,app/jobs/db/migrate/spec/,test/lib/FILE:references/rust.md
Rust
Detection signals
Cargo.tomlCargo.locksrc/main.rsorsrc/lib.rstarget/directory
Multi-module signals
[workspace]inCargo.toml- Multiple
Cargo.tomlin subdirs crates/,packages/directories
Pre-generation sources
Cargo.toml(dependencies, features)build.rs(build script)rust-toolchain.toml(toolchain)
Codebase scan patterns
Source roots
src/,crates/*/src/
Layer/folder patterns (record if present)
handlers/, services/, models/, db/, api/, utils/, error/, config/
Pattern indicators
| Pattern | Detection Criteria | Skill Name |
|---|---|---|
| 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 |
Mandatory output sections
Include if detected:
- Handlers/routes: API endpoints
- Services: business logic
- Models/entities: data structures
- Error types: custom errors
- Migrations: diesel/sqlx migrations
Command sources
Cargo.tomlscripts/aliasesMakefile, README/docs- Common:
cargo build,cargo test,cargo run - Only include commands present in repo
Key paths
src/,crates/tests/migrations/examples/
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!