Skip to content
Back to skills

Lint Fix

ASecurity

Fix violations of an eslintPluginScraps rule across the codebase. Use when asked to "fix lint violations", "apply a lint rule", "fix scraps rule errors", "roll out a lint rule", "enforce a rule codebase-wide", or "fix design system lint". Covers manual fixes, autofix, batching, and codemod strategies for large-scale rollouts.

  • 44,888 stars
  • 0 votes
  • 0 copies
  • 11 views
  • Added June 12, 2026
devopstypescriptgobashgit

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned June 12, 2026

npx -y skills add getsentry/sentry --skill lint-fix --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lint Fix?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lint Fix
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/getsentry-lint-fix/badge)](https://www.skillsdirectory.com/skills/getsentry-lint-fix)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lint-fix
description: Fix violations of an eslintPluginScraps rule across the codebase. Use when asked to "fix lint violations", "apply a lint rule", "fix scraps rule errors", "roll out a lint rule", "enforce a rule codebase-wide", or "fix design system lint". Covers manual fixes, autofix, batching, and codemod strategies for large-scale rollouts.
---

Fix violations of rule `$0` on files matching `$1`.

## Arguments

- `$0` — Rule name (e.g., `use-semantic-token`, `no-core-import`)
- `$1` — File or glob pattern (e.g., `static/app/components/`, `static/app/views/alerts/`)

## Step 1: Understand the Rule

Before fixing violations, know what the fix looks like. Load [references/fix-patterns.md](references/fix-patterns.md) for per-rule fix details:

| Rule                         | Has autofix? | Fix reference                                                                                     |
| ---------------------------- | ------------ | ------------------------------------------------------------------------------------------------- |
| `no-core-import`             | Yes          | [fix-patterns.md](references/fix-patterns.md) §no-core-import                                     |
| `no-token-import`            | No           | [fix-patterns.md](references/fix-patterns.md) §no-token-import                                    |
| `use-semantic-token`         | No           | [fix-patterns.md](references/fix-patterns.md) + [token-taxonomy.md](references/token-taxonomy.md) |
| `restrict-jsx-slot-children` | No           | [fix-patterns.md](references/fix-patterns.md) §restrict-jsx-slot-children                         |

For `use-semantic-token` violations, you MUST load [references/token-taxonomy.md](references/token-taxonomy.md) to know which token category to use for each CSS property.

## Step 2: Assess Scale

Count violations before choosing a strategy:

```bash
pnpm exec eslint --rule '@sentry/scraps/$0: error' "$1" 2>&1 | tail -5
```

The last line shows the count (e.g., "42 problems (42 errors, 0 warnings)").

**Tip**: Running eslint on all of `static/app/` can take 2+ minutes. Narrow scope to a subdirectory first.

## Step 3: Choose Strategy

### Auto-fixable rule (any scale)

```bash
pnpm exec eslint --fix --rule '@sentry/scraps/$0: error' "$1"
```

Always review the diff after `--fix` before committing. If the rule is partially auto-fixable, run `--fix` first, then manually fix remaining violations.

### Under 100 violations — manual agent fix

1. Run eslint on target path
2. Fix violations 5-10 files at a time
3. Re-run after each batch to verify
4. Repeat until clean

### 100-500 violations — batched fix

1. Split target into subdirectories (e.g., `static/app/views/`, `static/app/components/`)
2. Fix one subdirectory at a time
3. Commit after each batch for reviewable PRs
4. Re-run count after each batch to track progress

### 500+ violations — codemod or staged rollout

- **Mechanical transforms**: write a temporary jscodeshift codemod or a targeted script using `@typescript-eslint/typescript-estree`
- **Import-path rules**: `--fix` usually handles these at any scale
- **Complex transforms**: enable the rule as `warn` first, fix in batches across multiple PRs

## Fix Workflow (tight loop)

1. Run: `pnpm exec eslint --rule '@sentry/scraps/$0: error' "$1"`
2. Fix violations in reported files
3. Re-run on changed files to verify
4. Expand scope, repeat

## Coordinating Large Changes

- Split PRs to **~50 changed files** based on ownership rules in @.github/CODEOWNERS.
- PR title convention: `fix(lint): enforce @sentry/scraps/$0 for <codeowner>`
- If the rule is new and not yet in `eslint.config.ts`, **fix all violations first**, then enable the rule in a follow-up PR
- Run pre-commit on changed files before committing:
  ```bash
  .venv/bin/prek run -q --files <file1> [file2 ...]
  ```

## Verification

After all fixes:

```bash
pnpm exec eslint --rule '@sentry/scraps/$0: error' static/app/ 2>&1 | tail -5
```

Should report 0 problems.

Files in this skill

  • SKILL.md3.9 KB
  • references/fix-patterns.md3.5 KB
  • references/token-taxonomy.md4.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.