create-community-node-lint-rule

Guides creation of ESLint rules for the n8n community nodes plugin.

Updated Apr 9, 2026
One-click install
npx skills add https://github.com/Uguryldz/n8nclean --skill create-community-node-lint-rule-uguryldz
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: create-community-node-lint-rule
Source: https://github.com/Uguryldz/n8nclean/tree/main/.claude/plugins/n8n/skills/create-community-node-lint-rule
Command: npx skills add https://github.com/Uguryldz/n8nclean --skill create-community-node-lint-rule-uguryldz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Adding a new lint rule to the @n8n/eslint-plugin-community-nodes package involves many coordinated steps—rule implementation, tests, plugin registration, config entries, and documentation—and missing any of them breaks the build or leaves the rule undiscoverable. ## Core Features & Use Cases - Step-by-step rule authoring: Walks through implementing a rule with createRule, AST helpers like isNodeTypeClass and findClassProperty, and correct naming conventions. - Testing and registration guidance: Provides RuleTester patterns, registration in src/rules/index.ts, and config severity choices in src/plugin.ts. - AST utilities reference: Includes a reference catalog of ast-utils and file-utils helpers for property finding, value extraction, and credential verification. - Use Case: You want to enforce that every community node defines a specific description property. Use this Skill to scaffold the rule, write valid/invalid test cases, register it in both recommended configs, and generate the docs. ## Quick Start Create a new ESLint rule for the n8n community nodes plugin that detects missing paired item support, including tests, registration, and documentation.

Frequently Asked Questions about create-community-node-lint-rule

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a custom ESLint rule for n8n community nodes?▼

Create a rule file in src/rules using the createRule helper, implement AST visitors like ClassDeclaration with isNodeTypeClass, then register it in src/rules/index.ts and add it to the configs in src/plugin.ts. Add tests with RuleTester and a doc file under docs/rules.

How do I test an ESLint rule with RuleTester?▼

Use RuleTester from @typescript-eslint/rule-tester and call ruleTester.run with valid and invalid cases. Each invalid case specifies expected messageId, data, and output for fixable rules; always include a valid case where non-INodeType classes are skipped.

What AST helpers are available in eslint-plugin-community-nodes?▼

The package exports helpers like isNodeTypeClass, isCredentialTypeClass, findClassProperty, findObjectProperty, getLiteralValue, and findSimilarStrings from src/utils. File utilities include findPackageJson, readPackageJsonNodes, and validateIconPath for filesystem-aware rules.

Should my n8n lint rule use error or warn severity?▼

Use error for rules that catch bugs or enforce required patterns, and warn for style or convention rules like options-sorted-alphabetically. Rules depending on n8n cloud features should only be added to the recommended config, not recommendedWithoutN8nCloudSupport.

Why does my ESLint rule fail on filesystem-dependent tests?▼

Rules that read package.json or check icon files need mocked filesystem utilities in tests. Use vi.mock on the file-utils module to control readPackageJsonN8n and similar functions so tests run deterministically without real files.