Claude Code Hero Level 9: The Artificer's Workshop -- create a minimal Claude Code plugin (capstone)
From claude-code-heronpx claudepluginhub kylesnowschwartz/claude-code-hero --plugin claude-code-heroThis skill uses the workspace's default tool permissions.
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.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Create a minimal Claude Code plugin with a plugin.json manifest whose name contains "hero", and at least one component.
Everything you've built -- commands, rules, hooks, skills, agents -- lives as individual files in individual directories. Useful. Personal. But not portable. A plugin bundles all of it into a single artifact that anyone can install with one command.
Plugins are how Claude Code's ecosystem grows. Someone else's workflow, packaged and shared. Your workflow, packaged and shared. The thing you've been using this entire time -- Claude Code Hero -- is a plugin. You've been inside one since Level 1.
The final chamber. Not a dungeon. A workshop.
Anvil. Forge. Workbench. Shelves lined with components you recognize: commands, rules, skills, hooks, agents. You've built each one separately. Here, they become one thing.
Look at what's on the shelves. You already have:
hero-spell -- your magic missile, with $ARGUMENTS for targetinghero-protocol -- the path-scoped inscription you carved in the corridorhero-knowledge -- dungeon cartography, bound into a tomehero-agent -- the companion you summonedEvery one of those is a plugin component. You just didn't know it yet.
A plugin is a directory with a .claude-plugin/ folder inside it. That folder contains a plugin.json manifest -- the declaration of what this plugin is and what it provides. The components live alongside .claude-plugin/ as top-level directories: commands/, skills/, agents/, hooks/, rules/.
Every artifact in this dungeon has carried the hero's mark. Your final creation is no different. The name field in your plugin.json must contain "hero" -- hero-toolkit, my-hero-plugin, hero-utils, whatever fits. This is how the dungeon knows the artifact is yours.
Your task:
.claude-plugin/plugin.json with a name field containing "hero"commands/hero-spell.md, rules/hero-protocol.md, skills/hero-knowledge/SKILL.md, agents/hero-agent.mdLaunch Claude with your plugin loaded: claude --plugin-dir <path-to-your-plugin-directory>. Then test your components. Type /hero-spell the dragon -- if the command fires, your plugin is wired correctly. Ask a question in your skill's domain. Launch claude --agent hero-agent. Each component that works is proof the plugin structure is right.
If a component doesn't appear, check that the directory names match exactly: commands/, skills/, agents/, rules/.
You already know how to build every component type. You've done it across five quests. Now bind them together and watch them come alive as a distributable package.
A plugin is just a directory. The magic is in the structure:
my-plugin/
.claude-plugin/
plugin.json
commands/
my-command.md
The .claude-plugin/plugin.json file is the manifest. Everything else follows the same patterns you've already learned.
The plugin.json manifest can be minimal:
{
"name": "hero-toolkit"
}
Other optional fields: description, version, author. But name (containing "hero") is all you need to start.
Copy your existing hero artifacts from .claude/ into the plugin's component directories. They're the same files, same format -- just organized under one roof.
When you're ready, run /verify to check your work.
.claude-plugin/plugin.json.claude-plugin/ (e.g., commands/, skills/, agents/, rules/)plugin.json contains valid JSONplugin.json includes a name field whose value contains "hero" (e.g., "hero-toolkit", "my-hero-plugin")The last rune locks into place. The artifact hums. It's whole.
Look at what's on the workbench. A command that fires magic missiles. A rule that activates by path. A hook that reacts when the spell is cast. A skill that holds your expertise. An agent that acts on its own. And now a plugin that binds them all together.
Everything you built across ten quests -- it was all plugin components. You just didn't know it yet.
Ten chambers. Ten trials. Each one a power claimed, a pattern learned, a tool forged.
You entered this labyrinth mapping walls. You leave it building them.
The realm of Claude Code has no final chamber. There are marketplaces to discover. Teams to assemble. MCP servers to connect. Worktrees to spin up for parallel work. But those are journeys for another day.
For now: you are an artificer. Go build something.