Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
81
73%
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 ./openclaw/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 is functional and clearly scoped to a specific integration (BlueBubbles for iMessages), with an explicit 'Use when' clause and good distinctiveness. However, it lacks specificity in the concrete actions it can perform beyond 'send or manage' and misses common natural language trigger terms users might use when wanting to send text messages.
Suggestions
List more specific actions such as 'send messages, read conversations, search message history, send attachments' to improve specificity.
Add natural trigger terms users would say, such as 'text message', 'SMS', 'chat', 'message someone', or 'Apple Messages' to improve discoverability.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (iMessages via BlueBubbles) and mentions 'send or manage' as actions, plus a technical detail about the channel parameter, but doesn't list specific concrete actions beyond 'send or manage' (e.g., read messages, search conversations, send attachments, etc.). | 2 / 3 |
Completeness | Explicitly answers both 'what' (send or manage iMessages via BlueBubbles, calls through generic message tool with channel='bluebubbles') and 'when' ('Use when you need to send or manage iMessages via BlueBubbles'). The 'Use when...' clause is present and clear. | 3 / 3 |
Trigger Term Quality | Includes relevant keywords like 'iMessages', 'BlueBubbles', 'send', and 'manage', but misses common user variations like 'text message', 'SMS', 'chat', 'message someone', or 'iMessage integration'. The term 'generic message tool' is internal jargon rather than a user-facing trigger. | 2 / 3 |
Distinctiveness Conflict Risk | Clearly scoped to iMessages via BlueBubbles specifically, with the channel='bluebubbles' detail providing a distinct technical niche. Unlikely to conflict with other messaging or communication skills due to the specific platform mention. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
72%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, well-structured skill with excellent actionability—every action has a concrete JSON example. The main weaknesses are minor verbosity (the 'Ideas to try' section and some redundancy between overview and examples) and the lack of any error handling or validation guidance for operations like edit/unsend that could fail silently or be version-dependent.
Suggestions
Add brief error handling guidance (e.g., what response to expect on success/failure, how to verify a message was sent).
Remove or condense the 'Ideas to try' section—these are obvious use cases that don't add value for Claude.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient with concrete JSON examples, but the 'Ideas to try' section and some notes are somewhat unnecessary filler. 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, which is appropriate for this API-style skill. However, there are no validation/verification steps—no mention of checking response status, handling errors, or confirming message delivery, which matters for operations like edit/unsend. | 2 / 3 |
Progressive Disclosure | The content is well-structured with clear sections (Overview, Inputs, Actions, Notes) and appropriately references the developer documentation in `extensions/bluebubbles/README.md` for deeper details. The skill stays at the right level of abstraction for a SKILL.md. | 3 / 3 |
Total | 10 / 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 | |
af8bd5f
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.