| 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 for per-rule fix details:
For use-semantic-token violations, you MUST load 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:
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)
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
- Run eslint on target path
- Fix violations 5-10 files at a time
- Re-run after each batch to verify
- Repeat until clean
100-500 violations — batched fix
- Split target into subdirectories (e.g.,
static/app/views/, static/app/components/)
- Fix one subdirectory at a time
- Commit after each batch for reviewable PRs
- 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)
- Run:
pnpm exec eslint --rule '@sentry/scraps/$0: error' "$1"
- Fix violations in reported files
- Re-run on changed files to verify
- Expand scope, repeat
Coordinating Large Changes
Verification
After all fixes:
pnpm exec eslint --rule '@sentry/scraps/$0: error' static/app/ 2>&1 | tail -5
Should report 0 problems.