Publish Skills documentation with VitePress and Cloudflare Pages (#143)
Publish the Skills extension as a browsable VitePress site on Cloudflare Pages, using the same documentation theme as ext-tasks and reusing the existing source documents. - Follow the Tasks site's structure: a substantive overview at `/` and a separate stable specification page. The small `index.md` uses native VitePress includes to reuse excerpts from the released specification, rather than duplicating its prose. - Link to the condensed overview on the MCP website. - Render `specification/stable/skills.mdx` through a small Markdown include, preserving the released specification unchanged. - Add local search, section outlines, MCP branding, source edit links, and a Specification navigation item with a Stable sidebar entry. Keep the full specification at `/specification/stable/skills`. - Build pull requests, including fork contributions, in read-only GitHub Actions CI. - Use the existing Cloudflare Pages Git integration for publishing. Remove the GitHub Pages deployment workflow and project-path configuration. ## Validation - `npm run docs:build` passed with VitePress 1.6.4. - Checked that the build emits an overview and a separate specification page; verified included excerpt boundaries, internal links and anchors, specification source edit links, and the rendered MDX callout. - `git diff --check` passed. - The build emits the existing large-chunk warning from the diagram dependencies. - Cloudflare deployment itself has not been run from this workspace. ## Publishing settings DNS and Cloudflare Pages setup are ready separately. The existing Pages project should use: | Setting | Value | | --- | --- | | Repository | `modelcontextprotocol/ext-skills` | | Production branch | `main` | | Root directory | Repository root | | Build command | `npm run docs:build` | | Build output directory | `.vitepress/dist` | | Node.js | `22` (set `NODE_VERSION=22` in Pages) | | Custom domain | `skills.extensions.modelcontextprotocol.io` | Cloudflare installs dependencies and builds from the committed npm lockfile. The site is served at the domain root with clean URLs. Publishing is handled by Cloudflare's connected Git integration; no GitHub Pages environment, Pages permissions, or Cloudflare deployment secrets in GitHub Actions are required. After merge, verify the production deployment and custom domain in the existing Cloudflare Pages project. One-time publishing instructions stay in this PR description, not in a checked-in setup document. Fork PRs receive the CI build check. Automated Cloudflare previews for forks require the separately discussed trusted artifact-publishing workflow; this PR does not add that workflow. --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
This commit is contained in:
parent
34315ab7d7
commit
41e7c66db2
9 changed files with 3975 additions and 0 deletions
22
.github/workflows/ci.yml
vendored
Normal file
22
.github/workflows/ci.yml
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docs:
|
||||||
|
name: Build documentation
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 22
|
||||||
|
cache: npm
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm run docs:build
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1 +1,4 @@
|
||||||
.claude/settings.local.json
|
.claude/settings.local.json
|
||||||
|
node_modules/
|
||||||
|
.vitepress/cache/
|
||||||
|
.vitepress/dist/
|
||||||
|
|
|
||||||
71
.vitepress/config.mts
Normal file
71
.vitepress/config.mts
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
import { defineConfig } from "vitepress";
|
||||||
|
import { withMermaid } from "vitepress-plugin-mermaid";
|
||||||
|
|
||||||
|
const repository = "https://github.com/modelcontextprotocol/ext-skills";
|
||||||
|
|
||||||
|
export default withMermaid(
|
||||||
|
defineConfig({
|
||||||
|
title: "MCP Skills Extension",
|
||||||
|
description:
|
||||||
|
"Discover and read Agent Skills over the Model Context Protocol",
|
||||||
|
cleanUrls: true,
|
||||||
|
srcExclude: [
|
||||||
|
"README.md",
|
||||||
|
"SECURITY.md",
|
||||||
|
"CONTRIBUTING.md",
|
||||||
|
"AGENTS.md",
|
||||||
|
"CLAUDE.md",
|
||||||
|
"docs/**",
|
||||||
|
],
|
||||||
|
head: [["link", { rel: "icon", href: "/mcp.png" }]],
|
||||||
|
|
||||||
|
markdown: {
|
||||||
|
config(md) {
|
||||||
|
// Excerpts retain cross-references to the complete specification.
|
||||||
|
md.core.ruler.before("block", "overview-links", (state) => {
|
||||||
|
if (state.env.relativePath === "index.md") {
|
||||||
|
state.src = state.src.replace(
|
||||||
|
/\]\(#([^)]+)\)/g,
|
||||||
|
"](/specification/stable/skills#$1)",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Render the existing MDX specification's callout after Markdown inclusion.
|
||||||
|
md.core.ruler.before("block", "mdx-notes", (state) => {
|
||||||
|
state.src = state.src
|
||||||
|
.replace(/^<Note>\s*$/gm, "::: info\n")
|
||||||
|
.replace(/^<\/Note>\s*$/gm, ":::\n");
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
themeConfig: {
|
||||||
|
outline: [2, 3],
|
||||||
|
nav: [
|
||||||
|
{ text: "Specification", link: "/specification/stable/skills" },
|
||||||
|
{
|
||||||
|
text: "SEP-2640",
|
||||||
|
link: "https://modelcontextprotocol.io/seps/2640-skills-extension",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Working Group",
|
||||||
|
link: "https://modelcontextprotocol.io/community/working-groups/skills-over-mcp",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
sidebar: {
|
||||||
|
"/specification/": [
|
||||||
|
{
|
||||||
|
text: "Specification",
|
||||||
|
items: [{ text: "Stable", link: "/specification/stable/skills" }],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
socialLinks: [{ icon: "github", link: repository }],
|
||||||
|
search: { provider: "local" },
|
||||||
|
editLink: {
|
||||||
|
pattern:
|
||||||
|
"https://github.com/modelcontextprotocol/ext-skills/edit/main/specification/stable/skills.mdx",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
@ -1,5 +1,37 @@
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
|
## Documentation Website
|
||||||
|
|
||||||
|
Use Node.js 22 or later:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm ci
|
||||||
|
npm run docs:dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Before submitting a change, build and preview the production site:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run docs:build
|
||||||
|
npm run docs:preview
|
||||||
|
```
|
||||||
|
|
||||||
|
The site follows the Tasks extension layout: an overview at `/` and a separate
|
||||||
|
specification page. `index.md` includes excerpts from the released
|
||||||
|
`specification/stable/skills.mdx` using VitePress Markdown includes; it does not
|
||||||
|
maintain a second copy of that text. The include ranges refer to the stable
|
||||||
|
snapshot; update them when switching the overview to a new revision.
|
||||||
|
The adjacent `specification/stable/skills.md` includes the full specification
|
||||||
|
text. Follow the [specification change process](AGENTS.md#proposing-changes-to-the-specification)
|
||||||
|
when proposing changes.
|
||||||
|
Navigation links to the condensed overview on the
|
||||||
|
[MCP website](https://modelcontextprotocol.io/extensions/skills/overview).
|
||||||
|
Working Group research and historical documents under `docs/` remain available on GitHub.
|
||||||
|
|
||||||
|
Pull requests build the website in CI, including contributions from forks.
|
||||||
|
Broken internal page links fail the build. Cloudflare Pages builds the site with
|
||||||
|
`npm run docs:build` and serves `.vitepress/dist`.
|
||||||
|
|
||||||
## How to Participate
|
## How to Participate
|
||||||
|
|
||||||
This Working Group welcomes contributions from anyone interested in skills distribution over MCP. You can participate by:
|
This Working Group welcomes contributions from anyone interested in skills distribution over MCP. You can participate by:
|
||||||
|
|
|
||||||
29
index.md
Normal file
29
index.md
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
title: Overview
|
||||||
|
---
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
<!-- Reuse excerpts from the released specification; ranges end before the next section. -->
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{21,28}-->
|
||||||
|
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{35,79}-->
|
||||||
|
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{243,246}-->
|
||||||
|
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{339,342}-->
|
||||||
|
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{429,442}-->
|
||||||
|
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{481,484}-->
|
||||||
|
|
||||||
|
<!--@include: ./specification/stable/skills.mdx{443,446}-->
|
||||||
|
|
||||||
|
For verification requirements and the skill-loading lifecycle, see
|
||||||
|
[Integrity and Verification](/specification/stable/skills#integrity-and-verification).
|
||||||
|
|
||||||
|
## Learn More
|
||||||
|
|
||||||
|
- [Specification](/specification/stable/skills) — full protocol requirements, examples, and security considerations
|
||||||
|
- [MCP Skills overview](https://modelcontextprotocol.io/extensions/skills/overview) — condensed examples and message flow
|
||||||
|
- [SEP-2640](https://modelcontextprotocol.io/seps/2640-skills-extension) — the accepted proposal
|
||||||
3791
package-lock.json
generated
Normal file
3791
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
21
package.json
Normal file
21
package.json
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"name": "@modelcontextprotocol/ext-skills",
|
||||||
|
"private": true,
|
||||||
|
"version": "0.1.0",
|
||||||
|
"type": "module",
|
||||||
|
"description": "Documentation for the MCP Skills extension",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=22"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"docs:dev": "vitepress dev",
|
||||||
|
"docs:build": "vitepress build",
|
||||||
|
"docs:preview": "vitepress preview"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"mermaid": "^11.17.0",
|
||||||
|
"vitepress": "^1.6.4",
|
||||||
|
"vitepress-plugin-mermaid": "^2.0.17"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
public/mcp.png
Normal file
BIN
public/mcp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
6
specification/stable/skills.md
Normal file
6
specification/stable/skills.md
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: Skills
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- Keep the MDX file as the single source; skip its frontmatter. -->
|
||||||
|
<!--@include: ./skills.mdx{5,}-->
|
||||||
Loading…
Reference in a new issue