/axiom-watchos
Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration.
$ npx -y skills add charleswiltgen/axiom --skill axiom-watchos --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/axiom-watchos
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration.
SKILL.md
axiom-watchos.SKILL.mdname: axiom-watchos
description: Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration.
license: MIT
watchOS Development
**You MUST use this skill for ANY watchOS-specific development including app structure, independent apps, Watch Connectivity, complications and Smart Stack widgets, controls, Live Activities on watch, background tasks, and ClockKit migration.**
<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit --> > **Not on Claude Code?** Where this router says "Launch `some-auditor` agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read. > > Homed in another suite: `axiom-build/skills/modernization-helper.md`. > > Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those. <!-- AXIOM_AUDITOR_INLINE_END -->
Quick Reference
| Symptom / Task | Reference | |----------------|-----------| | App structure, independent apps, watchOS 26 submission requirements | See `skills/platform-basics.md` | | watchOS HIG, glanceable UX, navigation model | See `skills/design-for-watchos.md` | | Smart Stack widgets, complications, ClockKit→WidgetKit, RelevanceKit | See `skills/smart-stack-and-complications.md` | | Controls on watch surfaces, Live Activities on watch | See `skills/controls-and-live-activities.md` | | Watch Connectivity (WCSession), paired-device data transfer, Family Setup | See `skills/watch-connectivity.md` | | Xcode won't install/launch/attach to a Watch; Watch missing or `unavailable` in Device Hub / devicectl | See `skills/watch-device-diag.md` | | Background tasks, freshness scheduling, TN3135 networking limits | See `skills/background-and-networking.md` | | BGTaskScheduler migration, deprecated WK background scheduling `OS27` | See `skills/background-and-networking.md` | | Foundation Models / Private Cloud Compute on the watch `OS27` | See `skills/platform-basics.md` | | WatchKit→SwiftUI migration, ClockKit→WidgetKit migration | See `skills/modernization.md` |
Cross-Suite Routes
These topics overlap with watchOS development but live in separate suites:
SwiftUI (shared iOS/watchOS/macOS)
- View state, data flow, @Observable → See axiom-swiftui
- Navigation basics (NavigationStack) → See axiom-swiftui
- Layout, animations → See axiom-swiftui
Design
- General HIG, Liquid Glass, SF Symbols, typography → See axiom-design
Accessibility
- General VoiceOver, Dynamic Type, WCAG → See axiom-accessibility
- watchOS-specific (VoiceOver rotor on Digital Crown, AssistiveTouch, Double Tap) → See axiom-accessibility (`skills/watchos-a11y.md`)
Health and workouts
- HealthKit, `HKWorkoutSession`, `HKLiveWorkoutBuilder`, WorkoutKit → See axiom-health
- Workout recovery, multi-device coordination → See axiom-health (`skills/workouts.md`)
iOS-side widgets and App Intents
- iOS/iPadOS widgets, configuration intents, App Intents → See axiom-integration
- Live Activities on iPhone (initiation + ActivityKit) → See axiom-integration
Concurrency
- Swift 6 concurrency, actors, Sendable → See axiom-concurrency
New-on-watch frameworks (27 releases)
- Foundation Models depth (sessions, @Generable, tools, PCC) → See axiom-ai; watch scoping is in `skills/platform-basics.md`
- Vision framework (new on watchOS 27) → See axiom-vision
- NowPlaying / MusicUnderstanding (new on watchOS 27) → See axiom-media
Conflict Resolution
**axiom-watchos vs axiom-swiftui**: When building a watchOS SwiftUI app: 1. **Use axiom-watchos** for watch-specific patterns: glanceable UI, constrained navigation, Digital Crown focus, Smart Stack placement 2. **Use axiom-swiftui** for cross-platform SwiftUI: state management, layout primitives, animations 3. **Both may apply**: A watchOS NavigationStack with complications needs axiom-watchos for complication surfaces and axiom-swiftui for NavigationStack basics
**axiom-watchos vs axiom-integration**: For widgets and Live Activities: 1. **Use axiom-watchos** for watch complications, Smart Stack placement, watch-side Live Activity presentation, RelevanceKit 2. **Use axiom-integration** for iOS/iPadOS widgets, core ActivityKit API, App Intents
**watch-device-diag vs watch-connectivity**: Two independent connections fail in ways that look identical. Decide which before writing any code: 1. **Use watch-device-diag** for the Mac/Xcode → Watch link (CoreDevice): install, launch, LLDB attach, a Watch that is missing or `unavailable` 2. **Use watch-connectivity** for the iPhone app ↔ watchOS app link (`WCSession`): transfer-API choice, delivery semantics, background-task completion 3. **When unsure, start with watch-device-diag.** Run the app without the debugger attached — if it behaves correctly, the fault is the tunnel and no `WCSession` change will help. Redesigning `WCSession` to compensate for a broken debugger tunnel is the most expensive mistake in watchOS work 4. **`isReachable == false` is not a transport failure** — it is the expected value across ordinary lifecycle transitions and routes to watch-connectivity, not here
**axiom-watchos vs axiom-health**: For workouts on Apple Watch: 1. **Use axiom-watchos** for watch-specific presentation: Always On display, Smart Stack placement, background mode coordination 2. **Use axiom-health** for `HKWorkoutSession` lifecycle, `HKLiveWorkoutBuilder`, recovery, multi-device mirroring
Decision Tree
digraph watchos {
start [label="watchOS development task" shape=ellipse];
what [label="What area?" shape=diamond];
start -> what;
what -> "skills/platform-basics.md" [label="app structure, independent apps, submission"];
what -> "skills/design-for-watchos.md" [label="watch HIG, glanceable UX"];
what -> "skills/smart-stack-and-coRead more
name: axiom-watchos description: Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration. license: MIT
watchOS Development
**You MUST use this skill for ANY watchOS-specific development including app structure, independent apps, Watch Connectivity, complications and Smart Stack widgets, controls, Live Activities on watch, background tasks, and ClockKit migration.**
<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit --> > **Not on Claude Code?** Where this router says "Launch `some-auditor` agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read. > > Homed in another suite: `axiom-build/skills/modernization-helper.md`. > > Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those. <!-- AXIOM_AUDITOR_INLINE_END -->
Quick Reference
| Symptom / Task | Reference | |----------------|-----------| | App structure, independent apps, watchOS 26 submission requirements | See `skills/platform-basics.md` | | watchOS HIG, glanceable UX, navigation model | See `skills/design-for-watchos.md` | | Smart Stack widgets, complications, ClockKit→WidgetKit, RelevanceKit | See `skills/smart-stack-and-complications.md` | | Controls on watch surfaces, Live Activities on watch | See `skills/controls-and-live-activities.md` | | Watch Connectivity (WCSession), paired-device data transfer, Family Setup | See `skills/watch-connectivity.md` | | Xcode won't install/launch/attach to a Watch; Watch missing or `unavailable` in Device Hub / devicectl | See `skills/watch-device-diag.md` | | Background tasks, freshness scheduling, TN3135 networking limits | See `skills/background-and-networking.md` | | BGTaskScheduler migration, deprecated WK background scheduling `OS27` | See `skills/background-and-networking.md` | | Foundation Models / Private Cloud Compute on the watch `OS27` | See `skills/platform-basics.md` | | WatchKit→SwiftUI migration, ClockKit→WidgetKit migration | See `skills/modernization.md` |
Cross-Suite Routes
These topics overlap with watchOS development but live in separate suites:
SwiftUI (shared iOS/watchOS/macOS)
- View state, data flow, @Observable → See axiom-swiftui
- Navigation basics (NavigationStack) → See axiom-swiftui
- Layout, animations → See axiom-swiftui
Design
- General HIG, Liquid Glass, SF Symbols, typography → See axiom-design
Accessibility
- General VoiceOver, Dynamic Type, WCAG → See axiom-accessibility
- watchOS-specific (VoiceOver rotor on Digital Crown, AssistiveTouch, Double Tap) → See axiom-accessibility (`skills/watchos-a11y.md`)
Health and workouts
- HealthKit, `HKWorkoutSession`, `HKLiveWorkoutBuilder`, WorkoutKit → See axiom-health
- Workout recovery, multi-device coordination → See axiom-health (`skills/workouts.md`)
iOS-side widgets and App Intents
- iOS/iPadOS widgets, configuration intents, App Intents → See axiom-integration
- Live Activities on iPhone (initiation + ActivityKit) → See axiom-integration
Concurrency
- Swift 6 concurrency, actors, Sendable → See axiom-concurrency
New-on-watch frameworks (27 releases)
- Foundation Models depth (sessions, @Generable, tools, PCC) → See axiom-ai; watch scoping is in `skills/platform-basics.md`
- Vision framework (new on watchOS 27) → See axiom-vision
- NowPlaying / MusicUnderstanding (new on watchOS 27) → See axiom-media
Conflict Resolution
**axiom-watchos vs axiom-swiftui**: When building a watchOS SwiftUI app: 1. **Use axiom-watchos** for watch-specific patterns: glanceable UI, constrained navigation, Digital Crown focus, Smart Stack placement 2. **Use axiom-swiftui** for cross-platform SwiftUI: state management, layout primitives, animations 3. **Both may apply**: A watchOS NavigationStack with complications needs axiom-watchos for complication surfaces and axiom-swiftui for NavigationStack basics
**axiom-watchos vs axiom-integration**: For widgets and Live Activities: 1. **Use axiom-watchos** for watch complications, Smart Stack placement, watch-side Live Activity presentation, RelevanceKit 2. **Use axiom-integration** for iOS/iPadOS widgets, core ActivityKit API, App Intents
**watch-device-diag vs watch-connectivity**: Two independent connections fail in ways that look identical. Decide which before writing any code: 1. **Use watch-device-diag** for the Mac/Xcode → Watch link (CoreDevice): install, launch, LLDB attach, a Watch that is missing or `unavailable` 2. **Use watch-connectivity** for the iPhone app ↔ watchOS app link (`WCSession`): transfer-API choice, delivery semantics, background-task completion 3. **When unsure, start with watch-device-diag.** Run the app without the debugger attached — if it behaves correctly, the fault is the tunnel and no `WCSession` change will help. Redesigning `WCSession` to compensate for a broken debugger tunnel is the most expensive mistake in watchOS work 4. **`isReachable == false` is not a transport failure** — it is the expected value across ordinary lifecycle transitions and routes to watch-connectivity, not here
**axiom-watchos vs axiom-health**: For workouts on Apple Watch: 1. **Use axiom-watchos** for watch-specific presentation: Always On display, Smart Stack placement, background mode coordination 2. **Use axiom-health** for `HKWorkoutSession` lifecycle, `HKLiveWorkoutBuilder`, recovery, multi-device mirroring
Decision Tree
digraph watchos {
start [label="watchOS development task" shape=ellipse];
what [label="What area?" shape=diamond];
start -> what;
what -> "skills/platform-basics.md" [label="app structure, independent apps, submission"];
what -> "skills/design-for-watchos.md" [label="watch HIG, glanceable UX"];
what -> "skills/smart-stack-and-coBattle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.
Repo: charleswiltgen/axiom
Other skills on axiom.
- /axiom-accessibility
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
Open skill - /axiom-ai
Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation Models, @Generable, LanguageModelSession, Tool protocol, eval suites, model-as-judge scoring, SpeechTranscriber, CoreML.
Open skill - /axiom-analyze-crash
Use when the user has a crash log (.
Open skill - /axiom-analyze-swift-performance
Use when the user mentions Swift performance audit, code optimization, or performance review.
Open skill - /axiom-analyze-swiftui-performance
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues.
Open skill - /axiom-analyze-test-failures
Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose WHY a specific test fails.
Open skill

