From e604a429eb0fe5ea5d6cb84875f393c10b3b60c9 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Wed, 29 Jul 2026 19:25:43 +0300 Subject: [PATCH 1/3] Require contributors to respond to all AI reviewer comments New contributors routinely leave Codex Review comments unanswered. The rule existed only in PR_AUTHOR_REVIEWER_BEST_PRACTICES.md, and the AI reviewer philosophy doc undercut it by framing all its guidance as "not strict requirements". State the requirement in CONTRIBUTING.md where new contributors read the PR steps, and carve it out as the one strict requirement in AI-REVIEWER.md. Co-Authored-By: Claude Opus 5 --- contributingGuides/CONTRIBUTING.md | 7 ++++--- contributingGuides/philosophies/AI-REVIEWER.md | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/contributingGuides/CONTRIBUTING.md b/contributingGuides/CONTRIBUTING.md index 95ffa8992189..ba66c8f1e806 100644 --- a/contributingGuides/CONTRIBUTING.md +++ b/contributingGuides/CONTRIBUTING.md @@ -202,15 +202,16 @@ This helps future investigators understand the history and current status of err 17. Upon submission of a PR, please include a numbered list of explicit testing steps for each platform (Web, iOS, Android, and Mobile Web) to confirm the fix works as expected and there are no regressions. 18. Please add a screenshot of the app running on each platform (Web, iOS, Android, Mobile Web). 19. Please review the [PR Authoring & Reviewing Best Practices](./PR_AUTHOR_REVIEWER_BEST_PRACTICES.md) for standards on PR titles, testing responsibilities, and the review workflow. +20. You must respond to **every** comment left by our AI reviewers (e.g. Codex Review) before your PR is considered ready for review. React with 👍 if you are applying the feedback or 👎 if you are not, and leave a short comment explaining your reasoning either way. You are not required to make every change an AI reviewer suggests — its feedback is advisory — but you are required to respond to each comment so that reviewers can see it was considered rather than overlooked. See the [AI Reviewer philosophy](./philosophies/AI-REVIEWER.md) for more detail. ### Completing the final checklist -20. Once your PR has been deployed to production, a checklist will automatically be commented in the GH issue. You're required to complete the steps that have your name mentioned before payment will be issued. -21. The items requiring your completion consist of: +21. Once your PR has been deployed to production, a checklist will automatically be commented in the GH issue. You're required to complete the steps that have your name mentioned before payment will be issued. +22. The items requiring your completion consist of: 1. Proposing steps to take for a regression test to ensure the bug doesn't occur again (For information on how to successfully complete this, head [here](https://github.com/Expensify/App/blob/main/contributingGuides/REGRESSION_TEST_BEST_PRACTICES.md)). 2. Identifying and noting the offending PR that caused the bug (if any). 3. Commenting on the offending PR to note the bug it caused and why (if applicable). 4. Starting a conversation on if any additional steps should be taken to prevent further bugs similar to the one fixed from occurring again. -22. Once the above items have been successfully completed, then payments will begin to be issued. +23. Once the above items have been successfully completed, then payments will begin to be issued. ### Timeline expectations and asking for help along the way - If you have made a change to your pull request and are ready for another review, leave a comment that says "Updated" on the pull request itself. diff --git a/contributingGuides/philosophies/AI-REVIEWER.md b/contributingGuides/philosophies/AI-REVIEWER.md index 18107f756808..f91a0f0c2eb8 100644 --- a/contributingGuides/philosophies/AI-REVIEWER.md +++ b/contributingGuides/philosophies/AI-REVIEWER.md @@ -25,7 +25,10 @@ As the codebase and contributor base grow, AI reviewers help maintain consistent ## Guiding Principles -These are recommendations for working effectively with AI reviewers, not strict requirements. +These are recommendations for working effectively with AI reviewers, not strict requirements — with one exception: responding to AI reviewer comments is required, as described below. + +### Always respond to AI reviewer comments +PR authors must respond to every comment left by an AI reviewer before requesting final review. React with 👍 when applying the feedback or 👎 when not, and leave a short comment explaining the reasoning either way. Acting on the feedback is optional; responding to it is not. Silence leaves human reviewers unable to tell whether a point was considered and dismissed or simply missed, which is the most common gap we see in PRs from new contributors. ### Treat AI feedback as suggestions AI reviewers provide automated feedback to assist human reviewers, but their output is not infallible. Contributors and reviewers should evaluate each piece of feedback on its merits rather than blindly accepting or rejecting it. From 17ac4702f09e2ae43c72559022134408ffc96650 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Wed, 29 Jul 2026 19:27:36 +0300 Subject: [PATCH 2/3] Add AI reviewer response item to the PR Author Checklist Docs alone rely on reviewers noticing. A checkbox makes the requirement part of the gate every author already walks through. Co-Authored-By: Claude Opus 5 --- .github/PULL_REQUEST_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 69e225bb3b15..aec4d52e5cac 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -86,6 +86,7 @@ This is a checklist for PR authors. Please make sure to complete all tasks and c - [ ] iOS: mWeb Safari - [ ] MacOS: Chrome / Safari - [ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed) +- [ ] I responded to every comment left by our AI reviewers (e.g. Codex Review) with 👍 or 👎 and a short explanation. Applying the feedback is optional, responding to it is not (see [AI Reviewer philosophy](https://github.com/Expensify/App/blob/main/contributingGuides/philosophies/AI-REVIEWER.md)) - [ ] I followed proper code patterns (see [Reviewing the code](https://github.com/Expensify/App/blob/main/contributingGuides/PR_REVIEW_GUIDELINES.md#reviewing-the-code)) - [ ] I verified that comments were added to code that is not self explanatory - [ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing. From 78c8db3024b8c5374cb1d7ecc2fb064067cc7eb9 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Wed, 29 Jul 2026 19:33:52 +0300 Subject: [PATCH 3/3] remove pull request template changees --- .github/PULL_REQUEST_TEMPLATE.md | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index aec4d52e5cac..69e225bb3b15 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -86,7 +86,6 @@ This is a checklist for PR authors. Please make sure to complete all tasks and c - [ ] iOS: mWeb Safari - [ ] MacOS: Chrome / Safari - [ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed) -- [ ] I responded to every comment left by our AI reviewers (e.g. Codex Review) with 👍 or 👎 and a short explanation. Applying the feedback is optional, responding to it is not (see [AI Reviewer philosophy](https://github.com/Expensify/App/blob/main/contributingGuides/philosophies/AI-REVIEWER.md)) - [ ] I followed proper code patterns (see [Reviewing the code](https://github.com/Expensify/App/blob/main/contributingGuides/PR_REVIEW_GUIDELINES.md#reviewing-the-code)) - [ ] I verified that comments were added to code that is not self explanatory - [ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.