GitHub Actions
Lint the
pull request.
Pin the released CLI, grant read-only permissions, and choose whether prose findings should block or only leave a report.
Blocking check
Block only strong findings.
This workflow emits native annotations and fails only on high-confidence errors. The package version is pinned so a new SlopSift release cannot change a pull request unexpectedly.
name: SlopSift
on:
pull_request:
paths:
- "**/*.md"
- "**/*.mdx"
- "**/*.txt"
permissions:
contents: read
jobs:
lint-writing:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Lint high-confidence writing tells
run: npx --yes slopsift@0.1.5 . --quiet --format github Advisory report
Collect every signal without blocking.
--exit-zero neutralizes lint thresholds, but it deliberately preserves exit status 2 for configuration, model, and runtime failures.
name: SlopSift report
on:
pull_request:
permissions:
contents: read
jobs:
review-writing:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Write a JSON Lines report
run: npx --yes slopsift@0.1.5 . --level info --format json-lines --exit-zero > slopsift.jsonl
- uses: actions/upload-artifact@v4
with:
name: slopsift-report
path: slopsift.jsonl Changed files
Read only what changed.
The shell array preserves spaces in filenames and skips the command when no supported writing changed. No third-party changed-files action is required.
- name: Lint changed writing
shell: bash
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
run: |
mapfile -d '' files < <(
git diff --name-only -z --diff-filter=ACMR "$BASE_SHA" HEAD -- \
"*.md" "*.mdx" "*.txt" "*.html" "*.ts" "*.tsx" "*.js" "*.jsx"
)
if (( ${#files[@]} )); then
npx --yes slopsift@0.1.5 "${files[@]}" --quiet --format github
fi Exit codes
Keep lint failures distinct from broken runs.
Do not append shell-level || true. That hides status 2 as well as ordinary findings. Use --exit-zero for report-only jobs.
Forks
No repository secret required.
The workflow checks out text and invokes a pinned public npm package. It needs only contents: read, so pull requests from forks do not need access to secrets.