Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(planning, work-items, testing, mutation-testing): declare hard plugin dependencies

Open Beginner friendly
#9,914 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
85/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
shell
Domain
cli

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

agent-ready priority: medium status: ready work-class: scoped

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 the work-items plugin, wayfind cannot read or write the tracker. Say so and stop" (also plugins/planning/skills/wayfind/SKILL.md:20).
  • plugins/work-items/skills/ship/actions/run.md:71: ship run invokes /implementation:implement-dispatch with no presence check and no fallback.
  • plugins/testing/skills/cleanup/SKILL.md:56 and :124: the mutation gate needs mutation-testing. Without it, only --cannot-fail-only runs.
  • plugins/mutation-testing/skills/audit/SKILL.md:96 and :104: --exercised invokes /testing:audit --file to find tests, and refuses when testing is 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.json prints ["work-items"]
  • jq -c '.dependencies' plugins/work-items/.claude-plugin/plugin.json prints ["implementation"]
  • jq -c '.dependencies' plugins/testing/.claude-plugin/plugin.json prints ["mutation-testing"], or null with the PR body saying the cycle failed to install
  • jq -c '.dependencies' plugins/mutation-testing/.claude-plugin/plugin.json prints ["testing"]
  • bash scripts/validate-plugins.sh --only "planning work-items testing mutation-testing" exits 0
  • bash scripts/check-changelog-fragments.sh --check exits 0 and bash scripts/check-changelog-fragments.sh --check-required origin/main exits 0
  • With CLAUDE_CONFIG_DIR set to a fresh mktemp -d directory: claude plugin marketplace add "$PWD" and claude plugin install testing@melodic-software both exit 0, claude plugin list --json lists testing and mutation-testing, and claude plugin list --json | jq '[.. | objects | select(has("errors"))] | length' prints 0
  • ci-status is green on the PR head
Dominant language
Shell
Stars
22
Forks
2
Avg merge
2h 45m
Merged PRs (30d)
940

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from melodic-software/claude-code-plugins

All issues in melodic-software/claude-code-plugins

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.