
Documentation
3 sections walk through everything Claude Code Plugins ships with. Each one starts with a quick read; click through when you need depth.
- 0101
Installation
Learn more →Both plugins are distributed through a single marketplace catalog at
BabylonJSMarket/claude-plugins. The catalog is just amarketplace.jsonfile that points at the npm packages — there's no separate plugin repo to clone. - 0202
The Plugins and Their Skills
Learn more →Two plugins, each shipping inside its own npm package. The plugin namespace matches the plugin name; skills inside fire by description match.
- 0303
Customizing the Plugins
Learn more →When the framework evolves, the plugins evolve in the same commit. Because each plugin rides inside its npm package, there is no separate plugin repo to bump — you edit the skill, bump the package, publish, done.
Two Plugins, Shipped Inside the Packages
`ecs-framework` rides inside `@babylonjsmarket/ecs`. `arcade-ecs` rides inside `@babylonjsmarket/arcade`. Each plugin lives in its package's `.claude-plugin/` directory and ships with the same `npm publish` that ships the runtime code. The package version *is* the plugin version — they cannot drift.
Stop Hallucinating the API
By default Claude invents method names that look plausible — `entity.getOrThrow`, `world.eventBus`, `onAttachOverride` on a System. None exist on @babylonjsmarket/ecs. The `ecs-framework:ecs-authoring` skill carries the authoritative method surface derived from source, plus an anti-pattern list that flags the impostors. Generated code uses the real API on the first try.
Scaffold Arcade Games in One Prompt
Type 'scaffold a new top-down arcade game called space-bounce' and the `arcade-ecs:arcade-scaffold` skill routes the request through the package's own CLI — picking the right template, walking through install + dev-server steps, and respecting the same ECS conventions the authoring skill enforces. Same for `add a Skybox component` against an existing project.
One Marketplace, Two Commands
`/plugin marketplace add BabylonJSMarket/claude-plugins` registers the catalog once. Then `/plugin install ecs-framework@babylonjsmarket` and `/plugin install arcade-ecs@babylonjsmarket` install each plugin from its npm package. Future plugins added to the catalog are picked up by `/plugin marketplace update`.
Convention Drift Killed by Construction
Because the plugin ships inside the npm package, the same publish that introduces a new framework hook also updates the skill that documents it. When `world.getEventBus()` replaces `world.eventBus` in the source, the same commit updates the skill — and `npm publish` ships both. No second release cycle, no plugin repo to remember to bump, no skew between what the skill claims and what the runtime exposes.
From MCP Server to Plugin Repo to In-Package
We shipped an MCP server first (`arcade-mcp`) — too much process plumbing. Then a dedicated plugin repo (`claude-plugin-arcade-ecs`) — two release cycles, easy to drift. Now the plugins live inside the npm packages they describe. One release, one source of truth, every consumer of `@babylonjsmarket/ecs` or `@babylonjsmarket/arcade` benefits automatically.