plugins/marketplace-pro/skills/devstudio/SKILL.md
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.
npx skillsauth add markus41/claude devstudioInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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)
development
Enhanced plan-authoring skill with Pre-Writing context gathering, task metadata, non-TDD templates, Red Flags, telemetry, and an automated plan linter. Use when you have a spec or requirements for a multi-step task, before touching code.
tools
Documentation intelligence engine with graph-based API docs, algorithm library, and drift detection
tools
Ultraplan cloud planning — kick off a plan in the cloud from your terminal, review and revise in the browser, then execute remotely or send back to CLI
tools
--- name: mcp description: Configure MCP servers for Claude Code — stdio vs HTTP, authentication, Tools/Resources/Prompts distinction, channels (CI webhook, mobile relay, Discord bridge, fakechat), and cost of always-loaded tools. Use this skill whenever adding an MCP server, debugging connection issues, choosing between MCP Tools vs Prompts vs Resources, installing channel servers, or managing .mcp.json. Triggers on: "MCP server", "mcp config", "add Obsidian MCP", "install context7", "channels"