diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 538bc4be9fd..0aff5b6f07b 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -25,6 +25,15 @@ repos:
         args: [--fix=lf]
       - id: trailing-whitespace
         args: [--markdown-linebreak-ext=md]
+      - id: pretty-format-json
+        args: [--autofix]
+        types_or: [json]
+        exclude: |
+          (?x)(
+              diagram\..*\.json$|
+              package\.json$|
+              ^package\/.*$
+          )
   - repo: https://github.com/codespell-project/codespell
     rev: "v2.3.0"
     hooks:
diff --git a/libraries/ESP32/examples/HWCDC_Events/ci.json b/libraries/ESP32/examples/HWCDC_Events/ci.json
index dbc4c35cbd5..d6c4351c868 100644
--- a/libraries/ESP32/examples/HWCDC_Events/ci.json
+++ b/libraries/ESP32/examples/HWCDC_Events/ci.json
@@ -1,11 +1,11 @@
 {
-  "targets": {
-    "esp32": false,
-    "esp32s2": false
-  },
   "fqbn": {
     "esp32s3": [
       "espressif:esp32:esp32s3:USBMode=hwcdc,PartitionScheme=huge_app,FlashMode=dio"
     ]
+  },
+  "targets": {
+    "esp32": false,
+    "esp32s2": false
   }
 }
diff --git a/libraries/ESP_SR/examples/Basic/ci.json b/libraries/ESP_SR/examples/Basic/ci.json
index 90425f61c02..dca52699ab3 100644
--- a/libraries/ESP_SR/examples/Basic/ci.json
+++ b/libraries/ESP_SR/examples/Basic/ci.json
@@ -1,14 +1,14 @@
 {
+  "fqbn": {
+    "esp32s3": [
+      "espressif:esp32:esp32s3:USBMode=default,PartitionScheme=esp_sr_16,FlashSize=16M,FlashMode=dio"
+    ]
+  },
   "targets": {
     "esp32": false,
     "esp32c3": false,
     "esp32c6": false,
     "esp32h2": false,
     "esp32s2": false
-  },
-  "fqbn": {
-    "esp32s3": [
-      "espressif:esp32:esp32s3:USBMode=default,PartitionScheme=esp_sr_16,FlashSize=16M,FlashMode=dio"
-    ]
   }
 }
diff --git a/libraries/OpenThread/examples/COAP/coap_lamp/ci.json b/libraries/OpenThread/examples/COAP/coap_lamp/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/COAP/coap_lamp/ci.json
+++ b/libraries/OpenThread/examples/COAP/coap_lamp/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/COAP/coap_switch/ci.json b/libraries/OpenThread/examples/COAP/coap_switch/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/COAP/coap_switch/ci.json
+++ b/libraries/OpenThread/examples/COAP/coap_switch/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/SimpleCLI/ci.json b/libraries/OpenThread/examples/SimpleCLI/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/SimpleCLI/ci.json
+++ b/libraries/OpenThread/examples/SimpleCLI/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/SimpleNode/ci.json b/libraries/OpenThread/examples/SimpleNode/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/SimpleNode/ci.json
+++ b/libraries/OpenThread/examples/SimpleNode/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json
+++ b/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json
+++ b/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json
+++ b/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/ThreadScan/ci.json b/libraries/OpenThread/examples/ThreadScan/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/ThreadScan/ci.json
+++ b/libraries/OpenThread/examples/ThreadScan/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/OpenThread/examples/onReceive/ci.json b/libraries/OpenThread/examples/onReceive/ci.json
index 10def841de0..c60d9179992 100644
--- a/libraries/OpenThread/examples/onReceive/ci.json
+++ b/libraries/OpenThread/examples/onReceive/ci.json
@@ -1,9 +1,9 @@
 {
-    "targets": {
-      "esp32": false,
-      "esp32c2": false,
-      "esp32c3": false,
-      "esp32s2": false,
-      "esp32s3": false
-    }
+  "targets": {
+    "esp32": false,
+    "esp32c2": false,
+    "esp32c3": false,
+    "esp32s2": false,
+    "esp32s3": false
   }
+}
diff --git a/libraries/SD_MMC/examples/SD2USBMSC/ci.json b/libraries/SD_MMC/examples/SD2USBMSC/ci.json
index 2a5ca52e079..97ae5ee5616 100644
--- a/libraries/SD_MMC/examples/SD2USBMSC/ci.json
+++ b/libraries/SD_MMC/examples/SD2USBMSC/ci.json
@@ -1,9 +1,9 @@
 {
   "targets": {
     "esp32": false,
-    "esp32s2": false,
     "esp32c3": false,
     "esp32c6": false,
-    "esp32h2": false
+    "esp32h2": false,
+    "esp32s2": false
   }
 }
diff --git a/tests/performance/psramspeed/ci.json b/tests/performance/psramspeed/ci.json
index 275da6cf4d5..8d58dbf5250 100644
--- a/tests/performance/psramspeed/ci.json
+++ b/tests/performance/psramspeed/ci.json
@@ -3,7 +3,6 @@
     "qemu": false,
     "wokwi": false
   },
