home / skills / anton-abyzov / specweave / marketplace-publishing

marketplace-publishing skill

/plugins/specweave-plugin-dev/skills/marketplace-publishing

This skill guides publishing Claude Code plugins to npm, GitHub, and marketplace, incorporating semantic versioning, docs, and licensing for smooth releases.

This is most likely a fork of the sw-marketplace-publishing skill from openclaw
npx playbooks add skill anton-abyzov/specweave --skill marketplace-publishing

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.1 KB
---
name: marketplace-publishing
description: Claude Code marketplace publishing - npm publish, GitHub releases, semantic versioning, plugin packaging. Use when publishing plugins.
---

# Marketplace Publishing Expert

Expert guidance for publishing Claude Code plugins to npm and marketplace.

## Publishing Platforms

**1. GitHub** (Recommended):
```bash
# Install from GitHub
claude plugin add github:username/plugin-name

# Pros:
- Free hosting
- Version control
- Issue tracking
- Easy updates

# Requirements:
- Public repository
- Proper directory structure
- README with installation
```

**2. npm**:
```bash
# Install from npm
claude plugin add plugin-name

# Pros:
- Centralized registry
- Semantic versioning
- Easy discovery

# Requirements:
- npm account
- package.json
- Unique name (prefix: claude-plugin-)
```

**3. Marketplace**:
```bash
# Official Claude Code marketplace
# PR to marketplace repository

# Requirements:
- Quality standards
- Complete documentation
- No security issues
- Proper licensing
```

## Semantic Versioning

**Version Format**: `MAJOR.MINOR.PATCH`

**Rules**:
```yaml
MAJOR (1.0.0 → 2.0.0):
  - Breaking changes
  - Remove commands
  - Change skill keywords
  - Incompatible API changes

MINOR (1.0.0 → 1.1.0):
  - New features
  - Add commands
  - Add skills
  - Backward compatible

PATCH (1.0.0 → 1.0.1):
  - Bug fixes
  - Documentation updates
  - Performance improvements
  - No API changes
```

**Examples**:
```bash
# Bug fix
npm version patch  # 1.0.0 → 1.0.1

# New feature
npm version minor  # 1.0.1 → 1.1.0

# Breaking change
npm version major  # 1.1.0 → 2.0.0
```

## package.json Setup

**Minimum**:
```json
{
  "name": "claude-plugin-my-plugin",
  "version": "1.0.0",
  "description": "Expert [domain] plugin for Claude Code",
  "keywords": ["claude-code", "plugin", "keyword1"],
  "author": "Your Name",
  "license": "MIT",
  "files": [
    ".claude-plugin",
    "commands",
    "skills",
    "agents",
    "README.md",
    "LICENSE"
  ]
}
```

**Full**:
```json
{
  "name": "claude-plugin-my-plugin",
  "version": "1.0.0",
  "description": "Expert [domain] plugin with [features]",
  "main": "index.js",
  "scripts": {
    "test": "echo \"No tests yet\"",
    "validate": "bash validate.sh"
  },
  "keywords": [
    "claude-code",
    "plugin",
    "development-tools",
    "keyword1",
    "keyword2"
  ],
  "author": "Your Name <[email protected]>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/username/my-plugin"
  },
  "homepage": "https://github.com/username/my-plugin#readme",
  "bugs": {
    "url": "https://github.com/username/my-plugin/issues"
  },
  "files": [
    ".claude-plugin/**/*",
    "commands/**/*",
    "skills/**/*",
    "agents/**/*",
    "README.md",
    "LICENSE"
  ]
}
```

## Publishing Workflow

**GitHub Release**:
```bash
# 1. Update version
npm version patch

# 2. Commit changes
git add .
git commit -m "Release v1.0.1"

# 3. Create tag
git tag v1.0.1

# 4. Push
git push && git push --tags

# 5. Create GitHub release
gh release create v1.0.1 \
  --title "v1.0.1" \
  --notes "Bug fixes and improvements"
```

**npm Publish**:
```bash
# 1. Login
npm login

# 2. Validate package
npm pack --dry-run

# 3. Publish
npm publish

# 4. Verify
npm view claude-plugin-my-plugin
```

## Documentation Requirements

**README.md**:
```markdown
# Plugin Name

> One-line tagline

Brief description.

## Features

- Feature 1
- Feature 2

## Installation

\```bash
claude plugin add github:user/plugin
\```

## Commands

### /plugin:command

Description.

## Examples

[Working examples]

## License

MIT
```

**CHANGELOG.md**:
```markdown
# Changelog

## [1.0.1] - 2025-01-15

### Fixed
- Bug fix 1
- Bug fix 2

## [1.0.0] - 2025-01-01

### Added
- Initial release
```

## Quality Checklist

**Pre-publish**:
- ✅ All commands working
- ✅ Skills activate correctly
- ✅ No hardcoded secrets
- ✅ README with examples
- ✅ LICENSE file
- ✅ Semantic versioning
- ✅ CHANGELOG updated
- ✅ Git tag created

**Post-publish**:
- ✅ Test installation
- ✅ Verify on npm (if published)
- ✅ Check GitHub release
- ✅ Update marketplace (if applicable)

Publish professional Claude Code plugins!

Overview

This skill provides practical, step-by-step guidance for publishing Claude Code plugins to GitHub, npm, and the official marketplace. It covers semantic versioning, package.json setup, release workflows, documentation requirements, and a pre/post-publish quality checklist. Use it to ensure repeatable, professional plugin releases.

How this skill works

The skill inspects repository structure and package metadata, guides version bumping and tagging, and shows commands for creating GitHub releases and publishing to npm. It enforces semantic versioning rules and recommends required files (README, LICENSE, CHANGELOG) and a files whitelist in package.json. It also lists a pre-publish checklist and post-publish verification steps.

When to use it

  • Preparing a Claude Code plugin for public release
  • Converting a private repo into an npm-published plugin
  • Creating a GitHub release and tags for a new version
  • Submitting a plugin to the official marketplace
  • Validating package.json, README, and CHANGELOG before publishing

Best practices

  • Follow semantic versioning: MAJOR.MINOR.PATCH for breaking changes, features, and fixes
  • Use a unique package name prefixed with claude-plugin- for npm discovery
  • Include README, LICENSE, and a CHANGELOG with clear examples and commands
  • Validate package contents with npm pack --dry-run before publishing
  • Avoid hardcoded secrets and run a quick activation test for skills/commands

Example use cases

  • Release a patch after fixing a bug: npm version patch, tag, push, create GitHub release
  • Publish a new feature: bump minor version, update README examples, publish to npm
  • Onboard a plugin to the marketplace: ensure documentation, licensing, and quality checks are met
  • Prepare a package.json with files whitelist so only plugin assets are published

FAQ

What triggers a major version bump?

Major increases for breaking changes: removed commands, incompatible API changes, or keyword changes that break consumers.

Do I need a public GitHub repo to publish?

GitHub hosting is recommended and often required for marketplace PRs; npm packages can be published from public or scoped registries but marketplace submissions expect public repos.