Skills widgetkit-code-review
Reviews WidgetKit code for timeline management, view composition, configurable intents, and performance. Use when reviewing code with import WidgetKit, TimelineProvider, Widget protocol, or @main struct Widget.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/anderskev/widgetkit-code-review" ~/.claude/skills/openclaw-skills-widgetkit-code-review && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/anderskev/widgetkit-code-review" ~/.openclaw/skills/openclaw-skills-widgetkit-code-review && rm -rf "$T"
manifest:
skills/anderskev/widgetkit-code-review/SKILL.mdsource content
WidgetKit Code Review
Quick Reference
| Issue Type | Reference |
|---|---|
| TimelineProvider, entries, reload policies | references/timeline.md |
| Widget families, containerBackground, deep linking | references/views.md |
| AppIntentConfiguration, EntityQuery, @Parameter | references/intents.md |
| Refresh budget, memory limits, caching | references/performance.md |
Review Checklist
-
returns immediately without async workplaceholder(in:) - Timeline entries spaced at least 5 minutes apart
-
checksgetSnapshot
for gallery previewscontext.isPreview -
used for iOS 17+ compatibilitycontainerBackground(for:) -
used for systemSmall (not Link)widgetURL - No Button views (use Link or widgetURL)
- No AsyncImage or UIViewRepresentable in widget views
- Images downsampled to widget display size (~30MB limit)
- App Groups configured for data sharing between app and widget
- EntityQuery implements
for non-optional parametersdefaultResult() - New intent parameters handle nil for existing widgets after updates
-
called strategically (not on every data change)reloadTimelines
When to Load References
- TimelineProvider implementation or refresh issues -> timeline.md
- Widget sizes, Lock Screen, containerBackground -> views.md
- Configurable widgets, AppIntent migration -> intents.md
- Memory issues, caching, budget management -> performance.md
Review Questions
- Does the widget provide fallback entries for when system delays refresh?
- Are Lock Screen families (accessoryCircular/Rectangular/Inline) handled appropriately?
- Would migrating from IntentConfiguration break existing user widgets?
- Is timeline populated with future entries or does it rely on frequent refreshes?
- Is data cached via App Groups for widget access?