agent-ops-mkdocs

MkDocs documentation site management: initializing, updating, building, and deploying

16 stars

Best use case

agent-ops-mkdocs is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

MkDocs documentation site management: initializing, updating, building, and deploying

Teams using agent-ops-mkdocs 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/agent-ops-mkdocs/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/documentation/agent-ops-mkdocs/SKILL.md"

Manual Installation

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

How agent-ops-mkdocs Compares

Feature / Agentagent-ops-mkdocsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

MkDocs documentation site management: initializing, updating, building, and deploying

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

# agent-ops-mkdocs

Skill for managing MkDocs documentation sites: initializing, updating, building, and deploying.

## Purpose

Provide documentation site management capabilities:
1. Initialize MkDocs site from template
2. Add/update documentation pages
3. Generate navigation from directory structure
4. Build and preview locally
5. Deploy to GitHub Pages

## When to Use

- Setting up project documentation
- Adding new documentation pages
- Updating site configuration
- Deploying documentation updates

## Workflow Overview

```mermaid
flowchart LR
    A[Init] --> B[Add Pages]
    B --> C[Build]
    C --> D[Preview]
    D --> E[Deploy]
```

## Commands

### Initialize Site

Set up a new MkDocs site with Material theme.

**Input:**
- Project name
- Site URL (optional)
- Theme options (optional)

**Process:**
1. Create `mkdocs.yml` with Material theme configuration
2. Create `docs/` directory structure
3. Create `docs/index.md` home page
4. Add recommended extensions (admonition, tabs, mermaid)

**Output:**
```
mkdocs.yml
docs/
├── index.md
├── getting-started.md
└── assets/
    └── .gitkeep
```

**Example:**
```
Initialize MkDocs documentation for this project
```

### Add Page

Add a new documentation page.

**Input:**
- Page title
- Section (optional)
- Content or template

**Process:**
1. Create markdown file in appropriate location
2. Update `nav` in mkdocs.yml
3. Add basic structure (title, sections)

**Example:**
```
Add a page called "API Reference" in the reference section
```

### Generate Navigation

Auto-generate nav structure from docs/ directory.

**Process:**
1. Scan docs/ directory recursively
2. Extract titles from markdown files
3. Build nav tree
4. Update mkdocs.yml

**Example:**
```
Update mkdocs navigation from directory structure
```

### Build Site

Build the static documentation site.

**Process:**
1. Run `mkdocs build`
2. Report any warnings/errors
3. Output to `site/` directory

**Example:**
```
Build the documentation site
```

### Preview Site

Start local development server.

