CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

webiny-custom-graphql-api

Adding custom GraphQL queries and mutations using GraphQLSchemaFactory. Use this skill when the developer wants to add custom GraphQL endpoints, create custom queries or mutations, add business logic to the API layer, build custom resolvers, inject backend services (identity, tenancy, CMS use-cases) into their GraphQL schema, or build dynamic GraphQL inputs from CMS models. Covers the full pattern from simple queries to complex resolvers with dependency injection and permission transformers.

Quality

87%

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

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 highly actionable, well-structured pattern reference with complete executable TypeScript examples progressing from simple to complex. The main improvements are trimming the triple-redundant summary sections and repeated code scaffolding, and splitting peripheral patterns into reference files.

Suggestions

Consolidate the TL;DR, Key Rules, and Quick Reference sections into one — they repeat the same export-default/createImplementation/registration facts three times.

Move the Permission Transformer and Dynamic Input Fields from CMS Model patterns into a references/ file, keeping SKILL.md focused on the core schema-builder pattern.

In each code example, elide the repeated class-scaffold and export-default boilerplate after the first full example to reduce token cost.

DimensionReasoningScore

Conciseness

The content is Webiny-specific (not knowledge Claude already has) and avoids generic-concept padding, but the same facts are stated three times across 'TL;DR', 'Key Rules', and 'Quick Reference', and every code example re-includes the full class + createImplementation + export-default scaffold. This is 'efficient; minor instances of over-explanation that could be trimmed' (4) rather than the lean 5 anchor where every token earns its place.

4 / 5

Actionability

Fully executable, copy-paste-ready TypeScript examples progress from a hello-world resolver through per-resolver DI, UseCase injection with Response/ErrorResponse, namespaced mutations, dynamic CMS input generation, and a permission transformer — plus concrete registration (<Api.Extension src=...>) and deploy ('yarn webiny deploy api --env=dev') commands. This matches the 5 anchor: 'copy-paste ready code... specific examples cover the common cases'.

5 / 5

Workflow Clarity

The sequence is clear (implement GraphQLSchemaFactory.Interface → export default → register as <Api.Extension> → deploy) and the Namespaced Mutation Pattern gives explicit numbered steps, but there is no verification checkpoint after deploy or build. It fits 'clear sequence with most checkpoints present; minor validation gaps' (4) rather than the 5 anchor with explicit validation and feedback loops; this is not a destructive/batch skill, so no cap applies.

4 / 5

Progressive Disclosure

Sections are well-organized with clear headers, a TL;DR, and a Quick Reference, and the 'Related Skills' section signals cross-skill navigation. However, the single ~390-line file inlines peripheral patterns (Permission Transformer, Dynamic Input Fields from CMS Model) that belong in separate reference files, since no references/ bundle exists. This fits 'good structure; most content appropriately placed; minor organization gaps' (4) rather than the well-split 5 anchor.

4 / 5

Total

17

/

20

Passed

Description

88%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 strong description with explicit what-and-when structure, concrete action verbs, and natural trigger phrases. Its only weaknesses are a missing 'Webiny' platform qualifier (raising conflict risk with generic GraphQL work) and a few absent synonyms.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'add custom GraphQL endpoints, create custom queries or mutations, add business logic to the API layer, build custom resolvers, inject backend services (identity, tenancy, CMS use-cases)... build dynamic GraphQL inputs from CMS models' — with comprehensive coverage from 'simple queries to complex resolvers with dependency injection and permission transformers'. This matches the 5 anchor ('multiple specific concrete actions; comprehensive coverage') and exceeds the 4 anchor's 'minor gaps in coverage'.

5 / 5

Completeness

It clearly answers both: what ('Adding custom GraphQL queries and mutations using GraphQLSchemaFactory') and when ('Use this skill when the developer wants to add custom GraphQL endpoints, create custom queries or mutations, ...'), with concrete trigger phrases. This matches the 5 anchor exactly; the 4 anchor requires a 'when' that 'could be more explicit', which does not apply here.

5 / 5

Trigger Term Quality

Good natural keyword coverage: 'custom GraphQL endpoints', 'create custom queries or mutations', 'build custom resolvers', 'inject backend services' are phrases users would naturally say. A few natural terms are missing — synonyms like 'extend the GraphQL API', 'add a mutation to the API', or the platform name 'Webiny' itself — so it fits the 4 anchor rather than the comprehensive 5 anchor.

4 / 5

Distinctiveness Conflict Risk

The GraphQLSchemaFactory / resolver / permission-transformer niche is mostly distinct with clear triggers, but the description never names 'Webiny', so generic requests like 'add a GraphQL mutation to my API' outside the Webiny context could overlap with other GraphQL-related skills. This fits 'mostly distinct; minor overlap risk with closely related skills' (4) rather than the minimal-conflict 5 anchor.

4 / 5

Total

18

/

20

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.

Validation — 15 / 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

Path

skills/user-skills/api/graphql-api/SKILL.md

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.