Labsco
getsentry logo

lint-fix

✓ Official44,200

by sentry · part of getsentry/sentry

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…

🔥🔥✓ VerifiedFreeQuick setup
🔒 Repo-maintenance skill. It exists to help maintain getsentry/sentry itself — it's only useful if you contribute code to that project.

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…

Inspect the full instructions your agent will receiveExpand

This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.

by sentry

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… npx skills add https://github.com/getsentry/sentry --skill lint-fix Download ZIPGitHub44.2k 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:

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:

Copy & paste — that's it
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)

Copy & paste — that's it
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

  • 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:

Copy & paste — that's it
.venv/bin/prek run -q --files [file2 ...]

Verification

After all fixes:

Copy & paste — that's it
pnpm exec eslint --rule '@sentry/scraps/$0: error' static/app/ 2>&1 | tail -5

Should report 0 problems.