Skip to content

fix(plugin): add root marketplace.json so remote /plugin install works (#84)#85

Draft
javiarmesto wants to merge 1 commit into
mainfrom
claude/fix-plugin-marketplace-root
Draft

fix(plugin): add root marketplace.json so remote /plugin install works (#84)#85
javiarmesto wants to merge 1 commit into
mainfrom
claude/fix-plugin-marketplace-root

Conversation

@javiarmesto

Copy link
Copy Markdown
Owner

Fixes #84/plugin marketplace add "Marketplace file not found"

Root cause

/plugin marketplace add javiarmesto/ALDC-AL-Development-Collection looks for .claude-plugin/marketplace.json at the repository root (confirmed in the Claude Code docs: "Create .claude-plugin/marketplace.json in your repository root"). This repo only had the manifest nested at claude-plugin/.claude-plugin/marketplace.json, so the remote add fails with exactly:

Error: Marketplace file not found at …\.claude\plugins\marketplaces\…\.claude-plugin\marketplace.json

(The local method /plugin marketplace add ./claude-plugin worked because the manifest is at the root of that subdirectory.)

Fix

Add .claude-plugin/marketplace.json at the repo root. Its plugin source is ./claude-plugin — per the docs, source paths resolve relative to the marketplace root (repo root), and ./claude-plugin is the directory that contains .claude-plugin/plugin.json + agents/skills/commands/hooks.

Now working

/plugin marketplace add javiarmesto/ALDC-AL-Development-Collection
/plugin install aldc@aldc-marketplace

Verified

  • marketplace.json parses; source: ./claude-plugin contains .claude-plugin/plugin.json and the full plugin structure.
  • ✅ Nested claude-plugin/.claude-plugin/marketplace.json kept untouched → the local add ./claude-plugin path still works.
  • ✅ ALDC validator: COMPLIANT, 0 warnings.

Note: this leaves two marketplace manifests (root + nested) listing the same plugin/version. Kept both to avoid regressing the documented local method; happy to consolidate to a single root manifest (and switch the local docs to add .) if you prefer.

🤖 Generated with Claude Code


Generated by Claude Code

…ll works

/plugin marketplace add javiarmesto/ALDC-AL-Development-Collection looks for
.claude-plugin/marketplace.json at the REPO ROOT (per Claude Code docs), but
the manifest only existed nested at claude-plugin/.claude-plugin/marketplace.json
— hence 'Marketplace file not found at ...\.claude-plugin\marketplace.json'.

Add a root marketplace.json whose plugin source resolves relative to the
marketplace root (repo root) to ./claude-plugin, the dir that contains
.claude-plugin/plugin.json + agents/skills/commands/hooks. The nested
manifest is kept so the local 'add ./claude-plugin' method still works.

Fixes #84

https://claude.ai/code/session_01KDEqho2A9337XJvnTVgGxA
@github-actions

Copy link
Copy Markdown
Contributor

📋 Collection Validation Results


> al-development-collection@4.2.0 validate
> node scripts/validate-al-collection.js

�[36m
╔════════════════════════════════════════════════╗�[0m
�[36m║   AL Development Collection Validator v1.0    ║�[0m
�[36m╚════════════════════════════════════════════════╝�[0m
�[34m
🕐 Started: 2026-06-30T16:24:10.502Z
�[0m
�[32m✅ Collection manifest found: collections/al-development.collection.yml�[0m
�[36m
📋 Validating Collection Manifest...�[0m
�[32m✅ Collection ID is valid: al-development�[0m
�[32m✅ Collection has 44 items�[0m
�[32m✅ Collection has 10 tags�[0m
�[36m
📁 Validating Collection Items...�[0m
�[32m✅ Item 1: al-guidelines.instructions.md validated�[0m
�[32m✅ Item 2: al-code-style.instructions.md validated�[0m
�[32m✅ Item 3: al-naming-conventions.instructions.md validated�[0m
�[32m✅ Item 4: al-performance.instructions.md validated�[0m
�[32m✅ Item 5: al-error-handling.instructions.md validated�[0m
�[32m✅ Item 6: al-events.instructions.md validated�[0m
�[32m✅ Item 7: al-testing.instructions.md validated�[0m
�[33m⚠️  WARNING: Item 8: Instruction file should end with .instructions.md: instructions/copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 8: No frontmatter found in instructions/copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 9: Instruction file should end with .instructions.md: instructions/index.md�[0m
�[33m⚠️  WARNING: Item 9: No frontmatter found in instructions/index.md�[0m
�[32m✅ Item 10: al-spec.create.prompt.md validated�[0m
�[32m✅ Item 11: al-build.prompt.md validated�[0m
�[32m✅ Item 12: al-pr-prepare.prompt.md validated�[0m
�[32m✅ Item 13: al-context.create.prompt.md validated�[0m
�[32m✅ Item 14: al-memory.create.prompt.md validated�[0m
�[32m✅ Item 15: al-initialize.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 16: Instruction file should end with .instructions.md: skills/skill-api/SKILL.md�[0m
�[33m⚠️  WARNING: Item 16: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-api/SKILL.md�[0m
�[32m✅ Item 16: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 17: Instruction file should end with .instructions.md: skills/skill-copilot/SKILL.md�[0m
�[33m⚠️  WARNING: Item 17: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-copilot/SKILL.md�[0m
�[32m✅ Item 17: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 18: Instruction file should end with .instructions.md: skills/skill-debug/SKILL.md�[0m
�[33m⚠️  WARNING: Item 18: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-debug/SKILL.md�[0m
�[32m✅ Item 18: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 19: Instruction file should end with .instructions.md: skills/skill-performance/SKILL.md�[0m
�[33m⚠️  WARNING: Item 19: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-performance/SKILL.md�[0m
�[32m✅ Item 19: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 20: Instruction file should end with .instructions.md: skills/skill-events/SKILL.md�[0m
�[33m⚠️  WARNING: Item 20: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-events/SKILL.md�[0m
�[32m✅ Item 20: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 21: Instruction file should end with .instructions.md: skills/skill-permissions/SKILL.md�[0m
�[33m⚠️  WARNING: Item 21: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-permissions/SKILL.md�[0m
�[32m✅ Item 21: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 22: Instruction file should end with .instructions.md: skills/skill-testing/SKILL.md�[0m
�[33m⚠️  WARNING: Item 22: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-testing/SKILL.md�[0m
�[32m✅ Item 22: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 23: Instruction file should end with .instructions.md: skills/skill-migrate/SKILL.md�[0m
�[33m⚠️  WARNING: Item 23: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-migrate/SKILL.md�[0m
�[32m✅ Item 23: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 24: Instruction file should end with .instructions.md: skills/skill-pages/SKILL.md�[0m
�[33m⚠️  WARNING: Item 24: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-pages/SKILL.md�[0m
�[32m✅ Item 24: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 25: Instruction file should end with .instructions.md: skills/skill-translate/SKILL.md�[0m
�[33m⚠️  WARNING: Item 25: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-translate/SKILL.md�[0m
�[32m✅ Item 25: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 26: Instruction file should end with .instructions.md: skills/skill-estimation/SKILL.md�[0m
�[33m⚠️  WARNING: Item 26: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-estimation/SKILL.md�[0m
�[32m✅ Item 26: SKILL.md validated�[0m
�[32m✅ Item 27: al-architect.agent.md validated�[0m
�[32m✅ Item 28: al-developer.agent.md validated�[0m
�[32m✅ Item 29: al-conductor.agent.md validated�[0m
�[32m✅ Item 30: al-presales.agent.md validated�[0m
�[32m✅ Item 31: al-planning-subagent.agent.md validated�[0m
�[32m✅ Item 32: al-implement-subagent.agent.md validated�[0m
�[32m✅ Item 33: al-review-subagent.agent.md validated�[0m
�[32m✅ Item 34: al-triage.agent.md validated�[0m
�[32m✅ Item 35: dredd.agent.md validated�[0m
�[32m✅ Item 36: al-agent-builder.agent.md validated�[0m
�[33m⚠️  WARNING: Item 37: Prompt missing 'model' in frontmatter: prompts/al-agent.create.prompt.md�[0m
�[32m✅ Item 37: al-agent.create.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 38: Prompt missing 'model' in frontmatter: prompts/al-agent.task.prompt.md�[0m
�[32m✅ Item 38: al-agent.task.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 39: Prompt missing 'model' in frontmatter: prompts/al-agent.instructions.prompt.md�[0m
�[32m✅ Item 39: al-agent.instructions.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 40: Prompt missing 'model' in frontmatter: prompts/al-agent.test.prompt.md�[0m
�[32m✅ Item 40: al-agent.test.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 41: Instruction file should end with .instructions.md: skills/skill-agent-instructions/SKILL.md�[0m
�[33m⚠️  WARNING: Item 41: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-agent-instructions/SKILL.md�[0m
�[32m✅ Item 41: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 42: Instruction file should end with .instructions.md: skills/skill-agent-task-patterns/SKILL.md�[0m
�[33m⚠️  WARNING: Item 42: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-agent-task-patterns/SKILL.md�[0m
�[32m✅ Item 42: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 43: Instruction file should end with .instructions.md: skills/skill-contribution-assistant/SKILL.md�[0m
�[33m⚠️  WARNING: Item 43: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-contribution-assistant/SKILL.md�[0m
�[32m✅ Item 43: SKILL.md validated�[0m
�[32m✅ Item 44: al-agent-toolkit.instructions.md validated�[0m
�[36m
📊 Items by Kind:�[0m
�[34m   instruction: 24�[0m
�[34m   prompt: 10�[0m
�[34m   agent: 10�[0m
�[36m
🏷️  Validating File Naming Conventions...�[0m
�[33m⚠️  WARNING: Item 8: Filename should be lowercase with hyphens: copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 8: Filename should start with 'al-' prefix: copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 9: Filename should be lowercase with hyphens: index.md�[0m
�[33m⚠️  WARNING: Item 9: Filename should start with 'al-' prefix: index.md�[0m
�[33m⚠️  WARNING: Item 10: Filename should be lowercase with hyphens: al-spec.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 13: Filename should be lowercase with hyphens: al-context.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 14: Filename should be lowercase with hyphens: al-memory.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 16: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 16: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 17: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 17: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 18: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 18: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 19: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 19: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 20: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 20: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 21: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 21: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 22: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 22: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 23: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 23: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 24: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 24: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 25: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 25: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 26: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 26: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 35: Filename should start with 'al-' prefix: dredd.agent.md�[0m
�[33m⚠️  WARNING: Item 37: Filename should be lowercase with hyphens: al-agent.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 38: Filename should be lowercase with hyphens: al-agent.task.prompt.md�[0m
�[33m⚠️  WARNING: Item 39: Filename should be lowercase with hyphens: al-agent.instructions.prompt.md�[0m
�[33m⚠️  WARNING: Item 40: Filename should be lowercase with hyphens: al-agent.test.prompt.md�[0m
�[33m⚠️  WARNING: Item 41: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 41: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 42: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 42: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 43: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 43: Filename should start with 'al-' prefix: SKILL.md�[0m
�[32m✅ File naming conventions validated�[0m
�[36m
📖 Validating Documentation...�[0m
�[32m✅ Collection documentation exists: docs/al-development.md�[0m
�[33m⚠️  WARNING: Documentation missing recommended section: What's Included�[0m
�[36m
🔍 Validating Uniqueness...�[0m
�[32m✅ No duplicate paths found�[0m
�[36m
📂 Validating Directory Structure...�[0m
�[32m✅ Directory exists: instructions�[0m
�[32m✅ Directory exists: prompts�[0m
�[32m✅ Directory exists: agents�[0m
�[32m✅ Directory exists: collections�[0m
�[36m
══════════════════════════════════════════════════�[0m
�[36m📊 VALIDATION SUMMARY�[0m
�[36m══════════════════════════════════════════════════�[0m
�[32m
✅ Successes: 53�[0m
�[33m⚠️  Warnings:  77�[0m
�[31m❌ Errors:    0�[0m
�[33m
✅ Collection is valid but has some warnings to address.�[0m
�[36m══════════════════════════════════════════════════
�[0m

✅ Validation passed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Plugin Install Failing

2 participants