WiFi Watchtower
Use this skill when the user wants the native WiFi Watchtower app in apps/wifi-watchtower. If the request is about the portable Network Studio workspace or SwiftBar plugin, use $network-studio instead.
Default product shape: a compact macOS MenuBarExtra utility with a trust-grade popover, an optional dashboard window, and local-only Wi-Fi inspection.
Quick Start
- Read
references/project-map.mdbefore editing the app workspace. - Run
bash scripts/run_wifi_watchtower.sh doctor. - Run
bash scripts/run_wifi_watchtower.sh inspect. - Use
bash scripts/run_wifi_watchtower.sh generateafter changingproject.yml. - Use
bash scripts/run_wifi_watchtower.sh typecheckfor a fast Swift source sanity pass. - Use
bash scripts/run_wifi_watchtower.sh buildafter model, scoring, or view changes. - Use
bash scripts/run_wifi_watchtower.sh testafter logic or scoring changes when Xcode is ready. - Use
bash scripts/run_wifi_watchtower.sh runwhen you need the menu bar app relaunched from the local build. - Keep the app menu-bar-first, compact, and honest about uncertainty.
Workflow
Before Editing
- Inspect
project.ymlandWifiWatchtowerApp/Info.plistbefore changing project settings or app metadata. - Keep the menu bar surface compact and action-first.
- Preserve local-only Wi-Fi inspection and scoring. Do not add remote telemetry or account-bound sync by default.
Product Boundary
- WiFi Watchtower owns:
- the native
MenuBarExtraapp - current-network trust grading
- nearby Wi-Fi risk context
- dashboard explanations for why the grade changed
- the native
- WiFi Watchtower does not own:
- the portable Network Studio workspace or SwiftBar plugin
- any packet-sniffing or deep network inspection claims
Editing Guidance
- Prefer
MenuBarExtraand a compact accessory-style app surface. - Keep the first screen action-oriented:
- current trust grade
- strongest reasons behind the grade
- current gateway or DNS summary
- nearby Wi-Fi risk summary
- Preserve clear distinction between current-network trust, nearby-network context, and subjective recommendation copy.
- Keep the app honest about uncertainty. A caution or avoid score should explain why in plain language.
- If you touch the refresh loop or scoring logic, keep the UI copy aligned with the actual signals being measured.
Running The App
- Prefer the local runner script before typing
xcodegenorxcodebuildmanually. - Run
inspectfor quick orientation andtypecheckwhen you want a faster source-level sanity pass than a full build. - Use
buildortestafter changes toWifiWatchtowerApp/Sources, especially the inspector, scorer, or views. - Use
runafter UI changes so the menu bar app relaunches from the built app bundle. - If
doctorreports that Xcode is not ready, stop and use the exact command it prints before tryingbuildorrun.
Resources
scripts/run_wifi_watchtower.sh: local doctor, inspect, generate, open, typecheck, build, test, and run helper for the app workspace.references/project-map.md: app target map, main files, and build notes.