Skip to content
This repository was archived by the owner on Sep 4, 2026. It is now read-only.

chore: adopt oxlint as lint gate #404

Description

@ElbertePlinio

No JS linter today (tsc + vitest + playwright). Solid app, 248 files. oxlint has no eslint-plugin-solid equivalent, so reactivity rules stay uncovered (they are uncovered today too). Effort: M.

Baseline: 29 findings — 20 no-unassigned-vars (almost all Solid ref bindings: let root; <div ref={root}> — false positives), 6 no-unused-expressions, 1 each prefer-string-starts-ends-with, no-irregular-whitespace, no-control-regex.

Agent plan

Goal: oxlint is the primary lint gate (edit loop + CI), per workspace AGENTS.md "Frontend tooling". Audit source: oxlint 1.80.0 run on this tree, 2026-08-25.

Checklist:

  • Add oxlint + .oxlintrc.json
  • Handle Solid ref false positives: prefer let root!: HTMLDivElement or disable no-unassigned-vars for .tsx
  • Fix the 9 real findings
  • Add CI Lint step
  • lint script runs oxlint; CI "Lint" step uses it
  • Baseline is clean (fix findings or justify per-rule disables in .oxlintrc.json)
  • Add .complexity-gate.json (complexity-gate init, defaults) and complexity-gate check <src> in CI; existing FAILs are legacy — gate only changed functions via hooks, but CI baseline must be clean or explicitly allowlisted
  • PR/review

Validation:

  • bunx oxlint (or npx oxlint) exits 0 on the tree
  • complexity-gate check <src> exits 0
  • CI green

Current status: Planned
Next action: open PR

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions