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
  • 10 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…