Plugin Dev Studio workflow for hot-reload development, interactive testing, dependency visualization, and validation of Claude Code plugins. Covers the full plugin development lifecycle from scaffold to publish.
From marketplace-pronpx claudepluginhub markus41/claude --plugin marketplace-proThis skill is limited to using the following tools:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Comprehensive development environment for building, testing, and validating Claude Code plugins with hot-reload support.
Activate this skill when:
The Dev Studio consists of four core subsystems:
+------------------+ +---------------+ +-------------------+
| FileWatcher | --> | HotReloader | --> | Resource Registry |
| (FNV-1a hashing) | | (Validation) | | (Live state) |
+------------------+ +---------------+ +-------------------+
|
v
+--------------------+
| Console Reporter |
| (file:line errors) |
+--------------------+
+-------------------+ +---------------------------+
| PluginPlayground | | DependencyGraphRenderer |
| (Record/Replay) | | (ASCII + Mermaid output) |
+-------------------+ +---------------------------+
Monitors a plugin directory for file changes using filesystem watchers with content-hash-based change detection.
Key design decisions:
Processes file changes and maintains a live resource registry.
On each change:
file:line references for inline error displayIsolated execution context for testing plugin commands.
Record-replay workflow:
tests/fixtures/ as JSONBuilds and renders plugin dependency graphs.
Two output formats:
# Create plugin structure
mkdir -p my-plugin/{commands,skills,agents,config,src,tests/fixtures}
mkdir -p my-plugin/.claude-plugin
# Create minimal manifest
cat > my-plugin/.claude-plugin/plugin.json << 'EOF'
{
"name": "my-plugin",
"version": "0.1.0",
"description": "My new plugin",
"contextEntry": "CONTEXT.md",
"capabilities": {
"provides": ["my-capability"],
"requires": []
}
}
EOF
# Create required operator runbook
cat > my-plugin/CLAUDE.md << 'EOF'
# My Plugin Guide
## Purpose
- Brief description of plugin intent.
## Supported Commands
- command-name (commands/command-name.md)
## Prohibited Actions
- List destructive or out-of-scope operations.
## Required Validation Checks
- npm run check:plugin-context
- npm run check:plugin-schema
## Context Budget
1. CONTEXT_SUMMARY.md
2. commands/index (or commands/)
3. README.md and only task-relevant deep docs
## Escalation Path
- Describe who reviews risky or blocking changes.
EOF
# Create operator context entrypoint (keep concise)
cat > my-plugin/CONTEXT.md << 'EOF'
# my-plugin Context
## Purpose
One-paragraph operator summary.
## Key Commands
- /my:command
## Agent Inventory
- my-agent
## Load Deeper Docs When
- You need implementation details or architecture rationale.
EOF
# Start the dev server with file watching
/mp:dev serve ./my-plugin --watch
The dev server will:
# Launch interactive playground
/mp:dev playground ./my-plugin
# In the playground:
# > run /my:command "test input"
# > save my-test-case
# > log
# Show dependency graph
/mp:dev graph ./my-plugin
Review the ASCII tree to verify:
# Full validation suite
/mp:dev validate ./my-plugin
Fix all errors before publishing. Warnings are advisory but should be addressed.
# List saved fixtures
/mp:dev fixture list
# Replay a specific fixture
/mp:dev fixture replay my-test-case
| Rule | Severity | Description |
|---|---|---|
| Valid JSON | error | File must be parseable JSON |
name field | error | Must be a non-empty string |
version field | error | Must be a non-empty string |
description field | error | Must be a non-empty string |
contextEntry field | error | Must reference CONTEXT.md or PLUGIN_CONTEXT.md |
CLAUDE.md present | error | Plugin root must include CLAUDE.md runbook |
capabilities present | warning | Plugin should declare capabilities |
capabilities.provides is array | error | Must be an array of strings |
capabilities.requires is array | error | Must be an array of strings |
| Rule | Severity | Description |
|---|---|---|
| Has frontmatter | error | Must start with --- |
| Frontmatter closed | error | Must have closing --- |
name in frontmatter | error | Commands and skills must have a name |
description in frontmatter | warning | Should have a description |
| Top-level heading | info | Should have # Title after frontmatter |
plugin-root/
.claude-plugin/
plugin.json # Plugin manifest (validated by HotReloader)
CLAUDE.md # Required operator runbook and context budget
CONTEXT.md # Minimal operator context entrypoint
commands/
*.md # Slash commands (validated for frontmatter)
skills/
*/SKILL.md # Skills (validated for frontmatter)
agents/
*.md # Agents (validated for frontmatter)
config/
*.json # Configuration files
src/
devstudio/
types.ts # Type definitions
server.ts # FileWatcher, HotReloader, Playground, GraphRenderer
tests/
fixtures/
*.json # Recorded test fixtures (from playground)
"Plugin manifest not found"
.claude-plugin/plugin.json exists in the plugin root/mp:dev is correct"Missing YAML frontmatter"
--- on the first line--- line"Content hash unchanged but file was modified"
"Fixture replay fails with empty output"
recordOutput() after command executionsrc/devstudio/types.tssrc/devstudio/server.tscommands/dev.mdskills/devstudio/SKILL.mdSkill version: 1.0 Module: dev-studio (marketplace-pro plugin)