Extract release workflow into a standalone repository - #36
Conversation
📝 WalkthroughWalkthroughThe marketplace now includes an external ChangesRelease workflow externalization
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Around line 81-85: Update the README installation flow for release-workflow to
first register the skill-set marketplace, then install the plugin using its
marketplace-qualified name rather than the direct name. Verify the documented
commands work on the supported Claude Code version.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 957d51c6-454d-45da-b8c3-86adadc756f1
📒 Files selected for processing (48)
.claude-plugin/marketplace.jsonAGENTS.mdCHANGELOG.mdREADME.mdplugins/skill-set/bin/skill-set-releaseplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/case.yamlplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/.claude-plugin/plugin.jsonplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/.eval-hooks/post-commitplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/CHANGELOG.mdplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/recent-commits.txtplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/scaffold.shplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/graders/functional-contract.mdplugins/skill-set/evals/bumping-version/minor-bump-plugin-json/prompt.mdplugins/skill-set/evals/bumping-version/patch-bump-package-json/case.yamlplugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/.eval-hooks/post-commitplugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/CHANGELOG.mdplugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/package.jsonplugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/recent-commits.txtplugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/scaffold.shplugins/skill-set/evals/bumping-version/patch-bump-package-json/graders/functional-contract.mdplugins/skill-set/evals/bumping-version/patch-bump-package-json/prompt.mdplugins/skill-set/evals/bumping-version/trigger-negative-01/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-02/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-03/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-04/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-05/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-06/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-07/case.yamlplugins/skill-set/evals/bumping-version/trigger-negative-08/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-01/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-02/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-03/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-04/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-05/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-06/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-07/case.yamlplugins/skill-set/evals/bumping-version/trigger-positive-08/case.yamlplugins/skill-set/evals/safety-contract.jsonplugins/skill-set/evals/trigger-cases.jsonplugins/skill-set/scripts/generate-inventoryplugins/skill-set/scripts/validate-evalsplugins/skill-set/skills/bumping-version/SKILL.mdplugins/skill-set/skills/bumping-version/scripts/skill-set-releaseplugins/skill-set/tests/expected-inventory.jsonplugins/skill-set/tests/test-eval-layout.shplugins/skill-set/tests/test-portable-runner-layout.shplugins/skill-set/tests/test-release-runner.shplugins/skill-set/tests/test-testing-skill.sh
💤 Files with no reviewable changes (39)
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/.claude-plugin/plugin.json
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/recent-commits.txt
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/CHANGELOG.md
- plugins/skill-set/evals/bumping-version/trigger-negative-02/case.yaml
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/graders/functional-contract.md
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/graders/functional-contract.md
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/package.json
- plugins/skill-set/evals/bumping-version/trigger-negative-04/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-negative-08/case.yaml
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/CHANGELOG.md
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/recent-commits.txt
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/.eval-hooks/post-commit
- plugins/skill-set/evals/bumping-version/trigger-positive-08/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-positive-01/case.yaml
- plugins/skill-set/bin/skill-set-release
- plugins/skill-set/evals/bumping-version/trigger-positive-05/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-negative-03/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-positive-02/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-positive-03/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-negative-05/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-positive-06/case.yaml
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/prompt.md
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/.eval-hooks/post-commit
- plugins/skill-set/evals/bumping-version/trigger-negative-06/case.yaml
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/fixtures/scaffold.sh
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/prompt.md
- plugins/skill-set/evals/bumping-version/trigger-positive-07/case.yaml
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/fixtures/scaffold.sh
- plugins/skill-set/evals/trigger-cases.json
- plugins/skill-set/evals/bumping-version/patch-bump-package-json/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-positive-04/case.yaml
- plugins/skill-set/evals/safety-contract.json
- plugins/skill-set/tests/test-eval-layout.sh
- plugins/skill-set/skills/bumping-version/SKILL.md
- plugins/skill-set/evals/bumping-version/minor-bump-plugin-json/case.yaml
- plugins/skill-set/evals/bumping-version/trigger-negative-07/case.yaml
- plugins/skill-set/tests/test-release-runner.sh
- plugins/skill-set/skills/bumping-version/scripts/skill-set-release
- plugins/skill-set/evals/bumping-version/trigger-negative-01/case.yaml
| Install it separately with: | ||
|
|
||
| ```bash | ||
| /plugin install release-workflow | ||
| ``` |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== repo files =="
git ls-files | sed -n '1,120p'
echo "== README context =="
if [ -f README.md ]; then
nl -ba README.md | sed -n '1,140p'
fi
echo "== search release-workflow and marketplace references =="
rg -n "release-workflow|skill-set|mcp|plugin install|plugin marketplace" .Repository: ether-moon/skill-set
Length of output: 8020
🌐 Web query:
Claude Code plugins marketplace install marketplace add qualify plugin name release-workflow skill-set
💡 Result:
To work with plugins, marketplaces, and release workflows in Claude Code, follow these guidelines. Claude Code uses an extensible plugin system where plugins bundle skills, tools, and MCP servers into a single, installable unit [1][2][3]. How to Manage Marketplaces and Plugins Marketplaces are catalogs of plugins [2]. The official Anthropic marketplace (claude-plugins-official) is typically registered automatically [2][4]. 1. To add a marketplace: Run /plugin marketplace add <owner/repo> [2][5]. A marketplace is simply a Git repository containing a.claude-plugin/marketplace.json file [3][4]. 2. To install a plugin: Use /plugin install @ [6][5]. You can also browse and install interactively by running the /plugin command [4][5]. 3. To update: If a plugin is not found, ensure your marketplace is up to date by running /plugin marketplace update [2][4]. Release Workflow Plugins There are various community plugins designed to automate release workflows, such as semantic versioning, changelog generation, and tag creation [7][8][9]. Examples include: - Release Toolkit (formerly Changelog Plugin): Often uses the release: namespace for commands like /release:release to increment versions, commit, and tag [7]. - Custom Release Skills: Some plugins provide commands such as /release, /release-prepare, or /release-status [8][9]. Note that when installed via a marketplace, these commands are often prefixed (e.g., /git-workflow:release) to avoid collisions [9]. Always check the specific documentation (usually the README.md) of the plugin you are installing, as command namespaces and required configuration vary by author [7][8][9]. You can manage installed plugins and view their enabled skills using the interactive /plugin menu [4][5].
Citations:
- 1: https://claude.com/plugins/
- 2: https://code.claude.com/docs/en/discover-plugins
- 3: https://code.claude.com/docs/en/plugin-marketplaces
- 4: https://designrevision.com/blog/how-to-install-claude-code-plugins
- 5: https://claude-code-guide.org/plugins/
- 6: https://github.com/anthropics/claude-plugins-official
- 7: https://github.com/scarrillo/release/blob/main/README.md
- 8: https://github.com/netresearch/github-release-skill
- 9: https://github.com/rlajous/claude-code-commands
🏁 Script executed:
#!/bin/bash
set -euo pipefail
export LC_ALL=C
echo "== README lines 60-95 =="
awk '{printf "%6d\t%s\n", NR, $0}' README.md | sed -n '60,95p'
echo "== marketplace/plugin metadata =="
for f in .claude-plugin/marketplace.json plugins/skill-set/.claude-plugin/plugin.json; do
if [ -f "$f" ]; then
echo "-- $f --"
awk '{printf "%6d\t%s\n", NR, $0}' "$f"
fi
done
echo "== all release-workflow references =="
rg -n "release-workflow|skill-set|marketplace|/plugin" README.md .claude-plugin plugins/skill-set .claude 2>/dev/null || trueRepository: ether-moon/skill-set
Length of output: 49505
Make the external-plugin installation flow complete.
release-workflow is listed in the skill-set marketplace, but README.md instructs users to install it directly. Add the marketplace registration and use the marketplace-qualified plugin name:
Proposed documentation update
- /plugin install release-workflow
+ /plugin marketplace add ether-moon/skill-set
+ /plugin install release-workflow@skill-setVerify this flow on the supported Claude Code version before merge.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Install it separately with: | |
| ```bash | |
| /plugin install release-workflow | |
| ``` | |
| Install it separately with: | |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 81 - 85, Update the README installation flow for
release-workflow to first register the skill-set marketplace, then install the
plugin using its marketplace-qualified name rather than the direct name. Verify
the documented commands work on the supported Claude Code version.
Summary
bumping-version, its release runner, deterministic tests, and behavioral evals from the coreskill-setpluginether-moon/release-workflowas an external marketplace plugin with an independent version cycleWhy
Semantic-version release automation has a narrower audience and a higher-risk publication boundary than the general development workflow skills. Moving it to a standalone repository lets users opt in explicitly and allows its runner, policy, tests, and releases to evolve independently.
Users who relied on the former bundled skill should install
release-workflowseparately after this change.Standalone repository
1.0.0Validation
plugins/skill-set/scripts/generate-inventory --checkplugins/skill-set/scripts/generate-trigger-evals --checkplugins/skill-set/scripts/validate-evals --require-trigger-matrixplugins/skill-set/scripts/validate-referencesplugins/skill-set/tests/run.shclaude plugin validate --strict plugins/skill-setclaude plugin validate --strict .git diff --checkSummary by CodeRabbit
New Features
Documentation
Refactor