There are hundreds of AI agent skills scattered across GitHub, written for six different tools, with no way to tell the maintained ones from the abandoned forks. SkillDeck reads all of them, removes the duplicates, ranks what's left, and hands you the one skill worth installing β with the exact command for whatever tool you use.
Tip
What is a SKILL? A skill file is a reusable instruction package β a set of instructions, knowledge, and workflows that gives an AI agent a specific capability. In other words, it tells an AI agent how to perform a specific task consistently. The goal is consistency, reusability, and avoiding repeated prompts.
Every agent framework can learn new skills now β Claude Code, Antigravity, VS Code Copilot, Gemini CLI, and whatever ships next. That part was easy.
The hard part: hundreds of skills, scattered across GitHub, in six incompatible formats, with no way to tell a maintained one from an abandoned fork. SkillDeck solves that once, centrally β deduplicated, ranked by provenance, verified by a human β instead of making every developer solve it again in every repo they touch.
We divide the codebase into a clean separation of concerns, ensuring that the production deployment remains lightweight, secure, and fast:
Tip
Looking for a different aesthetic? Click the button below to toggle the high-tech glossy style:
-
π½οΈ The Dining Room (Vercel Frontend): The user-facing Astro website is hosted on Vercel. It is built to be extremely light and performant. There is no runtime database, and no resource-heavy Python or LLM pipelines run in production. Users simply "eat the soup" by browsing pre-built, static skill pages and search indices.
-
π³ The Kitchen (Local Pipeline): All heavy lifting β ingesting raw skills, computing MinHash signatures for deduplication, running capability clustering via an agent, generating card content, and human curation β happens in the local development environment (the "Kitchen").
-
π¦ The Pantry (GitHub): The final, curated, and promoted skills are stored as static JSON files under
data/. The pipeline now writes oneskill-<source-id>.jsonfile per source (e.g.,skill-anthropic-official.json,skill-google-official.json) rather than a single monolithicskills.json, making diffs clean and targeted.data/kb.jsonis the final output read by the Vercel frontend. When changes are pushed to GitHub, Vercel pulls this data to compile the static pages.
To achieve this goal, SkillDeck implements a robust, multi-stage offline data pipeline called the Kitchen. Headquartered in the kitchen/ module and controlled via cli.py, the pipeline processes raw metadata files and refines them into a polished database.
Tip
Looking for a different aesthetic? Click the button below to toggle the high-tech glossy style:
Click Here to Expand: Detailed Pipeline Info π½
- Ingestion: The pipeline fetches raw
SKILL.mdfiles and associated metadata from various sources (GitHub orgs, partner lists, and user registries). A robust GitHub client (utils.py) handles ETag-based disk caching, rate-limiting, and exponential-backoff retries so unchanged blobs are never re-fetched. - Canonicalization: Aggregator references are resolved to their true origin repositories, establishing clear ownership and source links.
- Per-source file storage: Skills are now written to individual
data/skill-<source-id>.jsonfiles (one per source), replacing the old monolithicdata/skills.json. This makes Git diffs precise and enables parallel updates from different sources.
- Using MinHash algorithms and Jaccard similarity thresholds, the pipeline identifies near-duplicate skills. This prevents redundant packages or exact forks from cluttering the registry.
- Skills are grouped into logical capabilities (e.g., Documents, Cloud Ops, Data Analysis, Frontend, Testing, Planning, Agent Building) by an agent, not a downloaded model.
python -m kitchen cluster-preparewrites the skills needing a capability to a JSON file; the agent running the/skilldeck-ingestcommand reads it, decides each capability, andpython -m kitchen cluster-applywrites the result back. No embedding model, no network call beyond GitHub.
- Within each cluster, skills are ranked using a scoring system based on their provenance (Official vs. Partner vs. Community) and metadata depth.
- The same agent-driven pattern writes structured, clean "Explainer Cards":
python -m kitchen cards-preparewrites the skills needing a card, the agent writes the copy, andpython -m kitchen cards-applyvalidates and caches it (noLLM_API_KEY, no scripted API call). Each card synthesizes complex skill metadata into a readable structure:- Title: Concise name of the skill.
- What it does: Standardized description of capabilities.
- Try saying: Sample prompts or user commands to invoke the skill.
AI-generated cards are only the starting point. To guarantee the highest standards of safety, accuracy, and utility, SkillDeck integrates a Human-in-the-Loop (HITL) Curation System coded in review.py.
Review Dashboard: live stats (123 skills ingested, 25 promoted to Core), multi-axis filters, and reviewer identity β all in light mode.
[Ingested Skills] ββ> [Agent Writes Cards] ββ> [Review Queue] ββ> [Human Verifier] ββ> [Core Database]
β
ββββ [Promote / Edit Card / Reject]
Click Here to Expand: Detailed Info on Human-Verified Curation π½
- Ingested skills enter the system as
"shell"tier entries.
-
Maintainers can use either the CLI or the new Web Review Portal:
Option A β CLI review:
python -m kitchen review <skill_id>
The interactive CLI displays the skill's origin, license, metadata, and frontmatter, renders the agent-written explainer card, and offers options to promote, edit, reject, or skip.
Option B β Web Review Portal:
python -m kitchen review --web
Launches a local HTTP server at http://127.0.0.1:8000/ and opens the SkillDeck Curation & Review Portal (audit/audit.html) in your browser. The portal exposes a rich visual interface with:
- Full skill list with tier/provenance badges and search/filter controls
- Inline explainer card editor (title, what-it-does, try-saying)
- One-click promote / reject controls with stamped audit trail
- Live re-emit of
data/kb.jsonon every save - Dark/light theme toggle, localhost-only security guard
Skill list: each card shows its ID, tier badge (Shell/Core), provenance (Official/Community), ecosystem, and frontmatter description.
- Promoting a skill upgrades it to
"core"and marks it with the verifier's Git username, ISO timestamp, and upstream commit SHA. Rejected skills are cataloged with reasons and excluded from publication.
Note
The web portal is served by a built-in Python http.server and is intentionally localhost-only β it refuses to render on any non-local hostname. It is never deployed to Vercel.
The pipeline now uses a distributed, per-source file layout under data/ instead of a single skills.json:
| File | Description |
|---|---|
data/skill-anthropic-official.json |
Skills from Anthropic's official repositories |
data/skill-google-official.json |
Skills from Google's official repositories |
data/skill-vercel-official.json |
Skills from Vercel's official repositories |
data/kb.json |
Final compiled knowledge base (read by the Vercel frontend) |
Key properties of this layout:
- Atomic writes β every file is written via a temp-then-rename (
atomic_write_json) to prevent partial reads. - Idempotent ingest β unchanged blobs (matched by
blob_sha) are skipped, preserving reviewed/promoted metadata across runs. - Auto-cleanup β obsolete source files are automatically deleted when a source is removed from
sources.json. - Backward-compatible β a legacy
skills.json(if it exists) is read and migrated automatically, then deleted.
The front-end website is built using Astro v7 (within site/) and outputs static web pages optimized for visual excellence, performance, and SEO.
Note
Vercel Integration: SkillDeck is pre-configured via vercel.json for production builds on Vercel. A deployment pipeline is coming soon, publishing the verified skill deck directly to the Vercel web app!
Ensure you have Python 3.11+ and Node.js 18+ installed on your machine.
We provide automated scripts to configure your environment and launch the services:
-
Setup dependencies and build:
On Windows:
.\scripts\win\dev-setup.ps1On Linux/macOS:
./scripts/linux/dev-setup.sh
(See scripts: dev-setup.ps1 / dev-setup.sh)
-
Run local development server:
On Windows:
.\scripts\win\dev-run.ps1On Linux/macOS:
./scripts/linux/dev-run.sh
(See scripts: dev-run.ps1 / dev-run.sh)
The easiest way to run everything β including capability clustering and
card writing, which are done by the agent itself, not a downloaded model or
an LLM API call β is the /skilldeck-ingest command in a Claude Code
session with GITHUB_TOKEN set. See
.claude/commands/skilldeck-ingest.md.
You can also interact with the Python kitchen pipeline stage by stage:
Click Here to Expand: Detailed Info on Python-based Kitchen Pipeline π½
-
Run the scriptable stages (ingest β canonicalize β dedup β rank):
python -m kitchen pipeline
-
Capability clustering (agent-driven):
python -m kitchen cluster-prepare # writes .kitchen_cache/cluster_input.json # ... an agent reads it and writes .kitchen_cache/cluster_output.json ... python -m kitchen cluster-apply
-
Card writing (agent-driven):
python -m kitchen cards-prepare # writes .kitchen_cache/cards_input.json # ... an agent reads it and writes .kitchen_cache/cards_output.json ... python -m kitchen cards-apply
-
Skill Summaries (agent-driven):
python -m kitchen summary-prepare # writes .kitchen_cache/summary_input.json # ... an agent reads it and writes .kitchen_cache/summary_output.json ... python -m kitchen summary-apply
-
Review the queue of skills (CLI):
python -m kitchen review --queue
-
Verify a specific skill (CLI):
python -m kitchen review <skill_id>
-
Launch the Web Review Portal:
python -m kitchen review --web # Opens http://127.0.0.1:8000/ in your browser -
Emit frontend database:
python -m kitchen emit
-
Check upstream freshness for core skills:
python -m kitchen freshness
python -m pytest kitchen/tests/Tests cover the full pipeline, per-source DB split/merge/cleanup (test_utils_db.py), CLI argument routing (test_cli.py), and all stage modules. No network calls are made β the GitHub client is mocked throughout.
The SkillDeck project is open-source and licensed under the Apache License 2.0 β Copyright Β© 2026 Kunal Suri (@kunalsuri) (CEA LIST).
Warranty & Liability Notice: This software is provided under the Apache License 2.0 on an "AS IS" basis, without warranties or conditions of any kind, either express or implied. To the extent permitted by the license and applicable law, the authors and contributors disclaim warranties and limit liability. Please refer to the LICENSE file for the complete terms, including Sections 7 (Disclaimer of Warranty) and 8 (Limitation of Liability). See the LICENSE file for the full license text.





