Skip to content

About

Build, publish, and manage custom Claude Code skills as slash-command plugins via a GitHub-hosted marketplace

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Claude Skills

A self-hosted Claude Code marketplace for custom skill plugins. Each skill ships as an independent plugin, discoverable and invocable via / slash commands across both the CLI and VS Code extension.

This marketplace is actively maintained. Skills are added and versioned as workflows mature.

Skills Catalog

Plugin Description Invocation
audit-py-codebase Single-pass critical audit of a Python codebase - type annotations, NumPy-style docstrings, SOLID/DRY, error handling, logging, pytest, ruff, pyright. Idempotent - re-invoke until converged. /audit-py-codebase:audit-py-codebase <folder>
audit-react-vite-tsx-codebase Single-pass critical audit of a React + Vite + TSX codebase - strict TypeScript, JSDoc/TSDoc, component architecture, error boundaries, a11y, bundle performance, Vitest. Idempotent - re-invoke until converged. /audit-react-vite-tsx-codebase:audit-react-vite-tsx-codebase <folder>
compress-context Compresses a natural language file (CLAUDE.md, skill instructions, prompt files) into token-efficient symbolic notation. Rewrites in-place and generates a symbols.md legend alongside. Achieves 30-50% token reduction without semantic loss. /compress-context:compress-context <file>

Installation

Prerequisites

  • Claude Code (CLI or VS Code extension), authenticated
  • Git with GitHub credentials configured

Step 1: Register the Marketplace

One-time operation. Once registered, every plugin in this repo becomes discoverable.

Option A - CLI:

claude plugins:add-marketplace rs2pydev/claude-skills

Option B - Manual (settings.json):

Add to ~/.claude/settings.json under extraKnownMarketplaces:

{
  "extraKnownMarketplaces": {
    "rs2pydev-claude-skills": {
      "source": {
        "source": "github",
        "repo": "rs2pydev/claude-skills"
      }
    }
  }
}

Step 2: Enable Plugins

Add desired plugins to enabledPlugins in the same ~/.claude/settings.json:

{
  "enabledPlugins": {
    "audit-py-codebase@rs2pydev-claude-skills": true,
    "audit-react-vite-tsx-codebase@rs2pydev-claude-skills": true,
    "compress-context@rs2pydev-claude-skills": true
  }
}

Step 3: Restart

  • CLI: No restart needed - picks up changes on next invocation.
  • VS Code: Full restart required (close all windows, reopen). The extension reads settings.json at session init and caches it.

Usage

Invoking Skills

# Python codebase audit
/audit-py-codebase:audit-py-codebase ./backend

# React/Vite/TSX codebase audit
/audit-react-vite-tsx-codebase:audit-react-vite-tsx-codebase ./frontend

# Compress a context file for token efficiency
/compress-context:compress-context ./CLAUDE.md

Audit Convergence Pattern

The audit skills are designed for iterative re-invocation:

Pass 1: Fixes 40+ issues, scorecard reports "12 remaining"
Pass 2: Fixes 8 issues (including regressions from pass 1 refactors), reports "2 remaining"
Pass 3: Zero new issues found, reports "CONVERGED"

Each pass runs in a fresh context - no accumulated bias. Re-invoke until the scorecard says CONVERGED.

Compression Workflow

The compress-context skill reads a file, applies symbolic notation rules (operators, abbreviations, structural patterns), rewrites it in-place, and generates a symbols.md legend in the same directory for human reference.

Automation: Manage-LocalPlugin.ps1

PowerShell script that automates the full publish lifecycle: clone, structure, commit, push, register, enable. Designed for Windows environments where pwsh is the primary shell.

Location

scripts/Manage-LocalPlugin.ps1

Required Parameters

