lint-fix
Corriger les violations d'une règle eslintPluginScraps dans l'ensemble de la base de code. Utiliser lorsqu'on demande de "corriger les violations de lint", "appliquer une règle de lint", "corriger les erreurs de règle scraps", "roll…
npx skills add https://github.com/getsentry/sentry --skill lint-fixFix 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:
| Rule | Has autofix? | Fix reference |
|---|---|---|
no-core-import | Yes | fix-patterns.md §no-core-import |
no-token-import | No | fix-patterns.md §no-token-import |
use-semantic-token | No | fix-patterns.md + token-taxonomy.md |
restrict-jsx-slot-children | No | fix-patterns.md §restrict-jsx-slot-children |
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:
--fixusually handles these at any scale - Complex transforms: enable the rule as
warnfirst, 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
- 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:
.venv/bin/prek run -q --files <file1> [file2 ...]
Verification
After all fixes:
pnpm exec eslint --rule '@sentry/scraps/$0: error' static/app/ 2>&1 | tail -5
Should report 0 problems.