# Widget Bridge > A check of one Flutter home screen widget across its files against the home_widget guidance. Paste the Dart, SwiftUI, > Kotlin and XML files one after another (each under a "// file: path" line, or drop several at once); the browser > masks comments and strings, resolves string constants, and lines the sides up: the App Group set in Dart against > the Swift UserDefaults suite, the iOSName and androidName passed to updateWidget against the Swift widget kind and > the Kotlin provider class, every key saved against every key read with its type, the view ids the provider sets > against the layout, and the provider against the manifest. It flags UserDefaults.standard, force-unwrapped reads, > providers that never call updateAppWidget or read their own SharedPreferences, and saves that are not awaited. > Metered runs write the review and the corrected files, which the page re-scans (it does not compile or run them). Built on the SkillSafe skill > @flutter/flutter-adding-home-screen-widgets, from flutter/skills (BSD-3-Clause), by the Flutter team. > An independent tool - not affiliated with or endorsed by Google or the Flutter team. https://widget-bridge.skillsafe.ai/ ## What is free - The scan: every finding with an id (B1, B2, ...), a severity (blocker - the widget stays blank or the build fails, major, minor), the line, where it sits, what the page saw and the fix. - The key map: every key with what Dart writes (and its type), what iOS reads and what Android reads, and whether they match; the names each side uses (App Group, iOS widget kind, Android provider, layout). - Since the saved scan: open a saved review, paste the edited files, and the page lists the findings fixed, still open and new. - The skill's checklist marked from the scan, the native setup steps no file shows (Widget Extension, App Groups on both targets, the manifest receiver), findings and keys as CSV, everything as JSON. ## The metered lanes Two tasks on gpt-terra, metered per run, routed by `task`. Input string fields: `task` (review or rewrite), `unit`, `code`, `carry` (rewrite only: the review's decisions) and `facts` (the page's scan, key map and names). - `review` replies with `summary`, `findings` (confirmed ids with the issue, the fix and a short code fix), `cleared`, `extra` (up to five issues a scan cannot see, on real lines), `plan` (the fixes in order, naming their ids) and `caveats`. - `rewrite` replies with `summary`, `code` (every file rewritten, each under its own file line), `changes`, `kept` and `caveats`. The page holds every reply to its scan: each id accounted for exactly once, every file line, class and struct and the whole paste kept, and the rewritten files re-scanned - a claimed fix the re-scan still finds, or a new finding, is flagged. ## Links - API tutorial: https://widget-bridge.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@flutter/flutter-adding-home-screen-widgets