Content
82%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A highly actionable, code-first skill body: two complete executable examples, interface reference tables, and a hard guardrail on where custom data lives. The main drags are triple-statement of the doc.extensions rule, the absence of a verify-build checkpoint, and full worked examples that belong in a references file rather than the main body.
Suggestions
Consolidate the doc.extensions storage rule into one authoritative section — the TL;DR, the "Important: Where to Store Data" section, and the "Reminder" in The Page Document Model all restate it; one canonical statement plus the CORRECT/WRONG snippet suffices.
Add an explicit verification step after registration (e.g., "run the admin dev server / build and confirm the new tab appears and no src-path build failure occurs"), turning the .tsx warning into a validate-and-retry loop.
Move one or both complete implementation examples into a references/ file (e.g., references/examples.md) and keep the interface tables plus a minimal skeleton in SKILL.md to reduce body size.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense and code-first with no explanation of concepts Claude already knows (no "what is Webiny" padding, interface members given as tables), but the doc.extensions rule is stated three times — in the TL;DR bold warning, the dedicated "Important: Where to Store Data" section with CORRECT/WRONG code, and again as a "Reminder" in "The Page Document Model". That repetition is a deliberate emphasis on the one destructive-risk rule, but it is noticeable padding that could be consolidated, which keeps this below anchor 5. | 4 / 5 |
Actionability | Both extension paths are given as complete, copy-paste-ready TypeScript classes with correct/incorrect mapFromForm snippets, the exact createImplementation exports, the full feature wrapper component, and the literal webiny.config.tsx registration line including the mandatory ".tsx" suffix. The examples cover the common cases (new tab and modifier injection) with no pseudocode gaps. | 5 / 5 |
Workflow Clarity | The sequence — implement the class, export via createImplementation, wrap in createFeature/RegisterFeature, then register in webiny.config.tsx — is laid out in correct order across clearly titled sections, and the emphatic ".tsx in every src prop" warning acts as an explicit checkpoint against the main failure mode ("Omitting the file extension will cause a build failure"). It falls short of anchor 5 because there is no verify/recovery step (e.g., "run the admin build and confirm the tab renders") and the ordering is implied by section flow rather than enumerated. | 4 / 5 |
Progressive Disclosure | No bundle files exist (no references/, scripts/, or assets/ directories), and the body is well-sectioned with a TL;DR, a clear one-level-deep pointer to the webiny-form-model skill ("For field types, renderers, layout, validation, and all other form builder APIs, refer to the webiny-form-model skill", reiterated in Related Skills). It sits at anchor 4 rather than 5 because the two full worked examples (~55 lines each) are prime candidates for a references/ file: the skill exceeds the size at which everything-inline is unambiguously the right split. | 4 / 5 |
Total | 17 / 20 Passed |