.docskeeper.yml

Per-repository configuration file. Place at the repo root. All fields are optional — docs-keeper has sensible defaults.

Full reference

enabled: true                       # default true — set false to pause the repo
mode: pr                            # 'pr' (default) opens a PR, 'comment' posts inline

docs:                               # which files docs-keeper considers documentation
  - { glob: "README.md", kind: readme }
  - { glob: "docs/**/*.md", kind: guide }
  - { glob: "CHANGELOG.md", kind: changelog }

rules:                              # map source paths → doc paths to update
  - when: { path_glob: "src/api/**" }
    then: { update: ["docs/api.md"] }
  - when: { path_glob: "src/cli/**" }
    then: { update: ["README.md"] }

ignore:                             # paths to never analyse
  - "node_modules/**"
  - "dist/**"
  - "*.test.ts"

Field reference

enabled

Boolean. When false, no runs are created on merge. Default: true.

mode

One of pr | comment. In pr mode, docs-keeper opens a follow-up PR. In comment mode, it posts the proposed changes inline on the source PR instead. Default: pr.

docs

Array of { glob, kind }. glob matches doc-file paths. kind is one of readme, guide, or changelog — used to pick a prompt template.

rules

Array of { when, then }. When a source PR touches files matching when.path_glob, the docs in then.update are added to the candidate set. Rules are additive — multiple rules can target the same doc.

ignore

Globs of paths docs-keeper never analyses (e.g. lockfiles, build output, fixtures).

Worked example: API library

A typical TypeScript library that exposes both an SDK and a CLI:

enabled: true
mode: pr

docs:
  - { glob: "README.md", kind: readme }
  - { glob: "docs/api/*.md", kind: guide }
  - { glob: "CHANGELOG.md", kind: changelog }

rules:
  - when: { path_glob: "src/sdk/**" }
    then: { update: ["docs/api/sdk.md", "README.md"] }
  - when: { path_glob: "src/cli/**" }
    then: { update: ["docs/api/cli.md", "README.md"] }
  - when: { path_glob: "src/types/**" }
    then: { update: ["docs/api/sdk.md"] }