vcluster-docs-archiver

Archive End-of-Life vCluster documentation versions. Use this skill when creating EOL documentation branches for vCluster or Platform versions. Handles branch creation, Docusaurus configuration, link fixing, Netlify deployment, and main branch updates.

7 stars

Best use case

vcluster-docs-archiver is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Archive End-of-Life vCluster documentation versions. Use this skill when creating EOL documentation branches for vCluster or Platform versions. Handles branch creation, Docusaurus configuration, link fixing, Netlify deployment, and main branch updates.

Teams using vcluster-docs-archiver should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/vcluster-docs-archiver/SKILL.md --create-dirs "https://raw.githubusercontent.com/loft-sh/vcluster-docs/main/.claude/skills/vcluster-docs-archiver/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/vcluster-docs-archiver/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How vcluster-docs-archiver Compares

Feature / Agentvcluster-docs-archiverStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Archive End-of-Life vCluster documentation versions. Use this skill when creating EOL documentation branches for vCluster or Platform versions. Handles branch creation, Docusaurus configuration, link fixing, Netlify deployment, and main branch updates.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# vCluster Documentation Archiver

## Overview

Archive End-of-Life (EOL) vCluster or Platform documentation versions to standalone Netlify deployments. Each EOL version gets its own branch that never merges to main.

## When to Use

- User asks to archive a vCluster or Platform version
- User mentions EOL documentation, branch archiving, or version archiving
- Working in `/home/decoder/loft/vcluster-docs` with archiving tasks
- User encounters broken links during version archiving

## Quick Start

### Step 1: Setup Archive Branch
```bash
# Create branch (use correct naming: vcluster-v0.22 or platform-v4.2)
git checkout -b vcluster-v0.22

# Verify version exists
scripts/verify_version.sh 0.22.0
```

### Step 2: Configure Docusaurus
Edit `docusaurus.config.js`:
- Set `lastVersion: "0.22.0"` (actual version)
- Set `onlyIncludeVersions: ["0.22.0"]` (only this version)
- Set `noIndex: true` at top level (prevent search engine indexing)
- Set `onBrokenLinks: "warn"` (cross-section mismatches are expected in archives)
- Update main docs label to match version
- Add archive announcement bar (yellow warning, not closeable, links to latest docs)

Edit `src/config/versionConfig.js`:
- Empty both hidden arrays: `vclusterHiddenVersions = []`, `platformHiddenVersions = []`

Edit `src/theme/DocSidebar/Desktop/Content/index.js`:
- Set `dropdownItemsAfter={[]}` (empty dropdown)

See `references/docusaurus-config.md` and `references/platform-archiving.md` (section 4b) for detailed configuration.

### Step 2b: Strip Version Prefix from Internal Links

When a version becomes `lastVersion`, Docusaurus serves it without the version segment. Strip all internal links that include the version prefix:

```bash
# For platform archives (e.g., 4.5.0)
find platform_versioned_docs/version-4.5.0 -name "*.mdx" \
  -exec sed -i 's|/docs/platform/4.5.0/|/docs/platform/|g' {} +

# For vCluster archives (e.g., 0.28.0)
find vcluster_versioned_docs/version-0.28.0 -name "*.mdx" \
  -exec sed -i 's|/docs/vcluster/0.28.0/|/docs/vcluster/|g' {} +
```

Expect 50-70+ replacements for platform archives. Verify with grep afterward.

See `references/platform-archiving.md` (section 4c) for details.

### Step 3: Fix Broken Links
```bash
# Clear cache first
scripts/clear_cache.sh

# Auto-fix common patterns
scripts/fix_mdx_extensions.sh vcluster_versioned_docs/version-0.22.0
scripts/fix_site_imports.sh vcluster_versioned_docs/version-0.22.0

# Build and fix remaining errors
npm run build
```

**Efficient debugging method**: See `references/link-resolution-guide.md`

### Step 4: Configure Netlify & Deploy
⚠️ **Netlify branch deploys require MANUAL configuration**

