Skip to content

Conversation

@itsdevcoffee
Copy link
Owner

Summary

Critical compatibility fix for claude-plugins-official (default Claude Code marketplace) plus complete stats coverage for all 12 marketplaces.

Critical Fixes

Git URL Source Parsing ✅

Problem: claude-plugins-official uses 3 source formats, one wasn't supported:

  • "./plugins/name" (string) ✅ Worked
  • "./external_plugins/name" (string) ✅ Worked
  • {"source": "url", "url": "https://..."} (object) ❌ Failed

Impact: ~20% of claude-plugins-official plugins failed to parse (Atlassian, Figma, Vercel, Notion, Sentry, Firebase, etc.)

Solution:

  • Added custom UnmarshalJSON to Plugin struct
  • Added custom UnmarshalJSON to MarketplacePlugin struct
  • Handles source as string OR object
  • Extracts Git URL from object format
  • 5 new test cases covering all patterns

Local Marketplace Loading ✅

Problem: Marketplace browser showed "(? plugins)" for installed marketplaces when cache empty

Solution: Load plugin count from local installation when cache unavailable

Updated Moved Repos

Two marketplaces relocated:

  • claude-code-plugins-plus: jeremylongshore/claude-code-pluginsjeremylongshore/claude-code-plugins-plus-skills (845 ⭐)
  • claude-code-marketplace: ananddtyagi/claude-code-marketplaceananddtyagi/cc-marketplace (577 ⭐)

Fresh Marketplace Stats

Updated all 12 marketplaces (snapshot: 2025-12-31):

  • claude-code: 50,055 ⭐ (+245)
  • anthropic-agent-skills: 30,756 ⭐ (+819)
  • wshobson-agents: 23,995 ⭐ (+100)
  • claude-mem: 9,729 ⭐ (+144)
  • claude-plugins-official: 1,158 ⭐ (NEW!)
  • claude-code-plugins-plus: 845 ⭐ (NEW!)
  • claude-code-marketplace: 577 ⭐ (NEW!)

All timestamps updated:

  • No more "🕒 unknown" display
  • Relative times (12h ago, 1d ago, etc.) work correctly

Developer Tooling

New script: scripts/update-marketplace-stats.sh

  • Fetches fresh GitHub stats for all marketplaces
  • Outputs in Go code format for easy copy-paste
  • Rate-limited, handles errors
  • Streamlines future stat updates

Testing

  • All automated tests pass
  • go vet clean
  • gofmt clean
  • Binary builds successfully
  • Manual testing: claude-plugins-official shows (40 plugins) with stats
  • All 12 marketplaces display correctly with timestamps

Impact

  • ✅ Default Claude Code marketplace (claude-plugins-official) now fully supported
  • ✅ Complete stats coverage (12/12 marketplaces)
  • ✅ No more "unknown" timestamps
  • ✅ Moved repos updated with fresh data
  • ✅ Developer workflow improved

Fix critical parsing bug where plugins with Git URL source objects
(Atlassian, Figma, Vercel, Notion, Sentry, etc.) failed to parse
from claude-plugins-official marketplace.

Problem:
- claude-plugins-official uses 3 source patterns:
  1. "./plugins/name" (string) - internal plugins
  2. "./external_plugins/name" (string) - external plugins
  3. {"source": "url", "url": "https://..."} (object) - Git repos
- Plugin.Source was string-only, causing JSON unmarshal errors
- ~20% of claude-plugins-official plugins use Git URL format

Solution:
- Add custom UnmarshalJSON to Plugin struct
- Handle source as either string OR object
- Extract URL from object format
- Maintain backward compatibility with string format

Implementation:
- Use json.RawMessage to defer source parsing
- Try string unmarshal first (most common case)
- Fall back to object unmarshal for Git URLs
- Extract URL field from object structure

Testing:
- Added 5 test cases covering all source patterns
- Verified internal plugins path (./plugins/)
- Verified external plugins path (./external_plugins/)
- Verified Git URL object format
- Verified Git URL with extra fields (ref, etc.)
- Coverage: 100% → 96.6% (new code fully tested)

Impact:
- claude-plugins-official now fully parseable (all 49 plugins)
- Git-hosted plugins (Atlassian, Figma, Vercel, etc.) now work
- Critical for default Claude Code marketplace compatibility

Fixes issue where claude-plugins-official showed "? plugins"
instead of "(49 plugins)" due to parsing failures.
Update all static GitHub stats with fresh data from 2025-12-31
including LastPushedAt timestamps to fix "unknown" display issues.

Updated Stats:
- claude-code: 50,055 stars (+245) - pushed 11d ago
- claude-plugins-official: 1,158 stars (NEW!) - pushed 5d ago
- anthropic-agent-skills: 30,756 stars (+819) - pushed 11d ago
- wshobson-agents: 23,995 stars (+100) - pushed 0d ago (today!)
- claude-mem: 9,729 stars (+144) - pushed 0d ago
- mag-claude-plugins: 192 stars (+2) - pushed 1d ago
- dev-gom-plugins: 41 stars (same) - pushed 29d ago
- feedmob-claude-plugins: 2 stars (same) - pushed 9d ago
- docker-plugins: 11 stars (same) - pushed 12d ago
- ccplugins-marketplace: 10 stars (same) - pushed 78d ago

Notable Changes:
- claude-plugins-official now has stats (was missing)
- All timestamps now populated (fixes "🕒 unknown" display)
- Stats refreshed from 2025-12-30 → 2025-12-31
- Added mustParseTime() helper for timestamp parsing

Two repos moved/unavailable:
- jeremylongshore/claude-code-plugins (moved)
- ananddtyagi/claude-code-marketplace (moved)

Snapshot date: 2025-12-31 03:00 UTC
Update repo URLs for moved marketplaces and add fresh stats.
Create developer script for easy stat updates in the future.

Repo URL Updates:
- claude-code-plugins-plus:
  OLD: jeremylongshore/claude-code-plugins (moved)
  NEW: jeremylongshore/claude-code-plugins-plus-skills
  Stats: 845 ⭐, 96 🍴, pushed 3h ago

- claude-code-marketplace:
  OLD: ananddtyagi/claude-code-marketplace (moved)
  NEW: ananddtyagi/cc-marketplace
  Stats: 577 ⭐, 49 🍴, pushed 17d ago

New Developer Script:
- scripts/update-marketplace-stats.sh
- Fetches fresh GitHub stats for all 12 marketplaces
- Outputs stats in Go code format for easy copy-paste
- Includes rate limiting (1s delay between requests)
- Shows errors for moved/unavailable repos
- Usage instructions included

Now ALL 12 marketplaces have stats with timestamps!

Benefits:
- Complete marketplace stats coverage (12/12)
- No more "unknown" timestamps
- Easy stat updates for future releases
- Developer workflow documented
@itsdevcoffee itsdevcoffee merged commit ca72441 into main Dec 31, 2025
3 of 4 checks passed
@itsdevcoffee itsdevcoffee deleted the feature/fix-git-url-source-parsing branch December 31, 2025 15:26
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.

2 participants