CtrlK
BlogDocsLog inGet started
Tessl Logo

bluebubbles

Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).

64

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./.trae/openclaw-skills/bluebubbles/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

80%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 lean, well-organized reference card: every token is a concrete path, helper name, config key, or behavioral note specific to this codebase, with no padding. Its weakness is the absence of any sequenced workflow — there is no ordered procedure with validation checkpoints for common tasks like implementing a webhook change or adding a new message action.

Suggestions

Add a short numbered workflow for the most common change (e.g., adding/altering webhook inbound handling: edit monitor.ts → normalize IDs → skip self → route via api.runtime → verify against a live BlueBubbles payload).

Include minimal call signatures or one inline snippet for the key helpers (e.g., sendMessageBlueBubbles, resolveChatGuidForTarget) so changes don't require opening the source to learn parameters.

Add a verification step such as probing the gateway endpoint or using probeBlueBubbles after changes, to give the workflow an explicit checkpoint.

DimensionReasoningScore

Conciseness

Every line is a project-specific pointer — file paths ('extensions/bluebubbles/src/channel.ts'), helper names ('probeBlueBubbles'), config keys ('channels.bluebubbles.webhookPath') — with zero general-concept padding and no over-explanation. Matches anchor 5 ('lean and efficient; every token earns its place').

5 / 5

Actionability

Concrete file paths, named internal helpers with 'use these, not raw API calls' direction, exact config keys, and a worked example ('action=react target=+15551234567 messageId=ABC123 emoji=❤️'). Falls short of anchor 5 because no executable code or function signatures are shown for the helpers — a change still requires reading the source to know call parameters; exceeds anchor 3's pseudocode/incomplete level.

4 / 5

Workflow Clarity

Content is organized topically (layout, helpers, webhooks, config) rather than as a sequenced workflow; the Webhooks section gives only a rough implicit order (normalize IDs → skip self → route → handle attachments) with no explicit checkpoints or verification steps. Matches anchor 3 ('sequence present but checkpoints missing or implicit'); no destructive/batch operations that would force a lower cap.

3 / 5

Progressive Disclosure

The body is under 50 lines with clean section headers and no external references needed; no bundle directories (references/scripts/assets) exist, and all file paths referenced are within the target codebase rather than skill-bundle files. Per the rubric's simple-skill guidance, well-organized sections alone merit 5 here.

5 / 5

Total

17

/

20

Passed

Description

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

The description is specific and highly distinctive, naming concrete technical actions (extension package, REST send/probe, webhook inbound) tied to explicit products. Its main weakness is the missing 'when to use' trigger clause, which caps completeness at 3 and limits natural trigger-term coverage.

Suggestions

Add an explicit trigger clause, e.g. 'Use when working on the BlueBubbles/iMessage channel integration, its webhook handling, or its REST helpers.'

Include common user-facing synonyms such as 'iMessage', 'message sending', or 'tapbacks/reactions' to broaden natural trigger-term coverage.

Optionally mention inbound attachment/media handling in the description since it is a covered capability in the body.

DimensionReasoningScore

Specificity

Concrete actions are named — 'Build or update the BlueBubbles external channel plugin', 'REST send/probe', 'webhook inbound', 'extension package' — several specific actions with minor gaps (attachment handling, reactions, config are covered in the body but not the description). Not the 5 anchor because coverage is terse and omits several capabilities the skill actually supports; clearly above anchor 3's '1-2 concrete actions'.

4 / 5

Completeness

The 'what' is clear ('Build or update the BlueBubbles external channel plugin...') but there is no 'Use when...' clause or equivalent trigger guidance anywhere in the description — per the judging guidelines this caps completeness at 3. Matches anchor 3 ('clear what, when missing or only weakly implied').

3 / 5

Trigger Term Quality

Natural terms a developer on this codebase would say are present: 'BlueBubbles', 'Clawdbot', 'channel plugin', 'webhook', 'REST send'. Falls short of anchor 5 because common variations like 'iMessage', 'message delivery', or 'tapbacks/reactions' are absent, but coverage exceeds anchor 3's 'some relevant keywords'.

4 / 5

Distinctiveness Conflict Risk

Named products ('BlueBubbles', 'Clawdbot') and a specific plugin scope give this a clear niche with minimal overlap risk against any other skill. Matches anchor 5 ('clear niche with distinct triggers; minimal conflict risk').

5 / 5

Total

16

/

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
huangruiteng/CS-Notes
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.