CtrlK
BlogDocsLog inGet started
Tessl Logo

webiny-api-webhooks-catalog

api/webhooks — 15 abstractions.

50

Quality

63%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/user-skills/generated/api/webhooks/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a well-structured, lean lookup catalog with copy-paste import statements and exact source paths for all 15 abstractions, plus a clear numbered usage workflow. Its main gaps are repeated boilerplate import paths and the absence of one-line descriptions on most entries, which forces a source-file read to understand each abstraction.

DimensionReasoningScore

Conciseness

The body is almost pure catalog data — names, imports, source paths — with no explanation of concepts Claude already knows, fitting 'Efficient; minor instances of over-explanation that could be trimmed'. Not a 5 because the identical import path 'webiny/api/webhooks' is repeated verbatim in all 15 entries when a single shared statement would do, and the horizontal rules between entries add pure delimiter tokens.

4 / 5

Actionability

Every entry supplies a copy-paste-ready import statement and an exact source file path, and the 'How to Use' steps are concrete ('You MUST read the source file', 'Import: import { Name } from "<importPath>"'), matching 'Mostly executable guidance; concrete code or commands with minor gaps'. Not a 5 because there is no usage example and 12 of 15 entries have no description, so the reader must open the source to learn what most abstractions even are.

4 / 5

Workflow Clarity

The skill is a single-purpose lookup catalog and the 'How to Use' sequence is unambiguous: find the abstraction, read the source for exact interfaces, import it, and consult the named pattern skills for implementation. Per the simple-skill guidance, a clear single action with an explicit numbered sequence and a MUST directive earns the top anchor; no validation loop is needed since the skill is non-destructive.

5 / 5

Progressive Disclosure

Structure is good: two clear sections ('How to Use', 'Abstractions') with a consistent per-entry format, and the only external pointers ('See webiny-use-case-pattern or webiny-event-handler-pattern skills') are clearly signaled and one level deep. This matches 'Good structure; most content is appropriately placed; references mostly clear; minor organization gaps' — not a 5 because the 120-line flat catalog could be split (e.g., types vs. classes) or indexed for faster lookup, and no bundle files exist to absorb reference detail.

4 / 5

Total

17

/

20

Passed

Description

28%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 a terse catalog label rather than a functional description: it identifies the domain and count of abstractions but says nothing about what the skill does or when to use it. It would rarely be selected by a user's natural request phrasing.

Suggestions

Add an explicit 'what' statement, e.g., 'Catalogs the 15 api/webhooks abstractions with import paths and source file locations for each.'

Add a 'Use when...' clause with natural trigger phrases such as 'Use when working with Webiny webhooks — sending, signing, verifying, or dispatching webhook payloads.'

Include concrete keywords users would actually say (webhook, webhooks, HTTP callbacks, payload signing/verification) so the skill surfaces on natural requests.

DimensionReasoningScore

Specificity

The description only says "api/webhooks — 15 abstractions" — it names the domain (webhooks) and a count, but states no actions at all, matching the anchor 'Names the domain but actions are minimal or generic'. It is not a 1 because the domain is concretely named rather than pure abstract language; it is not a 3 because no concrete capability (e.g., 'catalogs import paths and source locations') is expressed.

2 / 5

Completeness

The 'what' is reduced to a bare count ('15 abstractions') with no statement of what the skill does with them, and the 'when' is entirely missing — no 'Use when...' clause or equivalent — fitting 'Has a vague what and no when'. The missing trigger clause also caps completeness at 3 per the guidelines, and this sits below that cap anyway.

2 / 5

Trigger Term Quality

The only candidate keywords are "api/webhooks" and "abstractions"; there are no natural phrases a user would say (e.g., 'send a webhook', 'verify webhook signatures', 'webhook delivery'), fitting 'One or two generic keywords; missing the natural phrases users say'. Not a 3 because even the common variations ('webhook', 'webhooks', 'HTTP callbacks') are absent.

2 / 5

Distinctiveness Conflict Risk

"api/webhooks — 15 abstractions" points at a fairly specific niche (webhook abstractions in the api namespace), so it is not broadly generic, but a bare domain label could overlap with other webhook-related or api-catalog skills. This fits 'Somewhat specific but could still overlap with similar skills' rather than 4, since no distinct trigger phrases separate it from neighbors.

3 / 5

Total

9

/

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
webiny/webiny-js
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.