Parameter Description
-Register or -Update Mode: create a new plugin or update an existing one (mutually exclusive)
-Path Path to a .md skill file or a directory of .md files
-RepoUrl GitHub marketplace repo URL (e.g., https://github.com/rs2pydev/claude-skills.git)

Optional Parameters

Parameter Default Description
-PluginName Derived from filename Override plugin name (single-file input only)
-Version 1.0.0 (Register) / auto-increment (Update) Explicit semver string
-RepoPath ~/.<repo-name> (derived from URL) Local clone path
-MarketplaceName org-reponame (derived from URL) Identifier in settings.json

Examples

# Register a new skill
.\Manage-LocalPlugin.ps1 -Register -Path ".\audit-go-codebase.md" -RepoUrl "https://github.com/rs2pydev/claude-skills.git"

# Register all .md files in a directory (each becomes its own plugin)
.\Manage-LocalPlugin.ps1 -Register -Path ".\skills\" -RepoUrl "https://github.com/rs2pydev/claude-skills.git"

# Update existing (auto-increments patch version)
.\Manage-LocalPlugin.ps1 -Update -Path ".\audit-py-codebase.md" -RepoUrl "https://github.com/rs2pydev/claude-skills.git"

# Explicit version bump
.\Manage-LocalPlugin.ps1 -Update -Path ".\audit-py-codebase.md" -RepoUrl "https://github.com/rs2pydev/claude-skills.git" -Version "2.0.0"

What It Does

  1. Parses .md frontmatter for name, description, version
  2. Clones the marketplace repo (or pulls latest if already cloned)
  3. Scaffolds plugin structure: <name>/.claude-plugin/plugin.json + skills/<name>/SKILL.md
  4. Adds/updates the entry in .claude-plugin/marketplace.json
  5. Commits and pushes to GitHub
  6. Registers the marketplace in ~/.claude/settings.json (idempotent - first run only)
  7. Enables the plugin in enabledPlugins

Skill File Contract

Input .md files must have YAML frontmatter:

---
name: skill-name
description: "One-line trigger description."
version: 1.0.0
---

# Skill instructions...

If frontmatter is absent, name is derived from filename and a generic description is used.

Troubleshooting

Skills not appearing in VS Code autocomplete

  1. Confirm both extraKnownMarketplaces and enabledPlugins entries exist in ~/.claude/settings.json.
  2. Full VS Code restart (not Reload Window).
  3. If autocomplete still misses, type the full invocation manually - execution still works.

"Failed to load plugins: CLI timed out after 30s"

Corporate proxy/firewall throttling GitHub API calls. The plugins still load and function - only the "Manage Plugins" UI catalog times out. Invoke skills directly via /.

CLI works but VS Code doesn't

Same settings.json, different read timing. CLI reads fresh per invocation; VS Code caches at session start. A full restart forces re-read.

Repository Structure

.claude-plugin/
  marketplace.json                                  # Discovery manifest

audit-py-codebase/
  .claude-plugin/plugin.json
  skills/audit-py-codebase/SKILL.md

audit-react-vite-tsx-codebase/
  .claude-plugin/plugin.json
  skills/audit-react-vite-tsx-codebase/SKILL.md

compress-context/
  .claude-plugin/plugin.json
  skills/compress-context/SKILL.md

scripts/
  Manage-LocalPlugin.ps1                            # PowerShell publish automation

Adding New Skills

Automated (recommended)

.\scripts\Manage-LocalPlugin.ps1 -Register -Path ".\my-skill.md" -RepoUrl "https://github.com/rs2pydev/claude-skills.git"

Manual

  1. Create <skill-name>/ at repo root
  2. Add .claude-plugin/plugin.json:
    {
      "name": "<skill-name>",
      "version": "1.0.0",
      "description": "One-line description.",
      "author": { "name": "rs2pydev" }
    }
  3. Add skills/<skill-name>/SKILL.md with frontmatter:
    ---
    name: <skill-name>
    description: "Trigger description for Claude Code skill discovery."
    version: 1.0.0
    ---
  4. Register in .claude-plugin/marketplace.json under plugins[]
  5. Commit, push, restart Claude Code.

License

MIT

About

Build, publish, and manage custom Claude Code skills as slash-command plugins via a GitHub-hosted marketplace

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages