CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

webiny-dependency-injection

The universal createImplementation DI pattern and all injectable services. Use this skill when the developer is writing any Webiny extension and needs to understand dependency injection, constructor injection, how to access Logger/BuildParams/IdentityContext, how to inject CMS use-cases (list/get/create/update/delete entries), or how the dependencies array works. This is the connective tissue across all extension types -- API, Admin, CLI, and Infrastructure.

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

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

Highly actionable reference content with complete, executable examples for every extension type and advanced DI option, and efficient table-driven organization. The main weaknesses are the monolithic single-file structure (the Container API Reference should live in a references/ file) and minor redundancy between the two key-rules lists and the TL;DR.

Suggestions

Move the Container API Reference (registration, resolution, scopes, decorators, composites) into references/container-api.md and keep a short summary with method names in SKILL.md, linking to it for details.

Deduplicate the rules: merge the 'Key rules' list under The Universal Pattern with the later 'Key Rules' section so dependencies-order matching and Feature.Interface typing are stated once.

Trim the TL;DR so it does not repeat the frontmatter description verbatim, and add a brief verification note (e.g., expected compile-time error when the dependencies array and constructor disagree) to strengthen workflow checkpoints.

DimensionReasoningScore

Conciseness

Dense and efficient throughout: no explanation of what DI is or other known concepts, tables carry the import-path and API data compactly, and it assumes Claude's competence. Not 5 because the TL;DR repeats the frontmatter description nearly verbatim, 'connective tissue' appears twice, and rule duplication exists between the 'Key rules' list under The Universal Pattern and the later 'Key Rules' section (dependencies-order matching and Feature.Interface typing each stated twice).

4 / 5

Actionability

Fully executable, copy-paste-ready TypeScript examples with real import paths covering the universal pattern, GraphQL schema with resolver-level DI, CLI command, Pulumi handler, multi-injection, optional dependencies, decorators, and composites. Not 4 because the examples include complete class definitions, registration code, and factory-specific details that cover the common cases end-to-end.

5 / 5

Workflow Clarity

A clear application sequence is present: detect context by file path (extensions/ vs packages/), pick import paths from the mapping table, write the class, and match the dependencies array to constructor order, with compile-time validation noted ("validates at compile time"). Not 5 because there are no explicit verification or error-recovery checkpoints (e.g., what error appears when dependencies mismatch, or how to confirm wiring). Not 3 because the sequence that exists is unambiguous and supported by lookup tables.

4 / 5

Progressive Disclosure

Section headers and tables give good in-file structure, but the entire ~380-line skill is one file with no bundle: the ~95-line Container API Reference and the advanced dependency options are inline reference material that belongs in separate reference files. Matches anchor 3 ('content that should be separate is inline') rather than 4, since no references/ split exists at all; not 2 because headers and navigation within the file are clear.

3 / 5

Total

16

/

20

Passed

Description

91%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: explicit 'what' and 'when' clauses, comprehensive natural trigger terms including synonyms and concrete service names, and a tightly scoped Webiny niche. The only deductions are a mild over-claim ('all injectable services') and deliberate breadth across extension types that creates minor overlap risk with sibling Webiny skills.

DimensionReasoningScore

Specificity

Lists several concrete capabilities: "dependency injection, constructor injection, how to access Logger/BuildParams/IdentityContext, how to inject CMS use-cases (list/get/create/update/delete entries), or how the dependencies array works". Not score 5 because "The universal createImplementation DI pattern and all injectable services" mildly over-claims ('all injectable services') and omits several covered topics (decorators, composites, container registration).

4 / 5

Completeness

Explicitly answers both: what ("The universal createImplementation DI pattern and all injectable services") and when ("Use this skill when the developer is writing any Webiny extension and needs to understand...") with concrete trigger phrases enumerated. Not 4 because the 'when' clause is fully explicit and enumerates multiple concrete trigger conditions.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage including synonyms: "dependency injection", "DI pattern", "constructor injection", "dependencies array", "inject CMS use-cases", plus concrete service names (Logger, BuildParams, IdentityContext) and extension types (API, Admin, CLI, Infrastructure) a Webiny developer would naturally say. Not below 5 because no common synonym for this domain is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Webiny DI wiring) with distinct triggers like "dependencies array" and "constructor injection". Not 5 because it self-describes as "the connective tissue across all extension types", so it intentionally overlaps with sibling skills (webiny-custom-graphql-api, webiny-cli-extensions) for extension-type-specific DI questions. Not 3 because the domain is tightly scoped to Webiny DI, not broadly generic.

4 / 5

Total

18

/

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

Path

skills/user-skills/dependency-injection/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.