This is an automated email from the ASF dual-hosted git repository.

terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 4a6cb6bd3fb Ignore non-behavioral import churn (#38779)
4a6cb6bd3fb is described below

commit 4a6cb6bd3fbac1c162b6bc6cc5a6cdc81933cff3
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 2 23:09:59 2026 +0800

    Ignore non-behavioral import churn (#38779)
    
    Treat normal imports, static imports, import ordering, grouping, and 
unused-import cleanup as non-behavioral churn by default.
    
    Keep such files in the reviewed scope, but do not report them as blockers 
or let them affect the merge verdict unless they hide behavior changes, fail 
repository style gates, touch broad unrelated areas, or violate explicit scope 
rules.
---
 .codex/skills/review-pr/SKILL.md | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/.codex/skills/review-pr/SKILL.md b/.codex/skills/review-pr/SKILL.md
index f2ab4783ba3..0f63a08f3d1 100644
--- a/.codex/skills/review-pr/SKILL.md
+++ b/.codex/skills/review-pr/SKILL.md
@@ -33,7 +33,10 @@ description: >-
 4. If evidence is insufficient, risk is unclear, or validation is incomplete, 
always set `Merge Verdict: Not Mergeable`,
    and list the minimum additional information required.
 5. Change request replies must be gentle in tone and contain no emojis.
-6. If unrelated changes exist, you must explicitly ask for rollback; if none 
exist, do not output that section.
+6. If substantive unrelated changes exist, you must explicitly ask for 
rollback; if none exist, do not output that section.
+   Non-behavioral import-only, whitespace-only, formatter-only, or IDE cleanup 
changes do not count as substantive unrelated changes by default.
+   `import-only` includes normal imports, static imports, import ordering, 
import grouping, and unused-import cleanup when there is no behavior change.
+   These changes must not affect `Merge Verdict` unless they cause 
repository-declared formatting/style gate failures, hide behavior changes, 
touch broad unrelated areas, or violate an explicit user/repo scope rule.
 7. Any "fallback-only without root-cause repair" or "unresolved risk" must not 
receive `Merge Verdict: Mergeable`.
 8. Review only the PR's latest code version; do not reuse conclusions from 
older versions.
 9. If a patch changes name resolution, default schema, fallback binding, 
routing precedence, or identifier interpretation,
@@ -85,6 +88,14 @@ description: >-
 - Use the repository-declared formatting and style gates as authority. For 
ShardingSphere, Spotless and Checkstyle are the formatting/style gates.
 - Do not treat `git diff --check` as a blocker when it conflicts with 
Spotless/Checkstyle behavior, unless the user explicitly asks for that check.
 
+## Non-Behavioral Churn Rule
+
+- Still include import-only, whitespace-only, and formatter-only files in 
`Reviewed Scope` when GitHub `/pulls/{number}/files` includes them.
+- `import-only` includes normal imports, static imports, import ordering, 
import grouping, and unused-import cleanup when there is no production or test 
behavior change.
+- Do not report import-only, whitespace-only, or formatter-only changes as 
`Major Issues`, `Unrelated Changes`, or rollback requests by default.
+- Do not set `Merge Verdict: Not Mergeable` solely because of import ordering, 
unused-import cleanup, whitespace normalization, or IDE/formatter cleanup.
+- Mention them only when they are excessive, obscure the real diff, fail 
Spotless/Checkstyle, touch many unrelated files, or conflict with an explicit 
reviewer/user/repo scope rule.
+
 ## PR Diff Boundary Rule
 
 When reviewing a GitHub PR locally, never use `base.sha..head.sha` or the 
current base branch tip as the PR scope boundary.
@@ -151,7 +162,8 @@ Triage policy:
 
 - Information complete: proceed with full review.
 - Missing evidence: mark as "not mergeable" and request minimum additional 
info.
-- Any off-topic/unrelated changes: mark as "not mergeable" and require scope 
narrowing.
+- Any substantive off-topic/unrelated changes: mark as "not mergeable" and 
require scope narrowing.
+  Ignore non-behavioral import-only, whitespace-only, and formatter-only churn 
for mergeability unless it meets the Non-Behavioral Churn Rule escalation 
conditions.
 - Change set too large: request split first, and provide only blocker-level 
feedback for current version.
 
 ## Minimum Additional Information List (Fixed Template)
@@ -198,7 +210,8 @@ CI/check-run review is not part of this workflow unless 
explicitly requested; do
 6. Supply-chain and license gates (triggered by changes):
    - If dependency manifests or lockfiles changed, check vulnerability 
severity and license constraints
    - Mark whether extra security review is required
-7. Unrelated-change screening: identify code/format/refactor changes not 
directly tied to PR goal; require removal or rollback.
+7. Unrelated-change screening: identify substantive code/config/refactor 
changes not directly tied to PR goal; require removal or rollback.
+   Ignore non-behavioral import-only, whitespace-only, and formatter-only 
churn for mergeability unless it meets the Non-Behavioral Churn Rule escalation 
conditions.
 8. Version baseline control:
    - Base conclusion only on PR latest code version
    - If new commits are added, current conclusion becomes invalid and must be 
re-reviewed on latest version
@@ -337,7 +350,7 @@ Use committer tone, gentle wording, no emojis; use this 
GitHub Markdown skeleton
 
 ### Unrelated Changes
 
-- Include only when unrelated changes exist, and explicitly ask for rollback.
+- Include only when substantive unrelated changes exist, and explicitly ask 
for rollback.
 
 ### Next Steps
 
@@ -392,7 +405,7 @@ Use this GitHub Markdown skeleton:
 - Do not use "fallback logic passes tests" to replace proof of root-cause 
repair.
 - Do not treat fixture-injected or mocked-path tests as full end-to-end proof 
without explicitly stating the gap.
 - Do not output `Mergeable` only because previous-round blockers were closed; 
always do one fresh-pass semantic and regression scan on the latest head.
-- Do not ignore unrelated changes.
+- Do not ignore substantive unrelated changes.
 - Do not reuse old conclusions after new commits are added without re-review.
 - Do not include emojis in change request text.
 - Do not inspect or report GitHub Actions / CI status unless explicitly 
requested.

Reply via email to