Build typed reactive forms with strict FormGroup typing, custom validators, and nonNullable controls in Angular. Use when implementing typed reactive forms, custom validators, or form control patterns.
55
63%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/angular/angular-forms/SKILL.mdQuality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong, well-crafted skill description that clearly identifies its niche in Angular typed reactive forms. It lists specific concrete capabilities, includes natural trigger terms that Angular developers would use, and provides an explicit 'Use when' clause. The description is concise without being vague and uses proper third-person voice throughout.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'Build typed reactive forms', 'strict FormGroup typing', 'custom validators', and 'nonNullable controls'. These are concrete, well-defined Angular concepts. | 3 / 3 |
Completeness | Clearly answers both 'what' (build typed reactive forms with strict FormGroup typing, custom validators, nonNullable controls) and 'when' (explicit 'Use when implementing typed reactive forms, custom validators, or form control patterns'). | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords that Angular developers would use: 'typed reactive forms', 'FormGroup', 'custom validators', 'nonNullable controls', 'form control patterns'. These are terms developers naturally use when seeking help with Angular forms. | 3 / 3 |
Distinctiveness Conflict Risk | Highly specific to Angular typed reactive forms with distinct triggers like 'FormGroup typing', 'nonNullable controls', and 'reactive forms'. Unlikely to conflict with general form skills or other framework skills due to Angular-specific terminology. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
27%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides a reasonable high-level structure for Angular typed reactive forms but critically lacks any executable code examples — all concrete guidance is deferred to a reference file that doesn't exist in the bundle. The content reads more like a checklist of best practices than an actionable skill, and the anti-patterns section largely duplicates the main instructions.
Suggestions
Add inline executable code examples for at least: a typed FormGroup definition, a standalone validator function, and nonNullable control usage — don't defer all code to missing reference files.
Either provide the referenced 'references/typed-forms.md' bundle file or inline the essential examples so the skill is self-contained.
Remove the anti-patterns section or merge it into the main instructions to avoid redundancy — each anti-pattern restates a rule already given above.
Add a concrete mini-workflow showing form creation end-to-end: define interface → create typed FormGroup → add validators → wire up valueChanges with takeUntilDestroyed().
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Mostly efficient but has some unnecessary filler like 'Priority: P2 (MEDIUM)' which adds no value for Claude, and phrases like 'This ensures form values always strings — avoids null in form values' are slightly redundant. The anti-patterns section partially repeats the main instructions. | 2 / 3 |
Actionability | No executable code examples are provided inline — all concrete examples are deferred to a reference file that doesn't exist in the bundle. The instructions are abstract directives ('Define typed FormGroup<T>', 'Create standalone validator functions') without showing actual code. | 1 / 3 |
Workflow Clarity | The numbered sections provide a logical sequence (define typed forms → extract validators → ensure nonNullable), but there are no validation checkpoints or feedback loops. For a form-building skill this is acceptable but could benefit from a concrete step-by-step workflow with verification. | 2 / 3 |
Progressive Disclosure | The skill references 'references/typed-forms.md' multiple times, but no bundle files are provided, meaning the referenced content doesn't exist. This creates a broken reference chain where the actual actionable content is entirely missing, making the skill incomplete. | 1 / 3 |
Total | 6 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
metadata_field | 'metadata' should map string keys to string values | Warning |
Total | 9 / 11 Passed | |
3df717f
Table of Contents
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.