From 4d8ac56bbb48f84f4f38289a1a8ea7df2c4cb2d1 Mon Sep 17 00:00:00 2001 From: flowcool <19570361+flowcool@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:21:56 +0100 Subject: [PATCH 1/2] ci: skip review bots on documentation-only PRs (infra-t4jxa) - Pullfrog skips documentation-only PRs (docs/, openspec/, *.md); fails open. - CodeRabbit filters documentation by path and docs: titles. - PR template: Pullfrog is the sole reviewer; agents no longer request CodeRabbit reviews by hand. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01EQXdcx49Pi5uQErd6kDEKs --- .coderabbit.yaml | 9 +++++++++ .github/pull_request_template.md | 26 ++++++-------------------- .github/workflows/pullfrog.yml | 20 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 57174d8..9eb5e72 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -9,6 +9,15 @@ reviews: auto_review: enabled: true drafts: false + # Documentation-only PRs are not reviewed (conventional "docs" titles). + ignore_title_keywords: + - "docs:" + - "docs(" + # Documentation and specs are not reviewed. + path_filters: + - "!**/*.md" + - "!docs/**" + - "!openspec/**" path_instructions: - path: "apps/**/*.py" instructions: >- diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 91357e2..edafefb 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -15,25 +15,11 @@ profiles, screenshots containing credentials, or downloaded customer documents. State whether AI assisted this change and what the author verified. -## CodeRabbit review - -Public repositories with fewer than 10 stars require a manual review request, -even when automatic reviews are enabled. Bot-authored PRs may also be skipped. - -Once this PR is open and its changes are ready, comment `@coderabbitai review` -on the PR to request an incremental review. Use `@coderabbitai full review` -only when a complete new pass is needed. These commands are instructions for -an actual PR comment; text in this PR description does not trigger them. - -- [ ] Request a CodeRabbit review on the final PR head. -- [ ] Verify that the review completed and covers that head; a walkthrough, - summary, skipped notice or pending status alone is not review evidence. -- [ ] Address confirmed findings and record the review link and reviewed head - SHA. If review cannot complete, record the reason for the maintainer. - -If more commits are pushed after the review, request another incremental pass. -Do not treat CodeRabbit as a substitute for CI or the repository's required -human/independent review. Maintainers decide whether to merge if CodeRabbit -is unavailable. +## Pullfrog review + +Pullfrog is the sole reviewer. Require a completed review of the final head, +resolve actionable threads and keep all CI checks green. Ignore CodeRabbit and +the known sticky `pullfrog-approval` status only. Documentation-only PRs +(`docs/`, `openspec/`, `*.md`) need CI only. Review evidence: diff --git a/.github/workflows/pullfrog.yml b/.github/workflows/pullfrog.yml index 7795a7f..b95f0b5 100644 --- a/.github/workflows/pullfrog.yml +++ b/.github/workflows/pullfrog.yml @@ -20,12 +20,32 @@ jobs: permissions: id-token: write contents: read + pull-requests: read steps: + # Local addition: documentation-only PRs (docs/, openspec/, *.md) are not + # reviewed. Fails open: without a PR number or file list, the review runs. + - name: Skip documentation-only PRs + id: scope + env: + GH_TOKEN: ${{ github.token }} + RUN_NAME: ${{ inputs.name }} + run: | + review=true + pr=$(printf '%s' "$RUN_NAME" | sed -nE 's/^Review (new commits on )?#([0-9]+).*/\2/p') + if [ -n "$pr" ]; then + files=$(gh pr diff "$pr" --repo "$GITHUB_REPOSITORY" --name-only || true) + if [ -n "$files" ] && ! printf '%s\n' "$files" | grep -qvE '^(docs/|openspec/)|\.md$'; then + review=false + fi + fi + echo "review=$review" >> "$GITHUB_OUTPUT" - name: Checkout code + if: steps.scope.outputs.review == 'true' uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 1 - name: Run agent + if: steps.scope.outputs.review == 'true' uses: pullfrog/pullfrog@ae4145b3d72b3f4aa045e2352dc6b2c7538daeeb # deployed on flowcool/ghostfolio-ibkr-sync with: prompt: ${{ inputs.prompt }} From c43450bb299af3331b48b012aa086e8c370abb8d Mon Sep 17 00:00:00 2001 From: flowcool <19570361+flowcool@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:29:00 +0100 Subject: [PATCH 2/2] docs: describe the docs-only rule this repository actually matches (infra-t4jxa) Documentation-only means only *.md files (docs/ and openspec/ do not exist here); doc/ assets keep a Pullfrog review, matching the shared pr-gate rule. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01EQXdcx49Pi5uQErd6kDEKs --- .github/pull_request_template.md | 4 ++-- .github/workflows/pullfrog.yml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index edafefb..cd1f9a3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -19,7 +19,7 @@ State whether AI assisted this change and what the author verified. Pullfrog is the sole reviewer. Require a completed review of the final head, resolve actionable threads and keep all CI checks green. Ignore CodeRabbit and -the known sticky `pullfrog-approval` status only. Documentation-only PRs -(`docs/`, `openspec/`, `*.md`) need CI only. +the known sticky `pullfrog-approval` status only. PRs that change only +`*.md` files need CI only. Review evidence: diff --git a/.github/workflows/pullfrog.yml b/.github/workflows/pullfrog.yml index b95f0b5..7a4c145 100644 --- a/.github/workflows/pullfrog.yml +++ b/.github/workflows/pullfrog.yml @@ -22,7 +22,8 @@ jobs: contents: read pull-requests: read steps: - # Local addition: documentation-only PRs (docs/, openspec/, *.md) are not + # Local addition: documentation-only PRs (only *.md files, docs/ or + # openspec/, the pr-gate rule; doc/ assets still get a review) are not # reviewed. Fails open: without a PR number or file list, the review runs. - name: Skip documentation-only PRs id: scope