Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when diagnosing Android overheating, idle heat, thermal throttling, charging or radio heat, or abnormal battery drain with read-only ADB evidence and approval gates.
.claude/skills/sickn33-diagnose-android-overheating/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 138% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 96% | 0% |
Find the most likely source of Android device heat by correlating thermal state, battery conditions, CPU activity, wakeups, radios, sensors, charging, and the user's timeline. Keep diagnosis read-only by default, distinguish evidence from inference, and propose only the smallest reversible intervention after the user approves it.
Stop software diagnosis when the device shows battery swelling, smoke, hissing, leaking, a sharp chemical odor, repeated thermal shutdowns, or heat severe enough that it cannot be handled safely. Tell the user to disconnect power if this can be done safely, power the device off, keep it away from flammable material, and seek manufacturer or qualified repair support. Do not suggest cooling the device in a refrigerator or freezer, puncturing it, continuing to charge it, or running stress tests.
Before collecting data:
Do not reset Batterystats, force-stop apps, clear caches, change network modes, alter AppOps, enable battery saver, or change developer settings before preserving the initial state.
Start with read-only commands:
bashadb devices -l adb -s <serial> shell getprop ro.product.manufacturer adb -s <serial> shell getprop ro.product.model adb -s <serial> shell getprop ro.build.version.release adb -s <serial> shell getprop ro.build.version.sdk adb -s <serial> shell uptime adb -s <serial> shell dumpsys battery adb -s <serial> shell dumpsys thermalservice adb -s <serial> shell dumpsys cpuinfo adb -s <serial> shell top -n 1
If a service or option is unavailable, record that limitation. Do not turn missing output into a healthy verdict. Android and OEM builds expose different services, fields, permissions, and top syntax.
Read evidence-and-interpretation.md, then collect only the branches that match the symptom:
Do not collect a full bugreport unless narrow evidence is insufficient. Bugreports can contain account identifiers, app activity, network details, notifications, and other sensitive data.
Define one pass/fail comparison before changing anything. Examples:
Keep workload, duration, brightness, case, charger, ambient conditions, and starting battery level as constant as practical. Timestamp each observation. Avoid benchmarks or synthetic load unless the user explicitly asks and the device is not already thermally stressed.
Require at least two independent signals before attributing the heat:
A hot battery does not identify the cause. A high CPU snapshot does not prove sustained load. A wakelock name does not prove meaningful energy use without duration and timeline correlation. Batterystats estimates are device-dependent and may be absent or incomplete.
Use one primary class and list plausible contributors separately:
State confidence as confirmed, strongly supported, possible, or unknown. Reserve confirmed for a controlled comparison or direct timeline evidence that changes with the suspected cause.
Present the evidence and proposed experiment before changing the device.
Change one variable at a time. After the test, restore the old value unless the user explicitly chooses to keep the verified change.
textSymptom and context: Safety status: Evidence collected: Controlled comparison: Most likely cause: Confidence: Contributors or alternatives: Proposed next test or smallest fix: Approval required: Rollback: Remaining uncertainty:
Correlate thermal and battery trends with signal state, mobile-radio activity, process CPU, and wakeups. A weak signal alone is not enough; show that the heat or radio activity falls during a comparable Wi-Fi or airplane-mode window before calling the modem loop the cause.
Compare the package's sustained CPU, jobs, alarms, network, location, and wakelock time with the symptom window. Do not force-stop or restrict it until the baseline is saved and the user approves an interruption.
Record charger/cable context, battery state, temperature trend, plugged source, and simultaneous workload. Compare against a safe unplugged window. Do not infer battery failure from temperature alone.
thermalservice down to one word: Preserve the complete output; status, sensor type, throttling severity, and vendor omissions all matter.@android-cli - Use for Android SDK, emulator, deployment, screenshots, and general device interaction.@android-dev - Use when the root cause is in Android application source code and the user wants an implementation fix.@mobile-developer - Use for broader mobile application development rather than handset-level diagnosis.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,920 | 9,511 | -50% | 1 | 1 | 0% | 3,493 | 4,024 | +15% | 0 | 0 | — |
case-08 | pass→pass | 10,272 | 5,046 | -51% | 1 | 1 | 0% | 1,555 | 3,266 | +110% | 0 | 0 | — |
case-21 | pass→pass | 16,802 | 13,655 | -19% | 1 | 1 | 0% | 3,025 | 4,905 | +62% | 0 | 0 | — |
case-02 | fail→fail | 10,769 | 6,769 | -37% | 1 | 1 | 0% | 1,966 | 2,867 | +46% | 0 | 0 | — |
case-03 | fail→fail | 17,885 | 8,923 | -50% | 1 | 1 | 0% | 2,783 | 3,934 | +41% | 0 | 0 | — |
case-04 | fail→pass | 8,083 | 6,047 | -25% | 1 | 1 | 0% | 1,379 | 3,288 | +138% | 0 | 0 | — |
case-05 | pass→pass | 7,639 | 3,890 | -49% | 1 | 1 | 0% | 1,317 | 3,104 | +136% | 0 | 0 | — |
case-06 | fail→fail | 7,718 | 2,085 | -73% | 1 | 1 | 0% | 1,578 | 2,675 | +70% | 0 | 0 | — |
case-07 | fail→pass | 9,054 | 7,118 | -21% | 1 | 1 | 0% | 1,654 | 3,548 | +115% | 0 | 0 | — |
case-09 | fail→pass | 13,909 | 8,148 | -41% | 1 | 1 | 0% | 2,105 | 3,690 | +75% | 0 | 0 | — |
case-10 | fail→pass | 10,671 | 6,569 | -38% | 1 | 1 | 0% | 1,743 | 3,415 | +96% | 0 | 0 | — |
case-11 | pass→pass | 14,823 | 11,883 | -20% | 1 | 1 | 0% | 2,443 | 4,353 | +78% | 0 | 0 | — |
case-12 | fail→pass | 9,796 | 5,799 | -41% | 1 | 1 | 0% | 1,475 | 3,250 | +120% | 0 | 0 | — |
case-13 | fail→pass | 11,257 | 9,046 | -20% | 1 | 1 | 0% | 1,793 | 3,662 | +104% | 0 | 0 | — |
case-14 | fail→fail | 50,200 | 9,249 | -82% | 1 | 1 | 0% | 1,891 | 3,862 | +104% | 0 | 0 | — |
case-15 | fail→pass | 11,680 | 9,372 | -20% | 1 | 1 | 0% | 1,871 | 3,958 | +112% | 0 | 0 | — |
case-16 | pass→pass | 13,560 | 6,802 | -50% | 1 | 1 | 0% | 2,042 | 3,330 | +63% | 0 | 0 | — |
case-17 | pass→pass | 11,467 | 7,050 | -39% | 1 | 1 | 0% | 1,967 | 3,401 | +73% | 0 | 0 | — |
case-18 | pass→pass | 7,549 | 4,300 | -43% | 1 | 1 | 0% | 1,231 | 2,986 | +143% | 0 | 0 | — |
case-19 | pass→pass | 16,316 | 50,361 | +209% | 1 | 1 | 0% | 2,503 | 3,678 | +47% | 0 | 0 | — |
case-20 | pass→fail | 16,521 | 50,168 | +204% | 1 | 1 | 0% | 2,667 | 4,495 | +69% | 0 | 0 | — |
case-22 | pass→pass | 6,465 | 5,351 | -17% | 1 | 1 | 0% | 1,294 | 3,397 | +163% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 21 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.