From c2b462cc2c9cd880343144c69307c74776495486 Mon Sep 17 00:00:00 2001 From: audioshaker Date: Thu, 29 Oct 2026 16:45:02 -0700 Subject: [PATCH] Rename the Claude Code plugin and skill to audioshake-cli The plugin, the skill, the CLI command and the marketplace were all called `audioshake`, so the install line read `audioshake@audioshake` and nothing said what the plugin was. `audioshake-cli` names what it is and leaves room for sibling plugins in the same marketplace. Nothing has shipped under the old name. The marketplace entry in audioshake/claude-plugins must be renamed to match, and its ref moved, before the README install command resolves. Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 4 ++-- CONTRIBUTING.md | 4 ++-- README.md | 2 +- plugin/.claude-plugin/plugin.json | 4 ++-- plugin/skills/{audioshake => audioshake-cli}/SKILL.md | 2 +- tests/test_skill_docs.py | 6 +++--- 6 files changed, 11 insertions(+), 11 deletions(-) rename plugin/skills/{audioshake => audioshake-cli}/SKILL.md (99%) diff --git a/CLAUDE.md b/CLAUDE.md index 9535b27..1e26fb8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,7 +39,7 @@ formats Python code blocks inside Markdown, so keep doc examples under 100 colum ## When you change the CLI, update the skill and the docs -`plugin/skills/audioshake/SKILL.md` teaches agents to use the CLI. `plugin/` is +`plugin/skills/audioshake-cli/SKILL.md` teaches agents to use the CLI. `plugin/` is a Claude Code plugin, listed in the `audioshake/claude-plugins` marketplace, which fetches only that folder. It must match the CLI exactly. Whenever a change touches any of these: @@ -52,7 +52,7 @@ a change touches any of these: then in the same PR: -1. Update `plugin/skills/audioshake/SKILL.md` (tables, examples, gotchas). +1. Update `plugin/skills/audioshake-cli/SKILL.md` (tables, examples, gotchas). 2. Update `docs/cli.md` and, for library changes, `docs/library.md`. 3. Add a line to the top section of `CHANGELOG.md`. Until 0.1.0 ships, that is the 0.1.0 entry itself, written as what the release does, not how it changed. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d52aae8..6dc14c3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,13 +93,13 @@ behind it. The rules that most often come up in review: ## Docs travel with the change -`plugin/skills/audioshake/SKILL.md` teaches AI agents to use the CLI and ships +`plugin/skills/audioshake-cli/SKILL.md` teaches AI agents to use the CLI and ships as a Claude Code plugin from `plugin/`, so it must match the CLI exactly. When your change touches a command, an option, a default, the `--json` shape, the output layout, an exit code, authentication or model aliases, update in the same PR: -1. `plugin/skills/audioshake/SKILL.md`, and bump `version` in +1. `plugin/skills/audioshake-cli/SKILL.md`, and bump `version` in `plugin/.claude-plugin/plugin.json` when its guidance changes. 2. `docs/cli.md`, and `docs/library.md` for library changes. 3. `CHANGELOG.md`: add a line to the top section, written as what the release diff --git a/README.md b/README.md index 1b4ba53..8e365b2 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ and library. Install it from the AudioShake marketplace inside Claude Code: ``` /plugin marketplace add audioshake/claude-plugins -/plugin install audioshake@audioshake +/plugin install audioshake-cli@audioshake ``` Then ask for stems, an instrumental, isolated dialogue or lyrics from a file and diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index dfcabdf..a2e2682 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { - "name": "audioshake", - "displayName": "AudioShake", + "name": "audioshake-cli", + "displayName": "AudioShake CLI", "description": "AudioShake is a platform for state-of-the-art AI source separation, transcription, and content analysis — powering post-production workflows, karaoke, dubbing, speech enhancement, music copyright compliance, improving ASR accuracy, and AI training data preparation — at scale, and in production.", "version": "0.3.11", "author": { "name": "AudioShake" }, diff --git a/plugin/skills/audioshake/SKILL.md b/plugin/skills/audioshake-cli/SKILL.md similarity index 99% rename from plugin/skills/audioshake/SKILL.md rename to plugin/skills/audioshake-cli/SKILL.md index 0e14359..ed127f5 100644 --- a/plugin/skills/audioshake/SKILL.md +++ b/plugin/skills/audioshake-cli/SKILL.md @@ -1,5 +1,5 @@ --- -name: audioshake +name: audioshake-cli description: Use the `audioshake` CLI and Python library to run AudioShake models on audio or video files: stem separation (vocals, drums, bass, guitar, piano...), dialogue and effects isolation, speech denoise/dereverb, multi-speaker separation, music detection/removal, lyric transcription and alignment. Trigger when the user wants stems, an instrumental, an a cappella, isolated dialogue, speaker separation, lyrics or word timings from media, or asks about AudioShake tasks, models or credits. --- diff --git a/tests/test_skill_docs.py b/tests/test_skill_docs.py index 849445f..e2bec74 100644 --- a/tests/test_skill_docs.py +++ b/tests/test_skill_docs.py @@ -14,7 +14,7 @@ from audioshake.cli import main ROOT = Path(__file__).resolve().parent.parent -SKILL_PATH = ROOT / "plugin" / "skills" / "audioshake" / "SKILL.md" +SKILL_PATH = ROOT / "plugin" / "skills" / "audioshake-cli" / "SKILL.md" # Set to 1 in CI, which runs from the repository: there a missing skill must fail # rather than skip, or the check that keeps it in step with the CLI would # silently stop running. @@ -56,7 +56,7 @@ def _option_forms(param: click.Parameter) -> list[str]: @pytest.mark.parametrize("name,command", COMMANDS, ids=[c[0] for c in COMMANDS]) def test_every_command_is_documented(name, command): leaf = name.split()[-1] - assert leaf in SKILL, f"`{name}` is missing from plugin/skills/audioshake/SKILL.md" + assert leaf in SKILL, f"`{name}` is missing from plugin/skills/audioshake-cli/SKILL.md" assert leaf in CLI_DOC, f"`{name}` is missing from docs/cli.md" @@ -66,7 +66,7 @@ def test_every_option_is_documented(where, param): if param.name == "version": return assert any(form in SKILL for form in forms), ( - f"{where} option {forms} is missing from plugin/skills/audioshake/SKILL.md" + f"{where} option {forms} is missing from plugin/skills/audioshake-cli/SKILL.md" ) assert any(form in CLI_DOC for form in forms), ( f"{where} option {forms} is missing from docs/cli.md"