Activitykit
iOS Live Activity and Dynamic Island patterns plus a 20-item ActivityKit review checklist
Test report
- Verdict
- Tested · Works
- Score
- Tested
- Jul 21, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · 936d023
Installed into a throwaway HOME via the install block above and confirmed ~/.claude/skills/activitykit/SKILL.md lands; frontmatter parses to name+description only (554 chars), all three raw files return HTTP 200, the relative link and its #push-to-update-server-payload-format anchor both resolve to line 234 of the 953-line reference, and grep found no curl|sh, base64 payloads, secret exfiltration, or hardcoded machine paths (the only curl is a documented APNs example using $JWT_TOKEN). For output I wrote a 130-line ride-sharing Live Activity file with 12 planted ActivityKit defects and reviewed it twice: baseline caught 6 (deprecated contentState API, missing end on cancel/sign-out, PII on Lock Screen, 180KB blob in ContentState, network in the widget view, content-state key mismatch) while the checklist-driven pass caught all 12, including the four baseline missed entirely — NSSupportsLiveActivities sitting in the widget extension instead of the host app (fatal, nothing starts), no staleDate/context.isStale handling, no ActivityAuthorizationInfo gate, and style:.transient being wrong for persistent ride tracking — plus it diagnosed *why* the payload fails (ClosedRange<Date> encodes as a two-element array, not the ISO string sent) and that apns-topic needs the .push-type.liveactivity suffix. Docked to 8 because the skill pass, being checklist-shaped, dropped the try!/force-unwrapped-URL crash that baseline flagged, and nothing here compiles or runs on a device.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 5/5
- Triggers reliably 5/5
- Output vs. baseline 7/10
- Docs & honesty 5/5
What Activitykit does
Guides implementation and review of iOS Live Activities and Dynamic Island presentations built on ActivityKit, covering ActivityAttributes and ContentState design, the request/update/end lifecycle, Lock Screen and Dynamic Island layouts, APNs push-to-update and push-to-start, and a 20-item review checklist. Triggers when work involves ActivityKit, Live Activities, Dynamic Island compact/expanded/minimal regions, activity push tokens, or aps.content-state payloads. Includes a 950-line reference file with full Swift snippets, APNs payload examples, and Info.plist keys.
How to install Activitykit
git clone --depth 1 https://github.com/dpearson2699/swift-ios-skills.git /tmp/activitykit-src
mkdir -p ~/.claude/skills
cp -R /tmp/activitykit-src/skills/activitykit ~/.claude/skills/activitykit
# Installs SKILL.md + references/activitykit-patterns.md + evals/evals.json. No deps, no API keys.
# Repo holds 86 sibling iOS skills; this copies only activitykit.
# Alternative (whole marketplace, Claude Code plugin): /plugin marketplace add dpearson2699/swift-ios-skills
# Alternative (interactive picker, any agent): npx skills add dpearson2699/swift-ios-skills
# Cleanup: rm -rf /tmp/activitykit-src
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger Activitykit
-
/activitykitiOS Live Activity and Dynamic Island patterns plus a 20-item ActivityKit review checklist
It also activates on plain-language prompts like these:
-
Add a Dynamic Island layout for delivery tracking -
Implement push-to-update Live Activities for scores -
Review my ActivityKit lifecycle handling code
Frequently asked questions
- Is the Activitykit skill free?
- Yes. The skill itself is free from dpearson2699/swift-ios-skills. SkillProof publishes the install command and an independent test verdict at no cost.
- Does Activitykit work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 21, 2026. Verdict: Tested · Works. Installed into a throwaway HOME via the install block above and confirmed ~/.claude/skills/activitykit/SKILL.md lands; frontmatter parses to name+description only (554 chars), all three raw files return HTTP 200, the relative link and its #push-to-update-server-payload-format anchor both resolve to line 234 of the 953-line reference, and grep found no curl|sh, base64 payloads, secret exfiltration, or hardcoded machine paths (the only curl is a documented APNs example using $JWT_TOKEN). For output I wrote a 130-line ride-sharing Live Activity file with 12 planted ActivityKit defects and reviewed it twice: baseline caught 6 (deprecated contentState API, missing end on cancel/sign-out, PII on Lock Screen, 180KB blob in ContentState, network in the widget view, content-state key mismatch) while the checklist-driven pass caught all 12, including the four baseline missed entirely — NSSupportsLiveActivities sitting in the widget extension instead of the host app (fatal, nothing starts), no staleDate/context.isStale handling, no ActivityAuthorizationInfo gate, and style:.transient being wrong for persistent ride tracking — plus it diagnosed *why* the payload fails (ClosedRange<Date> encodes as a two-element array, not the ISO string sent) and that apns-topic needs the .push-type.liveactivity suffix. Docked to 8 because the skill pass, being checklist-shaped, dropped the try!/force-unwrapped-URL crash that baseline flagged, and nothing here compiles or runs on a device.
- What is the Activitykit SkillProof Score?
- 8.8/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 7/10, docs & honesty 5/5.
- How do I install Activitykit?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use Activitykit with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.