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 619bdce9113 Refine merge decision output template (#38816)
619bdce9113 is described below

commit 619bdce9113c7b7915cbd2c1c3b0d7d367f2f57e
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 5 23:17:09 2026 +0800

    Refine merge decision output template (#38816)
    
    Clarify the review-pr skill output around merge decisions, issues, evidence,
    review details, expert review, and missing evidence handling.
    
    Move optional not-mergeable sections out of the required template to avoid
    placeholder headings, and make scope expansion require rollback or 
narrowing.
---
 .codex/skills/review-pr/SKILL.md           | 166 +++++++++++++++--------------
 .codex/skills/review-pr/agents/openai.yaml |   2 +-
 2 files changed, 87 insertions(+), 81 deletions(-)

diff --git a/.codex/skills/review-pr/SKILL.md b/.codex/skills/review-pr/SKILL.md
index 408e553d5b6..5d440d30218 100644
--- a/.codex/skills/review-pr/SKILL.md
+++ b/.codex/skills/review-pr/SKILL.md
@@ -14,7 +14,7 @@ description: >-
 
 - Make merge decisions for ShardingSphere PRs with a "root-cause-first, 
evidence-first" approach.
 - Output a single merge decision:
-  - `Merge Verdict`: `Mergeable` / `Not Mergeable`
+  - `Merge Decision`: `Mergeable` / `Not Mergeable`
 
 ## Trigger Scenarios
 
@@ -30,15 +30,15 @@ description: >-
    - Performance (complexity, hot paths, memory, and I/O)
    - Compatibility (behavior, config, API-SPI, SQL dialect)
    - Functional degradation and regression surface
-3. You must provide exactly one `Merge Verdict`.
-4. If evidence is insufficient, risk is unclear, or validation is incomplete, 
always set `Merge Verdict: Not Mergeable`,
+3. You must provide exactly one `Merge Decision`.
+4. If evidence is insufficient, risk is unclear, or validation is incomplete, 
always set `Merge Decision: Not Mergeable`,
    and list the minimum additional information required.
 5. Change request replies must be gentle in tone and contain no emojis.
-6. If substantive unrelated changes exist, you must explicitly ask for 
rollback; if none exist, do not output that section.
+6. If substantive unrelated changes or substantive scope expansion exist, you 
must explicitly ask for rollback or scope narrowing; 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`.
+   These changes must not affect `Merge Decision` 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 Decision: 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,
    you must perform an explicit semantic-compatibility review against the 
documented behavior of the target database or framework
@@ -56,12 +56,12 @@ description: >-
 13. If local verification is used to support mergeability and the command is 
module-scoped, include `-am` by default unless you can prove all dependent 
modules were built from the same latest PR head.
     Do not treat a scoped run without dependent modules as conclusive evidence 
for `Mergeable`.
 14. Before any final output, complete the `Self-Iteration Gate` and stop only 
after the latest internal review pass finds no new actionable issues.
-    Do not expose intermediate review rounds; output one consolidated review 
with exactly one `Merge Verdict`.
+    Do not expose intermediate review rounds; output one consolidated review 
with exactly one `Merge Decision`.
 15. During the self-iteration loop, include at least one explicit adversarial 
pass that assumes the PR is unsafe and actively searches for:
     - one cross-dialect or adjacent-feature regression path,
     - one config-disabled or feature-flag-off path,
     - one original symptom path that is only partially covered by tests.
-    If any of these remain unresolved, set `Merge Verdict: Not Mergeable`.
+    If any of these remain unresolved, set `Merge Decision: Not Mergeable`.
 16. If a PR changes SQL parser behavior, grammar, visitor logic, supported SQL 
cases, or parser tests for a dialect,
     you must complete both syntax-validity review and dialect-family impact 
review before concluding:
     - Every SQL syntax added, changed, accepted, rejected, or suggested in the 
review must be backed by the target database's official documentation for the 
exact database family and relevant version.
@@ -70,13 +70,13 @@ description: >-
     - If the PR changes a trunk dialect parser, inspect whether each branch 
dialect that reuses or copies that parser logic has the same root cause, 
regression risk, or missing validation.
     - If the PR changes a branch dialect parser, inspect whether the same root 
cause also exists in the corresponding trunk dialect or sibling branch dialects 
because of shared or copied grammar / visitor logic.
     - For each related dialect, classify it as: `same issue confirmed`, `not 
applicable with evidence`, or `unresolved`.
-    - If official documentation support is missing, ambiguous, or contradicts 
the PR behavior, bias to `Merge Verdict: Not Mergeable`.
-    - If any related dialect remains unresolved, or the review skips the 
family scan, bias to `Merge Verdict: Not Mergeable`.
+    - If official documentation support is missing, ambiguous, or contradicts 
the PR behavior, bias to `Merge Decision: Not Mergeable`.
+    - If any related dialect remains unresolved, or the review skips the 
family scan, bias to `Merge Decision: Not Mergeable`.
     - Do not recommend unsupported or undocumented SQL syntax in review 
feedback.
 17. If a method reachable from the Proxy or JDBC DML/DQL high-frequency SQL 
execution path uses `ConcurrentHashMap#computeIfAbsent`,
     require a preceding `get` lookup and call `computeIfAbsent` only when the 
value is missing, to avoid the JDK 8 implementation bottleneck.
-    If this pattern is absent and the path is high-frequency, bias to `Merge 
Verdict: Not Mergeable`.
-18. Do not use GitHub Actions, CI status, or check-run completion as part of 
the merge verdict unless explicitly requested by the user.
+    If this pattern is absent and the path is high-frequency, bias to `Merge 
Decision: Not Mergeable`.
+18. Do not use GitHub Actions, CI status, or check-run completion as part of 
the merge decision unless explicitly requested by the user.
 19. Use repository-declared formatting/style gates as the formatting 
authority; do not introduce extra formatting blockers outside those gates by 
default.
 20. Treat GitHub PR metadata and `/pulls/{number}/files` as the authoritative 
scope boundary.
     Before reporting unrelated changes or making any scope-based finding, 
verify that the local diff file list matches GitHub's file list.
@@ -84,25 +84,25 @@ description: >-
 21. If a target-dialect or target-feature fix touches shared modules, run a 
shared-layer ownership gate before considering `Mergeable`.
     Classify every shared change as one of: required generic hook, 
target-specific semantic leakage, or unrelated/substantive scope expansion.
     If shared code contains target dialect names, target protocol state, 
target-specific method names, hard-coded target database type strings, or 
target lifecycle concepts,
-    bias to `Merge Verdict: Not Mergeable` unless the PR proves this is an 
intentional generic contract for all affected dialects/features.
+    bias to `Merge Decision: Not Mergeable` unless the PR proves this is an 
intentional generic contract for all affected dialects/features.
 22. For new or changed constructors, public/shared methods, return values, 
fields, cache keys, and session/executor state, run an implicit-state review.
     Look for ordinary values used as hidden business states, mode switches, 
lifecycle markers, or feature flags, including but not limited to:
     `null`, magic numbers, empty strings, overloaded booleans, special enum 
values, empty collections, no-op objects, type-name string checks,
     partially initialized objects, begin/finish temporal side effects, and 
context/global side channels.
     If such implicit state controls behavior across shared modules or public 
APIs, require an explicit model such as a non-null key/token,
     a dedicated state object, a clear enum with one meaning per value, or an 
explicit absence-return contract where repository rules allow it.
-    If the implicit state leaks target-specific semantics into shared code, 
bias to `Merge Verdict: Not Mergeable`.
+    If the implicit state leaks target-specific semantics into shared code, 
bias to `Merge Decision: Not Mergeable`.
 23. If a PR claims to fix, close, or resolve one or more issues, run a 
linked-issue completeness gate before considering `Mergeable`.
     Read the linked issue body and relevant issue comments, decompose the 
issue into required symptoms, expected behaviors, affected topologies, inputs, 
and edge cases,
     and map each required issue behavior to concrete PR code changes and 
validation evidence.
     If the issue cannot be read, the issue scope is ambiguous, any required 
issue behavior is only partially fixed, or the PR over-claims the fix scope,
-    bias to `Merge Verdict: Not Mergeable` and list the minimum missing 
implementation or evidence.
+    bias to `Merge Decision: Not Mergeable` and list the minimum missing 
implementation or evidence.
 
 ## Review Boundary
 
 - Review PR code, tests, behavior, compatibility, regression risk, and scope.
 - For GitHub PRs, derive the reviewed file list from the latest PR head and 
GitHub `/pulls/{number}/files`, then use local git only to reproduce and 
inspect that scope.
-- Do not inspect or use GitHub Actions, CI status, or check-run completion for 
the merge verdict unless the user explicitly asks for CI review.
+- Do not inspect or use GitHub Actions, CI status, or check-run completion for 
the merge decision unless the user explicitly asks for CI review.
 - Do not treat CI pending, failing, or passing as a review finding by default; 
final approvers and mergers handle that gate.
 - 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.
@@ -111,8 +111,8 @@ description: >-
 
 - 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.
+- Do not report import-only, whitespace-only, or formatter-only changes as 
`Issues`, `Unrelated Changes`, or rollback requests by default.
+- Do not set `Merge Decision: 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
@@ -160,7 +160,7 @@ Forbidden sources:
 
 ## Review Efficiency Rules
 
-- In the current reply, prioritize blocking issues and `Merge Verdict`.
+- In the current reply, prioritize `Summary`, blocking issues, and minimum 
next actions.
 - If the PR is obviously too large (too many files or too much churn), suggest 
splitting first.
 - If full review cannot be completed immediately, provide high-risk blockers 
first to avoid blocking the delivery chain.
 
@@ -187,7 +187,7 @@ Triage policy:
 
 - Information complete: proceed with full review.
 - Missing evidence: mark as "not mergeable" and request minimum additional 
info.
-- Any substantive off-topic/unrelated changes: mark as "not mergeable" and 
require scope narrowing.
+- Any substantive off-topic/unrelated changes or substantive scope expansion: 
mark as "not mergeable" and require rollback or 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.
 
@@ -244,13 +244,13 @@ 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 substantive code/config/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, rollback, or 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.
 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
 9. Self-iteration gate: repeat internal review passes until the latest pass 
finds no new actionable findings.
-10. Merge decision: output `Merge Verdict`.
+10. Merge decision: output `Merge Decision`.
 11. Generate feedback: follow the output template below.
 
 ## Self-Iteration Gate
@@ -270,11 +270,11 @@ Before producing the final review output, run an internal 
self-review loop on th
    - Missed unrelated substantive changes.
    - Missed output-template or evidence gaps.
 4. If the self-review finds any new actionable issue, add it to the candidate 
findings, deduplicate it against existing findings,
-   update the merge verdict and next steps if needed, and repeat the loop.
+   update the merge decision and next steps if needed, and repeat the loop.
 5. Do not treat restatements, optional polish, speculative risks outside the 
PR scope, or already captured issues as new actionable findings.
 6. Stop only when the latest self-review pass finds no new actionable issues 
compared with the accumulated candidate findings.
-7. Do not expose intermediate review rounds, draft verdicts, or self-review 
transcripts to the user.
-8. Produce one consolidated final review with exactly one `Merge Verdict`.
+7. Do not expose intermediate review rounds, draft decisions, or self-review 
transcripts to the user.
+8. Produce one consolidated final review with exactly one `Merge Decision`.
 
 ## Root-Cause Validation Checklist (Must Answer Each)
 
@@ -290,7 +290,7 @@ Before producing the final review output, run an internal 
self-review loop on th
 - Do the target database official docs and ShardingSphere docs/examples both 
support the resulting parser behavior, or is a documentation mismatch still 
open?
 - Does the config-disabled or feature-flag-off path still behave correctly?
 
-If the root-cause chain cannot be fully proven fixed, set `Merge Verdict: Not 
Mergeable`.
+If the root-cause chain cannot be fully proven fixed, set `Merge Decision: Not 
Mergeable`.
 
 ## Linked Issue Completeness Gate
 
@@ -308,7 +308,7 @@ Must answer:
 - If the PR narrows the issue scope, is that limitation explicit, technically 
justified, and accepted by maintainers or the issue context?
 
 If the linked issue cannot be read, the issue scope is ambiguous, or any 
required issue behavior is only partially fixed or unvalidated,
-set `Merge Verdict: Not Mergeable` and list the minimum missing implementation 
or evidence.
+set `Merge Decision: Not Mergeable` and list the minimum missing 
implementation or evidence.
 
 ## Shared Scope & Implicit State Gate
 
@@ -328,7 +328,7 @@ Must answer:
 - Could the same behavior be expressed with a non-null generic key, explicit 
state object, clear enum, target-module-owned lifecycle API, or documented 
absence-return contract?
 - Do tests validate generic shared behavior separately from target dialect 
activation?
 
-If target-specific semantics leak into shared code, or if implicit state is 
used as a mode switch in new/changed shared APIs, set `Merge Verdict: Not 
Mergeable`.
+If target-specific semantics leak into shared code, or if implicit state is 
used as a mode switch in new/changed shared APIs, set `Merge Decision: Not 
Mergeable`.
 
 ## Risk Checklist (Must Cover)
 
@@ -359,15 +359,21 @@ If target-specific semantics leak into shared code, or if 
implicit state is used
 - Prefer tests that prove boundary-to-runtime propagation and adjacent valid 
values over adding defensive checks at every layer.
 - If boundary ownership is unclear, ask for production entry-path evidence and 
treat duplicate validation as a design question, not an automatic blocker.
 
-## Coverage Statement (Required in Every Review)
+## Review Details Statement (Required in Every Review)
 
-Each review must declare:
+Each review must include a `Review Details` section with:
 
 - `Reviewed Scope`: files/modules actually reviewed this round, plus the 
latest PR head SHA, local merge-base SHA when local git is used, and whether 
the local file list matched GitHub `/pulls/{number}/files`.
 - `Not Reviewed Scope`: unreviewed or only superficially reviewed areas.
-- `Need Expert Review`: whether domain reviewers are required (security, 
concurrency, performance, protocol, etc.).
+- `Verification`: reviewer-run commands and exit codes, or a short reason why 
local verification was not run.
 - For SQL parser reviews, `Reviewed Scope` must explicitly name the target 
dialect, any related trunk / branch dialects checked, and the documentation 
pages / repo doc paths used to validate syntax behavior.
 
+If a required domain expert review is still needed, include `Expert Review 
Needed` in `Summary`; omit it when no expert review is required.
+Treat required expert review as blocking unless the evidence proves the 
remaining review is advisory only.
+Require expert review when merge safety depends on specialized domains such as 
security, parser grammar or dialect semantics, Proxy 
protocol/authentication/packet behavior,
+high-concurrency or high-frequency performance paths, 
transaction/pipeline/data consistency, shared 
metadata/binder/routing/default-schema behavior, dependency/license changes,
+or any area the reviewer cannot confidently validate from available evidence.
+
 ## Multi-Round Change Request Comparison Rules
 
 Apply this section only when previous feedback exists in GitHub-visible PR 
review comments, review threads, or change requests.
@@ -392,20 +398,31 @@ When GitHub-visible previous-round feedback exists, 
perform incremental comparis
 - Format every review as GitHub-flavored Markdown that can be pasted directly 
into a PR comment or review body.
 - The GitHub-facing review body must not be wrapped in a code fence, 
blockquote, XML/HTML container, or plain-text transcript.
 - Use the same natural language as the user request unless the user explicitly 
asks for another language.
-- Use Markdown headings (`### Decision`, `### Major Issues`, etc.) with a 
blank line before and after each heading.
+- Use Markdown headings (`### Summary`, `### Issues`, etc.) with a blank line 
before and after each heading.
 - Keep the GitHub Markdown structure unchanged regardless of output language.
-- Keep `Merge Verdict: ...` as a bold bullet near the top, and output exactly 
one verdict line.
-- Keep stable review labels in English, such as `Merge Verdict`, `Reviewed 
Scope`, `Not Reviewed Scope`, and `Need Expert Review`,
+- Keep `Merge Decision: ...` as a bold bullet in `Summary`, and output exactly 
one merge-decision line.
+- Keep stable review labels in English, such as `Merge Decision`, `Reason`, 
`Expert Review Needed`, `Reviewed Scope`, `Not Reviewed Scope`, and 
`Verification`,
   so they remain searchable and consistent.
-- Do not include internal self-iteration rounds, draft verdicts, or 
self-review transcripts in the GitHub-facing review body.
-- Use short unordered bullets under each heading; use bold inline labels such 
as `Symptom:`, `Risk:`, and `Action:` for issue details.
+- Do not include internal self-iteration rounds, draft decisions, or 
self-review transcripts in the GitHub-facing review body.
+- Keep `Reason` to one sentence or one short bullet; put proof in `Evidence`, 
and put confirmed blockers plus missing required proof in `Issues`.
+- Use `Evidence` for facts found in the reviewed artifacts, such as code 
paths, tests, documentation, compatibility checks, and root-cause proof.
+- Use `Verification` only for reviewer-run local commands and exit codes, or 
why those commands were not run.
+- Use short unordered bullets under each heading; use bold inline labels such 
as `Problem:`, `Impact:`, and `Required Change:` for issue details.
+- In `### Issues`, list every merge-blocking issue discovered in the reviewed 
scope; do not imply that other unlisted blocking issues exist.
+- Use only `P0`, `P1`, or `P2` for issue severity: `P0` for security, 
data-loss, metadata corruption, or broken core behavior; `P1` for confirmed 
functional regressions,
+  incomplete root-cause fixes, incompatible behavior, or high-risk side 
effects; `P2` for lower-risk but still merge-blocking defects, missing targeted 
validation, or required scope cleanup.
+- Omit optional nits from `### Issues` unless they are part of a 
merge-blocking pattern.
+- If missing required evidence blocks mergeability, mention that in `Summary` 
-> `Reason`, and include the detailed blocker in `### Issues`.
+- Only missing evidence that blocks mergeability belongs in `### Issues`; 
non-blocking verification gaps belong in `Review Details` -> `Verification`.
+- Do not put blocking missing-evidence requests only in `Review Details`; that 
section is for review scope and verification facts.
+- Omit `### Next Steps` unless it adds non-duplicative cross-issue sequencing, 
verification commands, or minimum missing information.
 - Use repo-relative paths with line numbers, for example 
`infra/.../Foo.java:123`; do not use local absolute file paths in GitHub-facing 
review text.
 - Prefer bullets over tables. Use tables only for compact status summaries 
that remain readable in GitHub's narrow review pane.
 - Keep command evidence in inline code or short fenced blocks; avoid long raw 
JSON, full logs, or unrendered terminal transcripts.
 - Before final output, perform a formatting self-check on the inner 
GitHub-facing review body:
   - The inner GitHub-facing review body is not wrapped in a code fence, 
blockquote, XML/HTML container, or transcript.
-  - The inner GitHub-facing review body contains the required `###` headings 
for the selected verdict template.
-  - The inner GitHub-facing review body contains exactly one bold `Merge 
Verdict: ...` line.
+  - The inner GitHub-facing review body contains the required `###` headings 
for the selected decision template.
+  - The inner GitHub-facing review body contains exactly one bold `Merge 
Decision: ...` line.
   - File references are repo-relative paths with line numbers, not local 
absolute paths.
   - Stable labels remain in English.
 
@@ -420,70 +437,59 @@ When GitHub-visible previous-round feedback exists, 
perform incremental comparis
 
 ### A. Not Mergeable (Change Request)
 
-Use committer tone, gentle wording, no emojis; use this GitHub Markdown 
skeleton:
-
-```markdown
-### Decision
-
-- **Merge Verdict: Not Mergeable**
-- **Reviewed Scope:** ...
-- **Not Reviewed Scope:** ...
-- **Need Expert Review:** ...
-
-### Positive Feedback
-
-- Optional; omit this section when there is no genuinely correct 
direction-aligned change.
-
-### Major Issues
-
-- **[Severity] Short issue title** (`path/to/File.java:123`)
-  - **Symptom:** ...
-  - **Risk:** ...
-  - **Action:** Please ...
-
-### Newly Introduced Issues
+Use committer tone, gentle wording, no emojis; use this GitHub Markdown 
skeleton for required sections:
 
-- Include only when the latest PR revision introduces new defects or 
regression risks.
+When required, add `- **Expert Review Needed:** ...` under `Summary`; omit 
this bullet when no expert review is required.
 
-### Unrelated Changes
+```markdown
+### Summary
 
-- Include only when substantive unrelated changes exist, and explicitly ask 
for rollback.
+- **Merge Decision: Not Mergeable**
+- **Reason:** ...
 
-### Next Steps
+### Issues
 
-- Provide an executable fix checklist.
+- **[P0|P1|P2] Short issue title** (`path/to/File.java:123`)
+  - **Problem:** ...
+  - **Impact:** ...
+  - **Required Change:** Please ...
 
-### Multi-Round Comparison
+### Review Details
 
-- Include only when previous-round feedback exists in GitHub-visible PR 
comments, review threads, or change requests.
+- **Reviewed Scope:** ...
+- **Not Reviewed Scope:** ...
+- **Verification:** ...
+```
 
-### Evidence Supplement
+Optional sections for `Not Mergeable`; do not output optional headings with 
placeholder text:
 
-- Include only when information gaps block mergeability; list the minimum 
additional information required.
-```
+- `### Positive Feedback`: insert after `Summary` only when there is a 
genuinely correct direction-aligned change.
+- `### Unrelated Changes`: insert after `Issues` only when substantive 
unrelated changes or substantive scope expansion exist, and explicitly ask for 
rollback or scope narrowing.
+- `### Next Steps`: insert before `Review Details` only when it adds 
non-duplicative cross-issue sequencing, verification commands, or minimum 
missing information.
+- `### Multi-Round Comparison`: insert before `Review Details` only when 
previous-round feedback exists in GitHub-visible PR comments, review threads, 
or change requests.
 
 ### B. Mergeable
 
 Use this GitHub Markdown skeleton:
 
+When required, add `- **Expert Review Needed:** ...` under `Summary`; omit 
this bullet when no expert review is required.
+
 ```markdown
-### Decision
+### Summary
 
-- **Merge Verdict: Mergeable**
-- **Reviewed Scope:** ...
-- **Not Reviewed Scope:** ...
-- **Need Expert Review:** ...
+- **Merge Decision: Mergeable**
+- **Reason:** ...
 
-### Basis
+### Evidence
 
 - Root-cause fix evidence.
 - Risk assessment results proving no unresolved risk.
 
-### Verification
+### Review Details
 
-- Reviewer-run local verification, if any.
-- Test and compatibility evidence from the reviewed code.
-- Do not include GitHub Actions / CI status unless explicitly requested.
+- **Reviewed Scope:** ...
+- **Not Reviewed Scope:** ...
+- **Verification:** Reviewer-run local verification and exit codes, or why 
local verification was not run.
 ```
 
 ## Change Request Tone Guidelines
diff --git a/.codex/skills/review-pr/agents/openai.yaml 
b/.codex/skills/review-pr/agents/openai.yaml
index e448987d09e..5938a228406 100644
--- a/.codex/skills/review-pr/agents/openai.yaml
+++ b/.codex/skills/review-pr/agents/openai.yaml
@@ -20,5 +20,5 @@ interface:
   short_description: "Root-cause-first merge review for ShardingSphere PRs"
   default_prompt: >-
     Use $review-pr to check whether this ShardingSphere PR fixes the root 
cause,
-    assess design/performance/compatibility risks, produce a merge verdict, and
+    assess design/performance/compatibility risks, produce a merge decision, 
and
     output committer-style change requests in the same language as the user.

Reply via email to