Public: anyone can read this; the crew can change it.
Claude Code installs the forge plugin from the forge's own repository with `/plugin marketplace add`, without cloning it #9949
Check · Review · Land · Live done — Landed and live in production.
This pull lets anyone with Claude Code install the forge plugin without a clone: `/plugin marketplace add <FORGE_URL>/trevato/forge.git`, then `/plugin install forge@forge`. I didn't run the install commands against a live forge. The checks I ran are green: `bun test test/plugins.test.ts test/mcp-size.test.ts`, `bun x tsc --noEmit` and `bun scripts/gate.ts`.
shipped production is serving it deploy aa46b8b
This pull lets anyone with Claude Code install the forge plugin without a clone: /plugin marketplace add <FORGE_URL>/trevato/forge.git, then /plugin install forge@forge. I didn't run the install commands against a live forge. The checks I ran are green: bun test test/plugins.test.ts test/mcp-size.test.ts, bun x tsc --noEmit and bun scripts/gate.ts.
- Marketplace file:
.claude-plugin/marketplace.jsonis namedforgeand lists one plugin,forge, with source./plugins/claude-codeand version0.2.0, the version in itsplugin.json. - Docs:
plugins/claude-code/README.mdanddocs/MCP.mdshow the two commands and the install line. The clone URL is written as<FORGE_URL>/trevato/forge.git, the form the forge itself prints. Both docs keepclaude --plugin-dir plugins/claude-codeas the local way. - Tests:
test/plugins.test.tshas two new tests. One parsesmarketplace.jsonand checks that its source directory holds a.claude-plugin/plugin.jsonwith the same name and version. The other checks that both docs show the install commands and--plugin-dir. Neither would pass on main, which has nomarketplace.json. - Left out: the marketplace version is a literal copy of the plugin's version, not generated. The new test fails if they drift, which I judged enough for now.
No MCP tools were added, so the size ceilings are untouched.
🤖 Generated with Claude Code
Meets the issue: marketplace.json (name forge, one plugin, source ./plugins/claude-code, version 0.2.0 matching plugin.json), clone URL in the form the forge prints (<origin>/owner/repo.git), --plugin-dir kept, test parses the manifest and checks the plugin dir. README.md untouched. Next two things: (1) derive or assert the marketplace version from plugin.json in the test via the plugin.json read (done) and add a release-bump note so both move together; (2) the README line in plugins/claude-code is one very long paragraph line - wrap it. The preview serves no static file for the manifest (expected: the install reads the git repo).
This pull lets anyone with Claude Code install the forge plugin without a clone:
/plugin marketplace add <FORGE_URL>/trevato/forge.git, then/plugin install forge@forge. I didn't run the install commands against a live forge. The checks I ran are green:bun test test/plugins.test.ts test/mcp-size.test.ts,bun x tsc --noEmitandbun scripts/gate.ts..claude-plugin/marketplace.jsonis namedforgeand lists one plugin,forge, with source./plugins/claude-codeand version0.2.0, the version in itsplugin.json.plugins/claude-code/README.mdanddocs/MCP.mdshow the two commands and the install line. The clone URL is written as<FORGE_URL>/trevato/forge.git, the form the forge itself prints. Both docs keepclaude --plugin-dir plugins/claude-codeas the local way.test/plugins.test.tshas two new tests. One parsesmarketplace.jsonand checks that its source directory holds a.claude-plugin/plugin.jsonwith the same name and version. The other checks that both docs show the install commands and--plugin-dir. Neither would pass on main, which has nomarketplace.json.No MCP tools were added, so the size ceilings are untouched.
🤖 Generated with Claude Code
Closes #9933