Increase widget visibility on Apple Watch using RelevanceKit. Use when providing contextual relevance signals for watchOS widgets, declaring time-based or location-based relevance, combining multiple relevance providers, helping the system surface the right widget at the right time on watchOS 26, or routing mixed RelevanceKit/WidgetKit/HealthKit/MapKit Smart Stack scope.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Use RelevanceKit to tell the Apple Watch Smart Stack when a widget matters by time, location, fitness state, sleep schedule, or connected hardware. Targets Swift 6.4 and watchOS 26+ relevant-widget workflows.
Beta-sensitive. Re-check current Apple documentation before changing availability, signatures, or Smart Stack behavior.
Use one of two models:
relevance() to an existing AppIntentTimelineProvider when the widget
always has timeline content and relevance is supplementary.RelevanceConfiguration with a RelevanceEntriesProvider when the
widget should appear only under matching conditions or create multiple
relevant cards. This path is watchOS 26+.Read RelevanceKit patterns for complete
providers, every RelevantContext factory, permissions, grouping,
associatedKind, previews, and RelevantIntentManager updates.
RelevantContext is declared across Apple platforms, but its relevance effect
is watchOS-only. Shared provider code may compile elsewhere without changing
widget visibility there.
Keep this skill focused on RelevantContext, WidgetRelevanceAttribute,
provider relevance(), RelevanceConfiguration, grouping,
RelevantIntentManager, and permissions required by relevance clues.
Route these sibling concerns elsewhere:
widgetkit.healthkit.mapkit.| Context | Use | Required setup |
|---|---|---|
.date(...) | Moment, scheduled event, or date interval | None |
.location(inferred:) | Home, work, school, commute | App location permission plus NSWidgetWantsLocation |
.location(_:) | Specific CLRegion | Same location setup |
.location(category:) | Nearby point-of-interest category | Same setup; returns optional |
.fitness(.workoutActive) | Active workout | HealthKit read access to HKWorkoutType |
.fitness(.activityRingsIncomplete) | Ring progress | Exact exercise/move/stand read types |
.sleep(...) | Bedtime or wakeup | Sleep-analysis read access |
.hardware(headphones:) | Headphone connection | None |
Location purpose strings belong in the containing app. The widget extension
declares NSWidgetWantsLocation and checks
CLLocationManager.isAuthorizedForWidgetUpdates. Enable HealthKit and request
the exact read types in every target that supplies fitness or sleep relevance.
WidgetRelevanceAttribute values in priority order; the system may use
only a subset.location(category:) is optional—omit unsupported categories rather than
force-unwrapping.relevance, entry, placeholder,
and a deterministic preview path..associatedKind(_:) to avoid duplicate Smart Stack cards..automatic, .ungrouped, or .named grouping intentionally.RelevantIntentManager.shared.updateRelevantIntents whenever source data
changes, not only during timeline refresh.associatedKind and creating duplicate cards.associatedKind prevent unwanted duplicates.thienqo/ios-skills
6bf8b62
Canonical home
since May 23, 2026
Also appears in
on Oct 29, 2026
since May 22, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.