
majiayu000/claude-skill-registry-core
Developer toolsSource pipeline for Claude Skills Registry: discovery, archive validation, search indexes, and static skill guides
Overview
logic + index + site. https://github.com/majiayu000/claude-skill-registry https://github.com/majiayu000/claude-skill-registry-data core workflows are canonical; main is a publish mirror. A searchable Claude Code skills registry, aggregated from GitHub and community sources. Search skill descriptions, inspect source links and registry signals, and find installation guidance. This core repository maintains the discovery, archive validation, search-index, and site publishing pipeline. The same skill copied into multiple repositories counts once. Independent skills use a normalized name and an exact Markdown-body fingerprint; sources without a fingerprint count separately by install path and branch. Read the choose and install one skill guide for source selection, licenses and troubleshooting. 1. - Fast browser-based search 2. - Install into Claude Code, Codex, Cursor and other agents 3.
README
Claude Skills Registry
Core repo: logic + index + site.
Main repo (merged artifact): https://github.com/majiayu000/claude-skill-registry
Data repo (skills archive): https://github.com/majiayu000/claude-skill-registry-data
Authority: core workflows are canonical; main is a publish mirror.
A searchable Claude Code skills registry, aggregated from GitHub and community sources.
What is this?
Search skill descriptions, inspect source links and registry signals, and find installation guidance. This core repository maintains the discovery, archive validation, search-index, and site publishing pipeline.
The same skill copied into multiple repositories counts once. Independent skills use a normalized name and an exact Markdown-body fingerprint; sources without a fingerprint count separately by install path and branch.
Read the choose and install one skill guide for source selection, licenses and troubleshooting.
Three ways to use:
- Web Search - Fast browser-based search
- skills CLI - Install into Claude Code, Codex, Cursor and other agents
- API - Direct JSON access
Repo layout note: core owns workflows/pipeline logic, data stores skills/**, and main is generated from core + data. See SCHEME2_SPLIT.md.
Highlights
- Skill Index - Independent skills (see badge for live count), with matching source copies linked in each detail view
- Rich Categories - Development, Testing, DevOps, Design, and more
- Daily Updates - Automated crawling/validation by core scheduled workflows
- Quality Indexed - Metadata, descriptions, and star counts
- Lightweight Search - Gzip-compressed index for fast client-side search
Operational Ownership
- Core: source of truth for workflows, crawling, scanning, and index/site generation
- Data: canonical archived skill tree (
skills/**) - Main: publish artifact for merged browsing/compatibility consumers
- Publish contract: core dispatches main publish with pinned
core_sha+data_sha - Non-goal for main: main does not initiate canonical syncs, archive updates, or index generation
Resumable full discovery
The Sunday schedule starts a full discovery cycle. It snapshots the repository inventory and processes it in batches with a 100-minute discovery budget (120-minute runner timeout). Daily schedules resume an unfinished cycle before returning to ordinary bounded daily discovery. A new Sunday does not reset an unfinished inventory. GitHub search limits still apply; a cycle means all repositories in that snapshot, not every skill on GitHub.
sources/learning/full-discovery-progress.json records the inventory, the next repository,
and the cycle’s start/completion timestamps. Budget exhaustion leaves an unfinished repository
at the cursor; its already archived files are skipped on the next batch. Each batch still passes
the full archive security checks. The cursor is committed to core only after the data repository
push succeeds. A failed batch therefore retries from the last committed cursor rather than
skipping data that never reached the archive. Network errors and incomplete search responses
fail the batch; repositories confirmed unavailable are recorded in the candidate report.
The Actions summary distinguishes a successful batch from a completed cycle. The weekly alert
stays open until the entire cycle finishes and the publish job succeeds. To retry a failed batch,
start a new workflow dispatch with full_scan=true; GitHub’s Re-run remains reserved for
replaying an existing immutable publish handoff. skip_discovery=true explicitly bypasses the
cycle without advancing its cursor or closing its alert.
Release, Proof, And Support
- Release status: daily catalog refreshes are represented by live generated metadata, not GitHub Releases. GitHub Releases are reserved for intentional pipeline/API milestones.
- Live proof: use the Web Search UI, the badges above, and
stats.jsonto verify current generated data. - Routing: pipeline bugs, source intake, registry schema, Pages/search, and publish orchestration belong in this core repo. Archived skill body issues belong in
claude-skill-registry-data. Generated mirror questions belong inclaude-skill-registryonly when the artifact itself is wrong.
curl https://majiayu000.github.io/claude-skill-registry/stats.json
curl https://majiayu000.github.io/claude-skill-registry/search-index-lite.json
Quick Start
Option 1: Web Search
For a complete first installation, follow the code review setup guide. It covers skill selection, project-local installation, verification, a first review prompt, and removal.
Visit https://majiayu000.github.io/claude-skill-registry/
For clone/update tips on large repositories, see docs/FAST_CLONE.md.
Option 2: CLI
Skill guides and search results show a ready-to-copy command for supported source paths, or a source link for manual installation. The skills CLI asks which coding agents to install into:
npx skills add https://github.com/anthropics/skills/tree/main/skills/docx
# Or install globally for one agent
npx skills add https://github.com/anthropics/skills/tree/main/skills/docx -g -a claude-code # ~/.claude/skills/
npx skills add https://github.com/anthropics/skills/tree/main/skills/docx -g -a codex # ~/.agents/skills/
npx skills add https://github.com/anthropics/skills/tree/main/skills/docx -g -a cursor # ~/.cursor/skills/
The earlier sk CLI (claude-skill-manager)
is no longer developed.
For skill authors
Each skill guide includes a “Listed on Claude Skills Registry” badge snippet that links readers to the registry home. Copy it from the “For the skill author” section of your skill’s guide page.
Option 3: Direct API
The public JSON surface is versioned in docs/artifact-api-contract.md. Use that contract when integrating with pointer files, manifests, shards, gzip variants, and deprecation markers.
# Startup search index and bounded full-search shards
curl https://majiayu000.github.io/claude-skill-registry/search-index.json
curl https://majiayu000.github.io/claude-skill-registry/search-index-manifest.json
curl https://majiayu000.github.io/claude-skill-registry/search-shards/part-000.json
# Deduplicated catalog index with quality/security/install signals
curl https://majiayu000.github.io/claude-skill-registry/search-index-lite.json
curl https://majiayu000.github.io/claude-skill-registry/quality-index.json
curl https://majiayu000.github.io/claude-skill-registry/quality-index-manifest.json
curl https://majiayu000.github.io/claude-skill-registry/quality-shards/part-000.json
curl https://majiayu000.github.io/claude-skill-registry/security-index.json
curl https://majiayu000.github.io/claude-skill-registry/security-index-manifest.json
curl https://majiayu000.github.io/claude-skill-registry/security-shards/part-000.json
curl https://majiayu000.github.io/claude-skill-registry/ranking-index.json
curl https://majiayu000.github.io/claude-skill-registry/ranking-index-manifest.json
curl https://majiayu000.github.io/claude-skill-registry/ranking-shards/part-000.json
# Lightweight registry summary (counts only)
curl https://raw.githubusercontent.com/majiayu000/claude-skill-registry-core/main/registry_summary.json
# Full registry manifest and shards (merged publish artifact)
curl https://raw.githubusercontent.com/majiayu000/claude-skill-registry/main/registry-manifest.json
curl https://raw.githubusercontent.com/majiayu000/claude-skill-registry/main/registry-shards/00.json
# Compatibility registry pointer (merged publish artifact)
curl https://raw.githubusercontent.com/majiayu000/claude-skill-registry/main/registry.json
# Category manifest and bounded parts
curl https://majiayu000.github.io/claude-skill-registry/categories/index.json
curl https://majiayu000.github.io/claude-skill-registry/categories/development/manifest.json
curl https://majiayu000.github.io/claude-skill-registry/categories/development/part-000.json
# Legacy category pointer
curl https://majiayu000.github.io/claude-skill-registry/categories/development.json
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Layer 1: Data Collection │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ GitHub Crawl │→ │ Download │→ │ Security │ │
│ │ (discover) │ │ (sync) │ │ (scanner) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Layer 2: Index Generation │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ search-index │ │ categories/ │ │ featured.json │ │
│ │ .json │ │ *.json │ │ (featured set) │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Layer 3: Consumption │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ Web UI │ │ sk CLI │ │ API │ │
│ │ (GitHub Pages) │ │ (Go) │ │ (JSON) │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Search Index Schema
// Lightweight index for fast search
interface SearchIndex {
v: string; // Version (date)
t: number; // Indexed skill count (always s.length)
s: SkillMini[]; // Skills array
}
interface SkillMini {
n: string; // name
d: string; // description (truncated 80 chars)
c: string; // category code (dev, ops, sec, etc.)
g: string[]; // tags (max 5)
r: number; // stars
i: string; // install path
}
Directory Structure (Core)
claude-skill-registry-core/
├── registry.json # Lightweight core registry metadata
├── docs/ # GitHub Pages
│ ├── index.html # Web search UI
│ ├── search-index-lite.json
│ ├── search-index.json # Compatibility pointer to bounded shards
│ ├── search-index-manifest.json
│ ├── search-shards/ # Bounded full search index parts
│ ├── featured.json # Featured skills snapshot
│ └── categories/ # Category manifests and bounded parts
├── sources/ # Data sources
│ ├── anthropic.json
│ ├── community.json
│ └── skillsmp.json
├── scripts/ # Build scripts
│ ├── build_search_index.py
│ ├── discover_by_topic.py
│ ├── security_scanner.py
│ └── ...
└── (no committed skills/) # skills/** lives in registry-data; mounted in CI when needed
The merged claude-skill-registry publish artifact additionally contains
registry-manifest.json and registry-shards/**.
Categories
Canonical category slugs, short codes, governance status, and heuristic keywords
live in taxonomy/categories.yaml. Pipeline scripts read that file instead of
keeping their own category lists. Legacy category names are diagnostic inputs
only; they are routed to review and are not accepted as publish categories.
The canonical category proposal is documented in
docs/plan/canonical-taxonomy-proposal.md, and the current target count report
is docs/plan/canonical-category-target-counts.json.
Validate the taxonomy itself with python scripts/check_taxonomy_governance.py.
To validate publish output against canonical categories, pass repeated
--publish-category values. To review category quality across the
archive before moving anything, run
python scripts/audit_category_quality.py --skills-dir skills.
The default audit uses metadata and paths for a fast full-archive pass; add
--include-frontmatter when checking frontmatter/category drift.
The audit also reports non-standard nested skill paths such as
category/category/skill/SKILL.md.
For those layout issues, use
python scripts/normalize_skill_depth.py --skills-dir skills --json to review
the exact move plan before applying it.
For semantic reclassification, generate a review-only migration plan with
python scripts/plan_category_migration.py --skills-dir skills --output category-migration-plan.json.
The plan records action, confidence, source categories, target category, keyword
signals, and reason for every proposed change; it does not move files.
For a bounded second-pass model review, set MIMO_API_KEY and run
python scripts/review_category_plan_with_llm.py --plan category-migration-plan.json --output category-llm-review.json --checkpoint-jsonl category-llm-review.checkpoint.jsonl --resume.
The default endpoint is https://token-plan-sgp.xiaomimimo.com/v1 with
mimo-v2.6-pro. The default request uses --thinking disabled and
--max-completion-tokens 1024 so the model output budget is reserved for the
required JSON; raise the token value for larger reviews, or pass
--thinking default when using a non-MiMo endpoint that does not accept the
provider-specific thinking field. The report remains review-only: it records
model category, confidence, decision, parse status, token/thinking policy, and
evidence without modifying the archive.
The checkpoint file is append-only JSONL, so interrupted long reviews can resume
without re-calling the model for completed candidates.
Category counts are published in categories/index.json; full category payloads
are available through categories//manifest.json and bounded
part-*.json files. The legacy categories/.json URL is now a small
compatibility pointer. The publish path runs
python scripts/check_category_artifacts.py --categories-dir docs/categories so
legacy category files cannot silently grow back into large full-payload JSON.
Common category codes include:
| Category | Code | Description |
|---|---|---|
development |
dev |
Development tools, frameworks |
data |
dat |
Data processing, analysis |
design |
des |
UI/UX design, frontend |
testing |
tst |
Testing, QA, automation |
devops |
ops |
DevOps, CI/CD, infrastructure |
documents |
doc |
Document creation (docx, pdf) |
productivity |
pro |
Productivity and automation |
product |
prd |
Product management |
security |
sec |
Security, auditing |
marketing |
mkt |
Marketing, content, SEO |
Roadmap
Current Status
- [x] Index count tracked by the badge (core
registry.json) - [x] Archive size: tracked by badge (raw
SKILL.mdcount fromstats.json) - [x] Daily auto-update via GitHub Actions
- [x] Security scanning for all skills
- [x] sk CLI for installation
In Progress
- [x] Lightweight search index (gzip-compressed; see stats.json)
- [x] Web search UI (GitHub Pages)
- [x] GitHub Pages deployment (https://majiayu000.github.io/claude-skill-registry/)
Planned
- [ ] AI semantic search (vector similarity)
- [ ] Skill recommendations (based on usage)
- [ ] Version tracking for skills
- [ ] Skill quality scoring
- [ ] API rate limiting and caching
Contributing
Add Your Skill
Option 1: Submit via Issue
- Open an issue
- Use the “Add Skill” template
- Provide: repo URL, name, description, category
Option 2: Submit via PR
- Fork
majiayu000/claude-skill-registry-core - Add your skill to
sources/community.json:
{
"name": "your-skill-name",
"repo": "your-username/your-repo",
"path": "optional/path/to/skill",
"description": "What your skill does",
"category": "development",
"tags": ["testing", "automation"]
}
- Submit a PR to
majiayu000/claude-skill-registry-core(notclaude-skill-registry, which is a generated publish artifact)
Validate a submitted skill locally
Before opening an issue or PR, confirm that the source repository is public and
that its SKILL.md starts with YAML frontmatter containing non-empty name and
description values:
---
name: your-skill-name
description: A concise description of what the skill does.
---
Remove secrets, tokens, and private endpoints from the skill and any bundled files. From a core checkout with the repository requirements installed, run:
# If the PR updates sources/community.json, validate the source entry
python scripts/validate_sources.py community.json
# Scan the checked-out skill directory, including bundled files
python scripts/security_scanner.py /path/to/skill-directory
These are the normal community-submission checks. The
python scripts/rebuild_registry.py --help and
python scripts/build_search_index.py --help interfaces are archive-wide
maintainer references; rebuilding the registry or indexes is not a normal
submission prerequisite.
Report Issues
We welcome feedback! Please open an issue for:
- Bugs - Search not working, incorrect data
- Feature requests - New categories, better search
- UX improvements - Web UI, CLI enhancements
- Data quality - Duplicate skills, wrong categories
Contribute Code
# Clone the core repo (authoritative pipeline repo)
git clone --filter=blob:none --sparse https://github.com/majiayu000/claude-skill-registry-core.git
cd claude-skill-registry-core
# Pull only what you need (add more paths later as needed)
git sparse-checkout set --cone docs scripts sources schema
# Install dependencies
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
# Build search index locally
python scripts/build_search_index.py --registry registry.json --output docs
# Test web UI
cd docs && python -m http.server 8000
# Visit http://localhost:8000
See docs/FAST_CLONE.md for more options (existing clones, getting full checkout, Windows notes).
Related Projects
| Project | Description |
|---|---|
| claude-skill-manager | Earlier sk install CLI (no longer developed) |
| anthropics/skills | Official Anthropic skills |
| SkillsMP | Web-based skill marketplace |
| awesome-claude-skills | Curated skill list |
License
MIT License applies to the registry code/pipeline only - see LICENSE for details.
Third-Party License & Attribution
Third-party skills under skills/** keep their original licenses and copyright ownership.
- Repository-level MIT does not relicense third-party skill content.
- Every imported skill metadata file should include:
authorsource_urllicensecopyrightpermission_notedistribution(compatibleorrestricted)
restrictedentries are not MIT-compatible by default and require explicit upstream permission before redistribution/use.- Notices are generated by compliance checks into
THIRD_PARTY_NOTICES.md. - Metadata compliance runs in advisory mode by default to avoid blocking ingestion; strict blocking can be enabled when needed.
Made with ❤️ for the Claude Code community
Author requests
Third-party content retains its original ownership and license. Authors can request removal or attribution corrections. Public skill guides include metadata and source links; they do not republish instruction bodies.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add majiayu000/claude-skill-registry-core