Skills
A skill is a package of structured files that teaches an AI coding agent how to work with a specific tool or framework. Install it in your agent and it will be able to run commands, edit configuration, write content, and troubleshoot problems without step-by-step guidance from you.
Any agent — install with npx:
npx skills add https://posit-dev.github.io/great-docs/Works with Claude Code, GitHub Copilot, Cursor, Gemini CLI, Codex, and 30+ other agents.
Codex / OpenCode — tell the agent:
Fetch the skill file at https://posit-dev.github.io/great-docs/skill.md and follow the instructions.Manual — download the skill file:
curl -O https://posit-dev.github.io/great-docs/skill.mdOr browse the SKILL.md file.
SKILL LAYOUT
great-docs/ ├── SKILL.md ├── references/ │ ├── cli-reference.md │ ├── common-errors.md │ └── config-reference.md ├── scripts/ │ ├── run-build.sh │ └── setup-env.sh └── assets/ └── config-template.yaml
SKILL.md
--- name: great-docs description: > Generate documentation sites for Python packages with Great Docs. Covers init, build, preview, configuration (great-docs.yml), API reference, CLI docs, user guides, theming, deployment, and the llms.txt agent-context files. Use when creating, configuring, building, or troubleshooting Python package documentation. license: MIT compatibility: Requires Python >=3.11, Quarto CLI installed. metadata: author: rich-iannone version: "2.0" tags: - documentation - python-packages - quarto - api-reference - static-site --- # Great Docs A docs generator for Python packages. Introspects your API, renders reference pages, and produces a Quarto-based static site with user guides, CLI docs, theming, and more. ## Quick start ```bash pip install great-docs # Quarto must also be installed: https://quarto.org/docs/get-started/ cd my-package/ # directory with pyproject.toml great-docs init # create great-docs.yml, discover API great-docs build # full build -> great-docs/_site/ great-docs preview # local server on port 3000 ``` ## Skill directory structure This skill ships with companion files for agent consumption: ``` skills/great-docs/ ├── SKILL.md ← This file ├── references/ │ ├── config-reference.md ← All great-docs.yml options │ ├── cli-reference.md ← CLI commands and arguments │ └── common-errors.md ← Error patterns and fixes ├── scripts/ │ ├── setup-env.sh ← Environment bootstrap script │ └── run-build.sh ← Build with validation └── assets/ └── config-template.yaml ← Starter great-docs.yml ``` ## When to use what | Need | Use | | ------------------------- | --------------------------------------- | | Start a new docs site | `great-docs init` | | Full build from scratch | `great-docs build` | | Rebuild after edits | `great-docs build --no-refresh` | | Live preview | `great-docs preview` | | See discoverable API | `great-docs scan --verbose` | | Change docstring parser | `parser: google` in great-docs.yml | | Add CLI reference | `cli: {enabled: true, module: pkg.cli}` | | Add a gradient navbar | `navbar_style: sky` | | Exclude internal symbols | `exclude: [_InternalClass]` | | Add user guide pages | Create `user_guide/05-topic.qmd` | | Add recipes | Create `recipes/07-topic.qmd` | | Set up GitHub Pages CI | `great-docs setup-github-pages` | | Use static analysis | `dynamic: false` (for tricky imports) | | Generate agent skill file | `skill: {enabled: true}` | ## Core concepts ### Configuration (`great-docs.yml`) Single YAML file at the project root controls everything. All keys are optional — sensible defaults are auto-detected from `pyproject.toml` and package structure. **Full config reference**: See [references/config-reference.md](references/config-reference.md) ### Build pipeline The `build` command runs 13 steps in order: 1. Prepare build directory (copy assets, JS, SCSS) 2. Copy user guide from `user_guide/` 3. Copy project `assets/` 4. Refresh API reference (introspect package) 5. Generate `llms.txt` and `llms-full.txt` 6. Generate `skill.md` (if enabled) 7. Generate source links JSON 8. Generate changelog (from GitHub Releases) 9. Generate CLI reference (if enabled) 10. Process user guide (frontmatter, sidebar) 11. Process custom sections 12. Render API reference (`.qmd` files) 13. Run `quarto render` -> `_site/` HTML output The `great-docs/` directory is **ephemeral** — regenerated on every build. Never edit files inside it directly. ### Two rendering modes - **Dynamic** (default): imports the package at runtime for full introspection. Requires `pip install -e .` first. - **Static** (`dynamic: false`): uses griffe for AST-based analysis. Use when the package has circular imports, lazy loading, or compiled extensions. Dynamic mode auto-falls-back to static if the import fails. ### Docstring directives Custom directives inside docstrings use `%` prefix: ```python def my_function(): """ Description. %seealso func_a, func_b: related functions, ClassC %nodoc """ ``` - `%seealso name1, name2: desc` — Cross-references in rendered docs - `%nodoc` — Exclude this item from documentation ## Workflows ### New documentation site ``` Task Progress: - [ ] Step 1: Install prerequisites - [ ] Step 2: Initialize configuration - [ ] Step 3: Customize config - [ ] Step 4: Build and preview - [ ] Step 5: Verify output ``` **Step 1**: Ensure `great-docs` and `quarto` are installed. The target package must be importable (`pip install -e .`). **Step 2**: Run `great-docs init` from the project root (where `pyproject.toml` lives). This creates `great-docs.yml`. **Step 3**: Edit `great-docs.yml` to customize. See [references/config-reference.md](references/config-reference.md) or [assets/config-template.yaml](assets/config-template.yaml) for all options. **Step 4**: Run `great-docs build` then `great-docs preview`. **Step 5**: Check the site at `http://localhost:3000`. If errors occur, see [references/common-errors.md](references/common-errors.md). ### Adding content **User guide page**: Create `user_guide/NN-title.qmd` with a 2-digit numeric prefix. Auto-discovered on next build. **Recipe**: Create `recipes/NN-title.qmd`. Same numeric prefix convention. **Custom section**: Add to `great-docs.yml`: ```yaml sections: - title: Examples dir: examples ``` ### Customizing appearance ```yaml # great-docs.yml navbar_style: sky # gradient: sky, peach, lilac, mint, etc. content_style: lilac # content area glow dark_mode_toggle: true # toggle switch in navbar logo: assets/logo.svg # or {light: ..., dark: ...} hero: true # landing page hero section announcement: content: "v2 is out!" type: info dismissable: true ``` ### Troubleshooting a build 1. Run `great-docs build` and read the error output 2. Check [references/common-errors.md](references/common-errors.md) for the error pattern 3. Fix the config or source file 4. Rebuild with `great-docs build --no-refresh` (faster, skips API rediscovery) 5. If the error persists, try `great-docs build` with full refresh ## Reference files ### Config reference (`references/config-reference.md`) Complete list of every `great-docs.yml` option with types, defaults, and examples. Organized by category: metadata, GitHub, navigation, theming, content, features, and advanced. ### CLI reference (`references/cli-reference.md`) All CLI commands with arguments and usage examples: | Command | Purpose | | -------------------- | --------------------------- | | `init` | Create config, discover API | | `build` | Full build pipeline | | `preview` | Local dev server | | `scan` | Preview discoverable API | | `config` | Generate template config | | `uninstall` | Remove config and build dir | | `setup-github-pages` | Create CI/CD workflow | ### Common errors (`references/common-errors.md`) Error patterns, causes, and fixes for the most frequent build failures — import errors, missing exports, config mismatches, Quarto issues, and more. ## Scripts ### `scripts/setup-env.sh` Bootstrap a development environment: ```bash #!/usr/bin/env bash set -euo pipefail python -m venv .venv source .venv/bin/activate pip install -e ".[dev]" pip install great-docs quarto --version || echo "ERROR: Quarto not installed" ``` ### `scripts/run-build.sh` Build with validation: ```bash #!/usr/bin/env bash set -euo pipefail great-docs build echo "Build complete. Site at great-docs/_site/" ls great-docs/_site/index.html && echo "OK: index.html exists" ``` ## Configuration template The `assets/config-template.yaml` provides a starter config with annotated options. Copy it as `great-docs.yml` and customize. ## Gotchas 1. **Run from project root.** All commands must run from the directory containing `great-docs.yml` (and `pyproject.toml`). 2. **`module` vs package name.** The `module` key is the Python importable name, not the PyPI name. For `py-shiny`, set `module: shiny`. 3. **Circular imports.** Set `dynamic: false` for packages with lazy loading or circular aliases. 4. **User guide ordering.** Files need numeric prefixes (`00-intro.qmd`, `01-install.qmd`) for deterministic order. 5. **Don't edit `great-docs/` directly.** It's regenerated on every build. Edit source files instead. 6. **Quarto required.** If `quarto` is not on `PATH`, the build fails at step 13. 7. **Package must be importable.** In dynamic mode, run `pip install -e .` before building. ## Capabilities and boundaries **What agents can configure:** - All `great-docs.yml` settings - User guide `.qmd` pages in `user_guide/` - Recipe `.qmd` pages in `recipes/` - Custom section `.qmd` pages - Logo, favicon, and other assets - Custom CSS/SCSS overrides - Docstring directives (`%seealso`, `%nodoc`) **Requires human setup:** - `pip install great-docs` and Quarto installation - `pip install -e .` for the target package - GitHub Pages or hosting deployment - Custom domain DNS - GitHub access tokens (for changelog) ## Resources - [Full documentation](https://posit-dev.github.io/great-docs/) - [llms.txt](llms.txt) — Indexed API reference for LLMs - [llms-full.txt](llms-full.txt) — Comprehensive documentation for LLMs - [Configuration guide](https://posit-dev.github.io/great-docs/user-guide/03-configuration.html) - [GitHub repository](https://github.com/posit-dev/great-docs)
references/cli-reference.md
# CLI Reference — great-docs ## Contents - Global options - init - build - preview - scan - config - uninstall - setup-github-pages All commands accept `--project-path PATH` to target a different directory. ## Global options ``` great-docs [OPTIONS] COMMAND [ARGS] ``` | Option | Description | | --------------------- | ------------------------------------------------- | | `--project-path PATH` | Path to project root (default: current directory) | | `--version` | Show version and exit | | `--help` | Show help and exit | ## init One-time setup: create `great-docs.yml` and auto-discover API. ```bash great-docs init great-docs init --force # reset existing config ``` | Option | Description | | --------- | ----------------------------------- | | `--force` | Overwrite existing `great-docs.yml` | Creates `great-docs.yml` with detected package name, module, parser style, and API sections. Safe to run multiple times (no-op if config exists unless `--force`). ## build Full build pipeline: prepare → render → build HTML. ```bash great-docs build great-docs build --no-refresh # skip API rediscovery (faster) great-docs build --watch # rebuild on file changes ``` | Option | Description | | -------------- | -------------------------------------------- | | `--watch` | Watch for changes and rebuild incrementally | | `--no-refresh` | Skip API reference rediscovery (uses cached) | Output goes to `great-docs/_site/`. Build streams progress in real-time. ## preview Start a local development server. ```bash great-docs preview great-docs preview --port 8080 ``` | Option | Default | Description | | -------- | ------- | ----------- | | `--port` | `3000` | Server port | Serves `great-docs/_site/` with live reload. Run `build` first if the site doesn't exist yet. ## scan Preview which API items will be documented. ```bash great-docs scan great-docs scan --verbose # show methods and attributes ``` | Option | Description | | ----------- | ----------------------------------------- | | `--verbose` | Show member details (methods, attributes) | Useful for verifying what `great-docs init` will discover before committing to a build. ## config Generate a template `great-docs.yml`. ```bash great-docs config great-docs config --force # overwrite existing ``` | Option | Description | | --------- | ------------------------------ | | `--force` | Overwrite existing config file | Similar to `init` but only creates the config file without running any discovery or setup. ## uninstall Remove `great-docs.yml` and the `great-docs/` build directory. ```bash great-docs uninstall ``` Preserves source files (`user_guide/`, `recipes/`, `assets/`). ## setup-github-pages Create a GitHub Actions workflow for automated deployment. ```bash great-docs setup-github-pages great-docs setup-github-pages --main-branch main --python-version 3.12 ``` | Option | Default | Description | | ------------------ | -------- | ------------------------------- | | `--main-branch` | `"main"` | Branch that triggers deployment | | `--python-version` | `"3.12"` | Python version in CI | | `--force` | — | Overwrite existing workflow | Creates `.github/workflows/docs.yml` configured for GitHub Pages deployment with proper caching and Quarto installation.
references/common-errors.md
# Common Errors — great-docs ## Contents - Import and discovery errors - Configuration errors - Build and rendering errors - Quarto errors - Deployment errors ## Import and discovery errors ### `Cannot find an object named X` **Cause**: Object listed in API config but not exported from `__init__.py`. **Fix**: Add `from .module import X` to the package's `__init__.py`. ### `dynamic: true` fails with ImportError **Cause**: Package is not importable in the current environment. **Fix**: Run `pip install -e .` in the project root, or set `dynamic: false` in `great-docs.yml` to use static analysis. ### No API items discovered **Cause**: Package has no public exports in `__init__.py`. **Fix**: Ensure public classes and functions are imported in `__init__.py` or listed in `__all__`. ### Wrong items documented **Cause**: Re-exported third-party symbols treated as own API. **Fix**: Add unwanted items to `exclude` list in `great-docs.yml`: ```yaml exclude: - ThirdPartyClass - imported_helper ``` ## Configuration errors ### `module` not found **Cause**: `module` key doesn't match the importable package name. **Fix**: Use the Python import name, not the PyPI install name. For `pip install py-shiny`, set `module: shiny`. ### Parser mismatch (garbled docstrings) **Cause**: Docstring style doesn't match `parser` setting. **Fix**: Set `parser` to match your docstrings: ```yaml parser: numpy # Parameters\n----------\narg : type parser: google # Args:\n arg (type): desc parser: sphinx # :param arg: desc\n:type arg: type ``` ### CLI reference not generated **Cause**: `cli.module` points to wrong module or the Click app isn't findable. **Fix**: Verify `cli.module` and `cli.name`: ```yaml cli: enabled: true module: my_package.cli # must contain a Click group/command name: my-cli # the CLI entry point name ``` ## Build and rendering errors ### `great-docs/` directory has stale content **Cause**: Edited files inside `great-docs/` directly. **Fix**: Delete `great-docs/` and rebuild. Never edit the build directory — it's overwritten on every build. ### User guide pages in wrong order **Cause**: Missing or inconsistent numeric prefixes. **Fix**: Use 2-digit prefixes: `00-intro.qmd`, `01-install.qmd`, `02-quickstart.qmd`. Gaps are fine (`00`, `05`, `10`). ### Missing cross-references **Cause**: `%seealso` directive references items not in the API. **Fix**: Ensure referenced items are exported and not in `exclude`. ### Source links point to wrong branch **Cause**: `source.branch` doesn't match the repository default. **Fix**: ```yaml source: branch: main # or "master", "develop", etc. ``` ## Quarto errors ### `quarto: command not found` **Cause**: Quarto is not installed or not on PATH. **Fix**: Install from https://quarto.org/docs/get-started/ and ensure `quarto --version` works in the terminal. ### Quarto render fails with YAML error **Cause**: Generated `_quarto.yml` has invalid syntax, usually from special characters in config values. **Fix**: Check `great-docs.yml` for unquoted special characters. Wrap values with colons, brackets, or quotes in double quotes: ```yaml announcement: content: "Version 2.0: now with more features!" ``` ### Quarto render fails with missing bibliography **Cause**: `.qmd` files reference a .bib file that doesn't exist. **Fix**: Remove the `bibliography` field from .qmd frontmatter or create the referenced `.bib` file. ## Deployment errors ### GitHub Pages shows 404 **Cause**: Workflow deploys from wrong directory or branch. **Fix**: Run `great-docs setup-github-pages` to regenerate the workflow. Ensure GitHub Pages is configured to deploy from GitHub Actions (Settings → Pages → Source → GitHub Actions). ### Site URL incorrect in links **Cause**: `site-url` not set in Quarto config. **Fix**: Great Docs auto-detects this from `pyproject.toml` URLs. Add a `Documentation` URL: ```toml [project.urls] Documentation = "https://my-org.github.io/my-package/" ``` ### Changelog empty **Cause**: No GitHub Releases exist, or `GITHUB_TOKEN` not available in CI. **Fix**: Create at least one GitHub Release, or set `changelog: {enabled: false}` to disable.
references/config-reference.md
# Configuration Reference — great-docs.yml ## Contents - Metadata and package info - GitHub and source links - Navigation and theming - Logo, favicon, and hero - Content organization - Features - Advanced All keys are optional. Defaults are auto-detected from `pyproject.toml`. ## Metadata and package info | Key | Type | Default | Description | | -------------- | ----------- | ------------- | ------------------------------------------------------- | | `module` | `str` | auto-detected | Python importable name (not PyPI name) | | `display_name` | `str` | package name | Custom site title | | `parser` | `str` | `"numpy"` | Docstring style: `"numpy"`, `"google"`, `"sphinx"` | | `dynamic` | `bool` | `true` | `true`: runtime introspection; `false`: static (griffe) | | `exclude` | `list[str]` | `[]` | Items to hide from API docs | ## GitHub and source links | Key | Type | Default | Description | | ------------------ | ------ | ------------- | ------------------------------------ | | `repo` | `str` | auto-detected | GitHub repository URL | | `github_style` | `str` | `"widget"` | `"widget"` (shows stars) or `"icon"` | | `source.enabled` | `bool` | `true` | Show "View source" links | | `source.branch` | `str` | `"main"` | Git branch for source links | | `source.path` | `str` | auto-detected | Path to package source | | `source.placement` | `str` | `"repo"` | Where source links point | ## Navigation and theming | Key | Type | Default | Description | | ------------------ | --------------- | ------- | ---------------------------------------------------------------------------------------- | | `navbar_style` | `str` | none | Gradient preset: `"sky"`, `"peach"`, `"lilac"`, `"slate"`, `"honey"`, `"dusk"`, `"mint"` | | `navbar_color` | `str` or `dict` | none | Solid color: `"#1a1a2e"` or `{light: "#fff", dark: "#1a1a2e"}` | | `content_style` | `str` or `dict` | none | Content glow: `"lilac"` or `{preset: "sky", pages: "homepage"}` | | `dark_mode_toggle` | `bool` | `true` | Dark mode toggle in navbar | | `attribution` | `bool` | `true` | "Built with Great Docs" footer | ## Logo, favicon, and hero | Key | Type | Default | Description | | --------- | ---------------- | -------------- | ----------------------------------------------------------- | | `logo` | `str` or `dict` | auto-detected | Logo path or `{light: ..., dark: ...}` | | `favicon` | `str` | auto-generated | Favicon path (generated from logo if SVG) | | `hero` | `bool` or `dict` | auto | Hero section on homepage. `{enabled: true, tagline: "..."}` | Logo auto-detection looks for `assets/logo.svg`, `assets/logo-dark.svg`, etc. ## Content organization | Key | Type | Default | Description | | ------------ | -------------- | ------------- | ------------------------------------------------------- | | `homepage` | `str` | `"index"` | `"index"` (README) or `"user_guide"` (first guide page) | | `user_guide` | auto or `dict` | auto-discover | User guide content source | | `reference` | auto or `list` | auto-discover | API reference sections | | `sections` | `list[dict]` | `[]` | Custom pages: `[{title: "Examples", dir: "examples"}]` | ## Features | Key | Type | Default | Description | | -------------------------- | ------ | ------- | --------------------------------------- | | `cli.enabled` | `bool` | `false` | Generate CLI reference from Click app | | `cli.module` | `str` | — | Module containing the Click app | | `cli.name` | `str` | — | CLI command name | | `changelog.enabled` | `bool` | `true` | Generate changelog from GitHub Releases | | `markdown_pages` | `bool` | `false` | Generate downloadable `.md` pages | | `sidebar_filter.enabled` | `bool` | `true` | Search/filter in API reference sidebar | | `sidebar_filter.min_items` | `int` | `10` | Minimum items to show filter box | | `skill.enabled` | `bool` | `false` | Generate SKILL.md for agent consumption | | `skill.file` | `str` | — | Path to hand-written SKILL.md | ## Advanced | Key | Type | Default | Description | | ------------------- | --------------- | --------------- | ----------------------------------------------------------------------------------- | | `announcement` | `str` or `dict` | none | Banner: `"text"` or `{content: "...", type: "info", dismissable: true, url: "..."}` | | `authors` | `list[dict]` | `[]` | Author metadata: `{name, affiliation, github, orcid}` | | `funding` | `dict` | none | Funding/copyright: `{funder: "...", award: "..."}` | | `include_in_header` | `list[str]` | `[]` | Custom HTML/CSS/JS includes | | `site` | `dict` | Quarto defaults | Quarto theme, TOC, grid settings | | `jupyter` | `str` | `"python3"` | Jupyter kernel for executable code cells | ## Example: minimal config ```yaml # great-docs.yml parser: numpy ``` ## Example: fully customized config ```yaml # great-docs.yml module: my_package display_name: My Package parser: google dynamic: true exclude: - _InternalClass - _helper_fn navbar_style: sky content_style: lilac dark_mode_toggle: true logo: light: assets/logo.svg dark: assets/logo-dark.svg hero: enabled: true tagline: "Beautiful documentation for Python" announcement: content: "v2.0 released!" type: info dismissable: true cli: enabled: true module: my_package.cli name: my-cli changelog: enabled: true sections: - title: Examples dir: examples skill: enabled: true ```
scripts/run-build.sh
#!/usr/bin/env bash # Build and validate a great-docs site set -euo pipefail echo "Building documentation..." great-docs build # Validate output SITE_DIR="great-docs/_site" if [[ ! -d "$SITE_DIR" ]]; then echo "ERROR: Build directory $SITE_DIR not found" exit 1 fi if [[ ! -f "$SITE_DIR/index.html" ]]; then echo "ERROR: index.html not found in $SITE_DIR" exit 1 fi echo "Build complete. Site at $SITE_DIR/" # Count generated pages PAGE_COUNT=$(find "$SITE_DIR" -name "*.html" | wc -l | tr -d ' ') echo "Generated $PAGE_COUNT HTML pages" # Check for key outputs for file in llms.txt llms-full.txt; do if [[ -f "great-docs/$file" ]]; then echo "OK: $file exists" else echo "WARN: $file not found" fi done echo "Done."
scripts/setup-env.sh
#!/usr/bin/env bash # Setup development environment for great-docs set -euo pipefail echo "Creating virtual environment..." python -m venv .venv source .venv/bin/activate echo "Installing package in editable mode..." pip install -e ".[dev]" echo "Installing great-docs..." pip install great-docs echo "Checking Quarto..." if command -v quarto &> /dev/null; then echo "Quarto $(quarto --version) found" else echo "ERROR: Quarto not installed. Visit https://quarto.org/docs/get-started/" exit 1 fi echo "Validating package import..." PACKAGE=$(python -c " import tomllib with open('pyproject.toml', 'rb') as f: d = tomllib.load(f) pkg = d.get('project', {}).get('name', '').replace('-', '_') print(pkg) ") python -c "import ${PACKAGE}; print('Import OK: ${PACKAGE}')" echo "Environment ready."
assets/config-template.yaml
# great-docs.yml starter configuration # Copy to your project root and customize. # All keys are optional — remove what you don't need. # ── Package identity ────────────────────────────────────────── # module: my_package # Python importable name (auto-detected) # display_name: My Package # Custom site title # parser: numpy # Docstring style: numpy, google, sphinx # dynamic: true # false = static analysis (for tricky imports) # ── Exclusions ──────────────────────────────────────────────── # exclude: # - _InternalClass # - _helper_fn # ── Theming ─────────────────────────────────────────────────── # navbar_style: sky # Gradient: sky, peach, lilac, slate, honey, dusk, mint # navbar_color: "#1a1a2e" # Solid color (overrides navbar_style) # content_style: lilac # Content area glow # dark_mode_toggle: true # Dark mode toggle in navbar # attribution: true # "Built with Great Docs" footer # ── Logo and hero ───────────────────────────────────────────── # logo: assets/logo.svg # Or: {light: assets/logo.svg, dark: assets/logo-dark.svg} # favicon: assets/favicon.png # Auto-generated from logo if SVG # hero: # enabled: true # tagline: "Beautiful docs for your Python package" # ── Announcement banner ─────────────────────────────────────── # announcement: # content: "v2.0 released!" # type: info # info, warning, success # dismissable: true # url: https://example.com/changelog # ── GitHub ──────────────────────────────────────────────────── # repo: https://github.com/my-org/my-package # github_style: widget # widget (shows stars) or icon # ── Source links ────────────────────────────────────────────── # source: # enabled: true # branch: main # path: my_package # Path to source (auto-detected) # ── Content ─────────────────────────────────────────────────── # homepage: index # index (README) or user_guide # sections: # - title: Examples # dir: examples # ── CLI documentation ───────────────────────────────────────── # cli: # enabled: true # module: my_package.cli # Module with Click app # name: my-cli # CLI command name # ── Changelog ───────────────────────────────────────────────── # changelog: # enabled: true # Auto-generate from GitHub Releases # ── Sidebar filter ──────────────────────────────────────────── # sidebar_filter: # enabled: true # min_items: 10 # Show filter when sidebar has 10+ items # ── Agent skill ─────────────────────────────────────────────── # skill: # enabled: true # file: skills/my-package/SKILL.md # Path to hand-written SKILL.md