-
   "targets": {
     "esp32c3": false,
     "esp32c6": false,
diff --git a/tests/performance/ramspeed/ci.json b/tests/performance/ramspeed/ci.json
index e0614d1870f..d880ca64dfb 100644
--- a/tests/performance/ramspeed/ci.json
+++ b/tests/performance/ramspeed/ci.json
@@ -1,9 +1,4 @@
 {
-  "platform": {
-    "qemu": false,
-    "wokwi": false
-  },
-
   "fqbn": {
     "esp32": [
       "espressif:esp32:esp32:PSRAM=disabled,PartitionScheme=huge_app"
@@ -14,5 +9,9 @@
     "esp32s3": [
       "espressif:esp32:esp32s3:PSRAM=disabled,USBMode=default,PartitionScheme=huge_app"
     ]
+  },
+  "platform": {
+    "qemu": false,
+    "wokwi": false
   }
 }
diff --git a/tests/validation/democfg/ci.json b/tests/validation/democfg/ci.json
index e3270117dc6..f74aa4e7eda 100644
--- a/tests/validation/democfg/ci.json
+++ b/tests/validation/democfg/ci.json
@@ -1,19 +1,4 @@
 {
-  "platforms": {
-    "qemu": false,
-    "hardware": true,
-    "wokwi": true
-  },
-
-  "targets": {
-    "esp32": true,
-    "esp32s2": true,
-    "esp32s3": true,
-    "esp32c3": true,
-    "esp32c6": true,
-    "esp32h2": false
-  },
-
   "fqbn": {
     "esp32": [
       "espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=dio",
@@ -25,5 +10,18 @@
     "esp32s3": [
       "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app"
     ]
+  },
+  "platforms": {
+    "hardware": true,
+    "qemu": false,
+    "wokwi": true
+  },
+  "targets": {
+    "esp32": true,
+    "esp32c3": true,
+    "esp32c6": true,
+    "esp32h2": false,
+    "esp32s2": true,
+    "esp32s3": true
   }
 }
diff --git a/tests/validation/gpio/ci.json b/tests/validation/gpio/ci.json
index 13a4b8c1a31..f03ec83b39d 100644
--- a/tests/validation/gpio/ci.json
+++ b/tests/validation/gpio/ci.json
@@ -1,7 +1,7 @@
 {
   "platforms": {
-    "qemu": false,
     "hardware": false,
+    "qemu": false,
     "wokwi": false
   }
 }
diff --git a/tests/validation/nvs/ci.json b/tests/validation/nvs/ci.json
index 4bc2893da08..bddf221e3c0 100644
--- a/tests/validation/nvs/ci.json
+++ b/tests/validation/nvs/ci.json
@@ -1,26 +1,13 @@
 {
-  "platforms": {
-    "qemu": false
-  },
-
   "fqbn": {
     "esp32": [
       "espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=dio",
       "espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=qio"
     ],
-    "esp32s2": [
-      "espressif:esp32:esp32s2:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=dio",
-      "espressif:esp32:esp32s2:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=qio"
-    ],
     "esp32c3": [
       "espressif:esp32:esp32c3:PartitionScheme=huge_app,FlashMode=dio",
       "espressif:esp32:esp32c3:PartitionScheme=huge_app,FlashMode=qio"
     ],
-    "esp32s3": [
-      "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app,FlashMode=qio",
-      "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app,FlashMode=qio120",
-      "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app,FlashMode=dio"
-    ],
     "esp32c6": [
       "espressif:esp32:esp32c6:PartitionScheme=huge_app,FlashMode=dio",
       "espressif:esp32:esp32c6:PartitionScheme=huge_app,FlashMode=dio,FlashFreq=40",
@@ -32,6 +19,18 @@
       "espressif:esp32:esp32h2:PartitionScheme=huge_app,FlashMode=dio,FlashFreq=16",
       "espressif:esp32:esp32h2:PartitionScheme=huge_app,FlashMode=qio",
       "espressif:esp32:esp32h2:PartitionScheme=huge_app,FlashMode=qio,FlashFreq=16"
+    ],
+    "esp32s2": [
+      "espressif:esp32:esp32s2:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=dio",
+      "espressif:esp32:esp32s2:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=qio"
+    ],
+    "esp32s3": [
+      "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app,FlashMode=qio",
+      "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app,FlashMode=qio120",
+      "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app,FlashMode=dio"
     ]
+  },
+  "platforms": {
+    "qemu": false
   }
 }
diff --git a/tests/validation/touch/ci.json b/tests/validation/touch/ci.json
index 275da6cf4d5..8d58dbf5250 100644
--- a/tests/validation/touch/ci.json
+++ b/tests/validation/touch/ci.json
@@ -3,7 +3,6 @@
     "qemu": false,
     "wokwi": false
   },
-
   "targets": {
     "esp32c3": false,
     "esp32c6": false,
diff --git a/tests/validation/wifi/ci.json b/tests/validation/wifi/ci.json
index b36524cced9..ff2c1d7c9ce 100644
--- a/tests/validation/wifi/ci.json
+++ b/tests/validation/wifi/ci.json
@@ -1,17 +1,7 @@
 {
-  "platforms": {
-    "qemu": false,
-    "hardware": false
-  },
-
-  "targets": {
-    "esp32h2": false
-  },
-
   "extra_tags": [
     "wifi"
   ],
-
   "fqbn": {
     "esp32": [
       "espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=huge_app,FlashMode=dio",
@@ -26,5 +16,12 @@
       "espressif:esp32:esp32s3:PSRAM=disabled,USBMode=default,PartitionScheme=huge_app,FlashMode=qio",
       "espressif:esp32:esp32s3:PSRAM=enabled,USBMode=default,PartitionScheme=huge_app,FlashMode=qio"
     ]
+  },
+  "platforms": {
+    "hardware": false,
+    "qemu": false
+  },
+  "targets": {
+    "esp32h2": false
   }
 }