download-docs

SKILL.md

Download Docs

Download documentation files from various sources using manifest configurations.

Quick Start

Download from a specific manifest:

.claude/skills/download-docs/scripts/download.sh {manifest-name}

Download from all manifests:

.claude/skills/download-docs/scripts/download.sh

Output location: output/{manifest-name}/

Manifest Format

Manifests are JSON files in scripts/manifests/. Use $schema for IDE validation. Two source types are supported:

GitHub Source (for large doc sets)

Clones repository and extracts markdown files:

{
  "$schema": "./manifest.schema.json",
  "_source": {
    "type": "github",
    "repo": "owner/repo-name",
    "branch": "main",
    "path": "docs",
    "extensions": [".md", ".mdx"],
    "exclude": ["**/internal/**"],
    "noDefaultExcludes": false
  }
}
Field Required Description
repo Yes GitHub repository (owner/name)
branch No Branch to clone (default: "main")
path No Directory path within repo (default: ".")
extensions No File extensions to include (default: [".md", ".mdx"])
exclude No Additional glob patterns to exclude
noDefaultExcludes No Set true to disable default excludes

Default exclude patterns:

  • CHANGELOG*, CONTRIBUTING*, LICENSE*, SECURITY*, CODE_OF_CONDUCT*
  • .github/**, /test/, /tests/, /tests/
  • /spec/, /fixtures/, /examples/, /node_modules/

URL Source (for individual files)

Downloads specific files from URLs:

{
  "$schema": "./manifest.schema.json",
  "_source": { "type": "url" },
  "files": {
    "category-name": {
      "doc-name": "https://example.com/path/to/doc.md"
    }
  }
}

URL Source with HTML Conversion

Downloads HTML and converts to markdown (requires pandoc):

{
  "$schema": "./manifest.schema.json",
  "_source": {
    "type": "url",
    "convert": "html"
  },
  "files": {
    "category-name": {
      "doc-name": "https://example.com/docs/page.html"
    }
  }
}

Note: HTML conversion only works for static HTML. SPA sites (React, Angular, etc.) will produce empty output.

Disabling a Manifest

Add _disabled to skip processing:

{
  "$schema": "./manifest.schema.json",
  "_source": {
    "type": "url",
    "_disabled": true,
    "_reason": "SPA site - requires Playwright handler"
  },
  "files": { ... }
}

Requirements

  • jq - JSON parsing
  • git - GitHub source cloning
  • curl - URL downloads
  • pandoc - HTML conversion (optional)

Adding New Manifests

Create a JSON file in scripts/manifests/ following the format above. The manifest filename (without .json) becomes the output directory name.

Weekly Installs
7
GitHub Stars
6
First Seen
Jan 23, 2026
Installed on
claude-code5
opencode5
gemini-cli4
antigravity4
windsurf4
codex4