CtrlK
BlogDocsLog inGet started
Tessl Logo

wacli

Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).

82

2.00x
Quality

76%

Does it follow best practices?

Impact

96%

2.00x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./openclaw/skills/wacli/SKILL.md

The canonical home for this skill is wacli in Hung-Reo/hungreo-openclaw

SKILL.md
Quality
Evals
Security

Quality

Content

82%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 tight, highly actionable command reference that respects the token budget and gives copy-paste-ready examples for every operation. The main weaknesses are cosmetic: a thrice-repeated routing caveat, section labels that aren't actual markdown headers, and the absence of error-recovery guidance for failed sends or stalled syncs.

Suggestions

State the 'not for normal user chats' routing rule once (the opening paragraph) and delete the duplicate in Notes to reclaim tokens.

Convert section labels (Safety, Auth + sync, Find chats + messages, History backfill, Send, Notes) into markdown headers (## Safety) so the structure renders and navigates properly.

Add a brief error-recovery loop, e.g. 'If a send fails or sync stalls: run wacli doctor, re-check auth, then retry once' — this would lift workflow clarity to the feedback-loop anchor.

DimensionReasoningScore

Conciseness

The body is lean and command-dense with no concept explanations Claude already knows, but the routing caveat 'not for normal user chats' is stated three times ("Do NOT use wacli for normal user chats", "If the user is chatting with you on WhatsApp...", and the Notes bullet "WhatsApp CLI is not needed for routine user chats"), which is a minor instance of repetition that could be trimmed. Not 5 because of this redundancy; well above 3 because everything else earns its place.

4 / 5

Actionability

Every section gives copy-paste-ready commands with real flags and example values — "wacli send text --to "+14155551212" --message "..."", "wacli messages search "invoice" --after 2025-01-01 --before 2025-12-31", "wacli history backfill --chat <jid> --requests 2 --count 50" — covering the common cases (text, group, file, dated search, backfill). Fully executable with no pseudocode.

5 / 5

Workflow Clarity

Sections sequence the workflow logically (auth → sync → find chats → backfill → send) and include an explicit pre-send validation checkpoint ("Confirm recipient + message before sending", "If anything is ambiguous, ask a clarifying question") plus "wacli doctor" for diagnostics. Not 5: there is no error-recovery feedback loop (e.g. what to do when send fails or sync stalls) — the cap-3 rule for destructive/batch ops is not triggered since a validation step is present and sends are single, confirm-guarded actions.

4 / 5

Progressive Disclosure

At ~45 lines with no external references needed, the skill qualifies for the simple-skill exception, and content is appropriately split into labeled sections (Safety, Auth + sync, Find chats + messages, History backfill, Send, Notes). Not 5: those section labels are bare text lines rather than markdown headers, so the structure is not as clearly signaled or navigable as a well-headered layout.

4 / 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.

A concise, concrete description with strong tool-specific distinctiveness, but it answers only 'what' — the 'when to use it' side is conveyed solely through a negative exclusion rather than an explicit trigger clause, capping completeness. Adding a positive 'Use when...' phrase would make it a top-tier description.

Suggestions

Add an explicit positive trigger clause, e.g. 'Use when the user asks to message a third party on WhatsApp or to search/backfill WhatsApp chat history.'

Broaden trigger-term coverage with common synonyms users would naturally say: 'chat', 'group', 'WhatsApp file/attachment', 'message someone on WhatsApp'.

Optionally mention file/media sending and history backfill in the 'what' portion to close the coverage gap at the comprehensive-specificity anchor.

DimensionReasoningScore

Specificity

"Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI" names several concrete actions (send, search, sync) with a concrete tool. Minor gaps in coverage: sending files, backfill, and group messaging are not mentioned, keeping it below the comprehensive anchor of 5.

4 / 5

Completeness

The 'what' is clear (send messages, search/sync history via wacli), but there is no positive 'Use when...' trigger — only the exclusion "(not for normal user chats)", which weakly implies the when. Per the guideline, a missing explicit trigger clause caps completeness at 3; it is not a 2 because the 'what' is fully concrete.

3 / 5

Trigger Term Quality

Includes natural phrases users would say — "send WhatsApp messages", "search WhatsApp history", "sync" — plus the tool name "wacli". A few common natural terms are missing (e.g. "chat", "group", "text someone"), which matches 'good keyword coverage; a few natural terms missing' rather than the comprehensive synonym coverage of 5.

4 / 5

Distinctiveness Conflict Risk

"via the wacli CLI" plus "(not for normal user chats)" carves out a clear niche (third-party WhatsApp messaging) and explicitly disambiguates from the routing skill for normal chats. Minimal conflict risk with any other skill.

5 / 5

Total

16

/

20

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 — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository
trpc-group/trpc-agent-go
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.