Skip to content

chore(lint): migrate ESLint → biome 2.4.16#42

Merged
mabry1985 merged 1 commit into
mainfrom
chore/eslint-to-biome
Jun 4, 2026
Merged

chore(lint): migrate ESLint → biome 2.4.16#42
mabry1985 merged 1 commit into
mainfrom
chore/eslint-to-biome

Conversation

@mabry1985

Copy link
Copy Markdown
Contributor

What

Standardizes release-tools on biome 2.4.16 instead of ESLint 9 — matching the fleet reference (protoWorkstacean, which just upgraded to biome 2.x). The previous setup was a minimal @eslint/js recommended config on plain .mjs, so this is a clean swap.

  • replace eslint + globals devDeps with @biomejs/biome 2.4.16 (pinned exact for reproducible CI linting)
  • biome.json: recommended rules, formatter disabled (no reformatting churn), noTemplateCurlyInString off — this is a GitHub-Actions tooling repo, so ${{ }} inside strings is intentional, not a botched template literal
  • noConsole intentionally NOT enabledbin/*.mjs are CLIs whose console.* is their output (unlike a server, where it'd be operational logging)
  • lint script: eslint .biome lint .; deleted eslint.config.js
  • applied biome's safe + unsafe autofixes (useConst, useTemplate, useOptionalChain) — all semantically identical (string-concat→template literal, letconst, a && a.ba?.b)

Verification

  • npm run lint — clean (0 errors, 0 warnings)
  • npm test52 pass / 0 fail
  • npm run smoke — OK (all 5 bin entrypoints respond to --help)

🤖 Generated with Claude Code

Standardize on biome (matching the fleet reference, protoWorkstacean) instead of
ESLint 9. The prior config was just `@eslint/js` recommended on plain .mjs — a
clean swap.

- replace eslint + globals devDeps with @biomejs/biome 2.4.16 (pinned exact)
- biome.json: recommended rules, formatter disabled (no reformatting churn),
  noTemplateCurlyInString off (this is a GitHub-Actions tooling repo — `${{ }}`
  in strings is intentional, not a botched template literal). noConsole is NOT
  enabled: the bin/*.mjs are CLIs whose console.* IS their output.
- `lint` script: `eslint .` → `biome lint .`
- delete eslint.config.js
- applied biome's safe + unsafe autofixes (useConst, useTemplate, useOptionalChain)
  — all semantically identical (string-concat→template, let→const, &&→?.)

Verified: `npm run lint` clean (0 errors/warnings), `npm test` 52 pass / 0 fail,
`npm run smoke` OK.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@protoquinn

protoquinn Bot commented Jun 4, 2026

Copy link
Copy Markdown

👀 Quinn is reviewing — verdict (PASS / WARN / FAIL) + findings to follow.

@protoquinn protoquinn Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA Audit — PR #42 | chore(lint): migrate ESLint → biome 2.4.16

VERDICT: PASS


CI Status

  • Lint + smoke test: queued (not yet terminal — re-review will follow once checks complete)

Diff Review

  • Removes eslint + globals devDeps; adds @biomejs/biome 2.4.16 (pinned exact)
  • New biome.json: recommended rules, formatter disabled, noTemplateCurlyInString off — all appropriate for a GitHub-Actions tooling repo where ${{ }} in strings is intentional
  • noConsole left off — correct, as bin/*.mjs are CLIs whose console.* is their output surface
  • Three .mjs files: all changes are biome autofixes (letconst, string-concat→template literal, &&?.) — semantically identical, no behavioral change
  • eslint.config.js deleted

Observations

  • MEDIUM (gap): CI not yet terminal — formal verdict will be issued on next pass once Lint + smoke test completes. No reason to expect failure given the PR description reports clean npm run lint and npm test (52 pass / 0 fail).
  • All changes are mechanical linter swaps with zero risk of behavioral change.

— Quinn, QA Engineer

@protoquinn

protoquinn Bot commented Jun 4, 2026

Copy link
Copy Markdown

Submitted COMMENT review on #42.

CI was still queued at time of review — I've flagged this as a MEDIUM gap (CI not terminal) and will issue a formal verdict (APPROVE / REQUEST_CHANGES) once the Lint + smoke test check completes.

@mabry1985 mabry1985 merged commit 0a706f5 into main Jun 4, 2026
1 check passed
@mabry1985 mabry1985 deleted the chore/eslint-to-biome branch June 4, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant