一键导入
parity-check
Compare macOS and Windows implementations for cross-platform parity drift
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Compare macOS and Windows implementations for cross-platform parity drift
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Resume work on current branch's task (infers task from branch name)
Run an epic end-to-end with agent team (analyze, design review, implement, deliver PR)
Start working on a beads task (creates worktree, updates status)
Scan docs and CLAUDE.md for stale references, broken links, and drift against the codebase
| name | parity-check |
| description | Compare macOS and Windows implementations for cross-platform parity drift |
| user_invocable | true |
CLAUDE.md says: "Mac is the primary development platform. Windows features should follow." This skill finds places where Windows has drifted from macOS (or vice versa) — new features on one side, renamed fields in the shared API contract, service classes with different surfaces.
API model parity — the Pablo backend REST API is the shared contract. Diff the generated types:
mac/PabloCompanion/Generated/PabloAPITypes.swiftwindows/PabloCompanion/Models/PabloAPITypes.csFor each Codable/JSON type:
CodingKeys / [JsonPropertyName]) identical?Service surface parity — for each Swift service under mac/PabloCompanion/Services/, look for a C# counterpart under windows/PabloCompanion/Services/:
APIClient.swift → APIClient.cs, PHISanitizer.swift → PhiSanitizer.cs)ViewModel parity — same approach for mac/PabloCompanion/ViewModels/ ↔ windows/PabloCompanion/ViewModels/.
Known-sensitive spots — specifically diff these:
AuthViewModel.swift ↔ AuthViewModel.cs, LoopbackServer.swift ↔ LoopbackServer.csPHISanitizer.swift ↔ PhiSanitizer.cs, SelectorValidator.swift ↔ SelectorValidator.csRecordingEncryptor.swift ↔ AesGcmEncryptor usage + KeychainManager.swift ↔ CredentialManager.csFeature set — check whether major features mentioned in CLAUDE.md (Day view, Start Session, Patient creation, Sparkle auto-update, etc.) have implementations on both platforms. If a feature is flagged as Mac-only or Windows-only, verify that CLAUDE.md documents that intent.
## Cross-Platform Parity Audit
### API Model Drift (blocking — breaks wire compatibility)
- **Session.scheduledAt** — present in Swift, missing in C# `Session.cs`
- **Patient.firstName** — Swift camelCase `firstName`, C# maps to `first_name` (mismatch with Swift `CodingKeys`?)
- ...
### Service Drift
- **mac: FooService.swift** — no Windows counterpart
- **windows: BarService.cs** — no macOS counterpart
- **APIClient**: `fetchFoo()` on Swift, no `FetchFooAsync()` on C#
- ...
### Intentional Mac-only / Windows-only (per CLAUDE.md)
- WhisperTranscriber.cs — Windows-only; macOS is cloud-only (PABLO-D-106 tracks migration)
- ...
### Aligned
- PabloAPITypes: all N types parity-clean
- Services: APIClient, RecordingService, SessionRecordingStore, PHISanitizer — aligned
async throws ↔ C# Task<T> with exceptions) as drift.isValidAuthCode() with regex ^[a-zA-Z0-9_\-\.]{10,2000}$ must have a matching regex on C#)./parity-check
Takes no arguments. Runs against the whole repo.