feat: add searchable Skills Library catalog#95
Open
Ziinc wants to merge 6 commits into
Open
Conversation
Adds a /skills page cataloging Agent Skills curated from Anthropic, OpenAI, and Matt Pocock's public repos, with client-side search and source/category filtering. Cards link out to the canonical GitHub source rather than rehosting content. - scripts/fetch-skills-catalog.mjs clones the curated repos, parses each SKILL.md's frontmatter, and writes src/data/skills.json - a weekly GitHub Action keeps the catalog fresh, mirroring the existing post-release-changelog automation - skills are also indexed into the sitewide FTS search
Each skill in the Skills Library now gets a static /skills/<source>/<slug> detail page with a split-pane file browser (folder tree left, file preview right), matching the desktop app's own FileBrowser UX. - fetch-skills-catalog.mjs now indexes each skill's file listing (path/size/binary flag + GitHub blob/raw URLs) alongside the SKILL.md metadata — never file contents, so nothing bloats the repo or the sitewide search index - a new skillsPlugin.js registers one static route per skill via Docusaurus's addRoute API, rendering SkillDetailPage with that skill's data - file contents are fetched client-side from GitHub's raw CDN only when a user opens a file, with syntax highlighting and a "View on GitHub" fallback for binary/oversized files - catalog cards on /skills now link to the in-site detail page instead of out to GitHub directly
Contributor
|
🚀 Web preview: https://preview-95.treq-9zy.pages.dev |
- Markdown files (SKILL.md, reference docs, etc.) now render through a remark → rehype-sanitize → HTML pipeline in a "Preview" tab (shown first); a "Code" tab shows the existing syntax-highlighted raw source. Sanitized since this is third-party content. - fetch-skills-catalog.mjs now reads each skill's LICENSE.txt (falling back to the repo-root LICENSE) and pattern-matches it to a short label — Apache-2.0 / MIT / Proprietary / Custom — instead of surfacing the raw "see LICENSE.txt" frontmatter pointer. - Below 768px the file browser swaps its sidebar tree for a dropdown (MobileFileSelect) so file choice still works on small screens.
.page was a flex item of Docusaurus's sticky-footer flex wrapper; a long unwrapped line in a fenced code block (or any nowrap content) forced its cross-axis stretch sizing to the content's width instead of the container's, blowing the whole page out to ~2x viewport width with no scrollbar. Pin it to width:100%/min-width:0 so code blocks scroll internally instead. Also strip SKILL.md's YAML frontmatter (via remark-frontmatter) from the rendered Preview tab — it was showing up as a garbled leading paragraph. Verified by intercepting the raw-content fetch with real SKILL.md text at a 375px viewport and diffing document.body.scrollWidth before/after.
…side, proprietary handling Sources: adds Vercel (agent-browser), Microsoft (azure-skills), Superpowers (obra), Caveman (JuliusBrussee), and Prisma — 161 skills across 8 providers. Prisma keeps skills at the repo root, so skillsRoot now supports ''. Nested skills: a skill folder that contains sub-skill folders (each with their own SKILL.md) no longer slurps the child files into the parent's manifest. Proprietary licenses: skills detected as Proprietary (Anthropic docx/pdf/pptx/ xlsx) are still listed, but their description and file manifest are withheld — the index card shows a notice and the detail page shows a callout, both keeping the GitHub link. Keeps their contents out of the repo and the search index. Provider filter: the single-select source chips become a dropdown multi-select (checkbox list) keyed on the GitHub org. Source-repos aside: fetches each repo's GitHub star count (live in CI via GITHUB_TOKEN, preserved from prior data when the API is unreachable) and renders a right-hand column ranking providers by stars; clicking one filters the catalog. Page widened to fit the extra column; aside stacks above on mobile. Also strips SKILL.md frontmatter from the markdown preview.
mcp-builder's SKILL.md renders multiple h1 headings, so
getByRole('heading', {level:1}) matched 3 elements and toBeVisible() failed
under Playwright strict mode. Assert on .first() — any rendered h1 proves the
Preview tab rendered markdown rather than raw source.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a /skills page cataloging Agent Skills curated from Anthropic,
OpenAI, and Matt Pocock's public repos, with client-side search and
source/category filtering. Cards link out to the canonical GitHub
source rather than rehosting content.
each SKILL.md's frontmatter, and writes src/data/skills.json
existing post-release-changelog automation