Skip to content
Development
Skill

/eslint-fixes

Resolve specific ESLint errors and warnings that appear in this project. Use when fixing lint failures, ESLint reported issues, or autofix conflicts (e.g. no-void, canonical/export-specifier-newline vs prettier, no-shadow trailing underscores, sonarjs/deprecation,

From plugin
gaia-react-gaia
2320 skills10 agents14 commands
Install
$ npx -y skills add gaia-react/gaia --skill eslint-fixes --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/eslint-fixes

Context preview

The summary Claude sees to decide when to auto-load this skill.

Resolve specific ESLint errors and warnings that appear in this project. Use when fixing lint failures, ESLint reported issues, or autofix conflicts (e.g. no-void, canonical/export-specifier-newline vs prettier, no-shadow trailing underscores, sonarjs/deprecation,

SKILL.md

eslint-fixes.SKILL.md
name: eslint-fixes
description: Resolve specific ESLint errors and warnings that appear in this project. Use when fixing lint failures, ESLint reported issues, or autofix conflicts (e.g. no-void, canonical/export-specifier-newline vs prettier, no-shadow trailing underscores, sonarjs/deprecation, you-dont-need-lodash-underscore, testing-library/prefer-screen-queries, testing-library/await-async-events, jest-dom/prefer-*).
model: haiku

ESLint Fix Patterns

How to resolve specific ESLint errors in this project.

no-void

Don't use the `void` operator in event listener functions. Instead, make the function `async` and `await` the promise.

// BAD
const handleClickNavigate = () => {
  void navigate('/path');
};

// GOOD
const handleClickNavigate = async () => {
  await navigate('/path');
};

canonical/export-specifier-newline vs prettier conflict

Use inline `export const` declarations instead of a grouped `export { ... }` statement to avoid circular fix warnings between these two rules.

// BAD, causes circular fix between prettier and canonical
export {DAYS, DURATIONS, FITNESS_GOALS};

// GOOD, declare with export directly
export const DAYS = ['mon', 'tue'] as const;
export const DURATIONS = [15, 30, 45] as const;
export const FITNESS_GOALS = ['weight_loss'] as const;

no-shadow trailing underscores

ESLint's `no-shadow` autofixes by appending `_`. Once shadowing is resolved, remove the trailing `_`.

sonarjs/deprecation

Never suppress with `eslint-disable`. Always fix the underlying deprecation.

Common case: Zod v4 deprecated `z.string().email()` in favor of `z.email()`.

// BAD, suppressing the warning
// eslint-disable-next-line sonarjs/deprecation
email: z.string().email(),

// GOOD, use the non-deprecated API
email: z.email(),

you-dont-need-lodash-underscore/\*

Use native JavaScript instead of lodash/underscore equivalents.

// BAD
import _ from 'lodash';
const first = _.find(items, (item) => item.active);
const names = _.map(items, (item) => item.name);

// GOOD
const first = items.find((item) => item.active);
const names = items.map((item) => item.name);

testing-library/prefer-screen-queries

Use `screen` queries instead of destructuring from `render()`.

// BAD
const {getByText, getByRole} = render(<MyComponent />);

// GOOD
render(<MyComponent />);
screen.getByText('...');
screen.getByRole('button');

testing-library/await-async-events

`userEvent` methods are async, always `await` them.

// BAD
userEvent.click(button);

// GOOD
await userEvent.click(button);

jest-dom/prefer-\*

Use jest-dom matchers instead of raw DOM property checks.

// BAD
expect(input.value).toBe('hello');
expect(checkbox.checked).toBe(true);
expect(el.textContent).toBe('Hello');

// GOOD
expect(input).toHaveValue('hello');
expect(checkbox).toBeChecked();
expect(el).toHaveTextContent('Hello');
Read more
Ships withgaia-react-gaia

Claude is raw power. GAIA is order and focus. The foundation that keeps Claude-shipped code production-grade as your team scales. The React frontend is handled. You build the rest of your app on top. Every convention enforced in code.

Get the whole plugin

Other skills on gaia-react-gaia.