fix-lint

This skill helps fix oxlint warnings in the OneKey app-monorepo codebase.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fix-lint" with this command: npx skills add onekeyhq/app-monorepo/onekeyhq-app-monorepo-fix-lint

Fix Lint Skill

This skill helps fix oxlint warnings in the OneKey app-monorepo codebase.

IMPORTANT: This project uses oxlint (not ESLint). The active linting configuration is in .oxlintrc.json .

Usage

Use this skill when:

  • Running yarn lint and encountering warnings

  • Cleaning up code before committing

  • Fixing spellcheck, unused variable, or other ESLint warnings

Workflow

Step 1: Run Lint and Analyze Warnings

yarn lint:only 2>&1 | tail -100

Step 2: Categorize Warnings

Warnings typically fall into these categories:

Category Rule Fix Strategy

Spellcheck @cspell/spellchecker

Add to skip list or fix typo

Unused vars @typescript-eslint/no-unused-vars

Remove import or prefix with _

Non-null assertion @typescript-eslint/no-non-null-assertion

Add type guard or cast

Nested components react/no-unstable-nested-components

Extract component

Import order import/order

Fix import ordering

Step 3: Fix Each Category

Spellcheck Warnings (@cspell/spellchecker )

Evaluate the word: Is it a legitimate technical term or a typo?

For legitimate technical terms, add to skip list:

File: development/spellCheckerSkipWords.txt

Add the word on a new line at the end of the file

newTechnicalTerm

For known typos that can't be fixed (e.g., in translation keys), add with a comment above:

Known typo - exsited -> existed (ETranslations.some_key)

exsited

Common legitimate terms to add:

  • Build tools: chunkhash , minimizer , rspack

  • Blockchain: lovelace , Kusama , workchain , feebump

  • UI: Virtualized , overscan , overscrolling

  • Crypto: nacl , Bech32 , secp256k1

Unused Variable Warnings (@typescript-eslint/no-unused-vars )

Unused imports - Remove the import:

// Before import { Used, Unused } from 'package'; // After import { Used } from 'package';

Unused function parameters - Prefix with underscore:

// Before function foo(used: string, unused: number) { return used; } // After function foo(used: string, _unused: number) { return used; }

Unused destructured variables - Prefix with underscore:

// Before const { used, unused } = obj; // After const { used, unused: _unused } = obj;

Unused assigned variables - Prefix with underscore:

// Before const unused = getValue(); // After const _unused = getValue();

Non-null Assertion Warnings (@typescript-eslint/no-non-null-assertion )

Add type assertions or guards:

// Before const value = obj.prop!.name; // After const value = (obj.prop as { name: string } | undefined)?.name;

Nested Component Warnings (react/no-unstable-nested-components )

Extract the component outside the parent:

// Before function Parent() { const NestedComponent = () => <div />; return <NestedComponent />; }

// After const ExtractedComponent = () => <div />; function Parent() { return <ExtractedComponent />; }

Step 4: Verify Fixes

yarn lint:only 2>&1 | tail -50

Common Patterns in This Codebase

Translation Key Typos

Translation enum keys (e.g., ETranslations.perp_invaild_tp_sl ) cannot be easily renamed as they're managed externally. Add to skip list with a comment:

Known typo in translation key - invaild -> invalid

invaild

Provider API Methods

Methods like openInMobileApp that throw NotImplemented() often have unused parameters:

public async openInMobileApp( _request: IJsBridgeMessagePayload, _params: ISignMessagePayload, ): Promise<void> { throw new NotImplemented(); }

Destructuring from Hooks

When destructuring from hooks but not using all values:

const { used, unused: _unused } = usePromiseResult(...);

Tips

Run lint with increased memory for large codebases:

yarn lint:only

Check if word is in skip list before adding:

grep -i "wordToCheck" development/spellCheckerSkipWords.txt

For bulk fixes, use Task agents to parallelize work across multiple files

Verify no regressions after fixes:

yarn tsc:only

Files Modified During Lint Fixes

  • development/spellCheckerSkipWords.txt

  • Add technical terms and known typos (one word per line, use # for comments)

  • Various .ts and .tsx files - Fix unused variables and imports

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

1k-dev-commands

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

1k-code-quality

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

1k-code-review-pr

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review