| name | skill-manager |
| description | Efficient management and deployment of Claude Code skills and marketplace. Automates marketplace initialization, skill updates, Git workflows, version management, and release notes with proper Git conventions. |
Skill Manager
Complete automation for Claude Code skills and marketplace management. Handles initialization, updates, Git deployment, versioning, and release management with proper Git conventions.
When to Use This Skill
Use this skill when:
- Setting up a new Claude Code marketplace
- Adding new skills to existing marketplace
- Updating skill metadata or versions
- Publishing skills to Git repository
- Managing semantic versioning
- Generating release notes and changelogs
- Validating marketplace configuration
Core Workflows
Workflow 1: Initialize Marketplace
Trigger Condition: Only run when .claude-plugin/marketplace.json does NOT exist.
Purpose: Set up a new Claude Code marketplace from scratch.
Steps:
-
Check for existing marketplace
test -f .claude-plugin/marketplace.json
-
Gather marketplace information (via AskUserQuestion):
- Marketplace name (e.g., "my-skills")
- Display name (e.g., "My Skills Marketplace")
- Owner name
- Owner URL (GitHub profile)
- Description
-
Create marketplace.json
- Use template:
templates/marketplace.json.template
- Fill in gathered information
- Set initial version: 1.0.0
- Create empty plugins array
-
Initialize Git repository (if not already initialized):
git init
git remote add origin <repository-url>
-
Create initial README with marketplace installation instructions
-
Create .gitignore (if not exists):
__pycache__/
*.pyc
.DS_Store
node_modules/
-
Report completion:
โ
Marketplace initialized successfully!
๐ฆ Marketplace: <name>
๐ Location: .claude-plugin/marketplace.json
๐ Repository: <url>
Next steps:
- Add skills with: /skill-manager add-skill
- Publish with: /skill-manager publish
Workflow 2: Add New Skill to Marketplace
Purpose: Add a new skill with proper plugin.json and marketplace registration.
Steps:
-
Gather skill information (via AskUserQuestion):
- Skill name (folder name, e.g., "my-new-skill")
- Display name (e.g., "My New Skill")
- Description (1-2 sentences)
- Category (select from: Project Initialization, AI Integration, Documentation, Prompt Tools, Development Tools, UI/UX Development, Other)
- Keywords (comma-separated, e.g., "automation, workflow, productivity")
- Version (default: 1.0.0)
-
Check if skill folder exists:
test -d <skill-name>
- If NOT exists: Suggest creating with
/skill-creator first
- If exists: Continue
-
Check if SKILL.md exists:
test -f <skill-name>/SKILL.md
- If NOT exists: Error and exit
- If exists: Continue
-
Create plugin.json:
- Create
.claude-plugin directory in skill folder
- Use template:
templates/plugin.json.template
- Fill in gathered information
- Extract author from marketplace owner
-
Update marketplace.json:
- Read existing
.claude-plugin/marketplace.json
- Add new plugin entry to
plugins array:
{
"name": "<skill-name>",
"source": "./<skill-name>",
"description": "<description>",
"version": "<version>",
"category": "<category>",
"keywords": ["<keyword1>", "<keyword2>"]
}
- Sort plugins alphabetically by name
- Write updated marketplace.json
-
Report completion:
โ
Skill added to marketplace!
๐ฆ Skill: <skill-name>
๐ Location: <skill-name>/.claude-plugin/plugin.json
๐ Category: <category>
Next step: Publish with /skill-manager publish
Workflow 3: Update Skill Metadata
Purpose: Update existing skill's version, description, keywords, etc.
Steps:
-
Select skill to update (via AskUserQuestion):
- List all skills from marketplace.json
- User selects one
-
Show current metadata:
- Display current plugin.json content
- Display current marketplace.json entry
-
Ask what to update (via AskUserQuestion):
-
Gather new values for selected fields
-
Update plugin.json in skill folder
-
Update marketplace.json entry
-
Report completion with diff showing changes
Workflow 4: Update Marketplace Metadata
Purpose: Update marketplace-level information (name, owner, description).
Steps:
-
Show current marketplace metadata:
- Read
.claude-plugin/marketplace.json
- Display: name, displayName, owner, description, version
-
Ask what to update (via AskUserQuestion):
-
Gather new values for selected fields
-
Update marketplace.json
-
Report completion with diff
Workflow 5: Publish to Git (Version Management + Deployment)
Purpose: Automate Git workflow with semantic versioning, conventional commits, and release notes.
Integration: Works harmoniously with Git best practices and can integrate with /sc:git command.
Steps:
-
Check Git status:
git status --porcelain
- If no changes: "Nothing to publish"
- If changes exist: Continue
-
Determine version bump type (via AskUserQuestion):
- patch (1.0.0 โ 1.0.1): Bug fixes, minor updates
- minor (1.0.0 โ 1.1.0): New features, backward-compatible
- major (1.0.0 โ 2.0.0): Breaking changes
- custom: User specifies exact version
-
Calculate new version:
- Read current version from marketplace.json
- Apply semantic versioning rules
- Update marketplace.json version
- Update all plugin.json versions (optional - ask user)
-
Generate changelog entry:
-
Generate commit message (Conventional Commits):
<type>(<scope>): <subject>
<body>
๐ค Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Example types:
feat: New skill or feature
fix: Bug fix
docs: Documentation update
chore: Maintenance tasks
refactor: Code refactoring
release: Version release
-
Git operations:
git add .
git commit -m "<commit-message>"
git tag -a v<version> -m "Release v<version>"
git push origin master
git push origin v<version>
-
Report completion:
โ
Published successfully!
๐ฆ Version: <old-version> โ <new-version>
๐ท๏ธ Tag: v<new-version>
๐ Changelog: Updated
๐ Repository: <url>
Commit: <commit-hash>
Message: <commit-message>
Workflow 6: Validate Marketplace
Purpose: Comprehensive validation of marketplace and all skills.
Steps:
-
Validate marketplace.json:
- โ
File exists
- โ
Valid JSON format
- โ
Required fields present (name, owner, plugins)
- โ
Version follows semver (X.X.X)
- โ
All plugin entries have required fields
-
Validate each skill:
- โ
Skill folder exists
- โ
SKILL.md exists
- โ
SKILL.md has valid YAML frontmatter
- โ
.claude-plugin/plugin.json exists
- โ
plugin.json has required fields
- โ
Version in plugin.json matches marketplace.json
- โ
Keywords are meaningful (not empty/generic)
-
Validate Git repository:
- โ
Git initialized
- โ
Remote origin configured
- โ
No uncommitted changes (warning if exists)
-
Report validation results:
โ
Marketplace Validation: PASSED
Marketplace: โ
Valid
Skills: โ
11/11 passed
Git: โ
Configured
Or if errors:
โ Marketplace Validation: FAILED
Errors:
- skill-name: Missing plugin.json
- another-skill: Invalid version format
Warnings:
- 3 uncommitted changes
Workflow 7: Update README Header (๊ฐ๋ฐ ์ํ ๊ด๋ฆฌ)
Purpose: ๊ฐ๋ฐ ํ๋ก์ ํธ README ์๋จ์ ์งํ ์ํฉ, Tech Stack, Used Skills ์
๋ฐ์ดํธ
Reference: references/readme-header-rules.md ์ฐธ์กฐ
Steps:
-
ํ๋ก์ ํธ README ํ์ธ:
test -f README.md
- If NOT exists: ์ README ์์ฑ ์ ์
- If exists: ๊ธฐ์กด ๋ด์ฉ ๋ถ์
-
์
๋ฐ์ดํธ ์ ํ ์ ํ (via AskUserQuestion):
- progress: ๊ฐ๋ฐ ์งํ ์ํฉ ์
๋ฐ์ดํธ
- techstack: ๊ธฐ์ ์คํ ์
๋ฐ์ดํธ/์๋ ๊ฐ์ง
- skills: ์ฌ์ฉ๋ ์คํฌ ์
๋ฐ์ดํธ
- all: ์ ์ฒด ํค๋ ๊ฐฑ์
-
์งํ ์ํฉ ์
๋ฐ์ดํธ (progress):
-
Tech Stack ์๋ ๊ฐ์ง (techstack):
- ํ๋ก์ ํธ ํ์ผ ์ค์บ:
package.json โ Node.js dependencies
tsconfig.json โ TypeScript
Cargo.toml โ Rust
pyproject.toml โ Python
go.mod โ Go
pubspec.yaml โ Flutter
prisma/schema.prisma โ Prisma
docker-compose.yml โ Docker
- ๋ฒ์ ์ ๋ณด ์ถ์ถ
- Tech Stack ํ
์ด๋ธ ์์ฑ
-
Used Skills ์
๋ฐ์ดํธ (skills):
- ํ์ฌ ๊ธฐ๋ก๋ ์คํฌ ํ์
- ์ ์คํฌ ์ถ๊ฐ/์ ๊ฑฐ ์ต์
- ๊ฐ ์คํฌ์ ์ฉ๋/๋จ๊ณ ๊ธฐ๋ก
-
README.md ์
๋ฐ์ดํธ:
- ๊ธฐ์กด ํค๋ ์น์
๋์ฒด ๋๋ ์๋ก ์ฝ์
- ํ๋ก์ ํธ ์ ๋ชฉ ๋ฐ๋ก ์๋ ๋ฐฐ์น
-
Report completion:
โ
README ํค๋ ์
๋ฐ์ดํธ ์๋ฃ!
๐ ์งํ ์ํฉ: 45% (ํต์ฌ ๊ธฐ๋ฅ ๊ฐ๋ฐ ์ค)
๐ ๏ธ Tech Stack: TypeScript, Next.js 15, PostgreSQL
๐ฏ Used Skills: 3๊ฐ ์คํฌ ๊ธฐ๋ก
๋ณ๊ฒฝ ์ฌํญ:
- ํต์ฌ ๊ธฐ๋ฅ: 40% โ 60%
- Tech Stack: Prisma ์ถ๊ฐ
Helper Functions
Version Management
Semantic Versioning Rules:
- MAJOR: Breaking changes (X.0.0)
- MINOR: New features, backward-compatible (0.X.0)
- PATCH: Bug fixes, minor updates (0.0.X)
Version Increment Logic:
def increment_version(current: str, bump_type: str) -> str:
major, minor, patch = map(int, current.split('.'))
if bump_type == 'major':
return f"{major + 1}.0.0"
elif bump_type == 'minor':
return f"{major}.{minor + 1}.0"
elif bump_type == 'patch':
return f"{major}.{minor}.{patch + 1}"
else:
return current
Conventional Commits
Format: <type>(<scope>): <subject>
Types:
feat: New feature or skill
fix: Bug fix
docs: Documentation only
style: Code style changes
refactor: Code refactoring
test: Testing updates
chore: Maintenance tasks
release: Version release
Examples:
feat(nextjs15-init): Add dashboard domain support
fix(web-to-markdown): Fix Playwright fallback issue
docs(README): Update installation instructions
chore(marketplace): Bump version to 1.2.0
release: Version 1.2.0
Changelog Generation
Format: Keep a Changelog (https://keepachangelog.com)
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.2.0] - 2025-01-10
### Added
- New skill: skill-manager for marketplace management
- Support for semantic versioning
### Changed
- Updated README with marketplace installation instructions
### Fixed
- Fixed validation errors in plugin.json files
## [1.1.0] - 2025-01-05
...
Integration with Existing Commands
Git Command Integration
This skill works harmoniously with /sc:git command:
Scenario 1: Quick Publish
/skill-manager publish
Scenario 2: Manual Git with skill-manager versioning
/skill-manager update-marketplace
/sc:git commit -m "Custom message"
Skill Creator Integration
Workflow: Create โ Add โ Publish
/skill-creator my-new-skill
/skill-manager add-skill
/skill-manager publish --type minor
Error Handling
Common Errors
Error 1: Marketplace already initialized
โ Error: Marketplace already exists at .claude-plugin/marketplace.json
Use /skill-manager update-marketplace to modify it.
Error 2: Skill folder not found
โ Error: Skill folder "skill-name" does not exist.
Create it first with /skill-creator or manually.
Error 3: Git not initialized
โ Error: Git repository not initialized.
Run: git init
Then: git remote add origin <url>
Error 4: Uncommitted changes during publish
โ ๏ธ Warning: You have uncommitted changes.
Proceed with publish? (Y/n)
Error 5: Invalid version format
โ Error: Version must follow semver format (X.X.X)
Example: 1.0.0, 2.1.3, 0.5.2
Best Practices
1. Version Management
- Use
patch for bug fixes and minor updates
- Use
minor for new skills or features
- Use
major for breaking changes or major restructuring
- Always update CHANGELOG.md
2. Git Workflow
- Validate before publishing
- Write meaningful commit messages
- Create tags for releases
- Keep commits atomic (one logical change per commit)
3. Marketplace Organization
- Group skills by category
- Use descriptive keywords
- Keep descriptions concise (1-2 sentences)
- Maintain consistent naming conventions
4. Documentation
- Update README after adding skills
- Keep CHANGELOG.md current
- Include installation instructions
- Document breaking changes
Quick Reference
| Command | Purpose |
|---|
init | Initialize new marketplace |
add-skill | Add skill to marketplace |
update-skill | Update skill metadata |
update-marketplace | Update marketplace metadata |
publish | Git deployment with versioning |
validate | Validate marketplace configuration |
update-header | Update README header (progress, techstack, skills) |
Examples
Example 1: Setting up a new marketplace
User: Initialize marketplace
Skill: /skill-manager init
[Asks for marketplace info]
User: Name: awesome-skills
User: Owner: John Doe
User: URL: https://github.com/johndoe
Skill: โ
Marketplace initialized!
Example 2: Adding a new skill
User: Add new skill
Skill: /skill-manager add-skill
[Asks for skill info]
User: Name: api-generator
User: Category: Development Tools
User: Keywords: api, openapi, swagger
Skill: โ
Skill added to marketplace!
Example 3: Publishing with version bump
User: Publish changes
Skill: /skill-manager publish
[Asks for version type]
User: minor
Skill:
- Current version: 1.0.0
- New version: 1.1.0
- Changelog updated
- Git committed and pushed
- Tag created: v1.1.0
โ
Published successfully!
Example 4: Updating README header
User: README ํค๋ ์
๋ฐ์ดํธํด์ค
Skill: /skill-manager update-header
[Asks for update type]
User: all
[Asks for progress - ๊ฐ ๋จ๊ณ๋ณ ์งํ๋ฅ ]
User: ๊ธฐํ 100%, ํต์ฌ ๊ธฐ๋ฅ 60%, UI 20%, ๋๋จธ์ง 0%
[Detects Tech Stack]
Skill: ๊ฐ์ง๋ Tech Stack:
- TypeScript 5.x
- Next.js 15.x
- React 19.x
- Tailwind CSS 3.x
- PostgreSQL 16.x
- Prisma 5.x
[Asks for skills used]
User: nextjs15-init, landing-page-guide, test-driven-development
Skill:
โ
README ํค๋ ์
๋ฐ์ดํธ ์๋ฃ!
๐ ์งํ ์ํฉ: 30% (ํต์ฌ ๊ธฐ๋ฅ ๊ฐ๋ฐ ์ค)
๐ ๏ธ Tech Stack: 6๊ฐ ๊ธฐ์ ๊ธฐ๋ก
๐ฏ Used Skills: 3๊ฐ ์คํฌ ๊ธฐ๋ก
Notes
- This skill uses Python scripts in
scripts/ directory
- Templates are in
templates/ directory
- Reference documentation in
references/ directory
- All operations are idempotent (safe to run multiple times)
- Git operations can be reviewed before execution
- Compatible with GitHub, GitLab, and other Git hosting services