CtrlK
BlogDocsLog inGet started
Tessl Logo

webiny-api-cms-custom-field-type

How to implement a custom CMS field type that integrates with the model builder's fluent API. Covers extending DataFieldBuilder, composing validator interfaces, creating a FieldTypeFactory, registering via DI, and module augmentation for TypeScript autocomplete on the fields() registry.

62

Quality

73%

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/api/custom-field-type/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

80%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A lean, highly actionable reference with complete executable examples and well-organized sections, held back only by absent validation checkpoints in the workflow and no file-level progressive disclosure for the large inline API/validator catalogs.

Suggestions

Add an explicit verification step (e.g., confirm fields.slug() resolves and the type does not collide with built-ins) to lift workflow clarity.

Move the Available Validators and DataFieldBuilder API tables into a reference bundle file, referenced one level deep from the body, to improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is dense and reference-style — tables, code, and key rules — with no padding explaining concepts Claude already knows; every section earns its tokens.

3 / 3

Actionability

Provides fully executable, copy-paste-ready TypeScript (builder interface, module augmentation, builder class, factory, registration) plus complete method/validator tables.

3 / 3

Workflow Clarity

The three-part structure and numbered 1–5 example give a clear sequence, but there are no explicit validation or verification checkpoints, keeping it below the top anchor.

2 / 3

Progressive Disclosure

Sections are well-organized, but the ~250-line body keeps all API/validator reference material inline with no bundle-file references to split it out, so it is not fully progressive.

2 / 3

Total

10

/

12

Passed

Description

67%

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 specific, well-scoped description that names concrete actions and a clear niche, but it omits explicit "Use when…" trigger guidance and leans heavily on API jargon rather than natural user phrasing.

Suggestions

Add an explicit "Use when…" clause naming natural triggers (e.g., when the user wants to add a new field type to a Webiny CMS model, or needs a custom fluent field like fields.slug()).

Soften the jargon load by pairing API terms with plain-language equivalents a user might actually say.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "extending DataFieldBuilder, composing validator interfaces, creating a FieldTypeFactory, registering via DI, and module augmentation" — matching the multi-action anchor.

3 / 3

Completeness

It clearly states what the skill does, but offers no "Use when…" trigger guidance, so per the judging guidelines completeness is capped at 2.

2 / 3

Trigger Term Quality

The natural phrase "custom CMS field type" is present, but the description is dominated by technical jargon (DataFieldBuilder, FieldTypeFactory, module augmentation, DI) and lacks common natural variations a user would say.

2 / 3

Distinctiveness Conflict Risk

The webiny-specific "custom CMS field type" niche with model-builder integration is highly distinct and unlikely to trigger for unrelated skills.

3 / 3

Total

10

/

12

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

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.