Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add existential-birds/beagle --skill "widgetkit-code-review"
Install specific skill from multi-skill repository
# Description
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.
# SKILL.md
name: widgetkit-code-review
description: 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.
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
- [ ]
placeholder(in:)returns immediately without async work - [ ] Timeline entries spaced at least 5 minutes apart
- [ ]
getSnapshotcheckscontext.isPreviewfor gallery previews - [ ]
containerBackground(for:)used for iOS 17+ compatibility - [ ]
widgetURLused for systemSmall (not Link) - [ ] 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
defaultResult()for non-optional parameters - [ ] New intent parameters handle nil for existing widgets after updates
- [ ]
reloadTimelinescalled strategically (not on every data change)
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?
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.