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