Official agent skill

Eslint Migrate Options

by biomejs in biomejs/biome

A skill your agent uses when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures.

OfficialApache-2.0Auto-check passedDevelopment

Install Eslint Migrate Options

skills CLI
$ npx skills add biomejs/biome --skill eslint-migrate-options -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install biomejs/biome eslint-migrate-options --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/eslint-migrate-options .claude/skills/eslint-migrate-options && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
eslint-migrate-options
GitHub stars
26k
Token cost
~1.4k tokens
SKILL.md length
620 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures.

  • Works in 5 steps: The Biome rule and its option type… → Rule metadata identifies the ESLint… → Generated severity migration already… → …
  • Biome migrate eslint must preserve configurable ESLint rule options through source-option models
  • SKILL.md covers Preconditions, Pipeline, Key Files and Model Source Options, plus 6 more sections
  • Calls cargo

What it does

Eslint Migrate Options is an agent skill from biomejs/biome, published by the product's own GitHub organization. Use this skill when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures. Do not use for generated severity-only mapping or general rule-option design.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for coding agents working on the Biome codebase (github.com/biomejs/biome).

It sits in Development, covering Linting and formatting and Static analysis and SAST. It works with ESLint and TypeScript. The repository describes itself as: A toolchain for web projects, aimed to provide functionalities to maintain them. Biome offers formatter and linter, usable via CLI and LSP. The licence is Apache-2.0.

When your agent uses it

  • Biome migrate eslint must preserve configurable ESLint rule options through source-option models
  • Biome conversions
  • Typed rule variants
  • Migration fixtures

Example prompts

  • “/eslint-migrate-options”

Requirements

  • Compatibility (from SKILL.md): Designed for coding agents working on the Biome codebase (github.com/biomejs/biome).

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. The Biome rule and its option type already exist.
  2. Rule metadata identifies the ESLint source rule.
  3. Generated severity migration already exists or will be regenerated.
  4. Official ESLint or plugin documentation establishes the exact option shape and defaults.
  5. The supported Biome semantics are clear, including unsupported source options.

What it can do on your machine

Read from SKILL.md and the folder at commit fd4df34. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • eslint.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for coding agents working on the Biome codebase (github.com/biomejs/biome).

    From compatibility in the SKILL.md frontmatter.

Context cost

Eslint Migrate Options loads about 1.4k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 620 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~71
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from biomejs/biome at commit fd4df34, republished under its Apache-2.0 licence (© biomejs). 620 words, ~1,425 tokens.

