Skip to content

v2.92.0 fails to load: parallel-ai-agents dependency points at wrong marketplace (whole-plugin load failure) #244

Description

@kiki830621

What happened

issue-driven-dev v2.92.0 reported ✘ failed to load on session start, and every /idd-* skill silently disappeared ("Unknown skill"). No install/enable state changed — the plugin was enabled but could not load.

Root cause

v2.92.0 (#219) promoted parallel-ai-agents to an install-time hard dependency. The plugin.json declared it as:

{ "name": "parallel-ai-agents", "marketplace": "psychquant-claude-plugins" }

But parallel-ai-agents is not published in the psychquant-claude-plugins marketplace. It ships from its own marketplace parallel-ai-agents (repo PsychQuant/parallel-ai-agents), installed as parallel-ai-agents@parallel-ai-agents.

Claude Code could not resolve parallel-ai-agents@psychquant-claude-plugins → dependency resolution failed → the whole plugin failed to load → all skills vanished. Confirmed error:

Error: Dependency "parallel-ai-agents@psychquant-claude-plugins" is not installed

The marketplace-root allowCrossMarketplaceDependenciesOn had also been set to psychquant-claude-plugins (same misdiagnosis), so both needed correcting to parallel-ai-agents.

Fix (v2.92.1)

  • plugins/issue-driven-dev/.claude-plugin/plugin.json: dependency marketplaceparallel-ai-agents
  • .claude-plugin/marketplace.json: allowCrossMarketplaceDependenciesOnparallel-ai-agents (keeps claude-plugins-official for superpowers)

The class (prevention)

A hard install-time dependency with an unresolvable marketplace name is a whole-plugin load failure that silently drops every skill — the highest-blast-radius failure mode of deep-integration-over-hardcode. There is no test today that validates each declared dependencies[].marketplace is (a) a real registered marketplace and (b) actually contains the named plugin.

Proposed structural prevention: a CI/test gate that parses plugin.json dependencies + the marketplace-root allowlist and asserts every <name>@<marketplace> pair resolves against the known marketplace sources (or at minimum that each dependency's marketplace appears in allowCrossMarketplaceDependenciesOn). This would have caught v2.92.0 before ship.

Filed as a follow-up to #219.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions