CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

core-bluetooth

Build direct Bluetooth Low Energy workflows with Core Bluetooth. Use when implementing BLE central or peripheral GATT communication, scanning or connecting with CBCentralManager, discovering services and characteristics, reading/writing/subscribing with CBPeripheral, publishing local services with CBPeripheralManager, handling Bluetooth authorization, background BLE modes, state restoration, write flow control, or CBUUID-based workflows. For privacy-preserving accessory setup/picker flows, use accessorysetupkit first and return here for post-setup GATT communication.

Quality

93%

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

82%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, highly actionable body: complete executable Swift covering the whole central/peripheral lifecycle with proper state gating, flow-controlled writes, and a review checklist. The main deductions are mild — overlapping mistakes/checklist tables, stubbed reconnect handling, and a main file dense enough that more advanced material could move to the existing reference.

Suggestions

Merge or differentiate the Common Mistakes table and Review Checklist (they repeat retention, nil-scan, and write-type guidance) to reclaim tokens without losing coverage.

Implement the reconnect path concretely (e.g., connect(peripheral:) retry with delay in didDisconnectPeripheral) and check the error parameter in didUpdateValueFor/didUpdateNotificationStateFor to make error-recovery feedback loops explicit.

Consider moving part of the state-restoration code (peripheral-manager restoration in particular) into references/ble-patterns.md so SKILL.md reads more like an overview with pointers.

DimensionReasoningScore

Conciseness

The body is efficient and assumes competence — no basic-concept explanations, just executable delegate code and tight tables. Minor trimmable fat remains: the Common Mistakes table and Review Checklist substantially overlap (e.g., retention, nil scans, and write-type checks each appear twice), and the state-restoration code blocks are lengthy for an advanced topic. This sits between the lean anchor 5 and the efficient anchor 4, noticeably above the midpoint.

4 / 5

Actionability

Fully executable, copy-paste-ready Swift: complete CBCentralManager/CBPeripheralManager classes, full delegate implementations for discovery, reads (including a working heart-rate parser), writes with type selection and maximumWriteValueLength gating, notifications, advertising, and state restoration. Specific examples cover the common cases exactly as the anchor-5 example requires.

5 / 5

Workflow Clarity

The central-role sequence is clearly driven by delegate-callback gating (.poweredOn → scan → didDiscover → connect → didConnect → discoverServices → characteristics → read/notify/write) with error callbacks and a review checklist serving as validation. Minor validation gaps remain: reconnection is a comment stub ('optionally reconnect'), and error parameters in didUpdateValueFor/didUpdateNotificationStateFor are discarded by the guards, so error-recovery feedback loops are not fully explicit.

4 / 5

Progressive Disclosure

Good structure with a verified, well-signaled one-level-deep reference (references/ble-patterns.md) that genuinely holds overflow content (SwiftUI integration, reconnection, L2CAP), plus a table of contents. It falls short of anchor 5 because the main file is a dense ~427-line manual rather than an overview-plus-pointers: substantial advanced material (state restoration, full peripheral advertising) sits inline where the anchor-5 pattern would split a few more key examples into the reference file.

4 / 5

Total

17

/

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: concrete API-level capabilities, comprehensive natural trigger terms including synonyms, explicit what/when guidance, and explicit boundary routing against a neighboring skill. Nothing meaningful is missing or over-claimed.

DimensionReasoningScore

Specificity

The description lists multiple concrete, API-anchored actions — 'scanning or connecting with CBCentralManager, discovering services and characteristics, reading/writing/subscribing with CBPeripheral, publishing local services with CBPeripheralManager, handling Bluetooth authorization, background BLE modes, state restoration, write flow control' — providing comprehensive coverage of the framework. It goes beyond the anchor-4 example by enumerating nearly every Core Bluetooth workflow rather than leaving minor gaps.

5 / 5

Completeness

It explicitly answers both questions: the 'what' ('Build direct Bluetooth Low Energy workflows with Core Bluetooth') and a full 'Use when...' clause with concrete trigger phrases covering central, peripheral, authorization, background, restoration, and flow-control cases. It even adds boundary routing to accessorysetupkit, exceeding the anchor-5 example.

5 / 5

Trigger Term Quality

It covers the natural phrasings users would actually say — 'Bluetooth Low Energy', 'BLE', 'Core Bluetooth', 'GATT', 'scanning', 'connecting', 'services and characteristics', 'background BLE modes', 'state restoration' — including synonyms (BLE / Bluetooth Low Energy) and the specific class names (CBCentralManager, CBPeripheral, CBUUID) developers type when asking for this. Nothing common is missing.

5 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (direct Core Bluetooth GATT communication) and explicitly disambiguates from the adjacent skill: 'For privacy-preserving accessory setup/picker flows, use accessorysetupkit first and return here for post-setup GATT communication.' Third-person voice is used throughout, so there is no voice penalty and 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/core-bluetooth/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.