Without a deterministic tiebreaker on skill ID, offset-based pagination
through large groups of skills with identical star counts produced
non-deterministic ordering. This caused ~1,516 skills to be missed
during Meilisearch sync (192,311 sent but only 190,795 unique indexed).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sitemap was generating /en/* URLs which redirect to unprefixed paths
due to localePrefix: 'as-needed', causing Google Search Console
"Page with redirect" warnings and wasting crawl budget.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Lower exhaustion threshold from <10 to <2 (stop wasting remaining tokens)
- Refresh ALL tokens after wait instead of only one
- Fix token/Octokit mismatch by returning token from getBestInstance()
- Add budget checking (20% reserve) to deep-scan, discover-repos, awesome-lists,
and full-enhanced commands
- Add rate limit error handling with retry in DeepScanCrawler
- Sync translation and query changes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The upsert query was missing skillPath and branch in onConflictDoUpdate,
so when a repo was restructured (e.g., skills moved to category
subdirectories), the DB retained the old path forever. Also updated
skill-indexer to not skip re-indexing when only the path changed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When skillPath from the registry had a prefix (e.g., "skills/foo"), fallback
paths were incorrectly generated with duplicate prefixes like
".claude/skills/skills/foo/SKILL.md". Now extracts the leaf skill name to
build correct fallback paths. Also adds raw.githubusercontent.com as a
universal fallback for 404s, improves error messages with actual paths tried,
and skips API results that lack the main instruction file.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Generate sitemap.xml with all skill URLs for search engine discovery
- Return empty sitemap on mirror servers to prevent duplicate indexing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- fetchWithCsrf now awaits token initialization before sending requests
- Sync crawler and worker updates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Open-source marketplace for AI Agent skills.
Features:
- Next.js 15 web app with i18n (en/fa)
- CLI tool for skill installation (npx skillhub)
- GitHub crawler/indexer with multi-strategy discovery
- Security scanning for all indexed skills
- Self-hostable with Docker
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>