CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migration-migrate-component

Use when a component needs migration to the target architecture or framework version.

Quality

67%

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 ./packs/angular/skills/migration-migrate-component/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is an exemplary lean, actionable migration procedure: a concrete before/after API mapping, a clear step sequence, and explicit validation commands. The only weaknesses are two underspecified conditional steps (composition pattern, decomposition) and the absence of an error-recovery loop after validation. Progressive disclosure is appropriate for a skill of this size.

DimensionReasoningScore

Conciseness

The body is a lean mapping table ('`@Input() prop` -> `readonly prop = input<T>()`', '`*ngFor` -> `@for (item of items; track item.id)`') plus three validation commands, with no explanation of concepts Claude already knows and no padding. Every token earns its place, matching the anchor 'Lean and efficient; assumes Claude's competence'.

5 / 5

Actionability

The conversion mappings and validation commands ('npx tsc --noEmit', 'ng build', 'ng test --watch=false') are concrete and near copy-paste ready, but 'Apply composition pattern if there is prop drilling' and 'Decompose if > 200 lines' are high-level hints with no concrete how — 'minor gaps' per anchor 4 rather than the full executable coverage of anchor 5.

4 / 5

Workflow Clarity

A clear numbered sequence (analyze -> convert -> compose/decompose -> validate) with an explicit validation step of three concrete commands matches 'Clear sequence with most checkpoints present; minor validation gaps'. It falls short of anchor 5 because there is no error-recovery feedback loop (e.g., what to do when tsc or the build fails), though validation is present so no cap applies.

4 / 5

Progressive Disclosure

The skill is under 50 lines with well-organized sections and a single one-level-deep reference to 'docs/ARCHITECTURE.md section 5', which the rubric's simple-skill guidance says can score 5 with just well-organized sections and no external reference files needed.

5 / 5

Total

18

/

20

Passed

Description

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

The description provides a usable trigger clause but omits any statement of what the skill does. It also never mentions Angular, standalone components, or signals — the skill's actual domain — leaving it vague for both capability matching and trigger-term recall. Overall it reads as a generic migration trigger rather than a description of this specific skill.

Suggestions

State the 'what' explicitly, e.g.: 'Migrate an Angular component to standalone with signals: @Input/@Output to input()/output(), constructor deps to inject(), lifecycle hooks to effect()/afterNextRender(), *ngIf/*ngFor to control flow, plus OnPush.'

Add the natural trigger terms users would actually say: Angular, standalone, signals, upgrade, modernize — these are absent and would improve both trigger recall and distinctiveness.

Make the 'when' clause concrete to reduce conflict with non-Angular migration skills, e.g.: 'Use when the user asks to migrate, modernize, or upgrade an Angular component to the standalone/signals architecture.'

DimensionReasoningScore

Specificity

The description states only 'Use when a component needs migration to the target architecture or framework version' — it names the component-migration domain generically but lists no concrete action the skill performs, matching the anchor 'Names the domain but actions are minimal or generic'. It cannot score 3 because no 1-2 concrete actions (e.g., what the migration actually does) are stated, and it is not entirely vague abstract language like 'Helps with documents'.

2 / 5

Completeness

Only a 'when' clause ('Use when a component needs migration to the target architecture or framework version') is present, with no statement of what the skill does — the anchor 2 pattern ('Use when working with documents'). It does not reach anchor 3 because there is no clear 'what', and it is above anchor 1 because the 'when' clause is present and reasonably domain-specific.

2 / 5

Trigger Term Quality

Relevant keywords are present ('component', 'migration', 'architecture', 'framework version') but common natural variations are missing — a user would say 'Angular', 'standalone', 'signals', or 'upgrade', none of which appear. This matches 'Some relevant keywords but missing common variations or synonyms' rather than anchor 4's good coverage.

3 / 5

Distinctiveness Conflict Risk

'Component' plus 'migration' anchors a recognizable niche, but with no framework named and 'target architecture or framework version' left undefined, the description would plausibly trigger for React, Vue, or Angular migration skills alike — 'Somewhat specific but could still overlap with similar skills'. It lacks the named-framework distinctiveness of anchor 4.

3 / 5

Total

10

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

fernandezbaptiste/specialist-agent

Path

packs/angular/skills/migration-migrate-component/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.