ワンクリックで
vcluster-docs-releaser
vCluster Documentation Release Skill
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
vCluster Documentation Release Skill
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | vcluster-docs-releaser |
| description | vCluster Documentation Release Skill |
This skill automates the vCluster documentation release process, handling version updates, configuration changes, and SEO setup for new vCluster releases.
Starting with vCluster v0.33, docs versioning happens at rc-1, NOT on release day.
vcluster/ on main as usual. If a change needs to land in the upcoming release, add the backport-v0.33 label to the PRThe config flip PR changes only the version visibility in docusaurus.config.js:
lastVersion to point to the new versionThis separation means all the heavy lifting (version creation, content, link fixes) is done during the rc-1 window, and release day is a low-risk config change.
Trigger this skill when:
Note: This skill is for vCluster releases only. Platform releases have a separate skill (platform-docs-releaser).
Before starting:
npm run docusaurus docs:version:vcluster X.Y.Zvcluster_versions.json and vcluster_versioned_docs/version-X.Y.Z/ exist.md files in vcluster_versioned_docs/version-X.Y.Z/cli/When: Only if next branch contains preview docs that need to go to main
Process:
Check if next has unique content:
git log --oneline --no-merges origin/next ^main | grep -v "Merge remote-tracking branch"
If next has content to merge:
next → main with squash mergedocs: merge next branch for vX.Y releaseMerge command:
gh pr create --base main --head next \
--title "docs: merge next branch for vX.Y release" \
--body "Squash merge of preview docs from next branch"
# After review:
gh pr merge <pr-number> --squash
Note: Currently next only has merge commits, so this step can be skipped for now.
At rc-1, the version is added to the build but hidden from the dropdown. Do NOT change lastVersion, SEO, netlify redirect, or announcement bar — those are Part 4 (release day).
docusaurus.config.js — vCluster plugin configAdd the new version to onlyIncludeVersions and versions with hidden/unreleased flags:
lastVersion: "0.YY.0", // DO NOT CHANGE — stays on current stable
onlyIncludeVersions: ["current", "0.XX.0", "0.YY.0", ...], // Add new version
versions: {
current: {
label: "main 🚧",
},
"0.XX.0": { // NEW ENTRY — hidden pre-release
label: "v0.XX",
banner: "unreleased", // Shows warning banner on every page
badge: true,
noIndex: true, // Prevents search engine indexing
},
"0.YY.0": { // KEEP as-is — still current stable
label: "v0.YY Stable",
banner: "none",
badge: true,
},
// ... rest unchanged
}
src/config/versionConfig.js — hide from dropdownAdd the version to the hidden array so it doesn't appear in the version dropdown:
export const vclusterHiddenVersions = ["0.XX.0"];
export const platformHiddenVersions = [];
This is the single source of truth for hiding versions. Two custom components consume it:
src/theme/DocSidebar/Desktop/Content/index.js): filters useVersions() and passes visible names to DocsVersionDropdownNavbarItem versions propsrc/theme/TOCCollapsible/index.js): filters useVersions() before renderingResult: the version is built, accessible via direct URL (e.g., /docs/vcluster/0.XX.0/), shows the "unreleased" banner, but does not appear in the dropdown.
AI performs:
ls -la vcluster_versioned_docs/version-0.XX.0/ls vcluster_versioned_docs/version-0.XX.0/cli/*.md | wc -l (expect 90+)vclusterHiddenVersions array in versionConfig.js)User performs:
npm run build (not AI's responsibility)vcluster/manage/upgrade/supported_versions.mdxThis is the release-day action. All heavy work was done at rc-1. This PR only flips visibility.
PR title: docs: expose vCluster 0.XX docs in version dropdown
PR body: "Config flip to make the pre-deployed v0.XX docs visible in the version dropdown. All content was deployed at rc-1."
src/config/versionConfig.js — unhide from dropdownexport const vclusterHiddenVersions = []; // Remove the version string
docusaurus.config.js — promote to stablelastVersion: "0.XX.0", // Was 0.YY.0 — now points to new version
versions: {
"0.XX.0": {
label: "v0.XX Stable", // Was "v0.XX" — add "Stable"
banner: "none", // Was "unreleased" — remove banner
badge: true,
// noIndex removed — allow search engine indexing
},
"0.YY.0": {
label: "v0.YY", // Was "v0.YY Stable" — demote
banner: "none",
badge: true,
},
}
docusaurus.config.js — SEO sitemap prioritiesif (item.url.match(/\/vcluster\/0\.XX\.0\//) ||
item.url.match(/\/platform\/X\.Y\.0\//)) {
return { ...item, priority: 1.0, changefreq: 'daily' };
}
docusaurus.config.js — announcement barannouncementBar: {
id: "vcluster-0-XX-release",
content: '... vCluster 0.XX ...',
},
netlify.toml — redirect[[redirects]]
from = "/docs/vcluster/0.XX.0/*"
to = "/docs/vcluster/:splat"
status = 301
force = true
hack/test-vcluster-0.XX.hurl — create hurl testCopy from previous version, update version numbers. Hurl tests run AFTER PR is deployed to Netlify preview.
This PR is small, reviewable, and safe to merge by anyone with merge rights.
| File | Changes | Phase |
|---|---|---|
docusaurus.config.js | Add to onlyIncludeVersions, add version with banner: "unreleased" + noIndex: true | rc-1 |
src/config/versionConfig.js | Add version to vclusterHiddenVersions array | rc-1 |
docusaurus.config.js | lastVersion, labels, SEO, announcement bar | Release day |
src/config/versionConfig.js | Remove version from vclusterHiddenVersions | Release day |
netlify.toml | Redirect | Release day |
hack/test-vcluster-0.XX.hurl | New file | Release day |
announcementBar.contentnetlify.tomlnpm run docusaurus docs:version:vcluster X.Y.Z<ProAdmonition> tagsvcluster/manage/upgrade/supported_versions.mdxnpm run build0.30.0v0.30 (without patch)v0.30 Stable (current release)v0.26 (EOS) (old versions)// Rolling window of 6 versions (current + 5 stable)
onlyIncludeVersions: ["current", "0.30.0", "0.29.0", "0.28.0", "0.27.0", "0.26.0"]
// When 0.31.0 releases, becomes:
onlyIncludeVersions: ["current", "0.31.0", "0.30.0", "0.29.0", "0.28.0", "0.27.0"]
// 0.26.0 drops out - goes to archive branch
When a version drops out of onlyIncludeVersions:
vcluster-docs-archiver skill)# Verify changes
git diff docusaurus.config.js netlify.toml
# Check versions
cat vcluster_versions.json
# Verify CLI docs
ls vcluster_versioned_docs/version-0.XX.0/cli/*.md | wc -l
# Run hurl tests
hurl --test --variable BASE_URL=https://deploy-preview-XXXX--vcluster-docs-site.netlify.app \
hack/test-vcluster-0.XX.hurl
Solution: User already ran versioning command - proceed with config updates
Solution: Check if CLI generation script ran - see Notion doc
Solution: User responsibility - they run npm run build
Solution:
When triggered by Linear issue (e.g., ENG-9160):
After completing workflow, provide summary:
✅ vCluster 0.30.0 Release Configuration Complete
Files Updated:
- docusaurus.config.js (6 locations)
- netlify.toml (redirect updated)
- hack/test-vcluster-0.30.hurl (created)
My Tasks Complete (2-5):
✅ Updated banner
✅ Updated netlify redirect
✅ Verified CLI docs (93 files found)
✅ Created hurl test file
Your Tasks Remaining (1, 6-9):
⏳ Review enterprise/pro tags
⏳ Update support dates
⏳ Update compatibility matrix
⏳ Run build: npm run build
⏳ Run hurl tests (after PR deployed)
Ready to commit and push!
Version pattern: 0.30.0 → label: v0.30
Files to modify: 3 files total
Lines to change: ~10 locations across all files
Time estimate: 2-3 minutes for AI tasks
backport-v0.33 label for changes that must land in the upcoming releaseonlyIncludeVersions for build performancevCluster docs frequently link to Platform docs. These links can break when Platform releases a new version.
lastVersion change: When Platform releases (e.g., 4.5.0 → 4.6.0), /docs/platform/... routes to new version/platform/... links in vCluster docs point to current Platform versionWhen Platform releases, check if vCluster docs have broken links to:
/platform/administer/monitoring/... → /platform/maintenance/monitoring/...
/platform/install/advanced/air-gapped → /platform/install/air-gapped
/platform/administer/users-permissions/... → /platform/administer/authentication/...
/platform/api/authentication → /platform/administer/authentication/access-keys
After Platform release, run Netlify build to find broken links, then fix:
# Update paths in all vCluster versioned docs
find vcluster vcluster_versioned_docs -name "*.mdx" \
-exec sed -i 's|/platform/administer/monitoring/|/platform/maintenance/monitoring/|g' {} \;
find vcluster vcluster_versioned_docs -name "*.mdx" \
-exec sed -i 's|/platform/install/advanced/air-gapped|/platform/install/air-gapped|g' {} \;
If vCluster docs link to Platform version that's no longer in onlyIncludeVersions:
<!-- WRONG - 4.3.0 not in Platform build anymore -->
[Templates](/platform/4.3.0/administer/templates/create-virtual-cluster-template)
<!-- CORRECT - use current Platform path -->
[Templates](/platform/administer/templates/create-templates)
When both vCluster and Platform release simultaneously:
lastVersion and may restructure paths