1. User configures in Netlify dashboard:
   - Site settings → Build & deploy → Branches and deploy contexts
   - Add branch name (e.g., `vcluster-v0.22`) to "Branch deploys"

2. After configuration, trigger build:
   ```bash
   git commit --allow-empty -m "chore: trigger netlify build"
   git push origin vcluster-v0.22
   ```

3. Verify deployment:
   ```bash
   curl -s -o /dev/null -w "%{http_code}" "https://vcluster-v0-22--vcluster-docs-site.netlify.app/docs/vcluster/"
   ```

### Step 5: Update Main Branch
**⚠️ IMPORTANT: Stage changes, do NOT commit (user commits manually)**

```bash
git checkout main

# Update dropdown in src/theme/DocSidebar/Desktop/Content/index.js
# Remove version from docusaurus.config.js onlyIncludeVersions
# Delete versioned folder: rm -rf vcluster_versioned_docs/version-0.22.0

git status  # Show staged changes to user
```

### Step 6: Add Redirects (REQUIRED)
In `/home/decoder/loft/vcluster.com/themes/loft/static/_redirects`:
```
# v0.22 Docs Site (EOL version with dedicated standalone site)
/docs/v0.22         https://vcluster-v0-22--vcluster-docs-site.netlify.app/docs/vcluster/introduction/what-are-virtual-clusters/   302!
/docs/v0.22/*       https://vcluster-v0-22--vcluster-docs-site.netlify.app/docs/vcluster/:splat   302!
```

⚠️ **MERGE ORDER IS CRITICAL:**
1. Merge redirects PR (vcluster.com) FIRST
2. Then merge dropdown PR (vcluster-docs)

If dropdown merges first, users clicking EOL links will hit 404s.

**User must commit vcluster.com changes**

## Critical Rules

🚨 **NEVER perform git operations** - NO commits, NO PRs, NO branches, NO pushes
- Platform `onlyIncludeVersions` MUST NOT be empty - use `["X.X.X"]`
- NEVER set `includeCurrentVersion: false` - breaks partials
- Use LATEST vCluster version with Platform archives (0.32.0, not 0.25.0)
- Clear cache after major fixes: `scripts/clear_cache.sh`

See `references/critical-rules.md` for complete list.

## Resources

### scripts/
- `verify_version.sh` - Check if versioned docs exist
- `fix_mdx_extensions.sh` - Remove .mdx from links
- `fix_site_imports.sh` - Replace @site imports
- `clear_cache.sh` - Clear Docusaurus caches
- `find_feature_location.sh` - Find version-specific features

### references/
- `critical-rules.md` - Complete never-do and always-do rules
- `link-resolution-guide.md` - Link types and .mdx extension rules
- `platform-archiving.md` - Platform-specific workflow
- `platform-4.2-example.md` - Real-world example with mistakes
- `complete-checklist.md` - Full step-by-step checklist
- `common-issues.md` - Troubleshooting guide

### Step 7: Announce (Optional)
Slack announcement template:
```
*vCluster docs: EOL version archiving*

We archived vCluster vX.XX documentation to standalone Netlify branch deploys.

*Why:* The main docs build includes all active versions. As we add new versions, the build size grows and eventually exceeds Netlify's memory limits. Archiving EOL versions to separate branches keeps the main build healthy.

*What changed:*
- vX.XX docs removed from main branch
- Version now lives on its own branch (`vcluster-vX.XX`)
- Added to EOL dropdown in version selector
- Redirects ensure `vcluster.com/docs/vX.XX` still works

*Impact:* None. Users accessing EOL docs via the dropdown or direct URLs will be redirected to the archived deployments. No action required.
```

## Quick Reference

| Issue | Solution |
|-------|----------|
| Broken links | `references/link-resolution-guide.md` |
| Platform version | `references/platform-archiving.md` |
| Config errors | `references/docusaurus-config.md` |
| Real example | `references/platform-4.2-example.md` |
| Netlify setup | Configure in Netlify dashboard, then empty commit |
| Merge order | Redirects (vcluster.com) FIRST, then dropdown (vcluster-docs) |

