Tools: Automating Documentation Review in Your CI/CD Pipeline

Tools: Automating Documentation Review in Your CI/CD Pipeline

Source: Dev.to

The Problem: Documentation Review is a Bottleneck ## What We Automated ## The Setup: GitHub Actions + EkLine ## What the Feedback Looks Like ## Configuring Your Style Rules ## Results After 3 Months ## Bonus: Automating the "What Needs Updating?" Problem ## Alternatives to Consider ## Should You Automate Docs Review? ## Getting Started ## What's in Your Docs CI? You lint your code. You run tests. You check for security vulnerabilities. But what about your documentation? Most teams treat docs as second-class citizens in CI/CD. Code gets automated quality gates; docs get... a human reading them whenever they have time. Here's how to change that. Every docs PR in our repo sat waiting for review. Someone had to manually check: This was tedious for reviewers and slow for contributors. Engineers would submit docs, wait days for feedback, then get a list of nitpicky style fixes. We decided to automate the mechanical stuff. We use EkLine for automated docs review. Here's our workflow: That's it. When someone opens a PR that touches documentation, EkLine: Instead of a wall of linter output in CI logs, contributors get comments exactly where issues are: The feedback is actionable: "Define 'MCP', if it's unfamiliar to the audience." with a suggestion to fix it. EkLine comes with presets (Google, Microsoft), but you can customize: The biggest win wasn't efficiency—it was contributor confidence. Engineers now get instant feedback, fix issues themselves, and submit cleaner PRs. They're not waiting days just to learn they used the wrong heading style. Automated review catches issues in what you submit. But there's a harder problem: knowing what should be submitted after a product change. EkLine also has a Docs Agent that addresses this. You can prompt it: "The user invitation flow changed from 2 steps to 3 steps" This shifts documentation maintenance from "hope someone remembers" to "tell the agent what changed." We're still rolling this out, but early results show it dramatically reduces docs drift. If EkLine doesn't fit your needs: The difference with EkLine is the GitHub integration (inline PR comments) and managed style guide configs. If you want to build your own setup, Vale is excellent. Full setup guide: docs.ekline.io I'm curious what other teams are doing for documentation quality. Are you: Drop a comment—I'd love to learn from your setup. Bipin works on documentation tooling at EkLine. He's interested in how teams scale documentation quality without scaling review burden. Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse CODE_BLOCK: name: Documentation Review on: pull_request: paths: - 'docs/**' - '*.md' jobs: docs-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: EkLine Docs Review uses: ekline-io/ekline-github-action@v6 with: content_dir: ./docs ek_token: ${{ secrets.EKLINE_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }} reporter: github-pr-review Enter fullscreen mode Exit fullscreen mode CODE_BLOCK: name: Documentation Review on: pull_request: paths: - 'docs/**' - '*.md' jobs: docs-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: EkLine Docs Review uses: ekline-io/ekline-github-action@v6 with: content_dir: ./docs ek_token: ${{ secrets.EKLINE_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }} reporter: github-pr-review CODE_BLOCK: name: Documentation Review on: pull_request: paths: - 'docs/**' - '*.md' jobs: docs-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: EkLine Docs Review uses: ekline-io/ekline-github-action@v6 with: content_dir: ./docs ek_token: ${{ secrets.EKLINE_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }} reporter: github-pr-review COMMAND_BLOCK: # .ekline/config.yaml rules: headings: capitalization: sentence-case voice: prefer: active terminology: banned: - utilize # use "use" - leverage # use "use" - click # use "select" required: - API # not "api" or "Api" Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK: # .ekline/config.yaml rules: headings: capitalization: sentence-case voice: prefer: active terminology: banned: - utilize # use "use" - leverage # use "use" - click # use "select" required: - API # not "api" or "Api" COMMAND_BLOCK: # .ekline/config.yaml rules: headings: capitalization: sentence-case voice: prefer: active terminology: banned: - utilize # use "use" - leverage # use "use" - click # use "select" required: - API # not "api" or "Api" - Are headings capitalized correctly? - Did the author use our terminology ("click" not "select")? - Are all the links still valid? - Is the structure consistent with other pages? - Analyzes the changed files against our style guide - Checks all links - Validates terminology - Leaves inline comments directly on the PR - Scan your docs repo for all files mentioning invitations - Draft updated content - Create a PR with the changes - Vale — The underlying linter many tools use. More DIY, but very flexible. - alex — Focused on inclusive language checking. - markdownlint — Basic Markdown formatting rules. - Multiple people contribute to documentation - You have (or want) a style guide - Review cycles are slowing down releases - You're already using docs-as-code - Solo writer on a small project - Docs are in Confluence/Notion (no Git integration) - Your review process works fine - Sign up at ekline.io — free for public repos, 30-day trial on Standard ($50/user/month) - Add the GitHub Action to your repo - Open a PR with docs changes - See the automated review - Running any automated checks? - Using different tools? - Still doing everything manually?