CtrlK
BlogDocsLog inGet started
Tessl Logo

webiny-api-event-publisher-catalog

api/event-publisher — 2 abstractions.

52

Quality

65%

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/event-publisher/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

92%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 an exemplary lean catalog: minimal, well-structured, copy-paste-ready import statements with exact source paths, and an explicit anti-hallucination instruction to read the source for the real interface. Its only gap is the absence of even one usage snippet per abstraction, which keeps actionability at 4 rather than 5.

Suggestions

Add a minimal usage snippet per abstraction (e.g. a 2-line example of instantiating a DomainEvent subclass and calling EventPublisher.publish) so the common case is covered without reading the source.

DimensionReasoningScore

Conciseness

The ~30-line body is pure signal: a 4-step usage list plus two abstraction entries with name, import, source path, and one-line description. It assumes Claude's competence, explains nothing it doesn't need to, and every token earns its place — a direct match for anchor 5 ('Lean and efficient; assumes Claude's competence').

5 / 5

Actionability

Each abstraction has a copy-paste-ready import statement ('import { DomainEvent } from "webiny/api/event-publisher"') and an exact source path ('@webiny/api-core/features/eventPublisher/index.ts'), and the body correctly directs the reader to the source file for the real interface. It falls short of anchor 5 only because no usage example is included — the actual API surface is delegated to the source files rather than shown.

4 / 5

Workflow Clarity

This is a simple single-task lookup skill well under 50 lines, so the simple-skill exception applies: the sequence (find the abstraction → read the source file for exact types → import → consult the pattern skills) is unambiguous and concretely stated. The mandatory 'You MUST read the source file' step acts as an explicit checkpoint against hallucinating interfaces, and no destructive or batch operations exist that would require validation or cap the score.

5 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), and this skill needs none — per the rubric's simple-skill guidance, well-organized sections alone warrant a 5. The body is correctly split into 'How to Use' and 'Abstractions' with consistent per-entry structure, and pointers to implementation patterns ('webiny-use-case-pattern', 'webiny-event-handler-pattern') are clearly signaled rather than buried.

5 / 5

Total

19

/

20

Passed

Description

21%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 bare catalog label: a module path and an abstraction count. It fails to state what the skill does, when to use it, or any natural trigger terms, and would almost never be selected by a user's phrasing. It is only saved from total generality by the concrete domain identifier.

Suggestions

State the concrete capability in third person, e.g. 'Catalogs the DomainEvent base class and EventPublisher interface from Webiny's api/event-publisher module, with exact import paths and source locations.'

Add explicit trigger guidance such as 'Use when publishing domain events in Webiny, implementing EventPublisher handlers, or extending DomainEvent.'

Include natural synonyms users would say (domain events, event publishing, Webiny event-publisher) rather than only the technical module path.

DimensionReasoningScore

Specificity

The description 'api/event-publisher — 2 abstractions' names the domain concretely (a Webiny module path) but contains zero action verbs — it does not say what the skill does with those abstractions. It names the domain but actions are minimal to absent, fitting anchor 2 ('Names the domain but actions are minimal or generic') rather than anchor 1, since 'api/event-publisher' is a concrete domain identifier, not pure abstraction like 'Helps with documents'.

2 / 5

Completeness

The 'what' is extremely vague ('2 abstractions' counts entities without saying what they do) and the 'when' is entirely absent — no 'Use when...' clause or equivalent trigger guidance exists. This fits anchor 2 ('Has a vague what and no when'), not anchor 3, because the what never rises to a clear statement of function.

2 / 5

Trigger Term Quality

The only term present is the technical jargon path 'api/event-publisher' plus the meta-count '2 abstractions'; there are no natural keywords or synonyms a user would actually say (e.g. 'publish domain events', 'EventPublisher', 'event handler'). This matches anchor 1: 'No natural keywords; only technical jargon or entirely generic language.'

1 / 5

Distinctiveness Conflict Risk

The module path 'api/event-publisher' is fairly specific and not generic like 'helps with documents', but the description gives no distinguishing trigger phrases, leaving overlap risk with closely related Webiny event skills (e.g. event-handler, pub/sub, use-case patterns). It sits at anchor 3: 'Somewhat specific but could still overlap with similar skills.'

3 / 5

Total

8

/

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.