Skip to content

toolchain: publisher org/repo/branch URL propagates into consumer-tracked .claude/ecosystems/*.yaml headers #410

Description

@kyle-sexton

Plugin: toolchain · Categories: hardcoded org string (1), string leakage into consumer artifacts (4) — keep/soften decision needed
Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)

Findings

  • plugins/toolchain/reference/ecosystems/dotnet.yaml:4 (identical header in bash.yaml:3, python.yaml:3, typescript.yaml:3, powershell.yaml:3, markdown.yaml:3, yaml.yaml:3, cross-cutting.yaml:3): # https://raw.githubusercontent.com/melodic-software/claude-code-plugins/main/docs/conventions/ecosystem-commands/README.md
  • plugins/toolchain/reference/resolution-ladder.md:7, plugins/toolchain/reference/topic-docs.md:9
  • Propagation trigger: plugins/toolchain/skills/setup/SKILL.md:107 — "Each file carries a one-line header comment citing the contract"

Why flagged

Bundled defaults are seeds for consumer-written files: setup copies the contract-citing header, so the hardcoded melodic-software/claude-code-plugins org+repo+main-branch string lands in the consumer's tracked .claude/ecosystems/*.yaml — the one vector by which the publisher name reaches a consumer artifact. Nuance: it is provenance documentation, not runtime behavior (nothing resolves the URL at runtime), and publisher metadata is sanctioned — but the main pin will rot if the contract moves, and PLUGIN-PHILOSOPHY's design boundary says runtime surfaces must not depend on publisher/repo names. Filed as an explicit keep-vs-soften decision.

Fix direction

If softening: have setup write consumer files with a neutral header (e.g. # conforms to ecosystem-commands contract (see toolchain plugin reference)), keeping the full contract URL only in the plugin's own bundled reference files. Do not hardcode-swap the org name.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: highSignificant impact, or blocks an imminent release; staff this cycle.wayfind: designWayfind decision item: design-space or domain-model decision; human in the loop.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions