webOS QA Checklist Runner

Catch LG's rejection reasons before LG does. LG Content Store review is slow, and a single rejection can cost you a week or more before you can resubmit. Most of those rejections are for things you could have caught in thirty seconds: a largeIcon that's 128×128 instead of 130×130, a :has() rule that breaks on older webOS panels, a localhost URL that shipped by accident, a BACK button that does nothing. This tool runs the LG Content Store P2 pre-submission checklist against your webOS app build and tells you exactly what will get flagged — before you waste a review cycle finding out the hard way. What you get A runnable checker (webos-qa.py) — stdlib-only Python 3, no dependencies, no install. Point it at your app directory (or unpacked IPK) and get a sectioned pass/fail report with a clear READY / NOT READY verdict and a CI-friendly exit code. JSON output included. The full P2 checklist (P2-checklist.md) — six sections (Manifest & Assets, Resolution & UI, Navigation & Remote, Network & Security, Performance, Store Metadata), every item with why-it-matters and the common rejection it prevents. Useful on its own as a reference. A Claude Code skill (SKILL.md) — say "run webOS QA" or "is my app ready for the Content Store?" and the assistant runs the checker, reads the report, and walks you through the fixes. A working sample app with planted issues plus the exact report the checker produces on it, so you can see it work in one command. What it catches automatically Missing or malformed appinfo.json fields (reverse-DNS id, x.x.x version, vendor, type, main, title, icon fields) Missing icon/splash assets and wrong pixel dimensions (it reads the PNG headers directly) CSS :has() usage (unsupported on older webOS Chromium) Insecure http:// / mixed content Hard-coded localhost / 127.0.0.1 Missing remote BACK-button (keyCode 461) handling Plus a printed manual checklist for the P2 items a static tool can't verify — real playback, D-pad focus, store metadata, privacy-policy reachability. Who it's for Indie and small-studio LG webOS TV app developers prepping an IPK for Content Store submission who want to stop guessing what the reviewer will bounce. Honest scope This is a static checker plus a checklist — it won't test playback or remote navigation on a real device for you (nothing can, statically), and the required asset sizes default to the FHD profile. The size table is a few lines at the top of the script and is documented so you can adjust it. Everything runs with plain Python 3; there's nothing to set up. One run. Fix the blockers. Submit with confidence.