← ClaudeAtlas

widgetkitlisted

Route WidgetKit implementation tasks to the correct Knowledge Contracts -- widget declaration and families, timeline provider and entries, widget interactivity and deep links, and timeline reloading and refresh budget. Use when conforming to Widget, WidgetBundle, or WidgetConfiguration, choosing StaticConfiguration or AppIntentConfiguration, declaring supportedFamilies or reading widgetFamily, applying containerBackground, implementing TimelineProvider (placeholder, getSnapshot, getTimeline), building a Timeline of TimelineEntry values, choosing a TimelineReloadPolicy, wiring widgetURL, Link, Button(intent:), or Toggle(_:isOn:intent:), or calling WidgetCenter.reloadTimelines/reloadAllTimelines. v1 is home-screen/Lock-Screen widgets only -- no Live Activities/ActivityKit, no watchOS complications as a distinct surface, no Control Widgets (iOS 18 Controls/ControlWidget), no StandBy-specific layout. Triggers on WidgetKit, Widget, WidgetBundle, WidgetConfiguration, StaticConfiguration, AppIntentConfiguration, sup
caglarbaranbora/Apple-Agent-Kit · ★ 1 · AI & Automation · score 70
Install: claude install-skill caglarbaranbora/Apple-Agent-Kit
# WidgetKit — Foundations Skill ## Purpose Route WidgetKit implementation tasks to the minimum required WidgetKit Knowledge Contracts. v1 scope is home-screen and Lock-Screen widgets built with `Widget`/`WidgetConfiguration` and `TimelineProvider` only — no Live Activities, no watchOS complications as a distinct surface, no Control Widgets, no StandBy-specific layout. ## Routing Load only the contracts relevant to the task. All paths relative to knowledge/widgetkit/. - Conforming to `Widget`, `WidgetBundle`, or `WidgetConfiguration`; choosing `StaticConfiguration`/`AppIntentConfiguration`; declaring `supportedFamilies` or reading `@Environment(\.widgetFamily)`; applying `.containerBackground(for: .widget)`; or the `kind` string's stability -> widget-declaration-and-families.md - Implementing `TimelineProvider`'s `placeholder(in:)`, `getSnapshot(in:completion:)`, or `getTimeline(in:completion:)`; building a `Timeline` of `TimelineEntry` values; or choosing a `TimelineReloadPolicy` -> timeline-provider-and-entries.md - Wiring `widgetURL(_:)`, `Link`, `Button(intent:)`, or `Toggle(_:isOn:intent:)` into a widget's view -> widget-interactivity-and-deep-links.md - Calling `WidgetCenter.shared.reloadTimelines(ofKind:)`/`reloadAllTimelines()`, or reasoning about the refresh budget -> timeline-reloading-and-refresh-budget.md Never load more than the contracts relevant to the specific question. ## Stop Conditions Stop and report if the requested topic has no matching Kn