Agent Skills › getsentry/sentry › lint-fix

lint-fix

GitHub

用于修复代码库中违反特定 ESLint 规则的问题。根据违规规模选择自动修复、手动修正或批量处理策略,支持大规模规则 rollout。

.agents/skills/lint-fix/SKILL.md getsentry/sentry

Trigger Scenarios

fix lint violations apply a lint rule enforce a rule codebase-wide

Install

npx skills add getsentry/sentry --skill lint-fix -g -y
More Options

Non-standard path

npx skills add https://github.com/getsentry/sentry/tree/master/.agents/skills/lint-fix -g -y

Use without installing

npx skills use getsentry/sentry@lint-fix

指定 Agent (Claude Code)

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

安装 repo 全部 skill

npx skills add getsentry/sentry --all -g -y

预览 repo 内 skill

npx skills add getsentry/sentry --list

SKILL.md

Frontmatter
{
    "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:

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

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

Version History

  • d3c9056 Current 2026-08-20 20:33

Same Skill Collection

.agents/skills/bump-sentry-dependency/SKILL.md
.agents/skills/cmdk-actions/SKILL.md
.agents/skills/design-system/SKILL.md
.agents/skills/feature-flags/SKILL.md
.agents/skills/frontend-data-fetching/SKILL.md
.agents/skills/generate-frontend-forms/SKILL.md
.agents/skills/generate-migration/SKILL.md
.agents/skills/generate-snapshot-tests/SKILL.md
.agents/skills/hybrid-cloud-rpc/SKILL.md
.agents/skills/hybrid-cloud-test-gen/SKILL.md
.agents/skills/lint-new/SKILL.md
.agents/skills/migrate-container-queries/SKILL.md
.agents/skills/migrate-frontend-forms/SKILL.md
.agents/skills/notification-platform/SKILL.md
.agents/skills/react-component-documentation/SKILL.md
.agents/skills/react-testing/SKILL.md
.agents/skills/scraps-review/SKILL.md
.agents/skills/seer-embed/SKILL.md
.agents/skills/sentry-backend-bugs/SKILL.md
.agents/skills/sentry-javascript-bugs/SKILL.md
.agents/skills/sentry-security/SKILL.md
.agents/skills/analytics/SKILL.md
.agents/skills/backend-conventions/SKILL.md
.agents/skills/cell-architecture/SKILL.md
.agents/skills/django-models/SKILL.md
.agents/skills/hybrid-cloud-outboxes/SKILL.md
.agents/skills/migrate-breadcrumb-list/SKILL.md
.agents/skills/remove-option-or-flag/SKILL.md
.agents/skills/setup-dev/SKILL.md

Metadata

Files
0
Version
991ee88
Hash
ea8b7bad
Indexed
2026-08-20 20:33

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-04 22:25
浙ICP备14020137号-1