modem-tunelisted
Install: claude install-skill mishahanin/heading-os
# Modem Tune -- IMEI Reconfiguration
Automates changing the reported IMEI on the GL.iNet GL-XE300 travel router (Quectel
EG25-G modem) over SSH. Personal-hardware tool. All mechanics live in
`scripts/modem-tune.py`; this skill is the conversational wrapper that owns the
confirmation gate before any reset.
Spec: `docs/superpowers/specs/2026-05-30-modem-tune-skill-design.md` (data overlay: `.heading-os-data/docs/superpowers/specs/2026-05-30-modem-tune-skill-design.md`).
Device + procedure reference: `outputs/operations/reference/gl-inet-mobile-router-imei-reconfig.md`.
## Modes
- **Default / full rotation** (`/modem-tune`): generate -> apply -> confirm -> reset -> verify.
- **`/modem-tune status`**: read the live IMEI, SIM, network, and signal. No change.
- **`/modem-tune revert`**: restore the factory IMEI (from `config/modem.json`), then confirm + reset + verify.
## Pre-flight
The router is on the LAN (`192.168.8.1`) and reached over SSH with credentials from
`.env` (`MODEM_HOST`, `MODEM_USER`, `MODEM_SSH_PASSWORD`). No VPN pre-flight applies --
this is a local authenticated device, not a public web service.
If `MODEM_SSH_PASSWORD` is missing the engine exits with a clear error; tell the CEO to
add the `MODEM_*` block to `.env` and stop.
## Phase 0 -- Status (always run first)
Run `python3 scripts/modem-tune.py status`. Show the CEO the live IMEI, its Luhn
validity, SIM state, operator, and signal. This confirms the router is reachable before
anything is changed.
Fo