npx claudepluginhub lynconebb/my-claude-marketplace --plugin plugin-builderThis skill uses the workspace's default tool permissions.
Create a new Claude Code plugin in `~/my-claude-marketplace`.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Create a new Claude Code plugin in ~/my-claude-marketplace.
Check if ~/my-claude-marketplace exists:
ls ~/my-claude-marketplace
If not found, clone it:
git clone https://github.com/lynconEBB/my-claude-marketplace ~/my-claude-marketplace
Ask the user for:
my-plugin) — if not in $ARGUMENTSOnly create files for selected components. Skip the rest.
Use the template at ${CLAUDE_SKILL_DIR}/template/ as reference.
Create ~/my-claude-marketplace/plugins/<plugin-name>/ with this minimal structure (always required):
<plugin-name>/
└── .claude-plugin/
└── plugin.json
Populate .claude-plugin/plugin.json:
{
"name": "<plugin-name>",
"description": "<description>",
"version": "1.0.0",
"author": {
"name": "Lyncon Baez",
"email": "lynconlyn@gmail.com"
}
}
Create skills/<skill-name>/SKILL.md for each skill. Use this structure:
---
name: <skill-name>
description: <what it does and when Claude should use it>
disable-model-invocation: true
---
# Skill instructions here
Set disable-model-invocation: true for task-oriented skills (deploy, commit, etc.). Omit it for knowledge/reference skills Claude should apply automatically.
Add the skills path to plugin.json only if using a non-default location.
Create agents/<agent-name>.md:
---
name: <agent-name>
description: <what this agent specializes in and when to invoke it>
---
Agent system prompt here.
Create hooks/hooks.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/your-script.sh"
}
]
}
]
}
}
Make hook scripts executable: chmod +x scripts/your-script.sh
Always use ${CLAUDE_PLUGIN_ROOT} for paths in hooks and MCP configs.
Create .mcp.json:
{
"mcpServers": {
"<server-name>": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/<binary>",
"args": []
}
}
}
Create .lsp.json:
{
"<language>": {
"command": "<lsp-binary>",
"args": [],
"extensionToLanguage": {
".<ext>": "<language>"
}
}
}
Read ~/my-claude-marketplace/.claude-plugin/marketplace.json and add the plugin to the plugins array:
{
"name": "<plugin-name>",
"source": "./plugins/<plugin-name>",
"description": "<description>"
}
Show the user the created structure and remind them to install:
claude plugin install <plugin-name>@blynck-tools
${CLAUDE_PLUGIN_ROOT} (not absolute paths) inside hooks/MCP configsskills/, agents/, hooks/) go at plugin root, never inside .claude-plugin/${CLAUDE_SKILL_DIR}/template/ for concrete file examples${CLAUDE_SKILL_DIR}/plugin-reference.md