**Process:**
1. Run `mkdocs serve`
2. Report URL (typically http://localhost:8000)
3. Watch for changes

**Example:**
```
Preview the documentation locally
```

### Deploy to GitHub Pages

Deploy documentation to GitHub Pages.

**Process:**
1. Build site with `mkdocs build --strict`
2. Deploy with `mkdocs gh-deploy`
3. Or use GitHub Actions workflow

**Example:**
```
Deploy documentation to GitHub Pages
```

## Configuration Templates

### Minimal mkdocs.yml

```yaml
site_name: Project Name
docs_dir: docs
site_dir: site

theme:
  name: material

plugins:
  - search

nav:
  - Home: index.md
```

### Full Featured mkdocs.yml

```yaml
site_name: Project Name
site_url: https://username.github.io/project/
site_description: Project description
docs_dir: docs
site_dir: site
use_directory_urls: true

repo_name: username/project
repo_url: https://github.com/username/project

theme:
  name: material
  features:
    - navigation.sections
    - navigation.tabs
    - navigation.tabs.sticky
    - navigation.expand
    - navigation.top
    - content.code.copy
    - content.code.annotate
    - search.suggest
    - search.highlight
  palette:
    - scheme: default
      primary: indigo
      accent: indigo
      toggle:
        icon: material/brightness-7
        name: Switch to dark mode
    - scheme: slate
      primary: indigo
      accent: indigo
      toggle:
        icon: material/brightness-4
        name: Switch to light mode

plugins:
  - search

markdown_extensions:
  - admonition
  - footnotes
  - tables
  - toc:
      permalink: true
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.details
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - attr_list
  - md_in_html

nav:
  - Home: index.md
  - Getting Started: getting-started.md
```

## Page Templates

### Standard Page

```markdown
# Page Title

Brief description of the page content.

## Section 1

Content...

## Section 2

Content...

## See Also

- [Related Page](related.md)
```

### API Reference Page

```markdown
# API Reference

## Endpoints

### GET /resource

Description of endpoint.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| id | string | Yes | Resource identifier |

**Response:**

```json
{
  "id": "123",
  "name": "Example"
}
```

### POST /resource

...
```

### Tutorial Page

```markdown
# Tutorial: Feature Name

Learn how to use Feature Name in 10 minutes.

## Prerequisites

- Requirement 1
- Requirement 2

## Step 1: Setup

First, we need to...

## Step 2: Configuration

Next, configure...

## Step 3: Usage

Now you can...

## Summary

In this tutorial, you learned:

- Point 1
- Point 2

## Next Steps

- [Advanced Usage](advanced.md)
```

## Directory Structure Patterns

### Simple Project

```
docs/
├── index.md
├── getting-started.md
├── configuration.md
└── api-reference.md
```

### Medium Project

```
docs/
├── index.md
├── getting-started/
│   ├── installation.md
│   ├── quickstart.md
│   └── first-steps.md
├── guides/
│   ├── basic-usage.md
│   └── advanced-usage.md
├── reference/
│   ├── api.md
│   └── configuration.md
└── about/
    ├── changelog.md
    └── contributing.md
```

### Large Project

```
docs/
├── index.md
├── getting-started/
│   ├── index.md
│   ├── installation.md
│   ├── quickstart.md
│   └── tutorial.md
├── concepts/
│   ├── index.md
│   ├── architecture.md
│   └── terminology.md
├── guides/
│   ├── index.md
│   ├── user-guide.md
│   ├── admin-guide.md
│   └── developer-guide.md
├── reference/
│   ├── index.md
│   ├── api/
│   ├── cli/
│   └── configuration/
├── deployment/
│   ├── index.md
│   ├── docker.md
│   └── kubernetes.md
└── about/
    ├── changelog.md
    ├── roadmap.md
    └── contributing.md
```

## GitHub Actions Integration

### Deployment Workflow

```yaml
# .github/workflows/docs.yml
name: Deploy Documentation

on:
  push:
    branches: [main]
    paths:
      - 'docs/**'
      - 'mkdocs.yml'
  workflow_dispatch:

permissions:
  contents: write
  pages: write
  id-token: write

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - run: pip install mkdocs-material pymdown-extensions
      - run: mkdocs gh-deploy --force
```

## Dependencies

Required Python packages:

```bash
pip install mkdocs mkdocs-material pymdown-extensions
```

Or with uv:

```bash
uv add --dev mkdocs mkdocs-material pymdown-extensions
```

## Validation

Before deploying, validate:

1. **Build succeeds**: `mkdocs build --strict`
2. **Links work**: No broken internal links
3. **Images load**: All referenced images exist
4. **Navigation correct**: All pages accessible

## Integration with Other Skills

| Skill | Integration |
|-------|-------------|
| `agent-ops-docs` | Documentation content management |
| `agent-ops-validation` | Include docs build in validation |
| `agent-ops-git` | Commit documentation changes |

## Troubleshooting

### "mkdocs: command not found"

Install MkDocs:
```bash
pip install mkdocs mkdocs-material
```

### "Theme 'material' not found"

Install Material theme:
```bash
pip install mkdocs-material
```

### "Mermaid diagrams not rendering"

Ensure superfences extension is configured correctly in mkdocs.yml.

### "Navigation not updating"

Regenerate nav:
```
Update mkdocs navigation from directory structure
```

### "GitHub Pages 404"

Check:
- `site_url` matches your GitHub Pages URL
- `use_directory_urls: true` is set
- gh-pages branch exists

Related Skills

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

crawl-docs-skill

16
from diegosouzapw/awesome-omni-skill

Run a Crawl4AI-based doc crawler and save internal pages as Markdown using page titles as filenames. Use when the user provides a docs URL and wants all internal subpages saved as .md files. Environment setup should only use uv.

copywriter

16
from diegosouzapw/awesome-omni-skill

Brand voice guardian and conversion-focused copywriter, specializing in direct, no-fluff copy that adapts to project's brand voice

compound

16
from diegosouzapw/awesome-omni-skill

Capture session learnings and save to skills, guidelines, or reference docs under ~/.claude/.

coder-docs

16
from diegosouzapw/awesome-omni-skill

Index + offline snapshot of coder/coder documentation (progressive disclosure).

code-documenter

16
from diegosouzapw/awesome-omni-skill

Use when adding docstrings, creating API documentation, or building documentation sites. Invoke for OpenAPI/Swagger specs, JSDoc, doc portals, tutorials, user guides.

code-documentation

16
from diegosouzapw/awesome-omni-skill

Writing effective code documentation - API docs, README files, inline comments, and technical guides. Use for documenting codebases, APIs, or writing developer guides.

code-documentation-doc-generate

16
from diegosouzapw/awesome-omni-skill

You are a documentation expert specializing in creating comprehensive, maintainable documentation from code. Generate API docs, architecture diagrams, user guides, and technical references using AI...

claw-wiki

16
from diegosouzapw/awesome-omni-skill

A knowledge base for the Generative Agents Town. Read and write articles to share knowledge.

changelogator

16
from diegosouzapw/awesome-omni-skill

Generate a changelog from git commits. Use when the user asks to generate a changelog, prepare release notes, summarize commits, prepare a release, suggest a version bump, or review changes since last tag. Also use when the user mentions "changelog", "release notes", "what changed", "version bump", or "semver".

changelog-update

16
from diegosouzapw/awesome-omni-skill

Update CHANGELOG.md [Unreleased] section with business-focused entries via systematic file review

changelog-generator

16
from diegosouzapw/awesome-omni-skill

Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.