Skip to main content
interlace
Plugin: conventions

Rules

All ESLint rules provided by eslint-plugin-conventions

9 Rules Available

Team-specific disciplinary patterns and code conventions.

All Rules

Legend: Type-unaware Type-awareRecommendedFixableSuggestionsWarns
Rule🧠💼🔧💡⚠️Docs
analytics-event-naming

Analytics event names (track/capture) must follow ANALYTICS_PHILOSOPHY.md principle 4: lowercase snake_case, category:object_action, fixed verb list

🟢
consistent-existence-index-check

Enforce consistent style for checking object property existence

🟢
expiring-todo-comments

Add expiration conditions to TODO comments to prevent forgotten tasks

🟢
filename-case

Enforce filename case conventions for consistency

🟢
no-commented-code

Detects commented-out code blocks

🟢
no-console-spaces

Prevent leading/trailing space between console.log parameters

🟢
no-deprecated-api

Prevent usage of deprecated APIs with migration context

🟢
no-json-schema-tags

Disallow JSON Schema keywords used as JSDoc tags (e.g. @minimum, @maximum)

🟢
no-magic-numbers

Disallow magic numbers (numeric literals without a named constant)

🟢
no-raw-cross-property-href

Forbid hand-written cross-property hrefs; use buildUtmHref() from lib/utm.ts

🟢
prefer-code-point

Prefer codePointAt over charCodeAt for proper Unicode character handling

🟢
prefer-dependency-version-strategy

Enforce consistent version strategy (caret, tilde, exact, etc.) for package.json dependencies

🟢
prefer-dom-node-text-content

Prefer textContent over innerText for better performance and reliability

🟢
require-data-testid

Require stable `data-testid` attributes on interactive elements and custom components for testability.

🟢
utm-taxonomy

Validate utm_source and utm_medium values against the fixed taxonomy in UTM_PHILOSOPHY.md

🟢
Showing 15 of 15 rules

Building secure JavaScript with Interlace? Star the repo to get new rules and CWE coverage as we ship them — or follow the AI-code-security benchmarks behind them.