Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
79
70%
Does it follow best practices?
Impact
100%
1.96xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/bluebubbles/SKILL.mdQuality
Discovery
75%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 effectively communicates when to use the skill and identifies a clear niche (iMessages via BlueBubbles), but lacks specificity in the concrete actions it can perform beyond 'send or manage'. It would benefit from listing more specific capabilities and including natural user trigger terms like 'text message' or 'send a text'.
Suggestions
List more specific concrete actions beyond 'send or manage', such as 'send texts, read conversations, search message history, send attachments'.
Add natural user trigger terms like 'text message', 'send a text', 'iMessage', 'SMS', 'chat' to improve discoverability when users phrase requests in everyday language.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (iMessages via BlueBubbles) and mentions two actions ('send or manage'), but doesn't list specific concrete actions like reading conversations, sending attachments, searching messages, etc. | 2 / 3 |
Completeness | Explicitly answers both 'what' (send or manage iMessages via BlueBubbles) and 'when' (opens with 'Use when you need to send or manage iMessages via BlueBubbles'), providing clear trigger guidance. | 3 / 3 |
Trigger Term Quality | Includes good terms like 'iMessages', 'BlueBubbles', and 'message tool', but misses common user variations like 'text message', 'iMessage', 'send a text', 'SMS', or 'chat'. The technical detail about channel='bluebubbles' is more implementation-focused than user-facing. | 2 / 3 |
Distinctiveness Conflict Risk | Clearly scoped to iMessages via BlueBubbles specifically, with the implementation detail about channel='bluebubbles' further distinguishing it from other messaging skills. Unlikely to conflict with other skills. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid reference-style skill with excellent actionability—every action has a concrete JSON example with realistic field values. Its main weaknesses are the lack of workflow guidance for multi-step scenarios (e.g., finding a messageId before editing) and some mild verbosity in the overview and supplementary sections. The structure is reasonable but could benefit from tighter organization.
Suggestions
Add a brief workflow example showing how to obtain a messageId before performing edit/unsend/react operations, including what to do if the operation fails.
Remove or condense the 'Ideas to try' section—Claude doesn't need suggestions for when to use tapbacks or replies.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient with concrete JSON examples, but includes some unnecessary sections like 'Ideas to try' and 'Inputs to collect' explanations that Claude could infer. The overview paragraph also restates what the actions section already demonstrates. | 2 / 3 |
Actionability | Every action is illustrated with a complete, copy-paste-ready JSON payload showing exact field names and values. The inputs section clearly specifies formats (E.164, chat_guid prefix, base64). This is highly actionable. | 3 / 3 |
Workflow Clarity | Each action is clearly documented as an independent operation, but there's no validation or error-handling guidance. For operations like edit/unsend that depend on messageId retrieval, there's no workflow showing how to obtain the ID first, and no feedback loop for failures. | 2 / 3 |
Progressive Disclosure | There's a reference to `extensions/bluebubbles/README.md` for developer details, which is good. However, all eight action examples are inline, making the file lengthy. The actions could be better organized with a summary table linking to detailed examples, though for a skill of this size it's borderline acceptable. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
metadata_field | 'metadata' should map string keys to string values | Warning |
Total | 9 / 11 Passed | |
ec8d4f8
Table of Contents
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.