feat(planning, work-items, testing, mutation-testing): declare hard plugin dependencies
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
Research direction
Edit the four plugin.json files listed (e.g. plugins/planning/.claude-plugin/plugin.json) to add the dependencies array exactly as tabled. Run scripts/new-changelog-fragment.sh for each plugin to add changelog fragments. Validate with bash scripts/validate-plugins.sh --only "planning work-items testing mutation-testing" and bash scripts/check-changelog-fragments.sh --check; done when all jq prints match and scripts exit 0.
Written by the indexing model from the issue text.
Description
Refs #6462. Slice 1 of 2.
Problem
The core bundle (slice 2) installs its members through native dependencies, so a member that cannot do a job without another plugin must declare that plugin, or the bundle's closure is incomplete. On origin/main only plugins/playgrounds/.claude-plugin/plugin.json declares dependencies. docs/plugin-philosophy.md:104-107 reserves dependencies for hard requires and keeps optional collaboration presence-gated with a fallback.
Among the 53 core members, four call sites have no working fallback without their collaborator:
plugins/planning/skills/wayfind/context/tracker-mechanics.md:11: "Without thework-itemsplugin, wayfind cannot read or write the tracker. Say so and stop" (alsoplugins/planning/skills/wayfind/SKILL.md:20).plugins/work-items/skills/ship/actions/run.md:71:ship runinvokes/implementation:implement-dispatchwith no presence check and no fallback.plugins/testing/skills/cleanup/SKILL.md:56and:124: the mutation gate needsmutation-testing. Without it, only--cannot-fail-onlyruns.plugins/mutation-testing/skills/audit/SKILL.md:96and:104:--exercisedinvokes/testing:audit --fileto find tests, and refuses whentestingis not installed.
All four targets are core members, so these declarations add nothing outside the core set to the bundle's closure.
Fix
Add an unversioned dependencies array to four manifests. Use a bare name, which resolves in this marketplace (https://code.claude.com/docs/en/plugins/dependencies.md, "Declare a dependency with a version constraint"):
| Manifest | dependencies |
Call site |
|---|---|---|
plugins/planning/.claude-plugin/plugin.json |
["work-items"] |
plugins/planning/skills/wayfind/context/tracker-mechanics.md:11 |
plugins/work-items/.claude-plugin/plugin.json |
["implementation"] |
plugins/work-items/skills/ship/actions/run.md:71 |
plugins/testing/.claude-plugin/plugin.json |
["mutation-testing"] |
plugins/testing/skills/cleanup/SKILL.md:56 |
plugins/mutation-testing/.claude-plugin/plugin.json |
["testing"] |
plugins/mutation-testing/skills/audit/SKILL.md:104 |
testing and mutation-testing depend on each other. The dependencies page does not say whether a cycle installs. The live install check below settles it. If it fails, drop testing's entry, keep mutation-testing's, and say so in the PR body.
Add one changelog fragment per plugin with scripts/new-changelog-fragment.sh planning work-items testing mutation-testing minor, with a ### Changed entry naming the dependency. Edit nothing under .github/**.
Done when
-
jq -c '.dependencies' plugins/planning/.claude-plugin/plugin.jsonprints["work-items"] -
jq -c '.dependencies' plugins/work-items/.claude-plugin/plugin.jsonprints["implementation"] -
jq -c '.dependencies' plugins/testing/.claude-plugin/plugin.jsonprints["mutation-testing"], ornullwith the PR body saying the cycle failed to install -
jq -c '.dependencies' plugins/mutation-testing/.claude-plugin/plugin.jsonprints["testing"] -
bash scripts/validate-plugins.sh --only "planning work-items testing mutation-testing"exits 0 -
bash scripts/check-changelog-fragments.sh --checkexits 0 andbash scripts/check-changelog-fragments.sh --check-required origin/mainexits 0 - With
CLAUDE_CONFIG_DIRset to a freshmktemp -ddirectory:claude plugin marketplace add "$PWD"andclaude plugin install testing@melodic-softwareboth exit 0,claude plugin list --jsonliststestingandmutation-testing, andclaude plugin list --json | jq '[.. | objects | select(has("errors"))] | length'prints0 -
ci-statusis green on the PR head
- Dominant language
- Shell
- Stars
- 22
- Forks
- 2
- Avg merge
- 2h 45m
- Merged PRs (30d)
- 940
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from melodic-software/claude-code-plugins
-
admission-deferred priority: medium status: ready work-class: scoped
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
melodic-software/claude-code-plugins#10128 · 1 comment ·
Maintainers usually reply within 1 day
-
pr-pipeline: clear a feedback-not-landed escalation once the head moves and no lane thread is openOpenpriority: medium status: needs-decision work-class: scoped
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
melodic-software/claude-code-plugins#10074 · 4 comments ·
Maintainers usually reply within 1 day
-
fix(harness-ops): bound the OTEL hot tier's total size, not only each filePossibly taken @melodic-automation-lanes claimed this 1 day ago. Openagent-ready priority: medium status: ready work-class: scoped
Difficulty 2/5 1-2 days Newbie friendliness 78/100
melodic-software/claude-code-plugins#9865 · 3 comments ·
Maintainers usually reply within 1 day
-
priority: medium status: needs-decision work-class: scoped
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
melodic-software/claude-code-plugins#9855 · 5 comments ·
Maintainers usually reply within 1 day
-
priority: medium work-class: scoped
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
melodic-software/claude-code-plugins#9842 · 5 comments ·
Maintainers usually reply within 1 day
All issues in melodic-software/claude-code-plugins
Similar issues
-
"SFrame-internal"Open
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
acmesh-official/acme.sh#7356 · 1 comment ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 91/100
alunduil/alunduil-infrastructure#918 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
alunduil/alunduil-chezmoi#1048 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
YunoHost-Apps/coturn_ynh#49 ·