GitHub Actions

Annotate AI tells on pull requests and fail the build when content scores below your bar.

Add a style gate to any repository that keeps content in Markdown (Astro, Next.js, Hugo, Docusaurus, ...). It is free and offline: no API key, nothing leaves the runner.

Save this as .github/workflows/sounday.yml (download):

name: Sounday style check
on:
  pull_request:
    paths: ["content/**", "docs/**", "**/*.md", "**/*.mdx"]
jobs:
  sounday:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - name: Check prose for AI tells
        run: npx -y --package=https://sounday.ai/dl/sounday.tgz sounday check content docs --format github --min-score 60

Each AI tell shows up as an annotation on the changed line in the pull request. With --min-score, a file that scores below the bar fails the check. Leave it out to annotate without blocking.

Rewrite in CI

To rewrite generated posts before they are committed, add your key as a repository secret named SOUNDAY_API_KEY and run:

- run: npx -y --package=https://sounday.ai/dl/sounday.tgz sounday rewrite content/new-post.md --write
  env:
    SOUNDAY_API_KEY: ${{ secrets.SOUNDAY_API_KEY }}