Back to skills
extension
Category: AI Agent CapabilitiesNo API key required

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.

personAuthor: jakexiaohubgithub

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:

---
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 <!-- 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.mdSKILL.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