or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configurations.mdindex.mdprocessor.mdrules.md
tile.json

rules.mddocs/

Linting Rules

ESLint Plugin JSDoc provides 57 comprehensive linting rules for validating all aspects of JSDoc comments, from syntax and formatting to semantic correctness and completeness.

Capabilities

Access & Visibility Rules

Rules for validating access modifiers and implementation relationships.

// Check access tags are valid
"jsdoc/check-access": ESLintRuleConfig;

// Ensure @implements is used on classes only
"jsdoc/implements-on-classes": ESLintRuleConfig;

Alignment & Formatting Rules

Rules for enforcing consistent JSDoc comment formatting and alignment.

// Validate JSDoc comment alignment
"jsdoc/check-alignment": ESLintRuleConfig;

// Check line alignment in JSDoc blocks
"jsdoc/check-line-alignment": ESLintRuleConfig;

// Enforce multiline JSDoc format
"jsdoc/multiline-blocks": ESLintRuleConfig;

// Prevent multiple asterisks in JSDoc
"jsdoc/no-multi-asterisks": ESLintRuleConfig;

// Require asterisk prefix on JSDoc lines
"jsdoc/require-asterisk-prefix": ESLintRuleConfig;

// Control empty lines around JSDoc tags
"jsdoc/tag-lines": ESLintRuleConfig;

// Control lines before JSDoc blocks
"jsdoc/lines-before-block": ESLintRuleConfig;

// Validate JSDoc indentation
"jsdoc/check-indentation": ESLintRuleConfig;

Content & Description Rules

Rules for validating JSDoc content quality and completeness.

// Validate JSDoc @example code syntax
"jsdoc/check-examples": ESLintRuleConfig;

// Validate JSDoc syntax
"jsdoc/check-syntax": ESLintRuleConfig;

// Validate tag values
"jsdoc/check-values": ESLintRuleConfig;

// Convert comments to JSDoc format
"jsdoc/convert-to-jsdoc-comments": ESLintRuleConfig;

// Validate empty JSDoc tags
"jsdoc/empty-tags": ESLintRuleConfig;

// Ensure informative documentation
"jsdoc/informative-docs": ESLintRuleConfig;

// Validate description patterns
"jsdoc/match-description": ESLintRuleConfig;

// Validate name patterns
"jsdoc/match-name": ESLintRuleConfig;

// Prevent malformed JSDoc blocks
"jsdoc/no-bad-blocks": ESLintRuleConfig;

// Prevent blank descriptions
"jsdoc/no-blank-block-descriptions": ESLintRuleConfig;

// Prevent completely blank JSDoc blocks
"jsdoc/no-blank-blocks": ESLintRuleConfig;

// Require descriptions
"jsdoc/require-description": ESLintRuleConfig;

// Enforce complete sentences in descriptions
"jsdoc/require-description-complete-sentence": ESLintRuleConfig;

// Require file-level JSDoc
"jsdoc/require-file-overview": ESLintRuleConfig;

// Handle text escaping in JSDoc
"jsdoc/text-escaping": ESLintRuleConfig;

Import & Dependency Rules

Rules for validating import relationships and syntax dependencies.

// Validate import dependencies
"jsdoc/imports-as-dependencies": ESLintRuleConfig;

// Check for missing syntax
"jsdoc/no-missing-syntax": ESLintRuleConfig;

// Restrict specific syntax patterns
"jsdoc/no-restricted-syntax": ESLintRuleConfig;

Parameter & Property Rules

Rules for validating function parameters and object properties in JSDoc.

// Validate parameter names in JSDoc
"jsdoc/check-param-names": ESLintRuleConfig;

// Validate property names
"jsdoc/check-property-names": ESLintRuleConfig;

// Require @param tags
"jsdoc/require-param": ESLintRuleConfig;

// Require parameter descriptions
"jsdoc/require-param-description": ESLintRuleConfig;

// Require parameter names
"jsdoc/require-param-name": ESLintRuleConfig;

// Require parameter types
"jsdoc/require-param-type": ESLintRuleConfig;

// Require @property tags
"jsdoc/require-property": ESLintRuleConfig;

// Require property descriptions
"jsdoc/require-property-description": ESLintRuleConfig;

// Require property names
"jsdoc/require-property-name": ESLintRuleConfig;

// Require property types
"jsdoc/require-property-type": ESLintRuleConfig;

// Control hyphens in param descriptions
"jsdoc/require-hyphen-before-param-description": ESLintRuleConfig;

Return Value Rules

Rules for validating function return documentation.

// Require @returns tags
"jsdoc/require-returns": ESLintRuleConfig;

// Validate return statements match @returns
"jsdoc/require-returns-check": ESLintRuleConfig;

// Require return descriptions
"jsdoc/require-returns-description": ESLintRuleConfig;

// Require return types
"jsdoc/require-returns-type": ESLintRuleConfig;

Tag Management Rules

Rules for managing and validating JSDoc tags.

// Validate JSDoc tag names
"jsdoc/check-tag-names": ESLintRuleConfig;

// Validate template names
"jsdoc/check-template-names": ESLintRuleConfig;

// Require @template tags
"jsdoc/require-template": ESLintRuleConfig;

// Sort JSDoc tags
"jsdoc/sort-tags": ESLintRuleConfig;

Type System Rules

Rules for validating JSDoc type annotations and type system integration.

// Validate JSDoc types
"jsdoc/check-types": ESLintRuleConfig;

// Prevent default values in certain contexts
"jsdoc/no-defaults": ESLintRuleConfig;

// Prevent type annotations (for TypeScript)
"jsdoc/no-types": ESLintRuleConfig;

// Prevent undefined types
"jsdoc/no-undefined-types": ESLintRuleConfig;

// Validate type syntax
"jsdoc/valid-types": ESLintRuleConfig;

Yield & Generator Rules

Rules for documenting generator functions and yield statements.

// Require @yields for generators
"jsdoc/require-yields": ESLintRuleConfig;

// Validate yield statements match @yields
"jsdoc/require-yields-check": ESLintRuleConfig;

Miscellaneous Rules

Additional rules for comprehensive JSDoc validation.

// Require @example tags
"jsdoc/require-example": ESLintRuleConfig;

// Require JSDoc comments
"jsdoc/require-jsdoc": ESLintRuleConfig;

// Require @throws tags
"jsdoc/require-throws": ESLintRuleConfig;

Rule Configuration

All rules support standard ESLint configuration patterns:

Usage Examples:

// Basic configuration
{
  "rules": {
    "jsdoc/require-jsdoc": "error",
    "jsdoc/require-param": "warn",
    "jsdoc/check-alignment": "off"
  }
}

// Configuration with options
{
  "rules": {
    "jsdoc/require-jsdoc": ["error", {
      "require": {
        "FunctionDeclaration": true,
        "MethodDefinition": true,
        "ClassDeclaration": true
      }
    }],
    "jsdoc/check-tag-names": ["error", {
      "typed": true
    }]
  }
}

Types

type ESLintRuleConfig = "off" | "warn" | "error" | 
  ["off" | "warn" | "error", RuleOptions];

interface RuleOptions {
  [optionName: string]: any;
}

interface ESLintRule {
  meta: {
    type: "problem" | "suggestion" | "layout";
    docs: {
      description: string;
      category: string;
      recommended: boolean;
      url?: string;
    };
    fixable?: "code" | "whitespace";
    schema: JSONSchema7 | JSONSchema7[];
    messages?: { [messageId: string]: string };
  };
  create(context: ESLintRuleContext): ESLintVisitors;
}