---
title: AI-maintained docs
description: Mori, the AI agent that opens a docs PR when your code changes.
section: Advanced
order: 2
---

# AI-maintained docs

Docs drift because code moves and prose doesn't. **Kura Curator** closes the gap: a GitHub Action
(persona: **Mori**) that, when your code changes, updates the affected pages and opens a pull request
for you to review.

## How it works

A page declares the code it documents, in frontmatter:

```md
---
title: The CLI
sources: [src/cli/**]
---
```

When a change touches a file a page's `sources:` match, Mori reads the current code and that page,
edits the page to match, and proposes it as a PR. Pages with no `sources:` are never touched, and
nothing outside your docs directory is ever edited — the output is always a reviewable PR, never a
silent push.

## Setup

Two steps. Add `ANTHROPIC_API_KEY` as a repository secret, then `.github/workflows/curator.yml`:

```yaml
name: curator
on:
  push:
    branches: [main]
    paths: ["src/**"]      # the code your docs track
  workflow_dispatch:
permissions:
  contents: write
  pull-requests: write
jobs:
  curate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with: { fetch-depth: 0 }
      - uses: kurajs/curator@v1
        with:
          anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
          docs-dir: content/docs
```

That's it — the built-in `GITHUB_TOKEN` is enough. On the next push, Mori opens a docs-only PR.

## Beyond the basics

All optional, and documented in the [action's README](https://github.com/kurajs/curator):

- **Docs in a separate repo** — set `docs-repo` and a token that can write to it.
- **Ride the PR** instead of opening a new one (`mode: same-pr`) — for monorepos where code and
  docs review together.
- **A different engine** — the default is the Claude Agent SDK; point `backend: cli` at any
  coding-agent CLI. The grounding (`sources:`, MCP) is the same regardless.

Same idea as the rest of Kura: one source of truth, kept honest — for humans and agents alike.
