You MUST ask the user to choose the connection method — do not pick for them
You MUST NOT create, access, or store AWS credentials or DB passwords directly. Use inline JSON payloads for SSM, user-supplied secret ARNs for Data API, or pre-configured tunnels for direct
You MUST categorize every finding with one of: 🔴 Critical (blocks upgrade), 🟡 Warning (behavior change), 🟢 Clean
You MUST generate a recommended parameter group configuration based on findings rather than returning raw query output
You MUST also surface the engine-specific upgrade blockers and required cleanup items directly in your response — do not leave them buried in the precheck files the user hasn’t opened. These are the items that most commonly cause upgrade failures or silent breakage.
🔴 Reserved keywords added in 8.0 used as unquoted identifiers — blocks queries post-upgrade.
🔴 Removed data types / SQL features (e.g., utf8mb3 as default, PRE_5_6_26_UTF8_JSON flag, deprecated spatial functions).
🟡 sql_mode and default charset/collation changes — utf8mb4_0900_ai_ci becomes the default; application assumptions about collation ordering will shift.
🟡 Query cache removal (5.7 → 8.0) — if the cluster relied on query cache, expect CPU/latency delta after upgrade.
🟡 Authentication plugin changes — MySQL 8.0 defaults to caching_sha2_password; older clients may need mysql_native_password.
Constraints:
You MUST include engine-specific sections of each checklist, not just common steps
You MUST surface the engine-specific blockers inline in your response using the 🔴/🟡/🟢 taxonomy — listing only the file path is insufficient because users don’t follow those references unprompted
You MUST explicitly address items that don’t apply to this upgrade path (e.g., state “Query cache removal — not applicable when upgrading Aurora MySQL 8.0 → 8.4, only relevant from a 5.7 source”) rather than silently omitting them; otherwise the user can’t tell whether you checked or forgot
You MUST NOT execute any modify-db-cluster --engine-version command because this workflow is planning-only and production upgrades must go through the customer’s change process
You MUST recommend testing on a snapshot-restored cluster before production upgrade