CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

activitykit

Implement, review, or improve Live Activities and Dynamic Island experiences in iOS apps using ActivityKit. Use when building real-time updating widgets for the Lock Screen and Dynamic Island — delivery tracking, sports scores, ride-sharing status, workout timers, media playback, or any time-sensitive information that updates in real time. Also use when working with ActivityKit, ActivityAttributes, Activity lifecycle (request/update/end), Dynamic Island layouts (compact/minimal/expanded), push-to-update Live Activities, or Lock Screen live widgets.

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is dpearson2699/swift-ios-skills

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, well-structured domain skill: fully executable code, workflows with embedded validation checkpoints, a comprehensive review checklist, and correct deferral of detailed payload patterns to a real, clearly signaled reference file. The main improvement opportunities are trimming duplicated lifecycle code between SKILL.md and the reference, and removing minor redundant explanations.

Suggestions

Consolidate the request/update/end lifecycle code that appears in both SKILL.md and references/activitykit-patterns.md — keep one canonical example in SKILL.md and point to the reference for full-parameter variants, trimming roughly 480 lines of body length.

Remove tautological or duplicated prose such as "Dynamic Island presentations appear only on devices that include Dynamic Island" and the second restatement of the 8/12/4-hour duration rules in the Review Checklist (link the Ending section instead).

Consider moving the Dynamic Island region tables and keylineTint snippet into the reference file to make SKILL.md a tighter overview, raising progressive disclosure toward the clear-overview anchor.

DimensionReasoningScore

Conciseness

The body is dense and high-value with no tutorial padding — code examples carry the weight and only ActivityKit-specific knowledge is included. A few spots could be trimmed: "Dynamic Island presentations appear only on devices that include Dynamic Island" is tautological, and the dismissal-policy durations are explained twice (Ending section and Review Checklist). Not 5 due to these minor redundancies; not 3 because almost every section earns its tokens.

4 / 5

Actionability

Complete, executable Swift throughout: full ActivityAttributes/ContentState definitions, Activity.request/update/end with all three dismissal policies, a complete ActivityConfiguration covering Lock Screen plus all Dynamic Island modes, and token-observation loops. The APNs payload section correctly defers full JSON bodies to the verified reference anchor. Copy-paste ready and covers the common cases.

5 / 5

Workflow Clarity

Two clearly sequenced workflows: the 6-step creation workflow embeds explicit validation checkpoints ("encode and decode a representative fixture that matches the server payload contract", "Check ActivityAuthorizationInfo.areActivitiesEnabled", "Exercise local update and every terminal end path", "validate a complete reference payload before registering... tokens"), and the review workflow points to a comprehensive 20-item checklist. This matches the anchor-5 pattern of sequence + validation + checklist.

5 / 5

Progressive Disclosure

Good structure: a single one-level-deep reference (references/activitykit-patterns.md, verified present with the linked anchor), clearly signaled at the top, in the Contents list, and in a References section; heavy payload formats are correctly kept in the reference rather than inlined. However, the ~480-line body duplicates several lifecycle code examples (request/update/end, token handling) that also appear in the reference file, which is a minor organization gap keeping it below the "clear overview" anchor.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary skill description: it names concrete actions, covers the full capability surface, provides explicit dual "Use when" trigger clauses with both use-case scenarios and API terms, and stays squarely within its ActivityKit niche. Third-person imperative voice is used correctly.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions ("Implement, review, or improve") and specific capabilities — "Activity lifecycle (request/update/end)", "Dynamic Island layouts (compact/minimal/expanded)", "push-to-update Live Activities" — giving comprehensive coverage. Score 4 would require minor coverage gaps, but implementation, review, lifecycle, layouts, and push are all explicitly named.

5 / 5

Completeness

Explicitly answers both questions: the "what" is "Implement, review, or improve Live Activities and Dynamic Island experiences in iOS apps using ActivityKit" and the "when" appears twice as concrete trigger clauses — "Use when building real-time updating widgets for the Lock Screen and Dynamic Island" and "Also use when working with ActivityKit, ActivityAttributes...". This matches the anchor-5 example structure exactly.

5 / 5

Trigger Term Quality

Comprehensive natural term coverage including synonyms and concrete scenarios: "Live Activities", "Dynamic Island", "Lock Screen", "delivery tracking, sports scores, ride-sharing status, workout timers, media playback", plus API-level terms "ActivityKit", "ActivityAttributes". Users describing any of these needs would naturally use these phrases.

5 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers: "Live Activities", "Dynamic Island", "ActivityKit", "push-to-update" are all ActivityKit-specific terms unlikely to fire for other skills. The generic word "widgets" lightly brushes timeline-widget territory, but every trigger phrase is anchored to Live Activities, keeping conflict risk minimal — not score 4, which requires a meaningful overlap with a closely related skill.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

dpearson2699/swift-ios-skills

Path

skills/activitykit/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.