## Final Checklist (Copy-Paste for User)

When archiving is complete, guide the user with these steps:

```
Archive Complete! Final steps:

□ 1. Configure Netlify branch deploys (manual in dashboard)
   - Site settings → Build & deploy → Branches and deploy contexts
   - Add: vcluster-vX.XX (or platform-vX.X)

□ 2. Trigger builds (empty commits if needed)
   - git checkout vcluster-vX.XX && git commit --allow-empty -m "chore: trigger netlify build" && git push

□ 3. Verify deployments work
   - https://vcluster-v0-XX--vcluster-docs-site.netlify.app/docs/vcluster/

□ 4. MERGE ORDER (critical!):
   a. FIRST: Merge redirects PR (vcluster.com)
   b. THEN: Merge dropdown PR (vcluster-docs)

□ 5. Post to Slack (optional)
   - Use template from Step 7

□ 6. Verify production
   - Check vcluster.com/docs/vX.XX redirects correctly
   - Check dropdown shows new EOL version
```

Related Skills

vcluster-docs-writer

7
from loft-sh/vcluster-docs

Write and edit vCluster Docusaurus documentation. Use this skill when working with .mdx or .md files in the vcluster-docs repository. Handles vale linting, partials discovery, link validation, versioned docs, and release processes.

vcluster-docs-releaser

7
from loft-sh/vcluster-docs

vCluster Documentation Release Skill

platform-docs-releaser

7
from loft-sh/vcluster-docs

Platform Documentation Release Skill

k8s-compat-matrix

7
from loft-sh/vcluster-docs

Manages the Kubernetes compatibility matrix data and React component. Use when adding/removing K8s versions, updating conformance test results, or documenting known issues.

docusaurus-upgrader

7
from loft-sh/vcluster-docs

Upgrades Docusaurus to latest version in vCluster documentation. Use when upgrading Docusaurus packages from older to newer versions. Handles package updates, compatibility fixes, testing, and rollback procedures.

config-partials-generator

7
from loft-sh/vcluster-docs

Generate MDX config reference partials from vCluster JSON schema. Use when automation is skipped for alpha releases or when manually refreshing config docs.

microsoft-docs

56166
from microsoft/ai-agents-for-beginners

Query official Microsoft documentation to find concepts, tutorials, and code examples across Azure, .NET, Agent Framework, Aspire, VS Code, GitHub, and more. Uses Microsoft Learn MCP as the default, with Context7 and Aspire MCP for content that lives outside learn.microsoft.com.

Developer ToolsChatGPTClaudeGitHub Copilot

docs-architect

31392
from sickn33/antigravity-awesome-skills

Creates comprehensive technical documentation from existing codebases. Analyzes architecture, design patterns, and implementation details to produce long-form technical manuals and ebooks.

Text AnalysisClaude

docs-pipeline-automation

3891
from openclaw/skills

Build repeatable data-to-Docs pipelines from Sheets and Drive sources. Use for automated status reports, template-based document assembly, and scheduled publishing workflows.

Workflow & Productivity

raycast-extension-docs

9
from lemikeone/Codex-skill-raycast-extension

Guidance for building, debugging, and publishing Raycast extensions using the Raycast documentation set. Use when Codex needs to create or modify Raycast extensions (React/TypeScript/Node), consult Raycast API reference or UI components, build AI extensions, handle manifest/lifecycle/preferences, troubleshoot issues, or prepare/publish extensions to the Raycast Store or Teams.

Coding & Development

updating-internal-docs

44152
from streamlit/streamlit

Review internal documentation (*.md files) against the current codebase state and propose updates for outdated or incorrect information.

google-docs-automation

31392
from sickn33/antigravity-awesome-skills

Lightweight Google Docs integration with standalone OAuth authentication. No MCP server required.