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/react/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 exemplar of token-efficient, actionable instruction: a dense class-to-functional mapping table, concrete decision rules (>200 lines, prop drilling), and executable validation commands. The only meaningful gap is the absence of an error-recovery loop after validation and underspecified 'how' for the composition/decomposition steps. It is well-structured for a short single-purpose skill with no bundle overhead.

DimensionReasoningScore

Conciseness

The body is a lean transformation table ('this.state / this.setState -> useState()', 'componentDidMount -> useEffect(() => {}, [])') plus three copy-paste validation commands, with zero explanation of React/TypeScript concepts Claude already knows. This matches anchor 5 (lean and efficient, every token earns its place) — there is nothing to trim, so 4's 'minor instances of over-explanation' does not apply.

5 / 5

Actionability

Concrete pattern mappings cover every common class-component feature (lifecycle, bindings, HOCs, Redux connect) and the validation block is executable as-is. Minor gaps keep it at anchor 4 rather than 5: step 4 'Apply composition pattern if there is prop drilling' and step 5 'Decompose if > 200 lines' give no how, and there is no complete converted-component example.

4 / 5

Workflow Clarity

A clear numbered sequence (read spec, analyze, convert, compose, decompose, validate) ends with an explicit validation step of three concrete commands. It falls short of anchor 5 because there is no error-recovery feedback loop (what to do when tsc or the build fails); the anchor-3 cap does not apply since validation is present.

4 / 5

Progressive Disclosure

The skill is 36 lines, single-task, with no bundle files and no content that belongs in separate references; per the rubric's simple-skill note it can score 5 with well-organized sections alone. The '## Steps' structure is clean and the one external pointer (docs/ARCHITECTURE.md section 5) is clearly signaled and one level deep.

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 has a clear 'Use when...' trigger but omits the 'what' entirely — a user reading it cannot tell what the skill actually does (migrate React class components to functional TypeScript). It also lacks the natural trigger vocabulary (React, hooks, class/functional, TypeScript) that would let it fire on real user phrasings. Overall it reads as a vague trigger clause rather than a complete description.

Suggestions

Add a 'what' clause stating the concrete action, e.g. 'Migrates React class components to functional components with TypeScript and hooks, converting lifecycle methods to useEffect, PropTypes to interfaces, and Redux connect to Zustand.'

Include natural trigger terms users would actually say — 'class component', 'functional component', 'hooks', 'React', 'TypeScript', 'upgrade/rewrite' — alongside 'migration'.

Replace the vague 'target architecture or framework version' with the specific target (React functional components per docs/ARCHITECTURE.md) to reduce overlap with unrelated migration/upgrade skills.

DimensionReasoningScore

Specificity

The description names the domain ('component needs migration to the target architecture or framework version') but lists no concrete actions — nothing about class-to-functional conversion, TypeScript, hooks, or state-management migration. It sits between anchor 1 (entirely vague) and anchor 2 (domain named, actions minimal/generic); it is not vague enough for 1 and lacks the 1-2 concrete actions required for 3.

2 / 5

Completeness

The 'when' is explicit ('Use when a component needs migration to the target architecture or framework version') but the 'what' is missing entirely — the description never states what the skill does. Per the anchors this is 'only when is present without what' (anchor 2, example 'Use when working with documents'); it cannot reach 3, which requires a clear 'what'.

2 / 5

Trigger Term Quality

Terms like 'component', 'migration', and 'framework version' are plausible user phrasings, but common natural variations are missing: 'class component', 'functional component', 'hooks', 'React', 'TypeScript', 'upgrade', 'rewrite'. This matches anchor 3 (some relevant keywords but missing common variations) — better than the one-or-two generic keywords of anchor 2, short of the good coverage of anchor 4.

3 / 5

Distinctiveness Conflict Risk

'Component' and 'migration' give it some specificity, but 'target architecture or framework version' is undefined and broad, creating overlap risk with other migration/upgrade skills (API migrations, framework upgrades, non-React migrations). Matches anchor 3 (somewhat specific but could still overlap with similar skills) rather than 4's 'mostly distinct' or 2's 'very broad'.

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/react/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.