Skip to content

chore(lint): 565 pre-existing ESLint problems on development — accumulated tech debt #132

@jacuzzicoding

Description

@jacuzzicoding

Finding

Running `npm run lint` on plain `origin/development` HEAD (no working changes) reports 565 problems (463 errors, 102 warnings). This was discovered during PR #131 prep — a hand-drawn icon PR that was flagging lint errors unrelated to its binary-only changes. Investigation confirmed the errors exist on `development` before any change is applied.

Why it never surfaced

CI's lint check appears to run scoped to changed files (or only fails on specific patterns), not project-wide. As a result the accumulated lint debt on `development` hasn't blocked any recent PR. PR #131 passed CI despite this state.

Reference

Discovered during PR #131 (hand-drawn cicadas). Linked here for the chain of evidence.

What's likely in there

Tally not yet broken down by rule — first step of any cleanup PR would be `npm run lint -- --format json` to bucket by rule and plan the autofix vs manual-fix split. Without a deep dive, the bulk is probably:

  • `any` usages and missing return types (TS strict-mode lint rules)
  • `console.log` calls in dev-era code that didn't get stripped
  • Unused vars / imports
  • Possibly some legacy code that pre-dates a stricter ESLint config

Suggested approach

Not prescribing — just options:

  1. Run `npm run lint -- --fix` on the whole project, count what survives. Most rules have autofix.
  2. For what doesn't autofix (probably `any` usage and missing return types), prioritize the highest-traffic files first (`App.tsx`, `ACCanvas.tsx`, `ItemIcon.tsx`, etc.) — diminishing returns on rarely-touched script files.
  3. Consider tightening the CI lint check to fail on project-wide errors after the count is back down to a defensible baseline, so this doesn't accumulate again.

Priority

Not urgent. Doesn't break functionality, doesn't affect users. Worth addressing before v1.0 as part of the "public ship" polish — clean lint is a baseline professional signal. Suggested slot: v0.9.9-beta polish / bug sweep (per the roadmap).

Scope note

This is project hygiene, not a regression. Don't sequence ahead of feature work or hand-drawn icon ships.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions