CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migrate-oxlint

Guide for migrating a project from ESLint to Oxlint. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to Oxlint.

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 content is a strong, highly actionable migration guide: every step has executable commands, config examples, and useful mapping tables, with clear sequencing and a review checkpoint for unmigrated rules. It falls just short of top marks on validation (no explicit final verify-before-removing-ESLint step) and on the type-aware linting flow, which installs a package without showing how to run it.

Suggestions

Add an explicit final validation step (e.g., run `npx oxlint src/` and compare output against `npx eslint src/` before removing ESLint packages) to close the workflow's riskiest loop.

Show how to actually invoke type-aware linting after installing oxlint-tsgolint, since Step 3 installs the package without ever demonstrating its use.

Trim transitional filler sentences ("See options below for more info", "The following table is for reference when reviewing the generated config") for a leaner token budget.

DimensionReasoningScore

Conciseness

The body assumes Claude's competence (no explanation of what ESLint or linting is) and is dense with tables and commands, but contains minor filler such as "See options below for more info" and "The following table is for reference when reviewing the generated config" that could be trimmed. Not anchor 5 because a few transitional sentences do not earn their tokens; not anchor 3 because there is no real over-explanation.

4 / 5

Actionability

Nearly every step has copy-paste-ready commands ("npx @oxlint/migrate", "npm install -D oxlint", "npx oxlint src/") plus concrete JSON config examples and an ESLint→oxlint CLI mapping table. Below anchor 5 due to a minor gap: it installs oxlint-tsgolint for type-aware rules but never shows the command to actually run type-aware linting with it.

4 / 5

Workflow Clarity

A clear five-step sequence (migrate → review config → install → handle unsupported features → update CI) with a review checkpoint in Step 2 ("Run with --details to see which ESLint rules could not be migrated"). Falls short of anchor 5 because there is no explicit end-to-end validation — e.g., running oxlint and comparing rule output against ESLint before the Tips section suggests removing all ESLint packages.

4 / 5

Progressive Disclosure

A single well-sectioned SKILL.md with clearly labeled external references at the end (CLI Reference, Config File Reference, rule docs), all one level deep. No bundle files exist to split content into, and the sectioning plus tables make navigation easy; anchor 5 would require either a short simple skill or actual reference files holding the plugin-mapping/CLI tables that are currently inlined.

4 / 5

Total

16

/

20

Passed

Description

82%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 cleanly and explicitly states both what the skill does and when to use it, with good natural trigger synonyms (migrate/convert/switch) and a distinct, low-conflict niche. Its main weakness is specificity: it describes the migration as a single action without naming the concrete sub-tasks involved.

Suggestions

Name 1-2 concrete outcomes in the description (e.g., 'generates .oxlintrc.json from the ESLint config, maps plugins, and updates CI commands') to raise specificity beyond a single generic action.

Add a commonly-said natural term such as 'lint config' or '.eslintrc/eslint.config.js' to broaden trigger coverage from good to comprehensive.

DimensionReasoningScore

Specificity

"Guide for migrating a project from ESLint to Oxlint" names the domain and one concrete action (migrating the linter), but does not enumerate multiple specific actions such as generating .oxlintrc.json, mapping plugins, or updating CI. It sits above anchor 2 (domain named, generic) and below anchor 4 (several specific actions listed).

3 / 5

Completeness

Explicitly answers both: what ("Guide for migrating a project from ESLint to Oxlint") and when ("Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to Oxlint") with concrete trigger phrases. Matches the anchor-5 example's structure closely; anchor 4 would require the 'when' to be less explicit or specific.

5 / 5

Trigger Term Quality

Includes natural synonyms users would say — "migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to Oxlint" — plus "JavaScript/TypeScript" and both tool names. Falls short of anchor 5 because it omits a few natural terms like ".eslintrc", "lint config", or ".oxlintrc.json".

4 / 5

Distinctiveness Conflict Risk

A clear niche (ESLint-to-Oxlint migration) with a distinct trigger pair ("from ESLint to Oxlint") that no other plausible skill would claim. Not anchor 4, because there is no meaningful overlap risk with closely related skills — the directionality of the migration disambiguates it.

5 / 5

Total

17

/

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

oxc-project/oxc

Path

.agents/skills/migrate-oxlint/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.