CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

alarmkit

Implement AlarmKit alarms and countdown timers for iOS and iPadOS with Lock Screen, Dynamic Island, StandBy, and paired Apple Watch system UI. Covers AlarmManager scheduling, AlarmAttributes and AlarmPresentation, system Stop and AlarmButton secondary actions, authorization, state observation, countdown widget-extension handoff, and Live Activity integration. Use when building wake-up alarms, countdown timers, or alarm-style alerts that need Apple's system alarm experience.

Quality

97%

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

92%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 well-engineered skill body: sequenced workflow with authorization gates and state-confirmation checkpoints, executable representative code, decision tables, a review checklist, and clean one-level-deep progressive disclosure into a verified reference file. The only weakness is repetition — the system-alert-UI vs widget-extension routing rule is restated four times and could be consolidated.

Suggestions

State the 'system renders alerting UI; widget extension only customizes countdown/paused states' routing rule once (e.g., in the intro) and remove the three restatements in 'AlarmAttributes and AlarmPresentation' and 'Live Activity Integration'.

Consolidate the duplicated 'keep AlarmMetadata lightweight and share the type with the widget extension' advice into one section (the metadata paragraph of 'AlarmAttributes and AlarmPresentation').

DimensionReasoningScore

Conciseness

The body is largely dense, API-specific, and free of general-concept padding, but the routing fact 'the system renders the alerting UI; a widget extension only customizes countdown/paused states' is stated four times (intro paragraph, 'AlarmAttributes and AlarmPresentation', 'Live Activity Integration' twice), and 'keep metadata lightweight / share it with the widget extension' is repeated twice. This matches anchor 4 ('Efficient; minor instances of over-explanation that could be trimmed') — trimmable repetition exists, but it is not the pervasive padding of level 3.

4 / 5

Actionability

The scheduling example is complete and copy-paste ready — real `AlarmPresentation.Alert`, `AlarmButton`, `AlarmAttributes<EmptyAlarmMetadata>`, `AlarmManager.AlarmConfiguration`, and `schedule(id:configuration:)` calls — alongside executable authorization code, exact API syntax for timers ('.timer(duration:...)'), concrete state-transition operations, and decision tables. The common cases are covered inline with the rest clearly delegated to verified reference anchors, matching the top anchor ('Fully executable; copy-paste ready code... specific examples cover the common cases').

5 / 5

Workflow Clarity

The 9-step workflow is clearly sequenced (usage description → authorization gate → presentation → attributes → configuration → schedule → observe → widget) with explicit validation checkpoints: 'If authorization is .denied... show recovery UI instead of scheduling' and 'Observe alarmManager.alarmUpdates and confirm the scheduled ID reaches the expected state', plus a closing Review Checklist and explicit error-handling guidance ('wrap launch refresh in do/catch'). This matches the top anchor (clear sequence, explicit validation steps, checklist).

5 / 5

Progressive Disclosure

Clear overview structure with a table of contents, representative inline examples, and a single one-level-deep reference file whose five deep-link anchors (Complete Alarm Scheduling Flow, Complete Countdown Timer Flow, State Observation, Live Activity Widget Extension, Recurring Alarm Patterns) all resolve to real headings in references/alarmkit-patterns.md. Content is appropriately split — bulk flows, error handling, and Info.plist details live in the reference — matching the top anchor ('Clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation').

5 / 5

Total

19

/

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 description: third-person, specific, comprehensive over the API surface, with an explicit 'Use when...' trigger clause containing natural user phrasings and synonyms, and a clearly bounded niche that minimizes conflict with adjacent notification/widget skills.

DimensionReasoningScore

Specificity

The description lists multiple concrete API-level actions and components — 'Implement AlarmKit alarms and countdown timers', 'AlarmManager scheduling, AlarmAttributes and AlarmPresentation, system Stop and AlarmButton secondary actions, authorization, state observation, countdown widget-extension handoff, and Live Activity integration' — giving comprehensive coverage of the framework surface, matching the top anchor ('Lists multiple specific concrete actions; comprehensive coverage'). It is not the level below because the coverage is broad and component-by-component rather than having minor gaps.

5 / 5

Completeness

Both 'what' and 'when' are explicit: what is stated as implementing alarms/timers with a full component list, and when is stated as 'Use when building wake-up alarms, countdown timers, or alarm-style alerts that need Apple's system alarm experience' — an explicit trigger clause with concrete phrases, matching the top anchor exactly. It is not the level below because the 'when' clause is fully explicit, not merely present.

5 / 5

Trigger Term Quality

Natural user phrasings with synonym variation are present: 'alarms', 'countdown timers', 'wake-up alarms', 'alarm-style alerts', plus surface terms 'Lock Screen, Dynamic Island, StandBy, and paired Apple Watch'. This matches the top anchor ('Comprehensive coverage of natural terms including synonyms') — a user asking for an alarm or timer on iOS would naturally use these words. It is not the level below because no common natural variation of the request is missing.

5 / 5

Distinctiveness Conflict Risk

The description occupies a clear niche (AlarmKit's Apple-system alarm experience on iOS/iPadOS) with distinct triggers, so it is unlikely to fire for generic notification, reminder, or widget skills; the phrase 'that need Apple's system alarm experience' further narrows it. This matches the top anchor ('Clear niche with distinct triggers; minimal conflict risk').

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/alarmkit/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.