CtrlK
BlogDocsLog inGet started
Tessl Logo

webiny-admin-cms-catalog

admin/cms — 56 abstractions.

48

Quality

60%

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/admin/cms/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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 efficient, highly actionable catalog: consistent Name/Kind/Import/Source records with exact import statements and a simple find-then-read-then-import workflow, with essentially no wasted tokens. Its main weaknesses are the monolithic inlining of all 56 entries (no per-domain reference files), an unresolved duplicate 'useModel' entry with two import paths, and missing guidance on where the cited '@webiny/...' source files live.

Suggestions

Split the catalog into one-level-deep reference files by area (e.g., references/entry-editor.md, references/entry-list.md, references/lexical.md, references/models-and-permissions.md) and keep SKILL.md as a short index with a table of areas, so the overview isn't a 56-entry flat list.

Deduplicate or disambiguate the two 'useModel' entries — either collapse to one canonical import path or state when to use 'webiny/admin/cms/entry/editor' vs 'webiny/admin/cms'.

Add one line telling the reader where the '@webiny/...' source paths resolve (e.g., the local Webiny repo checkout or node_modules), so step 2 ('read the source file') is executable without guesswork.

DimensionReasoningScore

Conciseness

The body is a lean catalog: every entry is a minimal record ('**Name:** `BulkActionFeature`', '**Import:** ...', '**Source:** ...') with no concept explanations, no padding, and no content Claude already knows — matching the lean end of the scale. It falls just short of 5 due to small inefficiencies: 'useModel' is listed twice (from 'webiny/admin/cms/entry/editor' and 'webiny/admin/cms') with the identical source and description, and 'You MUST read the source file!' restates emphasis that one plain sentence would carry.

4 / 5

Actionability

Each entry provides a copy-paste-ready import statement (e.g., 'import { CmsGraphQLClient } from "webiny/admin/cms"') plus an exact source path and a directive to read it for the exact interface and types — concrete, executable guidance. It stays at 4 rather than 5 because of a minor gap: the duplicate 'useModel' entry offers two different import paths with no disambiguation, and entries point to '@webiny/...' source paths without saying where those files live locally.

4 / 5

Workflow Clarity

The 'How to Use' section gives a clear, unambiguous three-step sequence: 'Find the abstraction you need below' → 'read the source file to get the exact interface and types' → 'Import: import { Name } from "<importPath>"'. No validation checkpoints are needed since this is a read-only lookup skill, so the simple-skill guidance applies; it is 4 rather than 5 because resolving the duplicate 'useModel' paths and locating the source files are left implicit.

4 / 5

Progressive Disclosure

There are no references/, scripts/, or assets/ directories, and the entire 56-entry catalog is inlined in SKILL.md as one flat '## Abstractions' list under a two-line 'How to Use'. The listing is uniformly formatted and scannable (real structure), but content that clearly belongs in separate per-area files (e.g., references/lexical.md, references/content-entry.md) is inlined, matching anchor 3 'Some structure but could be better organized; content that should be separate is inline' rather than 4's 'most content is appropriately placed'.

3 / 5

Total

15

/

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 domain label plus a count — it names the area (admin/cms) and scale (56 abstractions) but omits every capability and every usage trigger. A user or Claude routing on this description would have almost nothing to decide on beyond the bare domain name. It needs concrete actions (e.g., 'Look up Webiny admin CMS imports, hooks, and types...') and an explicit 'Use when...' clause.

Suggestions

State concrete capabilities instead of a count, e.g., 'Look up import paths, source files, and type information for Webiny admin CMS abstractions: content entry editors, list views, Lexical rich-text hooks, model editors, and permission hooks.'

Add an explicit trigger clause, e.g., 'Use when working with Webiny headless CMS admin code, importing from webiny/admin/cms, or when the user mentions content models, content entries, or the CMS admin UI.'

Include natural synonyms and concrete nouns users would actually say (Webiny, headless CMS, content model, content entry, publish/unpublish, rich text/Lexical editor) so the skill triggers on real phrasing rather than only 'admin/cms'.

DimensionReasoningScore

Specificity

The description only states "admin/cms — 56 abstractions" — it names the domain (admin/cms) and a count of items, but names zero concrete actions or capabilities (no 'exposes hooks', 'provides editors', etc.). This matches the anchor 'Names the domain but actions are minimal or generic' ("Processes PDF files"). It is above 1 because a specific domain is named, but below 3 because no concrete action is listed at all.

2 / 5

Completeness

"admin/cms — 56 abstractions" gives only a vague 'what' (a count of things in a domain) and contains no 'when to use' clause or equivalent trigger guidance. This matches anchor 2 'Has a vague what and no when' ("Use when working with documents" is the mirror case) and the judging guideline that a missing 'Use when...' clause caps completeness; it is above 1 because something about the domain is stated, but far below 4/5 because neither what nor when is explicit.

2 / 5

Trigger Term Quality

The only candidate keywords are "admin/cms" and "abstractions" — neither is a phrase a user would naturally say when needing this skill (missing natural terms like "Webiny", "headless CMS", "content model", "content entry", "rich text editor"). This matches the anchor 'One or two generic keywords; missing the natural phrases users say' ("Works with files"). It does not reach 3 because no domain-synonymous natural phrasing is present, and it is above 1 because the terms are at least domain-referential rather than pure jargon.

2 / 5

Distinctiveness Conflict Risk

"admin/cms" is a moderately specific niche (Webiny's admin CMS surface, implied by the skill name webiny-admin-cms-catalog), but the description itself never mentions Webiny, so generic phrases like 'admin' and 'cms' could overlap with other CMS/admin catalog skills. This matches anchor 3 'Somewhat specific but could still overlap with similar skills'. It does not reach 4 because the description text alone (not the name field) provides no distinguishing brand or trigger terms.

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.