ワンクリックで
macos-ui-worker
Builds macOS SwiftUI views, ViewModels, and platform services for the heatmap feature in NetMonitor-macOS.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Builds macOS SwiftUI views, ViewModels, and platform services for the heatmap feature in NetMonitor-macOS.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Run the iOS functional smoke test suite on the remote Mac mini. Verifies all tools, dashboard, network map, settings, and timeline produce correct outcomes with screenshot capture at each verification point.
Scaffold a new SwiftData @Model class for NetMonitor-2.0. Creates the model file in NetMonitorCore, registers it in SchemaV1, regenerates the Xcode project, and verifies the build.
Run the NetMonitor-2.0 test suite. CRITICAL — tests must run on the mac-mini via SSH, never locally on this machine (no display session for UI tests, and the PreToolUse hook blocks local xcodebuild test calls). Use this skill any time you need to verify tests pass before committing or completing work.
Builds iOS SwiftUI views, ViewModels, platform services, and AR features for the heatmap feature in NetMonitor-iOS.
Builds shared Swift core logic in NetMonitorCore — models, services, renderers, serialization, and unit tests.
Run the NetMonitor-2.0 coverage gates and interpret results. Use after making code changes to verify coverage thresholds are still met before completing work. Must run on mac-mini via SSH.
| name | macos-ui-worker |
| description | Builds macOS SwiftUI views, ViewModels, and platform services for the heatmap feature in NetMonitor-macOS. |
NOTE: Startup and cleanup are handled by worker-base. This skill defines the WORK PROCEDURE.
Use for features that involve:
NetMonitor-macOS/Views/Heatmap/NetMonitor-macOS/ViewModels/NetMonitor-macOS/Platform/ (e.g., CoreWLAN integration)AGENTS.md for coding conventions and boundaries.factory/library/architecture.md for package placementNetMonitor-macOS/Views/ for SwiftUI patternsNetMonitor-macOS/ViewModels/ for ViewModel patternNetMonitor-macOS/Views/SidebarView.swift for navigation patternTests/NetMonitor-macOSTests/@Suite("HeatmapSurveyViewModel") @MainActor
struct HeatmapSurveyViewModelTests {
func makeVM() -> HeatmapSurveyViewModel {
HeatmapSurveyViewModel(measurementEngine: MockWiFiMeasurementEngine())
}
@Test func addMeasurementPointUpdatesState() async { ... }
}
@MainActor @Observable final class patternprivate(set) var for observable stateany WiFiMeasurementEngineProtocol)func methods are async where appropriateerrorMessage: String?NetMonitor-macOS/Views/Heatmap/{screen}_{element}_{descriptor}Canvas { context, size in ... } with MagnifyGesture and DragGesture for zoom/pan.onDrop(of:) modifier with UTType.imageNetMonitor-macOS/Platform/import CoreWLAN, CWWiFiClient.shared().interface()NetworkInfoService.swift patternsxcodebuild -scheme NetMonitor-macOS -configuration Debug build — must succeedxcodebuild -scheme NetMonitor-iOS -configuration Debug build — must also succeed (no regression)swiftlint lint --quiet — zero errorsswiftformat . — cleanssh mac-mini "cd ~/Projects/NetMonitor-2.0 && xcodebuild test -scheme NetMonitor-macOS -destination 'platform=macOS' CODE_SIGN_IDENTITY='-' CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO -only-testing:NetMonitor-macOSTests 2>&1 | tail -30"interactiveChecks..factory/library/architecture.md if you made architectural decisions.factory/library/user-testing.md if you found testing surface details{
"salientSummary": "Built the macOS heatmap survey view with floor plan import (PNG/JPEG/PDF/HEIC + drag-and-drop), SwiftUI Canvas for zoomable/pannable floor plan + heatmap overlay, measurement sidebar with point list and summary stats, and toolbar controls (mode toggle, RSSI badge, visualization picker). Added HeatmapSurveyViewModel with undo/redo stack. Wrote 28 ViewModel tests, all passing. Built and launched the macOS app — sidebar shows Heatmap item, floor plan imports and renders, clicking places measurement dots.",
"whatWasImplemented": "Created: Views/Heatmap/HeatmapSurveyView.swift (split view with canvas + sidebar), Views/Heatmap/HeatmapCanvasView.swift (SwiftUI Canvas with zoom/pan + measurement dots + heatmap overlay), Views/Heatmap/MeasurementSidebarView.swift, Views/Heatmap/CalibrationSheet.swift, ViewModels/HeatmapSurveyViewModel.swift. Modified: SidebarView.swift (added .heatmap case), NavigationSection.swift (added case).",
"whatWasLeftUndone": "",
"verification": {
"commandsRun": [
{"command": "xcodebuild -scheme NetMonitor-macOS -configuration Debug build 2>&1 | tail -5", "exitCode": 0, "observation": "BUILD SUCCEEDED"},
{"command": "xcodebuild -scheme NetMonitor-iOS -configuration Debug build 2>&1 | tail -5", "exitCode": 0, "observation": "BUILD SUCCEEDED"},
{"command": "swiftlint lint --quiet 2>&1 | grep -c 'error'", "exitCode": 0, "observation": "0 errors"}
],
"interactiveChecks": [
{"action": "Launched macOS app, clicked Heatmap in sidebar", "observed": "Heatmap survey view loaded with empty state prompting floor plan import"},
{"action": "Imported test PNG floor plan via NSOpenPanel", "observed": "Floor plan rendered on canvas at correct aspect ratio, zoomable via trackpad pinch"},
{"action": "Clicked 5 locations on floor plan", "observed": "5 blue dots appeared, measurement sidebar populated with RSSI/SSID/timestamp for each, heatmap overlay appeared after 3rd point with green/yellow/red gradient"}
]
},
"tests": {
"added": [
{"file": "Tests/NetMonitor-macOSTests/HeatmapSurveyViewModelTests.swift", "cases": [
{"name": "testAddMeasurementPoint", "verifies": "Click adds point to project and triggers re-render"},
{"name": "testUndoRemovesLastPoint", "verifies": "Cmd+Z removes last point"},
{"name": "testVisualizationTypeSwitch", "verifies": "Changing type updates rendered overlay"}
]}
]
},
"discoveredIssues": []
}