chore(typescript-eslint): add rule-performance agent skill#12436
Conversation
|
Thanks for the PR, @zaewc! typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community. The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately. Thanks again! 🙏 Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently on https://opencollective.com/typescript-eslint. |
✅ Deploy Preview for typescript-eslint ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
View your CI Pipeline Execution ↗ for commit 127283f
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗ ☁️ Nx Cloud last updated this comment at |
| Type-aware rules are the main source of lint slowdowns, because calls into | ||
| TypeScript's checker (`getTypeAtLocation`, `getConstrainedTypeAtLocation`, |
There was a problem hiding this comment.
[Formatting] Question: why the aggressive line length split like this?
| Type-aware rules are the main source of lint slowdowns, because calls into | |
| TypeScript's checker (`getTypeAtLocation`, `getConstrainedTypeAtLocation`, | |
| Type-aware rules are the main source of lint slowdowns, because calls into TypeScript's checker (`getTypeAtLocation`, `getConstrainedTypeAtLocation`, |
There was a problem hiding this comment.
I applied your suggestion!
There was a problem hiding this comment.
Oh good catch, reflowed the rest of the file so no prose is hard-wrapped anymore, not just that one paragraph
Co-authored-by: Josh Goldberg ✨ <github@joshuakgoldberg.com>

PR Checklist
Overview
Adds a
skills/directory holdingSKILL.mdfiles in the portable frontmatter format (Vercel skills / Claude Code) + the first skill:rule-performanceThe skill captures the "defer type checks behind cheap AST guards" preference from #12296 , checking node types/operators/flags before calling the type checker, so expensive type lookups are skipped for nodes a syntactic guard already rejects.
This is the kind of preference that's impractical to enforce with a lint rule of our own, which makes it a good fit for a skill. It explains how to spot candidates and how to reorder without changing behavior and what to verify before claiming a win.
Kept intentionally small (one skill) so we can see how it does on real issues and PRs before adding more, per the phased plan in the issue 💖