Agent skill · software engineering · n8n-io
n8n:create-community-node-lint-rule
Create new ESLint rules for the @n8n/eslint-plugin-community-nodes package. Use when adding a lint rule, creating a community node lint, or working on eslint-plugin-community-nodes. Guides rule implementation, tests, docs, and plugin registration.
Why this skill is useful
Provides specific implementation patterns and testing frameworks for creating ESLint rules in the n8n ecosystem that the AI wouldn't reliably generate on its own.
What it needs
Requires @typescript-eslint/rule-tester, @typescript-eslint/utils, eslint, typescript installed locally. About 3k tokens when loaded. Last updated 2026-08-07. 199,638 stars on the source repository.
What this skill does
Create Community Node Lint Rule Guide for adding new ESLint rules to packages/@n8n/eslint-plugin-community-nodes/. All paths below are relative to packages/@n8n/eslint-plugin-community-nodes/. Step 1: Understand the Rule Before writing code, clarify: What does the rule detect? (missing property, wrong pattern, bad value) Where does it apply? (.node.ts files, credential classes, both) Severity: error (must fix) or warn (should fix)? Fixable? Can it be auto-fixed safely, or only suggest? Scope: Both recommended configs, or exclude from recommendedWithoutN8nCloudSupport? Step 2: Implement the Rule Create src/rules/<rule-name>.ts: Naming: Export as PascalCaseRule (e.g. MissingPairedItemRule). The name field is kebab-case. Available AST helpers — see reference.md for the full catalog of ast-utils and file-utils exports. Step 3: Write Tests Create src/rules/<rule-name>.test.ts: Test guidelines: Always test that non-INodeType classes are skipped (valid case) Test both the error message and the fixed output for fixable rules For rules with options, test each option combination For rules using filesystem, mock with vi.mock('../utils/file-utils.js') For suggestion-only rules, use errors: [{ messageId, suggestions: [...] }] Step 4: Register the Rule 4a. Add to src/rules/index.ts 4b. Add to src/plugin.ts configs Add to both config objects (unless the rule depends on n8n cloud features): Use error for rules that catch bugs or required patterns Use warn for style/convention rules (like options-sorted-alphabetically) If the rule uses no-restricted-globals or no-restricted-imports patterns, only add to recommended (not recommendedWithoutN8nCloudSupport) Step 5: Write Documentation Create docs/rules/<rule-name>.md: The header above <!-- end auto-generated rule header --> will be regenerated by pnpm build:docs. Write a reasonable first version — it gets overwritten. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills n8n-io/create-community-node-lint-rule