Skip to main content

Why this plugin exists

Gadget’s official documentation covers action files, options exports, and the enqueue API thoroughly. But the rules it describes are not enforced at the code level. When you misformat an options export, exceed a timeout limit, or await handle.result() inside run, your code still passes linting - and the error only surfaces at deploy time or, worse, in production. This is especially costly when AI coding agents generate Gadget action code. Agents follow documentation, but they drift. Without lint-time feedback, both humans and agents repeat the same avoidable mistakes. This plugin encodes those rules as ESLint checks so mistakes surface in the editor, in CI, and in agent tool loops - before the code ships.

Community package

This is an opinionated, community-maintained package. It is not published or endorsed by Gadget. Gadget ships its own framework linter which covers a different set of concerns. This plugin complements it with additional static checks for action file patterns, options validation, and enqueue safety. It was built from hands-on experience shipping Gadget applications and watching the same classes of errors repeat across projects. The goal is to save other developers (and their agents) the time spent debugging issues that a linter can catch statically.

What is coming

The @aurelienbbn/gadget monorepo is growing. More tools for the Gadget ecosystem are on the way - including a Gelly parser, formatter, language server, and editor extensions. Follow the GitHub repository for updates.

Get involved

This project improves with community input. If a rule misfires, a fixable case is missing, or a new pattern should be covered:
  • Open an issue to report bugs or request rules.
  • Start a discussion for broader ideas or questions.
Pull requests are not accepted at this time. This is a personal project that happens to be open source. Contributions may be accepted in the future as the project matures.
Last modified on March 10, 2026