CtrlK
BlogDocsLog inGet started
Tessl Logo

ble-gatt

GATT service/characteristic enumeration on BLE peripherals, unauthenticated read/write exploitation, pairing downgrade to Just Works, and over-the-air sniffing with Sniffle or Ubertooth. Covers firmware update channels, hidden debug services, and missing auth on sensitive characteristics.

69

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

87%

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

A well-organized, actionable, and token-efficient offensive-BLE playbook that scores highly on conciseness, actionability, and structure. The main gap is the lack of explicit validation checkpoints around the destructive OTA/firmware-write operations.

Suggestions

Add an explicit validation checkpoint before OTA/DFU writes: confirm operator approval + recovery plan, then verify the firmware image checksum and post-write device integrity before declaring success.

Define the referenced dump_gatt.py (used in the Evidence section) as an actual script in scripts/ or inline, so the evidence command runs as written.

Add a short retry/rollback loop for the Just Works pairing step (re-pair with a rotated BD_ADDR on failure) to match the OPSEC guidance with a concrete feedback loop.

DimensionReasoningScore

Conciseness

The body is dense and task-focused across all phases with executable snippets, a UUID attack table, and OPSEC notes, and it avoids explaining concepts Claude already knows like what BLE is or how libraries work.

3 / 3

Actionability

It provides copy-paste-ready bleak and gatttool code, concrete bluetoothctl/sriffle/ubertooth commands, and a specific UUID-to-attack mapping table, giving direct executable guidance rather than vague direction.

3 / 3

Workflow Clarity

The five-phase sequence and Evidence hashing give a clear progression, but destructive operations like OTA/DFU firmware writes lack explicit validate-before-write / verify-after feedback loops, which the rubric caps at 2.

2 / 3

Progressive Disclosure

No bundle files exist; the skill is a single well-organized SKILL.md with clearly labeled phase sections and one-level-deep external reference URLs (Sniffle, bleak) that are not nested, satisfying the simple-skill exception.

3 / 3

Total

11

/

12

Passed

Description

82%

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

A strong, specific description with excellent action coverage and natural trigger terms, weakened only by the absence of an explicit 'Use when...' trigger clause inside the description itself. The when-guidance is present in metadata but not in the description prose.

Suggestions

Append an explicit trigger clause to the description, e.g. 'Use when assessing Bluetooth Low Energy peripherals, enumerating GATT services/characteristics, or downgrading BLE pairing.'

Move or duplicate the most useful when_to_use keywords (bleak, gatttool, nRF Connect, notify, indicate, write without response) into the description so the trigger surface is self-contained.

DimensionReasoningScore

Specificity

Lists multiple concrete actions: 'GATT service/characteristic enumeration,' 'unauthenticated read/write exploitation,' 'pairing downgrade to Just Works,' and 'over-the-air sniffing with Sniffle or Ubertooth,' matching the multi-action anchor.

3 / 3

Completeness

It clearly answers 'what does this do' with specific capabilities, but the 'when to use' guidance lives only in the when_to_use metadata rather than as an explicit 'Use when...' clause in the description, so the when is implied not explicit.

2 / 3

Trigger Term Quality

The description embeds natural domain terms a security user would say ('BLE,' 'GATT,' 'Bluetooth Low Energy,' 'characteristic,' 'pairing,' 'Just Works,' 'Sniffle,' 'Ubertooth'), giving strong keyword coverage rather than jargon-only language.

3 / 3

Distinctiveness Conflict Risk

The BLE/GATT exploitation niche with distinctive triggers (Just Works, Sniffle, Ubertooth, OTA) is unlikely to collide with unrelated skills.

3 / 3

Total

11

/

12

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
PurpleAILAB/Decepticon
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.