Great Docs

SkillFiles & storage

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.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Great Docs skill

What this skill tells your AI

The instructions your AI receives, as published by pymc-labs/pathmc in .agents/skills/great-docs/SKILL.md and read by ahel’s review.

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

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

NeedUse
Start a new docs sitegreat-docs init
Full build from scratchgreat-docs build
Rebuild after editsgreat-docs build --no-refresh
Live previewgreat-docs preview
See discoverable APIgreat-docs scan --verbose
Change docstring parserparser: google in great-docs.yml
Add CLI referencecli: {enabled: true, module: pkg.cli}
Add a gradient navbarnavbar_style: sky
Exclude internal symbolsexclude: [_InternalClass]
Add user guide pagesCreate user_guide/05-topic.qmd
Add recipesCreate recipes/07-topic.qmd
Set up GitHub Pages CIgreat-docs setup-github-pages
Use static analysisdynamic: false (for tricky imports)
Generate agent skill fileskill: {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

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:

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 or 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.

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:

sections:
  - title: Examples
    dir: examples

Customizing appearance

# 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 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:

CommandPurpose
initCreate config, discover API
buildFull build pipeline
previewLocal dev server
scanPreview discoverable API
configGenerate template config
uninstallRemove config and build dir
setup-github-pagesCreate 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:

#!/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:

#!/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)

Related skills

This is the general-purpose skill for Great Docs. For deeper guidance on specific tasks, use these companion skills:

TaskSkillWhen to use
Write user guide pageswrite-user-guideCreating or editing .qmd pages in user_guide/
Improve docstringsrevise-docstringsAuditing or rewriting Python docstrings for the API reference
Configure the siteconfigure-siteCustomizing great-docs.yml theming, features, and layout
Create or distribute skillsauthor-skillsWriting SKILL.md files, setting up multi-skill distribution

Resources

Signals

GitHub stars
128
Forks
12
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages
  • K6low
    bundled executables the agent is told to run
  • K1binfo
    installs-packages (in scripts/setup-env.sh)
  • K1binfo
    installs-packages (in references/common-errors.md)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
great-docs
Source
github.com/pymc-labs/pathmc