Lint the repository with Oxlint
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
Research direction
Start with the existing pnpm lint entrypoint and Biome configuration, then run the listed lint, format, typecheck, build, and test commands to establish the migration baseline. Configure pinned Oxlint behavior, document every Biome rule disposition, and verify that deliberate violations fail while the complete command set passes consistently.
Written by the indexing model from the issue text.
Description
Parent Quest: #254
Story
As an effectionx contributor, I want pnpm lint to use Oxlint, so repository linting and future Effection policy rules share one static-analysis engine without changing my local or CI workflow.
Current gap
Biome currently performs repository linting. It cannot host the JavaScript policy rules intended for @effectionx/lint, so keeping it as the primary linter would require contributors and CI to operate two overlapping lint systems.
Contract
Oxlint becomes the repository’s sole linter while preserving the pnpm lint entrypoint.
- Oxlint is pinned to an exact version.
- The committed configuration explicitly declares enabled rules, severities, plugins, ignores, and overrides instead of relying on changing recommended defaults.
- Every behavior currently enforced by the Biome configuration is either represented by an equivalent Oxlint rule or recorded as an intentional migration difference.
- Existing accepted source remains clean unless a documented difference identifies a genuine issue that must be corrected.
- CI and editor integration use the committed configuration.
- Once #253 and this story are delivered, Biome has no remaining formatting or linting responsibility and is removed.
Acceptance
pnpm lintinvokes Oxlint and remains the command used by CI.- A deliberate violation of an enabled rule makes
pnpm lintfail, and correcting it makes the command pass. - Running
pnpm linttwice against an unchanged checkout produces the same diagnostics and exit status. - The migration records the disposition of the existing Biome lint rules and overrides.
- Repository lint, typecheck, build, format, and tests pass after the migration.
- No Effection-specific policy rules are introduced by this story.
Evidence
The implementation records the rule mapping and the output of:
pnpm lint
pnpm fmt:check
pnpm check
pnpm build
pnpm test
pnpm test:node
Dependencies
- Depends on #253 so formatter churn is settled before the lint engine changes.
- Blocks the
@effectionx/lintchild story in #254.
Out of scope
- Effection-specific lint rules
- Deno lint compatibility
- Executable policy documents
- README or CI policy orchestration beyond retaining the existing lint job
- Dominant language
- TypeScript
- Stars
- 12
- Forks
- 4
- Avg merge
- 8h 32m
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from thefrontside/effectionx
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
thefrontside/effectionx#181 ·
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 48/100
thefrontside/effectionx#259 ·
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 52/100
thefrontside/effectionx#258 ·
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
thefrontside/effectionx#257 ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 38/100
thefrontside/effectionx#256 ·
All issues in thefrontside/effectionx
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
high priority
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
CI-CMG/deep-sea-corals-exb#84 · 1 comment ·
-
Create/import wallet form shows raw "password must be at least 1 characters" instead of the translated messagePossibly taken @CapThunder19 claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
joinmarket-webui/jam#1538 ·
Maintainers usually reply within 1 day
-
t0ggles
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
nolimits4web/swiper#8240 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day