CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

z-wave

Z-Wave S0 network-key derivation flaw exploitation, S2 ECDH/DSK analysis, replay attacks against unauthenticated Z-Wave nodes, traffic capture with RTL-SDR, and active fuzzing/replay with EZ-Wave and Z-Force. Covers 868.42 MHz (EU) and 908.42 MHz (US) bands.

Quality

76%

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

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/iot/z-wave/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%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 dense, largely executable runbook for Z-Wave security assessment with a clear phased structure and appropriate OPSEC/evidence handling. Its main weaknesses are the internally contradictory S0 key-extraction step, undefined helper calls (kg_add_node, zforce CLI), and the absence of validation checkpoints before destructive replay/injection operations.

Suggestions

Resolve the Phase 2 contradiction: either provide the actual nonce-derived temp-key decryption code for NETWORK_KEY_SET or remove the misleading all-zeros XOR function, so the central key-extraction step is genuinely executable.

Add explicit validation checkpoints before destructive steps, e.g. 'Verify the extracted S0 key decrypts a captured SECURITY frame; only then proceed to replay' and 'Confirm the decoded frame matches the target NodeID before injection'.

Define or remove the kg_add_node call in the Evidence section (it is invoked with no import or definition anywhere in the skill), and verify the zforce CLI subcommands exist or replace them with the documented EZ-Wave/zniffer workflow.

DimensionReasoningScore

Conciseness

The body is dominated by commands, code, and a frequency table rather than prose; the intro blockquote conveys non-obvious protocol facts (S0 cleartext inclusion flaw, DSK bootstrap MITM risk) that Claude cannot be assumed to know. Minor over-explanation remains — e.g. 'Since the default key is all-zeros, the XOR is trivially reversible' restates the code's own comment — so it is efficient but not maximally lean.

4 / 5

Actionability

Most phases give copy-paste-ready commands (rtl_sdr, hackrf_transfer, ezwave.py, gnuradio-companion) and runnable Python. However, the central Phase 2 key-extraction code is undercut by its own caveat that in practice the key is sent under a nonce-derived temp key (with no code for that path), kg_add_node is invoked with no definition or import, and the zforce CLI syntax is unverifiable — minor-to-moderate gaps concentrated in the most critical steps.

4 / 5

Workflow Clarity

The Phase 1→5 sequence (capture → key extraction → replay → S2 analysis → fuzzing) with prerequisites up front is well-ordered, but the workflow involves destructive operations (door-lock command replay, frame injection) with no validation checkpoints — nothing like 'verify the extracted key decrypts a captured frame before replaying' or 'confirm the decoded frame before injecting'. Per the judging guidelines this caps workflow clarity at 3 despite the strong sequencing.

3 / 5

Progressive Disclosure

No bundle files (references/, scripts/, assets/) exist, so the skill is judged as a self-contained single file. It is well-sectioned (Prerequisites, Frequency Reference, Phases 1–5, Evidence, OPSEC, References to external URLs), with content appropriately placed and easy to navigate; minor gaps include install instructions and the frequency table that could move to a reference file if the bundle grew.

4 / 5

Total

15

/

20

Passed

Description

75%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.

A highly specific, tool-rich description of Z-Wave security assessment capabilities with strong distinctiveness, weakened only by the absence of an explicit 'Use when...' trigger clause and slightly thin natural-synonym coverage in the description field itself. Third-person voice is used correctly throughout.

Suggestions

Append an explicit trigger clause, e.g. 'Use when assessing Z-Wave or smart-home wireless security, extracting S0/S2 network keys, or when the user mentions Z-Wave, S0, S2, DSK, EZ-Wave, or Z-Force.'

Fold one or two natural synonyms from metadata.when_to_use (e.g. 'smart home', 'Z-Wave controller', 'Z-Wave network key') into the description so it triggers on phrasing users actually say.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions with named tools and protocols — 'Z-Wave S0 network-key derivation flaw exploitation', 'S2 ECDH/DSK analysis', 'replay attacks against unauthenticated Z-Wave nodes', 'traffic capture with RTL-SDR', 'active fuzzing/replay with EZ-Wave and Z-Force' — plus frequency bands, giving comprehensive coverage of the skill's capabilities.

5 / 5

Completeness

The 'what' is clear and comprehensive, but the description contains no 'Use when...' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 4 because 'when' is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Good keyword coverage including natural domain terms users would say: 'Z-Wave', 'S0', 'S2', 'replay', 'unauthenticated', 'RTL-SDR', 'EZ-Wave', 'Z-Force', '868.42 MHz', '908.42 MHz'. A few natural terms are missing from the description itself ('smart home', 'door lock', 'network key', 'sniffing' — several appear only in metadata.when_to_use), so it falls short of the comprehensive-synonyms anchor.

4 / 5

Distinctiveness Conflict Risk

'Z-Wave S0/S2... EZ-Wave and Z-Force' defines a clear niche with distinct triggers (protocol name, security class, tool names, exact frequencies) and minimal conflict risk with generic SDR, IoT, or smart-home skills.

5 / 5

Total

17

/

20

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.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/iot/z-wave/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.