From 295f846c3688c48bc88563309cf09140c7acc9f9 Mon Sep 17 00:00:00 2001 From: Eliott Jacopin Date: Mon, 14 Sep 2026 22:37:24 +0200 Subject: [PATCH] build(plugin): rename both marketplaces to cracking-shells, the organization's name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A marketplace lists many plugins and an organization has many repositories, so the marketplace carries the organization's name and each plugin keeps its repository's. Until now the Claude Code marketplace was named after this one plugin (`colgrep-mcp@colgrep-mcp`) and the Codex one `colgrep-mcp-marketplace`, which read as a typo and could not grow (RI §Steering Questions). Install strings in the README, AGENTS.md and dev/README.md follow, the dev-plugin drift test pins the new string, and the stack-traps namespaces entry now records the old names so a machine that added the marketplace before the rename knows to remove and re-add it. Co-Authored-By: Claude Fable 5.1 --- .agents/plugins/marketplace.json | 4 +- .claude-plugin/marketplace.json | 4 +- AGENTS.md | 2 +- README.md | 4 +- dev/README.md | 2 +- .../stack-traps/references/claude-code.md | 42 +++++++++++-------- server/tests/test_dev_plugin.py | 2 +- 7 files changed, 33 insertions(+), 27 deletions(-) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 4064816..18d3784 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -1,7 +1,7 @@ { - "name": "colgrep-mcp-marketplace", + "name": "cracking-shells", "interface": { - "displayName": "colgrep" + "displayName": "CrackingShells" }, "plugins": [ { diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 35ca053..f3a643d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,6 +1,6 @@ { - "name": "colgrep-mcp", - "description": "Marketplace for colgrep-mcp: the product plugin (semantic and hybrid code search as MCP tools) and the maintainer's dev plugin of skills.", + "name": "cracking-shells", + "description": "CrackingShells marketplace. Here: colgrep-mcp, the product plugin (semantic and hybrid code search as MCP tools), and colgrep-mcp-dev, the maintainer's plugin of skills.", "owner": { "name": "Eliott Jacopin", "email": "eliott.jacopin@riken.jp" diff --git a/AGENTS.md b/AGENTS.md index da41e5a..f0d771b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,7 +35,7 @@ runs the same roadmap sequentially under the same discipline. Load the ```bash claude --plugin-dir ./dev # from a clone -claude plugin install colgrep-mcp-dev@colgrep-mcp # from the repo's marketplace +claude plugin install colgrep-mcp-dev@cracking-shells # from the repo's marketplace ``` `colgrep-mcp-dev` (`dev/`) ships the maintainer skills; the product plugin diff --git a/README.md b/README.md index 0cad103..ba2e759 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ claude plugin marketplace add CrackingShells/colgrep-mcp ``` ```bash -claude plugin install colgrep-mcp@colgrep-mcp +claude plugin install colgrep-mcp@cracking-shells ``` Add `--scope project` to the marketplace command to declare it in the repository's own `.claude/settings.json` instead of your user settings, so teammates who open this project pick it up too. @@ -41,7 +41,7 @@ codex plugin marketplace add CrackingShells/colgrep-mcp ``` ```bash -codex plugin add colgrep-mcp@colgrep-mcp-marketplace +codex plugin add colgrep-mcp@cracking-shells ``` The Codex manifests are `.agents/plugins/marketplace.json` and `.codex-plugin/plugin.json`. diff --git a/dev/README.md b/dev/README.md index fe56d6d..c035995 100644 --- a/dev/README.md +++ b/dev/README.md @@ -7,7 +7,7 @@ installs it: ```bash claude --plugin-dir ./dev # from a clone -claude plugin install colgrep-mcp-dev@colgrep-mcp # from the repo's own marketplace +claude plugin install colgrep-mcp-dev@cracking-shells # from the repo's own marketplace ``` The product plugin (`colgrep-mcp`, repository root) never ships these skills; diff --git a/dev/skills/stack-traps/references/claude-code.md b/dev/skills/stack-traps/references/claude-code.md index 3f721b7..f3a573f 100644 --- a/dev/skills/stack-traps/references/claude-code.md +++ b/dev/skills/stack-traps/references/claude-code.md @@ -62,27 +62,33 @@ hand and never re-tag. ## The install/list command reads oddly or fails to resolve {#namespaces} -**Symptom**: `claude plugin install colgrep-mcp@colgrep-mcp` looks like a -typo (same name on both sides of the `@`), or a plugin/marketplace name -collision seems like it should fail but doesn't — or conversely, an install +**Symptom**: `claude plugin install colgrep-mcp@cracking-shells` names a +marketplace that is not the repository; an install string copied from an +older README or report (`colgrep-mcp@colgrep-mcp`, +`colgrep-mcp@colgrep-mcp-marketplace`) no longer resolves; or an install command copied from Claude Code's convention doesn't work verbatim for Codex. -**Cause**: marketplace names and plugin names live in separate namespaces. -`colgrep-mcp@colgrep-mcp` parses unambiguously as `@` -even though both happen to be named `colgrep-mcp` — a naming coincidence, -not a bug. Codex's own marketplace file names itself `colgrep-mcp-marketplace` -(not `colgrep-mcp`), so the equivalent Codex command is -`codex plugin add colgrep-mcp@colgrep-mcp-marketplace` — the two -ecosystems' install commands don't mirror each other syntactically. A -`source` field of `"./"` or `"./dev"` in a marketplace manifest resolves -relative to the marketplace root, which works for a marketplace added from -a git source or local directory but not for a direct URL to the -`marketplace.json` file itself. (`RI`.) - -**What to do**: don't "fix" the `colgrep-mcp@colgrep-mcp` string as if it -were a typo. When writing install instructions for a second ecosystem, -copy that ecosystem's own marketplace `name`, not Claude Code's. +**Cause**: marketplace names and plugin names live in separate namespaces, +`@`. Both marketplace files +(`.claude-plugin/marketplace.json`, `.agents/plugins/marketplace.json`) name +themselves `cracking-shells`, the organization, so one marketplace can carry +every CrackingShells plugin; the plugin keeps the repository's name. Until +after v0.5.0 the Claude marketplace was named `colgrep-mcp` and the Codex one +`colgrep-mcp-marketplace`, so reports and machines from that period still +carry those strings, and a machine that added the marketplace under the old +name keeps it under that name until it is removed and re-added. A `source` +field of `"./"` or `"./dev"` in a marketplace manifest resolves relative to +the marketplace root, which works for a marketplace added from a git source +or local directory but not for a direct URL to the `marketplace.json` file +itself. (`RI`.) + +**What to do**: on a machine that shows `colgrep-mcp` under +`claude plugin marketplace list`, run +`claude plugin marketplace remove colgrep-mcp` and add it again, then +reinstall `colgrep-mcp@cracking-shells`. When writing install instructions +for a second ecosystem, copy that ecosystem's own marketplace `name`; here +the two happen to match, which is a choice, not a rule. ## `claude -p` / `claude plugin eval` fails with an OAuth error {#oauth} diff --git a/server/tests/test_dev_plugin.py b/server/tests/test_dev_plugin.py index 1e193a7..17e2bb0 100644 --- a/server/tests/test_dev_plugin.py +++ b/server/tests/test_dev_plugin.py @@ -64,7 +64,7 @@ def test_agents_md_names_every_dev_skill(): def test_agents_md_says_how_to_load_the_dev_plugin(): text = AGENTS_MD.read_text() assert "--plugin-dir ./dev" in text or "--plugin-dir dev" in text - assert "colgrep-mcp-dev@colgrep-mcp" in text + assert "colgrep-mcp-dev@cracking-shells" in text def test_every_dev_skill_has_a_name_matching_its_directory_and_a_description():