--- 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:** 1. Detect platform via build/config files (see references) 2. Scan source roots for pattern indicators 3. Compare detected patterns with existing `.claude/skills/` 4. 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:** 1. Run discovery to identify missing skills 2. For each missing skill: - Find 2-3 representative source files - Extract: imports, annotations, class structure, conventions - Extract rules from `.ruler/*.md` if present 3. Generate SKILL.md using template structure 4. Add version and source marker **Generated SKILL structure:** ```yaml --- 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: 1. Generate new file using template 2. Set `version: 1.0.0` in frontmatter 3. Include all mandatory sections 4. Add source marker at end (see Marker Format) ## Update Strategy **Marker check:** Look for ` ``` ## 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