.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"] }