Skip to content

Rules

astro-doctor provides 13 proprietary ESLint rules for .astro files,9 project-wide audits, and up to 54 officialeslint-plugin-astro rules. The all preset exposes 63 unique ESLint checks after overlap deduplication, plus project audits.

Proprietary rules

RuleCategoryDefaultFixable
astro-doctor/no-client-load-overusePerformancewarn
astro-doctor/use-astro-imagePerformancewarn
astro-doctor/require-image-dimensionsPerformancewarn
astro-doctor/no-missing-altAccessibilityerror
astro-doctor/no-set-htmlSecuritywarn
astro-doctor/no-public-secret-envSecuritywarn
astro-doctor/prefer-class-listBest Practiceswarn
astro-doctor/no-blocking-scriptPerformancewarn
astro-doctor/no-unprocessed-script-surprisesPerformancewarn
astro-doctor/no-missing-langAccessibilityerror
astro-doctor/require-island-fallbackAccessibilitywarn
astro-doctor/no-process-envBest Practiceswarn
astro-doctor/prefer-content-collectionsBest Practiceswarn

Project audits

The CLI also evaluates configuration and relationships across files that an isolated ESLint rule cannot see.

CheckCategoryPreset
astro-doctor/no-disabled-origin-checkSecurityrecommended
astro-doctor/no-insecure-session-cookieSecurityrecommended
astro-doctor/no-open-allowed-domainsSecurityrecommended
astro-doctor/prefer-env-schemaBest Practicesrecommended
astro-doctor/prefer-pnpmBest Practicesopt-in
astro-doctor/require-action-input-schemaSecurityrecommended
astro-doctor/require-client-router-script-lifecycleBest Practicesstrict
astro-doctor/require-content-configBest Practicesrecommended
astro-doctor/no-public-secret-envSecurityrecommended

Rule categories

Performance

Rules that help you ship faster pages. Covers hydration strategies (no-client-load-overuse), image optimization (use-astro-image), image dimensions (require-image-dimensions), render-blocking scripts (no-blocking-script), and accidental script processing opt-outs (no-unprocessed-script-surprises).

Accessibility

Rules that ensure your pages are usable by everyone, including screen-reader users. Covers missing alt text (no-missing-alt) and missing language declaration (no-missing-lang), plus fallback content for islands (require-island-fallback).

Security

Rules that prevent common vulnerabilities. Covers unescaped HTML injection (no-set-html) and public environment variables that look like secrets (no-public-secret-env).

Best Practices

Rules that encourage idiomatic Astro patterns: conditional class composition (prefer-class-list), environment variable access (no-process-env), and content management (prefer-content-collections).

Customizing rules

Override any rule severity in your eslint.config.js:

javascripteslint.config.js
import astroDoctorPlugin from '@santi020k/eslint-plugin-astro-doctor'

export default [
  astroDoctorPlugin.configs.recommended,
  {
    rules: {
      // Upgrade to error
      'astro-doctor/no-client-load-overuse': 'error',
      // Disable a rule
      'astro-doctor/prefer-class-list': 'off',
    },
  },
]

Or use a doctor.config.* file for CLI-only overrides.