- id:
- assess-risk
- name:
- Assess Risk
- description:
- Use this skill when reviewing Apache ShardingSphere pull requests for root-cause fixes, side effects, regression risk, merge readiness, and committer-tone change requests.
- category:
- Development
Review PR
Objective
- Make merge decisions for ShardingSphere PRs with a "root-cause-first, evidence-first" approach.
- Output a single merge decision:
Merge Verdict: Mergeable / Not Mergeable
Trigger Scenarios
- The user asks you to review a PR.
- The user asks whether a PR "can be merged" or "fixes the root cause."
- The user asks you to generate committer-tone change request comments.
Mandatory Constraints
- Verify root-cause repair first, then fallback logic; do not accept "fallback only" as a substitute for root-cause repair.
- You must scan side effects and risks:
- Design consistency
- Performance (complexity, hot paths, memory, and I/O)
- Compatibility (behavior, config, API-SPI, SQL dialect)
- Functional degradation and regression surface
- You must provide exactly one
Merge Verdict.
- If evidence is insufficient, risk is unclear, or validation is incomplete, always set
Merge Verdict: Not Mergeable,
and list the minimum additional information required.
- Change request replies must be gentle in tone and contain no emojis.
- If unrelated changes exist, you must explicitly ask for rollback; if none exist, do not output that section.
- Any "fallback-only without root-cause repair" or "unresolved risk" must not receive
Merge Verdict: Mergeable.
- Review only the PR's latest code version; do not reuse conclusions from older versions.
Execution Boundary
- Review output only; do not modify code.
Evidence Source Strategy
Priority from high to low:
- PR facts: diff, commit history, review comments, CI status, check results.
- Related issues in the same repo, relevant module code/tests, historical behavior (optional git blame/log).
- ShardingSphere official docs and official repo conventions.
- External authoritative specs only when necessary (official standards/docs only).
Forbidden sources:
- Unverifiable blogs, forum posts, or AI-reposted content.
Review Efficiency Rules
- In the current reply, prioritize blocking issues and
Merge Verdict.
- 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.
Quick Triage
Before deep review, answer:
- Does the PR clearly state the problem and expected behavior?
- Do current changes directly touch the suspected root-cause path?
- Is there corresponding validation (unit/integration/regression tests)?
- Are there file changes unrelated to the stated goal?
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.
- Change set too large: request split first, and provide only blocker-level feedback for current version.
Minimum Additional Information List (Fixed Template)
When information gaps block mergeability, request at least:
- Recheck scope for the PR latest version (files/modules).
- ShardingSphere version and runtime topology (JDBC/Proxy + Standalone/Cluster).
- Database type and version.
- Minimal reproducible input (SQL/request/config snippet) with expected vs actual behavior.
- Key logs or stack traces.
- Test evidence mapped one-to-one with fix points (new or adjusted tests).
Review Workflow
- Define target and boundary: restate PR goal, impacted modules, target topology (JDBC or Proxy, Standalone or Cluster).
- Root-cause modeling: reconstruct "trigger condition -> failure path -> result" from issue and code path.
- Fix mapping: verify each change covers the root-cause chain, not just symptoms.
- Risk scan:
- Design: abstraction level, responsibility boundaries, temporary compatibility branches
- Performance: new loops/remote calls/object allocations on hot paths
- Compatibility: behavior/config/API-SPI/SQL dialect versions
- Regression: similar statements, adjacent features, exception branches
- Test adequacy:
- Is there a failing case first or reproducible steps?
- Are major branches, boundaries, and counterexamples covered?
- Are tests mapped one-to-one with fix points?
- 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
- Unrelated-change screening: identify code/format/refactor changes not directly tied to PR goal; require removal or rollback.
- 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
- Merge decision: output
Merge Verdict.
- Generate feedback: follow the output template below.
Root-Cause Validation Checklist (Must Answer Each)
- Was the true trigger point identified (not just the final error point)?
- Do changes directly fix the trigger point or key propagation path?
- Is it only adding null checks/defaults/try-catch without fixing root cause?
- Does it introduce silent error swallowing or downgrade to wrong semantics?
- Are adjacent paths sharing the same root cause also validated?
If the root-cause chain cannot be fully proven fixed, set Merge Verdict: Not Mergeable.
Risk Checklist (Must Cover)
- Design risk: broken layering, duplicated logic, bypassed SPI/metadata cache, implicit state.
- Performance risk: complexity increase, extra hot-path allocations, unbounded retries, blocking I/O.
- Compatibility risk:
- Behavior compatibility
- Config compatibility
- API/SPI compatibility
- SQL compatibility (database/version/dialect)
- Functional degradation risk: old-scenario regression, boundary input behavior changes, error-code/exception semantic drift.
- Operational risk: config migration complexity, gray-release and rollback complexity.
- Supply-chain risk: vulnerabilities, licenses, transitive dependency changes from new deps.
Coverage Statement (Required in Every Review)
Each review must declare:
Reviewed Scope: files/modules actually reviewed this round.
Not Reviewed Scope: unreviewed or only superficially reviewed areas.
Need Expert Review: whether domain reviewers are required (security, concurrency, performance, protocol, etc.).
Multi-Round Change Request Comparison Rules
When the user provides previous-round feedback or PR adds new commits, perform incremental comparison:
- Build a "previous issues list" and mark each as:
- Fixed
- Partially fixed
- Not fixed
- Newly introduced issue
- Keep only unresolved and newly introduced items as current focus; do not repeat closed items.
- Every suggestion must cite corresponding diff evidence.
- For partially fixed items, specify exactly what is still needed to close.
- If new commits were added, continue review only on the latest version; no need to output historical commit SHA.
Output Structure
A. Not Mergeable (Change Request)
Use committer tone, gentle wording, no emojis; structure:
- Decision block
Merge Verdict: Not Mergeable
Reviewed Scope / Not Reviewed Scope / Need Expert Review
- Positive feedback (optional)
- Include only when there are genuinely correct direction-aligned changes.
- Omit if none.
- Major issues
- List unreasonable/incorrect points by severity.
- Each issue includes: label, symptom, risk, recommended action (fix or rollback).
- Newly introduced issues
- Point out defects/regression risks introduced by this PR.
- Clearly require fix or rollback.
- Unrelated changes (output only when present)
- List changes unrelated to this PR goal and request rollback.
- Next-step suggestions
- Provide executable fix checklist and encourage next revision.
- Multi-round comparison (only when history exists)
- Versus previous round: closed, unresolved, and new items.
- Evidence supplement (only when information is insufficient)
- Explicitly list minimum additional information and review entry points.
B. Mergeable
- Decision block
Merge Verdict: Mergeable
Reviewed Scope / Not Reviewed Scope / Need Expert Review
- Basis
- Root-cause fix evidence.
- Risk assessment results (proving no unresolved risk).
- Pre-merge checks
- CI, tests, compatibility confirmations.
Change Request Tone Guidelines
- Use "suggest / please / need" rather than accusatory commands.
- Facts first, judgment second; avoid emotional wording.
- Suggested sentence patterns:
- "This part is in the right direction, especially ..."
- "There are still several issues affecting mergeability; please address them first: ..."
- "This introduces new risk; please fix or roll back this part."
- "Please continue refining it, and I will do another focused review after that."
Prohibited Items
- Do not output
Mergeable when evidence is insufficient or risks are unclear.
- Do not use "fallback logic passes tests" to replace proof of root-cause repair.
- Do not ignore unrelated changes.
- Do not reuse old conclusions after new commits are added without re-review.
- Do not include emojis in change request text.