Download SKILL.mdSave it as .claude/skills/eslint-migrate-options/SKILL.md (or your agent's skills folder).
name
eslint-migrate-options
description
Use this skill when `biome migrate eslint` must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures. Do not use for generated severity-only mapping or general rule-option design.
compatibility
Designed for coding agents working on the Biome codebase (github.com/biomejs/biome).

ESLint Option Migration

Use a custom migrator only when an existing Biome rule should preserve meaningful ESLint options. Severity-only migration belongs to the generated rule mapping.

Preconditions

Confirm before editing:

  1. The Biome rule and its option type already exist.
  2. Rule metadata identifies the ESLint source rule.
  3. Generated severity migration already exists or will be regenerated.
  4. Official ESLint or plugin documentation establishes the exact option shape and defaults.
  5. The supported Biome semantics are clear, including unsupported source options.

Load lint-rule-development when the Biome rule or its own options still need implementation.

Pipeline

Custom migration has four parts:

  1. A plugin-specific type deserializes the ESLint payload.
  2. A conversion maps source semantics into the Biome option type.
  3. The shared ESLint Rule enum recognizes the rule as a typed variant.
  4. migrate_eslint_rule() installs the resulting Biome configuration after common severity handling.

Key Files

FileResponsibility
eslint_eslint.rsShared config model, Rule, RuleConf<T>, and dispatch
eslint_unicorn.rsUnicorn option types and conversions
eslint_typescript.rsTypeScript ESLint option types and conversions
eslint_jsxa11y.rsJSX accessibility option types and conversions
eslint_to_biome.rsMain conversion and custom migration arms
eslint_any_rule_to_biome.rsGenerated severity mapping
tests/specs/migrate_eslint/Fixture-driven migration snapshots

Use the plugin-specific module matching the source rule and inspect a current migrator with a similar payload and Biome configuration type.

Model Source Options

Model the ESLint JSON shape rather than the Biome destination shape.

  • Preserve source nesting until conversion.
  • Use optional fields where the source allows omission.
  • Match current deserialization naming and default conventions from neighboring option types.
  • Model fields needed to deserialize supported real configurations.
  • Verify unsupported source fields do not make valid configurations fail; whether they need explicit fields depends on the current deserializer contract.

Do not assume source and destination defaults are equivalent.

Convert Semantics

Implement conversion next to the source option type.

  • Rename concepts when ESLint and Biome use different terminology.
  • Drop unsupported behavior deliberately.
  • Avoid emitting empty nested option objects.
  • Preserve omission when attaching Biome defaults would change severity-only behavior.
  • Use a small helper when normalization or conditional construction has a domain meaning.

The conversion should make unsupported and default behavior obvious from its branches rather than relying on field-for-field assignment.

Show full SKILL.md (262 more words)Show less

Add the Typed Rule Variant

Update all typed dispatch points in eslint_eslint.rs:

  • add RuleConf<SourceOptions> to Rule;
  • return the exact ESLint rule name from Rule::name();
  • deserialize that name into the typed variant before the catch-all fallback.

Search the enum's matches after adding the variant so no dispatch site remains stale.

Wire Migration

Add the custom arm in migrate_eslint_rule() and call migrate_eslint_any_rule() first. The common path owns severity tracking, unsupported-rule reporting, and deduplication.

Use the destination rule's actual group and configuration type:

  • RuleFixConfiguration::WithOptions for fixable rules;
  • RuleConfiguration::WithOptions for non-fixable rules.

Choose the RuleConf access pattern matching the source schema:

  • option_or_default() when severity-only input should map through source defaults;
  • explicit RuleConf::Option matching when options should attach only when supplied;
  • into_vec() for array payloads requiring aggregation or normalization.

Copy a current analogous arm rather than relying on remembered struct fields.

Tests

Add focused fixtures under crates/biome_cli/tests/specs/migrate_eslint/ for:

  • severity-only configuration;
  • each supported option mode;
  • unsupported fields present in otherwise valid input;
  • empty and partially specified nested objects;
  • differing ESLint and Biome defaults;
  • pre-existing Biome configuration when merge behavior matters.

Run the focused migration tests and inspect adjacent snapshots. Run analyzer option tests too when migration output depends on rule semantics.

Typical commands:

shell
cargo check -p biome_cli
cargo test -p biome_cli migrate_eslint

Review Checklist

  • Source types match official ESLint configuration.
  • Conversion maps semantics rather than names mechanically.
  • Severity-only behavior remains correct.
  • Typed variant, name, deserialization, and migration matches are complete.
  • Common severity migration runs before custom option installation.
  • Group and fixability match the destination rule.
  • Fixtures cover omission, defaults, unsupported fields, and nested options.

References

© biomejs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/eslint-migrate-options of biomejs/biome.

Open the folder on GitHubat commit fd4df34

Compare with similar skills

Eslint Migrate Options next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Eslint Migrate Options compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Eslint Migrate Options this skillbiomejs/biome26k—~1.4kAutomated safety check: PassApache-2.0
Ultraciteagustinusnathaniel/nextarter-tailwind1252 repos~1.2kAutomated safety check: PassMIT
Code Qualityredis/RedisInsight8.9k—~1.2kAutomated safety check: PassCustom licence
Boundaries Architectjavierbrea/eslint-plugin-boundaries997—~4.2kAutomated safety check: PassMIT
Port Ruleweb-infra-dev/rslint461—~1.7kAutomated safety check: PassMIT
Migrate OxlintAsvarox/allkaraoke2614 repos~2.5kAutomated safety check: PassNone

Similar skills

  • Ultracite

    agustinusnathaniel/nextarter-tailwind

    Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.

    125 GitHub starsUsed in 2 repos~1.2k tokens
    DevelopmentAuto-check passed
  • Code Quality

    redis/RedisInsight

    Official

    Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…

    8.9k GitHub stars~1.2k tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Boundaries Architect

    javierbrea/eslint-plugin-boundaries

    Act as a software architect: analyze a repository's folder structure and cross-file import dependencies, detect its architectural pattern, design element/file boundaries with the user, and configure…

    997 GitHub stars~4.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Port Rule

    web-infra-dev/rslint

    Port a new ESLint core or plugin rule to rslint, including explicitly requested batches.

    461 GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Migrate Oxlint

    Asvarox/allkaraoke

    Guide for migrating a project from ESLint to Oxlint. An agent skill from Asvarox/allkaraoke.

    261 GitHub starsUsed in 4 repos~2.5k tokens
    DevelopmentAuto-check passed
  • Obsidian Plugin Development Guidelines

    gapmiss/obsidian-plugin-skill

    Rules and references for building Obsidian plugins: ESLint rules, TypeScript practices, memory cleanup, API choices, UI standards and the community submission process.

    191 GitHub stars~4.5k tokensUpdated 15 days ago
    DevelopmentAuto-check passed

More from biomejs/biome

All 12 skills in this repo
  • Changeset

    biomejs/biome

    Official

    A skill your agent uses when a Biome change may affect users and you must decide whether it needs a changeset, choose the release level, or create and edit .changeset/.md release-note text.

    26k GitHub stars~839 tokensUpdated today
    Auto-check passed
  • Doc Comments

    biomejs/biome

    Official

    A skill your agent uses whenever writing or editing Rust //, ///, or //!

    26k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal…

    26k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses when creating or modifying Biome lint rules or assists, including analyzer queries, semantic bindings, rule state, code actions, fix safety, options, registration, and…

    26k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Parser Development

    biomejs/biome

    Official

    A skill your agent uses when implementing or modifying Biome parser behavior, including .ungram grammars, lexers, token sources, parse rules, separated lists, error recovery, and parser fixtures.

    26k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Promote Lint Rules

    biomejs/biome

    Official

    A skill your agent uses when promoting one or more Biome lint rules from nursery to stable groups, including promotion plans from GitHub issues, metadata changes, rule renames, generated…

    26k GitHub stars~948 tokensUpdated today
    Auto-check passed

Categories

Questions about Eslint Migrate Options

What does Eslint Migrate Options do?

A skill your agent uses when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures. Eslint Migrate Options is an agent skill from biomejs/biome, published by the product's own GitHub organization. Use this skill when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures.

When should I use Eslint Migrate Options?

Eslint Migrate Options fits situations like: biome migrate eslint must preserve configurable ESLint rule options through source-option models; biome conversions; typed rule variants; migration fixtures.

How do I install Eslint Migrate Options in Claude Code?

Run `npx skills add biomejs/biome --skill eslint-migrate-options -a claude-code`. Or copy the skill folder (.agents/skills/eslint-migrate-options in biomejs/biome) into .claude/skills/eslint-migrate-options in your project. Claude Code loads it when a task matches its description.

How do I install Eslint Migrate Options in Codex?

Run `npx skills add biomejs/biome --skill eslint-migrate-options -a codex`. Or copy the skill folder (.agents/skills/eslint-migrate-options in biomejs/biome) into .agents/skills/eslint-migrate-options in your project. Codex loads it when a task matches its description.

Can I use Eslint Migrate Options in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add biomejs/biome --skill eslint-migrate-options -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/eslint-migrate-options, .gemini/skills/eslint-migrate-options, .github/skills/eslint-migrate-options and .opencode/skills/eslint-migrate-options in your project.

What does Eslint Migrate Options need to run?

Going by SKILL.md and its folder, Eslint Migrate Options needs the command-line tools its instructions call (cargo). Compatibility (from SKILL.md): Designed for coding agents working on the Biome codebase (github.com/biomejs/biome)..

Does Eslint Migrate Options access the network?

SKILL.md names 1 domain. As links in the text: eslint.org. This is read from the text; nothing was executed.

Is Eslint Migrate Options safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Eslint Migrate Options use?

Eslint Migrate Options is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Eslint Migrate Options use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Eslint Migrate Options?

Skills that share tags, products or a category with Eslint Migrate Options: Ultracite (agustinusnathaniel/nextarter-tailwind, 125 stars), Code Quality (redis/RedisInsight, 8.9k stars), Boundaries Architect (javierbrea/eslint-plugin-boundaries, 997 stars) and Port Rule (web-infra-dev/rslint, 461 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Eslint Migrate Options?

biomejs (a GitHub organization, an official publisher) maintains it in biomejs/biome, which has 25,916 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.

Source: biomejs/biome on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.