JSON Schema
Field reference for listing.json files.
| Field | Type | Req | Description |
|---|---|---|---|
name | string | Yes | Display name (2-100 chars) |
slug | string | — | URL identifier. Auto-generated from name if omitted |
description | string | Yes | Short description (10-300 chars) |
longDescription | string | — | Multi-paragraph description (max 5000 chars) |
type | string | — | "skill" | "mcp-server" | "agent". Default: "skill" |
category | string | Yes | code-review, testing, deployment, documentation, security, data-pipeline, devops, productivity, database, api, design |
sourceUrl | string | — | Public URL to source (GitHub, npm, etc.) |
sourceType | string | — | "github" | "npm" | "other". Default: "github" |
installCmd | string | — | Command users run to install (max 500 chars) |
compatibility | string | — | Comma-separated tools. Default: "claude-code" |
tags | string | — | Comma-separated keywords (max 500 chars) |
isFree | boolean | — | Default: true. Community listings are always free |
price | number | — | USD, minimum $0.99 (required if isFree is false) |
listingType | string | — | "original" | "community". Default: "original" |
originalAuthor | string | — | Original author name (for community listings) |
originalUrl | string | — | Original author URL (for community listings) |
skillContent | string | — | SKILL.md content delivered via CLI (max 100KB) |
files | array | — | Array of {filename, content} for multi-file skills |
dependencies | array | — | Array of slugs this skill depends on |
Full Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Skill Shope Listing",
"description": "Schema for publishing a skill, MCP server, or agent on Skill Shope",
"type": "object",
"required": ["name", "description", "category", "skillContent"],
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "Display name of the skill"
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"description": "URL-friendly identifier. Auto-generated from name if omitted"
},
"description": {
"type": "string",
"minLength": 10,
"maxLength": 300,
"description": "Short one-line description shown in search results"
},
"longDescription": {
"type": "string",
"maxLength": 5000,
"description": "Multi-paragraph description with features and usage details"
},
"type": {
"type": "string",
"enum": ["skill", "mcp-server", "agent"],
"default": "skill",
"description": "Type of listing"
},
"category": {
"type": "string",
"enum": [
"code-review", "testing", "deployment", "documentation",
"security", "data-pipeline", "devops", "productivity",
"database", "api", "design"
],
"description": "Primary category for browse filtering"
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "Optional public URL to source code or preview page (GitHub repo, npm package, etc.)"
},
"sourceType": {
"type": "string",
"enum": ["github", "npm", "other"],
"default": "github",
"description": "Type of source hosting"
},
"installCmd": {
"type": "string",
"maxLength": 500,
"description": "Command users run to install (e.g., npx skillshope install my-skill)"
},
"compatibility": {
"type": "string",
"default": "claude-code",
"description": "Comma-separated list of compatible tools (claude-code, codex, cursor)"
},
"tags": {
"type": "string",
"maxLength": 500,
"description": "Comma-separated keywords for search"
},
"listingType": {
"type": "string",
"enum": ["original", "community"],
"default": "original",
"description": "original = your own skill, community = curating an existing open-source skill"
},
"originalAuthor": {
"type": "string",
"maxLength": 100,
"description": "Name of original author (required for community listings)"
},
"originalUrl": {
"type": "string",
"format": "uri",
"description": "URL to original author's profile or repo (for community listings)"
},
"isFree": {
"type": "boolean",
"default": true,
"description": "Whether the skill is free or paid"
},
"price": {
"type": "number",
"minimum": 0.99,
"description": "Price in USD (required if isFree is false)"
},
"skillContent": {
"type": "string",
"maxLength": 100000,
"description": "The actual SKILL.md content delivered to users via CLI"
}
}
}