Skill Master
skill-master
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.
SKILL.md
Full skill instructions
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
